inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

그림으로 쉽게 배우는 운영체제

페이지드 세그멘테이션(배치정책)

논리주소에서 물리주소를 구하는 과정에 대해 질문 드립니다. (질문 2개)

해결된 질문

484

하얀종이개발자

작성한 질문수 7

2

  1. 논리주소에서 세그먼트번호는 어떻게 알 수 있나요?

페이지드 세그멘테이션 강의 2:50 부분

페이징 분할 방식은 고정된 크기로 메모리를 분할하기에 페이지번호는 논리주소 / 페이지 크기로 구할 수 있었는데요. 논리주소에서 세그먼트 번호를 어떻게 추출하는지 궁금해요.

 

  1. 프레임 번호 + 세그멘테이션 테이블의 페이지 개수(bound adress)가 물리주소가 되는게 이해가 되지 않아요.

페이지드 세그멘테이션 강의 3:40~ 3:50 부분

주소가 변환 과정을 거칠때 세그멘테이션 테이블 참조 -> 페이지 테이블 참조 -> 프레임 번호 + 세그멘테이션 테이블의 페이지 개수(bound adress)를 더해서 물리주소를 구한다고 설명해주셨는데, 세그먼트의 시작 주소부터 얼마까지의 limit을 나타내는 bound adress를 더하는게 잘 이해가 가지않아서요. 오히려 오프셋을 더해야 하는거 아닌지 싶은데, 이부분 한번 더 설명해주시면 감사합니다.

운영체제 그림으로쉽게배우는운영체제 감자 워밍업클럽2기

답변 2

0

감자

안녕하세요 하얀종이개발자님!


1. 이 부분은 운영체제마다 다를 수 있지만, 해당 영상에서는 0x12300번지에 접근할 때 가장 앞에 있는 비트를 보고 1번 세그먼트로 결정했습니다. 이런 이유로 영상에선 1을 빨간색으로 강조표시 해두었습니다.

 

2.영상에서 이 부분을 잘못 설명한 것 같습니다.
bound address는 메모리를 침범하는지 확인하는 용도로 쓰입니다.
말씀주신 것처럼 프레임을 구하고 실제 offset은 논리 주소에서 일정 비트를 참고합니다.
영상처럼 0x12300으로 예를 들면 가장 앞비트인 1은 세그멘테이션 테이블을 참고하는데 쓰입니다.
만약 offset을 뒤로부터 세 자리를 사용한다면 offset은 300이 되고, 프레임에서 300만큼 떨어진 곳이 물리주소가 됩니다.
혼란을 드려서 죄송합니다. 🙇‍♂


2

하얀종이개발자

빠른 답변해주셨네요.
그림을 통한 설명이 이해하기 너무 좋게 되어있어서 궁금한 부분 질문드릴 수 있었던 것 같아요.

감자님 덕분에 개념 하나 하나 제대로 배우고 있습니다. 2번 질문 부분은 프레임에서 오프셋만큼 떨어진 곳이 물리주소라고 이해하고 학습하겠습니다.!!
감사합니다 ㅎㅎ

0

인프런 AI 인턴

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

하얀종이개발자님께서 질문하신 논리주소와 물리주소 변환 과정에 대해 설명드리겠습니다. 강의 내용을 이해함에 있어 도움이 되길 바랍니다.

  1. 논리주소에서 세그먼트 번호 추출 방법:
    세그먼트 번호는 논리 주소에서 미리 정해진 규칙에 따라 추출됩니다. 보통 논리주소 중 특정 비트를 세그먼트 번호로 지정하는 방식인데, 이는 시스템 설계에 따라 다를 수 있습니다. 강의 내용으로 조정되는 부분이 있을 수 있지만 일반적인 방식은 논리 주소의 앞 몇 비트를 세그먼트 번호로 보고 나머지를 오프셋으로 사용합니다.

  2. 프레임 번호와 Bound Address의 역할:
    프레임 번호와 세그멘테이션 테이블에 나열된 페이지 개수 또는 limit를 단순히 더해서 물리 주소를 구한다기보다, 논리 주소의 오프셋을 더해 최종 물리 주소를 계산하게 됩니다. 여기서 이해해야 할 부분은, 세그멘테이션 테이블을 참조해 얻은 Base address(세그먼트 시작 주소)와 페이지 테이블을 통해 얻은 프레임 시작 주소를 가져온 후, 논리 주소의 오프셋을 이 시작 주소에 더한다는 점입니다. 오프셋은 세그먼트나 프레임 내에서의 위치를 나타내므로 최종적으로 물리 주소 계산 시 사용됩니다.

이 부분에 대한 더 자세한 설명은 여기에서 “논리주소와 BoundAddress의 비교”에 대해 논의된 내용을 통해 확인하실 수 있습니다. 각 프로세스의 테이블이 어떻게 관리되고 있는지도 참고하시기 바랍니다.

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

여러 의문점

1

63

1

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

1

58

2

CPU Bound Process와 sleep, yield에 대해

1

62

1

커널과 인터페이스 개념

1

65

2

exit() 함수

0

156

2

LRU 관련 질문

1

184

2

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

0

115

2

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

0

149

2

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

1

168

2

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

1

129

2

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

0

118

2

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

0

120

2

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

1

144

2

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

0

153

1

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

0

153

2

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

1

128

2

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

1

164

1

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

1

81

2

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

3

173

2

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

1

93

2

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

0

116

2

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

0

121

2

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

0

97

1

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

1

168

2