เรื่องของการจัดการ CPU นะครับ
CPU
CPU นะครับถือว่าเป็นอุปกรณ์ที่สำคัญนะครับ
ในคอมพิวเตอร์ของเรานะครับ
ครับก็บทที่ 3 นะครับ
เดี๋ยวสัปดาห์หน้า
ก็อีก 2 บทแล้วก็ก่อนรับปริญญาเราจะสอบมิดเทอมนะครับ
สอบเก็บคะแนนนะครับ
CPU นะครับ
เราจะเห็นว่ามันมีความสำคัญนะครับ
เป็นหัวใจหลักของคอมพิวเตอร์เลยนะครับ
ดังนั้นการที่เราจะใช้งาน CPU ให้คุ้มค่า
เป็นหน้าที่หนึ่งของพวกเรานะครับที่ต้องจัด
การจัดการอย่างไรดีนะครับ
อันนี้นี่คือหลักการของการจัดการ CPU นะครับ
การจัดการ processor นะครับโปรเซสเซอร์หรือ CPU ตัวเดียวกันนะครับ
การเปลี่ยนสถานะของ CPU
ถือว่าเป็นมีค่าใช้จ่ายนะครับ
ค่าใช้จ่ายในที่นี้นะครับของ CPU นี่
ก็คือเรื่องของเวลานะครับ
การทำงานส่วนใหญ่ของโปรเซสเซอร์นะครับของ CPU
ก็คือเรื่องของเวลานะครับ
เราจะทำอย่างไรให้มันใช้งานได้อย่างเต็มที่อย่างมีประสิทธิภาพมันก็เป็นหน้าที่ของระบบปฏิบัติการนะครับ
ราคาสินค้าซึ่งตัวของ CPU จะเสียเวลาอยู่ 3
3 งานนะครับ
คืนหนึ่ง
เก็บค่า register และสถานะของเครื่อง
คือเปิดขึ้นมาปุ๊บเก็บไว้แล้วนะครับ
ใช้เวลาอยู่อันที่ 1 นะครับอันที่ 2 คัดเลือก
โปรเซสในสถานะพร้อม
เพื่อเข้ามาครอบครองตัวมันเอง
นี่ก็เสียเวลานะครับ
วันที่ 3 นะครับ
โหลดค่า register
ในสถานะของเครื่องบน pcb นะครับ
นี่คือ 3 งานที่ทำให้เกิดการเสียเวลาขึ้นนะครับ
หน้าที่อันหนึ่งของระบบปฏิบัติการเลยนะครับหน้าที่อันหนึ่งเลย
นอกจากการจัดการ process แล้วนะครับ
บทที่ 1 และบทที่ 2 แล้วมาบทนี้บทการจัดการ CPU เราจะทำอย่างไรนะครับในการทำงานของ CPU จะมีประสิทธิภาพมากหรือน้อยขึ้นอยู่กับ CPU ขึ้นอยู่กับตัวระบบปฏิบัติการด้วยนะครับ
เรามาดูกันว่าในการคัดเลือกค่ะ process ในการเข้ามาร้านนะครับ
ถือว่าเป็นหน้าที่อันหนึ่งของ OS
ซึ่งเราเรียกว่าการจัดคิวในระยะสั้น
ก็คือหมายความว่าการจัดคิวในระยะสั้นหมายถึง
ร้านที่ไปเลือกเอาโปรเซสที่ไปครอบครอง CPU ซึ่งการจัดคิวระยะสั้นก็มีหลายรูปแบบนะครับ
แบบที่ 1 นะครับแบบที่ 1 เลยก็คือการจัดคิวแบบ fcfs นะครับ
First come First service นะครับ
คือ process ไหนมารอคิวก่อน
ได้เข้าไปครอบครอง CPU ก่อนนะครับ
อันนี้จัดง่ายนะครับ
มี process 10 ตัวมาเข้าคิว
1 2 3 4 5 6 ก็เข้าไปครอบครอง CPU ตามที่ตัวเองต่อคิวเอาไว้นะครับ
แต่ถ้า process ไหนเข้าไปใน CPU แล้ว
ต้องการไปใช้งานอุปกรณ์ input output
เช่นไปทำงานส่งข้อมูลไปที่ Printer
เพราะฉะนั้นก็จะส่งข้อมูลออกไปนะครับเพราะเศษใหม่ออกไปปุ๊บ
โปรเน็ตใหม่ก็จะเข้ามาแทนที่ครอบครองแทนนะครับใน CPU ของเรานั้นไปครอบครองได้ทีละโปรเซสนะครับ
ข้อดี
จัดคิวง่าย
อันนี้ง่ายเลยครับ
ไม่ยุ่งยากนะครับ
ข้อเสียต้องรอนาน
ทำไมต้องรอนานครับเนื่องจากว่าตัวของ Process
สมมุตินะครับว่า
process A
ต้องการเข้าไปครอบครอง CPU 1 วินาที
ocsb ต้องการเข้าไปครอบครอง CPU 2 ชั่วโมง process C ต้องเข้าไป
ครอบครอง CPU 3 วินาทีนั่นแสดงว่า process C ต้องรอถึง 2 ชั่วโมง
นะครับ
ถึงต้องรอนานนะครับ
การจัดคิวแบบที่ 2 นะครับการจัดคิวแบบที่ 2
เป็นการจัดคิวแบบ
round Robin นะครับ
การจัดคิวแบบนี้นะครับเป็นการจัดคิวแบบวนลูปนะครับวน loop
ก็คือหมายความว่าเข้าไปแล้วนะครับ
มีเวลาควรตั้มมาจาก
นะครับ
เป็นการเข้าไปแบบวน loop
แบบ fcfs แบบที่ 1 ไม่มีเวลา quantum นะครับ
เวลา quantum คือเวลาอะไรครับ
จำได้ไหม
หายไป 2-3 อาทิตย์
เวลา quantum
เวลาควอนตัมคืออะไร
ผู้ดีตอบหน่อยสิ
เวลาควันตัมคืออะไร
อาทิตย์หน้าก็อีก 2 บท
อาทิตย์ต่อไปก่อนรับปริญญาสอบนะครับ
เวลาควอนตัมคืออะไรครับ
เวลาที่กำหนดให้ CPU
หรือให้โปรเซสเข้าไปครอบครอง CPU นานเท่าไรนะครับ
เช่น 5 วิ
10 วินาที 15 วินาทีก็ว่าไปนะครับ
การจัดคิวแบบที่ 3 นะครับ
การจัดคิวแบบลำดับความสำคัญ
การจัดคิวแบบนี้จะดูว่า process ที่มารอคิวนั้นมีความสำคัญมากน้อยขนาดไหนนะครับ
เราจะเป็นคนกำหนดเองครับว่า process ใดมีความสำคัญมากน้อยขนาดไหนนะครับ
ยกตัวอย่างเช่น
ซ้ายมือนะครับ
process a b c d e
นะครับลำดับความสำคัญเท่ากับ 10
854
มันจะเรียงเข้าตามคิวที่มีลำดับความสำคัญมากน้อยนะครับ
แต่สังเกตนะครับพอโปรเซสเข้ามาต่อคิว
rosetti มีความสำคัญเท่ากับ 6
มันต้องจัดคิวแบบใหม่แล้วนะครับ
จัดคิวเป็นแบบ AB CD นะครับ
นี่คือการจัดคิวโดยลำดับความสำคัญนะครับ
เราจะรู้ได้อย่างไรว่าโปรเซสใดมีความสำคัญ
process ใดไม่มีความสำคัญนะครับ
มีความสำคัญมากน้อยต่างกันอย่างไรนะครับ
เรามาดูหลักพิจารณานะครับ
1
ผู้ใช้
เป็นเจ้าของโปรเซส
เป็นคนกำหนดเอง
นะครับ
หรือตัวเราเองกำหนดเองว่า process ใดมีความสำคัญมากน้อยขนาดไหนนะครับ
เช่น
โปรเซสของผู้ควบคุม
หรือผู้ดูแลระบบมีความสำคัญมากกว่า process ของ User ธรรมดา
นะครับ
2
ประเภทของโปรเซสนะครับ
ประเภทของโปรเซส
โปรเซส
ที่
มีความ
อยู่ในโหมดของแบบมักมีความสำคัญน้อยกว่าหมดอ่ะ
หมดแบตคืออะไรครับ
หมดแบต
คือการทำงานแบบลำดับขั้น
นะครับผมยกตัวอย่างเช่นนะ
สมมตินะสมมตินะ
เราเขียนเกม
เรากำหนดว่าอยู่ในโหมดของ
แบต
เรายิงระเบิดออกไป
2 วันจึงรู้ว่าระเบิด
จะโดนฝั่งตรงข้ามหรือเปล่ามันจะคำนวณผลไปเรื่อยๆแต่ถ้าเป็นโหมดโต้ตอบ
ยิงปุ๊บส่วนปั๊บ
เหมือนเกมนะครับ
หรือเอาตัวอย่างหนึ่งเช่น
อุบลราชธานีอุบลราชธานี
ผมเดินมาเขกหัวอุบลเลย
ถ้าอยู่ในบทแบต
อุบลต้องคิดว่าเพราะอะไร
อาจารย์ถึงมาเขกหัวผม
แล้วอุบลก็คิดต่อไปว่า
เจ็บ
เจ็บแล้วไปหาหมออะไรประมาณนี้เป็นขั้นเป็นตอนไป
แต่ถ้าเป็นในโหมดโต้ตอบ
ผมเขตหวงอุบลรัตน์
อุบลสวนกำปั้นมาปั๊บนี่คือโหมดแบบโต้ตอบนะครับ
ดังนั้นการเขียนโปรแกรมในคอมพิวเตอร์เรานะครับ
มันมีอยู่หลายหมดนะครับ
ดังนั้นหมดโต้ตอบมักจะมีความสำคัญมากกว่า
หมดแบต
แบต
ต้องรอประมวลผลนะครับ
วิธีการพิจารณาลำดับความสำคัญอันที่ 3 ก็คือถ้าเราอยากรู้ว่า
โปรเซสใดสำคัญกว่ากัน
ผู้ใช้ยอมจ่ายตังค์
เราเคยสังเกตไหมครับ
เวลาเราเปิดเว็บไซต์
บางทีเราเปิดขึ้นมาเว็บไซต์บางเว็บไซต์เป็นรูปกากบาท
เคยเห็นไหม
เคยสังเกตไหม
โดยเฉพาะเว็บไซต์ที่เกี่ยวกับการศึกษา
ช้าไหมครับ
เช่นเว็บมหาวิทยาลัยเราอย่างนี้
บางทีเปิดเข้าพร้อมๆกันหลายๆพันก่อน
เอาง่ายๆตอนนี้รับปริญญาใช่ไหมจะเข้ารับปริญญา
เปิดเข้าลงทะเบียนพร้อมๆกันเป็นอย่างไรครับ
ร่มไหม
เข้าแทบไม่ได้เลยนะครับ
ผมเคยบอกนักศึกษานะครับ
แล้วก็บอกมาทุกรุ่นนะ
การเขียนโปรแกรมให้เราไปดูการเขียนโปรแกรมของเว็บโป๊
ไม่ได้ให้ไปดูเว็บโป๊นะ
ไปดู Code source Code ของเว็บ
ทำไมเขาเขียนแล้วมันขึ้นเร็วจัง
ทำภาพเคลื่อนไหวภาพนิ่งภาพทุกอย่างนะสังเกตนะ
แต่พอเราเวลาเรามาเขียนเว็บของเราพอเราขึ้นไปปุ๊บเป็นอย่างไรครับ
ช้า
บางทีไม่เห็นบางทีไม่มี
เพราะอะไรครับ
เพราะเราไม่จ่ายสตางค์
เว็บนี้เว็บพวกเว็บการพนันเอาง่ายๆเว็บการพนันตัวดีเลยเห็นไหมขึ้นทุกที่
เว็บการพนันเขาสามารถทำให้มันเร็วได้
เพราะว่าเขาไปเช่าพื้นที่
เขายอมเสียสตางค์เยอะ
นี่ก็คือมีความสำคัญมากในระบบนะครับ
มีใครเคยเข้าไปดูไหม
เข้าไปดูแล้วอย่าไปเล่นนะนะครับ
ผมเคยสอนนักศึกษาเข้าไปดู
ให้ไปดูโค้ดของมัน
ว่าเขาเขียนอย่างไรนะครับ
แล้วเราเอามาเขียนตามนะครับ
วันที่ 4 นะครับ
วิธีการพิจารณาอันที่ 4 ก็คือเวลา
ระยะเวลาที่โปรเซส
นั้นอยู่ในระบบ
นะครับ
ถ้า process ใด
อยู่ในระบบนาน
นั่นแสดงว่ามันมีความสำคัญนะครับ
เช่นโปรเซสของอะไรนะครับ
เราเปิดคอมพิวเตอร์ขึ้นมาปุ๊บ
process ที่ร้านก่อนเพื่อนก็คือ process ของระบบปฏิบัติการ
มันจะรันก่อนเพื่อนเลยนะครับ
นักแสดงว่ามันมีความสำคัญมากนะครับ
ถ้าเราไม่เชื่อเราก็ลองไปลบนะครับ
ลองไปลบออก
ลบระบบปฏิบัติการออกจากเครื่อง
เครื่องเราก็จะทำงานไม่ได้นะครับ
นอกจากโปรแกรมระบบปฏิบัติการแล้ว
โปรแกรมอะไรอีกครับ
ที่มันอยู่ในระบบนานๆเลย
โปรแกรมอะไรครับ
ลองนึกดูสิ
เปิดขึ้นมาแล้วมีตลอดเห็นตลอดอย่างนี้
นอกจากระบบปฏิบัติการแล้วอะไรอีก
โปรแกรมอะไร
โปรแกรมอะไรเอ่ย
โปรแกรมแอนตี้ไวรัส
เพราะคอมทุกเครื่องจะลง antivirus ไว้นะครับ
แอนตี้ไวรัสก็จะมีทางใช้ฟรีเสียสตางค์
ผมแนะนำนะครับว่าเราอย่าไปโหลดโปรแกรม
ที่บอกว่าใช้ฟรีตลอดชีวิต
นะครับ
ใช้ฟรีตลอดชาติ
อย่างนี้นะครับเขาเขียนไว้นะครับ
ไอ้ตัวนี้นะครับตัวดีนะครับเป็นไวรัส
ยอมเสียเงิน
500
1,000 นะครับ
ผมเคยโดนมาแล้วนะครับ
ก็คือไม่ยอมเสียตังค์
ใช้ฟรีใช้ฟรีมาตลอด
สุดท้ายตัวมันเองเป็นไวรัสเองนะครับ
นี่คือการจัดคิวแบบเรียงลำดับความสำคัญนะครับ
มีอยู่ 4 อย่าง
ผู้ใช้กำหนดเองนะครับอยู่ในระบบนานๆนะครับ
ยอมเสียสตางค์เพิ่มขึ้น
ประเภทของโปรเซสนะครับ
คราวนี้มาดูการจัดคิวแบบที่ 4 นะครับ
แบบที่ 4
การจัดคิวแบบ SJ n
swords of Legends
เป็นอย่างไรการจัดคิวแบบนี้
การจัดคิวแบบนี้เขาบอกเป็นการคัดเลือก
โปรเซสด้วยวิธีการเลือกเอาโปรเซสที่ต้องการเวลาน้อยที่สุด
โปรเซสมารอคิว 12345 มันจะคำนวณว่าเข้าไปใน CPU แล้ว
เข้าไปครอบครองใน CPU แล้ว
ต้องการเวลาน้อยที่สุด
เช่น protege
ต้องการใช้ 5 วิ
roast Beef
ต้องการใช้ 6 วินาที
Frozen C
ต้องการใช้ 10 วินาที
กำหนดเวลา quantum ไว้ที่ 5 วินาทีนะครับ
โปรเซสที่ต้องการเวลาน้อยที่สุดคืออะไรครับ
คืออะไรเอ่ย
rosetta a หรือ B หรือ C
ABC
process อะไรครับ
process ที่ต้องการเวลาน้อยที่สุด
ชื่อก็บอกแล้วต้องการเวลาน้อยที่สุด
ก็ต้องเป็น process a นะครับ
การจัดคิวแบบที่ 5 นะครับแบบที่ 5
การจัดคิวแบบ s&p
การจัดคิวแบบ srt นี้
จะคล้ายๆกับการจัดคิวแบบ sjn
HRV จะเลือกเอาโปรเศษที่เหลือเวลาน้อยที่สุด
จากตัวอย่างเมื่อกี้โปรเซส A
ต้องการ 1 วิ protest B ต้องการ 5 วินาที
ocsc ต้องการ 8วิสมมตินะ
การจัดคิวแบบ srt บอก
จะเลือกเอาเวลาที่เหลือน้อยที่สุดเมื่อครอบครอง CPU แล้ว
โปรเซส A ใช้ 1 วิหรือว่า 4 วินาทีใช่ไหม
เพราะเวลาควรตั้งกำหนดไว้ 5 วินาที
roast Beef