본문 바로가기
운영체제

7. 운영체제 - 프로세스 상태(Process State)

by #Glacier 2019. 12. 27.
반응형

멀티 프로그래밍 : CPU 활용도를 극대화 하는 스케쥴링 알고리즘

Wait : 저장매체로부터 파일 읽기를 기다리는 시간으로 가정

 

이렇게 하나가 실행되고, 대기시간에 접어들 때 다른 프로그램을 실행시키면서 CPU의 활용도를 높일 수 있습니다.

 

프로세스의 상태는 이렇게 나누어지는데, 어느 시점에 어떤 프로세스를 실행시킬 것인가에 중요한 영향을 끼칩니다.

 

Running State : 현재 CPU에서 실행 중

Ready State : CPU에서 실행 가능 상태(실행 대기)

Block State : 특정 이벤트 발생 상태(ex, 프린트가 가 되거나, 읽기 완료 등)

 

즉, 어느 시점에 Running되다가, 파일 읽기가 이루어 질 때 그 다음 코드는 실행되지 못하기 때문에

block 상태로 바뀌고, 읽기를 마친 후 ready로 변경되어 스케쥴러에게 running 될 수 있음을 알리게 됩니다.

그런데, 여러 프로세스가 ready상태인 경우, 스케쥴러는 어떤 프로세스를 실행하게 될까요?

 

보통, 3개의 큐를 만들어 관리합니다.

 

Ready State Queue, Running State Queue, Block State Queue

 

Ready State Queue에서 pop된 프로세스를 실행하면서, Running State Queue에 넣습니다.

모두 다 마쳤을 경우, Ready State Queue에 다시 들어가거나, Exit 상태가 됩니다.

단, 도중에 읽기, 프린트 등 CPU를 사용하지 않는 경우 Block State Queue에 들어가고,

모두 마쳤을 경우 다시 Ready State Queue로 들어갑니다.

이렇게, 한 시점씩(시분할 시스템임을 가정) 순서대로, 상태에 따라 돌게 됩니다.

 

그 중간중간, CPU가 아무것도 하고 있지 않는, 쉬고 있는 시간을 유휴 시간(idle time)이라고 합니다.

 

 

 출처 

이 글의 상당 부분은 패스트캠퍼스 컴퓨터 공학 기초 강의를 참고하였습니다.

개인 학습, 복기용이기 때문에 복제를 금합니다.

관심이 있으시다면 같이 공부하시거나, 해당 관련 강의를 직접 수강하시는 것을 추천합니다!

 

도움이 되시거나 더 좋은 지식을 공유하고 싶으시다면

아래의 댓글로 자유롭게 남겨주세요.

 

반응형