티스토리 뷰
패스트캠프 강의를 듣고 정리했습니다.
프로세스 상태와 스케쥴링
멀티 프로그래밍과 Wait
- 멀티프로그래밍
- CPU 활용도를 극대화 하는 스케쥴링 알고리즘
- Wait
- 간단히 저장매체로부터 파일 읽기를 기다리는 시간으로 가정
프로세스 상태
- running state: 현재 CPU에서 실행 상태
- ready state: CPU에서 실행 가능한 상태(실행 대기 상태)
- block state: 특정 이벤트 발생 대기 상태(예: 프린팅 다 되었다!)
프로세스 상태간 관계
- Process block for input.[blocking]
- CPU자원이 필요없는 I/O wait, Lock, Idle, event wait
- Scheduler picks another process.[dispatch]
- Scheduler picks this process[timeout]
- Process becomes available[unblocking]
선점형과 비선점형 스케쥴러
- 선점형 스케쥴러(Preemprive Scheduling)
- 하나의 프로세스가 다른 프로세스 대신에 프로세스(CPU)를 차지할 수 있음
- 프로세스 running중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체 가능
- RoundRobin은 시분할 시스템을 위한 기본 알고리즘
- 비선점형 스케쥴러(Non-preemprive Scheduling)
- 하나의 프로세스가 끝나지 않으면 다른 프로세스는 CPU를 사용할 수 없음
- 프로세스가 자발적으로 blocking 상태로 들어가거나, 실행이 끝났을 때만, 다른 프로세스로 교체 가능
- FIFO(FCFS), SJF, Priority‑based 는 어떤 프로세스를 먼저 실행시킬지에 대한 알고리즘(선점형, 비선점형 구분 X)
쉬어가기
랙? 마우스/키보드 반응이 느린경우?
스케쥴러가 해결해야하는 이슈!
다양하고 복잡한 스케쥴링 알고리즘 필요
리눅스 스케쥴러: O(1), CFS와 같이 다양한 방식으로 변경시도 중
인터렉티브, IO, CPU 중심 프로세스로 미리 구분할 수 있다면 스케쥴링이 가능하다.
'개발 > 상식' 카테고리의 다른 글
[운영체제] 7. 프로세스간 커뮤니케이션 (0) | 2019.12.19 |
---|---|
[운영체제] 6. 프로세스 구조 (0) | 2019.12.19 |
[운영체제] 5. 인터럽트 (0) | 2019.12.19 |
[운영체제] 3. 프로세스 스케쥴링 알고리즘 (0) | 2019.12.19 |
[운영체제] 2. 프로그램 처리 방법들 (0) | 2019.12.19 |
[운영체제] 1. 운영체제의 큰 그림 (0) | 2019.12.19 |