최근 운영체제 스터디를 하는 중에 스터디원의 추천으로 괜찮은 강의로 스터디를 하게되서 이 강의를 듣고 다양한 자료들로 공부하면서 운영체제에 대한 정리를 하려고 합니다.부족한 정리일 수도 있고 잘못된 내용이 들어갈 수도 있지만 개인 공부를 기록한다는 느낌으로 시작해보려구
PCB 란 커널에서는 하드웨어들을 관리하기 위해 하드웨어별 자료구조를 갖고 있어야 한다. 프로세스를 관리하기 위한 블럭(자료구조) 또한 가지고 있는데 이 블럭을 PCB(Process Control Block ) 라고 부른다. 또한 이러한 자료구조들은 metadata
문맥교환이라고도 한다.CPU를 사용하는 프로세스가 변경될 때 발생하는 CPU 교환 작업이라고 생각하면 될 것 같다.Context Switch가 발생할때 수행되는 커널의 함수SystemCall 과는 다르게 외부에서 호출할 수 없으며 커널 내에서만 호출이 가능하다.이때 s
PCB는 담긴 meta data들이 많기 때문에 메모리에서 큰 용량을 차지할 수 있다.따라서 Parent 에서 Child를 fork() 하는 과정에서 PCB가 복사되고 이때 많은 오버헤드가 발생하는데 이를 줄이기 위해서 PCB 구조체 전체를 복사하는 것이 아닌 포인터를
CPU를 사용하기 위한 작업들을 관리하는 것스케줄러가 Dispatch 함으로써 프로세스가 CPU를 할당 받아 작업을 수행한다.이때 스케줄링은 CPU를 할당하기 위해 결정하는 과정이라고 생각하면될 것 같다.작업에 할당하는 CPU의 사용시간Time Slice가 0이 된다면
서로 다른 두 프로세스가 동시에 공유 자원을 쓰지 않도록 하는 기법공유 자원을 Critical Section (임계구역) 이라고 하며 각 프로세스의 사용자 모드에서는 로컬 메모리를 가지므로 Critical Section이 따로 존재하지 않는다.그러나 커널 모드 안에서는
프로세스가 CPU를 사용하여 실행하고 있을 때 하드웨어 장치에서 비동기적으로 신호( I/O 같은 )가 발생하여 처리가 필요한 경우에 커널에게 처리를 요청하는 것이다.CPU는 명령을 가져와서 실행을 한다.연산 처리 및 데이터 접근 등등의 일을 하며 하나의 명령 실행이 끝
일반적으로 운영체제에서 다루는 스레드는 CPU를 할당 받을 수 있는 작업의 단위이다. 그렇다면 흔히 PC를 구매할때 CPU의 스펙에 나오는 8코어 / 16스레드 와는 어떻게 다른 것일까 ? 하드웨어 스레드와 소프트웨어 스레드 우리가 흔히 운영체제에서 공부하는 프