Cộng đồng Hỏi & Đáp của Inflearn
여러 의문점
Viết
·
58
1
의문점이 많네요...
CPU가 MMU에게 논리주소를 전달
-> 몇 번 세그먼트 인지 알아냄
-> MMU내의 세그먼트 테이블 베이스 레지스터를 이용해 메모리 내에 있는 세그멘테이션 테이블을 찾음
이 과정인데, 의문점은
MMU에서 몇 번 세그먼트인지 어떻게 알아내는가?
( 몇 번 세그먼트에서 '몇 번'이라는게 애초에 무엇을 의미하나요?
힙, 스택, 데이터, 코드 각 영역을 개별의 세그먼트로 인식하는데, 프로세스가 여러개니 말 그대로 여러 영역을 나열했을 때 n번에 해당하는 것을 의미하는건가요?
아니면 각 프로세스의 모듈중 n번째를 의미하는 건가요?MMU내의 세그먼트 테이블 베이스 레지스터는 CPU옆에 위치하나요?
-> MMU는 어디에 있는걸까요?컨텍스트 스위칭 할 때마다 세그먼트 테이블 베이스 레지스터를 해당 프로세스의 것으로 바꿔준다고 하셨는데 무슨 값인지 어떻게 알고 바꿔주나요? PCB에 있나요? ( '바꿔주는 값'은 자신의 세그먼트 테이블은 메모리의 n번지에 있음을 나타내는 값인가요? )
-> 세그멘테이션 테이블은 프로세스마다 개별로 존재하는지?
추가로 예시로 들어주신거에서 "CPU에서 세그먼트 1번이 632번지로 접근한다고 가정" 이 문장이 이해가 잘 안가네요
CPU가 논리주소 632번지로 접근한다고 하는것과 뭐가 다른건가요?
Quiz
가상 메모리 시스템을 사용하는 주된 이유는 무엇일까요?
CPU 처리 속도를 높이기 위해서
물리 메모리 용량의 제약을 극복하기 위해서
하드 디스크의 수명을 연장하기 위해서
네트워크 통신 속도를 빠르게 하기 위해서
Câu trả lời 1
0
안녕하세요 넘블님!
바로 답변드리겠습니다.😊
MMU에서 몇 번 세그먼트인지 어떻게 알아내는가?
MMU가 몇 번 세그먼트인지 알아내는 것은 CPU에서 들어오는 논리주소를 2차원적으로 해석합니다.
논리주소의 앞에 n번째 필드를 몇 번 세그먼트인지, 나머지는 해당 세그먼트에서 offset을 나타냅니다.MMU내의 세그먼트 테이블 베이스 레지스터는 CPU옆에 위치하나요?
-> MMU는 어디에 있는걸까요?
보통 세그먼트 테이블 베이스 레지스터와 MMU는 CPU내부에 존재합니다.(경우에 따라 가까이 있는 다른 하드웨어)컨텍스트 스위칭 할 때마다 세그먼트 테이블 베이스 레지스터를 해당 프로세스의 것으로 바꿔준다고 하셨는데 무슨 값인지 어떻게 알고 바꿔주나요? PCB에 있나요? ( '바꿔주는 값'은 자신의 세그먼트 테이블은 메모리의 n번지에 있음을 나타내는 값인가요? )
네 맞습니다. 컨텍스트 스위칭할 때 현재 레지스터 값, 스케줄링 정보, 메모리 관련 정보(세그먼트 테이블 베이스)등을 저장합니다.
-> 세그멘테이션 테이블은 프로세스마다 개별로 존재하는지?
네 맞습니다.추가로 예시로 들어주신거에서 "CPU에서 세그먼트 1번이 632번지로 접근한다고 가정" 이 문장이 이해가 잘 안가네요
CPU가 논리주소 632번지로 접근한다고 하는것과 뭐가 다른건가요?
CPU에서 세그먼트 1번이 632번지로 가정이라는 것은 실제로 전달된 주소는 (세그먼트 = 1, 오프셋 = 0x632)라는 것입니다.
영상에선 이 부분이 생략되어서 이해가 잘 안되셨던 것 같습니다.
더 자세하기 설명드렸어야 했는데 부족했던 것 같습니다.🙇♂
궁금증이 해결되셨나요? 😊






아 이해가 됐습니다
친절한 답변 감사드립니다!!