Ch09th

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    2 Favorites

    Ch09th - Presentation 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

    + Nuttha OtanasapNuttha Otanasap, 6 months ago

    custom

    881 views, 2 favs, 1 embeds more stats

    Operating System
    ระบบปฏิบัติ more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 881
      • 875 on SlideShare
      • 6 from embeds
    • Comments 0
    • Favorites 2
    • Downloads 0
    Most viewed embeds
    • 6 views on http://learning.sau.ac.th

    more

    All embeds
    • 6 views on http://learning.sau.ac.th

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories