inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[CS Phỏng vấn kỹ thuật 2] Hệ điều hành dễ hiểu

Hàng đợi và Bộ lập lịch - Tìm hiểu về hàng đợi lập lịch tiến trình và các bộ lập lịch khác nhau

Suspend는 Ready 나 Blocked 상태에서 가능한거 아닌가요?

Đã giải quyết

81

PrivilegeEscalate

27 câu hỏi đã được viết

1

이전 프로세스 상태 파트에서, Suspend는 Ready 나 Block 상태에서 가능하다고 배웠는데요!

 

중기 스케줄러에 보시면 "실행 중인 프로세스를 메모리에서 디스크로 이동(Swap out)하거나 디스크에서 다시 메모리로 복구함" 이라고 나와있습니다.

 

실행 중인 프로세스는 실행 데이터가 메모리에 적재되고 CPU 자원을 할당받은 상태 아닌가요..?

운영체제 기술면접 computer-science 카카오공채-개발 카카오공채-채용

Câu trả lời 2

0

yiyj10305235

PrivilegeEscalate님 안녕하세요!
네, 말씀하신 대로 Suspend는 Ready나 Blocked 상태에서만 가능합니다.
제가 슬라이드에서 "실행 중인 프로세스"라고 표현한 것이 오해가 생겼네요.

컴퓨터가 여러 개의 프로그램을 동시에 실행할 수 있는 이유는 CPU가 매우 짧은 시간 단위로 프로세스들을 번갈아가며 실행(문맥 교환)하기 때문입니다. 실제로는 한 번에 하나의 프로세스만 CPU를 사용하지만(Running 상태), 너무 빠르게 전환되기 때문에 사용자는 여러 프로그램이 동시에 실행되는 것처럼 느끼게 됩니다. (*2장 하드웨어 수행과정, 4장 CPU 스케줄링에서 관련 내용이 나옵니다)

우리가 메모장을 켜도 그 프로그램은 CPU를 계속 점유하는게 아니라 Ready, Running, Blocked 상태를 오가며 수행되지만, 우리 입장에서는 분명히 "실행 중"으로 인식됩니다.

중기 스케줄러는 이러한 메모리에 올라와 실행 흐름 안에 있는 프로세스들 중,
우선순위가 낮거나 메모리 확보가 필요한 경우 해당 프로세스를 디스크로 swap out하는 역할을 합니다.

정리하면,
PrivilegeEscalate님이 이해하신 내용에서 틀린 건 없었지만
자료의 "실행 중인"이라는 말이 Running 상태로 한정된 것이 아니라,
메모리에 올라와 실행 사이클을 도는 좀 더 넓은 범위를 가리키다 보니
충분히 오해의 여지가 있었던 것 같습니다.

그럼, 언제나 편하게 질문주세요.
감사합니다.

0

PrivilegeEscalate

아..!! 사용자 관점에서의 "실행중" 이었군요. 덕분에 이해했습니다. 감사합니다.

0

communityai8509

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

질문해주신 내용은 운영체제에서 프로세스 상태 변화와 중기 스케줄러의 역할에 대한 부분으로 보입니다. Suspend 상태로의 전환은 보통 “Ready” 또는 “Blocked” 상태의 프로세스에서 발생하는 것이 일반적입니다. 이는 프로세스를 일시적으로 디스크로 이동시켜 메모리 자원을 절약하고, 나중에 다시 복구하여 메모리에 로드하기 위한 것입니다.

프로세스가 “Running” 상태에 있는 동안에 중기 스케줄러에 의해 즉시 Suspend 상태로 이동하지 않습니다. 일반적으로 프로세스가 CPU 사용을 멈추고 “Blocked” 또는 “Ready” 상태에 있을 때, 이를 디스크로 옮기는 작업이 이루어집니다. 이는 운영체제의 자원 관리를 위해 필요하며, 메모리를 비우고 우선순위가 높은 작업을 수행할 수 있도록 준비시키기 위한 전략입니다.

관련해서 더 자세한 설명을 알고 싶으시다면, 다음의 관련된 질문을 참고하실 수 있습니다:
- 컴퓨터 구성요소 시스템 버스 사진: 이 질문에서는 시스템 자원 흐름에 대한 중요한 개념과 관련하여 설명되어 있습니다. 이를 통해 메모리 및 CPU 자원 관리의 중요성을 이해할 수 있습니다.

제가 제공한 설명이 도움이 되길 바라며, 추가적인 질문이 있거나 궁금하신 점이 있다면 언제든지 질문해 주세요. 지식공유자께서 곧 추가적인 답변을 제공해 주실 것입니다.

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

안녕하세요. 계속 프로젝트를 해야지 하다가 결제하고 환경 설정 중입니다.

0

15

1

회사의 시스템 아키텍처를 포트폴리오에 써도 되나요?

1

39

2

REST API (Self-descriptive messages)

0

22

1

네트워크 전체 흐름 복습 질문

0

29

2

프로필 사진 세팅과 관련하여 질문 드립니다

1

47

2

시스템 엔지니어 관련 질문입니다.

0

50

2

구글 폼 작성 완료!

1

40

1

개발과 연관없는 경력 기입 여부

1

102

2

이직 준비 방향에 대한 조언을 구하고 싶습니다.

1

83

2

이력서 구성에 대한 질문드립니다.

1

88

2

직무 전환후 복귀시 고민

1

76

1

게임 프로그래밍 독학 로드맵 조언 부탁드립니다.

0

115

2

이력서에 들어가도 되는 요소들인 지 궁금합니다

1

123

2

경력의 포트폴리오

2

131

2

구글 폼 작성 완료했습니다.

1

67

2

글 작성에 대해서 여쭤보고 싶은게 있습니다!

1

118

1

직무전환의 경우, 다른 직무 경험도 기입하는게 의미 있을까요?

1

115

2

최근 업무에서 어필할 내용이 부족할 경우.

1

145

2

블로킹/논블로킹과 동기/비동기

1

105

3

입출력 명령을 위한 인터럽트 발생

1

91

2

강의 설명 끊김

1

94

3

메모리 최적화 다이어그램 검증

0

83

2

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

1

107

2

메모리 공간을 선택할 때 메모리 탐색 순서

0

78

1