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% 만큼 지연