Upload
prang558
View
81
Download
0
Embed Size (px)
DESCRIPTION
os
Citation preview
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 1
การจดัการหน่วยความจ า Memory Management
นงลกัษณ ์พรมทอง และวิเชษฐ ์พลายมาศ
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 2
Virtual Memory
• Background
• Demand Paging
• Process Creation
• Page Replacement
• Allocation of Frames
• Thrashing
• Operating System Examples
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 3
Learning Objectives
• เพื่อศกึษาความส าคญัของหน่วยความจ าเสมือน
• เพื่อเข้าใจการสลบัหน้าตามค าขอทนัที (demand paging) ของหน่วยความจ าเสมือน
• เพื่อเข้าใจถึงความซบัซ้อนและคา่ใช้จ่ายในการใช้งานหน่วยความจ าเสมือน
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 4
ความเป็นมา Background
• ชดุค าสัง่ท่ีจะถกูกระท าการได้นัน้จะต้องอยูใ่นหน่วยความจ ากายภาพเสมอ
• เราจ าเป็นต้องใสพ่ืน้ท่ีเลขท่ีอยูข่องหน่วยความจ าแบบตรรกะทัง้หมดลงในหน่วยความจ าแบบกายภาพ (แตถ่กูจ ากดัด้วยขนาดของพืน้ท่ีหน่วยความจ าจริง)
• กรณี single program – ใช้วิธีการ overlay คือการท าให้โปรแกรมท่ีมีขนาดใหญ่กวา่พืน้ท่ีในหน่วยความจ า ให้สามารถด าเนินได้ จดัการโดย
โปรแกรมเมอร์
– โดยการแบง่โปรแกรมออกเป็นโปรแกรมย่อย (sub program) หลายๆ สว่น และให้แตล่ะสว่นมีขนาดเลก็กวา่หนว่ยความจ า
• กรณี Multiprogram – ใช้หน่วยความจ าเสมือน (virtual memory) จดัการโดย OS
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 5
ความเป็นมา Background
โปรแกรมจะถกูแบง่ออกเป็น 2 สว่น main program เป็นสว่นของโปรแกรมที่อยูใ่นหน่วยความจ าไปตลอดจนกระท่ังการท างานสิน้สดุลง และ Sub-Program ในสว่นทีเ่หลอื จะถกูแบง่ออกเป็นสว่นยอ่ยๆ และจะถกูโหลดเขา้สู่
หน่วยความจ าก็ตอ่เมือ่ตอ้งการรันเทา่นัน้
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 6
ความเป็นมา Background
• หน่วยความจ าเสมือน (Virtual memory) – การแยกสว่นของหน่วยความเชิงตรรกะ (logical memory) ของผู้ใช้ออกจากหน่วยความจ าเชิงกายภาพ (physical memory) – มีเพียงส่วนของโปรแกรมท่ีต้องการอยู่ในหน่วยความจ าเพ่ือกระท าการ (execution) เท่านัน้
– พืน้ท่ี (Logical address) จงึสามารถใหญ่กว่าขนาดของพืน้ท่ีหน่วยความจ าเชิงกายภาพ (physical address space) ได้
– ยินยอมให้มีการใช้พืน้ท่ีหน่วยความจ าร่วมกนัได้ จากหลายๆ กระบวนการ
– ท าให้มีการสร้างกระบวนการขึน้มาได้โดยสะดวก
• Virtual memory สามารถใช้งานผ่าน – Demand paging
– Demand segmentation
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 7
Virtual Memory That is Larger Than Physical Memory
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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) | การจัดการหน่วยความจ า (Memory Management) | 9
Transfer of a Paged Memory to Contiguous Disk Space
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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.
• ระหว่างการแปลงเลขท่ีอยู่ ถ้า valid–invalid bit ใน page table entry เป็น 0 page fault
1
1
1
1
0
0
0
Frame # valid-invalid bit
page table
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 11
Page Table When Some Pages Are Not in Main Memory
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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) | การจัดการหน่วยความจ า (Memory Management) | 13
Steps in Handling a Page Fault
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 14
จะเป็นอยา่งไรถา้ไม่มีเฟรมวา่ง (free frame)?
• การแทนท่ี Page (Page replacement) – จะค้นหาบาง page ในหน่วยความจ าท่ียงัไมไ่ด้มีการใช้งานจริง แล้วสลบัออกไป (swap out) – algorithm
– performance – ต้องใช้ algorithm ท่ีท าให้ผลการค้นหาจ านวนการผิดหน้าเหลือน้อยท่ีสดุ
• บางหน้า (page) อาจมีการน าเข้าออกหน่วยความจ าหลายครัง้
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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) | การจัดการหน่วยความจ า (Memory Management) | 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) | การจัดการหน่วยความจ า (Memory Management) | 17
การสร้างกระบวนการ Process Creation
• Virtual memory ยินยอมให้ใช้ประโยชน์อยา่งอ่ืนได้ในขณะท่ีสร้างกระบวนการ
- Copy-on-Write
- Memory-Mapped Files
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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) | การจัดการหน่วยความจ า (Memory Management) | 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) | การจัดการหน่วยความจ า (Memory Management) | 20
Memory Mapped Files
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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) | การจัดการหน่วยความจ า (Memory Management) | 22
Need For Page Replacement
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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) | การจัดการหน่วยความจ า (Memory Management) | 24
Page Replacement
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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) | การจัดการหน่วยความจ า (Memory Management) | 26
Graph of Page Faults Versus The Number of Frames
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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 สามารถอยู่ในหน่วยความจ า ณ เวลาใดเวลาหนึง่ ต่อหนึง่กระบวนการ) • 4 frames
• FIFO Replacement – Belady’s Anomaly – frames ย่ิงมาก page faults ย่ิงลดลง
1
2
3
1
2
3
4
1
2
5
3
4
9 page faults
1
2
3
1
2
3
5
1
2
4
5 10 page faults
4 4 3
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 28
FIFO Page Replacement
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 29
FIFO Illustrating Belady’s Anamoly
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 30
Optimal Algorithm
• แทนท่ี page ท่ีจะไม่ถกูเรียกใช้อีกในเวลาอนัใกล้นี ้
• 4 frames example 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
• จะแทนท่ีโดยวิธีใด • จะวดัประสทิธิภาพของอลักอริธึมได้อยา่งไร
1
2
3
4
6 page faults
4 5
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 31
Optimal Page Replacement
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 32
Least Recently Used (LRU) Algorithm
• Reference string: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
• ใช้ตวันบั (Counter implementation) – นบัรายการ (entry) ทกุ page ท่ีเข้ามา, ทกุครัง้ท่ี page ถกูอ้างอิงผ่านรายการ, แล้วส าเนาคา่นาฬิกาไปยงั counter
– เมื่อต้องการเปลี่ยน page ก็ให้มองหา counter เพ่ือจะใช้เปลี่ยนหน้า
1
2
3
5
4
4 3
5
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 33
LRU Page Replacement
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 34
LRU Algorithm (Cont.)
• ใช้แบบสแต็ก (Stack implementation) – เก็บสแตก็ของหมายเลขหน้า (page numbers) ในรูปการเช่ือมโยงแบบคู ่(double link form): – Page referenced:
• ย้ายเพ็จนัน้ไปยงัด้านบน
• ใช้ 6 pointers ในการเปลี่ยน
– ไม่จ าเป็นต้องค้นหาเพ่ือแทนท่ี
• การใช้ stack algorithm ช่วยแก้ปัญหา Belady’s Anomaly • แตต้่องใช้อปุกรณ์ช่วยแทนการใช้เขียนโปรแกรมควบคมุการเรียก
interrupt เอง
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 35
Use Of A Stack to Record The Most Recent Page References
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 36
LRU Approximation Algorithms • การเพิ่มบิตอ้างอิง (Additional-Reference-bits
algorithm) – ใช้บนระบบท่ีไม่มีอปุกรณ์ช่วย – จบัคูแ่ตล่ะหน้าด้วย bit, คา่เร่ิมต้นเป็น = 0 (ยงัไม่ใช้) – เมื่อหน้าถกูอ้างอิง บิตอ้างอิงกะจะถกูเปลี่ยนเป็น 1 (ใช้แล้ว) – การแทนท่ีในระบบนีส้ามารถตรวจสอบได้วา่มีหน้าใดถกูใช้แล้วหรือยงั
• การให้โอกาสครัง้ท่ีสอง (Second chance) – ใช้บิตอ้างอิง (reference bit) ใช้การแทนท่ีแบบนาฬิกา (Clock replacement) เพ่ือป้องกนั
การสบัเปลี่ยนหน้าท่ีถกูเรียกใช้บอ่ยออกไป – ถ้าหน้าถกูแทนท่ี (ตามล าดบันาฬิกา) บิตอ้างอิงจะ = 1 จากนัน้:
• เปลี่ยนบิตกลบัไปเป็น 0 • เปลี่ยนเวลาท่ีเข้ามาในหน่วยความจ าให้เหมือนเพ่ิงเข้ามา • ท าการตรวจสอบหน้าอื่นๆ ตามหลกัการเช่นเดียวกนั
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 37
Second-Chance (clock) Page-Replacement Algorithm
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 38
Counting Algorithms
• การใช้ตวันบัการอ้างอิงของแตล่ะหน้าไว้
• LFU (least frequently used) Algorithm: การเก็บจ านวนครัง้ท่ีหน้าถกูอ้างอิง และเลือกท่ีถกูอ้างอิงน้อยท่ีสดุออกก่อน
• MFU (most frequently used) Algorithm: อยูบ่นสมมตุิฐานท่ีวา่ หน้าท่ีถกูอ้างอิงน้อยนัน้มีโอกาสท่ีจะถกูมากในเวลาตอ่ไปเพราะอาจเป็นหน้าท่ีเพิ่งถกูย้ายเข้ามาในหน่วยความจ า
• อยา่งไรก็ตาม วิธีการแทนท่ีหน้าทัง้แบบใช้น้อยออกก่อนและแบบใช้มากออกก่อนนัน้เป็นแนวคิดท่ีไมแ่ตกตา่งกนัเท่าใดนกั ประสทิธิภาพจงึขึน้อยูก่บัการคาดการณ์ลว่งหน้าได้ถกูต้องมากน้อยแคไ่หน การใช้งานมีคา่ใช้จ่ายสงู และสู้วิธีการแบบเหมาะท่ีสดุ (OPT) ไมไ่ด้
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 39
Page-Buffering Algorithm
• ระบบท่ีมกัเก็บหน้าวา่งๆ ไว้เป็นกลุม่ๆ
• เม่ือเกิด page fault หน้าวา่งๆ หน้าหนึง่ก็จะถกูเลือกมาใช้ แตย่งัไม่ย้ายออกไปทนัที
• ระบบจะอา่นหน้าท่ีต้องการเข้ามาในเนือ้ท่ีวา่งได้เลยโดยไม่ต้องรอให้มีการย้ายหน้าเดมิออกไปก่อน
• ท าให้ลดเวลาในการย้ายหน้าลงมาก เม่ือมีเวลาวา่ง ระบบคอ่ยท าการย้ายหน้าท่ีเลือกออกไปในภายหลงั จากนัน้ รวมพืน้ท่ีวา่งเข้าไว้ในกลุม่ (clustering)
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 40
Operating System Examples
• Windows NT
• Solaris 2
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 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) | การจัดการหน่วยความจ า (Memory Management) | 42
Paging System ของ Windows NT
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 43
Address translation ของ Windows
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 44
Solaris 2
• บ ารุงรักษารายการของหน้าวา่ง (free pages) เพ่ือก าหนดให้กบักระบวนการท่ีเกิดการผิดหน้า
• Lotsfree – threshold parameter จดุเร่ิมต้นของการค้นหาหน้า
• การค้นหาหน้าจะท าโดยกระบวนการสลบัหน้าออก (pageout process)
• Pageout scans pages using modified clock algorithm.
• Scanrate คือ อตัราท่ีหน้าจะถกูสแกน มีขอบเขตตัง้แต ่slowscan ถงึ fastscan
• Pageout ถกูเรียกใช้บอ่ยหรือไมข่ึน้กบัจ านวนหน่วยความจ าท่ีวา่งเหลือมากน้อยเพียงใด
วเิชษฐ ์พลายมาศ | ระบบปฏบิตักิาร (OS: Operating Systems) | การจัดการหน่วยความจ า (Memory Management) | 45
Solar Page Scanner