6장 연습문제
1. 다음 용어를 정의하고 설명하시오.
a. 가상 주소 공간
- 수행 중인 프로세스가 참조하는 페이지 주소 즉, 보조기억 장치 번지를 가상 주소라고 하며, 이들 번지의 집합을 뜻함
b. 실 주소 공간
- 주기억 장치의 사용 가능한 주소를 실 주소 또는 물리주소라 하며, 이들 번지의 집합을 뜻함
c. 주소 사상(address mapping)
- 가상주소를 주기억장치의 실제주소로 변환하는 절차
- 수행중인 프로세스가 참조하는 가상주소 공간은 사상표(mapping table)에 의해 실제주소 공간으로 사상됨
- 메모리 관리자(Memory Management Unit : MMU)가 수행
- 가상 주소는 2부분으로 구성 : v = (b, d)
블록번호 b |
블록 내 변위 d |
d. 2단계 기억 장치
- 제한된 주기억 장치에 한 번에 저장할 수 없는 프로그램과 데이터를 저장할 수 있는 디스크, 드럼과 같은 보조기억 장치 즉 가상기억 장치라고 함
CPU |
|
주기억 장치 (1차 기억 장치) |
|
가상기억 장치 (2차 기억 장치) |
프로그램과 데이터의 일부 저장 |
모든 프로그램과 데이터 저장 |
e. 페이징
- 고정된 크기의 블록 단위로 기억장치를 관리 : 페이지
- <페이지 번호, 변위> 하나의 순서쌍으로 된 가상 주소를 통해 참조
· 페이지 번호 : 가상기억 장치의 논리적인 블록을 의미
· 변위 : 대상 페이지 내의 시작위치부터의 거리
- 페이징에서는 각 페이지의 크기가 같으므로 외부 단편화가 없고, 마지막 페이지에 대하여 내부 단편화가 발생할 수 있음
f. 세그먼테이션
- 논리적 의미에 부합하는 크기의 블록 : 세그먼트
- <세그먼트 번호, 변위> 하나의 순서쌍으로 된 가상 주소를 통해 참조
· 세그먼트 번호 : 가상기억 장치의 논리적인 블록을 의미
· 변위 : 대상 세그먼트 내의 시작위치부터의 거리
- 세그먼트들의 크기는 서로 다르므로 가변 크기(동적분할) 기억장치 할당에서처럼 외부 단편화가 발생됨
- 각각의 세그먼트는 연속적인 공간에 저장되어야 함
2. 가상 주소 변환이란 무엇을 의미하는지를 설명하고 가상 주소 변환을 하는 이유를 설명하시오
의미 : 가상 주소 변환(virtual address translation)은 바인딩 기법이라고도 하며, 프로세스가 수행될 때 가상 주소를 실제 주소로 변환하는 기법
이유 : 사용자는 프로그램과 데이터가 주기억 장치의 어느 곳에 위치 하는가를 걱정하지 않아도 되며, 사용자는 알고리즘의 효율과 프로그램 구조의 세부 사항만을 생각하고 하드웨어 세부 사항은 신경쓰지 않고 편안하게 프로그램을 작성할 수 있음
또한 주소변환이 가상 주소 내의 각 항목 즉 바이트나 워드 단위로 이루어진다면 변환에 필요한 정보량이 너무 많아져 프로세스가 요구 하는 양 이상의 주기억장치를 요구 하므로, 가상기억 장소를 효율적으로 구현하려면 이러한 정보량을 줄여야할 필요성이 있음
예제 : 직접 / 연관 사상 혼용때 기억 장치 접근 시간
연관 메모리 접근 : 50ns, 전체 기억 장치 접근 시간 : 800ns, 주기억장치 접근 : 750 ns 가정
* 성공률(Hit Ratio)= α
* 유효접근시간(Effective Access Time : EAT)
EAT = 성공시소요시간 x α+실패시소요시간x (1 -α)
* 해당 페이지 항목이 연관 메모리에 존재시 EAT
→ 연관메모리접근(50ns) +주기억장치접근(750ns) = 800 ns
* 연관 메모리에 부재시 EAT
→ 연관메모리(50ns) +페이지테이블(750ns) +데이터접근(750ns) = 1550 ns
- 적중률이 80%라면(원하는 페이지가 연관 기억장치에 있을 확률 0.8)
유효 기억 장치 접근 시간 = 0.8 X 800 + 0.2 X 1550 = 950ns
즉, 750 ns >> 950 ns ∴ 26.6% 만큼 지연
- 적중률이 90%라면(원하는 페이지가 연관 기억장치에 있을 확률 0.9)
유효 기억 장치 접근 시간 = 0.9 X 800 + 0.1 X 1550 = 875ns
즉, 750 ns >> 875 ns ∴ 16.6% 만큼 지연