การจัดการ CPU งวดนี้เราก็จะพูดถึงการจัดการหน่วยความจำนะครับ หน่วยความจำ ก็เป็นอุปกรณ์ตัวหนึ่ง ที่มีส่วนสำคัญ ในคอมพิวเตอร์ของเรานะครับ เราจะดูว่าเครื่องคอมพิวเตอร์เครื่องไหน ขีดความสามารถมากกว่ากัน เราก็อาจจะดู จากหน่วยความจำนะครับ แต่ทั้งนี้ทั้งนั้นนะครับ ไม่ได้ตอบได้เสมอ พระเครื่องที่มีหน่วยความจำมาก ทำงานได้ดีกว่านะครับ ในการจัดการหน่วยความจำนั้นก็เป็นขีดความสามารถอันหนึ่งของระบบปฏิบัติการของเราด้วยนะครับ ถ้าระบบปฏิบัติการของเรา จัดการหน่อยหน่วยความจำไม่ดี ประสิทธิภาพในการใช้งาน ก็จะน้อยลงนะครับ ที่นี้เรามาดูว่ามันจะกันอย่างไรนะครับ การจัดการหน่วยความจำ มีอยู่ 3 แบบนะครับ มีอยู่ 3 เฟซวางแผนที่ มี 3 ลักษณะคือ ซึ่งเราค่อยดูว่าทำอย่างไรนะครับ คราวนี้มาดูการจัดสรรหน่วยความจำนะครับ โปรแกรมทุกโปรแกรมที่เราใช้งานในคอมพิวเตอร์ของเรานั้น จำเป็นจะต้องใช้หน่วยความจำ นะครับ ทำมากจะน้อยก็แล้วแต่โปรแกรม โปรแกรมเกม อาจจะใช้เยอะ โปรแกรมพิมพ์งานอาจจะใช้น้อย ประมาณนี้นะครับ คราวนี้เรามาดูว่า ในการจัดสรรหน่วยความจำนะครับ สามารถแบ่งออกเป็น 2 ประเภทนะครับ ก็คือการจัดสรร แบบต่อเนื่อง แล้วก็แบบไม่ต่อเนื่องนะครับ การจัดสรรหน่วยความจำ แบบต่อเนื่องก็คือหมายความว่า หน่วยความจำจะต้องว่างต่อกัน ครับ พื้นที่ว่างต้องต่อเนื่องกันนะครับ ขาดช่วงอะไรไม่ได้นะครับ แล้วก็ต้องมีขนาดใหญ่พอนะครับ ถึงจะสามารถเข้าไปทำงานได้นะครับ ส่วนไม่ต่อเนื่องนะครับ ก็คือ เข้าไปครอบครองหน่วยความจำแล้วหน่วยความจำอาจจะอยู่คนละที่อยู่คนละแบบนะครับอยู่คนละที่ แต่ก็ต้องมีเนื้อที่เพียงพอนะครับ ที่โปรแกรมจะใช้งานนะครับ คราวนี้ มาดูในระบบโปรแกรมเดียว โปรแกรมเดียว Single Program ก็คือคอมพิวเตอร์ มีผู้ใช้งานแค่โปรแกรมเดียวการจัดสรรหน่วยความจำ จะไม่ยุ่งยากนะครับ ซึ่งเราสามารถแบ่งพื้นที่ ของหน่วยความจำออกเป็น 2 ส่วนนะครับ ก็คือตอนแรก ส่วนของระบบปฏิบัติการนะครับ และเป็นส่วนที่จำเป็น ต้องมีพื้นที่ว่าง ยาวติดต่อกัน เป็นผืนใหญ่ผืนเดียวเลย นะครับ OS นะครับ ต้องมีพื้นที่หน่วยความจำของมันด้วยนะครับ แล้วต้องเป็นพื้นที่ยาวต่อเนื่องกันนะครับ 2 ส่วนของผู้ใช้ ก็คือเหลือจาก OS ก็กลายเป็นส่วนของผู้ชายนะครับ ในระบบโปรแกรมเดียวนะครับ เมื่อไหร่ความจำถูกแบ่งออกเป็น 2 ส่วนนะครับ 2 ส่วน ระบบปฏิบัติการเองก็จำเป็นต้องป้องกัน ไม่ให้ตัวมันเองนี่ จนลุกลามเข้ามา วิธีการป้องกัน ก็คือการใช้ Regis ขอบเขต นะครับ register ขอบเขตคืออะไร ก็คือ ส่วนที่ป้องกัน ระหว่าง ระหว่างอะไรครับ OS นะครับ กับส่วนของผู้ใช้ ไม่ให้เข้ามายุ่งเกี่ยวกันนะครับ ดังนั้นการเขียนโปรแกรม ไวรัสคอมพิวเตอร์ ส่วนหนึ่งก็คือเจาะ register ขอบเขต เอาเข้าไป นี่นะครับ ถ้ามีการรุกล้ำ register ขอบเขต มันจะแจ้งเตือนนะครับ คราวนี้มาดูระบบหลายโปรแกรมนะครับ ระบบหลายโปรแกรม การทำงานของระบบหลายโปรแกรมส่วนมาก นะครับ ส่วนมากจะเกิดขึ้นก็คือ การไปทำงาน input output ก็คือ อันที่มันไม่ได้ครอบครอง CPU ว่างๆๆ ได้ครอบครองหน่วยความจำนะครับ เราเรียกระบบนี้ว่า ระบบ Multi programming ระบบ programming นี้นะครับ ก็คือการทำงานที่ มีโปรแกรมมากกว่าหนึ่งโปรแกรมทำงานในเวลาเดียวกัน 2 3 4 5 6 7 นะครับ การทำงานของระบบหลายโปรแกรมนั้น แบ่ง partition ของหน่วยความจำ แบ่ง partition ของหน่วยความจำออกเป็นส่วนส่วนนะครับ การแปลงหน่วยความจำนะครับ เรา โปรแกรมบอล แบ่งกับความจำนะครับ ก็ยังสามารถ แบ่งได้เป็น 2 ประเภทนะครับ ก็คือระบบหลายโปรแกรมแบบแบ่งหน่วยความจำ แบบคงที่ แล้วก็ไม่คงที่นะครับ ในระบบหลายโปรแกรมแบบสลับหน่วยความจำ ครับ แบ่งหน่วยความจำนะครับ ก็สลับหน่วยความจำ คราวนี้เรามาดูประเภทที่ 1 นะครับ การแบ่งหน่วยความจำ ขนาดคงที่นะครับ เห็นไหมครับ โปรแกรมส่วนที่ 1 ส่วนที่ 2 ส่วนที่ 3 มีขนาดที่เท่ากันนะครับ เท่ากัน และการแบ่งหน่วยความจำขนาดคงที่ก็ยังสามารถแบ่งออกเป็น 2 ประเภทนะคะ 2 แบบ ได้แก่ การแปลงและโหลดด้วยค่าสัมบูรณ์นะครับ ดูรูปนี้ประกอบนะครับ โปรแกรมส่วนที่ 1 เล่นไหมครับวันที่ 1 ส่วนที่ 1 ส่วนที่ 2 เข้าส่วนที่ 2 โปรแกรมตรวจที่ 1 ที่ 2 ที่ 3 จะเห็นว่ามีขนาดที่เท่ากันนะครับ ที่เท่ากัน พอมันเข้ากันปุ๊บนะครับ ดูนะครับ โปรแกรมตรวจที่ 1 เรากำหนดว่าส่วนที่ 1 ส่วนที่ 2 ส่วนที่ 3 มีขนาดเท่ากับ เท่ากับ 7 นะครับ โปรแกรมสดที่ 1 ถ้าแปรงเสร็จแล้วโหลดเข้าไป มีค่าไม่เกิน 10 จะเข้าไปส่วนที่ 1 นะครับ แต่ถ้าโปรแกรม ส่วนที่ 2 จะต้องมีค่าตั้งแต่ จนถึง 20 มันถึงจะเข้าส่วนที่ 2 นะครับ แต่ถ้าบังเอิญว่าโปรแกรม ส่วนที่ 1 โปรแกรมโปรแกรมโปรแกรม C แมนแล้วโหลดเสร็จแล้ว มันจะเข้าคิวที่ 1 อย่างเดียวนะครับ นี่คือข้อเสียของมันนะครับ เห็นใหม่ มันจะว่างเลย ส่วนที่ 2 ส่วนที่ 3 ส่วนที่ 4 ส่วนที่ 5 นะครับ ดังนั้น ก็เลยมีการ แก้ปัญหานะครับ เช่นกัน แปลงและโหลดด้วยค่าสัมพัทธ์นะครับ เงินแก้ปัญหาเมื่อกี้นะครับ ก็คือ มีคิวเดียวเลยนะครับมีคิวเดียว เที่ยวเสร็จแล้ว ก็คือส่วนที่ 1 2 3 4 หมายความว่าโปรแกรมจะโดนโหลดมาตรงนี้ที่คิว โดยมีคิวแค่คิวเดียวนะครับ แรมเสร็จปุ๊บ ค่าเท่ากับ 15 ส่วนที่ 1 เสร็จปุ๊บได้ค่าเท่ากับ 10 เอาบวกเข้าไปอีก เป็น 12 เข้าสวนที่ 2 แปลงแล้วโหลด แม็ก 15 เข้า 2 ไม่ได้ +6 + 7 + 10 เข้าไปนะครับ เพื่อให้ส่วนที่ 2 ที่ 3 ที่ 4 ที่ 5 ไปเรื่อยๆนะครับ ดังนั้น ป้องกันนะครับ ถ้าเป็นในระบบโปรแกรมเดียว ใช้ register ขอบเขตในการป้องกัน แท่นในระบบหลายโปรแกรม ประเภทแบ่งหน่วยความจำนะครับ ใช้ register ขอบเขตบน และขอบเขตล่าง ในการป้องกัน ให้โปรแกรมเข้ามานะครับ เห็นไหมครับ ขอบเขตล่าง ขอบเขตบนขอบเขตล่างขอบเขตบนนะครับ ส่วนตัวของระบบปฏิบัติการ ใช้ตัว register ขอบเขต ในการป้องกันนะครับ เรานี้ การแปลงหน่วยความจำ ไม่ว่าจะใช้วิธีการใดก็แล้วแต่ เกิดวันที่ที่ไม่ถูกใช้งาน เราเรียกว่าการแตกกระจายนะครับ แตกกระจาย โรคคือ หน่วยความจำที่ไม่ถูกใช้งาน ในระบบ แท็กหน่วยความจำนะครับ แบ่งหน่วยความจำ ซึ่งเราเรียก กระจาย เป็น 2 กรณีนะครับ ก็มีแกน การแตกกระจายภายนอกการแตกกระจายภายในนะครับ น้ำแตกกระจายภายนอกเป็นอย่างไรครับ ดูนะครับ ส่วนที่ 1 การแตกกระจายภายนอก หมายถึง ส่วนของหน่วยความจำที่ไม่ถูกใช้งาน ในระบบ แจ้งหน่วยความจำขนาดคงที่ ไม่ถูกใช้งานเลยใช่ไหมครับส่วนที่ 1 ไม่ถูกใช้งานเลย ส่วนการแพร่กระจายภายใน ดูนะครับ ภายใน หมายถึง ส่วนของหน่วยความจำ ที่ถูกใช้งาน ผู้ใช้งานแต่ใช้งานไม่หมด นะครับ ใช้ไม่หมดนะ ในการแบ่งหน่วยความจำ ขนาดคงที่ ต่างกันนะครับ การแตกกระจายภายนอก ก็คือส่วนที่ว่างไม่ถูกใช้งานเลย การแตกกระจายภายในก็คือหน่วยความจำว่าง โดนใช้แล้วใช้ไม่หมดนะครับ คราวนี้มาดู การแปลงหน่วยความจำ ขนาดคงที่ขนาดไม่คงที่นะครับ เมื่อกี้นี้เป็นขนาดคงที่นะครับ ออกแบบระบบปฏิบัติการ ได้ตระหนักถึง แบ่งหน่วยความจำขนาดคงที่อยู่ไว้มีข้อจำกัด ก็เลยคิดค้นวิธีการที่เรียกว่า การแบ่ง ความจำขนาดไม่คงที่ขึ้นดังตัวอย่างนะครับ เล่น Minecraft ผู้ใช้ A ต้องการใช้สิทธิ์ เคยไป นะครับ ผู้ใช้ดีต้องการ 30 ก็เข้าไป ขนาดไม่คงที่ครับ บอกให้มีพื้นที่ว่างเพียงพอ ก็สามารถจัดการ หน่วยความจำได้เลยนะครับ ระบบหลายโปรแกรมแบบแบ่งหน่วยความจำ แบบไม่คงที่นะครับ สามารถ Run ได้หลายโปรแกรมนะครับดูนะครับ ถึงแม้ว่าการแปลงหน่วยความจำ ขนาดไม่คงที่ นะครับ ก็ยังมีส่วนที่ไม่ถูกใช้งานเหมือนกันนะครับเหมือนเดิม ถ้าเป็นแบบขนาดคงที่ เรียกว่าการแตกกระจายนะครับ ส่วนถ้าเกิดขึ้นในกรณีที่ พื้นที่ที่ไม่ถูกใช้งาน การแบ่งหน่วยความจำ ขนาดไม่คงที่ เราเรียกว่าช่องโหว่นะครับ หรือ Ho เกิดขึ้นได้อย่างไรครับ โปรแกรม Ai โปรแกรมวี โปรแกรม C Program ดีไหมครับเกิดขึ้นแล้ว ข้างล่างสุด ช่องว่างช่องโหว่ ครับ สักระยะหนึ่ง โปรแกรมบิท คือหน่วยความจำให้ระบบเห็นไหมครับช่องโหว่เกิดขึ้นแล้ว สักพักหนึ่ง HD จบ เพิ่มหน่วยความจำให้ระบบ เกิด Home ขึ้นแล้วนะครับ เมื่อเกิดโฮขึ้นนะครับ ก็มีวิธีการ เอาโปรแกรมใหม่ลงไปวางแทนนะครับ ไปอยู่ 3 วิธีการนะครับ เลือกโห่ที่พบก่อน และมีขนาดใหญ่พอที่จะวางโปรแกรมใหม่ลงไปนะครับ วิธีการที่ 2 โห่ที่เหมาะสม เลือกหัวข้อที่เหมาะสมที่สุด คือเอาเข้าไปแล้วหรือหน่วยความจำ เสือก ใหม่น้อยที่สุดนะครับ 3 โหที่ใหญ่ที่สุดนะครับ ที่ใหญ่ที่สุด ดูนะครับ วิธีแต่ละวิธีเป็นอย่างไรดูรูปนะครับ วิธีการที่ 1 เจอก่อนพบก่อน แต่ต้องมีเงื่อนไขว่า ต้องมีพื้นที่ ของ Home ใหญ่เพียงพอนะครับ 1396 ได้ไหมครับ ได้ มาก่อนเลยพบก่อนเลยเจอเกาะนักหนา เข้าไปวางก่อนเลยนะครับ เหมาะสมที่สุดเมื่อเข้าไปวางเสร็จแล้ว โทรใหม่ที่เกิดขึ้น มีขนาดเหลือน้อยที่สุด เข้า 10:00 น เหลือ 3 จะเข้า 14 เหลือ 1 เข้าไม่ได้ ค่าเข้า 30 เหลือ 17 Minecraft เหมาะสมที่สุดก็คือ เมื่อเข้าไปแล้ว ทำให้เกิดโฮใหม่น้อยที่สุด แบบที่ 3 พิกัดที่ 3 เนื้อโคที่ใหญ่ที่สุด ใช่ไหมครับ 30 ใหญ่กว่าเพื่อนนะครับ คราวนี้ ในกรณีที่ มีโฮเกิดขึ้น พื้นที่ติดกัน ติดกันนะครับติดกัน คาราโอเกะ มีความสามารถนะครับ มันจะต้องมีความสามารถ ในการจัดรวมโฮเข้าไปด้วยกันเลย ครับ นึกออกไหมครับ เมื่อมีโฮอยู่ติดกัน ว่างติดกัน จับยุบรวมกันนะครับ วิธีการ การอัดหน่วยความจำนะครับอัดหน่วยความจำ ก็คือถ้าเกิดมีโฮ ว่างเกิดขึ้น เหตุการณ์ก็ได้ไม่ติดก็ได้นะครับ วิธีการอัดหน่วยความจำก็คือระบบจะหยุดการทำงาน และเช็คดูระบบ แล้วก็การไปเอาเดี๋ยวความจำที่ว่างๆนี่ มาจับรวมกัน เพื่อให้ได้หน่วยความจำที่ใหญ่ขึ้นนะครับ เขาเรียกว่าการรวบรวมขยะ นะครับ โปรแกรม defrag พอเราอยากไปเรียนปฏิบัตินะครับ เราจะเห็นว่า โปรแกรม reflex ทำงาน ทำงานอย่างไรนะครับ มาทีหลังทำไมไม่เอาแบบฝึกหัด เข้ามาเมื่อกี้น่ะ มาเอาแบบฝึกหัด แล้วทำอะไรอยู่ นี่ดูวิธีการ รวบรวม หน่วยความจำ ทำไมครับ ใช้งาน 1 2 3 Ho Ho Ho เพราะอัดหน่วยความจำ เปิดช่องว่างขึ้น ใหญ่ขึ้น นี่คือวิธีการอัดหน่วยความจำ คราวนี้มาดูระบบหลายโปรแกรมแบบสลับความจำ เมื่อกี้เป็นแบบ แบ่งหน่วยความจำนะครับ แบ่งหน่วยความจำ มีขนาดคงที่แล้วคงที่ มาดูระบบหลายโปรแกรมแบบสลับหน่วยความจำ หลักการก็คือ ถูกใช้งาน เราเรียกว่าสลับเข้านะครับ เข้ามาเข้ามา