ข่าวคราวนี้ดู บทที่ 4 นะคะ การจัดการหน่วยความจำ บทที่แล้วนะครับ เราพูดถึง CPU นะคะ การจัดการ CPU บทนี้ จะพูดถึงการ การหน่วยความจำนะคะ หน่วยความจำ อุปกรณ์ตัวหนึ่งที่มีส่วนสำคัญ ในคอมพิวเตอร์ของเรานะคะ เราจะดูว่าเครื่องคอมพิวเตอร์เครื่องไหน มีขีดความสามารถมากกว่ากัน เราก็เอา จะดูได้จากหน่วยความจำนะคะ แต่ทั้งนี้ทั้งนั้นนะครับ ไม่ได้ ตอบได้เสมอว่า เครื่องที่มีหน่วยความจำมาก ทำงานได้ดีกว่า นะครับ ในการจัดการหน่วยความจำนั้น ก็เป็นขีดความสามารถ ของหน่วย ระบบปฏิบัติการของเราด้วยถ้าระบบปฏิบัติการของเรา จัดการหน่วยความจำไม่ดีนะคะ ประสิทธิภาพในการใช้งาน ดอยลงนะครับ คราวนี้เรามาดูว่า มันจัดการยังไงนะครับ การจัดการหน่วยความจำมีอยู่ 3 แบบนะครับ มีอยู่ 3 เฟส วางแทนที่ ครับมีอยู่ 3 ลักษณะ ซึ่งเราค่อยดูว่า ทำอย่างไรนะครับ ตอนนี้ มาดูการจัดสรรหน่วยความจำนะคะ โปรแกรมทุกโปรแกรมที่ใช้งานในคอมพิวเตอร์ของเรานะครับ ต้องการใช้ หน่วยความจำ นะครับ จะมากจะน้อยก็แล้วแต่โปรแกรมนะครับ โปรแกรม เกม อาจจะใช้เยอะ โปรแกรมพิมพ์งานอาจจะใช้น้อยอะไรประมาณนี้ครับ เอามาดูว่าถ้าเกิด ในการจัดสรรหน่วยความจำนะครับ สามารถแบ่งออกได้เป็น 2 ประเภทนะครับก็คือ การจัดสรรแบบ ต่อเนื่อง แล้วก็แบบไม่ต่อเนื่องนะครับ การจัด หน่วยความจำแบบ ต่อเนื่องก็คือหมายความว่า หน่วยความจำจะต้องว่างต่อกัน นะครับ พื้นที่ว่างต้องต่อเนื่องกันนะครับ ขาดช่วงอะไรไม่ได้นะครับ แล้วก็ต้องมีขนาดใหญ่พอนะครับ ถึงจะ สามารถเข้าไปทำงานได้นะครับ ส่วนไม่ต่อเนื่องนะครับ ก็คือ เข้าไปครอบครองด้วยความจำแล้ว หน่วยความจำอาจจะอยู่คนละที่อยู่คนละแบบนะครับอยู่คนละที่ ต้องมีเนื้อที่เพียงพอนะครับ ที่โปรแกรมจะใช้งานนะครับ ตอนนี้มาดูใน ระบบ โปรแกรมเดียว โปรแกรมเดี่ยว Single โปรแกรมนะครับ ก็คือ คอมพิวเตอร์ มีผู้ใช้งานแค่โปรแกรมเดียว การจัดสรร หน่วยความจำ จะไม่ยุ่งยากนะครับ ซึ่งเราสามารถแบ่ง พื้นที่ ของหน่วยความจำ เป็น 2 ส่วนนะครับ ก็คือส่วนแรก เป็นส่วนของ ระบบปฏิบัติการนะครับ และ เล่นส่วนที่ จำเป็นต้อง มีพื้นที่ว่าง ยาวติดต่อกัน เป็นผืนใหญ่ผืนเดียวเลย นะครับ OS จะกลับ ต้องมี เนื้อที่หน่วยความจำของมันด้วยนะครับ และต้องเป็นพื้นที่ยาวต่อเนื่องกัน นะครับ 2 ส่วนของผู้ใช้ นะครับ คือเหลือจาก OS คือ ส่วนของผู้ใช้นะครับ ในระบบโปรแกรมเดียวนะครับ เมื่อหน่วยความจำถูกแบ่งออกเป็น 2 ส่วนนะครับ ตัวของหนู ระบบปฏิบัติการเองต้องมีการป้องกันไม่ให้ตัวมันเอง โดนลุกล้ำเข้ามานะครับวิธีการป้องกันก็คือ การใช้ ปีเตอร์ขอบเขต นะครับ register ขอบเขตคืออะไร ส่วนที่ป้องกัน ระหว่าง ระวังอะไรครับ OS กับส่วนของผู้ใช้ ไม่ให้เข้ามา ยุ่งเกี่ยวกันนะครับ ดังนั้น การเขียนโปรแกรม ไวรัสคอมพิวเตอร์ ก็คือเจาะตัวนี้ล่ะครับ เมื่อคืนเจาะ register ขอบเขต เจาะเข้าไป นี่นะครับ ถ้ามีการรุกล้ำ register ขอบเขต แจ้งเตือนนะครับ เอานี้มาดูระบบหลายโปรแกรมนะครับระบบหลายโปรแกรม การทำงานของระบบหลายโปรแกรมนั้นส่วนมาก นะครับ ส่วนมากจะเกิดขึ้นก็คือการไปทำงาน input output ก็คือการไป การที่มันไม่ได้ครอบครองศิริ CPU ง่ายๆ เราเรียกระบบนี้ว่า ระบบ Multi programming ลักหลับ ระบบ Multi programming นี้นะครับ ก็คือระบบ การทำงานที่มีโปรแกรมมากกว่าหนึ่งโปรแกรมทำงาน ในเวลาเดียวกัน 1 2 3 4 5 6 7 นะครับ การทำงานของระบบหลายโปรแกรมนั้น แบ่ง partition แบ่ง partition ของหน่วยความจำออกเป็นส่วนส่วนนะครับ ซึ่งการแบ่งหน่วยความจำ ระบบ Line โปรแกรม ก็ยังสามารถ แบ่งได้เป็น 2 ประเภทนะครับ ก็คือระบบ LINE Program แบบแมนนวล การจำแบบหน่วยคงที่และก็ไม่คงที่ ในระบบหลายโปรแกรม สละ หน่วยความจำ ครับ แปลงหน่วยความจำนะครับ แล้วก็สลับหน่วยความจำ ตอนนี้เรามาดูประเภทที่ 1 นะครับ การแบ่งหน่วยความจำ ขนาดคงที่ นะครับ เห็นไหมครับ โปรแกรมส่วนที่ 1 ส่วนที่ 2 ส่วนที่ 3 มีขนาดที่เท่ากัน นะครับ และการแบ่งหน่วย ความจำขนาดคงที่ ยังแบ่งได้เป็น 2 ประเภทนะครับ เป็น 2 แบบ ได้แก่ แปลงและโหลดด้วยค่าสัมบูรณ์นะครับ ดูรูปนี้ประกอบนะครับ โปรแกรมส่วนที่ 1 เห็นไหมครับส่วนที่ 1 ออส่วน ส่วนที่ 1 และส่วนที่ 2 เข้าซอยที่ 2 ข้อที่ 3 กิโลกรัมส่วนที่ 1 ส่วนที่ 2 ส่วนที่ 3 จะมีขนาดที่เท่ากันนะครับ พ่อมันเท่ากันปุ๊บนะครับ โปรแกรมส่วนที่ 1 โปรแกรมที่ 10 ที่ 2 ส่วน 3 เท่ากับ 10 นะครับ โปรแกรมส่วนที่ 1 ถ้าแปรงเสร็จแล้วหลุดเข้าไป มีค่าไม่เกิน 10 จะเข้า ในส่วนที่ 1 นะครับ แต่ถ้าโปรแกรม ส่วนที่ 2 จะต้องมีค่า ตั้งแต่ 11 จนถึง 20 ถึงจะเข้าสวนที่ 2 ครับ แต่ถ้าบังเอิญว่าโปรแกรมส่วนที่ 1 โปรแกรมวีโปรแกรม C เมื่อแปลงแล้วโหลดแล้วค่าสัมบูรณ์แล้วมีค่าไม่เกิน 10 จะเข้าไปอยู่ที่คิวที่ 1 อย่างเดียวนะครับ นี่คือข้อเสียของมันนะครับ เห็นไหมคะ มันจะว่างเลยส่วนที่ 2 ส่วนที่ 2 ส่วนที่ 3 4 5 6 7 ดังนั้นก็เลยมีการ แก้ปัญหานะครับ เป็นการโหลดด้วยค่าสัมพัทธ์ ครับ เพื่อแก้ปัญหาเมื่อ ดีนะครับ ก็คือ มีคิวเดียวเลยนะครับ มีคิวเดียว คิวเดียวเสร็จแล้วก็คือ ส่วนที่ 1 2 3 4 หมายความว่า โปรแกรมจะโดน โหลดมาตรงนี้ ที่ขีด แค่คิ้วเดียวนะครับ แป้งเสร็จปุ๊บ มีค่าเท่ากับ 19 ส่วนที่ 1 แฟนเสร็จปุ๊บ ได้ค่าเท่ากับ 10 เอาบวกเข้าไปอีก เดือน 12 ส่วนที่ 2 แปลงและโหลดเสร็จได้ 15 เราไม่ได้ส่องไม่ได้ + 6 + 7 บวกสิบ เข้าไป เข้าในส่วนที่ 2 345 ไปเรื่อยๆนะครับ ดังนั้น การป้องกันนะครับ ถ้าเป็นนาย ระบบโปรแกรมเดี่ยวใช้ register ขอบเขต ในการป้องกัน แต่ถ้าในระบบหลายโปรแกรม วิธีที่นิยมใช้ก็คือ คือขอบเขตบนและขอบ เขตล่าง การป้องกันไม่ให้ โปรแกรมเข้ามานะครับ เห็นไหมครับขอบเขตล่าง ขอบเขตบน ขอบเขตบนขอบเขตล่าง ครับ ส่วนตัวของ ระบบ ปฏิบัติการ ใช้ ตัวของวิจิตร เตอร์ขอบเขตนะครับ ในการป้องกัน คราวนี้ในการแบ่งหน่วยความจำ แล้วว่าจะใช้วิธีการใดก็แล้วแต่นะครับ เรียกว่าการแตกกระจายนะครับ การแตกกระจายก็คือ ส่วนของหน่วยความจำที่ไม่ถูกใช้งาน ในระบบ แบ่งหน่วยความจำนะครับ แบ่งหน่วยความจำ ซึ่งเราเรียก การแตกกระจายนิออกเป็น 2 กรณี การมีการแตกกระจายภายนอกและการ กระจายภายในนะครับ การแตกกระจายภายนอก เป็นอย่างไรครับ มาดูนะครับ ส่วนที่ 1 การแตกกระจายภายนอก หมายถึง ส่วนของ หน่วย ความจำที่ไม่ถูกใช้งานในระบบ แบ่งหน่วยความจำขนาดคงที่ ไม่ถูกใช้งานเลยเห็นไหมครับส่วนที่ 1 ไม่ถูกใช้งาน ส่วน การแตกกระจายภายใน ดูนะครับภายใน หมายถึง ส่วนของ OM จำ ที่ถูกใช้งาน ที่ถูกใช้งานแต่ใช้งานไม่หมด ใช้ไม่หมดนะครับ นาฬิกา หน่วยความจำขนาดคงที่ ต่างกันนะครับ การแพร่กระจายภายนอกก็คือส่วนที่ ว่างไม่ถูกใช้งานเลย ส่วนการแตกกระจายภายในคือ ส่วน หน่วยความจำว่าง ถูกใช้แล้วใช้ไม่หมดนะครับ ข่าวนี้มันถูก การแบ่งหน่วยความจำ ขนาดคงที่ไม่คงที่ พี่เป็นขนาดคงที่นะคะ โทรออก แบบระบบ ปฏิบัติการ ได้ ถึง มีข้อจำกัด ก็เลย คิดค้นวิธีการที่ การแบ่งหน่วยความจำที่ขนาดไม่คงที่ เห็นไหมครับ ผู้ใช้ A ต้องการใช้สิทธิ์ ก็เลย เอาไปเลย 10 K นะครับ กูใช้ดีต้องการ 30 มาเข้าไป ขนาดไม่คงที่ครับ ขอให้มีพื้นที่ว่างเพียงพอก็สามารถจัดการ หน่วยความจำได้เลยนะครับ ระบบหลายโปรแกรมแบบ แบ่ง หน่วยความจำแบบไม่คงที่นะครับสามารถรัน ได้หลายโปรแกรมนะครับ ดูนะครับ ถึงแม้ว่า การแบ่งหน่วยความจำ แบบไม่คงที่นะครับ ก็ยังมีส่วนที่ไม่ถูกใช้งานเหมือนกันนะครับ เหมือนเดิม ถ้าเป็นขนาดคงที่ เรียกว่าการแตกกระจายนะครับ ส่วนถ้าเกิดใน ในกรณีใน พื้นที่ที่ไม่ถูกใช้งาน ใน การแบ่งหน่วยความจำขนาด ไม่คงที่เราเรียกว่า ช่องโหว่นะครับหรือโฮ คนเกิดขึ้นได้ยังไงครับ โปรแกรมฟรีโปรแกรม C Program a เกิดขึ้นแล้ว ข้างล่างสุด ช่องว่างช่องโหว่ สักระยะหนึ่ง โปรแกรม B จบ คือหน่วยความจำให้ระบบ เห็นไหมครับ ช่องโหว่เกิดขึ้นแล้ว สักพักหนึ่ง โปรแกรม ดีจบ คือหน่วยความจำให้ระบบ เปิดช่องโหว่ขึ้นแล้วนะครับ เมื่อกี้ เปิด Home ขึ้น ก็มีวิธีการ เอา โปรแกรมใหม่ ลงไปวางแทนนะครับซึ่งมีอยู่ 3 วิธีการ 1 เลือกเซลล์ที่พบก่อน และมีขนาด ใหญ่พอ ที่จะวางโปรแกรมใหม่ลงไป วิธีการที่ 2 เลือกหัวข้อที่เหมาะสม เมื่อเลือกโหมดที่เหมาะสมที่สุด ก็คือ เอาเข้าไปแล้วเหลือหน่วยความจำ เหลือ 6 ใหม่น้อยที่สุด นะครับ 3 เลือกโหดที่ใหญ่ที่สุด นะครับ ที่ใหญ่ที่สุด มาดูนะครับวิธีการในแต่ละวิธีเป็นยังไง ดูรูปนะครับ วิธีการที่ 1 เจอก่อนพบก่อน แต่ต้องมีเงื่อนไขว่าต้องมีเงื่อนไข มีพื้นที่ของ Home ได้เพียงพอนะครับ 1396 ได้ไหมครับ ได้ มาก่อนเลยพบก่อนเลยเจอก่อน เอาไปวางก่อนเลยนะคะ 2 เหมาะสมที่สุด เข้าไปวางเสร็จแล้ว โทรใหม่ที่เกิดขึ้น มีขนาดเหลือน้อยที่สุดถ้าเข้า 16 เหลือ 3 94 เหลือ 1 ถ้าเข้า 5 เข้าไม่ได้ ค่าเข้า 30 เหลือ 17 ไม่ครับ เหมาะสมที่สุด เรื่องโฮที่เข้าไปแล้ว ที่ทำให้เกิด Ho ใหม่น้อยที่สุด ซึ่งแบบที่ 3 วิธีการแบบที่ 3 ก็คือ โทรที่ใหญ่ที่สุด 30 ใหญ่กว่าเพื่อน คราวนี้ ในกรณีที่ มีโฮเกิดขึ้น พื้นที่ติดกัน กันนะครับติดกัน ถ้า OS มีความ สามารถนะครับ มันจะต้องมีความสามารถในการ ดับรวมเข้าไปด้วยกันเลย ลักหลับ นึกออกไหมครับ เมื่อมีโฮติดกัน วางติดกัน จับยุบรวมกันนะคะ อีกวิธีการหนึ่ง การอัดหน่วยความจำ หน่วยความจำ ก็คือ hijo ว่าง เกิดขึ้น ติดกันก็ได้ไม่ติดกันก็ได้ วิธีการอัดหน่วยความจำก็คือ ระบบจะหยุดการทำงานแล้วก็เช็คดูระบบ และการไปเอา หน่วยความจำที่ว่างๆ มาจับรวมกัน ให้ได้หน่วยความจำที่ใหญ่ขึ้นนะครับ เราเรียกว่าการรวบรวมขยะ นะครับ เหมือนโปรแกรม Flash ปลอยากไปเรียนปฏิบัตินะครับ เราจะเห็นว่า โปรแกรม defrag ทำงานยังไง มาทีหลังทำไมไม่เอาแบบฝึกหัด เข้ามาเมื่อกี้ มาเอาแบบฝึกหัด แล้วทำอะไรอยู่ นี่ดูวิธีการรวบรวม นะครับ หน่วยความจำนะครับ เห็นไหมครับ รายงาน 123 หน่วยความจำ เกิดช่องว่างขึ้น กว้างขึ้นใหญ่ขึ้น นี่คือวิธีการอัดหน่วยความจำ คราวนี้มาดูระบบหลายโปรแกรม แบบสลับ โปรแกรม เมื่อกี้เป็นแบบ แบ่งหน่วยความจำนะครับ หน่วยความจำก็มี ตอนทำคงที่กับไม่คงที่นะครับ ก็คือ เมื่อโปรแกรม ถูก ใช้งาน เราเรียกว่าการสลับเข้านะครับ เข้ามาเข้ามาเข้ามา