Ch10 Virtual Memory Management
-
Upload
phichya-laemluang -
Category
Documents
-
view
118 -
download
3
Transcript of Ch10 Virtual Memory Management
Virtual-Memory Management 1
บทท�� 10การจัดการหน่�วยความจั�า
เสม�อน่ (Virtual-Memory
Management)
Virtual-Memory Management 2
หวข้�อบรรยาย หน่�วยความจั�าเสม�อน่ (virtual
memory) หลักการเบ��องต้�น่ ว�ธี� Demand paging การเพจัต้ามค�าข้อทน่ท� แน่วความค�ดข้องการเพจัต้ามค�าข้อ
ทน่ท� การด"งเพจัเข้�าลั�วงหน่�า ข้น่าดข้องเพจั
Virtual-Memory Management 3
หน่�วยความจั�าเสม�อน่ (virtual memory)
การจั�ดการแบ่งพื้� นที่��หนวยความจั�าให�โปรเซสได�อย!พื้ร�อมก�นมากกวา 1 โปรเซส
เพื้��อเพื้#�มประส#ที่ธิ#ภาพื้การที่�างานของหนวยประมวลผล การที่��โปรเซสอย!ต่อเน��องก�นเป+นชิ้# นเด�ยว หร�อแบ่งโปรเซสออกเป+นหน�า (เพื้จั ) หร�อเป+นสวน (เซก
เมนต่- ) กระจัายอย!บ่นพื้� นที่��หนวยความจั�าที่� งหมด
Virtual-Memory Management 4
หน่�วยความจั�าเสม�อน่ (virtual memory ) (ต้�อ)
การใชิ้�หนวยความจั�าเสม�อนชิ้วยให�แต่ละโปรเซสไมจั�าเป+นต่�องอย!ในหนวยความจั�าครบ่ที่� งหมดในเวลาที่�างาน
ชิ้วยให�ม�จั�านวนโปรเซสอย!ในหนวยความจั�าได�มากข. น ที่�าให�สามารถใชิ้�งานโปรแกรมที่��ม�ขนาดใหญ่กวาหนวย
ความจั�าได�
Virtual-Memory Management 5
หลักการเบ��องต้�น่
เป+นเที่คน#คในการใชิ้�แหลงเก1บ่ข�อม!ลส�ารอง (ปกต่#หมายถ.งด#สก-ความเร1วส!ง)
เพื้��อเก1บ่บ่างสวนของโปรเซสในขณะที่�างาน ที่�าให�ไมต่�องเก1บ่ที่� งโปรเซสในหนวยความจั�าหล�ก ชิ้วยให�สามารถม�จั�านวนโปรเซสมากข. นในหนวยความจั�า ที่�างานโปรเซสที่��ใหญ่กวาขนาดหนวยความจั�าได� ชิ้วยให�โปรแกรมเมอร-ไมต่�องก�งวลเร��องขนาดของโปรแกรม ชิ้วยในการใชิ้�โปรแกรมหร�อข�อม!ลรวมก�น
Virtual-Memory Management 6
หลักการเบ��องต้�น่ (ต้�อ) ชิ้วยเพื้#�มประส#ที่ธิ#ภาพื้ในการสร�างโปรเซสใหม และเพื้#�มจั�านวนโปรเซสในหนวยความจั�า เพื้#�มโอกาสการม�โปรเซสรออย!ในค#วพื้ร�อมที่�างาน ชิ้วยให�หนวยประมวลผลได�ที่�างานต่อที่�นที่� ประส#ที่ธิ#ภาพื้การใชิ้�งานหนวยประมวลผลจั.งเพื้#�มข. น การที่�างานของแต่ละโปรเซส พื้� นที่��ที่� งหมดของโปรเซสไม
จั�าเป+นต่�องอย!ในหนวยความจั�าต่ลอดเวลา
Virtual-Memory Management 7
หลักการเบ��องต้�น่ (ต้�อ)
ณ เวลาหน.�ง ๆ จัะม�เพื้�ยงสวนเด�ยวของโปรเซสที่��จั�าเป+นต่�องอย!ในหนวยความจั�าเพื้��อให�หนวยประมวลผลใชิ้�งาน
หากสามารถด!แลให�ม�เฉพื้าะชิ้5ดค�าส��ง หร�อข�อม!ลที่��ต่�องใชิ้�งานจัร#งอย!ในหนวยความจั�า จัะที่�าให�โปรเซสน� นใชิ้�หนวยความจั�าลดลง
ที่�าให�เร�ยกใชิ้�งานโปรแกรมที่��ม�ขนาดใหญ่กวาหนวยความจั�าจัร#งที่��ม�อย!
หร�อเพื้#�มจั�านวนโปรเซสให�มากข. นได� โดยไมจั�าเป+นต่�องที่�าสว�อบ่(swapping)
Virtual-Memory Management 8
หลักการเบ��องต้�น่ (ต้�อ)
Virtual-Memory Management 9
หลักการเบ��องต้�น่ (ต้�อ) แสดงความส�มพื้�นธิ-ระหวางหนวยความจั�าต่รรกะและ
หนวยความจั�ากายภาพื้
Virtual-Memory Management 10
ว#ธิ� Demand paging เป+นว#ธิ�การขยายข�ดความสามารถของว#ธิ�การแบ่บ่เพื้จัจั# ง
โดยจัะที่�าการอานข�อม!ล (load) เฉพื้าะเพื้จัที่��ต่�องการใชิ้�งานเข�ามาในหนวยความจั�ากายภาพื้ (physical memory) เที่าน� น ที่�าให�ไมต่�องเส�ยเวลาอานเพื้จัที่��ไมต่�องการใชิ้�เข�ามาในหนวยความจั�า
ประโยชิ้น- ค�อ ใชิ้�อ5ปกรณ- I/O น�อยลง ใชิ้�หนวยความจั�าน�อยลง ม�การต่อบ่สนองเร1วข. น ใชิ้�ก�บ่ผ!�ใชิ้�ได�มากข. น
Virtual-Memory Management 11
ว#ธิ� Demand paging (ต่อ) แสดงการที่�า swap-out และ swap-in
Virtual-Memory Management 12
แบ่บ่ Valid/Invalid บ่#ต่
Virtual-Memory Management 13
Page fault กระบ่วนการ page fault เป+นกระบ่วนการที่��ระบ่บ่ปฏิ#บ่�ต่#
การจัะต่�องไปน�าข�อม!ลในเพื้จัที่��ถ!กอ�างอ#งถ.งเข�ามาไว�ในหนวยความจั�าเส�ยกอน จั.งจัะที่�าให�การประมวลผลโปรเซสน� นๆสามารถด�าเน#นการต่อไปได�
ระบ่บ่ปฏิ#บ่�ต่#การจัะพื้#จัารณาต่�าแหนงข�อม!ลที่��ถ!กอ�างอ#งถ.งน� น โดย ถ�าเป+นการอ�างอ#งที่��ไมถ!กต่�อง เชิ้น การอ�างอ#งถ.งข�อม!ลของโปร
เซสอ��น ก1จัะกลายเป+น invalid reference ซ.�งจัะม�ผลที่�าให�โปรเซสน� นจัะต่�องหย5ดที่�างานในที่�นที่� (abort)
ถ�าเป+นการอ# งอ�างไปย�งเพื้จัในต่ารางเพื้จัที่��ม� V/I บ่#ต่เป+น “0” ก1จัะเร�ยกกระบ่วนการ page fault ข. นมาที่�างาน
Virtual-Memory Management 14
ข� นต่อนของกระบ่วนการที่�างาน page fault
Virtual-Memory Management 15
การเพจัต้ามค�าข้อทน่ท�
เร�ยกวาระบ่บ่หนวยความจั�าเสม�อนแบ่บ่เพื้จั (virtual paging)
นอกจัากระบ่บ่เพื้จัแล�วย�งม�ระบ่บ่เซกเมนต่- (segmentation )ที่��น#ยมใชิ้�ก�น
โดยเฉพื้าะระบ่บ่ผสมแบ่บ่เซกเมนต่-รวมก�บ่เพื้จั (paged segmentation )
ผ!�ใชิ้�จัะมองโดยแบ่งเป+นเซกเมนต่- แต่ระบ่บ่ปฏิ#บ่�ต่#การจัะแบ่งเซกเมนต่-เหลาน� นออกเป+นเพื้จั
Virtual-Memory Management 16
การเพจัต้ามค�าข้อทน่ท� (ต้�อ)
นอกจัากน� ความจัร#งแล�ว ย�งม�ระบ่บ่หนวยความจั�าเสม�อนแบ่บ่เซกเมนต่- (virtual segmentation)
ต่�วอยางระบ่บ่หนวยความจั�าเสม�อนแบ่บ่เซกเมนต่- ได�แก OS/2 ของ IBM และเคร��องคอมพื้#วเต่อร- Burroughs เป+นต่�น
Virtual-Memory Management 17
การเพจัต้ามค�าข้อทน่ท� (ต้�อ)
Virtual-Memory Management 18
แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท�
ระบ่บ่หนวยความจั�าเสม�อนม�หล�กการคล�ายก�บ่ระบ่บ่แบ่งพื้� นที่��หนวยความจั�าแบ่บ่เพื้จัผสมก�บ่การที่�าสว�อบ่ (swapping )
โปรเซสแบ่งออกเป+นสวนต่าง ๆ เร�ยกวาเพื้จัอย!ในหนวยความจั�าส�ารอง หร�อด#สก-
การด.งเพื้จัเข�ามาจัะด.งเม��อจั�าเป+นต่�องใชิ้�เพื้จัน� น แที่นที่��จัะด.งเข�ามาที่� งหมดหร�อมากเก#นไป
เร�ยกวาการที่�าเพื้จัห ร�อสล�บ่หน�าต่ามค�าขอที่�นที่� (demand paging)
การด.งเข�าออกด#สก-น� ต่างจัากการสว�อบ่
Virtual-Memory Management 19
แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท� (ต้�อ)
จัะด.งเข�าออกเพื้�ยงบ่างสวนที่��จั�าเป+นเที่าน� น เพื้��อลดเวลาในการย�ายข�อม!ลก�บ่ด#สก- ใชิ้�หนวยความจั�าแที่�จัร#งอยางประหย�ด จัะใชิ้�ฮาร-ดแวร-ชิ้วย ให�ข�อม!ลในแต่ละรายการของต่ารางเพื้จัม� present bit เพื้��อแสดงสถานะวาเพื้จัเสม�อนน� นอย!ในหนวยความจั�า
แที่�จัร#ง หร�ออย!ในด#สก-
Virtual-Memory Management 20
แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท� (ต้�อ)
หากเป+น 1 หมายความวา ขณะน� นเพื้จัน� นอย!ในต่�าแหนงหนวยความจั�าที่��แที่�จัร#ง
หากเป+น 0 แสดงวาอย!ในด#สก-
Virtual-Memory Management 21
แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท� (ต้�อ)
Virtual-Memory Management 22
แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท� (ต้�อ)
Virtual-Memory Management 23
แน่วความค�ดข้องการเพจัต้ามค�าข้อทน่ท� (ต้�อ)
Virtual-Memory Management 24
การด"งเพจัเข้�าลั�วงหน่�า
การอานข. นมาคร� งละหลาย ๆ เพื้จันาจัะให�ประส#ที่ธิ#ภาพื้ด�กวาการอานคร� งละเพื้จัหลาย ๆ คร� ง
(anticipatory paging หร�อ prepaging) สามารถใชิ้�ในเวลาเร#�มต่�นโปรเซสอาจัให�โปรแกรมเมอร-
ก�าหนดชิ้5ดของเพื้จัที่��จัะให�อย!ในหนวยความจั�าลวงหน�า หร�อที่5กคร� งที่��เก#ดเพื้จัฟอลต่-
ให�อานกล5มของเพื้จัน� นเข�ามาเป+นชิ้5ด
Virtual-Memory Management 25
การด"งเพจัเข้�าลั�วงหน่�า (ต้�อ)
การด.งเพื้จัลวงหน�าอาจัที่�าให�ประส#ที่ธิ#ภาพื้การที่�างานของระบ่บ่ลดลงได�
หากไมม�การเร�ยกใชิ้�ข�อม!ลในเพื้จัที่��น�าเข�ามาลวงหน�าน� จัร#ง เกณฑ์-ก�าหนดความส�าเร1จัได�แก ขนาดพื้� นที่��หนวยความจั�า
แที่�จัร#งที่��จั�ดสรรให� จั�านวนเพื้จัที่��จัะด.งเข�ามาในแต่ละคร� ง นโยบ่ายการเล�อกเพื้จัที่��จัะด.งเข�ามา
Virtual-Memory Management 26
การด"งเพจัเข้�าลั�วงหน่�า (ต้�อ) ใน Windows 2000 ใชิ้�เที่คน#คที่��เร�ยกวา Clustered
paging เม��อเก#ดเพื้จัฟอลต่-ข. น จัะไมเพื้�ยงแต่น�าเอาเพื้จัที่��ต่�องการเข�ามา หากเพื้จัที่��ต่�องการเป+นค�าส��งระบ่บ่จัะด.งมาอ�ก 3 8– เพื้จั หากเป+นเพื้จัข�อม!ลจัะน�าเข�ามา 2 – 4 เพื้จั ด�วยความหว�งที่��วาเพื้จัอ��นที่��น�าเข�ามาด�วยซ.�งอย!ถ�ดก�นไป นาจัะ
ได�ถ!กใชิ้�งานโดยไมต่�องเก#ดเพื้จัฟอลต่-อ�ก
Virtual-Memory Management 27
ข้น่าดข้องเพจั1 . เพื้จัขนาดเล1กชิ้วยลดการแต่กกระจัายภายในของพื้� นที่�� หนวยความจั�า (internal fragmentation) ได� เป+นการเพื้#�มประส#ที่ธิ#ภาพื้การใชิ้�งานหนวยความจั�าให�ด�ข. น โดยเฉล��ยแล�ว แต่ละโปรเซสจัะเก#ดการแต่กกระจัายหนวย
ความจั�าภายใน ส!ญ่เส�ยพื้� นที่��ขนาดเที่าก�บ่คร.�งหน.�งของเพื้จัส5ดที่�าย2. แต่ละเพื้จัขนาดเล1กจัะที่�าให�ม�จั�านวนเพื้จัมากข. น ต่ารางเพื้จัของแต่ละโปรเซสจัะม�ขนาดใหญ่ข. น
Virtual-Memory Management 28
ข้น่าดข้องเพจั (ต้�อ)3. โครงสร�างของแหลงเก1บ่ข�อม!ล ค�อด#สก- การอาน หร�อเข�ยนข�อม!ลจัะที่�างานเป+นบ่ล1อก เหมาะก�บ่การม�เพื้จัขนาดใหญ่ การที่�างานของอ5ปกรณ-ด#สก-จัะประกอบ่ด�วยเวลาสาม
สวน ค�อ เวลาแสวงหา (seek time), เวลาแฝง (latency time), และเวลาถายโอนข�อม!ล (transfer time)
เวลาถายโอนข�อม!ลข. นก�บ่ขนาดของข�อม!ลที่��สง น��นค�อขนาดของเพื้จั
Virtual-Memory Management 29
ข้น่าดข้องเพจั (ต้�อ)
ป;จัจั5บ่�นต่�วเลขอ�ต่ราการถายโอนข�อม!ลอย!ที่��ประมาณ 2MB ต่อว#นาที่�
ใชิ้�เวลาเพื้�ยง 02. ms ในการถายโอนเพื้จัขนาด 512
ไบ่ต่- เวลาแสวงหา และเวลาแฝงรวมก�นส!งถ.งประมาณกวา 10ms เวลาถายโอนค#ดเป+นเพื้�ยงร�อยละ 2 เที่าน� น
Virtual-Memory Management 30
ข้น่าดข้องเพจั (ต้�อ)
4. ขนาดของเพื้จัย�งม�ความส�มพื้�นธิ-ต่ออ�ต่ราการเก#ดเพื้จัฟอลต่-
หากเพื้จัม�ขนาดเล1กมาก ที่�าให�แต่ละโปรเซสม�เพื้จัจั�านวนมากให�ใชิ้�งานในหนวยความจั�าแที่�จัร#ง
โอกาสเก#ดเพื้จัฟอลต่-จัะต่��า เม��อขนาดเพื้จัใหญ่ข. น การอ�างถ.งต่�าแหนงในแต่ละเพื้จั
จัะกว�างไกลไปย�งเพื้จัอ��น ๆ มากข. น ที่�าให�เก#ดเพื้จัฟอลต่-ได�บ่อยข. น
Virtual-Memory Management 31
ข้น่าดข้องเพจั (ต้�อ)
แต่เม��อขนาดของเพื้จัใหญ่ข. นถ.งจั5ดหน.�ง จัะพื้บ่วาสามารถครอบ่คล5มการอ�างถ.งต่�าแหนงต่าง ๆ ได�มากข. น
โอกาสเก#ดเพื้จัฟอลต่-ลดลง จันสมมต่#ถ�าขนาดของเพื้จัใหญ่เที่าก�บ่ขนาดของโปรเซส
จัะไมเก#ดเพื้จัฟอลต่-เลย
Virtual-Memory Management 32
ข้น่าดข้องเพจั (ต้�อ)
Virtual-Memory Management 33
ข้น่าดข้องเพจั (ต้�อ)
ข�อเส�ยของการใชิ้�เพื้จัหลายขนาดในเคร��องเด�ยว ค�อความซ�บ่ซ�อนของระบ่บ่ปฏิ#บ่�ต่#การ และฮาร-ดแวร-
ในการประมวลผล Pentium4 จัะแยกใชิ้� TLB ส�าหร�บ่เก1บ่รายการในต่ารางเพื้จัส�าหร�บ่เพื้จัแต่ละขนาด
การใชิ้�เพื้จัหลายขนาดย�งที่�าให�ป;ญ่หาการแต่กกระจัายภายนอกของพื้� นที่��หนวยความจั�ากล�บ่มาอ�ก
เน��องจัากบ่ล1อกม�ขนาดแต่กต่างก�น
Virtual-Memory Management 34
ข้น่าดข้องเพจั (ต้�อ)