SlideShare a Scribd company logo
1 of 54
5653204 สถาปัตยกรรมคอมพิวเตอร์และระบบปฏิบัติการ
5653205 ปฏิบัติการสถาปัตยกรรมคอมพิวเตอร์และระบบปฏิบัติการ
1
การจัดการหน่วยความจา
หน่วยความจาหลัก
•หน้าที่หน่วยความจาหลัก
•เก็บระบบปฏิบัติการ
•เก็บโปรแกรมของผู้ใช ้
•เก็บข ้อมูลที่จะใช ้
หน่วยความจาหลัก
•องค์ประกอบหน่วยความจา
•แอดเดรส (ADDRESS)
•ข ้อมูล (DATA)
3
หน่วยความจาหลัก
• ความต ้องการหน่วยความจา
• ความเร็วสูง
• มีความเสถียรสูง
• ความจุสูง
• ราคาต่า
4
ชนิดของ
หน่วยความจา
หน่วยความจาหลัก
• ROM เป็นหน่วยความจาถาวร ไม่สูญเสียข้อมูลแม้
ไฟดับ มักใช้เก็บข้อมูลพื้นฐานที่จาเป็น
• RAM มักจะใช้เป็นหน่วยความจาหลัก มีอยู่ 2 ประเภท
คือ static ram และ dynamic ram
หน่วยความจาสารอง
• มีความเร็วช้า เก็บไว้ได้นาน เช่น ดิสก์ ฮาร์ดดิสก์
การจัดการหน่วยความจา (Memory Management)
 หน่วยความจาหลักเป็นศูนย์กลางของการทางานต่าง ๆ
ของระบบคอมพิวเตอร์ในปัจจุบัน
 หน่วยความจาหลักคือพื้นที่เก็บข้อมูลขนาดใหญ่
ประกอบด้วย
 พื้นที่เก็บข้อมูลย่อย มีหน่วยเป็น Byte
 ตาแหน่งหรือที่อยู่ของพื้นที่ย่อย (Address)
Memory
1
2
3
การจัดการหน่วยความจา (Memory Management)….ต่อ
 ส่วนของ OS ที่ทาหน้าที่จัดการกับหน่วยความจาได้แก่ ตัว
จัดการหน่วยความจา (Memory Manager) ซึ่งมีหน้าที่ต่าง ๆ
ดังนี้
 ตรวจสอบว่าส่วนใดของหน่วยความจาที่กาลังถูกใช้งาน ส่วนใดว่าง
 จัดหน่วยความจาให้กับงานที่ทางาน
 ส่งหน่วยความจาคืนสู่ระบบเมื่องานเสร็จ
 จัดการสลับหน่วยความจาหลัก กับพื้นที่ฮาร์ดดิสก์ เมื่อ
หน่วยความจาหลักมีขนาดเล็กเกินไปที่จะให้งานทางานได้
การจัดการ
หน่วยความจา
(MEMORY
MANAGEMENT)
8
การจัดสรรหน่วยความจา
แบบต่อเนื่อง
การจัดสรรหน่วยความจา
แบบไม่ต่อเนื่อง
การจัดการหน่วยความจา
(MEMORY MANAGEMENT) … ต่อ
•การจัดสรรหน่วยความจาแบบต่อเนื่อง
•โปรแกรมหนึ่ง ๆ จะถูกโหลดลงหน่วยความจาได้ก็ต่อเมื่อ
มีหน่วยความจาขนาดใหญ่ที่จะวางโค้ดของโปรแกรมนั้น
ลงไปทั้งโปรแกรม
•โปรแกรมจะอยู่ติดต่อกันในหน่วยความจาหลักเป็นผืน
เดียวกัน ไม่มีส่วนหนึ่งของโปรแกรมแยกจากกัน
•ถ้ามีพื้นที่ว่างไม่พอก็จะรอจนกว่าจะมีหน่วยความจาว่าง
เหลือพอ
การจัดการหน่วยความจา
(MEMORY MANAGEMENT) … ต่อ
•การจัดสรรหน่วยความจาแบบไม่ต่อเนื่อง
•โปรแกรมจะถูกแบ่งออกเป็นกลุ่มหรือส่วนย่อย ๆ
หลาย ๆ ส่วน เมื่อรันโปรแกรมจะโหลดลง
หน่วยความจาที่ไหนก็ได้ที่มีที่ว่างพอ แต่ละส่วนไม่
จาเป็นต้องเรียงต่อเป็นผืนเดียว
10
การจัดการหน่วยความจาหลักแบบต่าง ๆ
 การจัดการหน่วยความจานั้นมีหลายวิธี ตั้งแต่การจัดการ
แบบพื้นฐาน จนถึงแบบที่ซับซ้อน
 การจัดการหน่วยความจาจึงมีการแบ่งออกเป็น 2 ระบบ
ดังนี้
 ระบบโปรแกรมเดี่ยว (Monoprogramming or Single
program)
 ระบบหลายโปรแกรม (Multiple program)
ระบบโปรแกรมเดี่ยว
Monoprogramming or Single program
 เป็นวิธีการจัดการหน่วยความจาที่ง่ายที่สุด เนื่องจากจะมีโปรแกรม
เพียง 1 โปรแกรมทางานในขณะใดขณะหนึ่ง
 ดังนั้นการใช้งานหน่วยความจาจะมีเพียงโปรแกรมนั้น ๆ กับ
ระบบปฏิบัติการเท่านั้น ดังรูป OS
โปรแกรมของ
ผู้ใช้
ว่าง
Operating
system in
RAM
User
program
Operating
system in
ROM
User
program
User
program
Device Manager
in ROM
Operating
system in
RAM
ระบบโปรแกรมเดี่ยว
Monoprogramming or Single program … ต่อ
ระบบโปรแกรมเดี่ยว
Monoprogramming or Single program … ต่อ
 จากรูปเราอาจแบ่งหน่วยความจาหลักออกเป็น 2 ส่วนคือ
 ส่วนของ OS เป็นหน่วยความจาที่ถูกครอบครองโดย OS
 ส่วนของผู้ใช้ (User area) คือส่วนที่สามารถนาโปรแกรมของ
ผู้ใช้ลงไปวางได้ ซึ่งก็คือหน่วยความจาหลักทั้งหมดที่เหลือจาก
ส่วนของ OS
15
ระบบโปรแกรมเดี่ยว
Monoprogramming or Single program … ต่อ
 เมื่อหน่วยความจาหลักถูกแบ่งออกเป็น 2 ส่วนแล้ว ตัว
OS จึงจาเป็นต้องมีวิธีการป้องกันไม่ให้โปรแกรมของ
ผู้ใช้รุกล้าเข้ามาในส่วนของ OS
 ถ้า OS ปล่อยให้ผู้ใช้เข้ามาใช้หน่วยความจาที่ OS ใช้อยู่
โปรแกรมของผู้ใช้อาจทาลายตัวโปรแกรมของ OS
เสียหายจนระบบทางานไม่ได้
ระบบโปรแกรมเดี่ยว
MONOPROGRAMMING OR SINGLE PROGRAM … ต่อ
•วิธีที่นิยมในการป้องกันการรุกล้าได้แก่การสร้างรีจีสเตอร์ขึ้นมาในซีพียู
เรียกว่ารีจีสเตอร์ขอบเขต (BOUNDARY REGISTER)
•รีจีสเตอร์จะทาหน้าที่เก็บค่าแอสเดรสที่เป็นรอยต่อระหว่างส่วนของ OS
และส่วนของผู้ใช้
ระบบหลาย
โปรแกรม
MULTIPLE
PROGRAM
•ระบบคอมพิวเตอร์ส่วนใหญ่ในปัจจุบันอนุญาตให้มีงาน
หลาย ๆ งานทางานในเวลาเดียวกัน
•การที่ระบบมีหลายงานทางานพร้อมกันนั้น หมายความว่า
แต่ละงานต้องถูกบันทึกอยู่ในหน่วยความจาหลัก
•ดังนั้นเพื่อให้คอมพิวเตอร์สามารถทางานหลายงานพร้อม
กัน จึงจาเป็นต้องทาการแบ่งพื้นที่หน่วยความจาออกเป็น
ส่วน ๆ สาหรับแต่ละงานเพื่อไม่ให้ปะปนกัน
18
ระบบหลายโปรแกรม Multiple program
 การแบ่งหน่วยความจาสาหรับระบบหลาย
โปรแกรมมี 2 แบบ
การแบ่งหน่วยความจาขนาดคงที่ (Fixed partition
multi-programming)
การแบ่งหน่วยความจาขนาดไม่คงที่ (Variable
partition multi-programming)
การแบ่งหน่วยความจาขนาดคงที่
 วิธีนี้หน่วยความจาจะถูกแบ่งออกเป็นหลายส่วน
แต่ละส่วนมีขนาด คงที่ และในแต่ละส่วนจะมี
เพียงงานเดียว และการแบ่งนั้นจะเปลี่ยนแปลงอีก
ไม่ได้
 ดังนั้นจานวนงานที่ทางานได้พร้อมกันจะเท่ากับ
จานวนส่วนย่อยของหน่วยความจาหลัก
20
การแบ่งหน่วยความจาขนาดคงที่
การแบ่งหน่วยความจาขนาดคงที่ แบ่งได้เป็น 2 แบบ
การแปลงและโหลดด้วยค่าสัมบูรณ์ (Absolute translation and
loading)
การแปลงและโหลดด้วยค่าสัมพัทธ์ (Relocatable translation
and loading)
การแปลงและโหลดด้วยค่าสัมบูรณ์
Absolute translation and loading
 ค่าแอดเดรสสัมบูรณ์ คือค่าแอดเดรสจริง ๆ ในหน่วยความจา
 หน่วยความจาหลักจะถูกแบ่งออกเป็นส่วนที่มีขนาดคงที่ และ
แต่ละส่วนจะมีแอดเดรสที่เป็นขอบเขตบน และล่างอยู่ ดังนั้น
เมื่องานต้องการใช้หน่วยความจาหลักในส่วนย่อยใดก็ตาม
OS จะต้องกาหนดแอดเดรสจริงให้กับงาน เพื่อให้งานเข้าไป
ครอบครองหน่วยความจาหลักในส่วนที่ถูกต้อง
 นิยมใช้กับคิวงานที่เป็นแบบ Multiple queues
การแปลงและโหลดด้วยค่าสัมบูรณ์
Absolute translation and loading … ต่อ
OS
ส่วนที่ 1
ส่วนที่ 2
ส่วนที่ 3
งานที่เหมาะกับส่วนที่ 1
งานที่เหมาะกับส่วนที่ 2
งานที่เหมาะกับส่วนที่ 3
คิวของส่วนที่ 1
คิวของส่วนที่ 2
คิวของส่วนที่ 3
0
50000
60000
65000
การแปลงและโหลดด้วยค่าสัมบูรณ์
Absolute translation and loading … ต่อ
 ข้อเสียของวิธีนี้คือ ถ้างานพร้อมจะรันแล้ว แต่ส่วนของ
หน่วยความจาหลักที่ต้องการ กาลังถูกใช้โดยงานอื่น ก็ต้องรอจนกว่า
งานที่ใช้หน่วยความจาที่ต้องการทางานเสร็จสิ้น ถึงแม้ว่าส่วนอื่น ๆ จะ
ว่างอยู่ก็ตาม ทาให้สูญเสียหน่วยความจาในส่วนอื่นโดยเปล่า
ประโยชน์
 ถ้างานส่วนใหญ่เป็นงานที่มีขนาดเล็ก คิวของส่วนที่มีขนาดเล็กจะเต็ม
อยู่ตลอดเวลา ในขณะที่คิวของส่วนที่มีขนาดใหญ่ยังคงว่างอยู่ ทาให้
งานที่มีขนาดเล็กจะต้องรอในคิว ในขณะที่หน่วยความจาหลักยัง
เหลืออยู่มาก
การแปลงและโหลดด้วยค่าสัมพัทธ์
Relocatable translation and loading
 เพื่อแก้ปัญหาที่เกิดขึ้นในการแปลงและโหลดด้วยค่าสัมบูรณ์ จึงทาให้เกิด
วิธีการที่เรียกว่าการแปลงและโหลดด้วยค่าสัมพัทธ์
 งานจะถูกแปลงให้ได้แอดเดรสเป็นค่าสัมพัทธ์กับจุดเริ่มต้นของงาน จุดเริ่มต้น
ของงานก็คือแอดเดรส 0 นั่นเอง
 ถ้างานมีขนาด 100 byte เมื่องานถูกโหลดลงในหน่วยความจาหลักจะไม่รอให้
แอดเดรส 0 ถึง 100 ว่าง แต่จะโหลดลงส่วนที่มีขนาดมากกว่าหรือเท่ากับขนาด
ของงาน
 ดังนั้นคิวงานจึงไม่จาเป็นต้องเป็น Multiple Queues ใช้เป็น Single Queues
การแปลงและโหลดด้วยค่าสัมพัทธ์
Relocatable translation and loading … ต่อ
 วิธีการจัดคิวใช้วิธี FCFS คืองานใดมาก่อนก็มีสิทธิ์โหลดลง
ในส่วนของหน่วยความจาหลักที่ชี้อยู่
 แต่ถ้าขนาดของงานมีขนาดใหญ่กว่าส่วนของหน่วยความจา
หลักที่ชี้อยู่ OS จะข้ามงานนั้นไปทาให้กับงานอื่น ๆ ที่อยู่ถัดไป
 สาหรับงานที่ถูกข้ามก็จะต้องคอยอยู่ในคิว ซึ่ง OS จะกาหนด
ว่างานจะถูกมองข้ามได้ไม่เกินจานวนครั้งที่กาหนด ถ้าเกิน
ระบบจะต้องเลือกงานนั้นเข้าไปทางาน
การแปลงและโหลดด้วยค่าสัมพัทธ์
Relocatable translation and loading … ต่อ
OS
ส่วนที่ 1
ส่วนที่ 2
ส่วนที่ 3
งาน
คิว
0
50000
60000
65000
การแปลงและโหลดด้วยค่าสัมพัทธ์
RELOCATABLE TRANSLATION AND LOADING … ต่อ
• การป้องกัน OS ในระบบหลายโปรแกรมประเภทแบ่งหน่วยความจานิยมใช้รีจีสเตอร์
ขอบเขตหลาย ๆ ตัว ส่วนย่อยแต่ละส่วนจะใช้รีจีสเตอร์ขอบเขต 2 ตัว ในการแยกแยะส่วนแต่
ละส่วน เรียกว่ารีจีสเตอร์ขอบเขตบน (HIGH BOUNDARY REGISTER) และรีจีสเตอร์
ขอบเขตล่าง (LOW BOUNDARY REGISTER)
•โปรแกรมของผู้ใช้สามารถข้ามเข้าไปในขอบเขตของ OS ได้โดยผ่านทางคาสั่งเรียกระบบ
ข้อเสียของการแบ่ง
หน่วยความจา
ขนาดคงที่
•การแบ่งหน่วยความจาขนาดคงที่เป็นวิธีการที่ง่ายและไม่ซับซ้อนต่อการ
สร้าง OS อย่างไรก็ตามมีข้อเสียดังนี้
•พื้นที่ที่กาหนดให้มีขนาดและจานวนที่คงที่เมื่อระบบเริ่มทางานนั้น จะ
เป็นตัวจากัดจานวนของงานที่สามารถเข้ามาใช้ระบบได้
•เนื่องจากระบบมีการกาหนดพื้นที่แบบคงที่ ดังนั้นงานที่มีขนาดเล็กจะ
ไม่สามารถใช้พื้นที่ของหน่วยความจาได้อย่างเต็มประสิทธิภาพ
•การจัดแบ่งพื้นที่แบบคงที่จะทาให้เกิดส่วนที่ไม่ถูกใช้งาน ซึ่งเราเรียกว่า
เกิดการแตกกระจาย (FRAGMENTATION) ซึ่งมีอยู่ 2 รูปแบบ
•การแตกกระจายภายนอก (EXTERNAL FRAGMENTATION)
•การแตกกระจายภายใน (INTERNAL FRAGMENTATION)
ข้อเสียของการแบ่งหน่วยความจาขนาดคงที่
OS
ส่วนที่ 1
ว่าง
ส่วนที่ 2
(งานของผู้ใช้)
ส่วนที่ 3
(งานของผู้ใช้)
การแตกกระจายภายนอก
การแตกกระจายภายใน
การแบ่งหน่วยความจาขนาดไม่คงที่
Variable partition multi-programming
 จากปัญหาที่พบของการทางานของการแบ่งหน่วยความจา
ขนาดคงที่ ผู้ออกแบบ OS จึงได้ทาการปรับปรุงการแบ่ง
หน่วยความจาให้ดีขึ้น
 โดยระบบจะกาหนดให้มีการแบ่งหน่วยความจาตามความ
ต้องการของงาน และไม่มีการจากัดขอบเขตของ
หน่วยความจาหลัก
 การแบ่งหน่วยความจาแบบนี้เรียกว่า การแบ่ง
หน่วยความจาขนาดไม่คงที่
การแบ่งหน่วยความจาขนาดไม่คงที่
Variable partition multi-programming … ต่อ
 ตัวอย่าง ถ้าเรามีหน่วยความจาหลักทั้งหมด 1 MB ดังรูป
โปรเซส A
(ต้องการ 320 K)
OS 128 K
896 K
ว่าง
OS
576 K
320 K
320 K
ว่าง
การแบ่งหน่วยความจาขนาดไม่คงที่
Variable partition multi-programming … ต่อ
โปรเซส B
(ต้องการ 224 K)
OS
576 K
320 K
A
ว่าง
OS
224 K
320 K
A
B
352 K
ว่าง
การแบ่งหน่วยความจาขนาดไม่คงที่
Variable partition multi-programming … ต่อ
โปรเซส C
(ต้องการ 288 K)
OS
224 K
320 K
A
B
352 K
ว่าง
OS
224 K
320 K
A
B
288 K
C
64 K
ว่าง
การแบ่งหน่วยความจาขนาดไม่คงที่
Variable partition multi-programming … ต่อ
โปรเซส D
(ต้องการ 128 K)
OS
224 K
320 K
A
B
288 K
C
64 K
ว่าง
OS
224 K
320 K
A
B
288 K
C
64 K
ว่าง
การแบ่งหน่วยความจาขนาดไม่คงที่
Variable partition multi-programming … ต่อ
โปรเซส B
(ทางานเสร็จ)
OS
224 K
320 K
A
B
288 K
C
64 K
ว่าง
OS
224 K
320 K
A
288 K
C
64 K
ว่าง
ว่าง
การแบ่งหน่วยความจาขนาดไม่คงที่
Variable partition multi-programming … ต่อ
โปรเซส D
(ต้องการ 128 K)
OS
128 K
320 K
A
288 K
C
64 K
D
96 K
ว่าง
ว่าง
OS
224 K
320 K
A
288 K
C
64 K
ว่าง
ว่าง
การแบ่งหน่วยความจาขนาดไม่คงที่
Variable partition multi-programming … ต่อ
 จากรูปจะเห็นว่าเมื่อระบบทางานไปได้สักระยะหนึ่ง เราจะพบ
ช่องว่างเกิดขึ้นอย่างมากมายในหน่วยความจาหลัก ซึ่งจะทา
ให้การใช้งานหน่วยความจาหลักมีประสิทธิภาพลดลง
 เราเรียกช่องว่างเล็ก ๆ เหล่านี้ว่า การแตกกระจายภายนอก
(External fragmentation)
 ดังนั้นการที่จะวางโปรเซสลงในหน่วยความจาหลักนั้นจะต้อง
มีการตัดสินใจที่ดี ซึ่ง OS เรียกว่า การจัดยุทธวิธีการวาง
การจัดยุทธวิธีการวาง
เมื่อมีโปรเซสถูกส่งเข้ามาในหน่วยความจาหลัก ซึ่งขณะนั้น
หน่วยความจาหลักอาจมีช่องว่างเกิดขึ้นกระจายไปทั่ว
การจะจัดว่าโปรเซสใดควรจะวางไว้ในช่องว่างใด มีวิธีการอยู่ 3
แบบดังนี้
•เลือกช่องว่างที่พบก่อน (FIRST-FIT)
•เลือกช่องว่างที่เหมาะสม (BEST-FIT)
•เลือกช่องว่างที่ใหญ่ที่สุด (WORST-FIT)
การจัดยุทธวิธีการวาง … ต่อ
เลือกช่องว่างที่พบก่อน (First-Fit)
วิธีการนี้OS จะตรวจหาช่องว่างใน
หน่วยความจา เมื่อใดที่พบช่องว่างที่มีขนาดใหญ่
พอที่จะวางโปรเซสใหม่ลงไปได้ OS จะเลือก
ช่องว่างนั้นทันที ทาให้การเลือกช่องว่างทาได้
รวดเร็ว
40
การจัดยุทธวิธีการวาง … ต่อ
เลือกช่องว่างที่เหมาะสม (Best-Fit)
วิธีการนี้OS จะตรวจหาช่องว่างที่มีอยู่ใน
หน่วยความจาทั้งหมด แล้วเลือกเอาช่องว่างที่เมื่อ
วางโปรเซสลงไปแล้วจะเกิดช่องว่างขนาดเล็ก
ที่สุด
การจัดยุทธวิธีการวาง … ต่อ
•เลือกช่องว่างที่ใหญ่ที่สุด (WORST-FIT)
การเลือกช่องว่างแบบนี้จะตรงกันข้ามกับแบบที่ 2 OS จะ
เลือกช่องว่างที่เมื่อวางโปรเซสลงไปแล้วจะเกิดช่องว่างขนาด
ใหญ่ที่สุด
การจัดยุทธวิธีการวาง … ต่อ
OS
ใช้งาน
ใช้งาน
ใช้งาน
16 K
14 K
5 K
30 K
โปรเซสใหม่ขนาด 13 K
คาถาม จงใช้ยุทธวิธีทั้ง 3 แบบวางโปรเซสใหม่นี้
การรวมโฮล (Coalescing Holes)
 เมื่อมีช่องว่าง 2 ช่องติดกันในหน่วยความจา OS สามารถที่จะรวม
ช่องว่างทั้ง 2 นี้เป็นช่องว่างขนาดใหญ่ช่องเดียว ซึ่งเราเรียกว่า การ
รวมโฮล (Coalescing Holes) แสดงดังรูป
OS
โปรแกรมอื่น ๆ
2 K
โปรแกรม A 5 K
โปรแกรมอื่น ๆ
OS
โปรแกรมอื่น ๆ
2 K
5 K
โปรแกรมอื่น ๆ
โปรแกรม
A จบ
OS
โปรแกรมอื่น ๆ
7 K
โปรแกรมอื่น ๆ
การบีบอัดหน่วยความจา (Storage Compaction)
 ถึงแม้ว่าจะมีการรวมโฮลเกิดขึ้น แต่ช่องว่างที่ไม่อยู่ติดกันก็ยังคงมีกระจายอยู่ใน
หน่วยความจา
 ซึ่งการมีช่องว่างขนาดเล็ก ๆ หลายช่อง เมื่อนามารวมกันก็จะทาให้เกิดช่องว่าง
ขนาดใหญ่ซึ่งมากพอสาหรับ 1 โปรเซสได้
 OS จะต้องสามารถที่จะทาการบีบอัดหน่วยความจา โดยย้ายเอาหน่วยความจาที่
ถูกครอบครองโดยโปรเซสต่าง ๆ ไปอยู่ชิดติดกันที่ด้านใดด้านหนึ่ง ซึ่งจะทาให้เกิด
ช่องว่างใหญ่เพียงช่องเดียว จึงทาให้โปรเซสอื่น ๆ สามารถเข้ามาใช้หน่วยความจาที่
เหลือได้
การบีบอัดหน่วยความจา (Storage Compaction) … ต่อ
OS
ใช้งาน 1
ใช้งาน 2
ใช้งาน 3
16 K
14 K
5 K
30 K
OS
ใช้งาน 1
ใช้งาน 2
ใช้งาน 3
ว่าง
การบีบอัดหน่วยความจา (Storage Compaction) … ต่อ
 ข้อเสียของการบีบอัดหน่วยความจา
ระบบจะต้องหยุดการทางานของโปรเซสทุกโปรเซสไว้
ชั่วขณะหนึ่งเพื่อที่จะทาการบีบอัด
ซึ่งอาจจะต้องใช้เวลามากทาให้การทางานของระบบ
ช้าลง โดยเฉพาะกับการทางานในระบบโต้ตอบ
(Interactive)
ระบบหลายโปรแกรมแบบสลับหน่วยความจา
(MULTIPROGRAMMING WITH STORAGE SWAPPING)
•เป็นการสลับโปรแกรมไปสู่หน่วยความจาสารองเมื่อโปรแกรมไม่ต้องการหน่วยความจาหลัก
เรียกว่าการสลับออก (SWAPPED OUT) และนาโปรแกรมเข้ามาใช้หน่วยความจาใหม่
เมื่อต้องการใช้หน่วยความจาเรียกว่าการสลับเข้า (SWAPPED IN)
•โปรแกรมจะอยู่ในหน่วยความจาและถูกสลับออกเมื่อเกิดเหตุการณ์ 3 กรณี คือ
•โปรแกรมจบ
•โปรแกรมต้องการใช้งานอินพุต-เอาต์พุต
•หมดเวลาควอนตัม
ระบบหลายโปรแกรมแบบสลับหน่วยความจา (MULTIPROGRAMMING WITH
STORAGE SWAPPING) … ต่อ
OS
โปรแกรมของ
ผู้ใช้
ว่าง
A
B
C
D
สลับเข้า
swapped In
สลับออก
swapped out โปรแกรมของผู้ใช้
การทาโอเวอร์เลย์
•เนื่องจากโปรแกรมของผู้ใช้มีขนาดใหญ่กว่าหน่วยความจาหลัก จึงต้องแก้ปัญหานี้ถ้า
เป็นกรณีโปรแกรมเดี่ยวจะแก้ปัญหาด้วยการทาโอเวอร์เลย์
•การทาโอเวอร์เลย์ (OVERLAY) เป็นหน้าที่ของผู้เขียนโปรแกรมเอง OS ไม่ได้
จัดการให้
•ผู้เขียนโปรแกรมแบ่งโปรแกรมออกเป็นส่วนย่อยหลาย ๆ ส่วน แต่ละส่วนต้องมีขนาด
เล็กกว่าหน่วยความจา อาศัยหลักการสลับโปรแกรม โดยที่ส่วนแรกจะอยู่ใน
หน่วยความจาตลอดเวลาแล้วโหลดส่วนอื่นเข้ามาทับ
การทาโอเวอร์เลย์ … ต่อ
OS
ส่วนที่ 1
ส่วนที่ 2
โปรแกรมย่อย
หน่วยความจา
โปรแกรมของผู้ใช้แบ่งเป็นส่วนย่อยต่าง ๆ
โปรแกรมหลัก
หน่วยความจาเสมือน
(VIRTUAL
MEMORY)
การใช้หน่วยความจาของโปรแกรมผู้ใช้ที่กล่าวมานั้น จะเห็นว่า
ขนาดของโปรแกรมต้องมีขนาดเล็กกว่าขนาดของหน่วยความจาที่
เหลืออยู่
แต่ถ้าโปรแกรมของผู้ใช้มีขนาดใหญ่กว่า ไม่ว่าเราจะใช้วิธีการ
จัดการหน่วยความจาที่กล่าวมาแล้วชนิดใดก็ตามไม่สามารถจะทางาน
ได้
• ดังนั้นถ้าโปรแกรมของผู้ใช้มีขนาดใหญ่กว่าหน่วยความจาที่เหลือ
เราแก้ปัญหาโดยใช้หน่วยความจาเสมือน (VIRTUAL
MEMORY) ใช้ในกรณีแบบหลายโปรแกรม
QUESTION & ANSWER
แบบฝึกหัด
1. นักศึกษาคิดว่าทาไมจึงต้องมีหน่วยความจาหลัก
2. จงอธิบายภาพข้างล่างนี้ตามความเข้าใจ
3. การจัดการหน่วยความจาเป็นหน้าที่ของ OS ส่วนใด และจัดการเรื่องใดบ้าง
แบบฝึกหัด
4 .การรวมโฮล (COALESCING HOLES) มีวิธีการทางานอย่างไร จงอธิบาย
5. การแตกกระจาย (FRAGMENTATION) เกิดขึ้นได้อย่างไร จงอธิบาย
6. การจะจัดว่าโปรเซสควรจะวางไว้ในช่องว่างใดในหน่วยความจามีหลักการทางานอย่างไร จงอธิบาย
7. การแปลงและโหลดด้วยค่าสัมบูรณ์ และการแปลงและโหลดด้วยค่าสัมพัทธ์ แตกต่างกันอย่างไร
8. การป้องกันไม่ให้โปรแกรมล่วงล้ามายังส่วนของ OS ภายในหน่วยความจา ใช้วิธีการใด
9. การบีบอัดหน่วยความจา (STORAGE COMPACTION) มีหลักการทางานอย่างไร
10. HOLES เกิดขึ้นได้อย่างไร อธิบายมาพอเข้าใจ
54

More Related Content

What's hot

หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ปาย1
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  ปาย1หน่วยประมวลผลของเครื่องคอมพิวเตอร์  ปาย1
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ปาย1puangtong
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ โรจ
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  โรจหน่วยประมวลผลของเครื่องคอมพิวเตอร์  โรจ
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ โรจPheeranan Thetkham
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ บี
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  บีหน่วยประมวลผลของเครื่องคอมพิวเตอร์  บี
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ บีPheeranan Thetkham
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอนหน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอนPheeranan Thetkham
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอนหน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอนPheeranan Thetkham
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ดุ่ย
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  ดุ่ยหน่วยประมวลผลของเครื่องคอมพิวเตอร์  ดุ่ย
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ดุ่ยPheeranan Thetkham
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอนหน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอนPheeranan Thetkham
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ดา
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  ดาหน่วยประมวลผลของเครื่องคอมพิวเตอร์  ดา
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ดาPheeranan Thetkham
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ยีตส์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ยีตส์หน่วยประมวลผลของเครื่องคอมพิวเตอร์ยีตส์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ยีตส์okbeer
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ เตย
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ เตยหน่วยประมวลผลของเครื่องคอมพิวเตอร์ เตย
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ เตยpuangtong
 

What's hot (10)

หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ปาย1
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  ปาย1หน่วยประมวลผลของเครื่องคอมพิวเตอร์  ปาย1
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ปาย1
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ โรจ
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  โรจหน่วยประมวลผลของเครื่องคอมพิวเตอร์  โรจ
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ โรจ
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ บี
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  บีหน่วยประมวลผลของเครื่องคอมพิวเตอร์  บี
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ บี
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอนหน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอน
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอนหน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอน
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ดุ่ย
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  ดุ่ยหน่วยประมวลผลของเครื่องคอมพิวเตอร์  ดุ่ย
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ดุ่ย
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอนหน่วยประมวลผลของเครื่องคอมพิวเตอร์  แอน
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ แอน
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ดา
หน่วยประมวลผลของเครื่องคอมพิวเตอร์  ดาหน่วยประมวลผลของเครื่องคอมพิวเตอร์  ดา
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ ดา
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ยีตส์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ยีตส์หน่วยประมวลผลของเครื่องคอมพิวเตอร์ยีตส์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ยีตส์
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ เตย
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ เตยหน่วยประมวลผลของเครื่องคอมพิวเตอร์ เตย
หน่วยประมวลผลของเครื่องคอมพิวเตอร์ เตย
 

Similar to Slide10 memory management

หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์Ammarirat
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์gotchagon
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์Ammarirat
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์Ammarirat
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์Ammarirat
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์Ammarirat
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์Ammarirat
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์Jirayu Pansagul
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์NaluemonPcy
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1ninewnilubon
 
Main Memory 516(1)
Main Memory 516(1)Main Memory 516(1)
Main Memory 516(1)Chettapong
 
Random 110909062421-phpapp02
Random 110909062421-phpapp02Random 110909062421-phpapp02
Random 110909062421-phpapp02nantakit
 
Random 110909062421-phpapp02
Random 110909062421-phpapp02Random 110909062421-phpapp02
Random 110909062421-phpapp02nantakit
 
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์Orapan Chamnan
 
หน่วยประมวลผลเครื่องคอมพ์
หน่วยประมวลผลเครื่องคอมพ์หน่วยประมวลผลเครื่องคอมพ์
หน่วยประมวลผลเครื่องคอมพ์pornpan36
 

Similar to Slide10 memory management (20)

หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
 
Computer2
Computer2Computer2
Computer2
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
 
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์หน่วยประมวลผลของเครื่องคอมพิวเตอร์
หน่วยประมวลผลของเครื่องคอมพิวเตอร์
 
งานนำเสนอ1
งานนำเสนอ1งานนำเสนอ1
งานนำเสนอ1
 
Main Memory 516(1)
Main Memory 516(1)Main Memory 516(1)
Main Memory 516(1)
 
Main Memory
Main MemoryMain Memory
Main Memory
 
Main Memory 516
Main Memory 516Main Memory 516
Main Memory 516
 
Random 110909062421-phpapp02
Random 110909062421-phpapp02Random 110909062421-phpapp02
Random 110909062421-phpapp02
 
Random 110909062421-phpapp02
Random 110909062421-phpapp02Random 110909062421-phpapp02
Random 110909062421-phpapp02
 
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
องค์ประกอบและหลักการทำงานของคอมพิวเตอร์
 
หน่วยประมวลผลเครื่องคอมพ์
หน่วยประมวลผลเครื่องคอมพ์หน่วยประมวลผลเครื่องคอมพ์
หน่วยประมวลผลเครื่องคอมพ์
 
Chapter 3 Module 1 Type of Information technology
Chapter 3 Module 1  Type of Information technologyChapter 3 Module 1  Type of Information technology
Chapter 3 Module 1 Type of Information technology
 
หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์หลักการทำงานของคอมพิวเตอร์
หลักการทำงานของคอมพิวเตอร์
 

Slide10 memory management