- [ 학습기록/CS 공부 ][OS/공룡책] Part 4. Memory Management2024-04-30 22:03:46keep many processes in memory simultaneously to allow multiprogramming 메인 메모리메모리는 고유의 주소를 갖는 바이트의 배열이다. 각 코어에 들어있는 레지스터와 메인 메모리는 CPU가 직접 접근할 수 있는 유일한 스토리지다. CPU는 PC값에 해당하는 메모리 주소에서 명령어를 가져와 실행하는데, 만약 데이터가 메모리에 없다면 실행 전에 메모리에 적재해야 한다. 메모리 보호we must protect the operating system from access by user processes.우리는 사용자 프로세스로부터 운영체제를 보호해야 한다. 이는 base 레지스터와 limit 레지스터를 이용하여 구현할 수 있다.base 레지스터 : 물리적 메모리의..
- [ 학습기록/CS 공부 ][OS/공룡책] Part 3. Process Synchronization2024-04-27 01:44:58Concurrent access to shared data my result in data inconsistency. 동기화 방법프로세스들은 동시에 실행되거나 서로 다른 코어에서 병렬적으로 실행될 수 있다. 공유 자원에 여러 개의 프로세스가 동시에 접근하는 상황을 경쟁 상태라고 부르는데, 이는 공유 데이터의 무결성을 해칠 수 있다. 따라서 한 번에 하나의 프로세스만 공유 데이터를 조작하도록 접근 순서를 제어해야 한다. (동기화)⭐ 경쟁 상태두 개 이상의 프로세스가 공유 자원에 동시에 접근할 때, 공유 자원에 대한 접근 순서에 따라 그 실행 결과가 달라지는 상황 The Critical-Section Problem임계구역은 다른 프로세스와 공유하는 코드의 일부분을 의미하며, 다음 구조를 갖는다.entry-s..
- [ 학습기록/CS 공부 ][OS/공룡책] Part 2. Process Management2024-04-23 03:20:00One of the most important aspects of an operating system is how it schedules threads onto available processing cores.프로세스A process is a program in execution.프로세스는 실행 중인 프로그램을 의미한다. 프로세스의 활동 상태는 프로그램 카운터와 레지스터의 내용으로 알 수 있다...
- [ 학습기록/CS 공부 ][OS/공룡책] Part 1. Overview2024-04-21 15:50:49운영체제An operating system acts as an intermediary between the user of a computer and the computer hardware.운영체제는 컴퓨터 시스템을 운영하는 소프트웨어로, 컴퓨터 하드웨어를 관리하고 어플리케이션의 실행 환경을 제공한다. 컴퓨터 시스템은 다음 네 가지 요소로 구성되어 있다. 운영체제의 핵심 역할은 프로그램에 필요한 자원을 할당하는 것이다...
- [ 학습기록/CS 공부 ][OS] 커널 (모드 비트/시스템 콜/인터럽트)2024-02-12 02:01:35커널은 운영체제의 핵심 프로그램으로, 시스템의 모든 것을 조율하고 제어한다. 커널은 운영체제 코드의 일부로서 메모리에 상주하며, 시스템 시작 시에 가장 먼저 로드된다. 커널의 주요 역할은 다음과 같다. 커널은 하드웨어 자원을 관리한다. 자원을 효율적으로 관리하여 여러 프로세스가 안정적으로 실행되도록 한다. 커널은 프로세스를 관리하여 다중 프로세스 환경에서 각 프로세스가 공정하게 자원을 사용하고 서로 간섭하지 않도록 중재한다. 커널은 프로세스들이 필요로 하는 메모리를 할당하고 해제한다. 커널 주소 공간 (os 상주 영역) 은 커널이 실행되는 메모리 영역을 의미한다. 이 영역은 시스템의 가장 상위에 위치하며, 보호된 메모리 영역에 할당된다. 사용자 프로세스들은 직접 이 영역에 접근할 수 없지만, 시스템 콜을..
- [ 학습기록/CS 공부 ][OS] 가상 메모리 (페이지 부재/페이지 교체/스레싱/워킹셋)2024-02-09 21:04:57create the illustion to users of a very large (main) memory 가상 메모리는 실제 물리적인 메모리보다 큰 용량의 메모리 공간을 제공하는 기술이다. 프로그램이 필요로 하는 데이터를 일부만 물리적 메모리에 로드하고, 나머지는 디스크 공간에 저장한다. 그리고 프로그램이 해당 데이터에 접근할 때만 필요한 부분을 메모리로 옮겨 사용한다. 이를 통해 더 많은 프로그램을 실행할 수 있고, 메모리를 보다 효율적으로 사용할 수 있다. 가상 메모리는 주로 페이징 기법을 사용하여 메모리 용량을 초과하는 프로그램의 데이터를 디스크에 저장하고, 필요할 때마다 가져온다. 그러나 모든 페이지를 메모리에 동시에 유지할 수 없기 때문에 페이지 교체 알고리즘이 필요하다. 페이지 교체 알고리즘..
- [ 학습기록/CS 공부 ][OS] 메모리 관리 2편 (연속 할당/불연속 할당)2024-02-09 01:35:34메모리 관리 메모리 배치 메모리 배치는 시스템의 성능을 향상시키고 자원을 효율적으로 활용하는 데 중요한 역할을 한다. 올바른 메모리 배치는 프로세스 간의 메모리 접근을 최적화하여 프로그램 실행 속도를 향상시킨다. 이는 메모리의 인접한 위치에 있는 데이터 및 명령어에 빠르게 접근할 수 있게 함으로써 프로그램의 실행 효율성을 높인다. 또한, 메모리 공간을 효율적으로 활용하여 메모리 공간 낭비를 최소화한다. 이는 메모리 단편화*를 방지하여 더 많은 프로세스를 동시에 실행할 수 있도록 돕는다. *단편화 (fragmentation) : 메모리가 여러 조각으로 나누어져 메모리를 효율적으로 사용하지 못하는 상황 메모리는 크게 운영체제와 사용자 프로세스가 사용하는 영역으로 나뉜다. os 상주 영역은 운영체제 커널과 시..
- [ 학습기록/CS 공부 ][OS] 메모리 관리 1편 (주소 바인딩/메모리 로드)2024-02-07 23:35:36메모리는 프로그램이 실행될 때 필요한 데이터를 일시적으로 저장하는 공간이다. 운영체제는 이러한 메모리를 효율적으로 활용하여 다음과 같은 작업을 수행한다. 프로세스를 실행하기 위해 필요한 메모리를 할당하고 해제한다. 여러 프로세스가 동시에 실행될 때 메모리를 적절히 분배하여 각 프로세스가 충돌 없이 실행될 수 있도록 한다. 가상 메모리를 활용하여 물리적 메모리의 한계를 극복한다. 이를 통해 더 많은 프로세스를 동시에 실행할 수 있다. 메모리 관리 It determines how memory is allocated among competing processes, deciding which gets memory, when they receive it, and how much they are allowed. 메..