SlideShare a Scribd company logo
1 of 45
โครงสร้า งหน่ว ยความ
        จำา เสมือ น
Virtual Memory Structure
Virtual Memory

                       Background
                       Demand Paging
                       Process Creation
                       Page Replacement
                       Allocation of Frames
                       Thrashing
                       Operating System Examples




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 2
                            ั
Learning Objectives

                       เพื่อศึกษาความสำาคัญของหน่วยความจำาเสมือน
                       เพื่อเข้าใจการสลับหน้าตามคำาขอทันที (demand paging) ของ
                       หน่วยความจำาเสมือน
                       เพื่อเข้าใจถึงความซับซ้อนและค่าใช้จ่ายในการใช้งานหน่วย
                       ความจำาเสมือน




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 3
                            ั
ความเป็น มา
                                                           Background
                       ชุดคำาสั่งที่จะถูกกระทำาการได้นั้นจะต้องอยู่ในหน่วยความจำา
                       กายภาพเสมอ
                       เราจำาเป็นต้องใส่พื้นที่เลขที่อยู่ของหน่วยความจำาแบบตรรกะ
                       ทั้งหมดลงในหน่วยความจำาแบบกายภาพ (แต่ถกจำากัดด้วยขนาด
                                                                      ู
                       ของพื้นที่หน่วยความจำาจริง)
                       กรณี single program
                             ใช้วิธการ overlay คือการทำาให้โปรแกรมทีมขนาดใหญ่กว่าพืนที่
                                   ี                                ่ ี            ้
                             ในหน่วยความจำา ให้สามารถดำาเนินได้ จัดการโดยโปรแกรมเมอร์
                             โดยการแบ่งโปรแกรมออกเป็นโปรแกรมย่อย (sub program)
                             หลายๆ ส่วน และให้แต่ละส่วนมีขนาดเล็กกว่าหน่วยความจำา
                       กรณี Multiprogram
                             ใช้หน่วยความจำาเสมือน (virtual memory) จัดการโดย OS




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 4
                            ั
ความเป็น มา
                                                           Background




                 โปรแกรมจะถูกแบ่งออกเป็น 2 ส่วน main program เป็นส่วนของโปรแกรมที่
                 อยูในหน่วยความจำาไปตลอดจนกระทั่งการทำางานสิ้นสุดลง และ Sub-
                    ่
                 Program ในส่วนที่เหลือ จะถูกแบ่งออกเป็นส่วนย่อยๆ และจะถูกโหลดเข้าสู่
                 หน่วยความจำาก็ต่อเมื่อต้องการรันเท่านั้น




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 5
                            ั
ความเป็น มา
                                                           Background
                       หน่ว ยความจำา เสมือ น (Virtual memory) – การแยกส่วน
                       ของหน่วยความเชิงตรรกะ (logical memory) ของผู้ใช้ออกจาก
                       หน่วยความจำาเชิงกายภาพ (physical memory)
                             มีเพียงส่วนของโปรแกรมทีต้องการอยูในหน่วยความจำาเพื่อกระทำา
                                                        ่        ่
                             การ (execution) เท่านั้น
                             พื้นที่ (Logical address) จึงสามารถใหญ่กว่าขนาดของพืนทีหน่วย
                                                                                 ้ ่
                             ความจำาเชิงกายภาพ (physical address space) ได้
                             ยินยอมให้มการใช้พื้นที่หน่วยความจำาร่วมกันได้ จากหลายๆ
                                          ี
                             กระบวนการ
                             ทำาให้มการสร้างกระบวนการขึ้นมาได้โดยสะดวก
                                       ี
                       Virtual memory สามารถใช้งานผ่าน
                             Demand paging
                             Demand segmentation




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 6
                            ั
Virtual Memory That is Larger Than Physical
                                    Memory




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 7
                            ั
Demand Paging

                       นำา page ไปไว้ในหน่วยความจำาเฉพาะเมื่อเวลาที่ต้องการเท่านั้น
                             ลดการใช้ (Less I/O needed)
                             ลดการใช้หน่วยความจำา (Less memory needed)
                             โต้ตอบได้รวดเร็วกว่า (Faster response)
                             รองรับผู้ใช้ได้มากกว่า (More users)

                       Page ที่ต้องการ  ต้องการมีการอ้างอิงถึง
                             invalid reference ⇒ ยกเลิก (abort)
                             not-in-memory ⇒ นำาเข้าหน่วยความจำา (bring to memory)




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 8
                            ั
Transfer of a Paged Memory to Contiguous Disk
                                  Space




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 9
                            ั
Valid-Invalid Bit
                   จะมี valid–invalid bit เชื่อมโยงอยูในแต่ละรายการ page table
                                                      ่
                   (1 ⇒ in-memory, 0 ⇒ not-in-memory)
                   ต้องกำาหนดค่าเริ่มต้น valid–invalid เป็น 0 ทุกรายการ (entries)
                   Example of a page table snapshot.
                                                      Frame #           valid-invalid bit
                                                                         1
                                                                         1
                                                                         1
                                                                         1
                                                                         0
                                                          

                                                                         0
                                                                         0
                                                         page table

                   ระหว่างการแปลงเลขที่อยู่ ถ้า valid–invalid bit ใน page table
                   entry เป็น 0 ⇒ page fault
วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 10
                            ั
Page Table When Some Pages Are Not in Main
                                Memory




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 11
                            ั
การผิด หน้า
                                                            Page Fault
                   ถ้าเคยมีการอ้างอิงบน page ครั้งแรกของการอ้างอิงจะ trap to
                   OS ⇒ page fault
                   OS จะมองหาตารางอื่นเพื่อตัดสินใจว่า
                          Invalid reference ⇒ abort.
                          ยังไม่มีอยูในหน่วยความจำา
                                     ่
                   จะหา empty frame
                   Swap page ไปยัง frame นั้น
                   Reset tables, validation bit = 1.
                   เริ่มคำาสั่ง: Least Recently Used
                          block move



                          เพิ่มหรือลดตำาแหน่งอย่างอัตโนมัติ



วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 12
                            ั
Steps in Handling a Page Fault




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 13
                            ั
จะเป็น อย่า งไรถ้า ไม่ม เ ฟรมว่า ง (free frame)?
                                         ี

                       การแทนที่ Page (Page replacement) – จะค้นหาบาง page
                       ในหน่วยความจำาที่ยงไม่ได้มีการใช้งานจริง แล้วสลับออกไป
                                         ั
                       (swap out)
                             algorithm
                             performance – ต้องใช้ algorithm ทีทำาให้ผลการค้นหาจำานวน
                                                               ่
                             การผิดหน้าเหลือน้อยทีสุด
                                                  ่

                       บางหน้า (page) อาจมีการนำาเข้าออกหน่วยความจำาหลายครั้ง




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 14
                            ั
Performance of Demand Paging

                       Page Fault Rate 0 ≤ p ≤ 1.0
                             if p = 0 no page faults
                             if p = 1, every reference is a fault

                       Effective Access Time (EAT)
                                       EAT = (1 – p) x memory access
                                            + p (page fault overhead
                                            + [swap page out ]
                                            + swap page in
                                            + restart overhead)




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 15
                            ั
Demand Paging Example

                       Memory access time = 1 microsecond

                       50% ของเวลาที่มีการแก้ไข page ที่ถูกแทนที่ และต้องถูกสลับ
                       ออกไป

                       Swap Page Time = 10 msec = 10,000 msec
                                 EAT = (1 – p) x 1 + p (15000)
                                     1 + 15000P      (in msec)




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 16
                            ั
การสร้า งกระบวนการ
                                               Process Creation
                       Virtual memory ยินยอมให้ใช้ประโยชน์อย่างอื่นได้ในขณะที่
                       สร้างกระบวนการ

                       - Copy-on-Write

                       - Memory-Mapped Files




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 17
                            ั
Copy-on-Write

                       Copy-on-Write (COW) ยินยอมให้ทั้ง parent and child
                       processes ในการกำาหนดค่า share ใน page เดียวกันในหน่วย
                       ความจำา

                       ถ้าแม้มีการแก้ไข page ที่ใช้ร่วมกัน ก็จะมีเพียง page นั้นที่ถก
                                                                                    ู
                       สำาเนาไป

                       COW จะมีการสร้างกระบวนการที่สะดวกกว่า เช่นเดียวกับการ
                       สำา page ที่มีการแก้ไข

                       Free pages จะถูกจัดสรรจาก pool ของ zeroed-out pages.




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 18
                            ั
Memory-Mapped Files

                       Memory-mapped file I/O ยินยอมให้ file I/O ถูกใช้งานเหมือนรูที
                       นการเข้าถึงหน่วยความจำาได้โดยการ mapping a disk block ไปเป็น
                       page ในหน่วยความจำา

                       ไฟล์จะถูกกำาหนดค่าเริ่มต้นของการอ่านโดยใช้ demand paging
                       สัดส่วนของ page-sized ของไฟล์ที่อ่านจากระบบไฟล์ไปยัง physical
                       page. ลำาดับย่อยของ reads/writes ไฟล์จะดำาเนินการเช่นเดียวกับการ
                       เข้าถึงหน่วยความจำา

                       การเข้าถึงไฟล์อย่างง่ายโดย treating file I/O ผ่านหน่วยความจำา
                       มากกว่าการใช้ read() write() system calls.

                       อนุญาตให้หลายกระบวนการทำาการ map ไฟล์เดียวกันให้ใช้ pages
                       ร่วมกันในหน่วยความจำาได้อีกด้วย




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 19
                            ั
Memory Mapped Files




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 20
                            ั
การแทนที่ห น้า
                                              Page Replacement
                       การป้องกันการจัดสรรเกินหน่วยความจำาได้โดยการแก้ไข
                       page-fault service routine เพิ่มเข้าไปใน page replacement

                       ใช้ modify (dirty) bit ในการลด overhead ของการถ่ายหน้า
                       โดยการแก้ไขเฉพาะหน้าที่ถูกเขียนลงบนดิสก์เท่านั้น

                       Page replacement จะแยกจากกันอย่างอิสระระหว่าง logical
                       memory และ physical memory – virtual memory ขนาด
                       ใหญ่สามารถสร้างบน physical memory ที่มีขนาดเล็กกว่าได้




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 21
                            ั
Need For Page Replacement




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 22
                            ั
Basic Page Replacement

                 1. หาตำาแหน่งของ page ที่ต้องการบนดิสก์

                 2. หา free frame:
                            - ถ้ามี free frame ก็ใช้
                            - ถ้าไม่มี free frame ให้ใช้ page replacement
                       algorithm ในการเลือก victim frame

                 3. อ่าน page ที่ต้องการไปไว้บน free frame ใหม่ แล้ว Update
                       ตาราง page และ frame

                 4. เริ่มดำาเนินการกระบวนการ




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 23
                            ั
Page Replacement




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 24
                            ั
Page Replacement Algorithms

                       ต้องการให้มีอัตราการผิดหน้าตำ่าที่สุด (lowest page-fault rate)
                       ประเมิน algorithm โดยรัน reference string บนหน่วยความจำา
                       และคำานวณจำานวน page faults ของ string นั้น
                       In all our examples, the reference string is
                                   1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5.




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 25
                            ั
Graph of Page Faults Versus The Number of
                                      Frames




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 26
                            ั
First-In-First-Out (FIFO) Algorithm
                    Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
                    3 frames (3 pages สามารถอยูในหน่วยความจำา ณ เวลาใด
                                                   ่
                    เวลาหนึ่ง ต่อหนึ่งกระบวนการ)
                                                   1      1      4      5
                                                   2      2      1      3      9 page faults
                                                   3      3      2      4
                    4 frames
                                                   1      1      5     4
                                                   2      2      1     5      10 page faults
                                                   3      3      2

                                                   4      4      3
                    FIFO Replacement – Belady’s Anomaly
                           frames ยิ่งมาก  page faults ยิ่งลดลง
วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 27
                            ั
FIFO Page Replacement




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 28
                            ั
FIFO Illustrating Belady’s Anamoly




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 29
                            ั
Optimal Algorithm

                       แทนที่ page ที่จะไม่ถูกเรียกใช้อีกในเวลาอันใกล้นี้
                       4 frames example
                                       1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5

                                                         1      4
                                                         2                    6 page faults
                                                         3

                                                         4      5

                       จะแทนที่โดยวิธีใด
                       จะวัดประสิทธิภาพของอัลกอริธึมได้อย่างไร



วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 30
                            ั
Optimal Page Replacement




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 31
                            ั
Least Recently Used (LRU)
                                       Algorithm
                       Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
                                                          1     5
                                                          2

                                                          3     5      4
                                                          4     3

                       ใช้ตัวนับ (Counter implementation)
                             นับรายการ (entry) ทุก page ทีเข้ามา, ทุกครั้งที่ page ถูกอ้างอิง
                                                           ่
                             ผ่านรายการ, แล้วสำาเนาค่านาฬิกาไปยัง counter
                             เมือต้องการเปลี่ยน page ก็ให้มองหา counter เพื่อจะใช้เปลี่ยน
                                ่
                             หน้า




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 32
                            ั
LRU Page Replacement




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 33
                            ั
LRU Algorithm (Cont.)

                       ใช้แบบสแต็ก (Stack implementation) – เก็บสแต็กของ
                       หมายเลขหน้า (page numbers) ในรูปการเชื่อมโยงแบบคู่
                       (double link form):
                             Page referenced:
                                  ย้ายเพ็จนั้นไปยังด้านบน
                                  ใช้ 6 pointers ในการเปลี่ยน
                             ไม่จำาเป็นต้องค้นหาเพื่อแทนที่


                       การใช้ stack algorithm ช่วยแก้ปัญหา Belady’s Anomaly
                       แต่ต้องใช้อุปกรณ์ช่วยแทนการใช้เขียนโปรแกรมควบคุมการ
                       เรียก interrupt เอง




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 34
                            ั
Use Of A Stack to Record The Most Recent Page
                                           References




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 35
                            ั
LRU Approximation Algorithms

                     การเพิ่มบิตอ้างอิง (Additional-Reference-bits algorithm)
                            ใช้บนระบบทีไม่มอุปกรณ์ช่วย
                                          ่   ี
                            จับคู่แต่ละหน้าด้วย bit, ค่าเริ่มต้นเป็น = 0 (ยังไม่ใช้)
                            เมือหน้าถูกอ้างอิง บิตอ้างอิงกะจะถูกเปลี่ยนเป็น 1 (ใช้แล้ว)
                               ่
                            การแทนทีในระบบนี้สามารถตรวจสอบได้ว่ามีหน้าใดถูกใช้แล้วหรือ
                                       ่
                            ยัง
                     การให้โอกาสครั้งที่สอง (Second chance)
                            ใช้บิตอ้างอิง (reference bit) ใช้การแทนที่แบบนาฬิกา (Clock
                            replacement) เพื่อป้องกันการสับเปลี่ยนหน้าทีถูกเรียกใช้บ่อยออก
                                                                         ่
                            ไป
                            ถ้าหน้าถูกแทนที่ (ตามลำาดับนาฬิกา) บิตอ้างอิงจะ = 1 จากนั้น:
                                เปลี่ยนบิตกลับไปเป็น 0
                                เปลี่ยนเวลาทีเข้ามาในหน่วยความจำาให้เหมือนเพิ่งเข้ามา
                                              ่
                                ทำาการตรวจสอบหน้าอื่นๆ ตามหลักการเช่นเดียวกัน



วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 36
                            ั
Second-Chance (clock) Page-Replacement
                                   Algorithm




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 37
                            ั
Counting Algorithms

                       การใช้ตัวนับการอ้างอิงของแต่ละหน้าไว้

                       LFU (least frequently used) Algorithm: การเก็บจำานวนครั้งที่
                       หน้าถูกอ้างอิง และเลือกที่ถูกอ้างอิงน้อยที่สุดออกก่อน

                       MFU (most frequently used) Algorithm: อยู่บนสมมุติฐานที่
                       ว่า หน้าที่ถกอ้างอิงน้อยนั้นมีโอกาสที่จะถูกมากในเวลาต่อไป
                                   ู
                       เพราะอาจเป็นหน้าที่เพิ่งถูกย้ายเข้ามาในหน่วยความจำา

                       อย่างไรก็ตาม วิธีการแทนที่หน้าทั้งแบบใช้น้อยออกก่อนและแบบ
                       ใช้มากออกก่อนนั้นเป็นแนวคิดที่ไม่แตกต่างกันเท่าใดนัก
                       ประสิทธิภาพจึงขึนอยู่กับการคาดการณ์ล่วงหน้าได้ถกต้องมาก
                                        ้                                ู
                       น้อยแค่ไหน การใช้งานมีค่าใช้จ่ายสูง และสู้วิธีการแบบเหมาะ
                       ที่สุด (OPT) ไม่ได้


วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 38
                            ั
Page-Buffering Algorithm

                       ระบบที่มักเก็บหน้าว่างๆ ไว้เป็นกลุ่มๆ
                       เมื่อเกิด page fault หน้าว่างๆ หน้าหนึ่งก็จะถูกเลือกมาใช้ แต่ยัง
                       ไม่ย้ายออกไปทันที
                       ระบบจะอ่านหน้าที่ต้องการเข้ามาในเนื้อที่ว่างได้เลยโดยไม่ต้อง
                       รอให้มีการย้ายหน้าเดิมออกไปก่อน
                       ทำาให้ลดเวลาในการย้ายหน้าลงมาก เมื่อมีเวลาว่าง ระบบค่อย
                       ทำาการย้ายหน้าที่เลือกออกไปในภายหลัง จากนั้น รวมพื้นที่ว่าง
                       เข้าไว้ในกลุ่ม (clustering)




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 39
                            ั
Operating System Examples

                       Windows NT

                       Solaris 2




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 40
                            ั
Windows NT

                       ใช้ demand paging ร่วมกับ clustering โดยใส่ใน page
                       รอบๆบริเวณที่เกิดการผิดหน้า
                       กระบวนการทั้งหมดจะถูกกำาหนด working set minimum
                       และ working set maximum
                       Working set minimum คือจำานวนตำ่าสุดของหน้าอยู่ในหน่วย
                       ความจำา
                       กระบวนการหนึ่งอาจถูกกำาหนด working set maximum มีอยู่
                       หลายๆ หน้า
                       เมื่อพื้นที่ว่างในหน่วยความจำาเหลือกว่าค่าเป้าหมายที่กำาหนดไว้
                       (threshold) การตัดแต่ง working set อย่างอัตโนมัติ
                       (automatic working set trimming ) ก็จะเริ่มทำางาน เพื่อ
                       คืนพื้นที่ว่างของหน่วยความจำา
                       Working set trimming จะย้ายหน้าออกจากกระบวนการที่มีการ
                       ใช้งานหน้า working set minimum ของกระบวนการเหล่านั้น



วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 41
                            ั
Paging System ของ Windows NT



วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 42
                            ั
Address translation ของ Windows



วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 43
                            ั
Solaris 2

                       บำารุงรักษารายการของหน้าว่าง (free pages) เพื่อกำาหนดให้กับ
                       กระบวนการที่เกิดการผิดหน้า

                       Lotsfree – threshold parameter จุดเริมต้นของการค้นหาหน้า
                                                            ่

                       การค้นหาหน้าจะทำาโดยกระบวนการสลับหน้าออก (pageout
                       process)

                       Pageout scans pages using modified clock algorithm.

                       Scanrate คือ อัตราที่หน้าจะถูกสแกน มีขอบเขตตั้งแต่
                       slowscan ถึง fastscan

                       Pageout ถูกเรียกใช้บอยหรือไม่ขึ้นกับจำานวนหน่วยความจำาที่วาง
                                           ่                                     ่
                       เหลือมากน้อยเพียงใด




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 44
                            ั
Solar Page Scanner




วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 45
                            ั

More Related Content

What's hot

แรงและการเคลื่อนที่
แรงและการเคลื่อนที่แรงและการเคลื่อนที่
แรงและการเคลื่อนที่Dew Thamita
 
ไขสันหลัง
ไขสันหลังไขสันหลัง
ไขสันหลังWan Ngamwongwan
 
องค์ประกอบของหลักสูตร
องค์ประกอบของหลักสูตรองค์ประกอบของหลักสูตร
องค์ประกอบของหลักสูตรSunisa199444
 
ไตรยางศ์และการผันอักษร.ppt
ไตรยางศ์และการผันอักษร.pptไตรยางศ์และการผันอักษร.ppt
ไตรยางศ์และการผันอักษร.pptParnndaydream
 
การจัดการศึกษาแบบเรียนร่วม
การจัดการศึกษาแบบเรียนร่วมการจัดการศึกษาแบบเรียนร่วม
การจัดการศึกษาแบบเรียนร่วมguest5ec5625
 
การจัดรายการอาหาร
การจัดรายการอาหารการจัดรายการอาหาร
การจัดรายการอาหารunreunwattananapakas
 
หน่วยที่ 3 เศรษฐกิจพอเพียงกับการพัฒนาเศรษฐกิจไทย
หน่วยที่ 3 เศรษฐกิจพอเพียงกับการพัฒนาเศรษฐกิจไทยหน่วยที่ 3 เศรษฐกิจพอเพียงกับการพัฒนาเศรษฐกิจไทย
หน่วยที่ 3 เศรษฐกิจพอเพียงกับการพัฒนาเศรษฐกิจไทยPaew Tongpanya
 
DFD ระบบจองรีสอร์ทออนไลน์
DFD ระบบจองรีสอร์ทออนไลน์DFD ระบบจองรีสอร์ทออนไลน์
DFD ระบบจองรีสอร์ทออนไลน์rubtumproject.com
 
เรื่องเวกเตอร์คำนวณ
เรื่องเวกเตอร์คำนวณเรื่องเวกเตอร์คำนวณ
เรื่องเวกเตอร์คำนวณพัน พัน
 
ระบบขับถ่าย (T) 1 2560
ระบบขับถ่าย (T) 1 2560ระบบขับถ่าย (T) 1 2560
ระบบขับถ่าย (T) 1 2560Thitaree Samphao
 
ระบบประสาทส่วนกลางและรอบนอก
ระบบประสาทส่วนกลางและรอบนอกระบบประสาทส่วนกลางและรอบนอก
ระบบประสาทส่วนกลางและรอบนอกThanyamon Chat.
 
1.3 กระบวนการกลุ่ม
1.3 กระบวนการกลุ่ม1.3 กระบวนการกลุ่ม
1.3 กระบวนการกลุ่มTaweep Saechin
 
ระบบส่งกำลัง
ระบบส่งกำลังระบบส่งกำลัง
ระบบส่งกำลังGreenswat Optra
 
คัมภีร์ฉันทศาสตร์
คัมภีร์ฉันทศาสตร์คัมภีร์ฉันทศาสตร์
คัมภีร์ฉันทศาสตร์jupjiptogether
 
ระบบย่อยอาหารของสัตว์
ระบบย่อยอาหารของสัตว์ระบบย่อยอาหารของสัตว์
ระบบย่อยอาหารของสัตว์Anissa Aromsawa
 
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว  มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว  มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...กุ้ง ณัฐรดา
 
แผนการสอนคอมพิวเตอร์ ป.5
แผนการสอนคอมพิวเตอร์ ป.5แผนการสอนคอมพิวเตอร์ ป.5
แผนการสอนคอมพิวเตอร์ ป.5พิพัฒน์ ตะภา
 
ระเบียบปฏิบัตืการบริหารจัดการความเสี่ยง
ระเบียบปฏิบัตืการบริหารจัดการความเสี่ยงระเบียบปฏิบัตืการบริหารจัดการความเสี่ยง
ระเบียบปฏิบัตืการบริหารจัดการความเสี่ยงSuradet Sriangkoon
 

What's hot (20)

แรงและการเคลื่อนที่
แรงและการเคลื่อนที่แรงและการเคลื่อนที่
แรงและการเคลื่อนที่
 
ไขสันหลัง
ไขสันหลังไขสันหลัง
ไขสันหลัง
 
องค์ประกอบของหลักสูตร
องค์ประกอบของหลักสูตรองค์ประกอบของหลักสูตร
องค์ประกอบของหลักสูตร
 
ไตรยางศ์และการผันอักษร.ppt
ไตรยางศ์และการผันอักษร.pptไตรยางศ์และการผันอักษร.ppt
ไตรยางศ์และการผันอักษร.ppt
 
การจัดการศึกษาแบบเรียนร่วม
การจัดการศึกษาแบบเรียนร่วมการจัดการศึกษาแบบเรียนร่วม
การจัดการศึกษาแบบเรียนร่วม
 
การจัดรายการอาหาร
การจัดรายการอาหารการจัดรายการอาหาร
การจัดรายการอาหาร
 
หน่วยที่ 3 เศรษฐกิจพอเพียงกับการพัฒนาเศรษฐกิจไทย
หน่วยที่ 3 เศรษฐกิจพอเพียงกับการพัฒนาเศรษฐกิจไทยหน่วยที่ 3 เศรษฐกิจพอเพียงกับการพัฒนาเศรษฐกิจไทย
หน่วยที่ 3 เศรษฐกิจพอเพียงกับการพัฒนาเศรษฐกิจไทย
 
DFD ระบบจองรีสอร์ทออนไลน์
DFD ระบบจองรีสอร์ทออนไลน์DFD ระบบจองรีสอร์ทออนไลน์
DFD ระบบจองรีสอร์ทออนไลน์
 
เรื่องเวกเตอร์คำนวณ
เรื่องเวกเตอร์คำนวณเรื่องเวกเตอร์คำนวณ
เรื่องเวกเตอร์คำนวณ
 
ระบบขับถ่าย (T) 1 2560
ระบบขับถ่าย (T) 1 2560ระบบขับถ่าย (T) 1 2560
ระบบขับถ่าย (T) 1 2560
 
Jigsaw
JigsawJigsaw
Jigsaw
 
ระบบประสาทส่วนกลางและรอบนอก
ระบบประสาทส่วนกลางและรอบนอกระบบประสาทส่วนกลางและรอบนอก
ระบบประสาทส่วนกลางและรอบนอก
 
1.3 กระบวนการกลุ่ม
1.3 กระบวนการกลุ่ม1.3 กระบวนการกลุ่ม
1.3 กระบวนการกลุ่ม
 
แนวข้อสอบ 100 ข้อ
แนวข้อสอบ  100  ข้อแนวข้อสอบ  100  ข้อ
แนวข้อสอบ 100 ข้อ
 
ระบบส่งกำลัง
ระบบส่งกำลังระบบส่งกำลัง
ระบบส่งกำลัง
 
คัมภีร์ฉันทศาสตร์
คัมภีร์ฉันทศาสตร์คัมภีร์ฉันทศาสตร์
คัมภีร์ฉันทศาสตร์
 
ระบบย่อยอาหารของสัตว์
ระบบย่อยอาหารของสัตว์ระบบย่อยอาหารของสัตว์
ระบบย่อยอาหารของสัตว์
 
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว  มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว  มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...
สื่อเรื่องระบบจำนวนจริง ครูขวัญแก้ว มีเหมือน ค30207 คณิตศาสตร์เพิ่มเติม7 ชั้...
 
แผนการสอนคอมพิวเตอร์ ป.5
แผนการสอนคอมพิวเตอร์ ป.5แผนการสอนคอมพิวเตอร์ ป.5
แผนการสอนคอมพิวเตอร์ ป.5
 
ระเบียบปฏิบัตืการบริหารจัดการความเสี่ยง
ระเบียบปฏิบัตืการบริหารจัดการความเสี่ยงระเบียบปฏิบัตืการบริหารจัดการความเสี่ยง
ระเบียบปฏิบัตืการบริหารจัดการความเสี่ยง
 

Similar to 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)
6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)
6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)krissapat
 
Operating System Chapter 1
Operating System Chapter 1Operating System Chapter 1
Operating System Chapter 1Nuth Otanasap
 
Ch 1 introos
Ch 1 introosCh 1 introos
Ch 1 introosporpat21
 
Tu153 บทที่ 7 2/2560
Tu153 บทที่ 7 2/2560Tu153 บทที่ 7 2/2560
Tu153 บทที่ 7 2/2560Kasidit Chanchio
 
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)krissapat
 
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์ โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์ Peem Jirayut
 
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์Orapan Chamnan
 
Com element [compatibility mode]
Com element [compatibility mode]Com element [compatibility mode]
Com element [compatibility mode]twatfangmin
 
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)krissapat
 
3 ca-computer system structure
3 ca-computer system structure3 ca-computer system structure
3 ca-computer system structurekrissapat
 
องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์	องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์ Thanawut Rattanadon
 
หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์พัน พัน
 
4 ca-process structure
4 ca-process structure4 ca-process structure
4 ca-process structurekrissapat
 
การรวบรวมความต้องการ
การรวบรวมความต้องการการรวบรวมความต้องการ
การรวบรวมความต้องการskiats
 
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)krissapat
 
Software
SoftwareSoftware
Softwaresa
 

Similar to 6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17) (20)

6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)
6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)
6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)
 
Ch09th
Ch09thCh09th
Ch09th
 
Operating System Chapter 1
Operating System Chapter 1Operating System Chapter 1
Operating System Chapter 1
 
Ch 1 introos
Ch 1 introosCh 1 introos
Ch 1 introos
 
Tu153 บทที่ 7 2/2560
Tu153 บทที่ 7 2/2560Tu153 บทที่ 7 2/2560
Tu153 บทที่ 7 2/2560
 
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
10 ca-mass-storage system structure (wichet p.'s conflicted copy 2012-12-17)
 
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์ โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์
โครงงานคอมพิวเตอร์ เผยแพร่ความรู้ออนไลน์
 
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
 
Com element [compatibility mode]
Com element [compatibility mode]Com element [compatibility mode]
Com element [compatibility mode]
 
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)
2 ca-computer systems (wichet p.'s conflicted copy 2012-12-18)
 
Lecture9
Lecture9Lecture9
Lecture9
 
3 ca-computer system structure
3 ca-computer system structure3 ca-computer system structure
3 ca-computer system structure
 
My map OS
My map OSMy map OS
My map OS
 
องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์	องค์ประกอบของระบบคอมพิวเตอร์
องค์ประกอบของระบบคอมพิวเตอร์
 
หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์
 
4 ca-process structure
4 ca-process structure4 ca-process structure
4 ca-process structure
 
การรวบรวมความต้องการ
การรวบรวมความต้องการการรวบรวมความต้องการ
การรวบรวมความต้องการ
 
Learnning02
Learnning02Learnning02
Learnning02
 
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)
9 ca-io systems structure (wichet p.'s conflicted copy 2012-12-17)
 
Software
SoftwareSoftware
Software
 

More from krissapat

5 ca-memory structuret
5 ca-memory structuret5 ca-memory structuret
5 ca-memory structuretkrissapat
 
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)krissapat
 
8 ca-file system implementation (wichet p.'s conflicted copy 2012-12-17)
8 ca-file system implementation (wichet p.'s conflicted copy 2012-12-17)8 ca-file system implementation (wichet p.'s conflicted copy 2012-12-17)
8 ca-file system implementation (wichet p.'s conflicted copy 2012-12-17)krissapat
 
7 ca-file-system management
7 ca-file-system management7 ca-file-system management
7 ca-file-system managementkrissapat
 
5 ca-memory structuret
5 ca-memory structuret5 ca-memory structuret
5 ca-memory structuretkrissapat
 
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)krissapat
 

More from krissapat (6)

5 ca-memory structuret
5 ca-memory structuret5 ca-memory structuret
5 ca-memory structuret
 
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
 
8 ca-file system implementation (wichet p.'s conflicted copy 2012-12-17)
8 ca-file system implementation (wichet p.'s conflicted copy 2012-12-17)8 ca-file system implementation (wichet p.'s conflicted copy 2012-12-17)
8 ca-file system implementation (wichet p.'s conflicted copy 2012-12-17)
 
7 ca-file-system management
7 ca-file-system management7 ca-file-system management
7 ca-file-system management
 
5 ca-memory structuret
5 ca-memory structuret5 ca-memory structuret
5 ca-memory structuret
 
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
1 ca-cpu structure (wichet p.'s conflicted copy 2012-12-17)
 

6 ca-virtual memory structure (wichet p.'s conflicted copy 2012-12-17)

  • 1. โครงสร้า งหน่ว ยความ จำา เสมือ น Virtual Memory Structure
  • 2. Virtual Memory Background Demand Paging Process Creation Page Replacement Allocation of Frames Thrashing Operating System Examples วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 2 ั
  • 3. Learning Objectives เพื่อศึกษาความสำาคัญของหน่วยความจำาเสมือน เพื่อเข้าใจการสลับหน้าตามคำาขอทันที (demand paging) ของ หน่วยความจำาเสมือน เพื่อเข้าใจถึงความซับซ้อนและค่าใช้จ่ายในการใช้งานหน่วย ความจำาเสมือน วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 3 ั
  • 4. ความเป็น มา Background ชุดคำาสั่งที่จะถูกกระทำาการได้นั้นจะต้องอยู่ในหน่วยความจำา กายภาพเสมอ เราจำาเป็นต้องใส่พื้นที่เลขที่อยู่ของหน่วยความจำาแบบตรรกะ ทั้งหมดลงในหน่วยความจำาแบบกายภาพ (แต่ถกจำากัดด้วยขนาด ู ของพื้นที่หน่วยความจำาจริง) กรณี single program ใช้วิธการ overlay คือการทำาให้โปรแกรมทีมขนาดใหญ่กว่าพืนที่ ี ่ ี ้ ในหน่วยความจำา ให้สามารถดำาเนินได้ จัดการโดยโปรแกรมเมอร์ โดยการแบ่งโปรแกรมออกเป็นโปรแกรมย่อย (sub program) หลายๆ ส่วน และให้แต่ละส่วนมีขนาดเล็กกว่าหน่วยความจำา กรณี Multiprogram ใช้หน่วยความจำาเสมือน (virtual memory) จัดการโดย OS วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 4 ั
  • 5. ความเป็น มา Background โปรแกรมจะถูกแบ่งออกเป็น 2 ส่วน main program เป็นส่วนของโปรแกรมที่ อยูในหน่วยความจำาไปตลอดจนกระทั่งการทำางานสิ้นสุดลง และ Sub- ่ Program ในส่วนที่เหลือ จะถูกแบ่งออกเป็นส่วนย่อยๆ และจะถูกโหลดเข้าสู่ หน่วยความจำาก็ต่อเมื่อต้องการรันเท่านั้น วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 5 ั
  • 6. ความเป็น มา Background หน่ว ยความจำา เสมือ น (Virtual memory) – การแยกส่วน ของหน่วยความเชิงตรรกะ (logical memory) ของผู้ใช้ออกจาก หน่วยความจำาเชิงกายภาพ (physical memory) มีเพียงส่วนของโปรแกรมทีต้องการอยูในหน่วยความจำาเพื่อกระทำา ่ ่ การ (execution) เท่านั้น พื้นที่ (Logical address) จึงสามารถใหญ่กว่าขนาดของพืนทีหน่วย ้ ่ ความจำาเชิงกายภาพ (physical address space) ได้ ยินยอมให้มการใช้พื้นที่หน่วยความจำาร่วมกันได้ จากหลายๆ ี กระบวนการ ทำาให้มการสร้างกระบวนการขึ้นมาได้โดยสะดวก ี Virtual memory สามารถใช้งานผ่าน Demand paging Demand segmentation วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 6 ั
  • 7. Virtual Memory That is Larger Than Physical Memory วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 7 ั
  • 8. Demand Paging นำา page ไปไว้ในหน่วยความจำาเฉพาะเมื่อเวลาที่ต้องการเท่านั้น ลดการใช้ (Less I/O needed) ลดการใช้หน่วยความจำา (Less memory needed) โต้ตอบได้รวดเร็วกว่า (Faster response) รองรับผู้ใช้ได้มากกว่า (More users) Page ที่ต้องการ  ต้องการมีการอ้างอิงถึง invalid reference ⇒ ยกเลิก (abort) not-in-memory ⇒ นำาเข้าหน่วยความจำา (bring to memory) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 8 ั
  • 9. Transfer of a Paged Memory to Contiguous Disk Space วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 9 ั
  • 10. Valid-Invalid Bit จะมี valid–invalid bit เชื่อมโยงอยูในแต่ละรายการ page table ่ (1 ⇒ in-memory, 0 ⇒ not-in-memory) ต้องกำาหนดค่าเริ่มต้น valid–invalid เป็น 0 ทุกรายการ (entries) Example of a page table snapshot. Frame # valid-invalid bit 1 1 1 1 0  0 0 page table ระหว่างการแปลงเลขที่อยู่ ถ้า valid–invalid bit ใน page table entry เป็น 0 ⇒ page fault วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 10 ั
  • 11. Page Table When Some Pages Are Not in Main Memory วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 11 ั
  • 12. การผิด หน้า Page Fault ถ้าเคยมีการอ้างอิงบน page ครั้งแรกของการอ้างอิงจะ trap to OS ⇒ page fault OS จะมองหาตารางอื่นเพื่อตัดสินใจว่า Invalid reference ⇒ abort. ยังไม่มีอยูในหน่วยความจำา ่ จะหา empty frame Swap page ไปยัง frame นั้น Reset tables, validation bit = 1. เริ่มคำาสั่ง: Least Recently Used block move เพิ่มหรือลดตำาแหน่งอย่างอัตโนมัติ วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 12 ั
  • 13. Steps in Handling a Page Fault วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 13 ั
  • 14. จะเป็น อย่า งไรถ้า ไม่ม เ ฟรมว่า ง (free frame)? ี การแทนที่ Page (Page replacement) – จะค้นหาบาง page ในหน่วยความจำาที่ยงไม่ได้มีการใช้งานจริง แล้วสลับออกไป ั (swap out) algorithm performance – ต้องใช้ algorithm ทีทำาให้ผลการค้นหาจำานวน ่ การผิดหน้าเหลือน้อยทีสุด ่ บางหน้า (page) อาจมีการนำาเข้าออกหน่วยความจำาหลายครั้ง วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 14 ั
  • 15. Performance of Demand Paging Page Fault Rate 0 ≤ p ≤ 1.0 if p = 0 no page faults if p = 1, every reference is a fault Effective Access Time (EAT) EAT = (1 – p) x memory access + p (page fault overhead + [swap page out ] + swap page in + restart overhead) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 15 ั
  • 16. Demand Paging Example Memory access time = 1 microsecond 50% ของเวลาที่มีการแก้ไข page ที่ถูกแทนที่ และต้องถูกสลับ ออกไป Swap Page Time = 10 msec = 10,000 msec EAT = (1 – p) x 1 + p (15000) 1 + 15000P (in msec) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 16 ั
  • 17. การสร้า งกระบวนการ Process Creation Virtual memory ยินยอมให้ใช้ประโยชน์อย่างอื่นได้ในขณะที่ สร้างกระบวนการ - Copy-on-Write - Memory-Mapped Files วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 17 ั
  • 18. Copy-on-Write Copy-on-Write (COW) ยินยอมให้ทั้ง parent and child processes ในการกำาหนดค่า share ใน page เดียวกันในหน่วย ความจำา ถ้าแม้มีการแก้ไข page ที่ใช้ร่วมกัน ก็จะมีเพียง page นั้นที่ถก ู สำาเนาไป COW จะมีการสร้างกระบวนการที่สะดวกกว่า เช่นเดียวกับการ สำา page ที่มีการแก้ไข Free pages จะถูกจัดสรรจาก pool ของ zeroed-out pages. วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 18 ั
  • 19. Memory-Mapped Files Memory-mapped file I/O ยินยอมให้ file I/O ถูกใช้งานเหมือนรูที นการเข้าถึงหน่วยความจำาได้โดยการ mapping a disk block ไปเป็น page ในหน่วยความจำา ไฟล์จะถูกกำาหนดค่าเริ่มต้นของการอ่านโดยใช้ demand paging สัดส่วนของ page-sized ของไฟล์ที่อ่านจากระบบไฟล์ไปยัง physical page. ลำาดับย่อยของ reads/writes ไฟล์จะดำาเนินการเช่นเดียวกับการ เข้าถึงหน่วยความจำา การเข้าถึงไฟล์อย่างง่ายโดย treating file I/O ผ่านหน่วยความจำา มากกว่าการใช้ read() write() system calls. อนุญาตให้หลายกระบวนการทำาการ map ไฟล์เดียวกันให้ใช้ pages ร่วมกันในหน่วยความจำาได้อีกด้วย วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 19 ั
  • 20. Memory Mapped Files วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 20 ั
  • 21. การแทนที่ห น้า Page Replacement การป้องกันการจัดสรรเกินหน่วยความจำาได้โดยการแก้ไข page-fault service routine เพิ่มเข้าไปใน page replacement ใช้ modify (dirty) bit ในการลด overhead ของการถ่ายหน้า โดยการแก้ไขเฉพาะหน้าที่ถูกเขียนลงบนดิสก์เท่านั้น Page replacement จะแยกจากกันอย่างอิสระระหว่าง logical memory และ physical memory – virtual memory ขนาด ใหญ่สามารถสร้างบน physical memory ที่มีขนาดเล็กกว่าได้ วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 21 ั
  • 22. Need For Page Replacement วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 22 ั
  • 23. Basic Page Replacement 1. หาตำาแหน่งของ page ที่ต้องการบนดิสก์ 2. หา free frame: - ถ้ามี free frame ก็ใช้ - ถ้าไม่มี free frame ให้ใช้ page replacement algorithm ในการเลือก victim frame 3. อ่าน page ที่ต้องการไปไว้บน free frame ใหม่ แล้ว Update ตาราง page และ frame 4. เริ่มดำาเนินการกระบวนการ วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 23 ั
  • 24. Page Replacement วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 24 ั
  • 25. Page Replacement Algorithms ต้องการให้มีอัตราการผิดหน้าตำ่าที่สุด (lowest page-fault rate) ประเมิน algorithm โดยรัน reference string บนหน่วยความจำา และคำานวณจำานวน page faults ของ string นั้น In all our examples, the reference string is 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5. วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 25 ั
  • 26. Graph of Page Faults Versus The Number of Frames วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 26 ั
  • 27. First-In-First-Out (FIFO) Algorithm Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 3 frames (3 pages สามารถอยูในหน่วยความจำา ณ เวลาใด ่ เวลาหนึ่ง ต่อหนึ่งกระบวนการ) 1 1 4 5 2 2 1 3 9 page faults 3 3 2 4 4 frames 1 1 5 4 2 2 1 5 10 page faults 3 3 2 4 4 3 FIFO Replacement – Belady’s Anomaly frames ยิ่งมาก  page faults ยิ่งลดลง วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 27 ั
  • 28. FIFO Page Replacement วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 28 ั
  • 29. FIFO Illustrating Belady’s Anamoly วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 29 ั
  • 30. Optimal Algorithm แทนที่ page ที่จะไม่ถูกเรียกใช้อีกในเวลาอันใกล้นี้ 4 frames example 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 4 2 6 page faults 3 4 5 จะแทนที่โดยวิธีใด จะวัดประสิทธิภาพของอัลกอริธึมได้อย่างไร วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 30 ั
  • 31. Optimal Page Replacement วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 31 ั
  • 32. Least Recently Used (LRU) Algorithm Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5 1 5 2 3 5 4 4 3 ใช้ตัวนับ (Counter implementation) นับรายการ (entry) ทุก page ทีเข้ามา, ทุกครั้งที่ page ถูกอ้างอิง ่ ผ่านรายการ, แล้วสำาเนาค่านาฬิกาไปยัง counter เมือต้องการเปลี่ยน page ก็ให้มองหา counter เพื่อจะใช้เปลี่ยน ่ หน้า วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 32 ั
  • 33. LRU Page Replacement วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 33 ั
  • 34. LRU Algorithm (Cont.) ใช้แบบสแต็ก (Stack implementation) – เก็บสแต็กของ หมายเลขหน้า (page numbers) ในรูปการเชื่อมโยงแบบคู่ (double link form): Page referenced: ย้ายเพ็จนั้นไปยังด้านบน ใช้ 6 pointers ในการเปลี่ยน ไม่จำาเป็นต้องค้นหาเพื่อแทนที่ การใช้ stack algorithm ช่วยแก้ปัญหา Belady’s Anomaly แต่ต้องใช้อุปกรณ์ช่วยแทนการใช้เขียนโปรแกรมควบคุมการ เรียก interrupt เอง วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 34 ั
  • 35. Use Of A Stack to Record The Most Recent Page References วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 35 ั
  • 36. LRU Approximation Algorithms การเพิ่มบิตอ้างอิง (Additional-Reference-bits algorithm) ใช้บนระบบทีไม่มอุปกรณ์ช่วย ่ ี จับคู่แต่ละหน้าด้วย bit, ค่าเริ่มต้นเป็น = 0 (ยังไม่ใช้) เมือหน้าถูกอ้างอิง บิตอ้างอิงกะจะถูกเปลี่ยนเป็น 1 (ใช้แล้ว) ่ การแทนทีในระบบนี้สามารถตรวจสอบได้ว่ามีหน้าใดถูกใช้แล้วหรือ ่ ยัง การให้โอกาสครั้งที่สอง (Second chance) ใช้บิตอ้างอิง (reference bit) ใช้การแทนที่แบบนาฬิกา (Clock replacement) เพื่อป้องกันการสับเปลี่ยนหน้าทีถูกเรียกใช้บ่อยออก ่ ไป ถ้าหน้าถูกแทนที่ (ตามลำาดับนาฬิกา) บิตอ้างอิงจะ = 1 จากนั้น: เปลี่ยนบิตกลับไปเป็น 0 เปลี่ยนเวลาทีเข้ามาในหน่วยความจำาให้เหมือนเพิ่งเข้ามา ่ ทำาการตรวจสอบหน้าอื่นๆ ตามหลักการเช่นเดียวกัน วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 36 ั
  • 37. Second-Chance (clock) Page-Replacement Algorithm วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 37 ั
  • 38. Counting Algorithms การใช้ตัวนับการอ้างอิงของแต่ละหน้าไว้ LFU (least frequently used) Algorithm: การเก็บจำานวนครั้งที่ หน้าถูกอ้างอิง และเลือกที่ถูกอ้างอิงน้อยที่สุดออกก่อน MFU (most frequently used) Algorithm: อยู่บนสมมุติฐานที่ ว่า หน้าที่ถกอ้างอิงน้อยนั้นมีโอกาสที่จะถูกมากในเวลาต่อไป ู เพราะอาจเป็นหน้าที่เพิ่งถูกย้ายเข้ามาในหน่วยความจำา อย่างไรก็ตาม วิธีการแทนที่หน้าทั้งแบบใช้น้อยออกก่อนและแบบ ใช้มากออกก่อนนั้นเป็นแนวคิดที่ไม่แตกต่างกันเท่าใดนัก ประสิทธิภาพจึงขึนอยู่กับการคาดการณ์ล่วงหน้าได้ถกต้องมาก ้ ู น้อยแค่ไหน การใช้งานมีค่าใช้จ่ายสูง และสู้วิธีการแบบเหมาะ ที่สุด (OPT) ไม่ได้ วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 38 ั
  • 39. Page-Buffering Algorithm ระบบที่มักเก็บหน้าว่างๆ ไว้เป็นกลุ่มๆ เมื่อเกิด page fault หน้าว่างๆ หน้าหนึ่งก็จะถูกเลือกมาใช้ แต่ยัง ไม่ย้ายออกไปทันที ระบบจะอ่านหน้าที่ต้องการเข้ามาในเนื้อที่ว่างได้เลยโดยไม่ต้อง รอให้มีการย้ายหน้าเดิมออกไปก่อน ทำาให้ลดเวลาในการย้ายหน้าลงมาก เมื่อมีเวลาว่าง ระบบค่อย ทำาการย้ายหน้าที่เลือกออกไปในภายหลัง จากนั้น รวมพื้นที่ว่าง เข้าไว้ในกลุ่ม (clustering) วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 39 ั
  • 40. Operating System Examples Windows NT Solaris 2 วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 40 ั
  • 41. Windows NT ใช้ demand paging ร่วมกับ clustering โดยใส่ใน page รอบๆบริเวณที่เกิดการผิดหน้า กระบวนการทั้งหมดจะถูกกำาหนด working set minimum และ working set maximum Working set minimum คือจำานวนตำ่าสุดของหน้าอยู่ในหน่วย ความจำา กระบวนการหนึ่งอาจถูกกำาหนด working set maximum มีอยู่ หลายๆ หน้า เมื่อพื้นที่ว่างในหน่วยความจำาเหลือกว่าค่าเป้าหมายที่กำาหนดไว้ (threshold) การตัดแต่ง working set อย่างอัตโนมัติ (automatic working set trimming ) ก็จะเริ่มทำางาน เพื่อ คืนพื้นที่ว่างของหน่วยความจำา Working set trimming จะย้ายหน้าออกจากกระบวนการที่มีการ ใช้งานหน้า working set minimum ของกระบวนการเหล่านั้น วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 41 ั
  • 42. Paging System ของ Windows NT วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 42 ั
  • 43. Address translation ของ Windows วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 43 ั
  • 44. Solaris 2 บำารุงรักษารายการของหน้าว่าง (free pages) เพื่อกำาหนดให้กับ กระบวนการที่เกิดการผิดหน้า Lotsfree – threshold parameter จุดเริมต้นของการค้นหาหน้า ่ การค้นหาหน้าจะทำาโดยกระบวนการสลับหน้าออก (pageout process) Pageout scans pages using modified clock algorithm. Scanrate คือ อัตราที่หน้าจะถูกสแกน มีขอบเขตตั้งแต่ slowscan ถึง fastscan Pageout ถูกเรียกใช้บอยหรือไม่ขึ้นกับจำานวนหน่วยความจำาที่วาง ่ ่ เหลือมากน้อยเพียงใด วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 44 ั
  • 45. Solar Page Scanner วิเ ชษฐ์ พลายมาศ | ระบบปฏิบ ต ิก าร (OS: Operating Systems) | หน่วยความจำาเสมือน (Virtual Memory) | 45 ั