페이징 시스템

2021. 2. 25. 22:16Computer(인강)/운영체제

728x90
반응형

안녕하세요 bannavi입니다^ㅅ^

오늘은 가상메모리 시스템에서 가장 많이 쓰이는 매커니즘인 페이징 시스템에 대해 알아볼거에요

바로 시작하겠습니다.

 

 

 

페이징 시스템(paging system)

* 페이징(paging) 개념

- 크기가 동일한 페이지로 가상 주소 공간과 이에 매칭하는 물리 주소 공간을 관리

- 하드웨어 지원이 필요. 예) Intel x86 시스템(32bit)에서는 4KB, 2MB, 1GB 지원

- 리눅스에서는 4KB로 paging

- 페이지 번호를 기반으로 가상 주소/물리 주소 매핑 정보를 기록/사용

 

 

 

 

 

실질적으로 페이징 시스템이 어떻게 동작하는지를 알아보겠습니다.

리눅스의 경우, 프로세스가 4GB라고 말씀드렸죠!

1) 프로세스(4GB)의 PCB에 Page Table 구조체를 가리키는 주소가 들어 있고

2) Page Table에는 가상 주소와 물리 주소간 매핑 정보가 있습니다.

 

 

 

좀 더 깊이 들어가볼게요

- page 또는 page frame: 고정된 크기의 block(4KB)

- paging system

* 가상주소 v = (p, d)

p: 가상 메모리 페이지

d: p안에서 참조하는 위치(변위)

 

 

 

- 페이지 크기가 4KB 예

1) 가상 주소의 0비트에서 11비트가 변위 (d)를 나타내고,

2) 12비트 이상이 페이지 번호가 될 수 있음

 

 

 

프로세스가 4GB를 사용하는 이유 - 32bit 시스템에서 2의 32승이 4GB

 

 

 

페이지 테이블(page table)

 

* page table

- 물리 주소에 있는 페이지 번호와 해당 페이지의 첫 물리 주소 정보를 매핑한 표

- 가상 주소 v = (p, d) 라면

# p: 페이지 번호

# d: 페이지 처음부터 얼마 떨어진 위치인지

 

*paging system 동작

- 해당 프로세스에서 특정 가상 주소 엑세스를 하려면

# 해당 프로세스의 page table에 해당 가상 주소가 포함된 page 번호가 있는지 확인

page table의 맨위의 주소는 어떻게 알 수 있을까? -> PCB에 page table의 첫주소(base 주소)를 가져와서

여기에 페이지 번호만 알면 -> 페이지테이블에서 해당 페이지 까지 넘어갈 수 있는것.

해당 페이지에 매칭되는 물리주소가 옆에 써있는거고.

이 물리주소로 실제 메모리 영역에 들어갈 때, 해당 페이지의 첫주소가 되는것.

그래서 여기에 + d(변위)하면 코드값을 알아낼 수 있는것이지요.

 

# page 번호가 있으면 이 page가 매핑된 첫 물리 주소를 알아내고(p')

# p' + d가 실제 물리 주소가 됨

 

 

 

v는 물리주소에 들어가 있는것

i는 물리주소에 안들어가 있는것

 

 

다시 정리해보면!!

페이지번호, 가상주소, 물리주소, valid-invalid bit정보만 있으면

페이지 단위로 물리주소에 복사하고,

페이지 단위로 데이터를 찾는 기능이 가능합니다.

 

 

* CPU는 가상 주소 접근시

- MMU 하드웨어 장치를 통해 물리 메모리 접근

 

* 프로세스 생성시, 페이지 테이블 정보 생성

- PCB등에서 해당 페이지 테이블 접근 가능하고, 관련 정보는 물리 메모리에 적재

- 프로세스 구동시, 해당 페이지 테이블 base 주소가 별도 레지스터에 저장(CR3)

- CPU가 가상 주소 접근시, MMU가 페이지 테이블 base 주소를 접근해서, 물리 주소를 가져옴

728x90
반응형

'Computer(인강) > 운영체제' 카테고리의 다른 글

페이지 폴트  (0) 2021.02.25
다중 단계 페이징 시스템과 페이징 시스템 장점  (0) 2021.02.25
가상 메모리 개념  (0) 2021.02.25
deadlock과 starvation  (0) 2021.02.25
세마포어  (0) 2021.02.25