///////
Search
2️⃣

연습문제 5 ~ 8

문제

1.
32bit CPU를 사용하는 컴퓨터가 가질 수 있는 물리 메모리의 최대 크기는 얼마인가?
→ 4GB
CPU의 bit는 한 번에 다룰 수 있는 데이터의 최대 크기를 의미한다.
CPU 내부부품들은 이 bit를 기준으로 제작된다. ( 레지스터, 연산장치, 버스, 대역폭 등 )
메모리주소를 지정하는 메모리 주소 레지스터 크기 또한 32bit 이므로 표현 가능한 메모리 주소의 범위가 0 ~ 2^32 - 1 이다. ( 16진수로는 00000000 ~ FFFFFFFF )
따라서 물리 메모리의 총 크기는 2^32B 이며 이는 곧 4GB이다.
2.
절대 주소는 실제 물리 주소로, 메모리 관리자 입장에서 바라본 주소이다. 절대 주소와 관계 없이 사용자 입장에서 항상 0번지부터 시작하는 주소는 무엇인가?
→ 상대주소
메모리 영역 구분
프로세스는 처리에 필요한 데이터를 메모리 주소를 통해 가져온다.
메모리는 운영체제 영역과 사용자 영역으로 나뉘어 관리되며 운영체제 영역은 침범되어선 안된다.
이 경계가 경계레지스터에 저장되어, 프로세스가 메모리 경계를 벗어 나 작업을 요청하면 종료된다.
→ 프로세스는 데이터를 메모리 주소를 통하여 가져오고, 이 메모리 주소는 엄격하게 구역이 나뉘어져 있다.
절대주소, 상대주소
물리적 메모리 주소 즉, 절대주소를 사용자가 알게되어 이용하면 보안상 좋지 않고, 주소를 파악하기도 어렵다.
따라서 절대 주소를 알지 않아도 메모리를 사용할 수 있게 하는 것이 상대주소이다.
절대주소는 물리 주소 0번지 부터 시작하고 물리 주소 공간을 사용하며, 상대 주소는 물리주소와 관계없이 사용자관점에서 항상 0번지 에서 시작하며 논리 주소 공간을 사용한다.
3.
상대 주소를 절대 주소로 변환할 때 사용하는 레지스터는 무엇인가?
→ 재배치 레지스터
위에서 알아본 것 처럼 상대주소는 본래의 물리 주소에서 변환된 값을 사용하는 것이다.
이를 컴퓨터가 프로세스를 실행하는데 사용하려면 원래의 물리주소 값으로 변환을 해야한다. 이를 재배치 레지스터를 통해 한다.
즉, 주소변환의 기본이 되는 주소값을 가진 레지스터 이다.
운영체제의 영역에 따라 재배치 레지스터에 담기는 값이 달라지며, 상대주소에 이 값을 더하면 절대주소가 나온다.
상대주소 + 재배치 레지스터의 값 ( 운영체제와 사용자 영역의 경계 값) = 절대주소
4.
프로세스의 크기가 물리 메모리보다 클 때 전체 프로세스를 메모리로 가져오는 대신 적당한 크기로 잘라서 가져오는 기법은 무엇인가?
→ 메모리 오버레이
프로그램을 모듈 단위로 잘라, 당장 필요한 모듈만 메모리에 가져와 사용한다.
어떤 모듈을 우선적으로 가져올지는, CPU 레지스터 중 하나인 프로그램 카운터 (PC)가 결정한다.
메모리 오버레이의 의미
한정된 메모리에서 메모리 보다 큰 프로그램을 실행 할 수있다. → 가상메모리 시스템의 기본 개념
프로그램은 일부부분만으로도 실행가능하다. 이는 메모리를 여러 조각으로 나누어 여러 프로세스에 할당할 수 있다는 의미

면접대비

상대주소와 절대 주소란?
상대 주소는 CPU가 생성하는 가상의 주소이고,
절대 주소는 메모리가 취급하는 물리 주소이다.
메모리 오버레이란?
프로세스의 크기가 실제 메모리(물리 메모리) 보다 클 때 전체 프로세스를 메모리에 가져오는 대신 적당한 크기로 잘라서 가져오는 기법이다.