- 실행중인 프로그램
- 프로세스의 CPU 할당 순서 및 방법을 결정짓는 일 '스케줄링' 이때 사용되는 알고리즘 '스케줄링 알고리즘'
- 실제로 프로세스를 관리하는 운영체제 요소 (모듈)를 가리켜 '스케줄러'라고 한다.
프로세스의 상태변화
1. 프로세스의 생성 -> Ready 상태로의 전환 -> Ready상태에서 스케줄러에 의해 선택전까지 대기
2. Ready상태에서 스케줄러에 의해 실행 -> Running
3. Running상태에서 우선순위에 의해 Ready상태로의 전환
4. Running상태에서 Blocked상태로의 전환 -> 데이터 입출력에 관한 일을 수행하는 경우(프로그램 실행의 상당 부분을 입출력에 소모하기 때문), Blocked상태는 스케줄러에 의해 선택될수없음
5. Blocked상태에서 Ready상태로의 전환 -> 입출력이 완료된 Blocked 상태의 프로세스는 Ready 상태로 전환
- Ready상태의 프로세스는 스케줄러에 의해 바로 실행 가능 , Blocked상태의 프로세스는 불가능
컨텍스트 스위칭
- 예) 프로세스 A 관련 레지스터 정보는 메모리에 저장 , 프로세스 B와 관련된 레지스터 정보는 CPU의 레지스터에 복원
- 컨텍스트 스위칭은 시스템에 많은 부담이 된다.
'프로그래밍 > 시스템프로그래밍' 카테고리의 다른 글
1.3 쓰레드의 동기화 (0) | 2019.09.25 |
---|---|
1.2 쓰레드의 생성과 소멸 (0) | 2019.09.25 |
1.1 쓰레드 (0) | 2019.09.24 |
3. 커널 오브젝트 (0) | 2019.09.23 |
1. 스레드 개요 (0) | 2019.09.19 |