프로세스
- 연산이나 데이터를 처리하기 위해 현재 진행되는 작업이나 프로그램
- 프로그램을 실행하는 주체
- CPU의 효율성을 높이기 위해서는 프로세스에게 CPU 자원 배정을 적절히 하여 시스템의 성능을 끌어올릴 수 있다.
프로세서
- 컴퓨터 내부의 처리장치
- 컴퓨터 내부에 포함된 하나의 모듈, CPU 칩 혹은 컴퓨터 자체
- 하드웨어 관점에서는 대개 CPU
- 소프트웨어 관점에서는 대개 번역 (인코딩) 프로그램
CPU의 효율성을 높이는 방법
프로세스의 배정을 적절히 하자!
- 공통 배정조건 : 오버헤드 ↓ / 사용률 ↑ / 기아 현상 ↓
- 오버헤드 : 프로세스가 필요한 자원보다 더 많이 사치부리며 사용하지 않도록(=투머치🤑)
- 사용률 : 프로세스가 최대한 자원을 많이받고 빨리 처리하도록 (=알잘딱깔쎈🤓)
- 기아 현상 : 프로세스가 자원할당을 못받아서 배고픈상태로 대기하지 않도록(=지못미🤕)
- 목표에 따른 배정조건 :
- 배치 시스템 : 가능하면 많은 일을 수행. 시간(time) 보단 처리량(throughout)이 중요
- 대화형 시스템 : 빠른 응답 시간. 적은 대기 시간이 중요
- 실시간 시스템 : 실시간(time) 즉, 최소 응답시간(dead line) 이 중요!
스케줄링
시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
비선점 스케줄링
프로세스가 종료되거나, I/O 등 이벤트가 있을 때까지 실행을 보장한다.
이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
일괄 처리 방식에 적합
종류 : SJF, 우선순위, 기한부 등
- FCFS=FIFO
준비상태 큐에 도착한 순서에 따라 차례로 CPU를 할당
프로세스 1의 실행 시간 A, 2 - B, 3 - B라 할 때
평균 대기 시간 : (0 +A + A+B)/3
평균 실행 시간 : (A+B+C)/3
평균 반환 시간 : (A+ A+B + A+B+C) /3
- 대기 시간 : 앞 프로세스들 실행 시간 - 도착 시간
- 반환 시간 : 대기 시간 + 실행 시간
- SJF (Shortest Job First)
- 준비상태 큐의 프로세스들 중 실행시간이 가장 짧은 것에 먼저 할당
- 가장 적은 평균 대기 시간을 제공하는 최적 알고리즘
- 동시간에 들어오면 가장 시간 짧은 것부터임
- HRN (Highst Response Next)
대기 시간, 서비스(실행) 시간을 이용하는 기법
우선순위 계산에 따라 가장 높은 것 ~ 낮은 것 순으로 부여
우선순위 계산식 = (대기 시간 + 서비스 시간) / 서비스 시간
선점 스케줄링
OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우 (처리 시간 예측 어려움)
우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용 가능
대화식 시분할 시스템에 주로 이용됨
- 종류 : 라운드 로빈, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐 (MLFQ)