ch10 virtual memory management

34
Virtual-Memory Management 1 บบบบบ 10 กกกกกกกกกกกกกกกกกก กกกกกกกกก (Virtual-Memory Management)

Upload: phichya-laemluang

Post on 18-Nov-2014

124 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Ch10 Virtual Memory Management

Virtual-Memory Management 1

บทท�� 10การจัดการหน่�วยความจั�า

เสม�อน่ (Virtual-Memory

Management)

Page 2: Ch10 Virtual Memory Management

Virtual-Memory Management 2

หวข้�อบรรยาย หน่�วยความจั�าเสม�อน่ (virtual

memory) หลักการเบ��องต้�น่ ว�ธี� Demand paging การเพจัต้ามค�าข้อทน่ท� แน่วความค�ดข้องการเพจัต้ามค�าข้อ

ทน่ท� การด"งเพจัเข้�าลั�วงหน่�า ข้น่าดข้องเพจั

Page 3: Ch10 Virtual Memory Management

Virtual-Memory Management 3

หน่�วยความจั�าเสม�อน่ (virtual memory)

การจั�ดการแบ่งพื้� นที่��หนวยความจั�าให�โปรเซสได�อย!พื้ร�อมก�นมากกวา 1 โปรเซส

เพื้��อเพื้#�มประส#ที่ธิ#ภาพื้การที่�างานของหนวยประมวลผล การที่��โปรเซสอย!ต่อเน��องก�นเป+นชิ้# นเด�ยว หร�อแบ่งโปรเซสออกเป+นหน�า (เพื้จั ) หร�อเป+นสวน (เซก

เมนต่- ) กระจัายอย!บ่นพื้� นที่��หนวยความจั�าที่� งหมด

Page 4: Ch10 Virtual Memory Management

Virtual-Memory Management 4

หน่�วยความจั�าเสม�อน่ (virtual memory ) (ต้�อ)

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

ชิ้วยให�ม�จั�านวนโปรเซสอย!ในหนวยความจั�าได�มากข. น ที่�าให�สามารถใชิ้�งานโปรแกรมที่��ม�ขนาดใหญ่กวาหนวย

ความจั�าได�

Page 5: Ch10 Virtual Memory Management

Virtual-Memory Management 5

หลักการเบ��องต้�น่

เป+นเที่คน#คในการใชิ้�แหลงเก1บ่ข�อม!ลส�ารอง (ปกต่#หมายถ.งด#สก-ความเร1วส!ง)

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

Page 6: Ch10 Virtual Memory Management

Virtual-Memory Management 6

หลักการเบ��องต้�น่ (ต้�อ) ชิ้วยเพื้#�มประส#ที่ธิ#ภาพื้ในการสร�างโปรเซสใหม และเพื้#�มจั�านวนโปรเซสในหนวยความจั�า เพื้#�มโอกาสการม�โปรเซสรออย!ในค#วพื้ร�อมที่�างาน ชิ้วยให�หนวยประมวลผลได�ที่�างานต่อที่�นที่� ประส#ที่ธิ#ภาพื้การใชิ้�งานหนวยประมวลผลจั.งเพื้#�มข. น การที่�างานของแต่ละโปรเซส พื้� นที่��ที่� งหมดของโปรเซสไม

จั�าเป+นต่�องอย!ในหนวยความจั�าต่ลอดเวลา

Page 7: Ch10 Virtual Memory Management

Virtual-Memory Management 7

หลักการเบ��องต้�น่ (ต้�อ)

ณ เวลาหน.�ง ๆ จัะม�เพื้�ยงสวนเด�ยวของโปรเซสที่��จั�าเป+นต่�องอย!ในหนวยความจั�าเพื้��อให�หนวยประมวลผลใชิ้�งาน

หากสามารถด!แลให�ม�เฉพื้าะชิ้5ดค�าส��ง หร�อข�อม!ลที่��ต่�องใชิ้�งานจัร#งอย!ในหนวยความจั�า จัะที่�าให�โปรเซสน� นใชิ้�หนวยความจั�าลดลง

ที่�าให�เร�ยกใชิ้�งานโปรแกรมที่��ม�ขนาดใหญ่กวาหนวยความจั�าจัร#งที่��ม�อย!

หร�อเพื้#�มจั�านวนโปรเซสให�มากข. นได� โดยไมจั�าเป+นต่�องที่�าสว�อบ่(swapping)

Page 8: Ch10 Virtual Memory Management

Virtual-Memory Management 8

หลักการเบ��องต้�น่ (ต้�อ)

Page 9: Ch10 Virtual Memory Management

Virtual-Memory Management 9

หลักการเบ��องต้�น่ (ต้�อ) แสดงความส�มพื้�นธิ-ระหวางหนวยความจั�าต่รรกะและ

หนวยความจั�ากายภาพื้

Page 10: Ch10 Virtual Memory Management

Virtual-Memory Management 10

ว#ธิ� Demand paging เป+นว#ธิ�การขยายข�ดความสามารถของว#ธิ�การแบ่บ่เพื้จัจั# ง

โดยจัะที่�าการอานข�อม!ล (load) เฉพื้าะเพื้จัที่��ต่�องการใชิ้�งานเข�ามาในหนวยความจั�ากายภาพื้ (physical memory) เที่าน� น ที่�าให�ไมต่�องเส�ยเวลาอานเพื้จัที่��ไมต่�องการใชิ้�เข�ามาในหนวยความจั�า

ประโยชิ้น- ค�อ ใชิ้�อ5ปกรณ- I/O น�อยลง ใชิ้�หนวยความจั�าน�อยลง ม�การต่อบ่สนองเร1วข. น ใชิ้�ก�บ่ผ!�ใชิ้�ได�มากข. น

Page 11: Ch10 Virtual Memory Management

Virtual-Memory Management 11

ว#ธิ� Demand paging (ต่อ) แสดงการที่�า swap-out และ swap-in

Page 12: Ch10 Virtual Memory Management

Virtual-Memory Management 12

แบ่บ่ Valid/Invalid บ่#ต่

Page 13: Ch10 Virtual Memory Management

Virtual-Memory Management 13

Page fault กระบ่วนการ page fault เป+นกระบ่วนการที่��ระบ่บ่ปฏิ#บ่�ต่#

การจัะต่�องไปน�าข�อม!ลในเพื้จัที่��ถ!กอ�างอ#งถ.งเข�ามาไว�ในหนวยความจั�าเส�ยกอน จั.งจัะที่�าให�การประมวลผลโปรเซสน� นๆสามารถด�าเน#นการต่อไปได�

ระบ่บ่ปฏิ#บ่�ต่#การจัะพื้#จัารณาต่�าแหนงข�อม!ลที่��ถ!กอ�างอ#งถ.งน� น โดย ถ�าเป+นการอ�างอ#งที่��ไมถ!กต่�อง เชิ้น การอ�างอ#งถ.งข�อม!ลของโปร

เซสอ��น ก1จัะกลายเป+น invalid reference ซ.�งจัะม�ผลที่�าให�โปรเซสน� นจัะต่�องหย5ดที่�างานในที่�นที่� (abort)

ถ�าเป+นการอ# งอ�างไปย�งเพื้จัในต่ารางเพื้จัที่��ม� V/I บ่#ต่เป+น “0” ก1จัะเร�ยกกระบ่วนการ page fault ข. นมาที่�างาน

Page 14: Ch10 Virtual Memory Management

Virtual-Memory Management 14

ข� นต่อนของกระบ่วนการที่�างาน page fault

Page 15: Ch10 Virtual Memory Management

Virtual-Memory Management 15

การเพจัต้ามค�าข้อทน่ท�

เร�ยกวาระบ่บ่หนวยความจั�าเสม�อนแบ่บ่เพื้จั (virtual paging)

นอกจัากระบ่บ่เพื้จัแล�วย�งม�ระบ่บ่เซกเมนต่- (segmentation )ที่��น#ยมใชิ้�ก�น

โดยเฉพื้าะระบ่บ่ผสมแบ่บ่เซกเมนต่-รวมก�บ่เพื้จั (paged segmentation )

ผ!�ใชิ้�จัะมองโดยแบ่งเป+นเซกเมนต่- แต่ระบ่บ่ปฏิ#บ่�ต่#การจัะแบ่งเซกเมนต่-เหลาน� นออกเป+นเพื้จั

Page 16: Ch10 Virtual Memory Management

Virtual-Memory Management 16

การเพจัต้ามค�าข้อทน่ท� (ต้�อ)

นอกจัากน� ความจัร#งแล�ว ย�งม�ระบ่บ่หนวยความจั�าเสม�อนแบ่บ่เซกเมนต่- (virtual segmentation)

ต่�วอยางระบ่บ่หนวยความจั�าเสม�อนแบ่บ่เซกเมนต่- ได�แก OS/2 ของ IBM และเคร��องคอมพื้#วเต่อร- Burroughs เป+นต่�น

Page 17: Ch10 Virtual Memory Management

Virtual-Memory Management 17

การเพจัต้ามค�าข้อทน่ท� (ต้�อ)

Page 18: Ch10 Virtual Memory Management

Virtual-Memory Management 18

แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท�

ระบ่บ่หนวยความจั�าเสม�อนม�หล�กการคล�ายก�บ่ระบ่บ่แบ่งพื้� นที่��หนวยความจั�าแบ่บ่เพื้จัผสมก�บ่การที่�าสว�อบ่ (swapping )

โปรเซสแบ่งออกเป+นสวนต่าง ๆ เร�ยกวาเพื้จัอย!ในหนวยความจั�าส�ารอง หร�อด#สก-

การด.งเพื้จัเข�ามาจัะด.งเม��อจั�าเป+นต่�องใชิ้�เพื้จัน� น แที่นที่��จัะด.งเข�ามาที่� งหมดหร�อมากเก#นไป

เร�ยกวาการที่�าเพื้จัห ร�อสล�บ่หน�าต่ามค�าขอที่�นที่� (demand paging)

การด.งเข�าออกด#สก-น� ต่างจัากการสว�อบ่

Page 19: Ch10 Virtual Memory Management

Virtual-Memory Management 19

แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท� (ต้�อ)

จัะด.งเข�าออกเพื้�ยงบ่างสวนที่��จั�าเป+นเที่าน� น เพื้��อลดเวลาในการย�ายข�อม!ลก�บ่ด#สก- ใชิ้�หนวยความจั�าแที่�จัร#งอยางประหย�ด จัะใชิ้�ฮาร-ดแวร-ชิ้วย ให�ข�อม!ลในแต่ละรายการของต่ารางเพื้จัม� present bit เพื้��อแสดงสถานะวาเพื้จัเสม�อนน� นอย!ในหนวยความจั�า

แที่�จัร#ง หร�ออย!ในด#สก-

Page 20: Ch10 Virtual Memory Management

Virtual-Memory Management 20

แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท� (ต้�อ)

หากเป+น 1 หมายความวา ขณะน� นเพื้จัน� นอย!ในต่�าแหนงหนวยความจั�าที่��แที่�จัร#ง

หากเป+น 0 แสดงวาอย!ในด#สก-

Page 21: Ch10 Virtual Memory Management

Virtual-Memory Management 21

แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท� (ต้�อ)

Page 22: Ch10 Virtual Memory Management

Virtual-Memory Management 22

แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท� (ต้�อ)

Page 23: Ch10 Virtual Memory Management

Virtual-Memory Management 23

แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท� (ต้�อ)

Page 24: Ch10 Virtual Memory Management

Virtual-Memory Management 24

การด"งเพจัเข้�าลั�วงหน่�า

การอานข. นมาคร� งละหลาย ๆ เพื้จันาจัะให�ประส#ที่ธิ#ภาพื้ด�กวาการอานคร� งละเพื้จัหลาย ๆ คร� ง

(anticipatory paging หร�อ prepaging) สามารถใชิ้�ในเวลาเร#�มต่�นโปรเซสอาจัให�โปรแกรมเมอร-

ก�าหนดชิ้5ดของเพื้จัที่��จัะให�อย!ในหนวยความจั�าลวงหน�า หร�อที่5กคร� งที่��เก#ดเพื้จัฟอลต่-

ให�อานกล5มของเพื้จัน� นเข�ามาเป+นชิ้5ด

Page 25: Ch10 Virtual Memory Management

Virtual-Memory Management 25

การด"งเพจัเข้�าลั�วงหน่�า (ต้�อ)

การด.งเพื้จัลวงหน�าอาจัที่�าให�ประส#ที่ธิ#ภาพื้การที่�างานของระบ่บ่ลดลงได�

หากไมม�การเร�ยกใชิ้�ข�อม!ลในเพื้จัที่��น�าเข�ามาลวงหน�าน� จัร#ง เกณฑ์-ก�าหนดความส�าเร1จัได�แก ขนาดพื้� นที่��หนวยความจั�า

แที่�จัร#งที่��จั�ดสรรให� จั�านวนเพื้จัที่��จัะด.งเข�ามาในแต่ละคร� ง นโยบ่ายการเล�อกเพื้จัที่��จัะด.งเข�ามา

Page 26: Ch10 Virtual Memory Management

Virtual-Memory Management 26

การด"งเพจัเข้�าลั�วงหน่�า (ต้�อ) ใน Windows 2000 ใชิ้�เที่คน#คที่��เร�ยกวา Clustered

paging เม��อเก#ดเพื้จัฟอลต่-ข. น จัะไมเพื้�ยงแต่น�าเอาเพื้จัที่��ต่�องการเข�ามา หากเพื้จัที่��ต่�องการเป+นค�าส��งระบ่บ่จัะด.งมาอ�ก 3 8– เพื้จั หากเป+นเพื้จัข�อม!ลจัะน�าเข�ามา 2 – 4 เพื้จั ด�วยความหว�งที่��วาเพื้จัอ��นที่��น�าเข�ามาด�วยซ.�งอย!ถ�ดก�นไป นาจัะ

ได�ถ!กใชิ้�งานโดยไมต่�องเก#ดเพื้จัฟอลต่-อ�ก

Page 27: Ch10 Virtual Memory Management

Virtual-Memory Management 27

ข้น่าดข้องเพจั1 . เพื้จัขนาดเล1กชิ้วยลดการแต่กกระจัายภายในของพื้� นที่�� หนวยความจั�า (internal fragmentation) ได� เป+นการเพื้#�มประส#ที่ธิ#ภาพื้การใชิ้�งานหนวยความจั�าให�ด�ข. น โดยเฉล��ยแล�ว แต่ละโปรเซสจัะเก#ดการแต่กกระจัายหนวย

ความจั�าภายใน ส!ญ่เส�ยพื้� นที่��ขนาดเที่าก�บ่คร.�งหน.�งของเพื้จัส5ดที่�าย2. แต่ละเพื้จัขนาดเล1กจัะที่�าให�ม�จั�านวนเพื้จัมากข. น ต่ารางเพื้จัของแต่ละโปรเซสจัะม�ขนาดใหญ่ข. น

Page 28: Ch10 Virtual Memory Management

Virtual-Memory Management 28

ข้น่าดข้องเพจั (ต้�อ)3. โครงสร�างของแหลงเก1บ่ข�อม!ล ค�อด#สก- การอาน หร�อเข�ยนข�อม!ลจัะที่�างานเป+นบ่ล1อก เหมาะก�บ่การม�เพื้จัขนาดใหญ่ การที่�างานของอ5ปกรณ-ด#สก-จัะประกอบ่ด�วยเวลาสาม

สวน ค�อ เวลาแสวงหา (seek time), เวลาแฝง (latency time), และเวลาถายโอนข�อม!ล (transfer time)

เวลาถายโอนข�อม!ลข. นก�บ่ขนาดของข�อม!ลที่��สง น��นค�อขนาดของเพื้จั

Page 29: Ch10 Virtual Memory Management

Virtual-Memory Management 29

ข้น่าดข้องเพจั (ต้�อ)

ป;จัจั5บ่�นต่�วเลขอ�ต่ราการถายโอนข�อม!ลอย!ที่��ประมาณ 2MB ต่อว#นาที่�

ใชิ้�เวลาเพื้�ยง 02. ms ในการถายโอนเพื้จัขนาด 512

ไบ่ต่- เวลาแสวงหา และเวลาแฝงรวมก�นส!งถ.งประมาณกวา 10ms เวลาถายโอนค#ดเป+นเพื้�ยงร�อยละ 2 เที่าน� น

Page 30: Ch10 Virtual Memory Management

Virtual-Memory Management 30

ข้น่าดข้องเพจั (ต้�อ)

4. ขนาดของเพื้จัย�งม�ความส�มพื้�นธิ-ต่ออ�ต่ราการเก#ดเพื้จัฟอลต่-

หากเพื้จัม�ขนาดเล1กมาก ที่�าให�แต่ละโปรเซสม�เพื้จัจั�านวนมากให�ใชิ้�งานในหนวยความจั�าแที่�จัร#ง

โอกาสเก#ดเพื้จัฟอลต่-จัะต่��า เม��อขนาดเพื้จัใหญ่ข. น การอ�างถ.งต่�าแหนงในแต่ละเพื้จั

จัะกว�างไกลไปย�งเพื้จัอ��น ๆ มากข. น ที่�าให�เก#ดเพื้จัฟอลต่-ได�บ่อยข. น

Page 31: Ch10 Virtual Memory Management

Virtual-Memory Management 31

ข้น่าดข้องเพจั (ต้�อ)

แต่เม��อขนาดของเพื้จัใหญ่ข. นถ.งจั5ดหน.�ง จัะพื้บ่วาสามารถครอบ่คล5มการอ�างถ.งต่�าแหนงต่าง ๆ ได�มากข. น

โอกาสเก#ดเพื้จัฟอลต่-ลดลง จันสมมต่#ถ�าขนาดของเพื้จัใหญ่เที่าก�บ่ขนาดของโปรเซส

จัะไมเก#ดเพื้จัฟอลต่-เลย

Page 32: Ch10 Virtual Memory Management

Virtual-Memory Management 32

ข้น่าดข้องเพจั (ต้�อ)

Page 33: Ch10 Virtual Memory Management

Virtual-Memory Management 33

ข้น่าดข้องเพจั (ต้�อ)

ข�อเส�ยของการใชิ้�เพื้จัหลายขนาดในเคร��องเด�ยว ค�อความซ�บ่ซ�อนของระบ่บ่ปฏิ#บ่�ต่#การ และฮาร-ดแวร-

ในการประมวลผล Pentium4 จัะแยกใชิ้� TLB ส�าหร�บ่เก1บ่รายการในต่ารางเพื้จัส�าหร�บ่เพื้จัแต่ละขนาด

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

เน��องจัากบ่ล1อกม�ขนาดแต่กต่างก�น

Page 34: Ch10 Virtual Memory Management

Virtual-Memory Management 34

ข้น่าดข้องเพจั (ต้�อ)