모바일 환경에서 파일 입출력 연산을 활용한 · 모바일 환경에서 파일 입출력 연산을 활용한 메모리 중복 제거 기법 이세호*, 김인혁*, 엄영익*
Chapter 8. 주 메모리 ( Main Memory)
-
Upload
macaulay-velazquez -
Category
Documents
-
view
92 -
download
10
description
Transcript of Chapter 8. 주 메모리 ( Main Memory)
![Page 1: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/1.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/2.jpg)
인천대학교 컴퓨터공학과 성미영 8.2
기본 하드웨어
•베이스 (base) 와 상한 (limit) 레지스터가 논리 주소 공간을 정의
• Monitor mode 에서 OS 는 monitor 와 사용자 메모리 전체에 무제한 접근권한 가짐
• 기준 (base) 과 한계 (limit) 레지스터 적재 명령은 특권 명령임
![Page 3: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/3.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/4.jpg)
인천대학교 컴퓨터공학과 성미영 8.4운영체제
사용자 프로그램의 다단계 처리
![Page 5: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/5.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/6.jpg)
인천대학교 컴퓨터공학과 성미영 8.6운영체제
중첩 (Overlays)
• 중첩 (Overlays)» 주어진 시간에 꼭 필요한 명령만 메모리에 유지
• ( 예 ) 2 - pass assembler» user 가 전담 → automatic technique (= virtual memory)
![Page 7: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/7.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/8.jpg)
인천대학교 컴퓨터공학과 성미영 8.8운영체제
동적 재배치 (Dynamic Relocation)
![Page 9: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/9.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/10.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/11.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/12.jpg)
인천대학교 컴퓨터공학과 성미영 8.12운영체제
기억장치 할당 예
( 예 ) 기억장치 할당 예 (c) 에서 100k, 100k, 200k, 160k 할당
![Page 13: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/13.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/14.jpg)
인천대학교 컴퓨터공학과 성미영 8.14운영체제
압축 (compaction)
![Page 15: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/15.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/16.jpg)
인천대학교 컴퓨터공학과 성미영 8.16운영체제
페이징 예
0
1
2
3
4
5
6
7
p ( 3 , 3 )
1 1 1 1
![Page 17: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/17.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/18.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/19.jpg)
인천대학교 컴퓨터공학과 성미영 8.19운영체제
페이징 주소변환 하드웨어 (Address Translation Hardware)
![Page 20: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/20.jpg)
인천대학교 컴퓨터공학과 성미영 8.20운영체제
가용 프레임 (Free Frames)
![Page 21: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/21.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/22.jpg)
인천대학교 컴퓨터공학과 성미영 8.22운영체제
TLB (Translation Look-aside Buffers) 이용 페이징 하드웨어
![Page 23: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/23.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/24.jpg)
인천대학교 컴퓨터공학과 성미영 8.24운영체제
페이지 테이블에서 유효 (v) 무효 (i) 비트
![Page 25: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/25.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/26.jpg)
인천대학교 컴퓨터공학과 성미영 8.26운영체제
2 단계 페이지 테이블 체계 (Two-Level Page-Table Scheme)
0
1023
0
1023
0
1023
0
1023
Q: 이 때 메모리 상의 페이지 테이블 크기는 ?
![Page 27: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/27.jpg)
인천대학교 컴퓨터공학과 성미영 8.27
Address-Translation Scheme
![Page 28: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/28.jpg)
인천대학교 컴퓨터공학과 성미영 8.28
Three-level Paging Scheme
![Page 29: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/29.jpg)
인천대학교 컴퓨터공학과 성미영 8.29
해시형 페이지 테이블 (Hashed Page Tables)
• 주소 공간 (address space) 이 32 bits보다 커질 경우 자주 사용
• 가상 페이지 번호가 페이지 테이블의 해시 값으로 해싱됨» 페이지 테이블의 각 항목은 같은 위치로 해싱된 항목들의 연결 리스트
체인을 가짐» 각 원소의 필드
• 가상 페이지 번호• 사상되는 페이지 프레임 번호• 연결 리스트 상의 원소 포인터
• 가상 페이지 번호는 연결 리스트를 따라가며 각 원소의 가상 페이지 번호를 비교» 매칭이 발견되면 , 해당 물리 프레임 번호를 얻음
![Page 30: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/30.jpg)
인천대학교 컴퓨터공학과 성미영 8.30
해시형 페이지 테이블 (Hashed Page Tables)
![Page 31: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/31.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/32.jpg)
인천대학교 컴퓨터공학과 성미영 8.32운영체제
역 페이지 테이블 구조 (Inverted Page Table Architecture)
![Page 33: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/33.jpg)
인천대학교 컴퓨터공학과 성미영 8.33운영체제
공유 페이지 예 (Shared Pages Example)
![Page 34: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/34.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/35.jpg)
인천대학교 컴퓨터공학과 성미영 8.35
User’s View of a Program
![Page 36: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/36.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/37.jpg)
인천대학교 컴퓨터공학과 성미영 8.37운영체제
세그먼테이션 예
![Page 38: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/38.jpg)
인천대학교 컴퓨터공학과 성미영 8.38운영체제
세그먼테이션 하드웨어
![Page 39: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/39.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/40.jpg)
인천대학교 컴퓨터공학과 성미영 8.40운영체제
세그먼트 공유 (Sharing of segments)
![Page 41: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/41.jpg)
인천대학교 컴퓨터공학과 성미영 8.41운영체제
사례 : The Intel Pentium
•지원하는 주 메모리 기법» 순수 세그먼테이션 (pure segmentation) 과» 페이지화된 세그먼테이션 (segmentation with paging)
•CPU 는 논리 주소 (logical address) 생성하여 세그먼테이션 유니트에 보냄
•세그먼테이션 유니트는 선형주소 (linear address) 생성하여 페이징 유니트에 보냄
•페이징 유니트 (MMU 와 동일한 역할 ) 는 주 메모리의 물리주소(physical address) 를 생성
![Page 42: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/42.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/43.jpg)
인천대학교 컴퓨터공학과 성미영 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)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/44.jpg)
인천대학교 컴퓨터공학과 성미영 8.44운영체제
Pentium 의 페이징 구조 (Pentium Paging Architecture)
Pentium 의 페이지 사이즈는 ?Page Size flag
![Page 45: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/45.jpg)
인천대학교 컴퓨터공학과 성미영 8.45운영체제
Pentium 에서의 논리주소에서 물리주소로의 변환(Logical to Physical Address Translation in Pentium)
![Page 46: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/46.jpg)
인천대학교 컴퓨터공학과 성미영 8.46운영체제
Intel Pentium 세그먼테이션 (Intel Pentium Segmentation)
![Page 47: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/47.jpg)
인천대학교 컴퓨터공학과 성미영 8.47운영체제
Linux 의 삼단계 페이징 (Three-level Paging in Linux)
Linux 의 선형 주소 (Linear Address in Linux) 는 4 부분으로 나뉨 :
![Page 48: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/48.jpg)
인천대학교 컴퓨터공학과 성미영 8.48운영체제
Intel 80386 address translation
![Page 49: Chapter 8. 주 메모리 ( Main Memory)](https://reader036.fdocuments.us/reader036/viewer/2022062308/56812fc3550346895d95451a/html5/thumbnails/49.jpg)
인천대학교 컴퓨터공학과 성미영 8.49
내 인생의 신조
운영체제
나는 지식보다 상상력이 더 중요함을 믿는다 .신화가 역사보다 더 많은 의미를 담고 있음을
나는 믿는다 .꿈이 현실보다 더 강력하며희망이 항상 어려움을 극복해 준다고 믿는다 .그리고 슬픔의 유일한 치료제는 웃음이며사랑이 죽음보다 더 강하다는 걸 나는 믿는다 .이것이 내 인생의 여섯 가지 신조이다 .
로버트 풀검