บทที่4
การจัดการหน่วยความจำ
Memory Management
Memory Management
จัดทำโดย
นาย สราวุฒิ เชื้อกสิกรรม รหัสนักศึกษา 6031280064
นาย สราวุฒิ เชื้อกสิกรรม รหัสนักศึกษา 6031280064
หน่วยความจำหลัก
คือ
แถวลำดับหรือฮาร์ดแวร์ขนาดใหญ่
ที่มีประกอบด้วยที่เก็บข้อมูลย่อยเป็น
byte หรือ word
โดยแต่ละไบต์
จะมีเลขที่บอกตำแหน่ง
(address) ของตัวเอง
การใช้งานหน่วยความจำหลักทำได้โดยการอ่านหรือเขียนข้อมูลที่ตำแหน่งต่าง
ๆ เหล่านี้
โดยปกติแล้วหน่วยประมวลผลกลางจะเป็นผู้ใช้งาน
หน่วยความจำในระบบคอมพิวเตอร์ ถือเป็นทรัพยากร (Resource) หนึ่งที่สำคัญซึ่งเมื่อกล่าวถึงหน่วยความจำในระบบคอมพิวเตอร์มักจะหมายถึงหน่วยความจำหลัก (MainMeory) หรือ หน่วยความจำแรมในไมโครคอมพิวเตอร์นั่นเอง
หน้าที่หน่วยความจำหลัก
- เก็บระบบปฏิบัติการ
- เก็บโปรแกรมของผู้ใช้
- เก็บข้อมูลที่จะใช้
- เก็บระบบปฏิบัติการ
- เก็บโปรแกรมของผู้ใช้
- เก็บข้อมูลที่จะใช้
องค์ประกอบหน่วยความจำ
- แอดเดรส (address)
- ข้อมูล (data)
- ข้อมูล (data)
ความต้องการหน่วยความจำ
- ความเร็วสูง
- มีความเสถียรสูง
- ความจุสูง
- ราคาต่ำ
- มีความเสถียรสูง
- ความจุสูง
- ราคาต่ำ
ชนิดของหน่วยความจำ
หน่วยความจำหลัก
ROM เป็นหน่วยความจำถาวร ไม่สูญเสียข้อมูลแม้ไฟดับ มักใช้เก็บข้อมูลพื้นฐานที่จำเป็น
RAM มักจะใช้เป็นหน่วยความจำหลัก มีอยู่ 2 ประเภท คือ static ram และ dynamic ram
หน่วยความจำสำรอง
ROM เป็นหน่วยความจำถาวร ไม่สูญเสียข้อมูลแม้ไฟดับ มักใช้เก็บข้อมูลพื้นฐานที่จำเป็น
RAM มักจะใช้เป็นหน่วยความจำหลัก มีอยู่ 2 ประเภท คือ static ram และ dynamic ram
หน่วยความจำสำรอง
มีความเร็วช้า เก็บไว้ได้นาน เช่น ดิสก์ ฮาร์ดดิสก์
การจัดการหน่วยความจำ(Memory Management)
การจัดสรรหน่วยความจำแบบต่อเนื่อง
- โปรแกรมหนึ่ง ๆ จะถูกโหลดลงหน่วยความจำได้ก็ต่อเมื่อมีหน่วยความจำขนาดใหญ่ที่จะวางโค้ดของโปรแกรมนั้นลงไปทั้งโปรแกรม
- โปรแกรมจะอยู่ติดต่อกันในหน่วยความจำหลักเป็นผืนเดียวกัน ไม่มีส่วนหนึ่งของโปรแกรมแยกจากกันถ้ามีพื้นที่ว่างไม่พอก็จะรอจนกว่าจะมีหน่วยความจำว่างเหลือพอ
- โปรแกรมหนึ่ง ๆ จะถูกโหลดลงหน่วยความจำได้ก็ต่อเมื่อมีหน่วยความจำขนาดใหญ่ที่จะวางโค้ดของโปรแกรมนั้นลงไปทั้งโปรแกรม
- โปรแกรมจะอยู่ติดต่อกันในหน่วยความจำหลักเป็นผืนเดียวกัน ไม่มีส่วนหนึ่งของโปรแกรมแยกจากกันถ้ามีพื้นที่ว่างไม่พอก็จะรอจนกว่าจะมีหน่วยความจำว่างเหลือพอ
การจัดสรรหน่วยความจำแบบไม่ต่อเนื่อง
โปรแกรมจะถูกแบ่งออกเป็นกลุ่มหรือส่วนย่อย ๆ หลาย ๆ ส่วน เมื่อรันโปรแกรมจะโหลดลงหน่วยความจำที่ไหนก็ได้ที่มีที่ว่างพอ แต่ละส่วนไม่จำเป็นต้องเรียงต่อเป็นผืนเดียว
โปรแกรมจะถูกแบ่งออกเป็นกลุ่มหรือส่วนย่อย ๆ หลาย ๆ ส่วน เมื่อรันโปรแกรมจะโหลดลงหน่วยความจำที่ไหนก็ได้ที่มีที่ว่างพอ แต่ละส่วนไม่จำเป็นต้องเรียงต่อเป็นผืนเดียว
การจัดการหน่วยความจำหลักแบบต่าง ๆ
การจัดการหน่วยความจำนั้นมีหลายวิธี ตั้งแต่การจัดการแบบพื้นฐาน จนถึงแบบที่ซับซ้อนการจัดการหน่วยความจำจึงมีการแบ่งออกเป็น 2 ระบบดังนี้
- ระบบโปรแกรมเดี่ยว (Monoprogramming or Single program)
- ระบบหลายโปรแกรม (Multiple program)
- ระบบโปรแกรมเดี่ยว (Monoprogramming or Single program)
- ระบบหลายโปรแกรม (Multiple program)
ระบบโปรแกรมเดี่ยว(Monoprogramming or Single program)
เป็นวิธีการจัดการหน่วยความจำที่ง่ายที่สุด เนื่องจากจะมีโปรแกรมเพียง
1.) โปรแกรมทำงานในขณะใดขณะหนึ่ง
ดังนั้นการใช้งานหน่วยความจำจะมีเพียงโปรแกรมนั้น ๆ กับระบบปฏิบัติการเท่านั้น ดังรูป
ดังนั้นการใช้งานหน่วยความจำจะมีเพียงโปรแกรมนั้น ๆ กับระบบปฏิบัติการเท่านั้น ดังรูป
จากรูปเราอาจแบ่งหน่วยความจำหลักออกเป็น 2 ส่วนคือ
ส่วนของ OS เป็นหน่วยความจำที่ถูกครอบครองโดย OS
ส่วนของผู้ใช้ (User area) คือส่วนที่สามารถนำโปรแกรมของผู้ใช้ลงไปวางได้ ซึ่งก็คือหน่วยความจำหลักทั้งหมดที่เหลือจากส่วนของ OS
ส่วนของ OS เป็นหน่วยความจำที่ถูกครอบครองโดย OS
ส่วนของผู้ใช้ (User area) คือส่วนที่สามารถนำโปรแกรมของผู้ใช้ลงไปวางได้ ซึ่งก็คือหน่วยความจำหลักทั้งหมดที่เหลือจากส่วนของ OS
เมื่อหน่วยความจำหลักถูกแบ่งออกเป็น 2 ส่วนแล้ว ตัว OS จึงจำเป็นต้องมีวิธีการป้องกันไม่ให้โปรแกรมของผู้ใช้รุกล้ำเข้ามาในส่วนของ OS
ถ้า OS ปล่อยให้ผู้ใช้เข้ามาใช้หน่วยความจำที่ OS ใช้อยู่ โปรแกรมของผู้ใช้อาจทำลายตัวโปรแกรมของ OS เสียหายจนระบบทำงานไม่ได้
ถ้า OS ปล่อยให้ผู้ใช้เข้ามาใช้หน่วยความจำที่ OS ใช้อยู่ โปรแกรมของผู้ใช้อาจทำลายตัวโปรแกรมของ OS เสียหายจนระบบทำงานไม่ได้
วิธีที่นิยมในการป้องกันการรุกล้ำได้แก่การสร้างรีจีสเตอร์ขึ้นมาในซีพียูเรียกว่ารีจีสเตอร์ขอบเขต (boundary register) รีจีสเตอร์จะทำหน้าที่เก็บค่าแอสเดรสที่เป็นรอยต่อระหว่างส่วนของ os และส่วนของผู้ใช้
ระบบหลายโปรแกรม (Multiple program)
ระบบคอมพิวเตอร์ส่วนใหญ่ในปัจจุบันอนุญาตให้มีงานหลาย ๆ งานทำงานในเวลาเดียวกัน การที่ระบบมีหลายงานทำงานพร้อมกันนั้น หมายความว่าแต่ละงานต้องถูกบันทึกอยู่ในหน่วยความจำหลัก
ดังนั้นเพื่อให้คอมพิวเตอร์สามารถทำงานหลายงานพร้อมกัน จึงจำเป็นต้องทำการแบ่งพื้นที่หน่วยความจำออกเป็นส่วน ๆ สำหรับแต่ละงานเพื่อไม่ให้ปะปนกัน
ดังนั้นเพื่อให้คอมพิวเตอร์สามารถทำงานหลายงานพร้อมกัน จึงจำเป็นต้องทำการแบ่งพื้นที่หน่วยความจำออกเป็นส่วน ๆ สำหรับแต่ละงานเพื่อไม่ให้ปะปนกัน
การแบ่งหน่วยความจำสำหรับระบบหลายโปรแกรมมี 2 แบบ
1.การแบ่งหน่วยความจำขนาดคงที่ (Fixed partition multi-programming)
2.การแบ่งหน่วยความจำขนาดไม่คงที่ (Variable partition multi-programming)
1.การแบ่งหน่วยความจำขนาดคงที่ (Fixed partition multi-programming)
2.การแบ่งหน่วยความจำขนาดไม่คงที่ (Variable partition multi-programming)
การแบ่งหน่วยความจำขนาดคงที่
วิธีนี้หน่วยความจำจะถูกแบ่งออกเป็นหลายส่วน แต่ละส่วนมีขนาด คงที่ และในแต่ละส่วนจะมีเพียงงานเดียว และการแบ่งนั้นจะเปลี่ยนแปลงอีกไม่ได้
ดังนั้นจำนวนงานที่ทำงานได้พร้อมกันจะเท่ากับจำนวนส่วนย่อยของหน่วยความจำหลัก
ดังนั้นจำนวนงานที่ทำงานได้พร้อมกันจะเท่ากับจำนวนส่วนย่อยของหน่วยความจำหลัก
การแบ่งหน่วยความจำขนาดคงที่ แบ่งได้เป็น 2 แบบ
- การแปลงและโหลดด้วยค่าสัมบูรณ์ (Absolute translation and loading)
- การแปลงและโหลดด้วยค่าสัมพัทธ์ (Relocatable translation and loading)
การแปลงและโหลดด้วยค่าสัมบูรณ์ (Absolute translation and loading)
ค่าแอดเดรสสัมบูรณ์ คือค่าแอดเดรสจริง ๆ ในหน่วยความจำหน่วยความจำหลักจะถูกแบ่งออกเป็นส่วนที่มีขนาดคงที่ และแต่ละส่วนจะมีแอดเดรสที่เป็นขอบเขตบน และล่างอยู่ ดังนั้นเมื่องานต้องการใช้หน่วยความจำหลักในส่วนย่อยใดก็ตาม OS จะต้องกำหนดแอดเดรสจริงให้กับงาน เพื่อให้งานเข้าไปครอบครองหน่วยความจำหลักในส่วนที่ถูกต้องนิยมใช้กับคิวงานที่เป็นแบบ Multiple queues
ข้อเสียของวิธีนี้คือ ถ้างานพร้อมจะรันแล้ว แต่ส่วนของหน่วยความจำหลักที่ต้องการ กำลังถูกใช้โดยงานอื่น ก็ต้องรอจนกว่างานที่ใช้หน่วยความจำที่ต้องการทำงานเสร็จสิ้น ถึงแม้ว่าส่วนอื่น ๆ จะว่างอยู่ก็ตาม ทำให้สูญเสียหน่วยความจำในส่วนอื่นโดยเปล่าประโยชน์
ถ้างานส่วนใหญ่เป็นงานที่มีขนาดเล็ก คิวของส่วนที่มีขนาดเล็กจะเต็มอยู่ตลอดเวลา ในขณะที่คิวของส่วนที่มีขนาดใหญ่ยังคงว่างอยู่ ทำให้งานที่มีขนาดเล็กจะต้องรอในคิว ในขณะที่หน่วยความจำหลักยังเหลืออยู่มาก
ถ้างานส่วนใหญ่เป็นงานที่มีขนาดเล็ก คิวของส่วนที่มีขนาดเล็กจะเต็มอยู่ตลอดเวลา ในขณะที่คิวของส่วนที่มีขนาดใหญ่ยังคงว่างอยู่ ทำให้งานที่มีขนาดเล็กจะต้องรอในคิว ในขณะที่หน่วยความจำหลักยังเหลืออยู่มาก
การแปลงและโหลดด้วยค่าสัมพัทธ์ (Relocatable translation and loading)
เพื่อแก้ปัญหาที่เกิดขึ้นในการแปลงและโหลดด้วยค่าสัมบูรณ์ จึงทำให้เกิดวิธีการที่เรียกว่าการแปลงและโหลดด้วยค่าสัมพัทธ์
งานจะถูกแปลงให้ได้แอดเดรสเป็นค่าสัมพัทธ์กับจุดเริ่มต้นของงาน จุดเริ่มต้นของงานก็คือแอดเดรส 0 นั่นเอง
ถ้างานมีขนาด 100 byte เมื่องานถูกโหลดลงในหน่วยความจำหลักจะไม่รอให้แอดเดรส 0 ถึง 100 ว่าง แต่จะโหลดลงส่วนที่มีขนาดมากกว่าหรือเท่ากับขนาดของงาน
ดังนั้นคิวงานจึงไม่จำเป็นต้องเป็น Multiple Queues ใช้เป็น Single Queues
งานจะถูกแปลงให้ได้แอดเดรสเป็นค่าสัมพัทธ์กับจุดเริ่มต้นของงาน จุดเริ่มต้นของงานก็คือแอดเดรส 0 นั่นเอง
ถ้างานมีขนาด 100 byte เมื่องานถูกโหลดลงในหน่วยความจำหลักจะไม่รอให้แอดเดรส 0 ถึง 100 ว่าง แต่จะโหลดลงส่วนที่มีขนาดมากกว่าหรือเท่ากับขนาดของงาน
ดังนั้นคิวงานจึงไม่จำเป็นต้องเป็น Multiple Queues ใช้เป็น Single Queues
วิธีการจัดคิวใช้วิธี FCFS คืองานใดมาก่อนก็มีสิทธิ์โหลดลงในส่วนของหน่วยความจำหลักที่ชี้อยู่ แต่ถ้าขนาดของงานมีขนาดใหญ่กว่าส่วนของหน่วยความจำหลักที่ชี้อยู่ OS จะข้ามงานนั้นไปทำให้กับงานอื่น ๆ ที่อยู่ถัดไป
สำหรับงานที่ถูกข้ามก็จะต้องคอยอยู่ในคิว ซึ่ง OS จะกำหนดว่างานจะถูกมองข้ามได้ไม่เกินจำนวนครั้งที่กำหนด ถ้าเกินระบบจะต้องเลือกงานนั้นเข้าไปทำงาน
สำหรับงานที่ถูกข้ามก็จะต้องคอยอยู่ในคิว ซึ่ง OS จะกำหนดว่างานจะถูกมองข้ามได้ไม่เกินจำนวนครั้งที่กำหนด ถ้าเกินระบบจะต้องเลือกงานนั้นเข้าไปทำงาน
การป้องกัน OS ในระบบหลายโปรแกรมประเภทแบ่งหน่วยความจำนิยมใช้รีจีสเตอร์ขอบเขตหลาย ๆ ตัว ส่วนย่อยแต่ละส่วนจะใช้รีจีสเตอร์ขอบเขต 2 ตัว ในการแยกแยะส่วนแต่ละส่วน เรียกว่ารีจีสเตอร์ขอบเขตบน (high boundary register) และรีจีสเตอร์ขอบเขตล่าง
(Low boundary register)
โปรแกรมของผู้ใช้สามารถข้ามเข้าไปในขอบเขตของ OS ได้โดยผ่านทางคำสั่งเรียกระบบ
โปรแกรมของผู้ใช้สามารถข้ามเข้าไปในขอบเขตของ OS ได้โดยผ่านทางคำสั่งเรียกระบบ
ข้อเสียของการแบ่งหน่วยความจำขนาดคงที่
การแบ่งหน่วยความจำขนาดคงที่เป็นวิธีการที่ง่ายและไม่ซับซ้อนต่อการสร้าง OS อย่างไรก็ตามมีข้อเสียดังนี้
พื้นที่ที่กำหนดให้มีขนาดและจำนวนที่คงที่เมื่อระบบเริ่มทำงานนั้น จะเป็นตัวจำกัดจำนวนของงานที่สามารถเข้ามาใช้ระบบได้
เนื่องจากระบบมีการกำหนดพื้นที่แบบคงที่ ดังนั้นงานที่มีขนาดเล็กจะไม่สามารถใช้พื้นที่ของหน่วยความจำได้อย่างเต็มประสิทธิภาพ
การจัดแบ่งพื้นที่แบบคงที่จะทำให้เกิดส่วนที่ไม่ถูกใช้งาน ซึ่งเราเรียกว่าเกิดการแตกกระจาย (Fragmentation) ซึ่งมีอยู่ 2 รูปแบบ
การแตกกระจายภายนอก (External fragmentation)
การแตกกระจายภายใน (Internal fragmentation)
พื้นที่ที่กำหนดให้มีขนาดและจำนวนที่คงที่เมื่อระบบเริ่มทำงานนั้น จะเป็นตัวจำกัดจำนวนของงานที่สามารถเข้ามาใช้ระบบได้
เนื่องจากระบบมีการกำหนดพื้นที่แบบคงที่ ดังนั้นงานที่มีขนาดเล็กจะไม่สามารถใช้พื้นที่ของหน่วยความจำได้อย่างเต็มประสิทธิภาพ
การจัดแบ่งพื้นที่แบบคงที่จะทำให้เกิดส่วนที่ไม่ถูกใช้งาน ซึ่งเราเรียกว่าเกิดการแตกกระจาย (Fragmentation) ซึ่งมีอยู่ 2 รูปแบบ
การแตกกระจายภายนอก (External fragmentation)
การแตกกระจายภายใน (Internal fragmentation)
การแบ่งหน่วยความจำขนาดไม่คงที่ (Variable partition multi-programming)
จากปัญหาที่พบของการทำงานของการแบ่งหน่วยความจำขนาดคงที่ ผู้ออกแบบ OS จึงได้ทำการปรับปรุงการแบ่งหน่วยความจำให้ดีขึ้น
โดยระบบจะกำหนดให้มีการแบ่งหน่วยความจำตามความต้องการของงาน และไม่มีการจำกัดขอบเขตของหน่วยความจำหลัก การแบ่งหน่วยความจำแบบนี้เรียกว่า การแบ่งหน่วยความจำขนาดไม่คงที่
โดยระบบจะกำหนดให้มีการแบ่งหน่วยความจำตามความต้องการของงาน และไม่มีการจำกัดขอบเขตของหน่วยความจำหลัก การแบ่งหน่วยความจำแบบนี้เรียกว่า การแบ่งหน่วยความจำขนาดไม่คงที่
จากรูปจะเห็นว่าเมื่อระบบทำงานไปได้สักระยะหนึ่ง เราจะพบช่องว่างเกิดขึ้นอย่างมากมายในหน่วยความจำหลัก ซึ่งจะทำให้การใช้งานหน่วยความจำหลักมีประสิทธิภาพลดลง
เราเรียกช่องว่างเล็ก ๆ เหล่านี้ว่า การแตกกระจายภายนอก (External fragmentation)
ดังนั้นการที่จะวางโปรเซสลงในหน่วยความจำหลักนั้นจะต้องมีการตัดสินใจที่ดี ซึ่ง OS เรียกว่า การจัดยุทธวิธีการวาง
เราเรียกช่องว่างเล็ก ๆ เหล่านี้ว่า การแตกกระจายภายนอก (External fragmentation)
ดังนั้นการที่จะวางโปรเซสลงในหน่วยความจำหลักนั้นจะต้องมีการตัดสินใจที่ดี ซึ่ง OS เรียกว่า การจัดยุทธวิธีการวาง
การจัดยุทธวิธีการวาง
เมื่อมีโปรเซสถูกส่งเข้ามาในหน่วยความจำหลัก ซึ่งขณะนั้นหน่วยความจำหลักอาจมีช่องว่างเกิดขึ้นกระจายไปทั่ว
การจะจัดว่าโปรเซสใดควรจะวางไว้ในช่องว่างใด มีวิธีการอยู่ 3 แบบดังนี้
เลือกช่องว่างที่พบก่อน (First-Fit)
เลือกช่องว่างที่เหมาะสม (Best-Fit)
เลือกช่องว่างที่ใหญ่ที่สุด (Worst-Fit)
การจะจัดว่าโปรเซสใดควรจะวางไว้ในช่องว่างใด มีวิธีการอยู่ 3 แบบดังนี้
เลือกช่องว่างที่พบก่อน (First-Fit)
เลือกช่องว่างที่เหมาะสม (Best-Fit)
เลือกช่องว่างที่ใหญ่ที่สุด (Worst-Fit)
วิธีการนี้ OS จะตรวจหาช่องว่างในหน่วยความจำ เมื่อใดที่พบช่องว่างที่มีขนาดใหญ่พอที่จะวางโปรเซสใหม่ลงไปได้ OS จะเลือกช่องว่างนั้นทันที ทำให้การเลือกช่องว่างทำได้รวดเร็ว
วิธีการนี้ OS จะตรวจหาช่องว่างที่มีอยู่ในหน่วยความจำทั้งหมด แล้วเลือกเอาช่องว่างที่เมื่อวางโปรเซสลงไปแล้วจะเกิดช่องว่างขนาดเล็กที่สุด
การเลือกช่องว่างแบบนี้จะตรงกันข้ามกับแบบที่ 2 OS จะเลือกช่องว่างที่เมื่อวางโปรเซสลงไปแล้วจะเกิดช่องว่างขนาดใหญ่ที่สุด
การรวมโฮล (Coalescing Holes)
เมื่อมีช่องว่าง 2 ช่องติดกันในหน่วยความจำ OS สามารถที่จะรวมช่องว่างทั้ง 2 นี้เป็นช่องว่างขนาดใหญ่ช่องเดียว ซึ่งเราเรียกว่า การรวมโฮล (Coalescing Holes)
การบีบอัดหน่วยความจำ (Storage Compaction)
ถึงแม้ว่าจะมีการรวมโฮลเกิดขึ้น แต่ช่องว่างที่ไม่อยู่ติดกันก็ยังคงมีกระจายอยู่ในหน่วยความจำ
ซึ่งการมีช่องว่างขนาดเล็ก ๆ หลายช่อง เมื่อนำมารวมกันก็จะทำให้เกิดช่องว่างขนาดใหญ่ซึ่งมากพอสำหรับ 1 โปรเซสได้
OS จะต้องสามารถที่จะทำการบีบอัดหน่วยความจำ โดยย้ายเอาหน่วยความจำที่ถูกครอบครองโดยโปรเซสต่าง ๆ ไปอยู่ชิดติดกันที่ด้านใดด้านหนึ่ง ซึ่งจะทำให้เกิดช่องว่างใหญ่เพียงช่องเดียว จึงทำให้โปรเซสอื่น ๆ สามารถเข้ามาใช้หน่วยความจำที่เหลือได้
ซึ่งการมีช่องว่างขนาดเล็ก ๆ หลายช่อง เมื่อนำมารวมกันก็จะทำให้เกิดช่องว่างขนาดใหญ่ซึ่งมากพอสำหรับ 1 โปรเซสได้
OS จะต้องสามารถที่จะทำการบีบอัดหน่วยความจำ โดยย้ายเอาหน่วยความจำที่ถูกครอบครองโดยโปรเซสต่าง ๆ ไปอยู่ชิดติดกันที่ด้านใดด้านหนึ่ง ซึ่งจะทำให้เกิดช่องว่างใหญ่เพียงช่องเดียว จึงทำให้โปรเซสอื่น ๆ สามารถเข้ามาใช้หน่วยความจำที่เหลือได้
ข้อเสียของการบีบอัดหน่วยความจำ
ระบบจะต้องหยุดการทำงานของโปรเซสทุกโปรเซสไว้ชั่วขณะหนึ่งเพื่อที่จะทำการบีบอัด
ซึ่งอาจจะต้องใช้เวลามากทำให้การทำงานของระบบช้าลง โดยเฉพาะกับการทำงานในระบบโต้ตอบ (Interactive)
ระบบจะต้องหยุดการทำงานของโปรเซสทุกโปรเซสไว้ชั่วขณะหนึ่งเพื่อที่จะทำการบีบอัด
ซึ่งอาจจะต้องใช้เวลามากทำให้การทำงานของระบบช้าลง โดยเฉพาะกับการทำงานในระบบโต้ตอบ (Interactive)
อ้างอิง
http://bc.feu.ac.th/pichate/os_c8/chapter8.htm
https://sites.google.com/site/operatingsytemsyvc/bth-thi3-kar-cadkar-hnwy-khwam-ca
http://www.chantra.sru.ac.th/OS.html
ไม่มีความคิดเห็น:
แสดงความคิดเห็น