스물두줄

정보관리기술사 · 클라우드 및 인프라

프로세스 상태 전이

프로세스 상태 전이는 운영체제가 CPU를 여러 프로그램에 나눠 주는 기본 원리다. 프로세스는 생성부터 종료까지 사건에 따라 상태를 바꾼다. 이 변화가 상태 전이다. 스케줄링, 교착 상태, 스레싱 같은 뒤의 개념도 이 상태 모델로 설명된다. 프로세스 상태는 생성, 준비…

주요 장면

  1. 0:02 프로세스 상태 전이란
  2. 0:21 5-상태 모델
  3. 0:53 전이 원인과 주체
  4. 1:16 라운드 로빈 예시
  5. 1:45 응답 시간 계산
  6. 2:03 문맥 교환과 타임 슬라이스
  7. 2:25 헷갈리는 점과 확인 문제

대본

프로세스 상태 전이란

프로세스 상태 전이는 운영체제가 CPU를 여러 프로그램에 나눠 주는 기본 원리다.

프로세스는 생성부터 종료까지 사건에 따라 상태를 바꾼다. 이 변화가 상태 전이다.

스케줄링, 교착 상태, 스레싱 같은 뒤의 개념도 이 상태 모델로 설명된다.

5-상태 모델

프로세스 상태는 생성, 준비, 실행, 대기, 종료의 다섯 가지가 기본이다.

준비는 CPU만 받으면 바로 실행할 수 있는 상태다. 실행은 CPU를 점유해 명령을 수행한다.

화살표는 상태 전이다. 실행에서 대기로 가는 블록과 대기에서 준비로 가는 웨이크업이 핵심이다.

준비에서 실행으로 가는 전이를 직접 풀어 보자.

전이 원인과 주체

앞 문제의 정답은 디스패치다. 준비에서 실행으로 가는 유일한 경로다.

CPU 반납은 타임 슬라이스가 만료되거나 선점될 때 일어난다.

사건 대기는 프로세스 스스로 입출력을 요청해 CPU를 반납하는 블록이다.

타임아웃과 블록은 원인과 주체가 다르므로 따로 설명한다.

라운드 로빈 예시

예로 P1, P2, P3이 있고 타임 슬라이스가 10ms인 라운드 로빈 환경을 보자.

P1이 4ms를 쓰고 입출력을 요청하면 실행에서 대기로 블록 전이가 일어난다.

P2가 10ms를 모두 쓰면 타임아웃으로 준비에 돌아가고, P3가 디스패치된다.

P1의 입출력이 끝나면 인터럽트로 대기에서 준비로 웨이크업되어 리스트 끝에 들어간다.

응답 시간 계산

응답 시간은 대기 시간과 서비스 시간을 더한 값이다.

대기 시간 15ms, 서비스 시간 20ms라면 응답 시간은 35ms다.

응답률은 35를 20으로 나눈 1.75다. 결과는 상식 범위 안이다.

문맥 교환과 타임 슬라이스

프로세스를 바꿀 때는 문맥 교환이 일어난다.

운영체제는 PCB에 현재 문맥을 저장하고, 다음 프로세스의 문맥을 복원한다.

타임 슬라이스가 너무 짧으면 문맥 교환이 잦아 성능이 떨어진다.

너무 길면 대화형 작업의 응답이 늦어진다. 적정값은 구현마다 다르다.

헷갈리는 점과 확인 문제

가장 많이 감점되는 실수는 Ready와 Sleep을 같은 상태로 쓰는 것이다.

Ready는 CPU를 기다리는 상태이고, Sleep·Blocked는 입출력이나 사건을 기다리는 상태다.

Dispatch를 실행 중 CPU 반납으로 쓰면 틀린다. 준비에서 실행으로 가는 전이다.

전이 원인과 주체를 함께 쓰면 원리 점수를 지킬 수 있다.

같은 장의 영상