Your SlideShare is downloading. ×
Ch09th
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Ch09th

8,820
views

Published on

Operating System …

Operating System
ระบบปฏิบัติการคอมพิวเตอร์
by Nuttha Otanasap (ณัฏฐ์ โอธนาทรัพย์)
Computer Science Dept.,
South-east Asia University
Bangkok 10160 Thailand
email: auisuke@gmail.com
website:auisuke
auisuke.blogspot.com
Hi5:auisuke.hi5.com
Copyrights 2009 SE Asia University All Rights Reserved

Published in: Technology

0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
8,820
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
13
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Chapter 9: Memory Management บทที่ 9 การบริหารจัดการหน่วยความจำ
    • Background
    • Swapping
    • Contiguous Allocation
    • Paging
    • Segmentation
    • Segmentation with Paging
    • ความเป็นมา
    • การสลับการทำงาน
    • การจัดสรรพื้นที่ร่วมกัน
    • การจัดพื้นที่หน้า หรือ เพจจิ้ง
    • การแบ่งส่วน
    • การแบ่งส่วนด้วยเพจจิ้ง
  • 2. Background ความเป็นมา
    • เนื่องจากโปรแกรมต้องมีพื้นที่ในหน่วยความจำเพื่ออาศัยอยู่ในระหว่างทำงาน
    • อินพุทคิว Input queue โปรเซสทั้งหมด ที่อยู่บนดิสค์ ซึ่งรอคอยที่จะเข้าไปอยู่ในหน่วยความจำ เพื่อสามารถทำงานตามโปรแกรมที่กำหนด
    • โปรแกรมของผู้ใช้งาน จะต้องผ่านขั้นตอนต่างๆ ก่อนที่จะเข้าสู่กระบวนการทำงาน
  • 3. Binding of Instructions and Data to Memory การผูกความสัมพันธ์ ระหว่างคำสั่งกับข้อมูลในหน่วยความจำ
    • Compile time ขณะเกิดการคอมไพล์ : หากการจัดสรรพื้นที่ของหน่วยความจำทราบถึงระดับความสำคัญ ก็จะสามารถสร้างโค้ดสัมบูรณ์ ต้องคอมไพล์โค้ด หากพื้นที่ในการเริ่มต้นการทำงานเปลี่ยนแปลง
    • Load time ขณะเกิดการโหลด : จะต้องสร้างโค้ดที่สามารถจัดสรรพื้นที่หน่วยความจำขึ้นใหม่ หากไม่ทราบถึงการจัดสรรพื้นที่หน่วยความจำ ในขณะคอมไพล์
    • Execution time ขณะเกิดการเอ็กซ์ซีคิวท์ : การผูกความสัมพันธืหรือเชื่อมโยงต้องล่าช้า จนกว่าเกิดการทำงาน หากโปรเซสสามารถถูกเคลื่อนย้ายในระหว่างกำลังเอ็กซ์ซีคิวท์ จากพื้นที่หนึ่งในหน่วยความจำไปยังพื้นที่อื่นๆ จำเป็นต้องอาศัยฮาร์ดแวร์ในการแมพแอดเดรส
    การผูกแอดเดรสของคำสั่งกับข้อมูลเพื่อแอดเดรสของหน่วยความจำ สามารถเกิดสถานะต่างๆ สามสถานะด้วยกันดังนี้
  • 4. Multistep Processing of a User Program โปรเซสขั้นตอนต่างๆ ของโปรแกรมของผู้ใช้
  • 5. Logical vs. Physical Address Space พื้นที่ของแอดเดรสแบบเชิงตรรกและเชิงกายภาพ
    • แนวคิดของพื้นที่แอดเดรสเชิงตรรก เป็นการนำพื้นที่แอดเดรสเชิงกายภาพหลายพื้นที่มารวมกันไว้ที่ส่วนกลางเพื่อการบริหารจัดการหน่วยความจำ
      • Logical address – แอดเดรสเชิงตรรก ถูกสร้างขึ้นโดยหน่วยประมวลผลกลาง และถูกอ้างถึงโดยแอดเดรสเสมือน
      • Physical address – แอดเดรสเชิงกายภาพ แอดเดรสถูกมองเห็นได้เฉพาะหน่วยย่อยของหน่วยความจำ
    • แอดเดรสเชิงตรรกและเชิงกายภาพ ก็คือสิ่งเดียวกันของการผูกแอดเดรส ในขณะคอมไพล์ และขณะโหลด
    • แอดเดรสเชิงตรรก ( แอดเดรสเสมือน ) และแอดเดรสเชิงกายภาพ จะแตกต่างกันของการผูกแอดเดรส ในขณะเอ็กซ์ซีคิวท์
  • 6. Memory-Management Unit (MMU) หน่วยบริหารจัดการหน่วยความจำ
    • อุปกรณ์ฮาร์ดแวร์ ที่ทำการแมพระหว่างแอดเดรสเสมือนกับแอดเดรสทางกายภาพ
    • ในแนวทาง MMU ค่าที่เก็บอยู่ในรีจีสเตอร์เพื่อการจัดสรรพื้นที่ใหม่จะถูกเพิ่มเข้าสู่ แอดเดรสทุกๆ แอดเดรสที่ถูกสร้างขึ้นโดย โปรเซสของผู้ใช้ในขณะที่โปรเซสนั้นถูกส่งเข้าสู่หน่วยความจำ
    • การทำงานของโปรแกรมของผู้ใช้ด้วยแอดเดรสเชิงตรรก จะไม่คำนึงถึงแอดเดรสทางกายภาพจริงๆ
  • 7. Dynamic relocation using a relocation register การจัดสรรพิ้นที่ใหม่แบบไดนามิก โดยใช้รีจีสเตอร์ ในการจัดสรรพื้นที่ใหม่
  • 8. Dynamic Loading การโหลดแบบไดนามิก
    • การทำงานแบบประจำจะไม่ถูกโหลดจนกว่าจะถูกเรียกใช้
    • เป็นการใช้งานพื้นที่ในหน่วยความจำที่ดีที่สุด โดยส่วนงานประจำที่ไม่ถูกใช้งานก็จะไม่ถูกโหลด
    • มีประโยชน์มากเมื่อโค้ดที่มีขนาดใหญ่เป็นที่ต้องการเพื่อจัดการกับกรณีที่เกิดขึ้นไม่บ่อย
    • ไม่ต้องรองรับการทำงานพิเศษใดๆ จากระบบปฏิบัติการ ที่ต้องการที่จะต้องถูกใช้งานด้วยการออกแบบโปรแกรม
  • 9. Dynamic Linking การเชื่อมโยงแบบไดนามิก
    • การเชื่อมโยงจะถูกเลื่อนออกไปจนกว่าจะถึงเวลาในการเอ็กซ์ซีคิวท์
    • โค้ดขนาดเล็ก สตับ ถูกใช้เพิ่อ จัดสรรให้กับการทำงานที่เกิดขึ้นประจำของไลบรารีพื้นที่หน่วยความจำที่เหมาะสม
    • สตับจะวางซ้อนบนตัวเองด้วยแอดเดรสของการทำงานที่เกิดขึ้นเป็นประจำ และทำการเอ็กซ์ซีคิวท์งนประจำนั้น
    • ระบบปฏิบัติการต้องการตรวจสอบ หากการทำงานประจำอยู่ในแอดเดรสหน่วยความจำของโปรเซส
    • การเชื่อมโยงแบบไดนามิกคือการใช้ประโยชน์แบบแบ่งส่วนที่ดีสำหรับไลบรารี่
  • 10. Overlays โอเวอร์เลย์ ( การทับซ้อน )
    • จะคงไว้ในหน่วยความจำก็ต่อเมื่อคำสั่งและข้อมูลต่างๆ ที่จำเป็นในทุกขณะในการทำงาน
    • จำเป็นที่ต้องใช้เมื่อโปรเซสมีขนาดใหญ่กว่าพื้นที่ที่สามารถใช้ได้ทั้งหมดในหน่วยความจำ
    • การใช้งานโดยผู้ใช้ ไม่จำเป็นต้องมีการรองรับการทำงานเป็นกรณีพิเศษใดๆ จากระบบปฏิบัติการ
    • การออกแบบการโปรแกรมของโครงสร้างการโอเวอร์เลย์ มีความมสลับซับซ้อน
  • 11. Overlays for a Two-Pass Assembler โอเวอร์เลย์สำหรับ การทำงานของแอสเซมเบลอร์
  • 12. Swapping การสลับการทำงาน
    • แต่ละโปรเซสสามารถถูกสลับการทำงานออกจากหน่วยความจำไปยังหน่วยจัดเก็บสำรองเป็นการชั่วคราว และจากนั้นก็สามารถกลับเข้ามายังหน่วยความจำเพื่อทำการเอ็กซ์ซีคิวท์ต่อไป
    • หน่วยจัดเก็บสำรอง
    • ดิสค์ความเร็วสูงมีขนาดใหญ่พอที่จะบรรจุสำเนาข้อมูลแบบอิมเมจทั้งหมดของหน่วยความจำ สำหรับผู้ใช้งานทั้งหมด
    • โดยต้องรองรับความสามารถในการเข้าถึงแบบโดยตรงสู่อิมเมจของหน่วยความจำ
  • 13. Swapping การสลับการทำงาน (cont.)
    • Roll out, roll in – โรลเอ้าท์ และโรลอิน การสลับการทำงานลักษณะต่างๆ ใช้อัลกอริธึมการจัดลำดับการทำงานโดยอิงกับระดับความสำคัญเป็นหลัก
    • โปรเซสที่มีระดับความสำคัญต่ำกว่าจะถูกสลับออกเพื่อให้โปรเซสที่มีระดับความสำคัญสูงกว่าสามารถถูกโหลดเข้าสู่หน่วยความจำและทำการเฮ็กซ์ซีคิวท์ได้
    • ส่วนเวลาหลักในการสลับการทำงาน ก็คือเวลาที่ใช้ในการเปลี่ยนถ่ายการทำงาน หรือเวลาในการทรานส์เฟอร์
    • เวลาในการทรานส์เฟอร์ทั้งหมด คือเวลาที่ใช้ไปทั้งมหดในการสลับการทำงานในหน่วยความจำ
    • จะพบว่าการสลับการทำงานของโปรเซสรูปแบบต่างๆ มีอยู่ในระบบต่างๆ หลายระบบ อาทิเช่น ยูนิกซ์ ลีนุกซ์ และวินโดวส์
  • 14. Schematic View of Swapping มุมมองขอบเขตในการสลับการทำงานของโปรเซส
  • 15. Contiguous Allocation การจัดสรรพื้นที่ที่อยู่ประชิดติดกัน
    • โดยปกติหน่วยความจำหลักจะถูกแบ่งออกเป็นสองส่วนหลัก
      • พื้นที่สำหรับระบบปฏิบัติการ โดยปกติจะอยู่ในส่วนพื้นที่ด้านล่างของหน่วยความจำหรือแอดเดรสเริ่มต้น โดยการจัดการของเว็กเตอร์การขัดจังหวะ
      • โปรเซสของผู้ใช้ อยู่ในส่วนพื้นที่ด้านบนของหน่วยความจำ หรือแอดเดรสหลังจากระบบปฏิบัติการ
  • 16. Contiguous Allocation การจัดสรรพื้นที่ที่อยู่ประชิดติดกัน (cont.)
    • การจัดสรรพื้นที่แบบส่วนเดียว
      • การจัดสรรพื้นที่ใหม่ ใช้รีจีสเตอร์ในการป้องกันโปรเซสของผู้ใช้จากแหล่งอื่น และจากการเปลี่ยนแปลงโค้ดและข้อมูลของระบบปฏิบัติการ
      • รีจีสเตอร์ที่ใช้ในการจัดสรรพื้นที่ใหม่ จะมีค่าของแอดเดรสทางกายภาพที่เล็กที่สุด
      • เพื่อจำกัดรีจีสเตอร์ในการเก็บค่าของแอดเดรสเชิกตรรก
      • โดยแอดเดรสเชิงตรรกแต่ละค่าจะต้องมีค่าน้อยกว่าขนาดของรีจีสเตอร์จำกัด
  • 17. Hardware Support for Relocation and Limit Registers ฮาร์ดแวร์รองรับการจัดสรรพื้นที่ใหม่และรีจีสเตอร์จำกัด
  • 18. Contiguous Allocation การจัดสรรพื้นที่ที่อยู่ประชิดติดกัน (Cont.)
    • การจัดสรรพื้นที่แบบหลายส่วน Multiple-partition allocation
      • Hole – พื้นที่ว่าง หมายถึงบล็อกของหน่วยความจำที่พร้อมใช้งาน พื้นที่ว่างขนาดต่างๆ ทั้งนี้โดยต่อเนื่องกันในหน่วยความจำ
      • เมื่อมีโปรเซสเกิดขึ้น โปรเซสจะได้รับจัดสรรพื้นที่ในหน่วยความจำ จากพื้นที่ว่างที่มีขนาดใหญ่พอสำหรับโปรเซสนั้น
      • ระบบปฏิบัติการบริหารจัดการสารสนเทศต่างๆ ดังต่อไปนี้
        • 1 การแบ่งส่วนพื้นที่เพื่อการจัดสรร
        • 2 การกำหนดส่วนพื้นที่ว่าง
    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
  • 19. Dynamic Storage-Allocation Problem ปัญหาของการจัดสรรและการจัดเก็บแบบไดนามิก หรือแปรผัน
    • First-fit : การกำหนดพื้นที่ให้จากพื้นที่ว่างที่มีขนาดใหญ่พอพื้นที่แรก
    • Best-fit : การกำหนดพื้นที่ให้พอดีที่พิจารณาแล้วว่าดีที่สุด โดยการจัดสรรพื้นที่ว่างขนาดเล็กที่สุดที่มีขนาดใหญ่เพียงพอ ต้องเลือกจากลีสท์ที่มีอยู่ โดยไม่ต้องคำนึงถึงขนาด สร้างพื้นที่ว่างให้เล็กทีสุด
    • Worst-fit : การกำหนดพื้นที่แบบเผื่อ โดยการจัดสรรพื้นที่ว่างที่มีขนาดใหญ่สุด อาจจะเลือกจากลิสท์ที่มีอยู่แล้วเช่นเดียวกัน
    จะกำหนดขนาดตามที่โปรเซสร้องขอจากพื้นที่ว่างที่มีอยู่ได้อย่างไร First-fit and best-fit แบบที่หนึ่งและที่สองดีกว่าแบบที่สามในด้านความเร็ว และการใช้หน่วยจัดเก็บอย่างมีประสิทธิภาพ
  • 20. Fragmentation การแฟรกเมนท์ การจัดการกับความแตกกระจาย
    • External Fragmentation – การแฟรกเมนท์แบบภายนอก หมายถึงพื้นที่ในหน่วยความจำทั้งหมดที่มีอยู่ ที่สามารถให้บริการได้ตามที่ร้องขอ แต่ไม่ได้อยู่ต่อเนื่องติดกันโดยตลอด
    • Internal Fragmentation – การแฟรกเม้นท์แบบภายใน หมายถึงพื้นที่ในหน่วยความจำที่สามารถถูกใช้งานอาจมีขนาดใหญ่กว่าหน่วยความจำที่ถูกร้องขอ ด้วยพื้นที่ที่มีขนาดแตกต่างกัน ก็คือหน่วยความจำภายในที่ถูกจัดสรรเป็นส่วนๆ แต่ไม่ถูกใช้งาน
  • 21. Fragmentation การแฟรกเมนท์ การจัดการกับความแตกกระจาย
    • Reduce external fragmentation by compaction การลดการแฟรกเมนท์ภายนอกด้วยการบีบอัด
      • เนื้อหาที่อยู่ในหน่วยความจำส่วนนั้นๆ เพื่อใช้สำหรับหน่วยความจำทั้งหมดเข้าไว้ด้วยกันลงในพื้นที่บล๊อกขนาดใหญ่
      • การบีบอัดสามารถทำได้เฉพาะ เมื่อการการกำหนดพื้นที่เป็นแบบไดนามิก และสามารถทำให้สำเร็จลุล่วงในขณะการเอ็กซ์ซีคิวท์
      • ปัญหาในส่วนอินพุทเอ้าท์พุท
      • การเกิดการซ้อนทับในหน่วยความจำในขณะที่เกิดการใช้งานอินพุทเอ้าท์พุท
      • ใช้งานอินพุทเอ้าท์พุทเฉพาะในบัฟเฟอร์ของระบบปฏิบัติการเท่านั้น
  • 22. Paging การทำเพจจิ้ง หรือการจัดหน้า
    • พื้นที่แอดเดรสแบบตรรก ของโปรเซสสามารถที่จะเกิดขึ้นแบบไม่ต่อเนื่อง
    • โปรเซสจะถูกจัดวางลงในหน่วยความจำทางกายภาพ ก็ต่อเมื่อมีพื้นที่มากเพียงพอในการทำงาน
    • การแบ่งหน่วยความจำทางกายภาพออกเป็นบล็อกขนาดคงที่ เรียกว่าเฟรม frames ( มีขนาดเป็นทวีคุณ ระหว่าง 512 ไบท์ ถึง 8192 ไบท์ )
    • การแบ่วหน่วยความจำแบบตรรก ออกเป็นบล็อกขนาดเท่าๆ กัน เรียกว่า เพจ pages .
    • หรือหน้า
    • จัดแทรกให้กับเฟรมว่างทุกๆ เฟรม
    • ในการทำงานโปรแกรมที่มีขนาด n เพจ จำเป็นต้องหา เฟรมว่าง n เฟรม และโหลดโปรแกรม
    • กำหนดตารางเพจให้สามารถแปลงแอดเดรสแบบตรรกกับแอดเดรสแบบกายภาพ
    • การแฟรกเม้นท์แบบภายใน
  • 23. Address Translation Scheme แนวทางการแปลงแอดเดรส
    • แอดเดรสถูกสร้างหรือกำหนดขึ้นโดยหน่วยประมวลผล ถูกแบ่งออกเป็นแบบต่างๆ ดังต่อไปนี้
      • Page number (p) – เลขหน้าของเพจ (p) ใช้เสมือนเลขดัชนีบ่งชี้ลงในตารางเพจ ที่ประกอบด้วยแอดเดรสฐานของแต่ละเพจ ในหน่วยความจำกายภาพ
      • Page offset (d) – ค่าออฟเซ็ตของเพจ (d) ประกอบด้วยแอดเดรสฐาน เพื่อการกำหนด แอดเดรสในหน่วยความจำกายภาพ ที่ใช้ส่งให้กับหน่วยความจำ
  • 24. Address Translation Architecture สถาปัตยกรรมการแปลงแอดเดรส
  • 25. Paging Example ตัวอย่างการทำเพจ
  • 26. Paging Example ตัวอย่างการทำจัดเพจ
  • 27. Free Frames ฟรีเฟรม ก่อนถูกจัดสรร หลังถูกจัดสรร
  • 28. Implementation of Page Table การใช้งานตารางเพจ
    • ตารางเพจจะถูกเก็บอยู่ในหน่วยความจำหลัก
    • Page-table base register ( PTBR) รีจีสเตอร์ของตารางเพจหลัก จะชี้ไปยังตารางเพจ
    • Page-table length register (PRLR) รีจีสเตอร์ที่ใช้กำหนดขนาดของตารางเพจ บอกให้ทราบถึงขนาดของตารางเพจ
    • ด้วยแนวทางเช่นนี้ การเข้าถึง คำสั่งและข้อมูลใดๆ จำเป็นต้อง การเข้าถึงหน่วยความจำสองส่วน โดยหน่วยความจำแรกสำหรับตารางเพจ และอีกหนึ่งสำหรับคำสั่งหรือข้อมูล
    • ปัญหาที่เกิดจากการเข้าถึงหน่วยความจำสองหน่วยใดๆ สามารถแก้ปัญหาได้โดยใช้ หน่วยความจำแคชที่ความสามารถในการค้นห้าโดยรวดเร็ว ที่เรียกว่า หน่วยความจำเชิงสัมพันธ์ หรือ การแปลที่อาศัยบัฟเฟอร์ translation look-aside buffers (TLBs)
  • 29. Associative Memory หน่วยความจำร่วม
    • Associative memory หน่วยความจำร่วม – parallel search - การค้นหาแบบขนาน
    • การแปลแอดเดรส Address translation (A´, A´´)
      • หาก A’ เป็นรีจีสเตอร์ร่วม รับ frame#
      • นอกจากนี้ยังรับ frame# จาก ตารางเพจ ในหน่วยความจำ
    Page # Frame #
  • 30. Paging Hardware With TLB ฮาร์ดแวร์การจัดเพจ ด้วย TLB
  • 31. 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 +  – 
  • 32. Memory Protection การปกป้องหน่วยความจำ
    • การปกป้องหน่วยความจำ ถูกนำมาใช้ด้วย บิทของการปกป้องร่วม ในแต่ละเฟรม
    • Valid-invalid bit บิท แสดงความถูกต้อง และไม่ถูกต้อง ถูกควบไว้กับการกำกับการเข้าถึง ในตารางเพจ
      • “ valid” บิทแสดงความถูกต้อง บ่งชี้ถึงแต่ละเพจที่ทำงานร่วมอยู่ในพื้นที่แอดเดรสเชิงตรรก
      • “ invalid” บิทแสดงความไม่ถูกต้อง บ่งชี้ถึงแต่ละเพจไม่ได้อยู่ในพื้นที่แอดเดรสเชิงตรรก
  • 33. Valid (v) or Invalid (i) Bit In A Page Table บิทบ่งชี้ความถูกต้องและไม่ถูกต้องในตารางเพจ
  • 34. Page Table Structure โครงสร้างตารางเพจ
    • Hierarchical Paging
    • Hashed Page Tables
    • Inverted Page Tables
    • การจัดเพจเชิงลำดับ
    • ตารางเพจแบบเข้ารหัสด้วยการแฮช
    • ตารางเพจแบบแปลงค่า
  • 35. Hierarchical Page Tables การจัดเพจเชิงลำดับ
    • ทำการแปลงค่าจากพื้นที่แอดเดรสเชิงตรรกไปเป็นตารางเพจแบบหลายตาราง
    • เทคนิคอย่างง่ายคือการทำตารางเพจแบบสองระดับ
  • 36. Two-Level Paging Example ตัวอย่างตารางเพจแบบสองระดับ
    • ส่วนของเลขที่หน้าของเพจ ใช้ 24 บิท
    • ส่วนของออฟเซ็ท ใช้ 12 บิท
    • เมื่อตารางเพจถูกจัด เลขหน้าของเพจ จะถูกแบ่งออกเป็น ส่วนต่างๆ ดังนี้
      • เลขหน้าเพจ 10 บิท
      • ค่าออฟเซ็ทของเพจ 10 บิท
      • โดยแอดเดรสเชิงตรรก เป็นดังนี้
    • โดย pi คือดรรชนีบ่งชี้ ตารางเพจภายนอก และ p2 คือ การแทนที่ด้วยเพจของตารางเพจภายนอก
    page number page offset p i p 2 d 10 10 12
  • 37. Two-Level Page-Table Scheme รูปแบบของตารางเพจแบบสองระดับ
  • 38. Address-Translation Scheme รูปแบบในการแปลงค่าแอดเดรส
    • รูปแบบในการแปลงค่าแอดเดรส สำหรับสถาปัตยกรรมการจัดเพจแบบ 32 บิท สองระดับ
  • 39. Hashed Page Tables ตารางเพจแบบเข้ารหัสด้วยการแฮช
    • โดยทั่วไปใช้ในพื้นที่แอดเดรสที่มากกว่า 32 บิท
    • โดยเลขที่หน้าเพจเสมือนจะถูกแฮชไปเป็นตารางเพจ และตารางเพจนี้ประกอบไปด้วยค่าการเชื่อมโยงด้วยส่วนประกอบการแฮช เพื่อบ่งชีไปสู่พื้นที่เดิมก่อนทำการแฮช
    • เมื่อเปรียบเทียบ เลขที่หน้าเพจเสมือน ในการค้นหาการเชื่อมโยงที่เข้ากัน หากพบว่ามันเข้ากัน จะได้ผลลัพธ์เป็นเฟรมเชิงกายภาพ
  • 40. Hashed Page Table ตารางเพจที่ถูกแฮช
  • 41. Inverted Page Table ตารางเพจแบบแปลงค่า
    • การเข้าถึงพื้นที่เพจของหน่วยความจำ แต่ละเพจจริงๆ แต่ละครั้ง
    • การเข้าถึงของแอดเดรสเสมือน ของเพจ ถูกเก็บอยู่ในพื้นที่หน่วยความจำจริงๆ โดยสารสนเทศเกี่ยวกับโปรเซส ที่เป็นเจ้าของเพจนั้น
    • ลดความต้องการการใช้หน่วยความจำ เพื่อการจัดเก็บตารางเพจแต่ละตาราง แต่กลับเป็นการเพิ่มระยะเวลาในการค้นหา ตารางเมื่อเกิดการอ้างถึงเพจขึ้น
    • ในตารางการแฮชเพื่อจำกัดการค้นหาในแต่ละครั้ง หรือ อย่างมากที่สุดเพื่อให้เกิดการเข้าใช้งานตารางเพจในน้อยที่สุด
  • 42. Inverted Page Table Architecture ตารางเพจแบบแปลงค่า
  • 43. Shared Pages เพจร่วม
    • โค้ดร่วม ( โค้ดที่ถูกแบ่งปันการใช้งาน หรือใช้งานร่วมกัน )
      • ชุดสำเนาหนึ่งชุดของ โค้ดแบบอ่านอย่างเดียว ถูกแบ่งปันการใช้งานร่วมกันระหว่างโปรเซส อาทิ เท็กซ์อิดิเตอร์ คอมไพเลอร์ และระบบวินโดวส์
      • โค้ดร่วม จะเกิดขึ้นอยู่ในพื้นที่เดียวกัน ภายในพื้นที่แอดเดรสเชิงตรรก ของทุกๆ โปรเซส
    • โค้ดและข้อมูลแบบเอกเทศ หรือแบบไพรเวท
      • แต่ละโปรเซส จะมีสำเนาของโค้ดและข้อมูลเป็นของตนเอง
      • เพจของโค้ดและข้อมูลแบบไพรเวท สามารถเกิดขึ้นได้ทุกที่ ในพื้นที่แอดเดรสเชิงตรรก
  • 44. Shared Pages Example ตัวอย่างการใช้เพจร่วม
  • 45. Segmentation การแบ่งส่วนหรือ การทำเซ็กเม้นท์
    • แนวทางในการบริหารจัดการหน่วยความจำ ที่รองรับการใช้งานหน่วยความจำในมุมมองของผู้ใช้
    • เป็นโปรแกรมที่ประกอบไปด้วยส่วนประกอบหรือเซ็กเม้นท์ ต่างๆ แต่ละส่วนหรือแต่ละเซ็กเม้นท์ เป็นหน่วยทางตรรก อาทิเช่น
    • main program,
    • procedure,
    • function,
    • method,
    • object,
    • local variables, global variables,
    • common block,
    • stack,
    • symbol table, arrays
    โปรแกรมหลัก โพรซีเยอร์ พังก์ชั่น แมทธอด อ็อบเจ็ก ตัวแปลโลคอลและ ตัวแปลโกลบอล บล๊อกทั่วไป แสต็ก ตารางสัญลักษณ์ , อะเรย์
  • 46. User’s View of a Program มุมมองของผู้ใช้ที่มีต่อโปรแกรม
  • 47. Logical View of Segmentation มุมมองเชิงตรรก ของการทำเซ็กเม้นท์ 1 3 2 4 user space physical memory space 1 4 2 3
  • 48. Segmentation Architecture สถาปัตยกรรมของการทำเซ็กเม้นท์
    • แอดเดรสเชิงตรรก ประกอบไปด้วยสองทูเปิล
    • < หน้าของเซ็กเม้นท์ , ค่าอ็อฟเซ็ท >
    • ตารางเซ็กเม้นท์ เป็นตารางที่ทำการแมพค่าแอดเดรสทางกายภาพแบบสองมิติ โดยแต่ละการเข้าถึงตารางประกอบด้วย
      • เบส ประกอบด้วยแอดเดรสทางกายภาพเพื่อใช้ในการเริ่มต้น เมื่อเซ็กเม้นท์ถูกย่อลงไว้ในหน่วยความจำ
      • การจำกัด บ่งบอกถึงขนาดของเซ็กเม้นท์
    • รีจีสเตอร์ฐาน ของตารางเซ็กเม้นท์ จะบ่งชี้ไปยังพื้นที่ในหน่วยความจำ ของตารางเซ็กเม้นท์
    • รีจีสเตอร์บอกขนาด ของตารางเซ็กเม้นท์ บ่งชีถึงจำนวนของเซ็กเม้นท์ที่ถูกใช้โดยโปรแกรม
    • จำนวนเซ็กเม้นท์ s สามารถใช้งานได้เมื่อ s < STLR
  • 49. Segmentation Architecture สถาปัตยกรรมการทำเซ็กเม้นท์ (Cont.)
    • Relocation.
      • dynamic
      • by segment table
    • Sharing.
      • shared segments
      • same segment number
    • Allocation.
      • first fit/best fit
      • external fragmentation
    • การจัดลำดับพื้นที่
      • แบบไดนามิก
      • โดยตารางเซ็กเม้นท์
    • การใช้งานร่วม
      • ใช้งานเซ็กเม้นท์ร่วมกัน
      • โดยมีเลขที่เซ็กเม้นท์เดียวกัน
    • การจัดสรรพื้นที่
      • โดยจะจัดสรรพื้นที่ที่เหมาะสมให้กับแต่ละโปรเซสโดยคำนึงถึง โปรเซสที่มีขนาดพอเหมาะพอดีกับพื้นที่ว่างนั้นให้สามารถเข้าใช้งานพื้นที่นั้นก่อน
      • การจัดการกับการแตกกระจายภายนอก
  • 50. Segmentation Architecture สถาปัตยกรรมการทำเซ็กเม้นท์ (Cont.)
    • การปกป้อง ในการเข้าใช้ตารางเซ็กเม้นท์แต่ละครั้งต้องคำนึงถึง
      • บิทบ่งชี้ความถูกต้อง = 0  เป็นเซ็กเม้นท์ที่ถูกต้อง
      • เป็นการทำงาน แบบ อ่าน / เขียน / เอ็กซ์ซีคิวท์
    • บิทเพื่อการปกป้องจะสัมพันธ์อยู่กับเซ็กเม้นท์ การใช้งานโค้ดร่วมกันเกิดขึ้นในระดับเซ็กเม้นท์
    • ในขณะที่แต่ละเซ็กเม้นท์มีขนาดแปรผัน การจัดสรรพื้นที่ในหน่วยความจำ จะเกิดปัญหาการจัดสรรพื้นที่ในการการจัดเก็บแบบไดนามิกขึ้น
    • ตัวอย่างการทำเซ็กเม้นท์จะแสดงให้เห็นดังไดอะแกรมต่อไปนี้
  • 51. Segmentation Hardware ฮาร์ดแวร์สำหรับการทำเซ็กเม้นท์
  • 52. Example of Segmentation ตัวอย่างการทำเซ็กเม้นท์
  • 53. Sharing of Segments การใช้เซ็กเม้นท์ร่วมกัน
  • 54. Segmentation with Paging – MULTICS การทำเซ็กเม้นท์ด้วยการจัดเพจ
    • ระบบ MULTICS ถูกใช้เพื่อแก้ปัญหา การแตกกระจายภายนอก และระยะเวลาในการค้นหา ของการทำเซ็กเม้นท์ด้วยการจัดเพจ
    • ผลลัพท์ที่ได้จะแตกต่างจาก การทำเซ็กเม้นแท้ๆ ด้วยตารางเซ็กเม้นท์ไม่ได้ประกอบไปด้วย แอดเดรสฐานของเซ็กเม้นท์ แต่กลับเป็นแอดเดรสฐานของ ตารางเพจ สำหรับเซ็กเม้นท์
  • 55. MULTICS Address Translation Scheme รูปแบบการแปลงแอดเดรส MULTICS
  • 56. Segmentation with Paging – Intel 386 การทำเซ็กเม้นท์ด้วยการจัดเพจ ใน อินเทล 386
    • จากที่แสดงดังไดอะแกรม อินเทล 386 ใช้การทำเซ็กเม้นท์ ด้วยการจัดเพจ สำหรับการบริหารจัดการหน่วยความจำ ด้วยรูปแบบการจัดเพจแบบสองระดับ
  • 57. Intel 80386 Address Translation การแปลงแอดเดรส ในอินเทล 80386