본문 바로가기

ComputerScience/OS6

5. 프로세스 관련 시스템콜 & IPC 프로세스와 관련해서 네 가지의 중요한 시스템콜에 대해서 정리한다. 프로세스 생성 우선 부모 프로세스가 자식 프로세스를 어떤 방식으로 생성하고, 어떠한 관계를 가지게 되는 지 알아봐야 한다. 부모 프로세스가 자식 프로세스를 어떤 방식으로 생성하는 지에 대해 가장 중요한 것은 복제생성이다. 부모 프로세스는 자신의 주소공간, PC register 등과 같은 정보들을 복제하여 자식 프로세스를 생성한다. 이와 같은 방식으로 생성되기 때문에 트리구조를 가지게 된다. 자식 프로세스의 생성은 굳이 두 가지로 나눠보자면, 1. 부모를 그대로 복사한다. 2. 복사한 자식 프로세스에 새로운 프로그램을 덮어 씌운다. 이와 같은 방식이라고 할 수 있을 것이다. 그렇다면 1번과 2번을 수행하는 시스템콜이 무엇이 있는 지에 대해 .. 2022. 12. 28.
4. 프로세스(2) 프로세스 스케줄러, 프로세스의 상태, 스레드에 대해 정리한 내용이다. 스케줄러 프로세스를 스케줄링 하는 스케줄러의 종류들이 세 가지가 존재한다. 그 전에 프로세스 스케줄링을 하기 위한 Queue도 아래와 같이 세 가지가 존재한다. Job Queue: 현재 시스템 내에 있는 모든 프로세스의 집합이다. Ready Queue: 현재 메모리 내에 있으면서 CPU를 선점하기를 기다리는 프로세스의 집합이다. Device Queue: I/O 디바이스의 처리를 기다리는 프로세스의 집합이다. 위 Queue들에 프로세슬르 넣고 빼주는 역할을 담당하는 것이 바로 스케줄러이다. 스케줄러에도 아래와 같이 세 가지가 존재한다. 단기 스케줄러(CPU Scheduler) 어떤 프로세스를 다음번에 Running시킬 지 결정한다. CP.. 2022. 12. 26.
3. 프로세스(1) (* 프로세스의 개념과 프로세스의 상태, 문맥교환이 무엇인지에 대해 정리한 내용이다.) 프로세스의 개념 프로세스란? : 실행 중인 프로그램이다. 프로세스의 문맥(context) : 프로세스 문맥은 아래와 같은 정보들을 포함하고 있는 내용이다. CPU의 수행 상태를 나타내는 하드웨어 문맥 PC(Program Counter)가 어디를 가리키는 지를 저장 레지스터에 어떤 값을 넣고, 어떤 instruction까지 실행 했는 가를 저장 등등 프로세스의 주소공간 code, data, stack에 대한 정보 프로세스 관련 커널 자료구조 PCB(Process Control Block) : 운영체제는 프로세스가 생성될 때마다, 프로세스 관리를 위해 커널 주소공간의 data영역에 해당 프로세스의 PCB라는 곳에 프로세스.. 2022. 11. 8.
2. 컴퓨터시스템 구조(2) * OS 게시물 1,2는 운영체제를 다루기 앞서 컴퓨터시스템 구조의 전반적인 흐름을 적어놓은 내용이다. 동기식 입출력과 비동기식 입출력 동기식 입출력(synchronous I/O) I/O 요청을 하고, 작업이 완료된 후에야 CPU제어권이 사용자 프로그램으로 넘어가는 것. 비동기식 입출력(asynchronous I/O) I/O 요청을 하고, 작업이 끝나기를 기다리지 않고 CPU제어권이 사용자 프로그램으로 넘어가는 것. read 작업의 경우 보통 I/O요청을 통해 읽어 온 데이터를 확인 후 다음 작업을 진행을 하기 때문에, 동기식 입출력을 많이 사용할 것 이다. (물론 읽어온 데이터와 상관없는 다른 작업들을 수행하도록 비동기식 입출력을 사용할 수도 있긴 하겠지만..) write의 경우는 비동기식이 자연스러운.. 2022. 11. 6.