(อาจารย์พิเชนทร์) ดูนะครับ บทนี้เรื่องของ เรื่องของการจัดการ CPU นะครับ CPU CPU นะครับ ถือว่าเป็นอุปกรณ์ที่สำคัญนะครับ ในคอมพิวเตอร์ของเรานะครับ ครับ ก็บทที่ 3 นะครับ เดี๋ยวสัปดาห์หน้าก็อีก 2 บท แล้วก็ก่อนรับปริญญาเราจะสอบมิดเทอมนะครับ สอบเก็บคะแนนนะครับ CPU นะครับ เราจะเห็นว่ามันมีความสำคัญนะครับ เป็นหัวใจหลักของคอมพิวเตอร์นะคะ ดังนั้น การที่เราจะใช้งาน CPU ให้คุ้มค่า เพราะว่าเป็นหน้าที่หนึ่งของพวกเรา ที่ต้องจัดการจัดการอย่างไรดี นี่คือหลักการของการจัดการ CPU นะครับ การจัดการโปรเซสเซอร์นะครับ Processer หรือ CPU ตัวเดียวกันนะคะ การเปลี่ยนสถานะของของ CPU ถือว่าเป็นค่าใช้จ่ายนะครับ ค่าใช้จ่ายในที่นี้นะครับ ของของ CPU นี่ ก็คือเรื่องของเวลานะครับ การทำงานส่วนใหญ่ของของ Processer นะครับ ของ CPU ก็คือเรื่องของเวลา เราจะทำอย่างไรให้มันใช้งานได้อย่างเต็มที่ อย่างมีประสิทธิภาพ มันก็เป็นหน้าที่ของระบบปฏิบัติการนะครับ ซึ่งตัวของ CPU จะเสียเวลาอยู่ 3 งานนะครับ ก็คือ 1. เก็บค่า register และสถานะของเครื่อง คือ เปิดขึ้นมาปุ๊บเก็บแล้ว เสียเวลาอยู่อันที่ 1 นะครับ อันที่ 2 คัดเลือก Process ในสถานะพร้อม เพื่อเข้ามาครอบครองตัวมันเอง อันนี้ก็เสียเวลานะครับ อันที่ 3 โหลดค่า register และสถานะของเครื่อง บน pcb นี่คือ 3 งาน ที่ทำให้เกิดทำให้เสียเวลาขึ้นนะครับ หน้าที่อันหนึ่งของระบบปฏิบัติการเลยนะครับ หน้าที่อันหนึ่งเลย นอกจากการจัดการโปรเซสแล้ว บทที่แล้ว บทที่ 2 แล้วก็มาบทนี้ ก็คือการจัดการ CPU เราจะทำอย่างไรนะครับ ในการทำงานของ CPU จะมีประสิทธิภาพ มากหรือน้อยขึ้นอยู่กับ CPU ขึ้นอยู่กับตัวของระบบปฏิบัติการด้วยนะครับ เรามาดูกันว่าในการคัดเลือกหา Process เข้ามารันนะครับ ถือว่าเป็นหน้าที่อันหนึ่งของ OS ซึ่งเราเรียกมันว่า "การจัดคิวในระยะสั้น" ก็คือหมายความว่าการจัดคิวระยะสั้นหมายถึงว่าการที่มันเป็นเรื่องที่เข้าคลอง CPU ซึ่งการจัดคิวระยะสั้นก็มีหลายรูปแบบนะครับ แบบที่ 1 นะครับ แบบที่ 1 เลย ก็ คือกันจัดคิวfcsfsนะครับ First come First service คือ Process ไหนมารอคิวก่อนได้เข้าไปครอบครอง CPU ก่อน อันนี้จัดง่ายนะครับ Process 1 2 3 4 5 ก็เข้าไปเข้าคิวตามที่ตัวเองต่อคิวเอาไว้นะครับ แต่ถ้า Process ไหนเข้าไปใน CPU แล้ว ต้องการไปใช้อุปกรณ์อินพุต output เช่น ไปทำงานอยู่ไปที่พรินเตอร์ เปอร์เซ็นต์มันก็จะออกไปออกไปปุ๊บเปิดใหม่ก็เข้าไปแทนที่เข้ามาครอบครองแทนนะครับ ใน CPU ของเราเข้าไปครอบครองได้ทีละ ข้อดี จัดคิง่าย อันนี้ได้เลยครับ ไม่ยุ่งยาก ข้อเสีย ต้องรอนาน รอนานเนื่องจากว่า Process สมมุตินะครับ Process A ต้องการเข้าไปครอบครอง CPU วิ Process B ต้องการเข้าไปครอบครอง CPU 2 ชั่วโมง Process D ต้องการเข้าไปครอบครอง CPU 3 วินาที นั่นแสดงว่าต้องรอถึง 2 ชั่วโมงนะครับ ถึงต้องรอนานนะครับ การจัดคิวแบบที่ 2 นะครับ การจัดคิวแบบที่ 2 เป็นการจัดคิวแบบ RR นะครับ round Robin การจัดคิวแบบนี้นะครับ เป็นการจัดคิวแบบวน loop การจัดคิวแบบวน loop ก็คือหมายความว่าเข้าไปแล้วนะครับ มีเวลาควอนตัมมาจับนะครับ เป็นการเข้าไปแบบวน loop การจัดคิวแบบ fcfs ไม่มีเวลาควอนตัม ภาพนี้มีเวลาควอนตัม จำได้ไหม หายไป 2-3 อาทิตย์ ควอนตัม เวลาควอนตัมคืออะไร หูดีตอบหน่อยสิ เวลาควอนตัมคืออะไร อาทิตย์หน้าก็อีก 2 บท อาทิตย์ออกไปก่อนรับปริญญาสอบนะครับ Process คืออะไร ครับ เวลาที่กำหนดให้ CPUหรือให้เอาไปครอบครอง civil ได้เมื่อไหร่เช่น 5 วิ 10 วิ 15 วิก็ว่าไปนะครับ การจัดคิวแบบที่ 3 นะครับ การจัดคิวแบบลำดับความสำคัญ การจัดคิวแบบนี้ จะดูว่าโปรเซสที่มารอคิวนั้นมีความสำคัญมากขนาดไหนนะครับ เราจะมาเป็นคนกำหนดเองว่า Process ใดมีความสำคัญมากน้อยขนาดไหนนะครับ ยกตัวอย่างเช่น ซ้ายมือนะครับ Process A b c d eนะครับ ระดับความสำคัญเท่ากับ 10 8 5 4 มันจะเลี้ยงข้าวตามคิวที่มีระดับความสำคัญมาก น้อยนะครับ แต่สังเกตนะครับ พอ Process A เข้ามาต่อคิว Process e ที่มีความสำคัญเท่ากับ 6 มันต้องจัดคิวแบบใหม่แล้วนะครับ จัดคิวแบบ a b c e นี่คือการจัดคิวอยู่ในระดับความสำคัญ เราจะรู้ได้อย่างไรว่าโปรเซสใดมีความสำคัญ โปรเซสใดไม่มีความสำคัญนะครับ มีความสำคัญมากน้อยต่างกันอย่างไรนะครับ เรามาดูหลักพิจารณานะครับ 1. ผู้ใช้ป็นเจ้าของ Process เป็นคนกำหนดเอง หรือตัวเราเองกำหนดเองว่า Process ใดมีความสำคัญมากน้อยขนาดไหนนะครับ เช่น โปรเซสของผู้ควบคุม หรือผู้ดูแลระบบ มีความสำคัญมากกว่าโปรเซสของ User ธรรมดานะครับ 2. ประเภทของ Process นะครับ ประเภทของโปรเซส Process ที่มีอยู่ในโหมดของแบตช์ มักมีมาความสำคัญมากกว่าหมวดโต้ตอบ โหมดแบตช์คืออะไรครับ โหมดแบตช์ คือ การทำงานเป็นลำดับขั้นครับผม ยกตัวอย่าง เช่น สมมตินะสมมติ เราเขียนเกม เรากำหนดว่าอยู่ในโหมดของแบตช์ เรายิงระเบิดออกไป 2 วันถึงรู้ว่าระเบิดโดนฝั่งตรงข้ามหรือเปล่านะครับ มันจะประมวลผลเป็นระดับขั้นตอนไปเรื่อย ๆ แต่ถ้าเป็นโหมดโต้ตอบ ยิงปุ๊บ สวนปั๊บ เหมือนเกมนะครับ หรือเอาตัวอย่างหนึ่ง เช่น อุบลนะ อุบลนี่ ผมเดินมาเขกหัวอุบลเลย ถ้าอยู่ในโหมด แบตช์ บ้างคิดว่าเพราะอะไรอาจารย์ถึงมาเก็บหัวผมแล้ว อุบลก็คิดต่อไปว่า โอ๊ย เจ็บ แล้วไปหาหมออะไรประมาณนี้นะครับ เป็นขั้นเป็นตอนไปแต่ถ้าเป็นในโหมดโต้ตอบหวงอุบลสวนกำปั้นมาปั๊บ นี่คือบ่ต้องการแบบโต้ตอบนะครับ ฉะนั้น การเขียนโปรแกรมใดในโปรแกรมคอมพิวเตอร์เรานะครับ มันมีอยู่หลายโหมดนะคะ ดังนั้นโหมโตตอบจะมีความสำคัญมากกว่าเพราะแบตช์ ต้องรอประมวลผลนะครับ วิธีการพิจารณาระดับความสำคัญอันที่ 3 ก็คือถ้าเราอยากรู้ว่า Process ใดสำคัญกว่ากัน ผู้ใช้ยอมจ่ายสตางค์ เราเคยสังเกตนะครับ เวลาเราลองเปิดเว็บไซต์ บางทีเราเปิดเว็บไซต์ขึ้นมา บางทีบางเว็บไซต์เป็นรูปกากบาท เห็นไหม เคยสังเกตไหม โดยเฉพาะเว็บไซต์เกี่ยวกับการศึกษา ช้าไหมครับ เช่น เว็บมหาวิทยาลัยเราอย่างนี้ บางทีเปิดเข้าออกพร้อมกันหลาย ๆ คน หลาย ๆ พันคน เช่น ตอนนี้รับปริญญาใช่ไหม เปิดเข้าลงทะเบียนพร้อมกันเป็นอย่างไรครับ ล่มไหม เข้าแทบไม่ได้เลยนะครับ ผมเคยบอกนักศึกษานะครับ แล้วก็บอกมาทุกรุ่นนะ การเขียนโปรแกรม ให้เราไปดูการเขียนโปรแกรมของของเว็บโป๊ ไม่ได้ให้ไปดูเว็บโป๊นะ ไปดู Code ของ source Code ของเว็บโป๊ ทำไมเขาเขียนแล้วมันขึ้นเร็วจัง ทั้งภาพเคลื่อนไหว ทั้งภาพนิ่ง ภาพทุกอย่าง สังเกตไหม แต่พอเวลาเราเขียนเว็บของเรา พอเราขึ้นไปปุ๊บเป็นอย่างไรครับ ช้า บางทีไม่เห็น บางทีไม่มี เพราะอะไรครับ เพราะเราไม่จ่ายสตางค์ เว็บนี้ เว็บพวกการพนัน เอาง่าย ๆ เว็บการพนันนี่ตัวดีเลย เห็นไหมขึ้นทุกที่ เว็บการพนัน เขาสามารถทำให้มันเร็วได้ เพราะว่าเขาไปเช่าพื้นที่ เขายอมเสียสตางค์ เยอะ นี่ก็คือมีความสำคัญมากในระบบ มีใครเคยเคยเข้าไปดูไหม เข้าไปดูแล้วอย่าไปเล่นนะครับ เขาเคยสอนนักศึกษาเข้าไปดู ให้ไปดูโค้ดของมัน ว่าเขาเขียนอย่างไรนะครับ แล้วเราเอามาเขียนตามนะครับ อันที่ 4 นะครับ วิธีการพิจารณาอันที่ 4 ก็คือเวลา นะครับ ระยะเวลาที่ที่ Process นั้นอยู่ในระบบนะครับ ถ้า Process ใดอยู่ในระบบนาน นั่นแสดงว่ามันมีความสำคัญ เช่น Process ของอะไรครับ เราเปิดคอมพิวเตอร์ขึ้นมาปุ๊บ Process ที่รันก่อนเพื่อนเลย ก็คือโปรเน็ตของระบบปฏิบัติ การจัดการก่อนเพื่อนเลย นั่นคือมันมีความสำคัญมากนะครับ ถ้าเราไม่เชื่อ เราก็ลองไปลบ ลบออก ลบระบบปฏิบัติการออกจากเครื่อง เครื่องเราก็จะทำงานไม่ได้ นอกจากโปรแกรมระบบปฏิบัติการแล้ว ยังมีโปรแกรมอะไรครับ ที่อยู่ในระบบนาน ๆ เลย โปรแกรมอะไรครับ ลองนึกดูสิ เปิดขึ้นมาแล้วมีตลอด เห็นตลอดอย่างนี้ นอกจากระบบปฏิบัติการแล้ว มีอะไรอีก โปรแกรมอะไร โปรแกรมอะไรเอ่ย โปรแกรม Anti virus ผมว่าทุกเครื่องจะแอนตีไวรัสไว้ โปรแกรมแอนตีไวรัสก็มีทั้งใช้ใช้ฟรีเสียสตางค์นะครับ ผมแนะนำนะครับ ว่าเราอย่าไปโหลดโปรแกรมที่บอกว่าใช้ฟรีตลอดชีวิตนะครับ ใช้ฟรีตลอดชาติอย่างนี้ เขาเขียนไว้นะคะ ไอ้ตัวนั้นนั่นแหละครับ ตัวดี เป็นไวรัส ยอมเสียเงิน 500 1,000 นะครับ ผมเคยโดนมาแล้วนะครับ ไม่ยอมเสียสตางค์ ก็ใช้ฟรี ใช้ฟรีมาตลอด สุดท้ายตัวมันเองน่ะ เป็นไวรัสนี่ คือ การจัดคิวแบบเรียงลำดับความสำคัญมีอยู่ 4 อย่าง ผู้ใช้กำหนดเองครับ อยู่ในระบบนาน ๆ นะครับ ยอมจ่ายสตางค์เพิ่มขึ้นนะครับ ประเภทของท Process นะครับ ทีนี้มาดูการจัดคิวแบบที่ 4 นะครับ แบบที่ 4 การจัดคิวแบบ sjn นะครับ Source job next เป็นอย่างไรการจัดคิวแบบนี้ เขาบอกว่าเป็นการคัดเลือก Process ที่ต้องการเวลาน้อยที่ Process รอคิว 1 2 3 4 5 มันจะคำนวลว่าเข้าไปใน CPU แล้วเข้าไปครอบครอง CPU แล้วต้องการเวลาน้อยที่สุด เช่น Process A ต้องการใช้ 5 วินาที Process b ต้องการใช้ 6 วินาที Process d ต้องการใช้ 10 วินาที กำหนดเวลาควอนตัมไว้ที่ที่ต้องการเวลาน้อยที่สุดคืออะไร ครับ คืออะไร เอ่ย Process A หรือ B หรือ A B C Process อะไรครับ Process ที่ต้องการเวลาน้อยที่สุด ชื่อก็บอกแล้วว่าต้องการเวลาน้อยที่สุด ก็ต้องProcess A การจัดคิวแบบที่ 5 แบบที่ 5 การจัดคิวกับ srt การจัดคิวนั้นจะคล้าย ๆ กับการ sjn จะใช้เวลาที่เหลือน้อยที่สุดจากตัวอย่างเมื่อกี้ ต้องการ 1 วินาที B ต้องการ 5 วินาทีssb ต้องการ 8 วิ สมมตินะการจัดคิวแบบ srt ต้องการเลือกเวลาที่เหลือน้อยที่สุดเมื่อมันเข้าไปครอบครองแล้วโพสวิธีใช้ 1 ปีหรือ 4 ใช่ไหม เวลาควอนตัม กำหนดให้ใช้ 5 วินาที