ใบงานที่5 ระบบหน่วยความจำเสมือน
โดยนายพลวัต เทพศร รหัสนักศีกษา6031280058

ระบบหน่วยความจำเสมือน(Virtual Memory)
ประเภทของการจัดการหน่วยความจำ



การจัดการหน่วยความจำ

ระบบหน่วยความจำเสมือน (Virtual Memory)
การจัดการหน่วยความจำสามารถแบ่งออกเป็น 2 ประเภทใหญ่ ๆ
-ระบบหน่วยความจำจริง
-ขนาดของโปรแกรมจะต้องไม่ใหญ่กว่าขนาดของหน่วยความจำที่มีอยู่ ลบด้วยขนาดของหน่วยความจำที่เป็นส่วนของ OS
-ระบบหน่วยความจำเสมือน
-ขนาดของโปรแกรมจะมีขนาดเท่าใดก็ได้

ระบบหน่วยความจำเสมือน (Virtual Memory)
แนวคิดของหน่วยความจำเสมือน
ผู้เขียนโปรแกรมหรือผู้ใช้จะไม่ถูกจำกัดในเรื่องของขนาดของหน่วยความจำอีกต่อไป
OS จะจัดการให้ผู้ใช้สามารถใช้หน่วยความจำได้มากกว่าหน่วยความจำจริงที่มีอยู่
โปรแกรมทั้งโปรแกรมโดยส่วนใหญ่ไม่ได้ถูกใช้งานพร้อมกันทั้งหมด ซึ่งการทำงานของโปรแกรมจะเริ่มทำงานจากส่วนต้นโปรแกรม แล้วค่อย ๆ เลื่อนลงมาจนกระทั่งถึงท้ายโปรแกรม
ในขณะที่โปรแกรมกำลังทำงานอยู่ที่ส่วนต้นโปรแกรม ที่ปลายโปรแกรมก็ยังไม่ถูกใช้งาน เมื่อโปรแกรมทำงานมาถึงส่วนท้าย ๆ โปรแกรม ส่วนต้น ๆ โปรแกรมก็ไม่ถูกใช้งาน
ดังนั้นในช่วงที่โปรแกรมทำงานอยู่ที่ส่วนต้น ๆ ก็ไม่มีความจำเป็นต้องโหลดเอาส่วนท้าย ๆ โปรแกรมลงไปในหน่วยความจำให้เปลืองเนื้อที่
เมื่อโปรแกรมทำงานมาจนถึงส่วนที่ยังไม่ได้โหลดเข้าไปในหน่วยความจำ OS จะจัดการดึงเอาส่วนนั้นมาจากหน่วยความจำรอง
โดยที่อาจจะโหลดไปทับส่วนต้น ๆ ของโปรแกรมที่อยู่ในหน่วยความจำ หรือโหลดลงไปในส่วนอื่น ๆ ของหน่วยความจำก็ได้
จากหลักการดังกล่าวเราจึงสามารถรันโปรแกรมที่มีขนาดใหญ่กว่าหน่วยความจำที่มีอยู่ได้
การแปลงแอดเดรส (Address Mapping)
เนื่องจากขนาดของโปรแกรมมีขนาดใหญ่กว่าขนาดของหน่วยความจำ ดังนั้นจึงต้องมีการอ้างอิงแอดเดรสระหว่างแอดเดรสของหน่วยความจำจริงกับแอดเดรสของโปรแกรม
แอดเดรสจริง (Real Address หรือ Physical Address) หมายถึงแอดเดรสในหน่วยความจำจริงเท่านั้น
แอดเดรสเสมือน (Virtual Address หรือ Logical Address) หมายถึงแอดเดรสที่โปรแกรมอ้างถึง
ดังนั้นจึงต้องมีกลไกการแปลงแอดเดรสจากแอดเดรสเสมือนให้เป็นแอดเดรสจริง ณ.ตำแหน่งที่โปรแกรมส่วนนั้นถูกวางลงไป ซึ่งเราเรียกว่าการแปลงส่งแอดเดรส (Address Mapping)

เทคนิคการแปลงแอดเดรสมีอยู่หลายวิธี แต่วิธีที่นิยมใช้กันอย่างแพร่หลายคือ dynamic address translation (DAT)
วิธีการที่จะจัดการหน่วยความจำจริงให้สามารถทำงานโปรแกรมที่มีขนาดใหญ่ จะใช้หลักการแบ่งโปรแกรมออกเป็นส่วนย่อย ๆ หลาย ๆ ส่วนเรียกว่าบล็อก (Block)
ขนาดของบล็อกแบ่งออกเป็น 2 แบบคือทุกบล็อกมีขนาดเท่ากัน หรือบล็อกมีขนาดไม่เท่ากัน ดังนั้นระบบหน่วยความจำเสมือนจึงแบ่งได้เป็น 2 แบบ
หน่วยความจำเสมือนระบบหน้า (Paging system)
หน่วยความจำเสมือนระบบเซกเมนต์ (Segment system)
ระบบหน่วยความจำเสมือนจึงแบ่งได้เป็น 2 แบบ
หน่วยความจำเสมือนระบบหน้า (Paging system)
หน่วยความจำเสมือนระบบเซกเมนต์ (Segment system)
การแปลงส่งแอดเดรส
1.การแปลงส่งแบบตรง (direct mapping)
2.การแปลงส่งแบบสาระ(associative mapping)
3.การแปลงส่งแบบผสมระหว่างสาระและแบบตรง combined associative/direct mapping
หน่วยความจำเสมือนระบบหน้า (Paging system)
เป็นการจัดแบ่งโปรแกรมออกเป็นบล็อกที่มีขนาดเท่า ๆ กันทุกบล็อก โดยจะเรียกบล็อกแต่ละบล็อกว่าหน้า (Page)
ตัวอย่างการทำงานในระบบหน้า
ระบบมีหน่วยความจำขนาด 100 Kbyte = 100,000 Byte = 105 Byte
ต้องการรันโปรแกรมที่มีขนาด 1000 Kbyte = 1,000,000 Byte = 106 Byte

สมมุติ OS แบ่งโปรแกรมออกเป็นหน้าย่อย โดยที่แต่ละหน้า (Page) มีขนาด 1 Kbyte = 1,000 Byte = 103 Byte
ต้องการรันโปรแกรม 1000 Kbyte ดังนั้นโปรแกรมจะถูกแบ่งออกเป็น 1000 หน้า (1000 Page) ดังรูป


จากรูปเราสามารถแบ่งแอดเดรสเสมือนออกเป็น 2 ส่วน
ส่วนที่ 1 จะเป็นค่าที่บ่งบอกหมายเลขหน้า
ส่วนที่ 2 จะเป็นค่าที่บ่งบอกค่าแอดเดรสภายในหน้านั้น ๆ ซึ่งมีชื่อเรียกว่าดีสเพลซเมนต์ (Displacement)
ตัวอย่างเช่น แอดเดรสเสมือนที่ 243765 มีความหมายว่าอยู่ในหน้าที่ 243 และมีดีสเพลสเมนต์เป็น 765
สำหรับในหน่วยความจำจริง OS จะแบ่งออกเป็นหน้าย่อยเหมือนกัน โดยที่แต่ละหน้า (Page) มีขนาดเท่ากับหน้าของหน่วยความจำเสมือนคือ 1 Kbyte = 1,000 Byte = 103 Byte
ดังนั้นหน่วยความจำจริงจะถูกแบ่งออกเป็น 100 หน้า (100 Page) ดังรูป

โปรแกรมของผู้ใช้ไม่ว่าจะมีขนาดใหญ่เท่าใด จะต้องถูกเก็บอยู่ในหน่วยความจำรอง ซึ่งโดยส่วนมากได้แก่ ดิสก์ เนื่องจากมีความจุสูง
เมื่อผู้ใช้สั่งรันโปรแกรม OS จะโหลดเอาโปรแกรมจากดิสก์เข้าไปในหน่วยความจำครั้งละ 1 หน้า นั่นคือ 1 หน้าในโปรแกรมก็จะเข้าไปใช้เนื้อที่ในหน่วยความจำ 1 หน้าเช่นกัน
เมื่อโปรแกรมหนึ่งครอบครองหน้าใดในหน่วยความจำแล้ว โปรแกรมอื่นจะใช้หน้านั้นอีกไม่ได้
โปรแกรมจะครอบครองหน่วยความจำจริงเป็นจำนวนเต็มของหน้า
ดังนั้นต้องมีวิธีการแปลงแอดเดรสจากแอดเดรสเสมือนเป็นแอดเดรสจริง
การแปลงแอดเดรสในระบบหน้า
OS จะสร้างตารางไว้สำหรับโปรเซส คือ ตารางหน้า (Page table)
สมมุติว่าหน่วยความจำเสมือนมีขนาด 1000 หน้า และหน่วยความจำจริงมีขนาด 100 หน้า
ตารางหน้าก็จะมีขนาด 1000 ช่อง ได้แก่ช่องที่ 000-999
ช่องที่ 000 สำหรับหน้าที่ 000
ช่องที่ 001 สำหรับหน้าที่ 001
ในตารางหน้าจะมี 3 คอลัมภ์

คอลัมภ์ที่ 1 จะบอกแอดเดรสของหน้านั้น ๆ ที่อยู่ในดิสก์เพื่อที่จะได้รู้ว่าหน้าต่าง ๆ ของโปรแกรมเก็บไว้ที่หน้าใดของดิสก์
คอลัมภ์ที่ 2 จะบอกว่าหน้านั้น ๆ อยู่ในหน่วยความจำจริงหรือไม่
ถ้าค่าเป็น 0 หมายถึง หน้านั้นไม่ได้อยู่ในหน่วยความจำจริง (อยู่ในหน่วยความจำสำรอง)
ถ้าค่าเป็น 1 หมายถึง หน้านั้นอยู่ในหน่วยความจำจริง
คอลัมภ์ที่ 3 จะบอกถึงแอดเดรสเริ่มต้นของหน้าในหน่วยความจำจริง คือหมายเลขหน้าในหน่วยความจำจริงตามด้วยดีสเพรสเมนต์
ถ้าต้องการทราบว่าแอดเดรสเสมือน 123983 ไปอยู่ ณ. ตำแหน่งใดในหน่วยความจำจริง
1. OS จะนำเอาแอดเดรสเสมือนมาหาค่าหมายเลขหน้าและดีสเพลซเมนต์ ในกรณีนี้ หมายเลขหน้าคือ 123 และดีสเพลซเมนต์คือ 983
2. OS จะตรวจสอบที่ตารางหน้าในช่องที่ 123
3. อ่านค่าคอลัมภ์ที่ 2 ในตารางหน้าช่องที่ 123 ว่ามีค่า 1 หรือ 0 ในกรณีนี้มีค่าเป็น 1 (แสดงว่าเก็บอยู่ในหน่วยความจำจริง)
ถ้าต้องการทราบว่าแอดเดรสเสมือน 123983 ไปอยู่ ณ. ตำแหน่งใดในหน่วยความจำจริง
4.  OS จะอ่านค่าในคอลัมภ์ที่ 3 ของตารางหน้าเพื่อหาแอดเดรสเริ่มต้นของหน้าในหน่วยความจำจริง ซึ่งค่าคอลัมภ์ 3 คือ 54000
5. นำเอาค่าในคอลัมภ์ที่ 3 มารวมกับดีสเพรสเมนต์ จะได้แอดเดรสในหน่วยความจำจริงที่ตรงกับแอดเดรสเสมือน (ซึ่งค่าคอลัมภ์ที่3 คือ 54000 ค่าดีสเพรสเมนต์คือ 983 ค่าที่ได้คือ   54000+983=54983
6. ดังนั้น  แอดเดรสเสมือน 123983  จะอยู่ที่
หน้า 54 ของหน่วยความจำจริง และมี
ค่าดีสเพรสเมนต์ คือ 983

กรณีข้อมูลไม่ได้อยู่ในหน่วยความจำจริง (อยู่ในหน่วยความจำสำรอง)
1. OS จะนำเอาแอดเดรสเสมือนมาหาค่าหมายเลขหน้าและดีสเพลซเมนต์ ในกรณีนี้ หมายเลขหน้าคือ 123 และดีสเพลซเมนต์คือ 983 OS จะตรวจสอบที่ตารางหน้าในช่องที่ 123
2. อ่านค่าคอลัมภ์ที่ 2 ในตารางหน้าช่องที่ 123 ว่ามีค่า 1 หรือ 0 ในกรณีนี้มีค่าเป็น 0 (แสดงว่าเก็บอยู่ในหน่วยความจำสำรอง)
3. OS จะอ่านค่าคอลัมภ์ที่ 1 ซึ่งเป็นแอดเดรสในดิสก์ ในดิสก์เป็นจำนวน 1 หน้า (1 Kbyte ) (ค่าแอดเดรสในดิสก์คือ 5146789)
4. OS จะไปหาหน้าที่ว่างในหน่วยความจำจริง (หน้าที่ว่างคือหน้าที่ 03000)
กรณีข้อมูลไม่ได้อยู่ในหน่วยความจำจริง (อยู่ในหน่วยความจำสำรอง)
5. นำข้อมูลที่อ่านมาจากดิสก์ไปวางไว้ในหน่วยความจำจริง
6. OS จะทำการแก้ไขข้อมูลในตารางหน้าช่องที่ 123 โดยเปลี่ยนค่าคอลัมภ์ที่ 2 เป็น 1
7. ใส่ค่าหน้าที่หามาได้ของหน่วยความจำจริงบวกกับตำแหน่งเริ่มต้น (000) ของดีสเพรสเมนต์ลงในคอลัมภ์ที่ 3 ของตารางหน้า (ค่าแอดเดรสจริง 03983 (03000+983) ซึ่งตรงกับแอดเดรสเสมือน 123983

กรณีถ้าไม่มีหน้าว่างในหน่วยความจำจริง OS ต้องเลือกเอาหน้าหนึ่งออกจากหน่วยความจำจริง
หน้าใดจะถูกเลือกออก OS จะมีวิธีการที่เรียกว่า การสับเปลี่ยนหน้า (Page Replacement)
หน้าที่ถูกเลือกออก OS จะทำการบันทึกข้อมูลและสถานะปัจจุบันของหน้านั้นกลับลงในดิสก์ ณ.ตำแหน่งแอดเดรสของดิสก์ตามตารางหน้า จากนั้นจึงโหลดหน้าใหม่ทับลงไป
แก้ไขข้อมูลในตารางหน้าของทั้งของหน้าที่ถูกเขียนทับและหน้าที่โหลดเข้าไปใหม่
การสับเปลี่ยนหน้า (Page Replacement)
เมื่อเกิดความผิดพร่องของหน้าในระบบหน้า และหน่วยความจำไม่มีหน้าใดว่างอยู่เลย
ก่อนที OS จะโหลดเอาหน้าใหม่เข้ามาในหน่วยความจำนั้น OS  ต้องตัดสินใจก่อนว่าควรจะเลือกหน้าใดเพื่อที่จะวางหน้าใหม่ทับลงไป
สิ่งที่ OS ใช้ในการตัดสินใจเลือกหน้าเรียกว่า การสับเปลี่ยนหน้า Page Replacement หรือยุทธวิธีการแทนที่(replacement strategy)
การสับเปลี่ยนหน้า (Page Replacement)
การสับเปลี่ยนหน้ามีวิธีการ 5 วิธีดังนี้
การสับเปลี่ยนหน้าแบบสุ่ม (Random) ทุกหน้ามีโอกาสถูกเลือกเท่ากันหมด
การสับเปลี่ยนหน้าแบบมาก่อนออกก่อน (First in First out :FIFO)
การสับเปลี่ยนหน้าแบบหน้าที่ถูกใช้น้อยที่สุดออกก่อน (Not frequently used :NFU)
การสับเปลี่ยนหน้าแบบหน้าใดที่ไม่ถูกใช้นานที่สุดออกก่อน (Least recently used :LRU)
การสับเปลี่ยนหน้าแบบหน้าใดไม่ได้ถูกใช้งานออกก่อน (Not recently used :NUR)
การแปลงแอดเดรสในระบบ Segment
หมายเลขหน้าจากแอดเดรสเสมือนถูกส่งเข้าไปตรวจสอบในตารางที่เรียกว่า ตารางหน้าแบบสาระ(associative page table)พร้อมกันทุกช่อง
จะได้ค่าแอดเดรสเริ่มต้นของหน้าในหน่วยความจำจริงที่เก็บหน้านี้เอาไว้ออกมาทันที
แอดเดรสที่ได้นี้ก็จะนำไปบวกดีสเพลซเมนต์ผลลัพธ์ที่ได้ก็คือแอดเดรสจริงในหน่วยความจำ

ตารางหน้าแบบสาระ(associative page table)
การแปลงส่งแบบผสมระหว่างแบบสาระและแบบตรง (combined associative/direct mapping)

หน่วยความจำเสมือนระบบเซกเมนต์(Segment System)
มีลักษณะการทำงานคล้ายกับระบบหน้า (Page System) ต่างกันตรงที่ขนาดของบล็อกไม่จำเป็นต้องเท่ากัน
ตารางเซกเมนต์ (Segment table) จะมีคอลัมน์มากกว่าตารางหน้าอยู่ 1 คอลัมน์ใช้เก็บขนาดของเซกเมนต์นั้นไว้ เพื่อให้ OS ทราบว่าแต่ละเซกเมนต์มีขนาดเท่าใด
การอ่านหรือเขียนข้อมูลจากหน่วยความจำรองและการหาเนื้อที่ในหน่วยความจำจริงจะกระทำตามขนาดของเซกเมนต์ เช่นถ้าเซกเมนต์มีขนาด 5 Kbytes การโหลดจากดิสก์ต้องโหลดข้อมูลขึ้นมา 5 Kbytes ในขณะเดียวกันก็ต้องหาเนื้อที่ว่างในหน่วยความจำที่มีขนาด 5 Kbytes ด้วยเช่นกัน

หน่วยความจำเสมือนระบบผสมหน้าและเซกเมนต์
ระบบจะแบ่งหน่วยความจำออกเป็นหน้าที่มีขนาดเท่ากัน
ในโปรแกรมของผู้ใช้ จะถูกแบ่งออกเป็นเซกเมนต์
ภายในเซกเมนต์จะถูกแบ่งออกเป็นหลายๆหน้า
ดังนั้นขนาดของเซกเมนต์จะเป็นจำนวนเท่าของหน้า
แต่ละเซกเมนต์ของโปรแกรมไม่จำเป็นต้องอยู่เรียงกันในหน่วยความจำ
แต่ละหน้าในเซกเมนต์เดียวกันก็ไม่จำเป็นต้องอยู่เรียงติดกันในหน่วยความจำจริง
การผสมเอาระบบหน้าและเซกเมนต์เข้าด้วยกันทำให้ประสิทธิภาพการทำงานของระบบดีขึ้น
ระบบผสมนี้ แอดเดรสเสมือนจะแบ่งออกเป็น 3 ส่วน คือ หมายเลขหน้าเซกเมนต์ หมายเลขหน้า และดีสเพลซเมนต์

นำหมายเลขเซกเมนต์ (S)ของแอดเดรสเสมือนไปหาแอดเดรสของตารางหน้าที่เก็บอยู่ในตารางเซกเมนต์
เมื่อทราบว่าตารางหน้าอยู่ที่ใดในหน่วยความจำแล้ว
ใช้หมายเลขหน้า P เพื่อหาแอดเดรสของหน้า P’ในหน่วยความจำ
 นำค่าแอดเดรสนี้บวกกับดีสเพลซเมนต์ก็จะได้แอดเดรสจริงในหน่วยความจำ

สมมุติว่าโปรเซสหนึ่งมี 3 เซกเมนต์ (0-2)
เซกเมนต์ 0 และ 1 มี 5 หน้า และเซกเมนต์ 2 มี 10 หน้า แต่ละหน้ามีขนาด 100 ไบต์ (00-99) ดังนั้นดีสเพลซเมนต์เป็นเลข 2 หลัก
สมมติว่าต้องการแปลงแอดเดรสเสมือน 1490 เป็นแอดเดรสจริง
หมายเลขเซกเมนต์คือ 1 หมายเลขหน้าคือ 4 ดีสเพลซเมนต์คือ 90
5. ขั้นแรกอ่านค่าที่เก็บไว้ในช่อง 1 ของตารางเซกเมนต์ ได้ค่า 900 หมายความว่าตารางหน้าของเซกเมนต์ 1 อยู่ที่แอดเดรส 900
6. ต่อมาตรวจสอบค่าในช่องที่ 4 ของตารางหน้าที่แอดเดรส 900 เพื่อหาดูว่าหน้า 4 ของเซกเมนต์ 1 เก็บอยู่ที่ใดในหน่วยความจำ
7. เมื่อได้ค่าแอดเดรสหน้าในหน่วยความจำแล้ว (500)ก็นำไปบวกกับดีสเพลซเมนต์ก็จะได้ค่าแอดเดรสจริงในหน่วยความจำ คือ 590
ยุทธวิธีการเฟตซ์
ยุทธวิธีการเฟตซ์ (Fetch Strategy) หมายถึงการโหลดหน้าหรือเซกเมนต์จากดิสก์เข้าไปในหน่วยความจำ แบ่งออกได้เป็น 2 วิธี คือ
–การเฟตซ์แบบต้องการ (demand fetch) OS  จะโหลดเฉพาะหน้าหรือเซกเมนต์ ที่ต้องการใช้เท่านั้นเข้าไปในหน่วยความจำ
–การเฟตซ์แบบคาดเดา (anticipate fetch) จะมีการคาดเดาว่าหน้าหรือ เซกเมนต์ไหนจะถูกใช้เป็นหน้าหรือเซกเมนต์ต่อไป และจะโหลดหน้าหรือเซกเมนต์นั้นเข้าไปไว้ในหน่วยความจำล่วงหน้า (ก่อนเกิดการใช้งานจริง)ทำให้โปรแกรมทำงานได้เร็วขึ้น
ลำดับชั้นของหน่วยความจำ
ระบบหน่วยความจำเสมือน สามารถทำให้ผู้ใช้ใช้หน่วยความจำขนาดใหญ่กว่าหน่วยความจำจริงได้ ก็เพราะอาศัยการเก็บข้อมูล(หรือโปรแกรม)ไว้ในหน่วยความจำรอง ลักษณะการเคลื่อนย้ายข้อมูลจะมีการส่งไปมาระหว่างหน่วยความจำรอง กับหน่วยความจำหลัก ลักษณะเช่นนี้เรียกว่าหน่วยความจำ 2 ระดับ หมายถึงว่าข้อมูลมีการขนย้ายจากหน่วยความจำประเภทหนึ่งไปยังหน่วยความจำอีกประเภทหนึ่ง

ลำดับชั้นของหน่วยความจำ
มีการพัฒนาหน่วยความจำให้เป็นลำดับขั้นมากกว่า 1 หรือ 2 ระดับ
หน่วยความจำแคช(cache memory) จึงได้ถูกพัฒนาขึ้นมาใช้งาน แคชมีความเร็วกว่าหน่วยความจำแรมหลายเท่า แคชจะอยู่ระหว่างซีพียูกับหน่วยความจำหลัก
เมื่อซีพียูต้องการข้อมูล
ซีพียูกำหนดตำแหน่งของข้อมูลที่ต้องการด้วยแอดเดรส ค่าแอดเดรสนี้จะถูกนำไปตรวจสอบในแคชด้วยความเร็วสูง
ถ้าในแคชมีข้อมูลในตำแหน่งที่บ่งโดยแอดเดรสซีพียูก็จะได้รับข้อมูลในแอดเดรสนั้นจากแคชทันที
แต่ถ้าไม่มีข้อมูลนั้นจะถูกส่งมาจากหน่วยความจำหลักมาเก็บลงในแคชก่อนแล้วค่อยส่งไปให้ซีพียู
การขนย้ายข้อมูลระหว่างแคชกับแรม
มีลักษณะการทำงานเหมือนกับการขนย้ายข้อมูลระหว่างดิสก์กับแรมในระบบหน่วยความจำเสมือน
ความแตกต่างกันระหว่างแคชกับแรม
ในการขนย้ายข้อมูลเป็นไปโดยวงจรทางฮาร์ดแวร์ ไม่มีส่วนเกี่ยวข้องกับโปรแกรมใดๆทั้งสิ้น(รวมทั้ง OS เองด้วย)ซีพียูบางตัวถูกสร้างขึ้นโดยมีแคชติดมาด้วย ทำให้การทำงานของซีพียูมีความเร็วสูงขึ้น
ระบบหน่วยความจำ 3 ระดับ โดยใช้ Cache

Quiz
การจัดการหน่วยความจำเสมือนกับหน่วยความจำหลักแตกต่างกันอย่างไร
จงเปรียบเทียบการทำหน่วยความจำเสมือนระบบหน้าและหน่วยความจำเสมือนระบบเซกเมนต์
นักศึกษาคิดว่าทำไมจึงต้องทำหน่วยความจำเสมือน
หน่วยความจำ cache มีประโยชน์อย่างไร
5. ระบบการแบ่งหน่วยความจำเสมือนระบบ page กับ ระบบ Segment แตกต่างกันอย่างไร
6. การแปลงส่งแอดเดรส address Mapping คืออะไร
7. การสับเปลี่ยนหน้ามีกี่แบบอะไรบ้าง
8. ระบบหน่วยความจำแบบ 2 ระดับกับ 3 ระดับแตกต่างกันอย่างไร
9. แอดเดรสเสมือนที่ 123456 มีความหมายอย่างไร
10. จงอธิบายภาพต่อไปนี้




ขอขอบคุณข้อมูลจาก
www.chantra.sru.ac.th/os.html

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้