49
인인인인인 인인인인인인 인인인 8.1 Chapter 8. 주 주주주 (Main Memory) Questions of the day 1. 인인 인인인 (internal segmentation) 인 인인 인인인 (external segmentation) 인인인 인인인인 인인인인 인인 인인인 인인인인 인인 인인인인 인인인 인 인인인 인인인인 . MFT(Multiprogramming with a Fixed number of Tasks) MVT(Multiprogramming with a Variable number of Tasks) 인인인 (paging) 인인인인인인 (segmentation) 인인인인인 인인인인인인 (segmentation with paging) 2. ( ) 인인인 인인인 ( ) 인인인 인인인인 인인인 ? 3. 인인인인 인인인 인인인 ( 인인 / 인인인 )? 4. 인인인인인인인 인인인 인인인 ( 인인 / 인인인 )? 5. 인인인 인인 인 ? 6. page size 인인 인인 인인 인인 인인 ? page table 인인 overhead ? disk I/O 인인 ? 인인인인

Chapter 8. 주 메모리 ( Main Memory)

Embed Size (px)

DESCRIPTION

Chapter 8. 주 메모리 ( Main Memory). Questions of the day 내부 단편화 (internal segmentation) 와 외부 단편화 (external segmentation) 사이의 차이점을 설명하고 아래 메모리 기법들에 어느 단편화가 발생할 수 있는지 밝히세요 . ① MFT(Multiprogramming with a Fixed number of Tasks) ② MVT(Multiprogramming with a Variable number of Tasks) - PowerPoint PPT Presentation

Citation preview

Page 1: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.1

Chapter 8. 주 메모리 (Main Memory)

•Questions of the day1. 내부 단편화 (internal segmentation) 와 외부 단편화 (external

segmentation) 사이의 차이점을 설명하고 아래 메모리 기법들에 어느 단편화가 발생할 수 있는지 밝히세요 .① MFT(Multiprogramming with a Fixed number of Tasks)② MVT(Multiprogramming with a Variable number of Tasks)③ 페이징 (paging)④ 세그먼테이션 (segmentation)⑤ 페이지화된 세그먼테이션 (segmentation with paging)

2. ( ) 메모리 관점과 ( ) 메모리 관점과는 다르다 ?3. 페이징은 나누는 크기가 ( 같다 /다르다 )?4. 세그먼테이션은 나누는 크기가 ( 같다 /다르다 )?5. 베프가 무슨 뜻 ?6. page size 작을 수록

• 내부 단편 크기 ? • page table 유지 overhead ?• disk I/O 시간 ?

운영체제

Page 2: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.2

기본 하드웨어

•베이스 (base) 와 상한 (limit) 레지스터가 논리 주소 공간을 정의

• Monitor mode 에서 OS 는 monitor 와 사용자 메모리 전체에 무제한 접근권한 가짐

• 기준 (base) 과 한계 (limit) 레지스터 적재 명령은 특권 명령임

Page 3: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.3운영체제

주소의 할당 (Address Binding)

• 주소의 할당 (Address Binding)» 한 주소 공간에서 다른 주소공간으로의 사상 (mapping)» 주소 바인딩 시점

① Compile time : 시작 주소 미리 아는 경우» compile 후 absolute code 생성 , 시작주소 바뀌면 recompile» ( 예 ) MS-DOS, COM programming

② Load time : 시작 주소 모를 경우» compile 후 relocatable code 생성 (binder 가 주소 바인딩 ),

시작주소 바뀌면 reload 만 ③ Execution time : 한 프로세스가 수행도중 다른 memory segment 로

이동하는 경우» 동적 재배치 (dynamic relocation)» H/W 지원 필요 : relocation register 가진 MMU( 그림 8.4)

Source Program( 심볼 주소 )

Compiler Linkage Editor& Loader

Object Module( 재배치 가능 주소 )

Binary Run-time Module

( 절대 주소 )

X 14(bytes offset) 74014(R+14)

Page 4: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.4운영체제

사용자 프로그램의 다단계 처리

Page 5: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.5운영체제

동적 적재 (Dynamic Loading) 와 동적 연결 (Dynamic Linking)

• 동적 적재 (Dynamic Loading)» 각 루틴들이 call 되었을 때 적재됨 : runtime 에 load

• ( 예 ) error routines : 필요할 때만 적재» 사용자 책임 (on users’ responsibility)» OS 지원 : 동적 적재 라이브러리 루틴 제공

• 동적 연결 (Dynamic Linking)» run time 에 linking» ( 예 ) language subroutine library

• stub 이용 : run-time 에 메모리에 있으면 그 곳으로 , 없으면 load & link» memory resident library routine 의 위치를 찾아가거나 새로 load

하는 방법을 제공하는 program code» OS 도움 필요 : 다른 프로세스의 address space 접근 지원 (paging)» ( 예 ) shared libraries» ( 예 ) MS .dll (dynamic linking library) (cf.) .lib (static linking library)

• Implicit linking» .dll 파일 링크» .h 파일 ; extern “C”_declspec(dllimport)void PaintImage(LPSTR

filename);» 빈 함수 정의 ; void PaintImage(LPSTR filename)=0;

• Explicit linking» Loadlibrary(“ExRegularDll.dll”);

Page 6: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.6운영체제

중첩 (Overlays)

• 중첩 (Overlays)» 주어진 시간에 꼭 필요한 명령만 메모리에 유지

• ( 예 ) 2 - pass assembler» user 가 전담 → automatic technique (= virtual memory)

Page 7: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.7운영체제

논리적 주소 공간과 물리적 주소 공간(Logical versus Physical Address Space)

논리 주소 물리주소

MMU H/W

• 논리 주소 (logical address)» program generated

• 물리 주소 (physical address) » 메모리의 Memory Address Register 에 적재되는 주소

• 주소 공간 (Address Space)1. logical address space : ~ virtual address2. physical address space : real address

• memory mapping H/W = MMU(Memory Management Unit)» 재배치 레지스터 (relocation register) 이용

• 생성된 모든 주소 + 재배치 레지스터 값 -> 물리 주소» R : base value in relocation register» logical address : 0 ~ max» physical address : R + 0 ~ R + max

Page 8: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.8운영체제

동적 재배치 (Dynamic Relocation)

Page 9: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.9운영체제

스와핑 (Swapping)

• 순환 할당 스케줄링 : swap-out/swap-in• 우선 순위 스케줄링 : roll-out/roll-in ( 우선순위에 따라 )

• swap-back 위치» 같은 위치 : compile time 또는 load time binding» 다른 위치 : execution time binding

• ready queue 의 processes» memory 에» backing store 에 : swap-in 하기 위해 다른 프로세스

swap-out• swap time ( 대부분이 전송시간 )

» swap context-switch time = (transfer time + latency time) x 2 = ?

» 회전지연시간 (latency time) = 8ms» 프로세스 크기 (process size) = 10M» 전송율 (transfer rate) = 40MB» 전송시간 (transfer time) = ?» no head seek 가정» ※ RR 1-time quantum > 516ms

• modified swapping» Unix : system load 가 클 때 OS 가 swapping(

멀티프로그래밍 정도를 낮춤 )» PC Windows 3.1: user 가 swap-in 선택 , swap time

결정» PC Windows/NT : OS 가 full swapping

Page 10: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.10운영체제

연속 메모리 할당 (Contiguous Memory Allocation)

• 단일 분할 할당 (Single-Partition Allocation)

① 배치주소 고정 : ② relocation register + limit register

→ 가변 OS size 가능• 실행 시간에 필요한 device driver 만 load : transient OS code

• 다중 분할 할당 (Multiple-Partition Allocation)

1. 고정 크기 분할• 여러 개의 고정크기 분할• 다중 프로그래밍 정도 (degree of multiprogramming) 를 제한 • ( 예 ) IBM OS/360 MFT2(Multiprogramming with a Fixed number of Tasks)

2. 가변 크기 분할• hole( 사용가능 메모리 블럭 ) 에서 필요한 만큼 할당• MVT(Multiprogramming with a Variable number of Tasks)

• 주로 일괄처리 환경• 외부단편 발생 가능• OS 지원 : OS 는 사용가능 block size 의 list 유지• H/W 지원 : 기준 / 한계 레지스터 → dynamic storage allocation

Page 11: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.11운영체제

연속 메모리 할당 (Contiguous Memory Allocation)

» free hole 에서 size n 할당하는 방법

1. First-fit : first hole (fastest)

2. Best-fit : smallest hole (best) 베프

3. Worst-fit : largest hole ( 경우에 따라 더 유용 )

( 예 ) 기억장치 할당 예 (c) 에서 100k, 100k, 200k, 160k 할당

OS

process 5

process 8

process 2

OS

process 5

process 2

OS

process 5

process 2

OS

process 5

process 9

process 2

process 9

process 10

Page 12: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.12운영체제

기억장치 할당 예

( 예 ) 기억장치 할당 예 (c) 에서 100k, 100k, 200k, 160k 할당

Page 13: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.13운영체제

연속 메모리 할당 (Contiguous Memory Allocation)

• 외부단편과 내부단편 (External and Internal Fragmentation)

1) Note : 외부 단편 : partition 자체가 사용되지 않음

• 560K 빈공간에 500K 프로그램 담지 못함

• 50% rule : first-fit 의 경우 통계적으로 N 할당 블록에 대해 0.5N 블록 외부 단편 생김

compaction : 사용가능 메모리를 한곳으로 모음

2) 내부단편 : partition 내부에 생긴 단편이 사용되지 않음

3) compaction

• dynamic relocation 인 경우에만 가능

» 각 program 마다 base register 이용

• Compaction + Swapping

» roll-back 될 때 dynamic relocation 으로 compaction(적절한 위치로 roll-back 됨으로써 )

Page 14: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.14운영체제

압축 (compaction)

Page 15: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.15운영체제

페이징 (Paging)

• 기본 방법 (Basic Method)

1. 물리주소 → frame( 고정크기 블럭 ) 단위로 나눔2. 논리주소 → page(frame 크기 ) 단위로 나눔» H/W 지원

① Page table H/W

» 각 page 의 물리 주소공간에서의 시작주소 : base address

» 논리주소 = page number + page offset

» 물리주소 = 그 page 의 물리적 시작주소 + page offset

② address generation H/W(registers) : 그림 8.7

» page table 참조하여 물리주소 계산» 논리주소 = 2m, page size 는 2n : ( 예 ) 512(n=9), 1024(n=10),

2048(n=11), 4096(n=12), 8192(n=13)

dppage number page offset

m-n n

Page 16: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.16운영체제

페이징 예

0

1

2

3

4

5

6

7

p ( 3 , 3 )

1 1 1 1

Page 17: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.17운영체제

페이징 (Paging)

» 외부단편 없음 , 내부단편 생김 ( 마지막 page)

» page size 작을 수록• 내부 단편 크기 ? • page table 유지 overhead ?• disk I/O 시간 ? page size 커지는 것이 추세 (2048, 4096, 8192) Solaris: $ pagesize –a (8192) Linux: ? (4096)

» 논리주소 물리주소 (address-translation H/W)

• OS 가 올바른 물리주소 생성 지원① 각 프로세스 마다 page table 유지 : 그 페이지가 담긴 frame

번호 context-switch time 증가

② frame 할당 상황 담은 frame table 유지 : 사용가능 frame list ③ 사용자 프로세스가 자신의 주소공간에서 동작하는지 파악

» 페이징은 동적 재배치 (dynamic relocation) 의 한 형태

Page 18: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.18운영체제

페이징 (Paging)

• Page Table 의 기본 구조 (Structure of the Page Table)

» H/W 지원① register 로

» 빠르다 . page table 크기 작을 때 가능» ( 예 ) DEC PDP-11 : 16bits address, page size 8K → 8 page

registers

② memory 에» PTBR(Page-Table Base Register) 로 접근» 느리다 (memory 에 2 회 접근 : ①? ②? → 2 배로 느려짐 )

fast-lookup hardware cache(associative register, translation look-aside buffers; key & value) 로 보완 (매칭되면 memory 접근보다 10% 미만의 시간 소모 )

Page 19: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.19운영체제

페이징 주소변환 하드웨어 (Address Translation Hardware)

Page 20: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.20운영체제

가용 프레임 (Free Frames)

Page 21: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.21운영체제

페이징 (Paging)

» 유효 접근 시간 (effective access time)

• (page 를 cache 에서 찾을 ) hit-ratio 80% : 16 registers

» i) cache 에 있으면 • 20ns(cache access) + 100ns(memory access) → 120 ns

» ii) cache 에 없으면• 20ns + 2 x 100ns → 220ns

» 유효 접근 시간 = 0.80 x 120 + 0.20 x 220 = 140ns (40% slow down)

• hit radio 98%

» 유효 접근 시간 = 0.98 x 120 + 0.02 x 220 = 122ns (22% slow down)

• TLB 10~512 개 이용하여 80~98% hit-ratio

» Motorola 68030 processor : 22 entry TLB

» Intel 80486 CPU : 32 entry TBL 로 98% hit-ratio

Page 22: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.22운영체제

TLB (Translation Look-aside Buffers) 이용 페이징 하드웨어

Page 23: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.23운영체제

페이징 (Paging)

» 보호 (Protection)

• 보호 비트 (Protection bit) : read-write, read-only, execute-only

• 타당 /비타당 비트 (valid/invalid bit) : 논리주소 공간에서의 유효성 여부• 전체주소 공간 : 214 = 16,383 = 2K x 8

• 페이지 크기 : 2K

• 프로그램 크기 : 10469( 주소 : 0 ~ 10, 468)• valid : page 0 ~ page 5( 마지막 페이지에 내부 단편 )• PTLR(Page Table Length Register) 사용

Page 24: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.24운영체제

페이지 테이블에서 유효 (v) 무효 (i) 비트

Page 25: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.25운영체제

페이징 (Paging)

• 다중 레벨 페이징 (Multilevel Paging)» 논리주소공간 : 232 ~ 264 : page table 이 매우 커짐

• 페이지 크기 : 4K (232/212 = 220 항목 ) x 4 bytes = 4M page table size 2 레벨 paging : page table 을 4K paging(1K 항목 , 각 항목 4

bytes) : 그림 8.14• 유효 접근 시간 = 0.98 x 120 + 0.02 x 320 = 124ns (28% slow down)

» VAX : 2 레벨 paging» SPARC(with 32 bits addressing) : 3 레벨 paging» 32bit Motorola 68030 : 4 레벨 paging

• 5 번 memory access• 유효 접근 시간 = 0.98 x 120 + 0.02 x 520 = 128ns (28% slow down)

dppage number page offset

20 bits 12 bits

dp1 p2page number page offset

10 bits 10 bits 12 bits

Page 26: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.26운영체제

2 단계 페이지 테이블 체계 (Two-Level Page-Table Scheme)

0

1023

0

1023

0

1023

0

1023

Q: 이 때 메모리 상의 페이지 테이블 크기는 ?

Page 27: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.27

Address-Translation Scheme

Page 28: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.28

Three-level Paging Scheme

Page 29: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.29

해시형 페이지 테이블 (Hashed Page Tables)

• 주소 공간 (address space) 이 32 bits보다 커질 경우 자주 사용

• 가상 페이지 번호가 페이지 테이블의 해시 값으로 해싱됨» 페이지 테이블의 각 항목은 같은 위치로 해싱된 항목들의 연결 리스트

체인을 가짐» 각 원소의 필드

• 가상 페이지 번호• 사상되는 페이지 프레임 번호• 연결 리스트 상의 원소 포인터

• 가상 페이지 번호는 연결 리스트를 따라가며 각 원소의 가상 페이지 번호를 비교» 매칭이 발견되면 , 해당 물리 프레임 번호를 얻음

Page 30: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.30

해시형 페이지 테이블 (Hashed Page Tables)

Page 31: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.31운영체제

페이징 (Paging)

• 역 페이지 테이블 (Inverted Page Table)» page table 이 너무 커서 physical memory 낭비될 경우» 각 항목의 값은 virtual page 값 : 그림 8.17» ( 예 ) IBM System/38

IBM RISC System 6000 IBM RT Hewlett-Packard Spectrum Workstations

» 논리주소 (virtual address) : <process-id, page-number, offset>• 역 페이지 테이블에서 <process-id, page-number> search

» match 되면 그 인덱스 값이 i 값» 없으면 page fault : 그 process 의 external page table 참조하여

page fault 처리» 물리주소 (physical address) = <i, offset> = i * frame size + offset» page look-up processing 이 time consuming

• hash table 로 보완 : 2 memory accesses(hash table, inverted page table) → associative memory 로 보완

• 공유 페이지 (Shared Pages)» ( 예 ) time-sharing 환경에서 reentrant text editor code 를 공유» 재진입 코드 (reentrant code, pure code) = non-self modifying code

• 공유 코드의 read-only 성질은 OS 가 보장해야» paging : page 단위로 sharing 가능 : 역 페이지 테이블로는 어려움 : 여러

virtual page entries 필요

Page 32: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.32운영체제

역 페이지 테이블 구조 (Inverted Page Table Architecture)

Page 33: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.33운영체제

공유 페이지 예 (Shared Pages Example)

Page 34: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.34운영체제

세그먼테이션 (Segmentation)

• 기억장치의 사용자 관점을 지원하는 기법

• 기본 방법 (Basic Method)» 메모리에 대한 사용자 관점 ≠ 실제 메모리» 사용자 관점 : 임의 길이의 논리적 segment 들의 집합

• segment : 의미적으로 (semantically) 정의된 프로그램의 부분들 , 예를 들면 , main, subroutines, functions, data elements, ...

» 논리주소 : <segment number, offset>

s d» 세그먼테이션 처리

• segmentation : compiler 가• segment 번호 : loader 가

• Hardware

① segment table• 한계 (길이 ), 기준의 쌍

② address generation H/W• 그림 8.19

Page 35: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.35

User’s View of a Program

Page 36: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.36

Logical View of Segmentation

1

3

2

4

1

4

2

3

user space physical memory space

Page 37: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.37운영체제

세그먼테이션 예

Page 38: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.38운영체제

세그먼테이션 하드웨어

Page 39: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.39운영체제

세그먼테이션 (Segmentation)

• Segment Table 의 구현① faster registers 에② memory 에

• STBR(Segment-Table Base Register) → Segment Table• STLR(Segment-Table Length Register)

» 2 회 memory accesses → associative registers• 보호와 공유 (Protection and Sharing)

① 보호• Segment : 의미적으로 정의된 프로그램의 부분 (semantically

defined portion of the program• Segment table 에 보호 비트 (protection bit) : read-only, execute-

only, writable② 공유

• 각 프로세스는 PCB 에 연관된 segment table 유지 : dispatcher 가 이용

segment 로 정의되어 있기만 하면 각 프로세스의 segment table 을 통해 공유

• ( 예 ) 시분할 환경의 text editor : 그림 8.20• 단편화 (Fragmentation)

» MVT 처럼 외부단편 생김 (segment 는 variable length 이므로 ) wait until more memory 또는 compaction

Page 40: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.40운영체제

세그먼트 공유 (Sharing of segments)

Page 41: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.41운영체제

사례 : The Intel Pentium

•지원하는 주 메모리 기법» 순수 세그먼테이션 (pure segmentation) 과» 페이지화된 세그먼테이션 (segmentation with paging)

•CPU 는 논리 주소 (logical address) 생성하여 세그먼테이션 유니트에 보냄

•세그먼테이션 유니트는 선형주소 (linear address) 생성하여 페이징 유니트에 보냄

•페이징 유니트 (MMU 와 동일한 역할 ) 는 주 메모리의 물리주소(physical address) 를 생성

Page 42: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.42운영체제

페이지화된 세그먼테이션 (Segmentation with Paging)

• Pentium 세그먼테이션 (OS/2 32-bits Version 이후 ) » Inter 80386(80486)구조 상의 OS/2 32-bits version» segment 최대 개수 : 16K = 214 = 213 x 21

» segment 최대크기 : 4G = 232

» page size : 4K = 212

» 한 프로세스의 논리주소공간은• 2 partitions

» private ~ 8K 개 segments : LDT(local descriptor table) : 각 항목 8 bytes

» public (shared) ~ 8K 개 segments : GDT(global descriptor table) : 각 항목 8 bytes

• 논리주소 = (16 bits selector, 32 bits offset)

» 6 segment registers : 동시에 6 개 세그먼트 접근 가능» 6 개의 8 bytes micro program registers : LDT 또는 GDT 내용을 담을

수 있는 caches

13 bits 1 bit 2 bitssegment LDT protectionnumber(~8K) GDT

s g p

Page 43: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.43운영체제

페이지화된 세그멘테이션 (Segmentation with Paging)

• Pentium 페이징» addressing : 그림 8.20 참조

• selector→ GDT, LDT entry(base address)+offset=32 bits 선형주소 (linear address) → 물리주소로 변환

• 최대 232 segment( 외부단편 문제 없애려 ) 를 4K 또는 4M paging( 내부단편 문제 )

① 4K paging (1K 항목 , 각 항목 4 bytes) 하면 220 개 항목 4M 테이블 4M 페이지 테이블을 2-level 4K paging

② 4M paging p d

10 22page directory

p1 p2 d

10 10 12page swappabledirectory page table

Page 44: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.44운영체제

Pentium 의 페이징 구조 (Pentium Paging Architecture)

Pentium 의 페이지 사이즈는 ?Page Size flag

Page 45: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.45운영체제

Pentium 에서의 논리주소에서 물리주소로의 변환(Logical to Physical Address Translation in Pentium)

Page 46: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.46운영체제

Intel Pentium 세그먼테이션 (Intel Pentium Segmentation)

Page 47: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.47운영체제

Linux 의 삼단계 페이징 (Three-level Paging in Linux)

Linux 의 선형 주소 (Linear Address in Linux) 는 4 부분으로 나뉨 :

Page 48: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.48운영체제

Intel 80386 address translation

Page 49: Chapter 8.  주 메모리 ( Main Memory)

인천대학교 컴퓨터공학과 성미영 8.49

내 인생의 신조

운영체제

나는 지식보다 상상력이 더 중요함을 믿는다 .신화가 역사보다 더 많은 의미를 담고 있음을

나는 믿는다 .꿈이 현실보다 더 강력하며희망이 항상 어려움을 극복해 준다고 믿는다 .그리고 슬픔의 유일한 치료제는 웃음이며사랑이 죽음보다 더 강하다는 걸 나는 믿는다 .이것이 내 인생의 여섯 가지 신조이다 .

로버트 풀검