33
8. 가상메모리 8. 가상메모리 강의 목표 가상메모리(virtual memory)의 필요성과 개념을 이해한다. 하드웨어와 소프트웨어의 상호작용 수준에서 가상메모리의 작동원리를 이해한다. 페이징(paging)과 세그먼테이션(segmentation)을 비교해한다. 가상메모리의 효율성을 높이기 위한 운영체제의 기능 이해 Unix, Solaris, Linux, Windows메모리 관리 기법 이해 Unix, Solaris, Linux, Windows메모리 관리 기법 이해 가상메모리 2

StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

  • Upload
    vuthu

  • View
    223

  • Download
    8

Embed Size (px)

Citation preview

Page 1: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

8장.가상메모리8장. 가상메모리

강의목표

• 가상메모리(virtual memory)의필요성과개념을이해한다.

• 하드웨어와소프트웨어의상호작용수준에서가상메모리의작동원리를이해한다.

• 페이징(paging)과세그먼테이션(segmentation)을비교이해한다.

• 가상메모리의효율성을높이기위한운영체제의기능이해

• Unix, Solaris, Linux, Windows의메모리관리기법이해Unix, Solaris, Linux, Windows의메모리관리기법이해

가상메모리 2

Page 2: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

목차

8.1 하드웨어와제어구조

8.2 운영체제소프트웨어

8.3 UNIX와 Solaris의메모리관리와 의메 리관리

8.4 Linux의메모리관리

8 5 Windo s의메모리관리8.5 Windows의메모리관리

부록: 해시테이블

가상 메모리 3

8.1 하드웨어와제어구조

• 가상메모리의특성

– 프로세스의모든메모리참조는논리주소 (logical address)이며, 이는동적으로물리주소 (physical address)로변환된다.

프로세스의주소공간이여러블록(페이지나세그먼트)으로분할– 프로세스의주소공간이여러블록(페이지나세그먼트)으로분할되어그들간의순서/인접관계와무관하게주기억장치상에배치되어수행될있다.

– 프로세스의주소공간을구성하는블록중일부만주기억장치상에적재한채수행할수있다.

•• 적재집합적재집합(resident set)(resident set):특정프로세스의주소공간중주기억장치에•• 적재집합적재집합(resident set)(resident set): 특정프로세스의주소공간중주기억장치에적재된블록들의집합

•• 메모리접근메모리접근오류오류(memory access fault)(memory access fault) : 주기억장치에적재되지않은블록이참조될때발생하는하드웨어이벤트로, 발생시해당프로세스는블록상태로참조할블록이디스크로부터적재될때까지대기한후다시준비상태가된다.

가상메모리 4

Page 3: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

가상메모리와물리메모리

8.1 하드웨어와제어구조

• 프로세스의전체주소공간은디스크에설정되고, 그중일부분이주기억장치에적재(캐시)되어 CPU에의해참조된다분이주기억장치에적재(캐시)되어 CPU에의해참조된다.

– 디스크의방대한저장공간과연계된가상메모리

– CPU가실제로참조할부분이적재되는물리메모리(실메모리)

• 부분적재수행의이점

– 보다많은프로세스를주기억장치에유지할수있다

• 준비상태프로세스가존재할가능성이높아져처리기활용도높아짐

– 주기억장치보다큰프로세스를수행할수있다.

• 오버레이기법을적용하기위한프로그래머의부담(가용메모리크기파악 주소공간의블록분할 언제어떤블록이필요한지파악 주기억장파악, 주소공간의블록분할, 언제어떤블록이필요한지파악, 주기억장치와디스크간의블록교체작업등)을운영체제가담당

가상메모리 5

가상메모리관련용어

8.1 하드웨어와제어구조

가상메모리 6

Page 4: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

지역성과가상메모리

8.1 하드웨어와제어구조

• 가상메모리의실용성

– 프로그램수행에필요한블록(메모리접근오류가발생한블록)만적재하므로, 비사용블록적재로인한낭비절감

블록적재요구가얼마나빈번한지가가상메모리실용성의최대– 블록적재요구가얼마나빈번한지가가상메모리실용성의최대관건

• 프로세스수행시간중임의의 ‘짧은’ 구간을관찰했을때메모리참조행태가너무분산되지않아야하며, 한번주기억장치에적재된블록들이내보내지기전까지최대한많이참조되도록관리해야함

• 시스템이안정상태에있을경우주기억장치전체가각프로세스의시 템이안정상태에있을경우주기억장치전체가각 세 의블록들로채워지며, 이때주기억장치에적재되지않은블록이참조되면이미적재된블록을교체해야함(교체대상을잘못선정할경우바로재적재해야하는상황발생))

– 결론적으로스레싱스레싱(thrashing: (thrashing: 시스템이시스템이프로세스프로세스수행보다수행보다블록블록교체에교체에대부분의대부분의시간을시간을소비하게소비하게되는되는현상현상) ) 방지가방지가관건관건

가상메모리 7

지역성의원리(principle of locality)8.1 하드웨어와제어구조 지역성과가상메모리

• 프로세스의메모리참조가군집을이루는특성군집을이루는특성

– Temporal locality: 반복문, 스택 카운터변수 함수호출택, 카운터변수, 함수호출

– Spatial locality: 순차수행, 배열순회

• 지역성이전제될때, 가상메모리실용성의필요조건

– 가상메모리지원하드웨어의효율성

– 주기억장치와보조기억장치간블록이동관리의효율성

가상메모리 8

<그림 8.1> Paging Behavior

Page 5: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

페이징(paging)8.1 하드웨어와제어구조

• 가상메모리는고정크기페이지로분할되고, 물리메모리는페이지크기의페이지프레임(혹은프레임)들로분할페이지크기의페이지프레임(혹은프레임)들로분할

• 페이지테이블(또는역페이지테이블)을매개로하드웨어/소프트웨어가상호작용하여 프로세스가특정가상주소(해소프트웨어가상호작용하여, 프로세스가특정가상주소(해당페이지상의한주소)를참조할경우그에대응된물리주소(해당페이지가적재된프레임상의대응주소)가참조주소(해당페이지가적재된프레임상의대응주소)가참조되도록주소사상/변환

• 프로세스별페이지테이블을설정하여,주소변환하드웨어프로세스별페이지테이블을설정하여, 주소변환하드웨어가활용할주소사상정보제공

• 페이지테이블에페이지적재여부가표시되고 적재되지페이지테이블에페이지적재여부가표시되고, 적재되지않은페이지가참조될경우하드웨어에의해페이지폴트(page fault) 이벤트발생

– 페이지폴트처리과정애니메이션

가상메모리 9

페이지테이블구조

8.1 하드웨어와제어구조 페이징

• 가상주소의페이지번호를이용하여대응된페이지테이블항목을찾고 그로부터해당페이지가적재된프레임의번호를얻음고, 그로부터해당페이지가적재된프레임의번호를얻음.

• 존재비트(Present bit)는적재여부를, 변경비트(Modify bit)는적재된이후내용변경여부를나타냄.

가상메모리 10

Page 6: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

페이징시스템에서의주소변환

8.1 하드웨어와제어구조 페이징

가상메모리 11

페이지테이블크기

8.1 하드웨어와제어구조 페이징

• 가상주소공간의크기가커질수록페이지테이블의크기가증가하고 주기억장치상의보다큰적재공간요구증가하고, 주기억장치상의보다큰적재공간요구

• 해결을위한접근방법

– 페이지테이블을 n-단계계층구조로구성: 선형구조가아니므로, 전체가상주소공간중실제참조할페이지들이존재하는영역에대해서만단계별페이지테이블설정가능

– 페이지테이블자체를가상메모리에적재: 페이지테이블중일부분만주기억장치에적재한채해당프로세스수행가능

– 역페이지테이블(inverted page table) 이용: 각프레임에어떤페이지가적재되어있는지사상시키므로, 역페이지테이블의크기는주기억장치의크기에비례함주기억장치의크기에비례함

가상메모리 12

Page 7: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

2-단계계층적페이지테이블8.1 하드웨어와제어구조 페이징

가상메모리 13

2-단계페이징시스템에서의주소변환8.1 하드웨어와제어구조 페이징

가상메모리 14

Page 8: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

역페이지테이블 (inverted page table)8.1 하드웨어와제어구조 페이징

• 정방향페이지테이블의단점

– 그크기가가상주소공간의크기에비례

• 페이지당하나가아니라프레임당하나의페이지테이블항목설정

n m m– 2

n개의페이지, 2

m개의프레임(n>m), 2

m개의테이블항목

• 페이지번호에대한해시값(hash value)을해당페이지가적재된프레임의번호로간주적재된프레임의번호로간주

– n-비트페이지번호를 m-비트값으로사상시키는해시함수사용

• 충돌(collision) 해결을위해연결기법사용

– 전형적으로한두개의테이블항목간에체인설정

가상메모리 15

역페이지테이블의구조

8.1 하드웨어와제어구조 페이징

가상메모리 16

Page 9: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

TLB(Translate Lookaside Buffer)8.1 하드웨어와제어구조 페이징

가상메모리 17

TLB의동작8.1 하드웨어와제어구조 페이징

가상메모리 18

Page 10: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

TLB에대한연관사상8.1 하드웨어와제어구조 페이징

가상메모리 19

TLB와캐시의동작8.1 하드웨어와제어구조 페이징

가상메모리 20

Page 11: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

페이지크기

8.1 하드웨어와제어구조 페이징

• 페이지크기가작을수록

– 내부단편화의양감소

– 페이지테이블크기증가: 수행프로그램의크기나다중프로그래밍의차수가너무클때 페이지테이블을부분적으로만적재해야밍의차수가너무클때, 페이지테이블을부분적으로만적재해야하고, 이경우페이지테이블부재로인한페이지폴트부담발생

– 동일크기데이터적재에필요한입출력회수증가

– 지역성과관련된부분만으로적재집합구성가능

– 프로세스당할당된프레임이많을수록페이지폴트발생률감소

• 프로그램크기커질경우

– 개발시적용하는객체지향기술 다중스레딩기술이참조지역성개발시적용하는객체지향기술, 다중스레딩기술이참조지역성을감소시킴

– TLB 적중률이감소하므로, 페이지크기가큰것이바람직

가상메모리 21

페이지크기(계속)8.1 하드웨어와제어구조 페이징

가상메모리 22

Page 12: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

페이지크기(계속)8.1 하드웨어와제어구조 페이징

• 프로그램의전형적페이징형태

가상메모리 23

세그먼테이션(segmentation)8.1 하드웨어와제어구조

• 프로세스의주소공간을, 동적으로설정되는가변크기의블록들로분할블록들로분할

• 세그먼테이션의유익

– 확장성자료구조에대한처리단순화

– 세그먼트별로독립적인변경·재컴파일가능

– 논리적개체(유틸리티코드, 데이터테이블등)를세그먼트로설정하여공유/보호가능

가상메모리 24

Page 13: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

세그먼트테이블항목구성

8.1 하드웨어와제어구조 세그먼테이션

• 가상주소의세그먼트번호를이용하여대응된세그먼트테이블항목을찾고,그로부터해당세그먼트가적재된물리메모리블록의시작주소찾고, 그로부터해당세그먼트가적재된물리메모리블록의시작주소를얻음.

• 존재비트(Present bit)는적재여부를, 변경비트(Modify bit)는적재된이후내용변경여부를나타냄이후내용변경여부를나타냄.

가상메모리 25

세그먼테이션시스템에서의주소변환

8.1 하드웨어와제어구조 세그먼테이션

가상메모리 26

Page 14: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

페이징과세그먼테이션의결합

8.1 하드웨어와제어구조

• 두시스템의장점수용

– 페이징의장점: 프로그래머에게투명, 외부단편화제거, 정교한메모리관리알고리즘적용가능

세그먼테이션의장점:확장성자료구조처리단순화 모듈단위관– 세그먼테이션의장점: 확장성자료구조처리단순화, 모듈단위관리, 논리적개체단위의공유/보호

• 각세그먼트는고정크기의페이지들로분할각세그먼트는고정크기의페이지들로분할

• 가상주소에대한관점

프로그래머관점:가상주소 =세그먼트번호 +세그먼트오프셋– 프로그래머관점: 가상주소 = 세그먼트번호 + 세그먼트오프셋

– 시스템관점: 세그먼트오프셋 = 페이지번호 + 페이지오프셋

가상메모리 27

세그먼테이션/페이징시스템에서의주소변환8.1 하드웨어와제어구조 페이징과세그먼테이션의결합

가상메모리 28

Page 15: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

페이징과세그먼테이션결합시의테이블항목

8.1 하드웨어와제어구조 페이징과세그먼테이션의결합

• ‘세그먼트베이스’ 필드는세그먼트자체의시작주소가아니라해당세그먼트에대한페이지테이블의시작주소그먼트에대한페이지테이블의시작주소

• 적재및변경여부는페이지수준에서관리되므로, 세그먼트테이블에는존재비트나변경비트가없음

가상메모리 29

세그먼테이션시스템에서의보호와공유

8.1 하드웨어와제어구조

• 세그먼트테이블항목이시작주소와길이를제한시작주소와길이를제한하기때문에, 세그먼트범위밖의주기억장치영역에접근불가(그림 8.14)

• 페이지구조가프로그래머에게투명한데반해, 세그먼트구조는가시적이기때문에보호나공유요기때문에보호나공유요건을정확히표현가능

가상메모리 30

Page 16: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

페이징과세그먼테이션의특성

가상메모리 31

페이징과세그먼테이션의특성

가상메모리 32

Page 17: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

8.2 운영체제의가상메모리관리정책

• 가상메모리관리정책에있어주요이슈는성능

• 페이징관련이슈에집중

• 가상메모리관리정책의범주

– 반입정책(fetch policy): 언제물리페이지를가상페이지와매핑할것인가?

– 배치정책(placement policy): 주메모리어디에배치할것인가?

– 교체정책(replacement policy)

– 적재집합 (resident set) 관리정책

– 클리닝정책(cleaning policy)

– 부하제어(load control)

가상메모리 33

반입정책(Fetch Policy)8.2 운영체제의가상메모리관리정책

• 각페이지를언제주기억장치로적재할지결정하는정책

• 요구반입(demand paging)

– 페이지폴트(적재되지않은페이지중일부분참조)시적재

– 일반적인경우지역성에의해안정적운용가능

• 선반입(prepaging)

– 페이지폴트에의해요구된페이지이외의페이지도적재

• 프로그램수행을시작할때나페이지폴트시적용

• 한프로세스의페이지들이보조기억장치에연속적으로저장되어있을경우그들을한꺼번에반입하는것이나중에필요할때따로따로반입하는것보다효율적임.

– 스와핑(swapping)과구분

가상메모리 34

Page 18: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

배치정책(Placement Policy)8.2 운영체제의가상메모리관리정책

• 적재될블록이주기억장치의어디에위치할것인지결정하는정책는정책

• 페이징시스템의경우

– 주소변환하드웨어와주기억장치접근하드웨어들이어떠한페이지/프레임조합에대해서도같은효율로기능하기때문에배치정책은무의미

• NUMA(Non-Uniform Memory Access) 구조의다중처리기

– 각페이지를그것을참조할처리기와가까운메모리모듈에배치시키는배치전략필요

가상메모리 35

교체정책(Replacement Policy)8.2 운영체제의가상메모리관리정책

• 가용프레임이없을경우

– 새로운페이지를반입하기위해현재적재되어있는페이지들중어떤페이지를교체할것인지결정하는정책

애니메이션– 애니메이션

•• 가까운가까운미래에미래에참조될참조될가능성이가능성이가장가장적은적은페이지를페이지를선택선택하여하여교체하는교체하는것이것이교체정책의교체정책의이상적이상적목표목표하여하여교체하는교체하는것이것이교체정책의교체정책의이상적이상적목표목표

– 지역성의원리(principle of locality)를전제로과거의참조행태에근거하여미래의참조가능성예측

가상메모리 36

Page 19: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

프레임잠금

8.2 운영체제의가상메모리관리정책 교체정책(Replacement Policy)

• 교체대상에서배제시키기위해프레임잠금설정

– 프레임별로잠금비트설정하여잠금상태표시

– 프레임테이블, 페이지테이블등에잠금비트유지가능

• 프레임잠금대상

– 운영체제커널중주요자료구조

– 입출력버퍼

– 시간이중요한영역

가상메모리 37

최적정책(Optimal)과 LRU8.2 운영체제의가상메모리관리정책 교체정책(Replacement Policy)

• 최적(Optimal): God’s Policy

– 가장오랫동안참조되지않을페이지교체

– 가장낮은페이지폴트율

– 미래에대한정확한지식이없어구현불가능

– 애니메이션

• LRU(Least Recently Used)

– 가장오랫동안참조되지않은페이지를교체

– 최적에근접한성능

– 구현이어렵고큰오버헤드

– 애니메이션

가상메모리 38

Page 20: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

FIFO와 Clock8.2 운영체제의가상메모리관리정책 교체정책(Replacement Policy)

• FIFO(First-In First-Out)

– 가장오래전에적재된페이지교체

– 가장쉽게구현

– FIFO’s anomaly: 특정참조패턴에대해,할당된프레임수를증가시켰음에도더많은페이지폴트가발생하는현상

애니메이션– 애니메이션

• 클록(Clock) 교체정책

프레임별로 비트연계 처음적재시 1 참조시 1로설정– 프레임별로 use 비트연계: 처음적재시 1, 참조시 1로설정

– 페이지를적재한프레임들이환형으로배치되어있다고간주하고, 첫교체후보를가리키는포인터(시계바늘)설정첫교체후보를가리키는포인터(시계바늘) 설정

– 시계방향으로포인터를이동시키면서포인터가가리키는프레임중 use 비트가 0인첫프레임상의페이지를교체(use 비트가 1인경우그값을 0으로변경하고다음프레임으로이동)

가상메모리 39

클록정책의적용예

8.2 운영체제의가상메모리관리정책 교체정책(Replacement Policy)

• 시계바늘이프레임 2를가리키고있는상황에서 페이지 727을적재있는상황에서, 페이지 727을적재하기위해클록정책작동

• 프레임 2와 3의 use 비트값이 1이므로차례로그값을 0으로변경한후, use 비트값이 0인프레임 4를발견하여교체페이지로선택하게발견하여교체페이지로선택하게됨.

• 프레임 4에페이지 727을적재하고비 값 한 시계그 use 비트값을 1로한후, 시계

바늘이그다음프레임을가리키게설정함.

• 애니메이션

가상메모리 40

Page 21: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

4가지페이지교체알고리즘의동작예8.2 운영체제의가상메모리관리정책 교체정책(Replacement Policy)

• 특정페이지참조열에대한동작방식분석

* : use 비트가1임을 의미

가상메모리 41

페이지교체알고리즘의성능비교8.2 운영체제의가상메모리관리정책 교체정책(Replacement Policy)

• 프로세스당할당프레임수고정시성능비교

– 응용: 0.25 * 106번메모리참조하는포트란프로그램

가상메모리 42

Page 22: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

변경비트가추가된클록정책

8.2 운영체제의가상메모리관리정책 교체정책(Replacement Policy)

• 사용비트 u와변경비트m의값에따라 4 가지유형의프레임으로구분하여 u값이동일할때m = 1인페이지에레임으로구분하여 u 값이동일할때m = 1인페이지에앞서m = 0인페이지를먼저교체함으로써, 교체당할페이지를디스크에기록하는부담절감이지를디 에기록하는부담절감

• 작동과정

1 첫번째스캔: (u = 0; m = 0)인첫프레임선택1. 첫번째스캔: (u = 0; m = 0)인첫프레임선택

2. 단계 1 실패시두번째스캔: (u = 0; m = 1)인첫프레임선택(스캔된모든프레임의 u 값을 0으로설정) )

3. 단계 2 실패시단계 1부터반복(재차단계1이실패하여단계 2가반복될경우, 모든프레임에대해 u 값은 0, m 값은 1이라는조건성립이보장되므로첫스캔대상프레임이교체대상으로선택됨)성립이보장되므로첫스캔대상프레임이교체대상으로선택됨)

가상메모리 43

변경비트가추가된클록정책동작예

8.2 운영체제의가상메모리관리정책 교체정책(Replacement Policy)

가상메모리 44

Page 23: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

페이지버퍼링

8.2 운영체제의가상메모리관리정책 교체정책(Replacement Policy)

• 교체대상으로선택된페이지를즉시교체하지않고가용페이지리스트뒤쪽에연결시켜어느정도기간동안주기페이지리스트뒤쪽에연결시켜어느정도기간동안주기억장치상에유지. 즉 Second Chance Algorithm변경된페이지들을구별하여변경페이지리스트에서디스크기록을대기하게할수있음

• 일정범위의가용페이지수를유지하고, 실제새로운페이지를적재해야할때가용페이지리스트상의첫페이지를지를적재해야할때가용페이지리스트상의첫페이지를교체

변경페이지리스트상의페이지가디스크에기록될경우가용페변경페이지리스트상의페이지가디스크에기록될경우가용페이지리스트로이동

• 페이지버퍼링의유익– 실제로교체되기이전에참조될경우적은비용으로페이지폴트해결가능

변경페이지들에대한클러스터입출력적용가능– 변경페이지들에대한클러스터입출력적용가능

가상메모리 45

적재집합관리

8.2 운영체제의가상메모리관리정책

• 적재집합관리역할에있어서의교체정책

• 적재집합의크기관리

– 고정할당(fixed allocation) : 프로세스에할당된프레임수고정

– 가변할당(variable allocation): 프로세스에할당된프레임수의변경허용

교체범위관리• 교체범위관리

– 지역범위(local scope) : 페이지폴트를유발한프로세스의적재집합내에서교체대상선택합내에서교체대상선택

– 전역범위(global scope) : 주기억장치상의모든페이지중에교체대상선택대상선택

가상메모리 46

Page 24: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

고정할당/지역범위적재집합(Working Set) 관리8.2 운영체제의가상메모리관리정책

• 응용의타입이나프로그램요구등에의거하여프로세스에대한할당량결정대한할당량결정

• 할당량이너무적을경우, 높은페이지폴트발생률

• 할당량이많아질경우, 다중프로그래밍의차수가적어져처리기유휴시간이나스와핑시간증가

가상메모리 47

가변할당/전역범위적재집합(Working Set) 관리8.2 운영체제의가상메모리관리정책

• 구현이쉽고, 많은운영체제에의해채택

• 전형적구현전략

– 운영체제는가용프레임리스트유지

– 페이지폴트발생시해당프로세스의적재집합에가용프레임추가

– 가용프레임이없을경우, 잠긴프레임이외의모든프레임을대상으로교체대상페이지를선택(선택된페이지를소유한프로세스으로교체대상페이지를선택(선택된페이지를소유한프로세스의적재집합축소 최적의프로세스가아닐수있음)하여교체

• 잘못된페이지선택문제해소방안:페이지버퍼링• 잘못된페이지선택문제해소방안: 페이지버퍼링

– 페이지가덮여쓰이기전에참조될경우효율적으로회수될수있어, 잘못된희생페이지선택의피해를어느정도줄일수있음어,잘못된희생페이지선택의피해를어 정 줄일수있음

가상메모리 48

Page 25: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

가변할당/지역범위적재집합(Working Set) 관리8.2 운영체제의가상메모리관리정책

• 전형적구현전략프로세스를처음적재할때 응용의타입이나프로그램요구 또– 프로세스를처음적재할때, 응용의타입이나프로그램요구, 또다른척도등에의거하여어느정도의프레임들을적재집합으로할당

– 페이지폴트발생시해당프로세스의적재집합내에서교체

– 수시로, 프로세스에대한할당량을재평가하고전체적성능개선이라는측면에서할당량증감이라는측면에서할당량증감

• 이전략의주요소는적재집합의크기와그변경시점을결정하는규칙

• 대표적전략– 작업집합전략(Working Set Strategy)작업집합전략(Working Set Strategy)

– PFF (Page Fault Frequency)

– VSWS (Variable-interval Sampled Working Set)

가상메모리 49

작업집합전략

적재집합(Working Set) 관리8.2 운영체제의가상메모리관리정책

• 특정프로세스(페이지수 N)에대한작업집합W(t, ∆)해당프로세스가가상시간(매가상주소참조에대해 1씩증가)상– 해당프로세스가가상시간(매가상주소참조에대해 1씩증가) 상의시점 t - ∆부터 t까지참조한페이지들의집합

– W(t, ∆+1) ⊇W(t, ∆), 1 ≤ | W(t, ∆) | ≤ min(∆, N)( ) ( ) | ( ) | ( )

• 작업집합관리방법– 각프로세스의작업집합을모니터링

– 주기적으로(극단적으로매참조시점마다) 프로세스의적재집합중작업집합에있지않은페이지들을제거(기본적으로 LRU 정책)

프로세스는주기억장치에그작업집합이있을때(적재집합이작– 프로세스는주기억장치에그작업집합이있을때(적재집합이작업집합을포함할때)만수행

• 문제점문제점

– 작업집합모니터링비용의비현실성

– 최적의 ∆값이알려져있지않고어떤경우라도가변적최적의 ∆값이알려져있지않고어떤경우라도가변적

가상메모리 50

Page 26: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

작업집합전략 (계속)적재집합(Working Set) 관리8.2 운영체제의가상메모리관리정책

• 윈도우크기(Δ)에따른프로세스Working Set 변화

가상메모리 51

작업집합크기의변화

적재집합(Working Set) 관리8.2 운영체제의가상메모리관리정책

가상메모리 52

Page 27: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

PFF (Page Fault Frequency)정책적재집합(Working Set) 관리8.2 운영체제의가상메모리관리정책

• 페이지폴트발생률을근거로적재집합크기결정

• 적재집합관리방법

– 메모리상의각페이지와연계된사용비트설정(사용비트값은해당페이지가참조될때 1이됨)당페이지가참조될때 1이됨)

– 페이지폴트발생시해당프로세스가직전에페이지폴트를발생시켰던시점으로부터경과된가상시간측정(페이지참조카운터를켰던시점으로부터경과된가상시간측정(페이지참조카운터를유지할경우가능)

– 경과시간이정의된임계치보다작을경우해당프로세스의적재집합에한페이지추가. 그렇지않을경우사용비트가 0인모든페이지를적재집합에서제거시켜적재집합축소(제거되지않은페이지의사용비트는모두 0으로설정) )

• 주요단점

– 작업집합이전이되는과도기간에적재집합을효과적으로제어하작업집합이전이되는과도기간에적재집합을효과적으로제어하지못함

가상메모리 53

VSWS 정책적재집합(Working Set) 관리8.2 운영체제의가상메모리관리정책

• VSWS (Variable-interval Sampled Working Set) 정책

샘 링간격설정하여샘 링기간시작할때적재집합내 페이지의– 샘플링간격설정하여샘플링기간시작할때적재집합내모든페이지의사용비트를 0으로설정하고, 샘플링기간이끝난후사용비트 0인페이지제거

– 샘플링기간중 페이지폴트발생시새로운페이지를작업집합에추가

– 페이지폴트증가시샘플링간격을줄여사용되지않은페이지제거가속화 :샘플링기간설정인자 M(샘플링간격의최소기간) L(샘플링간격의화 : 샘플링기간설정인자 M(샘플링간격의최소기간), L(샘플링간격의최대기간), Q(샘플링간에발생이허용된페이지폴트의회수) 사용

• 샘플링간격설정방법

– 최종샘플링으로부터경과된가상시간이 L에이르면, 프로세스를보류시키고사용비트들을살펴본다.

가상시간 L이지나기전에 Q개의페이지폴트가발생했을때– 가상시간 L이지나기전에 Q개의페이지폴트가발생했을때,

• 최종샘플링이후경과된가상시간이 M보다작으면, 경과된가상시간이 M이될때까지기다려해당프로세스를보류시키고사용비트들을살펴본다.

• 최종샘플링이후경과된가상시간이 M보다크거나같으면, 프로세스를보류시키고사용비트들을살펴본다.

가상메모리 54

Page 28: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

클리닝정책(Cleaning Policy)8.2 운영체제의가상메모리관리정책

• 변경된페이지들중어떤것을보조기억장치에기록할것인지결정하는정책(반입정책과상반된정책)인지결정하는정책(반입정책과상반된정책)

– 요구클리닝(demand cleaning): 교체될때기록

– 선클리닝(precleaning): 교체되기전에기록(일괄기록가능)

• Second Chance 알고리즘과접목할경우효과적

– 변경된페이지가교체후보로선택되면변경리스트에연결시킨후, 주기적으로일괄기록한후비변경리스트로이동

새로운페이지반입시 비변경리스트상의프레임을할당하여적재– 새로운페이지반입시, 비변경리스트상의프레임을할당하여적재

– (주기적으로) 기록되기이전에 (운좋게도) 참조될경우기록/적재없이재활용가능없이재활용가능

– 페이지교체시비변경리스트상의프레임을이용하므로, 교체당시기존페이지의기록작업은없음.

가상메모리 55

부하제어(Load Control)8.2 운영체제의가상메모리관리정책

• 주기억장치에적재될프로세스수결정

• 메모리에적재된프로세스의수가너무적으면

– 프로세스모두가블록상태가되어스와핑에많은시간소요

• 메모리에적재된프로세스의수가너무많으면

– 각프로세스의적재집합을구성하는평균페이지수가불충분해져잦은페이지폴트를유발하게되고, 궁극적으로스레싱발생

가상메모리 56

Page 29: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

다중프로그래밍의효과

8.2 운영체제의가상메모리관리정책 부하제어

가상메모리 57

다중프로그래밍수준조절

8.2 운영체제의가상메모리관리정책 부하제어

• 작업집합(working set)/PFF

적재집합이충분히갖추어진활성프로세스만수행을허용하므로,그관리과정에서자동/동적으로활성프로세스의수결정

• L=S규범(criterion)• L=S규범(criterion)

폴트간평균시간 L과,페이지폴트처리에필요한평균서비스시간 S가일치되게간 S가일치되게

• 50% criterion

페이징장치의활용도가 50%로유지되게페이징장치의활용도가 50%로유지되게

• 클록정책의변형

‘‘바늘’의 스캔속도가너무빠르면다중프로그래밍차수를낮추고, 너무느리면높이는방법적용

가상메모리 58

Page 30: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

프로세스보류

8.2 운영체제의가상메모리관리정책 부하제어

• 다중프로그래밍의차수를낮추기위해어떤프로세스를보류(suspension)시킬지결정류(suspension)시킬지결정

• 보류대상으로고려할만한프로세스최저우선순위프로세스:스케줄링정책과일관성유지– 최저우선순위프로세스: 스케줄링정책과일관성유지

– 폴트발생프로세스: 작업집합적재가능성이적어보류시입게될손해도최소일가능성(직접적유익: 바로블록될프로세스를블록시키는것이므로 페이지교체나입출력비용절감)블록시키는것이므로, 페이지교체나입출력비용절감)

– 가장최근에활성화된프로세스: 작업집합확보가능성최소

최소적재집합을가진프로세스:미래의재적재비용을최소화하– 최소적재집합을가진프로세스: 미래의재적재비용을최소화하지만, 지역성이강한프로세스에게불리

– 가장큰프로세스: 가장많은가용프레임확보, 추가보류의필요성감소

– 잔여수행윈도우가가장큰프로세스: 최소처리시간우선(shortest-processing-time-first)스케줄링과일관성유지(shortest processing time first) 스케줄링과일관성유지

가상메모리 59

UNIX와 Solaris의메모리관리(1/3)

가상메모리 60

Page 31: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

UNIX와 Solaris의메모리관리(2/3)

• ‘두바늘’ 클록알고리즘

처 적재된페이지의참– 처음적재된페이지의참조비트는 0, 참조될때 1

– ‘선행바늘(fronthand)’은프( )레임들을스캔하면서각페이지의참조비트를 0으로만들고, ‘어느정도’의 시간이지난후, ‘후행바늘(backhand)’이동일페이지들을스캔하면서참조비트값조사

– 참조비트값이 1인프레임은교체대상에서제외하고, ,0이면해당페이지를반출될페이지들의리스트로이동

가상메모리 61

UNIX와 Solaris의메모리관리(3/3)

• Lazy buddy system algorithmalgorithm– 특정 크기의 블록에

대한 요구량이 시간상으로 완만하게 변상으로 완만하게 변함으로 분할과 통합을 늦춘다.

가상메모리 62

Page 32: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

LINUX 메모리관리(1/2)

• LINUX 가상메모리방식에서의주소변환

가상메모리 63

LINUX 메모리관리(2/2)

• 페이지할당

페이지반입/반출효율높이기위해연속된페이지블록들을연속된프레임에사상

• 페이지교체알고리즘(Least Frequently Used정책범주)• 페이지교체알고리즘(Least Frequently Used정책범주)

– 각페이지에대해 8비트변수 age 설정

참조될때 값증가 주기적으로전체페이지스캔하며감소– 참조될때 age 값증가, 주기적으로전체페이지스캔하며감소

– age 값이적을수록보다적합한교체후보

커널메모리할당• 커널메모리할당

– 페이지할당: 버디알고리즘을이용해페이지배수크기할당

– 슬랩할당(slab allocation): 할당된페이지내에작은메모리블록(chunks)을수용하기위해도입. 버디알고리즘과유사하게분할/통합하며, 블록크기별로연결리스트유지통 하며,블록 기별 결리 유지

가상메모리 64

Page 33: StallingsOS6e-Chap08.ppt [호환 모드] - mm.sookmyung.ac.krmm.sookmyung.ac.kr/~bigrain/class/2011/mmso/... · 분이분이주기억장치에주기억장치에적재적재(캐시)되어

Windows 메모리관리

• 디폴트가상주소공간

2G사용자공간– 2G 사용자공간

– 2G 시스템공간

• 사용자공간을구성하는사용자공간을구성하는페이지들의상태

– 가용(available): 현재사용되지않는페이지사용되지않는페이지

– 예약(reserved): 예약(페이징파일상의공간은할당되지않음)간은할당되지않음)된연속페이지들의집합

– 위탁(committed):페이위탁(committed): 페이징 파일상에공간이설정된페이지

가상메모리 65

요약

• 하드웨어와제어구조

지역성 가상메 리– 지역성, 가상메모리

– 페이징

• 주소변환 페이지테이블 계층적페이지테이블 역페이지테이블 TLB• 주소변환, 페이지테이블, 계층적페이지테이블, 역페이지테이블, TLB

– 세그먼테이션

• 주소변환, 세그먼트테이블, 페이징과세그먼테이션의결합, 보호와공유

• 운영체제소프트웨어

– 페이지반입, 배치, 교체정책

– 페이지교체알고리즘

• FIFO, Optimal, LRU, Clock

적재집합관리 클리닝정책 부하제어– 적재집합관리, 클리닝정책, 부하제어

• Unix, Solaris, Linux, Windows의메모리관리

가상메모리 66