Chapter 5. CPU Scheduling - 1 💡 CPU and I/O Bursts in Program Execution 명령어 실행 도중 I/O 작업으로 넘어가면 wait이 발생하게 됨. CPU만 연속적으로 사용하는 CPU burst 상태와 I/O만 연속되어 발생하는 I/O Burst 상태가 반복되게 됨. 주로 사람이 연결되어 있는 프로그램에서 주로 반복되는 형태가 많이 발생함 (interactive한 job) 프로그램의 종류에 따라 빈도나 유형이 각각 다름. 💡 CPU-burst time의 분포 여러 종류의 job(=process)이 섞여 있기 때문에 CPU 스케쥴링이 필요하다. 중간에 I/O가 많으면 CPU bust time이 적음. (= I/O bound job) -> 반대가 CPU bou..
Chapter 4. Process Management 💡 프로세스 생성 (Process Creation) 부모 프로세스(Parent Process)가 자식 프로세스(Children Process)를 생성한다. (프로세스가 또 다른 프로세스를 만드는 구조. 복제 생성) 프로세스의 트리(계층 구조)가 형성된다. 프로세스는 자원을 필요로 한다. 이 때, 자원은 운영체제(OS)로부터 받거나 부모와 공유한다. 자원의 공유 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 (모든 자원을 공유하는 것보다 더 효율적임) ex) Linux 전혀 공유하지 않는 모델 수행 (Execution) 부모와 자식은 공존하며 수행되는 모델 자식이 종료(terminate)될 때까지 부모가 기다리는(wait = blocke..
Chapter 3. Process(2), (3) 💡 동기식 입출력과 비동기식 입출력 부연설명 입출력을 요청한 프로세스가 입출력이 끝날 때까지 대기상태일 경우 동기식 입출력. 입출력을 요청한 프로세스가 종료시까지 대기하지 않고 CPU가 새로운 instruction를 실행할 경우 비동기식 입출력. 💡 Thread A thread is a basic unit of CPU utilization lightweight process라고도 부름 CPU를 수행하는 단위라고 할 수 있음. data, code 부분은 thread들이 공유를 하고 각각 stack부분만 thread가 고유 공간을 가지고 있음. PCB에서도 Thread 각각이 독립적으로 구성하고 있는 것은 PC(Program counter), Register이..
Chapter 3. Process (1) 💡 Process 프로세스의 개념 프로세스는 실행중인 프로그램을 의미한다. (Process is a program in execution) 프로세스의 문맥(context) CPU의 수행 상태를 나타내는 하드웨어 문맥. Program Counter 각종 Register 프로세스의 주소 공간 code, data, stack 프로세스 관련 PCB (Process Control Block) Kernel stack 프로세스의 상태 프로세스는 상태가 변경되면서 수행된다. Running CPU를 잡고 Instructionm을 수행중인 상태 Ready CPU를 기다리는 상태 (메모리 등 다른 조건을 모두 만족하고) Blocked (wait, sleep) CPU를 주어도 당장 i..
Chapter 2. System Structure & Program Execution (2) 💡 컴퓨터 시스템 구조 (2) Program Counter CPU 안에 있는 Register 중의 하나로서, 다음에 실행할 instruction의 주소를 가지고 있어 실행할 기계어 코드의 위치를 지정한다. 다른 말로는 명령어 포인터 (instruction pointer)라고도 불린다. 일반적으로 Program counter는 명령을 마칠때마다 주소값이 1씩 증가하게 된다. 동기식 입출력과 비동기식 입출력 동기식 입출력 (Synchronous I/O) I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어가며, 다음 작업을 수행할 수 있음. 구현 방법 1 I/O가 끝날 때까지 CPU를 낭비시킴 ..