CPU 스케줄링 1.

프로그램이 실행된다는 것은 CPU 버스트(Burst)1와 I/O 버스트(Burst)가 번갈아 반복되며 실행된다는 것이다. 프로그램이 실행될 때는 이와 같이 여러 종류의 Job(=프로세스)이 섞이기 때문에 CPU 스케줄링이 필요하다. 프로그램 실행 시 CPU 버스트와 I/O 버스트가 반복되며 실행된다. CPU 스케줄링이란(CPU Scheduling) OS는 여러 종류의 Job이 혼재된 상황에서 시스템 자원(Resource)을 골고루 효율적으로 활용하고 유휴 대기 시간을 최소화할 수 있도록 관리하는데 이것을 스케줄링(Scheduling)이라고 한다. 즉, 레디 큐(Ready queue)에 있는 프로세스 중에 어떤 프로세스에게 CPU를 줄 것인지 결정하는 것이다. ...

2022년 1월 6일 · 3 min

Process Management 2.(Cooperating Process)

프로세스는 각자의 주소 공간(Address Space)를 갖고 수행되므로 독립적이고 경잭적이다. 이와 같은 이유로 원칙적으로는 하나의 프로세스가 다른 프로세스에게 영향을 미치지 못한다. 그러나 경우에 따라서 협력해야 효율적인 경우가 있을 수 있어 서로 정보를 주고 받으며 실행하게 되는데 이를 협력 프로세스(Cooperating Process)라고 하며 전자를 독립적 프로세스(Independent Process)라고 한다. 프로세스간 협력 메커니즘 (IPC, Interprocess Communication) 프로세스는 원칙적으로 자기의 메모리 주소 공간만 볼 수 있고 서로에게 개입할 수 없어 직접 메시지를 주고 받을 수 없다. 이러한 이유로 몇 가지 편법적인 방법으로 메시지를 교류한다. ...

2022년 1월 5일 · 2 min

Process Management 1. (Creation, Execution, Wait & Exit)

프로세스(자식 프로세스)의 생성, 수행 및 종료에 대한 내용을 다룬다. 프로세스 생성 (Process Creation) 부모 프로세스가 자식 프로세스를 생성하는 식으로 생성한다. 부모 프로세스가 직접 복제를 할 수 없기 때문에 fork() 시스템 콜(System call)을 통하여 운영체제의 도움을 받아서 복제한다. 자식 프로세스는 부모 프로세스의 복제품으로 부모의 주소공간(Binary 및 PCB 등 OS data)을 완전히 복제한다. 복제한 주소공간은 메모리(Memory)를 할당 받고 자식 프로세스는 해당 공간에서 새로운 프로그램을 실행한다. fork() 시스템 콜로 생성된 자식 프로세스를 수행할 때 프로그램의 처음부터 실행하면 중간에 자식 프로세스 자기 자신을 복제하기 위해 삽입된 fork()문을 마주쳐 추가적으로는 필요하지도 않은 손자 프로세스가 생성될 수 있다. 이 때문에 자식 프로세스는 처음부터 실행되지 않고 fork()문 다음부터 시작(PC가 가리키게)되며 이를 통해 본인이 자식 프로세스라는 사실을 알 수 있다. ...

2022년 1월 1일 · 3 min