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