บทนี้เรื่องของ เรื่องของการจัดการ CPU นะครับ CPU นะครับ หรือว่าเป็นก่อนที่สำคัญนะครับ ในคอมพิวเตอร์ของเรานะครับ บทที่ 3 นะครับ เดี๋ยวสัปดาห์หน้าก็อีก 2 เดือนแล้วก็ก่อนรับปริญญาเราจะสอบมิดเทอมนะคะ เก็บคะแนนนะครับ CPU นะครับ เราจะเห็นว่ามันมีความสำคัญนะครับ หัวใจของคอมพิวเตอร์เลยนะครับ ดังนั้นการที่เราจะใช้งาน CPU ให้คุ้มค่านั้นเป็นหน้าที่ 1ของพวกเรานะครับ ที่ต้องจัดการจัดการอย่างไรดีนะครับ อันนี้คือหลักการจัดการ CPU นะครับ การจัดการนะครับ centrifuge ตัวเดียวกันนะครับ การเปลี่ยนสถานะของ CPU ถือว่าเป็นค่าใช้จ่ายนะครับ ค่าใช้จ่ายในที่นี้นะครับ ของ CPU นี้ก็คือเรื่องของเวลาการทำงานส่วนใหญ่ของโปรเซสเซอร์นะครับ CPU ก็คือเรื่องของเวลานะครับ เราจะทำอย่างไรให้มันใช้งานได้อย่างเต็มที่และมีประสิทธิภาพมันเป็นหน้าที่ของระบบปฏิบัติการ ซึ่งตัวของ CPU จะเสียเวลาอยู่ 3 งานนะครับ คืนหนึ่งค่า Register ค่าสถานะของเครื่องคือเปิดขึ้นมาปุ๊บไปแล้วนะครับ เสียเวลาอยู่วันที่ 1 นะครับ อันที่ 2 คัดเลือกโปรเซสสถานะพร้อมเพื่อเข้ามาครอบครองในตัวมันเองนี่ก็เสียเวลา อันที่ 3โหลดค่า Register เช็คสถานะของเครื่องบน CPU อันนี้คือทำให้เกิดการเสียเวลาขึ้นนะครับ พี่อันนึงของระบบปฏิบัติการเลยนะครับ ที่อันหนึ่งเลยนอกจากการจัดการโปรเซสแล้วนะครับ ที่ 1 อันที่ 2 นะครับ มานี้ก็คือการจัดการ CPU เราจะทำอย่างไรนะครับ การทำงานของ CPU นั้นจะมีประสิทธิภาพมากหรือน้อยขึ้นอยู่กับ CPU ขึ้นอยู่กับของระบบปฏิบัติการด้วยนะครับ เรามาดูกันในการคัดเลือกหาโปรเซสเข้ามากันถือว่าเป็นหน้าที่อันหนึ่งของ OS เราเรียกมันว่าการจัดคิวในระยะสั้นก็คือหมายความว่าจัดคิวระยะสั้นหมายถึงการที่มันเป็นเลือดที่ต้องการจะครอบครอง CPU ซึ่งก็จะคิดว่าระยะสั้นนั้นมีหลายรูปแบบ แบบที่ 1 นะครับ พี่หนึ่งเลยก็คือการจัดคิวแบบนะครับ First come First Service ไหนมารอคิวก่อนนะเข้าไปครอบครอง CPU ก่อนอันนี้จัดง่ายนะครับ มีโปร 70 ตัว มาเข้าคิว 1 2 3 4 5 6 เข้าไปครอบครอง CPU ตามคิวของตัวเองพี่ต่อคิวเอาไว้นะครับ เปอร์เซ็นไหนเข้าไปใน CPU แล้วต้องการไปใช้งานอุปกรณ์อินพุตเอา เช่น ทำงานส่งข้อมูลที่อินเตอร์ส่งข้อมูลออกไปออกไปปุ๊บเข้ามาแทนที่เข้ามาครอบครองนะครับ ใน CPU ของเรานั้นเอาไปครอบครองได้ทีละ Process นะครับ ข้อดีจัดคิวง่ายอันนี้ง่ายเลยครับ ไม่ยุ่งยากนะครับ ข้อเสียต้องรอนาน ทำไมต้องรอนานครับ เนื่องจากว่าตัวของ Process สมมุตินะครับ ว่าProcess A ต้องการเข้าไปครอบครอง CPU B เท่ากับเท่าของ CPU 2 ชั่วโมง Process C ต้องการเข้าไปครอบครอง CPU 3 วินาทีนั่นแสดงว่า Process Cต้องรอถึง 2 ชั่วโมงนะครับ ต้องรอนานนะครับ แบบที่ 2 ครับ การจัดคิวแบบที่ 2 เป็นการจัดคิวแบบ Round Robin นะครับ ถ้าจะคิดแบบนี้นะครับ การจัดคิวแบบวน Loop นะครับ คือ หมายความว่าเข้าไปแล้วนะครับ มีเวลาควอนตัมนะครับ ช่วยกันเข้าไปแบบรั้วแบบที่ 1 ไม่มีระดับควันตั้มแบบนี้มีเวลา ควันตั้มคืออะไร ครับ จำได้ไหม หายไป 2-3 อาทิตย์ เวลาควันตั้มคืออะไร ผู้ดีตอบหน่อยสิเวลาความตั้มคืออะไร อาทิตย์หน้าอีก 2 บทอาทิตย์ต่อไปอาทิตย์นึงสอบครับ เวลาควอนตั้มคืออะไร ครับ เวลาที่กำหนดให้ CPU ให้โพเซสเข้าไปครอบครอง 10 ปีอยู่ได้นานเท่าไรเช่น 5 วิ 15 วิก็ว่าไปนะครับ การปฏิบัติการนะครับ การจัดคิวลำดับความสำคัญคือแบบนี้จะดูว่า Process ที่รอคิวนั้นมีความสำคัญมากน้อยเพียงใดนะครับ เราจะเป็นคนกำหนดเองนะครับ เหตุใดมีความสำคัญมากน้อยขนาดไหน ยกตัวอย่างเช่นซ้ายมือนะครับ Process A B C D E มีลำดับความสำคัญในระดับ จะเรียงตามคิวที่มีลำดับความสำคัญมากน้อยนะครับ เวลา Process เข้ามาต่อคิว Process มีความสำคัญเท่ากับ 6 มันก็จะคิดแบบใหม่แล้วนะครับ เอาเป็นแบบa B C D นะครับ เป็นการจัดคิวโดยลำดับความสำคัญนะครับ รู้ได้อย่างไรความสำคัญ Process ใดไม่มีความสำคัญนะครับ ความสำคัญมากน้อยต่างกันอย่างไรนะครับ มาดูนะครับ 1 ผู้ใช้เป็นเจ้าของ Process เป็นเจ้าของเป็นคนกำหนดเองนะครับ คือตัวเราเองเป็นคนกำหนดเองว่าเหตุใดมีความสำคัญมากน้อยขนาดไหนนะครับ เช่นโปรเซสของผู้ควบคุมหรือผู้ดูแลระบบมีความสำคัญมากกว่าธรรมดานะครับ 2 ประเภทของโปรเซสนะครับ ประเภทของ มีความอยู่ในโหมดของมักมีความสำคัญมากกว่าโหมด หมดแบตคืออะไร ครับ บทบาทคือทำงานเป็นลำดับขั้นนะครับผม ยกตัวอย่างเช่นสมมตินะครับ สมมติเราเขียนเกมรอกำหนดว่าอยู่ในโหมดของเรายิงระเบิดออกไป 2 วันถึงรู้ว่าระเบิดโดนฝั่งตรงข้ามหรือเปล่า มันจะประมวลผลเป็นลำดับขั้นตอนไปนะครับ แต่ถ้าเป็นโหมดโต้ตอบยิงปุ๊บส่วนปั๊บเหมือนเกมครับ ยกตัวอย่างอย่าง เช่น อุบล อุบล ผมเดินมาเขกหัวอุบลเลย ถ้าอยู่ในโหมดแบต อุบลต้องคิดว่าเพราะอะไร อาจารย์ถึงมาเขกหัวผมและอุบลก็คิดต่อไปว่าเจ็บ เจ็บแล้วไปหาหมอประมาณนี้นะครับ เป็นขั้นเป็นตอนไปแต่ถ้าเป็นในโหมดโต้ตอบผมเขกหัวอุบลปุ๊บอันนี้จะเป็นนะครับ เพราะฉะนั้นการเขียนโปรแกรมในระบบคอมพิวเตอร์ของเรานะครับ มีหลายโหมดดังนั้นหมดโต้ตอบมีความสำคัญมากกว่าจะต้องรอประมวลผลวิธีการพิจารณาลำดับความสำคัญ วันที่ 3 ก็คือถ้าเราอยากรู้ว่า Process ใดสำคัญกว่ากัน เราเคยสังเกตนะครับ เวลาเราเปิดเว็บไซต์บางทีเราเปิดขึ้นมาเว็บไซต์ บางเว็บไซต์เป็นรูปกากบาทเคยเห็นไหมเคยสังเกตไหมโดยเฉพาะเว็บไซต์ที่เกี่ยวกับการศึกษา ช้าไหมครับ เว็บมหาวิทยาลัยเราเปิดเข้าทำพร้อมกันหลายคนพันคน อย่างเช่นตอนนี้รับปริญญาใช่ไหม เปิดเข้าปริญญาพร้อมกันไหม เข้าแทบไม่ได้เลยนะครับ ผมเคยบอกนักศึกษานะครับ แล้วก็บอกมาทุกรุ่นนะครับ การเขียนโปรแกรมให้เรามาดูการเขียนโปรแกรมของโป๊ ไม่ได้ให้ไปดูเว็บโป๊นะ ให้ไปดู Source Code ของทำไมเขาเขียนแล้วมันขึ้นเร็วจัง ทั้งภาพเคลื่อนไหว ทั้งภาพนิ่ง และทุกอย่าง สังเกตนะพอเรามาเขียนเว็บของเราพอเราขึ้นไปปุ๊บเป็นอย่างไรครับ ช้า บางทีไม่เห็น บางทีไม่มี ไม่มีเพราะอะไรเพราะเราไม่จ่ายตังค์เว็บโป๊เว็บการพนันเอาง่าย ๆ เว็บการพนันนี่พอดีเลยเห็นไหมขึ้นทุกที่เว็บการพนันเขาสามารถทำให้มันเร็วได้เพราะว่าเขาไปเช่าพื้นที่ เขายอมเสียสตางค์เยอะ นี่คือมีความสำคัญมากในระบบครับ มีใครเคยเข้าไปดูไหมเข้าไปดูแล้วอย่าไปเล่นนะครับ ผมเคยสอนนักศึกษาเข้าไปดู ให้ไปดูโค้ดของมัน ว่าเขาเขียนอย่างไรนะครับ และเราเอาไปเขียนตามนะครับ อันที่ 4 นะครับ วิธีการพิจารณาอันที่ 4 ก็คือเวลานะครับ ระยะเวลาที่ Process นั้นอยู่ในระบบนะครับ ถ้าProcessใดอยู่ในระบบนานนั่นแสดงว่ามีความสำคัญนะครับ เช่นProcess ของอะไรครับ มาเปิดคอมพิวเตอร์ขึ้นมา Process รันก่อนเพื่อนเลย ก็คือระบบปฏิบัติการจะก่อนเพื่อนเลยนักแสดงว่ามีความสำคัญมากนะครับ ถ้าเราไม่เชื่อเราก็เราเป็นนะครับ ลบออกลบระบบปฏิบัติการออกจากเครื่องนะครับ เครื่องเราก็จะทำงานไม่ได้นะครับ โปรแกรมระบบปฏิบัติการทำงานแล้วยังมีอะไรอีกที่อยู่ในระบบนาน ๆ เลย โปรแกรมอะไรครับ ลองนึกดูสิ เปิดขึ้นมาแล้วมีตลอดเห็นตลอด นอกจากระบบปฏิบัติการแล้วอะไรอีก โปรแกรมอะไรอะไร โปรแกรมแอนตี้ไวรัส ผมว่าทุกเครื่องจะลง antivirus ไว้นะครับ แอนตี้ไวรัสก็จะมีทั้ง ใช้ฟรีเสียตังค์ผมแนะนำนะครับ ว่าเราอย่าไปโหลดโปรแกรมที่บอกว่าใช้ฟรีตลอดชีวิตนะครับ ใช้ฟรีตลอดชาติอย่างนี้ ตัวนั้นแหละครับ เป็นไวรัส ยอมเสียเงิน 500 1,000 ผมเคยโดนมาแล้วนะครับ ก็คือไม่ยอมเสียสตางค์มาใช้ฟรี ใช้ฟรีมาตลอดปรากฏว่าตัวมันเป็นไวรัสเองนี่คือไวรัส การจัดคิวแบบเรียงลำดับความสำคัญนะครับ มีอยู่ 4 อย่างผู้ชายกำหนดเองนะครับ ในระบบกันนานนะครับ ยอมจ่ายสตางค์เพิ่มขึ้น ประเภทของ Process นะครับ การจัดคิวแบบที่ 4 แบบที่ 4 การจัดคิวแบบ sjn นะครับ อย่างไรถ้าจะคิดแบบนี้แบบนี้ เป็นการคัดเลือกโดยวิธีการเลือก Process ที่ต้องการเวลาน้อยที่สุดมารอคิว 1 2 3 4 5 มันจะคำนวณเข้าไปใน CPU แล้วเข้าไปครอบครอง CPU แล้ว ต้องการเวลาน้อยที่สุด เช่น Process A ต้องการใช้ 5 วินาที Process Bต้องการใช้ 6 วินาที Process C ต้องการใช้เวลา 10 วินาทีเวลา quantum ไปที่ 5 วินะครับ Process ที่ต้องแวะกาลเวลาน้อยที่สุดคืออะไรเอ่ยProcess A หรือ B หรือ Process ไหนครับ ที่ต้องการเวลาน้อยที่สุด ชื่อก็บอกอยู่แล้วว่าต้องการเวลานานที่สุด ก็ต้องเป็นโปรเซส A นะครับ การจัดคิวแบบที่ 5 นะครับ แบบที่ 5 คิวแบบ SRT การจัดคิวแบบนาทีนี้จะเป็นคล้าย ๆ กับการจัดคิวแบบ SJN เป็นเลือกเอาเวลาที่น้อยที่สุด ตัวอย่างนี้ Processa ต้องการต้องการ 5 วิ Process ต้องการแบบ Process เศษที่เหลือเวลาน้อยที่สุดมันเข้าไปเอาของ CPU แล้ว Process A ใช่ไหมขวัญตั้มมันเหลือ 5 วิ