85
โโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโ Memory Management Structure โโโโโโโ โโโโโโโ | สสสสสสสสสสสสสสสสสสสสสส | (CA: Computer Architecture)

5 ca-memory structuret

Embed Size (px)

Citation preview

Page 1: 5 ca-memory structuret

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

Memory Management Structure

ว�เชษฐ์� พลายมาศ | สถาปั�ตยกรรมคอมพิ�วเตอร� | (CA: Computer Architecture)

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) การแบ�งส�วน่หร�อเซี2กเมน่ต� (Segmentation) การผสมผสาน่หน่�วยความจั�าการสล�บหน่-าและการแบ�งส�วน่

(Segmentation with Paging)

Page 4: 5 ca-memory structuret

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

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

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

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

ค�าส��งน่%#ไปัที�าการถอดรห�ส ซี �งอาจัจัะได-ต�วด�าเน่�น่การหร�อข-อม*ล เพิ��อใช้-ก�บค�าส��งถ�ดไปั

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

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

Page 5: 5 ca-memory structuret

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

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

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

แถวคอยขาเข�า (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น่ต�าแหน่�งจัร�งใน่หน่�วยความจั�าหล�กได-เลย แต�ถ-าต�าแหน่�งเร��มต-น่เปัล%�ยน่ ก2ต-องเร��มแปัลใหม�

ช�วงเวลาบรรจั* (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)

เลขที%�อย*�ซี �งถ*กมองเห2น่ได-โดยหน่�วยความจั�า ถ*กบรรจั;เข-าที%�เรจั�สเตอร�เลขที%�อย*�ของหน่�วยความจั�า (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) ซี �งม%ขน่าดเล2ก เพิ��อใช้-เร%ยกร*ที%น่จัากคล�งที%�ต-องการขณ์ะที�างาน่

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 เล2ก จัะม%ไฟล� 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) ค�อ การเก2บค�าส��งและข-อม*ลไว-ใน่หน่�วยความจั�าเฉพิาะที%�จั�าเปั7น่ต-องใช้-ใน่ขณ์ะน่�#น่เที�าน่�#น่ ส�วน่ที%�เหล�อให-เก2บไว-ใน่หน่�วยเก2บที%�อ��น่ก�อน่ เม��อจั�าเปั7น่ต-องใช้-จั งเร%ยกเอามาจัากหน่�วยเก2บด�งกล�าวเข-ามาซี-อน่ที�บพิ�#น่ที%�เด�มใน่หน่�วยความจั�า

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

Page 17: 5 ca-memory structuret

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

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

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

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

หากเราโหลดเฉพิาะข-อม*ลที%�จัะใช้-ใน่แต�ละรอบก2จัะเปั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) ไปัเก2บไว-ใน่หน่�วยเก2บช้��วคราวได-แล-วถ*กน่�ากล�บมาใหม�เพิ��อที�างาน่ต�อ เปั7น่หล�กการเด%ยวก�บหน่�วยความจั�าเสม�อน่ (virtual Memory)

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

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

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

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

แล-วให-งาน่ที%�ม%ความส�าค�ญส*งกว�าเข-าที�างาน่จัน่เสร2จัก�อน่จั งส�บเปัล%�ยน่งาน่ที%�ม%ความส�าค�ญต��ากล�บมาที�างาน่ต�อ

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

Page 20: 5 ca-memory structuret

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

Schematic View of Swapping

ภาพิที%� 6.5 การส�บเปัล%�ยน่สองกระบวน่การโดยใช้-จัาน่แม�เหล2กเปั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 ก2ยากข #น่

Page 23: 5 ca-memory structuret

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

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

Contiguous Allocation

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

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

ส�วน่ของ OS ที%�ไม�ค�อยได-ใช้-งาน่จัะถ*กแยกไปัเก2บไว-บน่ด�สก� เร%ยกว�า ภาวะช้��วคร* � (transient)

Page 24: 5 ca-memory structuret

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

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

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

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

กระบวน่การผ*-ใช้- อย*�ใน่หน่�วยความจั�าส�วน่บน่ ส�วน่ของ OS ที%�ไม�ค�อยได-ใช้-งาน่จัะถ*กแยกไปัเก2บไว-บน่ด�สก� เร%ยกว�า ภาวะช้��วคร* �

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

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

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

ช้;ดของเรจั�สเตอร�ย-ายต�าแหน่�ง บรรจั;ด-วยค�าเลขที%�อย*�เช้�งกายภาพิที%�เล2กที%�ส;ด, 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

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

เม��อจัองใกล-เต2มจัะม%พิ�#น่ที%�ขน่าดเล2กที%�ใช้-ไม�ได-

Page 30: 5 ca-memory structuret

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

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

กระจัายตลอดหน่�วยความจั�า เม��อกระบวน่การมาถ ง ก2จัะถ*กจั�ดสรรหน่�วยความจั�าจัากพิ�#น่ที%�ว�างขน่าดที%�ใหญ�

เพิ%ยงพิอก�บกระบวน่การน่�#น่ OS จัะเก2บข-อม*ลเก%�ยวก�บ

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น่ช้�วงๆ ไม�ต�อเน่��องก�น่ ม%ขน่าดเล2กเก�น่ไปั

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

การจั�ดสรรพิ�#น่ที%�หน่�วยความจั�าที%�ม%ขน่าดใหญ�เก�น่กว�าที%�กระบวน่การร-องขอ ส�วน่ที%�เหล�อไว-ย�งไม�ได-ถ*กน่�าไปัใช้-งาน่

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

เน่��องก�น่ สามารถที�าได-เฉพิาะกรณ์%ที%�การย-ายต�าแหน่�งเปั7น่แบบส�มพิ�ทีธี�และเก�ด

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

Page 33: 5 ca-memory structuret

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

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

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

หากจัองไปัเร��อยๆก2จัะเก�ด External Fragmentation เราสามารถบ%บอ�ดพิ�#น่ที%�ที%�อย*�กระจัายก�น่ให-มาต�ดก�น่ได- จัะที�าให-เหล�อพิ�#น่ที%�

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

ข-อเส%ยก2ค�อที�างาน่ช้-าลง เพิราะต-อง 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) ซี(ที�าให-เก�ดช้�องว�างใหม�เล2กที%�ส;ด)

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

ว�ธี%การจั�ดสรรพิ�#น่ที%�ว�างเม��อม%การร-องขอขน่าด n

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

Page 35: 5 ca-memory structuret

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

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

เจัอพิ�#น่ที%�ว�างเม��อไรก2จัองที�น่ที% ว��ง Scan หาจัากบน่ลงล�าง ที�างาน่ได-เร2ว ข-อม*ลกระจั;กต�วอย*�แต�ข-างบน่ อาจัเก�ด Fragment ที%�ม%ขน่าดใหญ�ได-

20K

First

Page 36: 5 ca-memory structuret

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

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

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

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

20K

Best

28K

23K

Page 37: 5 ca-memory structuret

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

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

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

จั�า ตรงไหน่ม%ขน่าดใหญ�กว�าขน่าดของ โปัรเซีสที%�ส;ดก2จัะจัองตรงน่�#น่ ระบบที�างาน่ช้-า เพิราะค�าน่วณ์มาก โอกาสเก�ด 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) ก2จัะถ*กแบ�งออกเปั7น่ส�วน่ๆ เร%ยกว�า หน่�า (page) ม%ขน่าดเที�าก�บแต�ละเฟรม

Page 39: 5 ca-memory structuret

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

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

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

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

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

Pages

Frames

MemoryProcess แต�ละ Page จัะใช้-พิ�#น่ที%�ใดก2ได- ไม�

ต-องต�ดก�น่ก2ได-

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

ใน่หน่�วยความจั�าจัะเก2บข-อม*ลน่%#ไว- ใน่ร*ปัแบบตาราง

เปั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. ก2หา 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 อ��น่ๆก2จัะโหลดเข-ามาใน่หน่�วยความจั�าภายหล�ง (Load on demand)

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

Page 50: 5 ca-memory structuret

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

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

โครงร�างของการจั�ดการหน่�วยความจั�าที%�สน่�บสน่;น่ม;มมองของผ*-ใช้-ใน่ภาพิของหน่�วยความจั�า

จัะแบ�งข-อม*ลออกเปั7น่ Segment ตามฟ�งก�ช้��น่การที�างาน่ แต�ละ Segment ไม�จั�าเปั7น่ต-องม%ขน่าดเที�าก�น่ ด�งน่�#น่ โปัรแกรมค�อ หน่�วยรวมของเซี2กเมน่ที� เซี2กเมน่ที� ค�อหน่�วยทีางตรรกะช้น่�ดหน่ �ง

อย�างเช้�น่ 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 อ��น่ๆก2จัะโหลดเข-ามาใน่หน่�วยความจั�าภายหล�ง (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) ช้%#ไปัย�งที%�อย*�ใน่หน่�วยความจั�าของตารางเซี2กเมน่ที�

Segment-table length register (STLR) แสดงจั�าน่วน่ของเซี2กเมน่ที�ที%�ถ*กใช้-งาน่โดยโปัรแกรม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น่ค�า

ต�าแหน่�งจัร�ง ด�งน่�#น่ จัะเห2น่ได-ว�าตารางเลขส�วน่ก2ค�อ แถวล�าด�บของค*�เรจั�สเตอร�ฐาน่และ

จั�าก�ด (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 จัะถ*กเก2บไว-ใน่หน่�วยความจั�าหล�ก Page-table base register (PTBR) จัะช้%#ไปัย�ง page table Page-table length register (PRLR) ใช้-แสดงขน่าดขน่าด

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

ได-แก� หมายเลขส�วน่ และ ออฟเซี2ตที%�ช้%#ไปัย�งส�วน่น่�#น่ ส�วน่แรกส�าหร�บ page table อ%กส�วน่หน่ �งส�าหร�บข-อม*ล/ค�าส��ง ปั�ญหาการอ-างอ�งหน่�วยความจั�า 2 ส�วน่ สามารถแก-ได-โดยการใช้-

ฮาร�ดแวร�พิ�เศึษที%�รวดเร2วที�าหน่-าที%�เปั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 น่%#บรรจั;ด-วยสายโซี�ของส�วน่ปัระกอบการแฮช้ไปัย�งต�าแหน่�งที%�อย*�เด%ยวก�น่

หมายเลขหน่-าเสม�อน่ จัะถ*กเปัร%ยบเที%ยบก�บสายโซี�ที%�สอดคล-องก�น่ ถ-าพิบว�าสอดคล-องก�น่ ก2สามารถแปัลงออกไปัเปั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

หน่ �งรายการต�อหน่�วยความจั�าจัร�งหน่ �งหน่-า รายการปัระกอบด-วยที%�อย*�เสม�อน่ของหน่-าที%�ถ*กจั�ด

เก2บไว-ใน่ต�าแหน่�งของหน่�วยความจั�าจัร�ง พิร-อมก�บข-อม*ลเก%�ยวก�บกระบวน่การที%�ครอบครองหน่-าน่�#น่

แต�ละ page table จั�าเปั7ต�อการลดขน่าดหน่�วยความจั�า แต�การเพิ��มเวลาจั�าเปั7น่ส�าหร�บการค-น่หาตารางที%�ต-องการเม��อหน่-าน่�#น่ถ*กอ-างถ ง

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

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