inflearn logo
강의

講義

知識共有

図で簡単に学ぶオペレーティングシステム

デッドロック解決(feat.銀行家アルゴリズム)

각 메모리의 최대 요구 CPU 리소스는 어떻게 아나요?

解決済みの質問

167

chatterbones

投稿した質問数 24

1

이전 강의에서 "SJF 알고리즘은 각 프로세스의 CPU Burst Time을 예측하기 매우 어렵다."고 하셨는데, 최대 요구 CPU 리소스 예측도 CPU Burst Time 예측과 다른 게 없지 않나 생각하거든요. 그런데 여기선 "예측한 최대 요구 CPU 리소스 이상은 절대 안 쓴다!"라고 단정짓고 진행된 것 같아서 뭐가 다른 건지 궁금합니다.

 

그리고... 이건 제가 공부를 제대로 안 한 건지 모르겠는데요. 한 프로세스에는 그 프로세스가 쓸 프로세스만큼 맨 처음에 할당받고 Waiting으로 넘어가는 거 아니었나요? 생성 시점에 코드랑 데이터를 보면 이 프로세스에 얼만큼 리소스가 필요한지 알 수 있을 텐데... 그러니까 '최대 요구 자원'이라는 개념 자체가 이해가 안 됩니다.

운영체제

回答 2

0

gamja5

최대 요구 자원과 Burst time은 비슷해보이지만 차이가 있습니다.

Burst Time을 예측하는 것은 스케줄링을 위한 추정치인 반면 최대 요구 자원은 시스템의 안정성을 위한 상한선, 즉 약속과 같습니다.

최대 요구 자원은 CPU(해당 프로세스는 최대 10번의 Burst Time, 각 Burst Time의 최대 Burst Time은 10ms)를 포함한 메모리(해당 프로세스가 사용할 최대 메모리 설정, ex: 4GB), I/O 장치등을 포함합니다. 운영체제는 이 정보를 바탕으로 자원을 할당하는 것이죠.

프로세스의 코드와 데이터를 보면 최대 요구 자원을 확인할 수 있을 것 같지만 현실적으로 어려움이 있습니다.

코드내 반목문, 조건문 같은 분기문과 I/O, 동적 메모리 할당이 있기 때문에 이를 모두 컴파일러가 정밀하게 계산하는 것은 어렵습니다.

따라서 사용자가 명시적으로 알려주거나 운영체제가 보수적으로 설정해 데드락에 빠지지 않게 만들어 시스템의 안정성을 올려줍니다.

BurstTime은 예측을 통해 스케줄링을 하며 성능의 감소, 상승이 있다면

최대 요구 자원은 명시, 예측을 통해 시스템의 안정성을 책임집니다!

0

communityai8509

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

최대 요구 CPU 리소스와 관련하여 질문해 주셨습니다. 이 부분에 대해 명확히 이해하는 것은 시스템 성능의 최적화를 위해 매우 중요합니다.

  1. 최대 요구 자원 예측: 말씀하신대로, CPU Burst Time을 예측하는 것은 어렵습니다. 그러나 운영체제 및 스케줄러는 각 프로세스가 최대 얼마의 자원이 필요할지를 ‘보수적으로’ 예측하여 시스템 자원 할당을 관리합니다. 이는 주로 과거의 실행 기록이나 프로세스의 특성을 기반으로 이루어집니다.

  2. 최대 요구 자원과 예측 차이: 실제로 ‘최대 요구 자원’이라는 개념은 시스템이 최악의 경우에 대비해 항상 확인하는 척도로 이해할 수 있습니다. 프로세스가 얼마나 자원을 사용할지를 예상하여 미리 최대 요구 자원을 할당함으로써 자원의 고갈이나 충돌을 피할 수 있습니다. 이는 운영체제의 안정성과 효율성을 보장하는 방법 중 하나입니다.

  3. 프로세스 생성 시 자원 할당: 프로세스 생성과 동시에 실행에 필요한 메모리와 같은 기본적인 시스템 자원이 할당됩니다. 그러나, 이 경우 말하는 ‘최대 요구 자원’은 CPU 사용량을 포함한 보다 포괄적인 자원사용을 의미합니다.

기존의 답변에서 유사한 내용을 찾을 수 있었습니다:
- SJF 알고리즘에 대한 이해와 현실에서의 적용

위 링크와 답변 내용을 참조하시면, 프로세스 스케줄링 관련 여러 알고리즘과 그들의 추정 방식에 대해 더 이해하실 수 있습니다.

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

여러 의문점

1

63

1

CPU 스케줄링 RR 강의 2:54에서 질문 있습니다.

1

57

2

CPU Bound Process와 sleep, yield에 대해

1

60

1

커널과 인터페이스 개념

1

64

2

exit() 함수

0

154

2

LRU 관련 질문

1

182

2

고정 분할 방식도 연속 할당으로 알고 있는데 애니메이션이 다소 헷갈립니다.

0

115

2

Swapping, Manual Overlay, Dynamic Loading, Dynamic Linking의 개념이 헷갈립니다

0

147

2

PCB들이 연결리스트로 저장되는 이유가 뭔가요?

1

127

2

IPC 방식 중 매개체가 파일과 메모리일 때 할당되는 용량의 차이

0

116

2

고정 분할 방식에 질문입니다

0

120

2

세마포어에 관련해 질문입니다

1

144

2

IPC 통신 중 파일을 이용한 방법이 정확히 어떤 건가요?

0

152

1

공유자원과 동기화 문제에 관해서 질문이 있습니다.

0

152

2

FIFO 알고리즘에 대해서 질문이 있습니다.

1

128

2

멀티프로그래밍, 멀티 태스킹, 멀티 프로세싱

1

163

1

새로 올라온 영상에서 스와핑 언급이 빠졌는데

1

80

2

유니프로그래밍과 멀티프로세싱이 어떻게 공존할 수 있는 건가요?

3

173

2

인터럽트에 대해 질문 드립니다.

1

93

2

수업 노트 설명에 대해 이해가 안가는 부분이 있어 질문 드립니다.

0

113

2

3:59초에 대해서 궁금해요!

0

117

2

실무적으로 궁금한게 있습니다ㅠ

0

95

1

완강을 해보니 오히려 더 궁금한게 많아지네요

1

166

2

파일디스크립터 질문드려요.

0

128

2