인프런 커뮤니티 질문&답변

김영빈님의 프로필 이미지
김영빈

작성한 질문수

곰책으로 쉽게 배우는 최소한의 운영체제론

프로세스 휴식, 보류 상태와 문맥

ready queue에 있던 프로세스들이 sleep이나 suspend되는 게 가능한가요?

해결된 질문

작성

·

118

0

프로세스 휴식, 보류상태와 문맥 강의 4:15초 즈음의 설명에서

ready_queue에 있던 프로세스들이 sleep되거나 suspend된다고 하셨는데, 그게 가능한가요??

ready -> 실행 -> sleep 혹은 ready -> 실행 -> suspend를 줄여서 설명하신건가 싶다가도

suspend를 설명하실 때 큐 중간에 있던 프로세스를 색칠하신 표현이 마음에 걸리네요

ready_queue에 들어있던 ready상태의 프로세스가 단번에 suspend되거나 sleep되는 것이 가능할까요?

답변 2

1

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

영상을 다시 보니...

job_queue와 섞어서 설명을 이어간 것 같습니다. 인프런 AI 답변처럼 본래 ready_queue에서 상태전환이 일어나는 것은 맞지 않습니다. 관련해서 영상을 보완하도록 하겠습니다. 고맙습니다. 😄

0

안녕하세요, 인프런 AI 인턴입니다.

ready_queue에 있던 프로세스가 sleep이나 suspend 상태로 전환되는 것은 운영 체제의 디자인과 관리 전략에 따라 다릅니다. 일반적으로 프로세스 상태는 다음과 같이 변할 수 있습니다:

  1. Ready 상태에서 Running 상태로: 프로세서가 사용 가능할 때 운영 체제 스케줄러는 ready_queue에서 프로세스를 선택하여 실행(Running) 상태로 전환합니다.
  2. Running 상태에서 Ready 상태로: 현재 실행 중인 프로세스가 프로세서를 릴리스하고 다시 ready_queue에 들어가 기다립니다.
  3. Running 상태에서 Waiting(Sleep) 상태로: 실행 중인 프로세스가 입출력 요청과 같은 이벤트를 기다려야 할 경우, Waiting 상태로 전환됩니다.
  4. Running 상태에서 Suspended 상태로: 시스템 자원이 부족하거나 사용자의 요청으로 프로세스의 실행을 일시적으로 중단하고 메모리에서 디스크로 옮겨 Suspended 상태로 전환할 수 있습니다.

따라서, ready 상태의 프로세스가 직접 sleep이나 suspend 상태로 전환되는 것은 일반적인 흐름에서 보기 어렵습니다. 보통 프로세스는 Running 상태에서 해당 상태로 전환됩니다. 강의에서 언급된 부분은 이러한 상태 변화 과정을 설명하는 과정에서 간소화하거나 특정 상황을 가정하여 설명된 것일 수 있습니다.

실제 시스템에서는 운영 체제의 구체적인 스케줄링 정책과 프로세스 관리 방식에 따라 다소 차이가 있을 수 있습니다.

김영빈님의 프로필 이미지
김영빈

작성한 질문수

질문하기