(อาจารย์พิเชนทร์) บทนี้เรื่องของ... เรื่องของการจัดการ CPU นะครับ CPU CPU นะครับ ถือว่าเป็นอุปกรณ์ที่สำคัญนะครับ ในคอมพิวเตอร์ของเรานะครับ ครับ ก็บทที่ 3 นะครับ ก็เดี๋ยวสัปดาห์หน้าก็อีก 2 บท แล้วก็ก่อนรับปริญญา เราจะสอบมิดเทอมนะคะ สอบเก็บคะแนนนะครับ CPU นะครับ เราจะเห็นว่ามันมีความสำคัญนะครับ เป็นหัวใจหลักของคอมพิวเตอร์เลยนะครับ ดังนั้น การที่เราจะใช้งาน CPU ให้คุ้มค่านั้นเป็นหน้าที่หนึ่งของพวกเรานะครับ ที่ต้องจัดการ จัดการอย่างไรดีนะครับ นี่คือหลักการของการจัดการ CPU นะครับ การจัดการโปรเซสเซอร์นะครับ โปรเซสเซอร์หรือ CPU ตัวเดียวกันนะครับ การเปลี่ยนสถานะของ CPU ถือว่าเป็นมีค่าใช้จ่ายนะครับ ค่าใช้จ่ายในที่นี้นะครับ ของ CPU นี่ ก็คือเรื่องของเวลา การทำงานส่วนใหญ่ ก็คือเรื่องของเวลานะครับ เราจะทำอย่างไรให้มันใช้งานได้อย่างเต็มที่ได้อย่างมีประสิทธิภาพ มันก็เป็นหน้าที่ของระบบปฏิบัติการนะครับ ซึ่งตัวของ CPU จะเสียเวลาอยู่ 3 งานนะครับ ก็คือ 1. เก็บค่า register และสถานะของเครื่อง ก็คือเปิดขึ้นมาปุ๊บเก็บไว้นะครับ เสียเวลาวันที่ 1 นะครับ อันที่ 2 ในสถานะที่พร้อมเพื่อเข้ามาครอบครองตัวมันเองนี่ก็เสียเวลานะครับ วันที่ 3 โหลดค่า registerและสถานะของเครื่องบน PBC นี่คือ 3 วิธีทำเปิดการเสียเวลาขึ้น หน้าที่อันหนึ่งของระบบปฏิบัติการเลยนะครับ หน้าที่อันหนึ่งเลย คือการจัดการ CPU เราจะทำยังไงให้มีประสิทธิภาพมากหรือน้อยขึ้นอยู่กับ CPU ขึ้นอยู่กับตัวของระบบปฏิบัติการด้วยนะครับ เรามาดูกันว่าในการคัดเลือก Process เข้ามา Run ถือว่าเป็นหน้าที่อันหนึ่งของ OS ซึ่งเราเรียกมันว่าการจัดคิวในระยะสั้น คือ หมายความว่าการจัดคิว หมายถึง การที่มันไปเลือก Process ที่ต้องการที่จะครอบครอง 11 ก็มีหลายรูปแบบนะคะ แบบที่ 1 นะครับ แบบที่ 1 เลยก็คือการจัดคิว แบบ FCSS First come First service Process ไหนมารอคิวก่อน เข้ามาครอบครอง CPU ก่อนนะครับ อันนี้จัดง่ายนะครับ 1 2 3 4 5 6 ต่อคิวเอาไว้นะครับ แต่ถ้า Process ไหนเข้ามาใน CPU แล้วต้องการไปใช้งานอุปกรณ์ input output เช่น ไปทำงานส่งข้อมูลไปที่พรินเตอร์ ก็จะเข้ามาเข้าที่เอามาครอบครอง CPU แทนนะครับ เข้ามาครอบครอง CPU ได้ ข้อดีจัดคิวง่ายอันนี้ง่ายเลยครับ ไม่ยุ่งยากนะครับ ข้อเสียต้องรอนาน ทำไมต้องรอนานครับ เนื่องจากว่าตัวของสมมตินะครับ ว่า Process Process A ต้องการเข้าไปครอบครอง CPU 1 วินาที B ต้องการเข้าไปครอบครองอยู่ 2 ชั่วโมง Process C ต้องการเข้าไปครอบครอง CPU 3 วินาทีแสดงว่า Process C ต้องรอถึง 2 วินาที 2 ชั่วโมงการจัดคิวแบบที่ 2 นะครับ เป็นการจัดคิวแบบ RR นะครับ Round Robin นะครับ การจัดคิวแบบนี้นะคะ การจัดคิวแบบวนลูป ก็คือหมายความว่าเข้าไปแล้วนะครับ มีเวลาควอนตัมเข้ามาจับการเข้าไปแบบวนลูป แบบ FCSS แบบที่ 1 ไม่มีเวลาควอนตัม แบบนี้มีเยอะเวลาคนตั้มเวลาควอนตัมคืออะไรครับ จำได้ไหม หายไป 2-3 อาทิตย์เวลาควอนตัมคืออะไร หูดีตอบหน่อยสิ เราควรทำคืออะไร อาทิตย์หน้าก็อีก 2 บทติดต่อไปรับปริญญาก็สอบนะครับ เวลาควอนตัมคืออะไรครับ เวลาที่กำหนดให้ CPU หรือว่าให้คนละเส้น ให้สิทธิ์ครอบครองได้นานเท่าไหร่เช่น 5 วินาที 10 วินาที 15 วินาที ก็ว่าไปนะครับ การจัดคิวแบบที่ 3 นะครับ การจัดคิวแบบลำดับความสำคัญ การจัดคิวแบบนี้จะดูว่า Process มีความสำคัญมากน้อยแค่ไหนนะครับ เราจะเป็นคนกำหนดตัวเองว่าเหตุใดมีความสำคัญมากน้อยแค่ไหนนะครับ ยกตัวอย่างเช่น ซ้ายมือนะครับ Process A B C D ลำดับความสำคัญเท่ากับ 10 8 5 4 มันจะเรียงเข้าตามคิวที่มีลำดับความสำคัญมากน้อยนะครับ แต่สังเกตมาว่ามีความสำคัญเท่ากับ 6 เข้ามาต่อคิว Process A B C นี่คือจัดคิวแบบลำดับความสำคัญนะคะ เหตุใดความสำคัญ ไม่มีความสำคัญนะครับ มีความสำคัญมากน้อยแตกต่างกันอย่างไร เรามาพิจารณานะครับ 1. ผู้ใช้เจ้าของ Process เป็นคนกำหนดเอง หรือตัวเราเองกำหนดเอง ว่า Process ใดมีความสำคัญมีความมากน้อยขนาดไหน เช่น Process ของของผู้ควบคุมหรือผู้ดูแลระบบมีความสำคัญมากกว่าความสำคัญมากกว่าของผู้ใช้งานธรรมดานะครับ 2. ประเภทของ Process นะครับ ประเภทของ Process Process ที่อยู่ในโหมดของแบตมีความสำคัญน้อยกว่า โหมดแบตคืออะไรครับ โหมดแบต คือ การทำงานเป็นลำดับขั้น ผมยกตัวอย่างเช่นนะครับ สมมตินะ สมมตินะ เราเขียนเกมเรากำหนดว่าอยู่ในโหมดของเรายิงระเบิดออกไป 2 วันถึงรู้โดนฝั่งตรงข้ามหรือเปล่า มันจะประมวลผลเป็นลำดับขั้นตอนไปเรื่อย ๆ แต่ถ้าเป็นโหมดโต้ตอบ ยิงปุ๊บสวนปั๊บ เหมือนเกม เอาอีกตัวอย่างหนึ่ง ตัวอย่างเช่น อุบลอุบล ผมเดินมาเขต 2 อุบลเลยอยู่ อุบลต้องคิดว่าเพราะอะไร เพราะอะไรอาจารย์ถึงมาเขกหัวผม และอุบลก็คิดต่อไปว่าโอ๊ย เจ็บ แล้วไปหาหมออะไรประมาณนี้นะครับ เป็นขั้นเป็นตอนไปแต่ถ้าเป็นโหมดโต้ตอบ ผมเขกหัวอุบลปุ๊บ อุบลสวนกลับมาปั๊บนะครับ ดังนั้น การเปลี่ยนโปรแกรมในมีอยู่หลายโหมดนะครับ ดังนั้น โหมดโต้ตอบมักจะมีความสำคัญมากกว่าหมดแบตนะครับ โหมดแบตต้องรอประมวลผลนะครับ วิธีการพิจารณาลำดับความสำคัญวันที่ 3 ก็คือถ้าเราอยากรู้ ก็คือข้อใดมีความสำคัญมากกว่ากัน ผู้ใช้ยอมจ่ายสตางค์ เราเคยสังเกตไหมครับ เวลาเราสังเกตเปิดเว็บไซต์ บางทีเปิดขึ้นมาเว็บไซต์บางเว็บไซต์เป็นรูปกากบาท เคยเห็นไหม เคยสังเกตไหม โดยเฉพาะเว็บไซต์ที่เกี่ยวกับการศึกษา ช้าไหมครับ เช่น เว็บมหาลัยเราอย่างนี้ บางทีเข้าพร้อมกันหลาย ๆ คนหลาย ๆ พันคน เอาง่าย ๆ ตอนนี้ปริญญาใช่ไหม เปิดเข้าลงทะเบียนพร้อม ๆ กันเป็นอย่างไรครับ ล่มไหม เข้าแทบไม่ได้เลยนะครับ เคยบอกนักศึกษานะครับ แล้วก็บอกมาทุกรุ่นนะ การเขียนโปรแกรมให้เราไปดูการเขียนโปรแกรมของของเว็บโป๊ ไม่ได้ให้ไปดูเว็บโป๊นะไปดู Code ของ... ไปดู source Code ของเว็บโป๊ทำไมเขาเขียนแล้วมันขึ้นเร็วจัง ทั้งภาพเคลื่อนไหว ทั้งภาพนิ่งภาพทุกอย่างนะ สังเกตนะ พอเวลาเรามาเขียนเว็บของเราเวลาขึ้นเป็นอย่างไรครับ ช้า บางทีไม่เห็น บางทีไม่มี เพราะอะไรครับ เพราะเราไม่จ่ายสตางค์ เว็บการพนันตัวดีเลย ขึ้นทุกที่เว็บ การพนันเขาสามารถเร็วได้ เพราะว่าเขาเช่าที่เขาเสียสตางค์เยอะ มีความสำคัญมากในระบบนะครับ มีใครเคยเข้าไปดูไหม เข้าไปดูแล้วอย่าไปเล่นนะครับ เคยสอนนักศึกษาเข้าไปดู ให้ไปดูโค้ดของมัน ว่ามันเขียนอย่างไรนะครับ แล้วเราเอามาเขียนตามนะครับ อันที่ 4 นะครับ วิธีการพิจารณาที่ 4 ก็คือเวลานะครับ ระยะเวลาที่ Process อยู่ในระบบนะครับ ถ้า Process ใดอยู่ในระบบนาน นั่นคือมันมีความสำคัญนะครับ เช่น Process ของอะไรครับ เราเปิดคอมพิวเตอร์ขึ้นมาปุ๊บ Process ที่ run ก่อนเพื่อนเลย นั่นก็คือ Process ของระบบปฏิบัติ Run ก่อนเพื่อนเลยนะครับ แสดงว่านั่นมีความสำคัญมากนะครับ เราไม่เชื่อเราก็ไปลบ ลบออกลบระบบปฏิบัติการออกจากเครื่อง เครื่องเราก็จะทำงานไม่ได้ นอกจากระบบโปรแกรมปฏิบัติการแล้วคืออะไรครับ ที่มันอยู่นาน ๆ เลย โปรแกรมอะไรครับ ลองนึกดูสิ เปิดขึ้นมาแล้วมีตลอด เห็นตลอดอย่างนี้ นอกจากระบบปฏิบัติการแล้วมีอะไรอีก โปรแกรมอะไรเอ่ย โปรแกรมแอนตี้ไวรัส ผมว่าทุกเครื่องจะลงโปรแกรมแอนตี้ไวรัส โปรแกรมแอนตี้ไวรัสที่มีทั้งใช้ฟรี และเสียสตางค์ ผมแนะนำนะครับ ว่าเราอยากไปโหลดโปรแกรมที่บอกว่าใช้ฟรีตลอดชีวิตครับ ใช้ฟรีตลอดชาตินะครับ ไอ้ตัวนั้นล่ะตัวดี ไวรัสยอมเสียเงิน 500 1,000 ผมเคยโดนมาแล้วนะครับ เธอไม่ยอมเสียสตางค์ ใช้ฟรีตลอดสุดท้ายแล้วตัวมันเองไวรัสนะครับ นี่คือการจัดคิวแบบเรียงลำดับความสำคัญนะครับ มีอยู่ 4 อย่างผู้ใช้กำหนดเองอยู่ในระบบนั้น ๆ ยอมจ่ายสตางค์เพิ่มขึ้น ประเภทของ Process ทีนี้การดูการจัดคิวแบบที่ 4 นะครับ การจัดคิวแบบ Sourc Job Next ครับ ผลการคัดเลือก Process ด้วยวิธีการ Process ที่ต้องการเวลาน้อยที่สุด ต้องการมารอคิว 1 2 3 4 5 คำนวณว่าเข้าไปใน CPU แล้วว่าต้องการเวลาน้อยที่สุด เช่น Process A ต้องการใช้ 5 วินาที Process B ต้องการใช้ 6 วินาที Process C ต้องการใช้ 10 วินาที กำหนดเวลาควอนตัมตั้งไว้ที่ 5 วินาทีนะครับ ต้องการเวลาน้อยที่สุดคืออะไรครับ คืออะไรเอ่ย Process A B หรือ C A B C Process อะไรครับ ที่ต้องการเวลาน้อยที่สุด ชื่อก็บอกอยู่แล้วเวลาที่ต้องการเวลาน้อยที่สุด ก็คือ Process A นะครับ การจัดคิวแบบที่ 5 นะครับ การจัดคิวแบบ SRT การจัดซื้อแบบ SRT ทีนี่ จัดการแบบจะเลือก Process ที่เหลือเวลาน้อยที่สุด ตัวอย่าง เมื่อกี้ต้องการ 1 วินาที Process B ต้องการ 5 วินาที Process C ต้องการ 8 วินาที สมมตินะการจัดอยู่กับ SRT ที่ต้องการเวลาน้อยที่สุด เมื่อคำนวณแล้วเวลาควอนัตม เอาไว้ 5 วินาที การเปลี่ยนชื่อเฉย ๆ