หน่วยความจำเสมือน Virtual Memory.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
เรื่อง การแก้ไขปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ
Advertisements

การงานอาชีพและเทคโนโลยี เรื่อง อุปกรณ์คอมพิวเตอร์
Introduction to C Introduction to C.
การบวกจำนวนสองจำนวนที่มีผลบวกไม่เกิน 9
Process Synchronization
กระบวนการ (Process).
ระบบปฏิบัติการ อ. รวินทร์ ไชยสิทธิพร.
โครงสร้างของระบบปฏิบัติการ Operating System Structure
ระบบมัลติโปรแกรมมิ่ง (Multiprogramming System)
ข้อตกลงในการเรียน พื้นฐานที่จำเป็นสำหรับนำไปใช้ในเรื่อง
กลุ่มสาระการเรียนรู้การงานอาชีพและเทคโนโลยี
ธรรมชาติและลักษณะของภาษา
ขั้นตอนในการทำวิจัย.
การออกแบบการวิจัยการเขียนเค้าโครงการวิจัย
ป.6 บทที่ 1 “จำนวนนับ และการบวก การลบ การคูณ การหาร”
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
Software คือ ชุดคำสั่งหรือ ขั้นตอนการทำงานของคอมพิวเตอร์
โดย นางสาวกนกอร ศิริอำนาจ รหัสนิสิต กลุ่ม 2 Detailed VM Example.
MS Excel Excel เป็นโปรแกรมประเภท สเปรยชีต (Speadsheet) หรือโปรแกรมตาราง งาน ซึ่งจะเก็บข้อมูลต่าง ๆ ลงบน แผ่นตารางงาน คล้ายกับการเขียน ข้อมูลลงไปในสมุดที่มีการตีช่องตาราง.
การจัดการหน่วยความจำ Memory Management
จำนวนนับ และการบวก การลบ การคูณ การหารจำนวนนับ
บทที่ 2 หลักการแก้ปัญหา
หลักการทำงานคอมพิวเตอร์
Microsoft Word Part I Government Savings Bank Computer Trainging Í
การวางแผนและการดำเนินงาน
Poster Presentation โดย สำหรับ การประชุม สคร.5 รศ.นพ.สมพนธ์ ทัศนิยม
ลำดับการทำงานหน่วยความจำ
บทที่ 2 การทำงานของ PC.
การทำงานของคอมพิวเตอร์
โครงสร้างการทำงานของ OS
การใช้สมอง #2 อ. รวินทร์ ไชยสิทธิพร.
Critical-Section Problem
Introduction to Cache Memory Systems
คู่มือการใช้การเขียนเรียงความ โดยใช้โปรแกรม PowerPoint
เศษส่วน.
เมนบอร์ด (mainboard). เมนบอร์ด (mainboard) Mainboard             Mainboard หรือ mother board ถือได้ว่าเป็นอุปกรณ์ชิ้นสำคัญไม่แพ้กับ CPU เพราะหน้าทีหลัก.
Memory Management ในยุคก่อน
บทที่ 8 File Management. ประเด็นที่ต้องพิจารณา ถ้าต้องการเก็บข้อมูลจะเก็บข้อมูลไว้ที่ไหน สามารถเก็บข้อมูลตรงไปยัง media โดยไม่ต้อง จัดรูปแบบการเก็บได้หรือไม่
บทที่ 7 การเรียงลำดับภายนอก External sorting
บทที่ 3 การวิเคราะห์ Analysis.
ทำดีไม่ขึ้น ทำให้มากขึ้น
เรื่องการออกแบบฐานข้อมูล
DEADLO CK นางสาวเบญจวรรณ จิตร ถวิล วันนี้เริ่มต้นเรียนบทที่ 7 หน้า 237 ในตำรา เรียนจะเกี่ยวกับ deadlocks คือ สิ่งที่รู้อยู่แล้ว คือ สิ่งที่ทำให้แอพพลิเคชั่นหรือบางครั้งถ้า.
VMVM. นี่คือเอกสารที่นำเสนออย่างเป็นลำดับ สำหรับตัวอย่างการทำงานของ page fault ISR ที่สนับสนุนหน่วยความจำ เสมือน เราจะเคลื่อนย้าย dirty bit จาก page table.
Vm.odp. Detailed VM Example ตัวอย่างการทำงานของ page fault ISR ที่ จะสนับสนุนการทำงานของหน่วยความจำ เสมือน โดยการย้ายบิตที่ไม่จำเป็นออก จากหน้าเว็บ เนื่องจากว่ามันทำให้สับสน.
วิชา เทคโนโลยีสารสนเทศ เรื่อง. หลักการทำงาน และ
Lecture 2 แก้ไขปัญหาด้วย OOP (Solving problems using OOP in Java)
การทำงานของคอมพิวเตอร์
Operating System.
A Comparison on Quick and Bubble sort on large scale data
ขั้นตอนและหลักการวิเคราะห์
บทที่ 3 การจ่ายงาน (Process Management).
หลักสูตรสู่ความสำเร็จใน 90 วัน
สรุป แนวคิด “ การเรียนรู้ ” (Learning) (Additional A1) Key word ที่สำคัญที่สุดของ เรื่อง “ คุณภาพ การศึกษา ” สรุปโดย นายไพโรจน์ พิทักษ์ทวยหาญ ศึกษานิเทศก์
หลักการแก้ปัญหา
กลวิธีการสอนคณิตศาสตร์ระดับประถมศึกษา
การพัฒนานวัตกรรมการศึกษา
หลักการเขียนโปรแกรม ( )
นายณัฐวุฒิ ปานแก้ว รหัส 039 คอม ปวช 1/2
โรงเรียนสายมิตรเทคโนโคราช
ความรู้พื้นฐานเกี่ยวกับการโปรแกรมคอมพิวเตอร์
นางสาวกนกอร ศิริอำนาจ กลุ่ม 2.  บทที่ 7 หน้า 237 ในหนังสือเรียนโอเอส ใน บทนี้จะเป็นเรื่องเกี่ยวกับ deadlocks คือ สิ่งที่น่าจะ รู้อยู่แล้ว ก็คือ.
ความหมาย รูปแบบหนึ่งของบทเรียน คอมพิวเตอร์ช่วยสอนซึ่ง มีการออกแบบบทเรียน โดยมีเป้าหมายที่จะเสนอ ข้อคำถามในรูปแบบต่าง ๆเพื่อให้ผู้เรียนฝึกปฏิบัติ
โรงเรียนวังไกลกังวล หัวหิน
เรื่อง การพัฒนาบทเรียนคอมพิวเตอร์ช่วยสอน วิชาการใช้โปรแกรมกราฟิก
การทำงานของระบบคอมพิวเตอร์
Deadloc ks. วันนี้เราเริ่มต้นเรียนบทที่ 7 เริ่มในหน้า 237 ในตำรา เรียนของคุณ. บทนี้จะเกี่ยวกับ deadlocks คือ สิ่งที่คุณรู้, มันคือ สิ่งที่ทำให้ application.
ส่วนประกอบของคอมพิวเตอร์
บทที่ 3 การจัดการหน่วยความจำ (Memory Management)
Virtual Memory Why? The need of memory more than the available physical memory. Process 3 Physical Memory Process 2 Process 1 Process 4.
ใบสำเนางานนำเสนอ:

หน่วยความจำเสมือน Virtual Memory

Virtual Memory เป็นการสร้างภาพให้ OS มองเห็น RAM มีมากแบบไม่จำกัด แต่ในความเป็นจริง RAM อาจจะมีน้อยก็ได้ ดังนั้น จะนำเอาสื่อสำรองข้อมูลหรือ Harddisk มาช่วยในการทำงานนั่นเอง Magic... Plenty of RAM RAM O.S. +

หลักการ หาก RAM พอก็ใช้ RAM หากเต็มก็ใช้ Disk วิเคราะห์ Hey! Give me some places หาก RAM พอก็ใช้ RAM หากเต็มก็ใช้ Disk วิเคราะห์ ลองวิเคราะห์เหตุการณ์ดังนี้ ว่าจะเกิดอะไรขึ้น 1. มี RAM มากและเปิดโปรแกรมมาน้อย 2. มี RAM มากและเปิดโปรแกรมมาก 3. มี RAM น้อยและเปิดโปรแกรมมาก Where ? Little RAM

Demand Paging เป็นวิธีที่นิยมมากที่สุด ทำงานได้ดี (Performance ดี) หลักการ แบ่งโปรเซสออกเป็น Page และแบ่งพื้นที่ RAM ออกเป็น Frame ส่วน Harddisk ก็จะแบ่งเป็น Page เช่นกัน Disk Physical Memory Logical Address Of process Frame Page Page

Logical Address เป็นมุมมองที่โปรเซสมองเห็น Address ของตนเอง จะใช้หลักการของ Paging โดยจะเริ่ม Page แรกที่ Page 0 Page A B 1 C 2

Page Table เก็บข้อมูลว่า Page แต่ละ Page นั้น Valid หรือไม่ Valid = อยู่ใน Physical Memory แล้ว Invalid = ไม่อยู่ใน Physical Memory Page Frame Valid-Invalid bit 4 V I 3 1 2 ดูหน้าต่อไป ->

จาก Page Table 1 Physical Memory 2 C 3 4 A 5

Page Fault เป็นหลักการที่บอกว่า “ขณะนี้ Page นี้ไม่อยู่ใน RAM” จะมีการส่งสัญญาณ Interrupt ไปที่ CPU เพื่อโหลดข้อมูลที่ต้องการนั้นลงไป Logical Address It’s not in RAM Page A Page Fault Running B 1 C 2

ยามปกติ มันก็คือไฟล์ นั่นเอง ข้อมูลทั้งหมดของโปรเซสจะอยู่ใน Disk ก่อนการ Run ในลักษณะของ Page แต่ละ Page มีขนาดที่เท่ากัน (ขนาดเท่ากับเฟรม) มันก็คือไฟล์ นั่นเอง A B C D E F

เมื่อถูกเรียกให้ทำงาน จะเริ่ม Run ที่ Page แรกก่อน ใน Logical Address ซึ่งจริงๆแล้วอยู่ใน Disk ดังนั้น Page แรกก็จะเกิด Page Fault ทันที จะโหลด Page แรกมาอยู่ใน RAM และทำงานต่อไป หากมี Page Fault ก็จะทำแบบเดิม ในความเป็นจริง งานไม่จำเป็นต้องเรียงลำดับของ Page เช่น 0->1->2 เพราะอาจมีการกระโดดข้ามเพจได้ หรือบางเพจอาจไม่ถูกเรียกเลยก็ได้

หาก RAM เต็ม Victim จะทำการเลือกหา “เหยื่อ” (Victim) O จะทำการเลือกหา “เหยื่อ” (Victim) เพื่อทำการแทนที่ Page นั้น (Page Replacement) K 1 Physical Memory S 2 Hey the victim You must go out now! C 3 4 A Victim R 5 Another page coming

เกมจับกลุ่ม Tu ให้ น.ศ. แบ่งกลุ่ม 5 คน แล้วสอนทบทวนเรื่องนี้ต่อกัน โดยสอนกันคนละ 2 นาที สลับกันไปเรื่อยๆ ระหว่างสอนสามารถมีการถามได้ ใครสอนติดขัดจะถูกจดประวัติไว้ เมื่อครบ 20 นาที ใครถูกจดแต้มสูงสุดจะต้องออกมาทำท่า “เดินเป็ด” หน้าห้อง

แบบฝึกหัด จงทำแบบฝึกหัดดังนี้ แล้วส่งอาจารย์ (เขียนลงกระดาษ) 1. มีข้อมูลดังนี้ 2. การเลือก Victim Page น่าจะมีหลัการคิดอย่างไร Page Table *จงวาดรูปแสดงแผนภาพของ RAM ให้ 1 page มีขนาด 500 Bytes Page Frame Valid-invalid bit 8 V 4 I 3 *หากลำดับการทำงานของ Page เป็นดังนี้ 0->2->3->1 แต่ละ Page ใช้เวลาทำงาน Page ละ 10 ms จะเกิด Page Fault ขึ้นที่เวลาเท่าไรจากเมื่อเริ่มทำงาน 1 2 3

ทดลอง 1. ลองเปิดโปรแกรมขึ้นมาเป็นจำนวนมาก 2. คลิ้กที่ไอคอนของโปรแกรมที่ Task Bar สลับไปสลับมาอย่างรวดเร็ว 3. สังเกตที่ไฟฮาร์ดดิสก์ 4. ไป Download File ที่เว็บอาจารย์ ชื่อไฟล์ Coolsysteminfo.exe 5. เปิดโปรแกรม ทำซ้ำข้อที่ 1->2 แล้วดูที่การทำงานของโปรแกรม 6. สรุปผลแล้วส่งรายงานการทดลอง

อัลกอริธึมของการหาเหยื่อ จากที่กล่าวมาแล้วว่า หาก RAM เต็มจะต้องทำการแทนที่ Page นั้น เราจะมีวิธีการใดบ้างในการเลือกเพจเหยื่อที่จะถูกแทนที่ 1. FIFO 2. LRU 3. Optimal

อัลกอริธึม FIFO ย่อมาจาก First-in First-out หรือ มาก่อน ออกก่อน เพจใดเข้ามาใน RAM ก่อน เมื่อ RAM เต็มก็ต้องออกจาก RAM ก่อนเช่นกัน

อัลกอริธึม Optimal เป็นอัลกอริธึมที่ดีที่สุดในทางอุดมคติ แต่ในทางปฏิบัติทำได้ยาก หลักการ => เพจใดจะใช้อีกในอนาคตอันใกล้ ก็จะเก็บเพจนั้นไว้

อัลกอริธึม LRU ย่อมาจาก Least Recently Used เป็นอัลกอริธึมที่เหมาะสมที่สุด ในทางปฏิบัติ หลักการ => ที่ผ่านมาเพจใดถูกเรียกใช้เป็นปัจจุบันน้อยที่สุด จะต้องกลายเป็นเหยื่อ

ภาวะ Thrashing เป็นภาวะที่ระบบหยุดการทำงานไปชั่วขณะ เกิดจากมี Page Fault เกิดขึ้นตลอดเวลา ทำให้มีการ Swap in และ Swap out เป็นจำนวนมาก เกิด Thrashing CPU Utilization ยิ่งสลับโปรแกรมมาก ยิ่งเสี่ยงต่อ Thrashing Degree of multiprogramming

สาเหตุของการเกิด Thrashing การทำงานของโปรแกรมจะมีธรรมชาติของมัน อย่างที่กล่าวมาแล้วว่าโปรแกรมสามารถกระโดดไป-มาได้ เมื่อกระโดดไป-มา หากข้อมูลของโปรเซสนั้นไม่อยู่ใน RAM ก็ต้อง Swap in เข้ามา ส่วนใหญ่แล้ว พื้นที่ไหนถูกเรียกก็จะทำงานอยู่ในบริเวณใกล้ๆกัน เรียกว่า การอ้างถึงใกล้ๆ (Locality of Reference) ดังนั้น ถ้าเรารู้ Locality of Reference ของแต่ละโปรเซสเราก็สามารถ Plan การใช้งาน RAM ของมันได้

Working Set Model เป็นวิธีการที่จะหาขอบเขตการทำงานของกลุ่มย่อยๆ (Locality of Reference) ภายในโปรเซส เริ่มโดยการเขียน Reference String ก่อน Reference String ก็คือหมายเลขของ Page ทั้งหมดที่โปรเซสจะเรียกใช้เรียงตามลำดับ ตัวอย่าง 2 6 1 5 7 7 7 7 5 1 6 2 3 4 1 2 3 4 1 2 3 4 4 4 3 4 4 4 4 1 3 2 หลังจากนั้น มองหา Working Set 2 6 1 5 7 7 7 7 5 1 6 2 3 4 1 2 3 4 1 2 3 4 4 4 3 4 4 4 4 1 3 2 Working Set เหมือนเป็นหน้าต่าง จะเลื่อนไปทางด้านข้าง เพื่อหากลุ่มของ Page ที่จะโหลดเข้ามาใน RAM พร้อมกัน ดังนั้น หากขนาดของ Working Set ไม่พอดีจะเกิดการ Swap มาก

Demand Segmentation เป็นการพัฒนาจาก Demand Paging เริ่มทำงานที่ Main Segment เมื่อเกิด Segment Fault ก็จะ Swap in เอา Segment ที่ต้องการเข้ามาใน RAM หลังจากนั้นจะทำงานต่อไป วิธีนี้จะใช้ RAM มากกว่าแบบ Demand Paging แต่การ Thrashing จะเกิดขึ้นได้ยาก