Written by
xi-jjun
on
on
운영체제 - 20
KOCW 운영체제 20강
양희재 교수님 강의를 듣고 쓴 글입니다.
Main Memory Management
OS에서 CPU자원은 process management
에서 관리한다. 그리고 주기억장치 관리는 Main Memory Management
에서 관리한다.
paging
을 써 외부단편화 현상은 저번 시간에 해결했었다.
Internal Fragment(내부 단편화)
-
프로세스 크기가 page크기의 배수가 아니라면, 마지막 page는 1개의 frame공간을 꽉 채울 수 없다.
→ 따라서 남은 공간은 메모리 낭비가 되는 것.
-
내부 단편화 예시
상황 : 프로세스 크기는 13byte, page/frame size는 4byte인 경우
위에서 회색영역이 프로세스가 차지하는 공간이고, 흰색 영역은 빈 공간을 뜻한다.
13byte 크기의 프로세스가 page size(==4byte)만큼 나뉘어서 frame에 들어간 모습이다. 프로세스는 4byte, 4byte, 4byte, 1byte 로 나뉘어 frame에 들어가게 됐고, 따라서 마지막 1byte는 frame에 들어가서 3byte의 빈 공간을 만들어낸다. → 메모리 낭비
-
내부 단편화로 인한 낭비는 미미하다고 한다.
Page table 만들기
- CPU Register로!! : CPU안의 register로 page table entry를 만드는 것.
- 장점 : 주소변환이 빠르다.
- 단점 : CPU안에 넣어야해서 page table의 크기가 작아질 수 밖에 없다.
- Main memory로!!
- 장점 : page table의 크기가 커질 수 있다. 따라서 더 많은 양의 page mapping정보를 저장할 수 있다.
- 단점 : 변환속도가 느리다.
- TLB(Translation look-aside buffer)로!! : 캐시메모리 비슷한 것으로 page table을 만드는 것
- 주소변환을 위한 목적으로 만든 메모리를 캐시라 안부르고 TLB라고 부른다. 별도의 SRAM으로 만들어서 TLB를 만든다.
Effective Memory Access Time
유효 메모리 접근 시간(Etime)을 구해보자.
- Tm : memory를 읽는데 걸리는 시간.
- Tb : TLB(page table)를 읽는데 걸리는 시간.
h
: hit. page table에 우리가 접근하려는 주소의 정보가 있을 확률.
Etime = h(Tb + Tm) + (1 - h)(Tb + Tm + Tm)
1-h
: page table에 우리가 접근하려는 주소의 정보가 없을 때- Tb : CPU가 TLB를 읽고 정보가 없다는 사실 인지.
- Tm : memory의 OS에서 정보 획득 후 TLB로 가져옴.
- Tm : TLB에서 정보 얻었기에 memory에서 읽어서 매핑.