728x90
반응형
다중 프로그래밍의 목적은 CPU이용을 최대화 하는 것
프로세스 스케줄러는 CPU에서 실행 가능한 여러 프로세스 중에서 하나의 프로세스를 선택
프로세스의 스케줄링 큐 관리
- 준비 큐 (Ready Queue)
- 메인 메모리에 존재
- 준비 완료 상태의 실행을 대기하는 프로세스 집합
- 연결 리스트로 저장
- 대기 큐 (Wait Queues)
- 특정 이벤트(입·출력 작업)를 기다리는 프로세스 집합
- 각 장치는 자신만의 장치 큐를 가짐
스케줄러 (Schedulers)
장기 스케줄러 (Long-term Scheduler or Job Scheduler)
풀(Pool)에서 프로세스를 선택 후, 실행하기 위해 준비 큐(Ready Queue)로 적재 → Giving Memory
- 실행 간격 짧음, 매우 빨라야 함
단기 스케줄러 (Short-term Scheduler or CPU Scheduler)
실행 준비가 완료되어 있는 프로세스 중 하나를 선택 후, CPU를 할당 → Giving CPU
- 실행 빈도수 적음
- 다중 프로그래밍의 정도(메모리에 있는 프로세스의 수) 제어
중기 스케줄러 (Medium-term Scheduler)
- 시분할 시스템과 같은 일부 OS에서 추가로 도입
- 메모리에서 CPU를 위해 경쟁하는 프로세스를 제거해서 다중프로그래밍의 정도를 완화
- 스와핑(Swapping): 차후에 다시 프로세스를 불러와서 중단된 지점부터 실행 재개
- Swap out: process를 out
- Swap in: process를 in
프로세스 종류
- 입·출력 중심 프로세스 (I/O-bound Process)
- 연산보다 입·출력에 더 많은 시간을 소요
- CPU 중심 프로세스 (CPU-bound Process)
- 연산에 시간을 더 소요, 입·출력 요청 드물게 발생
문맥 교환 (Context Switch)
문맥 교환
CPU를 다른 프로세스로 교환하기 위해,
- 시스템은 이전 프로세스 상태(PCB)를 보관하고,
- 새로운 프로세스의 저장된 상태(PCB)를 적재하는 것
문맥(Context): CPU 레지스터의 값, 프로세스 상태, 메모리 관리 정보를 포함
문맥 교환 시간은 순수한 오버헤드
문맥 교환 시, 시스템이 아무런 유용한 일을 못함
728x90
반응형
'Computer Science > Operating System' 카테고리의 다른 글
[OS] 프로세스간 통신 (Cooperating Processes) (0) | 2024.04.29 |
---|---|
[OS] 프로세스에 대한 연산 (Operations on Processes), 프로세스 생성&종료 (0) | 2024.04.28 |
[OS] 프로세스란? (0) | 2024.04.27 |
[OS] 운영체제 생성과 시스템 부트(System Boot) (0) | 2024.04.27 |
[OS] 운영체제 디버깅 (OS Debugging) (0) | 2024.04.27 |