5 ca-memory structuret

85
โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโ Memory Management Structure

Upload: krissapat

Post on 26-Jun-2015

275 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 5 ca-memory structuret

โครงสร�างการจัดการหน่�วยความจั�า

Memory Management Structure

Page 2: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 2

Learning Objectives

เพื่��อศึ�กษาแน่วค�ดพื่��น่ฐาน่เก!�ยวก�บการประสาน่เวลาของซี!พื่!ย' ป(ญหาและว�ธี!การแก+ไขเก!�ยวก�บการประสาน่เวลา

เพื่��อเข+าใจัเก!�ยวก�บการจั�ดการหน่�วยความจั�าว�ธี!ติ�างๆ และข��น่ติอน่ว�ธี!ของการจั�ดการหน่�วยความจั�า

เพื่��อว�เคราะห/เปร!ยบเที!ยบข+อด!ข+อเส!ยของว�ธี!การจั�ดการว�ธี!ติ�างๆ

Page 3: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 3

Agenda

แน่วค�ดพื่��น่ฐาน่ (Background) การส�บเปล!�ยน่ (Swapping) การจั�ดสรรหน่�วยความจั�าแบบพื่��น่ที!�ติ�ดก�น่ (Contiguous

Allocation) การสล�บหน่+า (Paging) การแบ�งส�วน่หร�อเซี1กเมน่ติ/ (Segmentation) การผสมผสาน่หน่�วยความจั�าการสล�บหน่+าและการแบ�งส�วน่

(Segmentation with Paging)

Page 4: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 4

แน่วค�ดพ��น่ฐ์าน่ Background

ค�าส��งที!�จัะถู'กด�าเน่�น่การได+โดยซี!พื่!ย' จัะติ+องถู'กด�งมาและเก1บที!�ติ�าแหน่�งใน่หน่�วยความจั�า ร'ปแบบการที�างาน่ของรอบค�าส��งเคร��องและการปฏิ�บ�ติ�งาน่ติามค�าส��ง (instruction-execution cycle) จัะม!ข��น่ติอน่การที�างาน่ ด�งน่!� ไปน่�ามา (fetch) ค�อการเร��มติ+น่การที�างาน่ซี��งระบบจัะที�าการด�ง

ค�าส��งแรกจัากหน่�วยความจั�า ถอดรหส (decode) ค�อการที�างาน่ติ�อจัากข��น่ติอน่ที!� 1 โดยน่�า

ค�าส��งน่!�ไปที�าการถูอดรห�ส ซี��งอาจัจัะได+ติ�วด�าเน่�น่การหร�อข+อม'ล เพื่��อใช้+ก�บค�าส��งถู�ดไป

กระทำ�าการ (execution) ค�อการที�างาน่ติ�อจัากข��น่ติอน่ที!� 2 ซี��งหล�งจัากน่��น่ค�าส��งจัะที�างาน่ติามติ�วด�าเน่�น่การที!�ได+

จัดเก&บ (store) ผลล�พื่ธี/จัะถู'กเก1บกล�บไปใน่หน่�วยความจั�าหล�กติ�อไป

Page 5: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 5

การก�าหน่ดตำ�าแหน่�งBackground (2)

โปรแกรมติ+องน่�ารห�สเคร��อง (machine code) จัากหน่�วยเก1บเข+ามาไว+ใน่หน่�วยความจั�าเพื่��อให+พื่ร+อมด�าเน่�น่การใน่ร'ปของกระบวน่การ

แถวคอยขาเข�า (Input queue) การสะสมของกระบวน่การใน่ด�สก/ที!�รอยคอยอย'� เพื่��อที!�จัะเข+ามา

ที�างาน่ใน่หน่�วยความจั�าหล�กเพื่��อด�าเน่�น่การโปรแกรม เล�อกกระบวน่การใน่แถูวคอยขาเข+า และด�งกระบวน่การไปไว+ใน่หน่�วย

ความจั�าหล�ก แล+วกระบวน่การจัะที�างาน่เข+าถู�งค�าส� �งและข+อม'ล หล�งจัากน่��น่ กระบวน่การจัะออกจัากหน่�วยความจั�าหล�ก ที�าให+หน่�วย

ความจั�าหล�กว�างลงส�าหร�บกระบวน่การใหม�เข+ามาใช้+งาน่ได+

Page 6: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 6

การก�าหน่ดตำ�าแหน่�งBackground (3)

ภาพื่ที!� 6.1 การก�าหน่ดเลขที!�อย'�ให+ก�บกระบวน่การใน่หน่�วยความจั�าหล�ก

Page 7: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 7

โปรแกรมผ'+ใช้+จัะติ+องที�างาน่หลายข��น่ติอน่จัน่กว�าจัะถู'กด�าเน่�น่การ (run) การก�าหน่ดเลขที!�อย'�ของโปรแกรม (ค�าส��งและข+อม'ล) เพื่��อแปลงไปเป7น่เลขที!�อย'�ใน่

หน่�วยความจั�าหล�ก ม!ข� �น่ติอน่ด�งน่!� ช�วงเวลาแปล (Compile time)

ถู+าร' +จั�กติ�าแหน่�งหน่�วยความจั�าไว+แล+ว สามารถูแปลเลขที!�อย'�ส�มบ'รณ์/ (absolute address) ซี��งเป7น่ติ�าแหน่�งจัร�งใน่หน่�วยความจั�าหล�กได+เลย แติ�ถู+าติ�าแหน่�งเร��มติ+น่เปล!�ยน่ ก1ติ+องเร��มแปลใหม�

ช�วงเวลาบรรจั* (Load time) ถู+าย�งไม�ร' +ว�าโปรแกรมจัะที�างาน่ ณ์ เลขที!�อย'�ใดใน่ช้�วงเวลาขณ์ะที!�แปลโปรแกรม จัะติ+อง

แปลเลขที!�อย'�เป7น่แบบย+ายได+ (relocatable) ช�วงเวลากระทำ�าการ (Execution time)

การผ'กเลขที!�อย'�จัะถู'กหน่�วงเวลาไว+จัน่กระที��งถู�งช้�วงเวลาด�าเน่�น่การ กระบวน่การม!การย+ายติลอดการที�างาน่จัากหน่�วยความจั�าหล�กติอน่หน่��งไปอ!กติอน่หน่��ง

การก�าหน่ดติ�าแหน่�งติ+องม!การหน่�วงเวลาจัน่กระที��งม!การที�างาน่จัร�ง (run time) จัะติ+องม!ฮาร/ดแวร/เฉพื่าะเติร!ยมไว+ส�าหร�บการที�างาน่ล�กษณ์ะน่!�ด+วย (e.g., base and limit registers)

การน่�าค�าส+งและข�อม,ลเข�าส,�หน่�วยความจั�า

Background (3)

Page 8: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 8

ภาพื่ที!� 6.2 ข��น่ติอน่ติ�างๆ ใน่การเร!ยกใช้+งาน่ของโปรแกรมผ'+ใช้+

Page 9: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 9

พ��น่ทำ-+ว�างของเลขทำ-+อย,�แบบตำรรกะและแบบกายภาพ

Logical vs. Physical Address Space

แน่วค�ดเก!�ยวก�บพื่��น่ที!�แบบติรรกะและแบบกายภาพื่ ถู�อเป7น่แกน่กลางของการจั�ดการหน่�วยความจั�า เลขทำ-+อย,�แบบตำรรกะ (Logical address)

เลขที!�อย'�ที!�ถู'กสร+างข��น่โดยซี!พื่!ย' บางที!เร!ยกว�า เลขที!�อย'�เสม�อน่ (virtual address) เลขทำ-+อย,�แบบกายภาพ (Physical address)

เลขที!�อย'�ซี��งถู'กมองเห1น่ได+โดยหน่�วยความจั�า ถู'กบรรจั;เข+าที!�เรจั�สเติอร/เลขที!�อย'�ของหน่�วยความจั�า (memory-address register)

ใน่ช้�วงเวลาแปลและช้�วงเวลาบรรจั; จัะม!เลขที!�อย'�แบบติรรกะและแบบกายภาพื่เหม�อน่ก�น่ แติ�ใน่ช้�วงเวลากระที�าการ เลขที!�อย'�ของที��งสองแบบจัะแติกติ�างก�น่

กล;�มของเลขที!�อย'�แบบติรรกะที��งหมดที!�ถู'กสร+างโดยโปรแกรมเร!ยกว�า พ��น่ทำ-+ว�างของเลขทำ-+อย,�แบบตำรรกะ (logical address space)

กล;�มของเลขที!�อย'�แบบกายภาพื่ที!�สอดคล+องก�บเลขที!�อย'�แบบติรรกะเหล�าน่��น่จัะเร!ยกว�า พ��น่ทำ-+ว�างของเลขทำ-+อย,�แบบกายภาพ (physical address space)

Page 10: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 10

หน่�วยจัดการหน่�วยความจั�าMemory-Management Unit (MMU)

เม��อบรรจั;กระบวน่การเข+ามาใน่หน่�วยความจั�า Logical Address จัะติ+องถู'กแปลงไปเป7น่ Physical Address เร!ยกว�ธี!การน่!�ว�าการย�ายเลขทำ-+อย,� (Relocation)

ฮาร/ดแวร/ที�าหน่+าที!�แปลงเลขที!�อย'�เสม�อน่ให+เป7น่เลขที!�อย'�จัร�งแบบกายภาพื่ค�อ MMU

เรจั�สเติอร/ฐาน่ที�าหน่+าที!�เป7น่เรจั�สเติอร/ส�าหร�บย+ายเลขที!�อย'� (relocate register) เพื่��อใช้+อ+างอ�งเลขที!�อย'�ใน่หน่�วยความจั�าที;กคร��ง ติ+องน่�าค�าอ+างอ�งที!�ได+มาบวกก�บค�าเรจั�สเติอร/ฐาน่เส!ยก�อน่จั�งจัะได+เลขที!�อย'�จัร�ง

โปรแกรมผ'+ใช้+จั�งติ�ดติ�อก�บเลขที!�อย'�แบบติรรกะ (logical addresses) เที�าน่��น่ จัากน่��น่ MMU จัะที�าการแปลงเลขที!�อย'�แบบติรรกะไปเป7น่แบบกายภาพื่ (real physical) ให+เอง

Page 11: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 11

ภาพื่ที!� 6.3 การย+ายติ�าแหน่�งแบบพื่ลว�ติโดยใช้+เรจั�สเติอร/ย+ายติ�าแหน่�ง (Dynamic relocation using a relocation register)

Page 12: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 12

การบรรจั*แบบพลวตำDynamic Loading

เพื่��อให+สามารถูใช้+หน่�วยความจั�าหล�กได+อย�างม!ประส�ทีธี�ภาพื่ส'งส;ด ว�ธี!การบรรจั;แบบพื่ลว�ติ (dynamic loading) เป7น่การน่�า

โปรแกรมไปไว+ใน่หน่�วยความจั�าแบบส�มพื่�ทีธี/ (relative memory)

โปรแกรมย�อย (routine) ที!�ไม�ได+ม!การที�างาน่ จัะไม�ถู'กน่�ามาไว+ใน่หน่�วยความจั�าหล�ก แติ�จัะน่�าไปไว+ใน่หน่�วยความจั�าหล�กเม��อม!การเร!ยกใช้+โปรแกรมย�อยน่!�เที�าน่��น่

ไม�จั�าเป7น่ติ+องอาศึ�ยค�าส��งพื่�เศึษใดๆ จัากระบบปฏิ�บ�ติ�การ แติ�เป7น่หน่+าที!�ของผ'+ออกแบบโปรแกรมเอง

ระบบปฏิ�บ�ติ�การอาจัช้�วยได+โดยการจั�ดเติร!ยมร'ที!น่จัากคล�ง (library routine) ส�าหร�บใช้+งาน่การบรรจั;แบบพื่ลว�ติไว+ให+

Page 13: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 13

การเช�+อมโยงแบบพลวตำDynamic Linking

OS บางช้น่�ดจัะสน่�บสน่;น่เฉพื่าะการเช้��อมโยงแบบคงที!� (static linking)

การเช้��อมโยงแบบพื่ลว�ติน่��น่ การเช้��อมโยงโปรแกรมจัะถู'กหน่�วงเวลาไว+ก�อน่ จัน่กว�าจัะถู�งเวลากระที�าการ (execution time)

ใน่ขณ์ะที�าการเช้��อมโยงแบบพื่ลว�ติ โปรแกรมย�อยจัะม!การสร+างช้;ดค�าส��งเร!ยกระบบ (stub) ซี��งม!ขน่าดเล1ก เพื่��อใช้+เร!ยกร'ที!น่จัากคล�งที!�ติ+องการขณ์ะที�างาน่

stub จัะที�างาน่โดยการเปล!�ยน่โปรแกรมติ�วเองเป7น่ติ�าแหน่�งของโปรแกรมย�อยใน่ระบบ และกระที�าการก�บโปรแกรมย�อยน่��น่

การเช้��อมโยงแบบพื่ลว�ติใช้+ก�น่อย�างแพื่ร�หลายโดยเฉพื่าะใน่ routine library เร!ยกว�า การใช้+คล�งร�วมก�น่ (shared libraries)

Page 14: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 14

ตำวอย�างการทำ�างาน่ของโปรแกรม Static Linked Library (Link

ก�อน่ร�น่) ขน่าดไฟล/ EXE จัะใหญ�

Dynamic Linked Library (Link ติอน่ร�น่) ขน่าดไฟล/ EXE เล1ก จัะม!ไฟล/ DLL

พื่�วงเข+ามาด+วย ใช้+ไฟล/ DLL ร�วมก�น่ใน่หลายๆ

กระบวน่การได+

โปรแกรมบน่ DOS เป7น่ Static linked

Page 15: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 15

ป/ญหาของการจัองพ��น่ทำ-+ หน่�วยความจั�าม�กจัะม!น่+อยกว�าความติ+องการของที;ก

กระบวน่การเสมอ ม!หลายเทีคน่�คที!�ใช้+ใน่การจัองพื่��น่ที!�ของกระบวน่การ

การซี+อน่ที�บ (Overlay) การส�บเปล!�ยน่ (Swapping) การจั�ดสรรพื่��น่ที!�แบบส�วน่เด!ยว (Single Partition

Allocation) การจั�ดสรรพื่��น่ที!�แบบหลายส�วน่ (Multiple Partition

Allocation)

Page 16: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 16

การซ้�อน่ทำบOverlay

เพื่��อจั�ดสรรพื่��น่ที!�ว�างให+กระบวน่การที!�ม!ขน่าดใหญ�กว�าขน่าดของหน่�วยความจั�าสามารถูที�างาน่ได+

การซี+อน่ที�บ (overlay) ค�อ การเก1บค�าส��งและข+อม'ลไว+ใน่หน่�วยความจั�าเฉพื่าะที!�จั�าเป7น่ติ+องใช้+ใน่ขณ์ะน่��น่เที�าน่��น่ ส�วน่ที!�เหล�อให+เก1บไว+ใน่หน่�วยเก1บที!�อ��น่ก�อน่ เม��อจั�าเป7น่ติ+องใช้+จั�งเร!ยกเอามาจัากหน่�วยเก1บด�งกล�าวเข+ามาซี+อน่ที�บพื่��น่ที!�เด�มใน่หน่�วยความจั�า

ผ'+เข!ยน่โปรแกรมติ+องออกแบบการแบ�งส�วน่ที��งหมด ซี��งเป7น่งาน่ที!�ค�อน่ข+างย;�งยากเพื่ราะผ'+เข!ยน่โปรแกรมติ+องร' +เก!�ยวก�บโครงสร+างของโปรกรม การที�างาน่ ติลอดจัน่โครงสร+างข+อม'ลที!�ใช้+ใน่โปรแกรมเป7น่อย�างด!

Page 17: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 17

การซ้�อน่ทำบ (2)Overlay

พื่�ฒน่าจัากธีรรมช้าติ�ของโปรแกรม ที!�ม!การที�างาน่ซี��าๆ ก�น่หลายๆ รอบ เช้�น่ การแปลรห�สของ Compiler หร�อ Assemble

จัะที�าการแบ�งรห�สออกเป7น่ส�วน่ๆ จัะม!บางส�วน่ที!�ใช้+ซี��าก�น่ใน่แติ�ละรอบ

หากเราโหลดเฉพื่าะข+อม'ลที!�จัะใช้+ใน่แติ�ละรอบก1จัะเป7น่การประหย�ด

ข+อม'ลใน่รอบก�อน่หน่+าที!�ไม�ใช้+จัะถู'กซี+อน่ที�บ (Overlay) ไป

Page 18: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 18

ภาพื่ที!� 6.4 การซี+อน่ที�บส�าหร�บติ�วแปลภาษาแอสแซีมบล!แบบแปลสองรอบ

Page 19: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 19

การสบเปล-+ยน่Swapping

กระบวน่การจั�าเป7น่ติ+องอย'�ใน่หน่�วยความจั�าหล�กขณ์ะที�างาน่ แติ�อาจัถู'กส�บเปล!�ยน่ (swap) ไปเก1บไว+ใน่หน่�วยเก1บช้��วคราวได+แล+วถู'กน่�ากล�บมาใหม�เพื่��อที�างาน่ติ�อ เป7น่หล�กการเด!ยวก�บหน่�วยความจั�าเสม�อน่ (virtual Memory)

หน่�วยเก&บความจั*ส,ง (Backing store) จัาน่แม�เหล1กที!�ม!ความเร1วส'ง ขน่าดใหญ�สามารถูเก1บกระบวน่การที��งหมดใน่เวลา

เด!ยวก�น่ได+เพื่!ยงพื่อ และติ+องสามารถูอ�าน่-เข!ยน่ ที!�ติ�าแหน่�งใดๆ ก1ได+โดยติรง (direct access)

หม*น่ออกและหม*น่เข�า (Roll out, roll in) การส�บเปล!�ยน่กระบวน่การ เก�ดใน่ระบบที!�ใช้+ล�าด�บความส�าค�ญเป7น่เกณ์ฑ์/ใน่การจั�ด

ติารางการที�างาน่ (priority base) ติ�วจั�ดการหน่�วยความจั�าหล�กอาจัส�บเปล!�ยน่งาน่ที!�ม!ความส�าค�ญติ��าออกไปช้��วคราว

แล+วให+งาน่ที!�ม!ความส�าค�ญส'งกว�าเข+าที�างาน่จัน่เสร1จัก�อน่จั�งส�บเปล!�ยน่งาน่ที!�ม!ความส�าค�ญติ��ากล�บมาที�างาน่ติ�อ

เวลาส�วน่ใหญ�ของการสล�บงาน่ค�อ เวลาถู�ายโอน่ และเวลาถู�ายโอน่ที��งหมดจัะม!ส�ดส�วน่แปรผ�น่ติรงก�บจั�าน่วน่คร��งของการส�บเปล!�ยน่หน่�วยความจั�า

Page 20: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 20

Schematic View of Swapping

ภาพื่ที!� 6.5 การส�บเปล!�ยน่สองกระบวน่การโดยใช้+จัาน่แม�เหล1กเป7น่หน่�วยพื่�กช้��วคราว

Page 21: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 21

การจัดสรรพ��น่ทำ-+แบบส�วน่เด-ยว(Single Partition Allocation)

จัะแบ�งพื่��น่ที!�หน่�วยความจั�าออกเป7น่ 2 ส�วน่ ระบบ (System) ผ'+ใช้+ (User)

แติ�ละส�วน่จัะใช้+แยกจัากก�น่ และงาน่คน่ละประเภที เช้�น่เด!ยวก�บระบบเช้�งกล;�ม (Batch system) ซี��ง DOS ใช้+ว�ธี!น่!�

OS

USER

Page 22: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 22

การวางข�อม,ลของกระบวน่การ จัะวางอย�างไร (ใน่ User Area) ให+ไม�ที�บก�บส�วน่ System วางให+ไกลจัากก�น่มากที!�ส;ด

OS

Process1

โอกาส Error ก1ยากข��น่

Page 23: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 23

การจัดสรรหน่�วยความจั�าแบบพ��น่ทำ-+ตำ�ดกน่

Contiguous Allocation

หน่�วยความจั�าหล�กถู'กแบ�งเป7น่สองส�วน่ ระบบปฏิ�บ�ติ�การฝั(งติ�ว (Resident OS), ม�กอย'�ใน่หน่�วยความจั�าส�วน่ล�างพื่ร+อมก�บ

interrupt vector กระบวน่การผ'+ใช้+ อย'�ใน่หน่�วยความจั�าส�วน่บน่

ส�วน่ของ OS ที!�ไม�ค�อยได+ใช้+งาน่จัะถู'กแยกไปเก1บไว+บน่ด�สก/ เร!ยกว�า ภาวะช้��วคร' � (transient)

Page 24: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 24

การจัดสรรหน่�วยความจั�าแบบพ��น่ทำ-+ตำ�ดกน่

Contiguous Allocation หน่�วยความจั�าหล�กถู'กแบ�งเป7น่สองส�วน่

ระบบปฏิ�บ�ติ�การฝั(งติ�ว (Resident OS), ม�กอย'�ใน่หน่�วยความจั�าส�วน่ล�างพื่ร+อมก�บ interrupt vector

กระบวน่การผ'+ใช้+ อย'�ใน่หน่�วยความจั�าส�วน่บน่ ส�วน่ของ OS ที!�ไม�ค�อยได+ใช้+งาน่จัะถู'กแยกไปเก1บไว+บน่ด�สก/ เร!ยกว�า ภาวะช้��วคร' �

(transient) การจั�ดสรรพื่��น่ที!�แบบขน่าดคงที!� (fixed-size partition) หร�อแบบส�วน่เด!ยว

(Single-partition allocation) ช้;ดของเรจั�สเติอร/ย+ายติ�าแหน่�ง (Relocation-register scheme) จัะใช้+ส�าหร�บ

ป@องก�บกระบวน่การผ'+ใช้+จัากกระบวน่การอ��น่ และจัากการเปล!�ยน่รห�สของ OS และข+อม'ล

ช้;ดของเรจั�สเติอร/ย+ายติ�าแหน่�ง บรรจั;ด+วยค�าเลขที!�อย'�เช้�งกายภาพื่ที!�เล1กที!�ส;ด, base register บางคร��งเร!ยก Offset

บรรจั;ขอบเขติของที!�อย'�เช้�งติรรกะ ซี��งแติ�ละเลขที!�อย'�จัะติ+องม!ค�าน่+อยกว�า limit register

Page 25: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 25

ภาพื่ที!� 6.6 Base register และ limit register ที�าหน่+าที!�ก�าหน่ดขอบเขติเลขที!�อย'�เช้�งติรรกะ

Page 26: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 26

ภาพื่ที!� 6.7 ฮาร/ดแวร/สน่�บสน่;น่การใช้+ย+ายติ�าแหน่�งด+วยเรจั�สเติอร/ฐาน่และเรจั�สเติอร/ขอบเขติ

Page 27: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 27

การแบ�งพ��น่ทำ-+แบบหลายส�วน่(Multiple Partition Allocation)

เป7น่ว�ธี!ที!�ม!ความย�ดหย;�น่มากกว�าแบบ Single Partition

ม! 2 แบบ Fixed Sized Partition ที;กๆ Partition ม!ขน่าด

เที�าๆก�น่ Dynamic Allocation ขน่าดของ Partition ปร�บ

ติามขน่าดของกระบวน่การ

Page 28: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 28

การแบ�งส�วน่แบบขน่าดคงทำ-+Fix Sized Partition

500B

1000B

ใช้+ 2 Partition

2100B

ใช้+ 3 Partition

เก�ดป(ญหาอะไร ?

จัะม!พื่��น่ที!�จัองไว+แติ�ไม�ได+ใช้+งาน่เลย

Page 29: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 29

การแบ�งส�วน่แบบขน่าดคงทำ-+Fix Sized Partition

1200B

ใช้+ 1200B

2580B

ใช้+ 2580B

เก�ดป(ญหาอะไร ?

เม��อจัองใกล+เติ1มจัะม!พื่��น่ที!�ขน่าดเล1กที!�ใช้+ไม�ได+

Page 30: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 30

การจั�ดสรรพื่��น่ที!�แบบหลายส�วน่ (Multiple-partition allocation) พื่��น่ที!�ว�าง (Hole) – บล1อกพื่��น่ที!�ว�างใน่หน่�วยความจั�า พื่��น่ที!�ว�างขน่าดติ�างๆ ที!�

กระจัายติลอดหน่�วยความจั�า เม��อกระบวน่การมาถู�ง ก1จัะถู'กจั�ดสรรหน่�วยความจั�าจัากพื่��น่ที!�ว�างขน่าดที!�ใหญ�

เพื่!ยงพื่อก�บกระบวน่การน่��น่ OS จัะเก1บข+อม'ลเก!�ยวก�บ

a) ส�วน่ที!�ถู'กจั�ดสรร (allocated partitions)

b) ส�วน่ที!�ว�าง (free partitions/hole)

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

การจัดสรรหน่�วยความจั�าแบบพ��น่ทำ-+ตำ�ดกน่

Contiguous Allocation (cont.)

Page 31: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 31

การแตำกกระจัาย Fragmentation

จัากการจัองพื่��น่ที!�แบบ Multiple Partition จัะที�าให+เก�ดส��งน่!� ม! 2 ประเภที

Internal Fragmentation (เก�ดก�บแบบ Fixed Sized) External Fragmentation (เก�ดก�บแบบ Dynamic)

จัองใช้+จัร�ง

Internal Fragment

P1 ใช้+

P2 ใช้+

External Fragment

ไม�ม!ใครใช้+ได+

Fix Sized Dynamic

Page 32: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 32

การส,ญเปล�าทำ-+เก�ดจัากการแตำกกระจัาย

Fragmentation

การแตำกกระจัายแบบภายน่อก (External Fragmentation) พื่��น่ที!�หน่�วยความจั�าซี��งว�างเป7น่ช้�วงๆ ไม�ติ�อเน่��องก�น่ ม!ขน่าดเล1กเก�น่ไป

ส�าหร�บงาน่ที!�รอคอยอย'� การแตำกกระจัายแบบภายใน่ (Internal Fragmentation)

การจั�ดสรรพื่��น่ที!�หน่�วยความจั�าที!�ม!ขน่าดใหญ�เก�น่กว�าที!�กระบวน่การร+องขอ ส�วน่ที!�เหล�อไว+ย�งไม�ได+ถู'กน่�าไปใช้+งาน่

การลดการแติกกระจัายแบบภายน่อกสามารถูที�าได+โดยการอดแน่�น่/การกระชบพ��น่ทำ-+ (compaction) การส�บเปล!�ยน่พื่��น่ที!�ว�างใน่ระบบให+มาอย'�รวมก�น่เป7น่ผ�น่เด!ยวก�น่ติ�อ

เน่��องก�น่ สามารถูที�าได+เฉพื่าะกรณ์!ที!�การย+ายติ�าแหน่�งเป7น่แบบส�มพื่�ทีธี/และเก�ด

ข��น่ใน่ขณ์ะที�างาน่เที�าน่��น่

Page 33: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 33

การอดแน่�น่Compaction

ส�าหร�บการจัองพื่��น่ที!�แบบ Dynamic Allocation น่��น่จัะจัองหน่�วยความจั�าไปเร��อยๆ

หากจัองไปเร��อยๆก1จัะเก�ด External Fragmentation เราสามารถูบ!บอ�ดพื่��น่ที!�ที!�อย'�กระจัายก�น่ให+มาติ�ดก�น่ได+ จัะที�าให+เหล�อพื่��น่ที!�

ว�างมากข��น่และไม�เก�ด External Fragmentation

ข+อเส!ยก1ค�อที�างาน่ช้+าลง เพื่ราะติ+อง Copy ข+อม'ลที!ละไบที/

Page 34: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 34

ป/ญหาการจัดสรรหน่�วยเก&บแบบพลวตำDynamic Storage-Allocation Problem

การจัดลงตำวคร�งแรก First-fit: การเล�อกพื่��น่ที!�แรก (first hole) ที!�พื่บว�าม!ขน่าดใหญ�กว�า หร�อเที�าก�บพื่��น่ที!�ที!�ติ+องการ

การจัดแล�วพอด-ทำ-+ส*ด Best-fit: การเล�อกพื่��น่ที!�ที!�ม!ขน่าดใกล+เค!ยงก�บขน่าดพื่��น่ที!�ที!�ติ+องการมากที!�ส;ด (smallest hole) ซี(ที�าให+เก�ดช้�องว�างใหม�เล1กที!�ส;ด)

การจัดแล�วเหล�อมากทำ-+ส*ด Worst-fit: การเล�อกพื่��น่ที!�ที!�ม!ขน่าดใหญ�กว�าขน่าดพื่��น่ที!�ที!�ติ+องการมากที!�ส;ด (largest hole) (ที�าให+เก�ดช้�องว�างใหม�ใหญ�ที!�ส;ด)

ว�ธี!การจั�ดสรรพื่��น่ที!�ว�างเม��อม!การร+องขอขน่าด n

ว�ธี!แรก First-Fit และ Best-Fit ด!กว�าว�ธี! Worst-Fit ใน่แง�ของเวลาที!�ลดลง และประส�ทีธี�ผลใน่การใช้+หน่�วยเก1บข+อม'ล

Page 35: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 35

การจัดลงตำวคร�งแรก First Fit

เจัอพื่��น่ที!�ว�างเม��อไรก1จัองที�น่ที! ว��ง Scan หาจัากบน่ลงล�าง ที�างาน่ได+เร1ว ข+อม'ลกระจั;กติ�วอย'�แติ�ข+างบน่ อาจัเก�ด Fragment ที!�ม!ขน่าดใหญ�ได+

20K

First

Page 36: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 36

การจัดแล�วพอด-ทำ-+ส*ด Best-Fit

ที�าการ Scan จัากบน่ลงล�าง ค�าน่วณ์ใน่แติ�ละพื่��น่ที!�ที� �งหน่�วยความจั�า ติรงไหน่ม!ขน่าดใกล+เค!ยงก�บขน่าดของ โปรเซีสที!�ส;ดก1จัะจัองติรงน่��น่ ระบบที�างาน่ช้+า เพื่ราะค�าน่วณ์มาก เก�ด Fragment ขน่าดเล1ก แติ�ม!จั�าน่วน่

มาก อาจัติ+อง Compact บ�อย

20K

Best

28K

23K

Page 37: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 37

การจัดแล�วเหล�อมากทำ-+ส*ด Worst-fit

ที�าการ Scan จัากบน่ลงล�าง ค�าน่วณ์ใน่แติ�ละพื่��น่ที!�ที� �งหน่�วยความ

จั�า ติรงไหน่ม!ขน่าดใหญ�กว�าขน่าดของ โปรเซีสที!�ส;ดก1จัะจัองติรงน่��น่ ระบบที�างาน่ช้+า เพื่ราะค�าน่วณ์มาก โอกาสเก�ด Fragment น่+อยลง

20K

Worst

28K

10K

5K

Page 38: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 38

การสลบหน่�าPaging

การจั�ดสรรพื่��น่ที!�หน่�วยความจั�าแบบติรรกะให+แติ�ละกระบวน่การที!�ผ�าน่มาน่��น่ ใช้+ได+ก�บพื่��น่ที!�ว�างแบบกายภาพื่ที!�เร!ยงติ�อเน่��องก�น่เที�าน่��น่

การสล�บหน่+า (paging) สามารถูที�าให+กระบวน่การเข+าไปอย'�ใน่หน่�วยความจั�าหล�กได+โดยไม�ติ+องม!พื่��น่ที!�ที!�เร!ยงติ�อเน่��องก�น่ที��งกระบวน่การ

หน่�วยความจั�าแบบกายภาพื่ (physical memory) จัะถู'กแบ�งเป7น่ส�วน่ๆ แติ�ละส�วน่ม!ขน่าดเที�าก�น่เร!ยกว�า เฟรม (frame)

หน่�วยความจั�าแบบติรรกะ (logical memory) ก1จัะถู'กแบ�งออกเป7น่ส�วน่ๆ เร!ยกว�า หน่�า (page) ม!ขน่าดเที�าก�บแติ�ละเฟรม

Page 39: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 39

การสลบหน่�าPaging

ม!การจั�ดเก1บรายการเฟรมว�างไว+ ใน่การร�น่โปรแกรมขน่าด n page ติ+องค+น่หาเฟรมว�างขน่าด n เพื่��อบรรจั;โปรแกรม สร+างติารางหน่+า (page table) เพื่��อแปลงไปเป7น่ที!�อย'�เช้�งกายภาพื่ (physical

addresses) อาจัเก�ด Internal fragmentation

โปรเซีสม!ขน่าด 3

Pages

Frames

MemoryProcess แติ�ละ Page จัะใช้+พื่��น่ที!�ใดก1ได+ ไม�

ติ+องติ�ดก�น่ก1ได+

0

1

0

1

2

Page 40: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 40

ว�ธี-การแปลงเลขทำ-+อย,�Address Translation Scheme

ที;กติ�าแหน่�งถู'กก�าหน่ดโดยซี!พื่!ย' แบ�งเป7น่ 2 ส�วน่ค�อ (page number (p)) และ ออฟเซีติของหน่+า (page offset (d))

หมายเลขหน่+า Page number (p) – ใช้+เป7น่ติ�วช้!�ไปย�งติารางเลขหน่+า (page table) ใน่ติารางเลขหน่+าที!�จัะม!ค�าติ�าแหน่�งฐาน่ หร�อจั;ดเร��มติ+น่ (base address) ของหน่+าจัร�งใน่หน่�วยความจั�าหล�ก

ออฟเซีติของหน่+า Page offset (d) – ค�าติ�าแหน่�งหน่+าจัร�งที!�รวมก�บออฟเซีติของหน่+า จัะเป7น่ติ�าแหน่�งจัร�ง (physical memory address) ใน่หน่�วยความจั�าหล�ก

Page 41: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 41

Address Translation Architecture

ฮาร/ดแวร/ส�าหร�บการสล�บหน่+า

Page 42: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 42

Paging Example

แบบจั�าลองการสล�บหน่+าของหน่�วยความจั�าแบบกายภาพื่และติรรกะ

Page 43: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 43

Paging Example

ติ�วอย�างการสล�บหน่+าส�าหร�บหน่�วยความจั�าขน่าด 32 ไบติ/ ออกเป7น่หน่+าขน่าด 4 ไบติ/

Page 44: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 44

เฟรมว�างFree Frames

Before allocation After allocation

Page 45: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 45

การค�าน่วณหา Address จัร�ง(Physical Address)

ส�าหร�บโปรเซีสจัะมองเป7น่ p : d (Page : offset) Page = หมายเลขของ Page, offset = ติ�าแหน่�งของข+อม'ลที!�อ+างอ�งภายใน่

Page น่��น่โดยน่�บจัากขอบของ page

1 : 30ข+อม'ลของ Page ที!� 1 อย'�ห�างจัากติ+น่ Page ไป 30 ไบติ/

0

1

2

ติ�อ -->

Page 46: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 46

ตำารางหน่�าPage Table

ใน่หน่�วยความจั�าจัะเก1บข+อม'ลน่!�ไว+ ใน่ร'ปแบบติาราง

เป7น่ข+อม'ลที!�บอกว�า Page แติ�ละติ�วอย'�ที!� Frame ไหน่บ+าง Page No. Frame No.

0 4

1 5

2 1

0

1

2

4

5

Page2

Page0

Page1

Page 47: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 47

ค�าน่วณโดยใช�ฮาร�ดแวร� MMU จัะค�าน่วณ์หา Physical Address ให+ก�บ

CPU จัะหา Frame No. ก�อน่แล+วบวกก�บ offset จัาก Frame No. ก1หา Add. เร��มติ+น่ของ Frame

ได+

CPU p d

0 4

1 5

2 1

page frame

f dMemory

Real Addr.

Page 48: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 48

หน่�าร�วม(Shared Pages)

แบ�งข+อม'ลใน่โปรเซีสออกเป7น่หน่+าๆ (Pages) แติ�ละหน่+าม!หน่+าที!� (Function) แติกติ�างก�น่ บาง Page สามารถูใช้+ร�วมก�น่ได+ระหว�างหลายโปรเซีส

code1

code2

data1

code1

code2

data2

P1 P2

code1

code2

data2

data1Memory

ประหย�ดหน่�วยความจั�ามากกว�าการโหลดที��งหมดจัากที��ง 2 โปรเซีส

Page 49: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 49

การแบ�งเป7น่ตำอน่/การแบ�งส�วน่(Segmentation)

จัะแบ�งข+อม'ลออกเป7น่ Segment ติามฟ(งก/ช้��น่การที�างาน่ แติ�ละ Segment ไม�จั�าเป7น่ติ+องม!ขน่าดเที�าก�น่

จัะโหลด main program ไปก�อน่เพื่!ยง segment เด!ยว แล+วเม��อม!การเร!ยก section อ��น่ๆก1จัะโหลดเข+ามาใน่หน่�วยความจั�าภายหล�ง (Load on demand)

ด�งน่��น่ จัะประหย�ดกว�าโหลดที��งหมดใน่คร��งเด!ยว

Page 50: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 50

การแบ�งเป7น่ตำอน่/การแบ�งส�วน่(Segmentation)

โครงร�างของการจั�ดการหน่�วยความจั�าที!�สน่�บสน่;น่ม;มมองของผ'+ใช้+ใน่ภาพื่ของหน่�วยความจั�า

จัะแบ�งข+อม'ลออกเป7น่ Segment ติามฟ(งก/ช้��น่การที�างาน่ แติ�ละ Segment ไม�จั�าเป7น่ติ+องม!ขน่าดเที�าก�น่ ด�งน่��น่ โปรแกรมค�อ หน่�วยรวมของเซี1กเมน่ที/ เซี1กเมน่ที/ ค�อหน่�วยทีางติรรกะช้น่�ดหน่��ง

อย�างเช้�น่ main program,procedure, function,method,object,local variables, global variables,common block,stack,symbol table, arrays

Page 51: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 51

User’s View of a Program

จัะโหลด main program ไปก�อน่เพื่!ยง segment เด!ยว แล+วเม��อม!การเร!ยก section อ��น่ๆก1จัะโหลดเข+ามาใน่หน่�วยความจั�าภายหล�ง (Load on demand)

ด�งน่��น่ จัะประหย�ดกว�าโหลดที��งหมดใน่คร��งเด!ยว

Page 52: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 52

Logical View of Segmentation

1

3

2

4

1

4

2

3

user space physical memory space

Page 53: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 53

สถาป/ตำยกรรมของการแบ�งส�วน่Segmentation Architecture

ที!�อย'�เช้�งติรรกะประกอบด+วย 2 คอล�มน่/<segment-number, offset>,

Segment table – แปลงไปเป7น่ที!�อย'�เช้�งกายภาพื่ขน่าด 2 ม�ติ� ประกอบด+วย ส�วน่ฐาน่ base – ก�าหน่ดหมายเลขที!�อย'�เช้�งกายภาพื่เร��มติ+น่ที!�อย'�ใน่

หน่�วยความจั�า ส�วน่จั�าก�ด limit – ระบ;ความยาวของ segment.

Segment-table base register (STBR) ช้!�ไปย�งที!�อย'�ใน่หน่�วยความจั�าของติารางเซี1กเมน่ที/

Segment-table length register (STLR) แสดงจั�าน่วน่ของเซี1กเมน่ที/ที!�ถู'กใช้+งาน่โดยโปรแกรมsegment number s is legal if s < STLR.

Page 54: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 54

Segmentation Architecture (Cont.)

การย+ายที!�อย'� (Relocation) dynamic by segment table

การใช้+งาน่ร�วมก�น่ (Sharing) shared segments same segment number

การจั�ดสรร (Allocation) first fit/best fit external fragmentation

Page 55: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 55

Segmentation Architecture (Cont.)

เลขที!�อย'�ติรรกะประกอบด+วย 2 ส�วน่ ค�อ หมายเลขส�วน่ (s), และ (2) ออฟเซีติที!�ช้!�ไปย�งส�วน่น่��น่ (d) ใช้+หมายเลขส�วน่เพื่��อเป7น่ติ�วช้!�ไปย�งข+อม'ลใน่ติารางเลขส�วน่

ข+อม'ลแติ�ละช้�องใน่ติารางเลขส�วน่ม!ค�าฐาน่และค�าจั�าก�ด ระยะจัากขอบ d จัะม!ค�าระหว�าง 0 ถู�งค�าขอบเขติของส�วน่ ถู+า d มากกว�าขอบเขติติอน่แล+วรายงาน่ข+อม'ลผ�ดพื่ลาดไปย�งระบบปฏิ�บ�ติ�

การว�าม!การอ+างอ�งติ�าแหน่�งน่อกขอบเขติติอน่ ถู+าค�า d ไม�เก�น่ค�าขอบเขติติอน่ อ;ปกรณ์/จัะน่�าค�า d ไปบวกก�บค�าฐาน่เป7น่ค�า

ติ�าแหน่�งจัร�ง ด�งน่��น่ จัะเห1น่ได+ว�าติารางเลขส�วน่ก1ค�อ แถูวล�าด�บของค'�เรจั�สเติอร/ฐาน่และ

จั�าก�ด (base-limit) น่��น่เอง

Page 56: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 56

Segmentation Hardware

Page 57: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 57

Implementation of Page Table

Page table จัะถู'กเก1บไว+ใน่หน่�วยความจั�าหล�ก Page-table base register (PTBR) จัะช้!�ไปย�ง page table Page-table length register (PRLR) ใช้+แสดงขน่าดขน่าด

ขออง page table ว�ธี!การเช้�น่น่!� ติ+องการการอ+างอ�ง 2 ส�วน่ของหน่�วยความจั�าหล�ก

ได+แก� หมายเลขส�วน่ และ ออฟเซี1ติที!�ช้!�ไปย�งส�วน่น่��น่ ส�วน่แรกส�าหร�บ page table อ!กส�วน่หน่��งส�าหร�บข+อม'ล/ค�าส��ง ป(ญหาการอ+างอ�งหน่�วยความจั�า 2 ส�วน่ สามารถูแก+ได+โดยการใช้+

ฮาร/ดแวร/พื่�เศึษที!�รวดเร1วที�าหน่+าที!�เป7น่แคช้ เร!ยกว�า associative memory หร�อ translation look-aside buffers (TLBs)

Page 58: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 58

Associative Memory

หน่�วยความจั�าเช้��อมโยงที�าหน่+าที!�ส�บค+น่ค'�ขน่าน่

Address translation (A´, A´´) ถู+า A´ ค�อเรจั�สเติอร/เช้��อมโยง จัะได+ frame# ออกไป ม�ฉะน่��น่ จัะได+ frame # จัากpage table ใน่หน่�วยความจั�า

Page # Frame #

Page 59: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 59

Paging Hardware With TLB

Page 60: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 60

Effective Access Time

Associative Lookup = time unit Assume memory cycle time is 1 microsecond Hit ratio – percentage of times that a page number is

found in the associative registers; ration related to number of associative registers

Hit ratio = Effective Access Time (EAT)

EAT = (1 + ) + (2 + )(1 – )

= 2 + –

Page 61: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 61

การป8องกน่หน่�วยความจั�าMemory Protection

การป@องก�น่หน่�วยความจั�าที�าได+โดยใช้+บ�ติป@องก�น่แบบเช้��อมโยง (associating protection bit) เข+าก�บแติ�ละเฟรม

Valid-invalid bit ก�าหน่ดไว+แติ�ละรายการใน่ page table “valid” แสดงว�าหน่+าที!�เช้��อมโยงพื่��น่ที!�ว�างเช้�งติรรกะของ

กระบวน่การน่��น่ และค�อหน่+าที!�ถู'กติ+องติ+อง “invalid” แสดงว�า หน่+าน่��น่ไม�ใช้�พื่��น่ที!�ว�างเช้�งติรรกะของ

กระบวน่การน่��น่

Page 62: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 62

Valid (v) or Invalid (i) Bit In A Page Table

Page 63: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 63

โครงสร�างของตำารางหน่�าPage Table Structure

การสล�บหน่+าแบบล�าด�บ (Hierarchical Paging) ติารางหน่+าที!�ถู'กแฮช้ (Hashed Page Tables) ติารางหน่+าย+อน่กล�บ (Inverted Page Tables)

Page 64: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 64

ตำารางการสลบหน่�าแบบล�าดบ Hierarchical Page Tables

แบ�งพื่��น่ที!�ว�างเช้�งติรรกะออกเป7น่หลายติารางหน่+า (multiple page tables)

เทีคน่�คอย�างง�ายค�อ ติารางหน่+า 2 ระด�บ (two-level page table)

Page 65: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 65

ตำวอย�างการสลบหน่�าแบบ 2 ระดบTwo-Level Paging Example

ที!�อย'�เช้�งติรรกะ (ขน่าด 4K page size บน่เคร��อง 32 บ�ติ) จัะถู'กแบ�งออกเป7น่ a page number ประกอบด+วย 20 bits a page offset ประกอบด+วย 12 bits

เม��อ page table ม!การแบ�งหน่+า page number จัะถู'กแบ�งออกเป7น่ a 10-bit page number a 10-bit page offset

ด�งน่��น่ ที!�อย'�เช้�งติรรกะจั�งแสดงด�งน่!�

โดยที!� pi ค�อด�ช้น่!ที!�ช้!�ไปย�ง page table ภายน่อก, และ p2 ค�อ การแทีน่ที!�ภายใน่หน่+าน่��น่ของ page table ภายน่อก

page number page offset

pi p2 d

10 10 12

Page 66: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 66

Two-Level Page-Table Scheme

Page 67: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 67

โครงสร�างการแปลงเลขทำ-+อย,�Address-Translation Scheme

โครงสร+างการแปลงเลขที!�อย'�ส�าหร�บสถูาป(ติยกรรมการสล�บหน่+าแบบ two-level 32-bit

Page 68: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 68

ตำารางหน่�าแฮชHashed Page Tables

พื่��น่ที!�ว�างร�วมก�น่ที!�น่+อยกว�า 32 bits

หมายเลขหน่+าเสม�อน่ค�อหมายเลขที!�ถู'กแฮช้ไปเป7น่ page table ซี��ง page table น่!�บรรจั;ด+วยสายโซี�ของส�วน่ประกอบการแฮช้ไปย�งติ�าแหน่�งที!�อย'�เด!ยวก�น่

หมายเลขหน่+าเสม�อน่ จัะถู'กเปร!ยบเที!ยบก�บสายโซี�ที!�สอดคล+องก�น่ ถู+าพื่บว�าสอดคล+องก�น่ ก1สามารถูแปลงออกไปเป7น่เฟรมเช้�งกายภาพื่ได+

Page 69: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 69

Hashed Page Table

Page 70: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 70

ตำารางหน่�าย�อน่กลบInverted Page Table

หน่��งรายการติ�อหน่�วยความจั�าจัร�งหน่��งหน่+า รายการประกอบด+วยที!�อย'�เสม�อน่ของหน่+าที!�ถู'กจั�ด

เก1บไว+ใน่ติ�าแหน่�งของหน่�วยความจั�าจัร�ง พื่ร+อมก�บข+อม'ลเก!�ยวก�บกระบวน่การที!�ครอบครองหน่+าน่��น่

แติ�ละ page table จั�าเป7ติ�อการลดขน่าดหน่�วยความจั�า แติ�การเพื่��มเวลาจั�าเป7น่ส�าหร�บการค+น่หาติารางที!�ติ+องการเม��อหน่+าน่��น่ถู'กอ+างถู�ง

การใช้+ติารางแฮช้ ก1เพื่��อจั�าก�ดจั�าน่วน่คร��งของการค+น่หารายการติารางหน่+า หร�อให+สามารถูค+น่พื่บได+ใน่เวลาอ�น่ส��น่

Page 71: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 71

Inverted Page Table Architecture

Page 72: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 72

Shared Pages

Shared code One copy of read-only (reentrant) code shared

among processes (i.e., text editors, compilers, window systems).

Shared code must appear in same location in the logical address space of all processes

Private code and data Each process keeps a separate copy of the code

and data The pages for the private code and data can

appear anywhere in the logical address space

Page 73: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 73

Shared Pages Example

Page 74: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 74

Segmentation

Memory-management scheme that supports user view of memory

A program is a collection of segments. A segment is a logical unit such as:

main program,procedure, function,method,object,local variables, global variables,common block,stack,symbol table, arrays

Page 75: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 75

User’s View of a Program

Page 76: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 76

Logical View of Segmentation

1

3

2

4

1

4

2

3

user space physical memory space

Page 77: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 77

Example of Segmentation

Page 78: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 78

Sharing of Segments

Page 79: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 79

Segmentation with Paging – MULTICS

The MULTICS system solved problems of external fragmentation and lengthy search times by paging the segments

Solution differs from pure segmentation in that the segment-table entry contains not the base address of the segment, but rather the base address of a page table for this segment

Page 80: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 80

MULTICS Address Translation Scheme

Page 81: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 81

Segmentation with Paging – Intel 386

As shown in the following diagram, the Intel 386 uses segmentation with paging for memory management with a two-level paging scheme

Page 82: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 82

Intel 30386 Address Translation

Page 83: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 83

Linux on Intel 80x86

Uses minimal segmentation to keep memory management implementation more portable

Uses 6 segments: Kernel code Kernel data User code (shared by all user processes, using logical

addresses) User data (likewise shared) Task-state (per-process hardware context) LDT

Uses 2 protection levels: Kernel mode User mode

Page 84: 5 ca-memory structuret

End of Chapter 8

Page 85: 5 ca-memory structuret

ว�เชษฐ์� พลายมาศ | ระบบปฏิ�บ�ติ�การ (OS: Operating Systems) | การจั�ดการหน่�วยความจั�า (Memory Management) | 85