Chapter 5. CPU Scheduling (2) 💡 Scheduling Criteria - Performance Index(스케쥴링 성능 척도) CPU Utilization (이용률) Keep the CPU as busy as possible CPU가 놀지 않고 일한 시간의 비율 Throughput (처리량) # of processes that complete their execution per time unit 주어진 시간 동안 몇개의 작업을 처리했는지에 대한 비율 Turnaround Time (소요 시간, 평균 시간) amount of time to execute a particular process CPU를 쓰기 시작해서 I/O 처리를 위해 종료할 때까지 (뺏길 때까지) 걸린 시간 (CPU b..
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 (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를 낭비시킴 ..