강의

멘토링

커뮤니티

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

southgyuios19님의 프로필 이미지
southgyuios19

작성한 질문수

[CS 기술면접 2] 말이 트이는 운영체제

프로세스 상태 다이어그램 검증 및 질문

해결된 질문

작성

·

29

1

image.png


5~8강을 보고 정리를 다이어그램을 그려봤는데 틀린 부분이 있으면 말씀해주셨으면 좋겠습니다.

질문

  • Blocked 상태인 프로세스가 Swap out 되어 디스크로 쫓겨나더라도, 이전에 요청했던 입력 작업은 해당 키보드 컨트롤러가 멈추지 않고 계속 수행하는 것이 맞나요?

    만약 맞다면 이후 사용자가 입력을 완료해서 인터럽트가 발생하면 CPU가 이를 인지하고 운영체제에게 제어권을 넘겨주게 되는데,

    이때 운영체제가 키보드 컨트롤러로부터 입력된 데이터를 받아오고, 해당 프로세스의 상태를 Suspended-Blocked에서 Suspended-Ready로 변경해 주는 것인가요?

답변 2

1

이용준님의 프로필 이미지
이용준
지식공유자

1. 프로세스 상태 다이어그램

전체 흐름을 잘 정리하셨습니다 👍
New 상태를 Job Queue에 표시하셨는데
Job Queue에 있던 프로그램이 선택되어 프로세스가 생성되고,
New 상태를 잠시 거쳐 Ready 상태로 진입한다고 이해해주시면 됩니다.
New 상태는 메모리에 적재되기 직전의 매우 짧은 상태인거죠.

그리고 추가로 알아두시면 좋은 점은,
Suspended-Blocked → Suspended-Ready 전이는 이론적으로는 가능하지만
운영체제 구현에 따라 아예 없는 경우도 있다는 점입니다.
이 경우에는 메모리에 없는 상태에서 I/O가 완료되면
별도의 중간 상태를 거치지 않고
바로 swap-in 대상이 되어 메모리에 올라온 뒤 Ready 상태로 전환됩니다.


2. Blocked 상태 프로세스

말씀해주신 흐름은 전부 맞습니다.
운영체제가 키보드 컨트롤러로부터 입력된 데이터를 받아온 뒤,
해당 입력을 기다리던 프로세스를 확인하게 됩니다.
이때 그 프로세스가 Suspended-Blocked 상태라면,
(해당 상태를 명시적으로 두는 구현의 경우)
Suspended-Ready 상태로 전환됩니다.

southgyuios19님의 프로필 이미지
southgyuios19
질문자

좋은 답변 감사합니다!

0

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

southgyuios19님이 그린 프로세스 상태 다이어그램을 통해 운영체제의 프로세스 관리에 대해 잘 이해하고 계신 것 같습니다. 프로세스의 상태 전환과정에서 궁금한 점에 대해 답변드리겠습니다.

  1. Blocked 상태에서 스와프 아웃이 되어도, I/O 장치(예: 키보드 컨트롤러)는 계속해서 데이터를 수집합니다. 이 과정은 하드웨어 레벨에서 이루어지기 때문에 키보드 입력이 계속 진행될 수 있습니다.

  2. 맞습니다. 인터럽트가 발생하면 CPU는 현재 작업을 중단하고 운영체제에 제어권을 넘겨줍니다. 운영체제는 이를 통해 I/O가 완료된 것을 인지하게 되고, Suspended-Blocked로 상태가 표시되었던 프로세스를 메모리로 다시 불러와 Suspended-Ready로 상태를 변경할 수 있습니다. 이는 해당 프로세스를 다시 실행할 준비가 되었다는 것을 의미합니다.

작업이 완료된 프로세스를 메모리에 다시 적재하는데는 메모리 관리, 프로세스 우선순위 등에 따른 정책이 적용될 수 있으니 이 점도 함께 고려해 보세요.

좀 더 자세한 내용은 다음 게시물들을 참고하시면 도움이 될 것입니다:

해당 링크에서 프로세스 상태 전이와 관련한 다양한 상황을 추가적으로 확인할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

southgyuios19님의 프로필 이미지
southgyuios19

작성한 질문수

질문하기