วันพุธที่ 18 มกราคม พ.ศ. 2560

Task Manager

      Task Manager (Windows 10, 8)

      Task Manager ช่วยให้คุณสามารถเรียกดูรายการโปรแกรมที่เรียกใช้อยู่ในคอมพิวเตอร์ นอกจากนี้ยังแสดงข้อมูลประสิทธิภาพและทรัพยากรที่ใช้สำหรับโปรแกรมหรือบัญชี ผู้ใช้ในระบบ
ใช้เอกสารนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับ Windows Task Manager เช่น การเปิดดูและปิดโปรแกรม การตรวจสอบการใช้งานโปรเซสเซอร์และหน่วยความจำ การดูปริมาณข้อมูลที่ส่งและรับผ่านเครือข่าย
กราฟิกและข้อมูลในเอกสารชุดนี้อาจแตกต่างกันไปเล็กน้อย ขึ้นอยู่กับ Windows เวอร์ชั่นที่คุณใช้
การใช้ Task Manager เพื่อปิดโปรแกรม
หากโปรแกรมเดสก์ทอปหยุดทำงาน ให้ปิดโดยคลิกที่ X ที่มุมด้านขวาบนตามปกติ สำหรับแอพ ให้คลิกค้างที่ตรงกลางด้านบนของหน้าจอแอพ จากนั้นลากแอพไปยังด้านล่างของหน้าจอจนกระทั่งหายไป
หากโปรแกรมหรือแอพหยุดทำงานหรือไม่สามารถปิดได้ตามปกติ ให้ปิดแอพผ่าน Task Manager
  1. จาก Windows ให้ค้นหาและเปิด Task Manager
    หากหน้าต่าง Task Manager เปิดขึ้นโดยมีแท็บรายการหลายแท็บด้านบน ให้คลิกที่ Fewer details (ลดรายละเอียด) ที่มุมซ้ายล่าง
  1. ปิดโปรแกรมโดยเลือกรายการ จากนั้นคลิก End task (สิ้นสุดการทำงาน)
    โปรแกรมจะปิดตัวลง โปรแกรมอาจทำการรีสตาร์ท
การเปิด Task Manager เพื่อดูรายละเอียดเพิ่มเติม (แท็บข้อมูล)
จากหน้าจอ More details (รายละเอียดเพิ่มเติม) ใน Task Manager จะมีแท็บรายการเกี่ยวกับแอพ ทรัพยากรระบบ การเริ่มทำงานและข้อมูลอื่น ๆ ปรากฏขึ้น เปิด Task Manager เพื่อดูหน้าจอ More details (รายละเอียดเพิ่มเติม) ได้ตามขั้นตอนต่อไปนี้
  1. จาก Windows ให้ค้นหาและเปิด Task Manager
    คลิกที่ More details (รายละเอียดเพิ่มเติม) หากแท็บใช้งานได้แสดงขึ้นอัตโนมัติตามแนวด้านบนของหน้าจอ
    รูปภาพ : ตัวจัดการงาน
    ตัวจัดการงาน
  1. ดูหัวข้อต่อไปนี้เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับแท็บแต่ละแท็บ
  • แท็บกระบวนการ
    จากแท็บ Processes (กระบวนการ) แต่ละแอพจะปรากฏพร้อมเปอร์เซ็นต์การทำงาน CPU หน่วยความจำ ฮาร์ดดิสก์และทรัพยากรเครือข่ายที่ใช้แบบเรียลไทม์ สามารถจัดเรียงรายการได้โดยคลิกที่หัวคอลัมน์ที่ต้องการในตารางเพื่อค้นหา ว่าแอพใดที่ใช้ทรัพยากรมากที่สุด
    รูปภาพ : แท็บกระบวนการ
    แท็บ Task Manager Processes (กระบวนการของ Task Manager)
  • แท็บ Performance (ประสิทธิภาพ)
    แท็บ Performance (ประสิทธิภาพ) ใช้ระบุข้อมูลสำคัญเกี่ยวกับส่วนประกอบและเครือข่ายเป็นภาพย่อทางด้านซ้าย ของหน้าต่าง คลิกที่ภาพย่อเพื่อดูกราฟและข้อมูลอื่น ๆ เช่น ความเร็วโปรเซสเซอร์ จำนวนหน่วยความจำ และที่อยู่ IP ที่เชื่อมโยงกับ CPU หน่วยความจำ ดิสก์ Bluetooth, Wi-fi หรือ Ethernet
    รูปภาพ : แท็บ Performance (ประสิทธิภาพ)
    แท็บ Task Manager Performance (ประสิทธิภาพ)
  • แท็บ App history (ประวัติแอพ)
    แท็บ App history (ประวัติแอพ) ใช้แสดงกิจกรรมต่าง ๆ ของแถบรายการแอพแต่ละส่วน หากคุณมีโควต้าถ่ายโอนข้อมูลรายเดือนจำกัด ข้อมูลนี้จะช่วยให้ทราบว่าคุณเหลือโควต้าข้อมูลอีกเท่าใด
    แอพที่ใช้กระบวนการหรือข้อมูลมากกว่าจะถูกแรเงาเป็นสีเข้ม
    รูปภาพ : แท็บ App history (ประวัติแอพ)
    แท็บ Task Manager App history (ประวัติแอพ)
  • แท็บเริ่มต้น
    หากคอมพิวเตอร์ทำงานช้า หรือเริ่มการทำงานนานเกินไป ให้เลือกแท็บ Startup (เริ่มการทำงาน) แท็บ Startup จะแสดงชื่อและผู้เผยแพร่ซอฟต์แวร์ซึ่งจะเปิดขึ้นอัตโนมัติเมื่อ Windows เริ่มทำงาน นอกจากนี้ยังแสดงสถานะของซอฟต์แวร์ ไม่ว่าจะเปิดหรือปิดใช้งานโปรแกรมอยู่ก็ตาม รวมทั้งผลกระทบที่ซอฟต์แวร์มีต่อเวลาเริ่มการทำงาน จากคอลัมน์ Status (สถานะ) คุณสามารถคลิกขวาที่โปรแกรม จากนั้นปิดใช้งานโปรแกรมเพื่อให้เวลาเริ่มการทำงานและประสิทธิภาพของ คอมพิวเตอร์ดีขึ้น ขณะปิดใช้งานโปรแกรมจะลดเวลาในการเริ่มการทำงาน ฟังก์ชั่นจากโปรแกรมจะไม่ทำงานจนกว่าจะเปิดใช้อีกครั้ง
    รูปภาพ : แท็บเริ่มต้น
    แท็บ Task Manager Startup (เริ่มการทำงานของตัวจัดการงาน)
  • แท็บ Users (ผู้ใช้)
    แท็บ Users (ผู้ใช้) จะระบุการใช้งาน CPU หน่วยความจำ ดิสก์และเครือข่ายของบัญชีผู้ใช้แต่ละรายในระบบ รายการที่มีเปอร์เซ็นต์ใช้ทรัพยากรสูงกว่าจะถูกแรเงาเป็นสีเข้ม
    รูปภาพ : แท็บ Users (ผู้ใช้)
    แท็บ Task Manager Users (ผู้ใช้)
    ดูข้อมูลการใช้งานอย่างละเอียดสำหรับบัญชีผู้ใช้โดยคลิกที่ไอคอนลูกศร ติดกับชื่อผู้ใช้
    รูปภาพ : ข้อมูลผู้ใช้
    ข้อมูลผู้ใช้
  • แท็บรายละเอียด
    แท็บ Details ใช้แสดงข้อมูลอย่างละเอียดเกี่ยวกับกระบวนการ
     บันทึก
    การสิ้นสุดงานอาจทำให้คุณสมบัติการทำงานที่สำคัญไม่ สามารถใช้การได้ หรือทำให้ระบบหยุดตอบสนอง ก่อนทำการเปลี่ยนแปลง ตรวจสอบว่าคุณบันทึกงานที่สำคัญไว้แล้ว
    • จัดเรียงกระบวนการทำงานในคอลัมน์โดยคลิกที่ชื่อคอลัมน์
    • ปิดกระบวนการโดยคลิกที่ชื่อกระบวนการ จากนั้นคลิก End task (สิ้นสุดงาน)
    • ค้นหารายละเอียดเพิ่มเติมเกี่ยวกับงาน โดยคลิกขวาที่ชื่องาน จากนั้นเลือก Search online (ค้นหาออนไลน์)
    รูปภาพ : แท็บรายละเอียด
    แท็บ Task Manager Details (รายละเอียด)
  • แท็บบริการ
    แท็บ Services (บริการ) ใช้แสดงบริการที่เรียกใช้อยู่ในปัจจุบัน
    บันทึก
    การหยุดบริการอาจทำให้เกิดผลที่ไม่คาดหวัง หรือทำให้เครื่องหยุดทำงาน ก่อนทำการเปลี่ยนแปลง ตรวจสอบว่าคุณบันทึกงานที่สำคัญไว้แล้ว
    • จัดเรียงบริการในคอลัมน์โดยคลิกที่ชื่อคอลัมน์
    • เริ่มบริการโดยคลิกขวาที่ชื่อกระบวนการ จากนั้นคลิก Start (เริ่ม)
    • หยุดบริการโดยคลิกขวาที่ชื่อกระบวนการ จากนั้นคลิก Stop (หยุด)
    • ค้นหารายละเอียดเพิ่มเติมเกี่ยวกับบริการ โดยคลิกขวาที่ชื่อบริการ จากนั้นเลือก Search online (ค้นหาออนไลน์)
      วิธีใช้งาน Windows 8 Task Manager
      Task Manager เป็นเครื่องมือที่คุ้นเคยกับผู้ใช้ Windows มาตั้งแต่ Windows NT ซึ่ง Task Manager เวอร์ชันแรกนั้นมีคุณลักษณะให้ใช้งานอย่างจำกัด แม้ว่า Task Manager จะได้รับการพัฒนาขึ้นตามลำดับตั้งแต่ Windows XP จนถึง Windows 7 แต่ถือว่ามีการเปลี่ยนแปลงน้อยเมื่อเทียบกับเครื่องมือตัวอื่นๆ แต่สำหรับ Task Manager ใน Windows 8 นั้นได้รับการยกเครื่องครั้งใหญ่เพื่อให้ใช้งานได้รวดเร็วและง่ายขึ้น บทความนี้จะเป็นการแนะนำคุณลักษณะใหม่และวิธีการใช้งาน Windows 8 Task Manager

      วิธีเปิด Windows 8 Task Manager
      วิธีเปิด Windows 8 Task Manager ทำได้กดปุ่ม Ctrl + Alt + Del จากนั้นคลิก Task Manager ดังภาพที่ 1 หรือจากหน้าเดสก์ท็อปให้คลิกขวาบนทาสก์บาร์จากนั้นคลิก Task Manager ดังภาพที่ 2 จะได้หน้าต่าง Task Manager
      ทิป: สามารถเปิด Windows 8 Task Manager ได้โดยการกดปุ่ม Windows + R จากนั้นพิมพ์ taskmgr.exe ในช่อง Open เสร็จแล้วกด Enter

      ภาพที่ 1

      ภาพที่ 2

      Windows 8 Task Manager สามารถแแสดงผลได้ 2 โหมด คือ Few details ซึ่งเป็นโหมดเริ่มต้นและ More Details โดยโหมด Few details เป็นโหมดกระทัดรัดที่แสดงข้อมูลเฉพาะรายชื่อ Windows 8 App ที่รันจากหน้า Start ของ Windows 8 และแอพพลิเคชันที่รันจากเดสก์ท็อป
      ส่วนโหมด More Details จะแสดงเมนูคำสั่ง File, Options และ View และแท็บจำนวน 7 แท็บ คือ Processes, Performance, App history, Startup, Users, Details และ Services การสวิตช์ระหว่างโหมด Few details และ More Details ทำได้โดยการคลิก More Details

      1. Process:
      แท็บ Process ในโหมด More Details จะแสดงรายชื่อโปรแกรมที่กำลังรัน, โปรเซสและการใช้ซีพียู, ข้อมูลการใช้งานหน่วยความจำ, ข้อมูลและสถิติการใช้งานระบบเครือข่าย, ผู้ใช้ที่กำลังล็อกอิน และ System Services

      Windows 8 Task Manager จะทำการแสดงโปรเซสพร้อมกับการไฮไลท์ปริมาณการใช้ทรัพยากรของแต่ละโปรเซส โดยสีที่เข้มกว่าแสดงว่ามีการใช้ทรัพยากรมากกว่าสีที่่อนกว่าซึ่งจะช่วยให้ สังเกตุเห็นความแตกต่างได้ง่ายและชัดเจนขึ้น ทั้งนี้สามารถเรียงลำดับปริมาณการใช้งานจากได้โดยการคลิกเม้าส์บนชื่อ คอลัมน์ เช่น Memory เป็นต้น

      แสดงโปรเซสเป็นกลุ่มตาม Apps
      Task Manager ของ Windows รุ่นก่อนหน้า Windows 8 จะแสดงแท็บโปรเซสแบบราบ (Flat) ตัวอย่างเช่น ถ้าเปิดโปรแกรม Internet Explorer จำนวน 5 แท็บ Task Manager จะแสดงทั้ง 5 โปรเซสแยกอิสระจากกัน แต่ใน Windows 8 Task Manager จะแสดงโปรเซสของแอพพลิเคชันเป็นกลุ่มแบบลำดับชั้นดัง

      สนับสนุนการจัดกลุ่มโปรเซสตาม Apps, Background และ Windows
      Windows 8 Task Manager จะสามารถทำการแบ่งการแสดงโปรเซสออกเป็น 3 กลุ่ม คือ Apps, Background processesและ Windows processes ซึ่งจะทำให้หาและหยุดโปรเซสที่ต้องการได้ง่ายขึ้น การแสดงโปรเซสเป็นกลุ่มนี้จะถูกเปิดใช้งานโดยเริ่มต้น วิธีการปิดแสดงโปรเซสเป็นกลุ่มทำได้โดยการคลิกเมนู View แล้วคลิกลบเครื่องหมายถูกหน้า Group by type
      Windows 8 Task Manager จะแสดงรายชื่อกลุ่มของเซอร์วิสทั้งหมดตามโปรเซสด้วยชื่อที่อ่านเข้าใจแทนการ แสดงรายชื่อไฟล์เหมือนใน Windows รุ่นก่อนหน้าดังภาพที่ 6.2 ซึ่งช่วยให้สามารถทราบปริมาณการใช้ทรัพยากรของกลุ่มเซอร์วิสแต่ละกลุ่มได้ใน ทันที
      ค้นข้อมูลของโปรเซสจากอินเทอร์เน็ตได้โดยตรง
      Windows 8 Task Manager จะสามารถทำการค้นข้อมูลของโปรเซสจากอินเทอร์เน็ตได้โดยการคลิกขวาบนโปรเซส ที่ต้องการจากนั้นเลือกคำสั่ง Search online
      2. Performance Tab
      แท็บ Performance แสดงกราฟเส้นแบบไดนามิกซึ่งแสดงรายละเอียดข้อมูลเกี่ยวกับ CPU, Memory, Disk และ Network (Ethernet/Wifi) สำหรับการใช้งานนั้นให้คลิกเม้าส์บนหัวข้อที่ต้องการจากคอลัมน์ด้านซ้ายมือ ของหน้าต่าง Task Manager เช่น CPU เป็นต้น นอกจากนี้ยังมีลิงก์สำหรับใช้เปิด Resource Monitor อีกด้วย

      CPU: แสดงรายละเอียดข้อมูลเกี่ยวกับซีพียู ได้แก่ รุ่นซีพียู, % Utilization, Process, Threads, Handles และ Up time
      Memory: แสดงรายละเอียดข้อมูลเกี่ยวกับหน่วยความจำ ได้แก่ Memory usage, Memory composition, In use, available, committed, cached, paged pool และ non-paged pool
      Disk: แสดงรายละเอียดข้อมูลเกี่ยวกับดิสก์ ได้แก่ Active time, Disk transfer rate, Active time, Average respone time, Capacity, Formatted, System disk, Page file, Read speed และ Write speed
      Network (Ethernet/Wifi): แสดงรายละเอียดข้อมูลเกี่ยวกับระบบเครือข่าย ได้แก่ Throughput, Adapter name, DNS Name, Connection type, IPv4 address, IPv6 Address, Send และ Receive
      3. App history
      แท็บ App history เป็นแท็บใหม่ที่เพิ่มขึ้นมาใน Windows 8 Task Manager ดังภาพที่ 12 App history จะแสดงรายชื่อแอพพลิเคชันที่ถูกเปิดในระหว่างเซสชั่น ดังนั้นจึงสามารถสวิตช์ไปยังแอพพลิเคชันใดๆ ที่มีการใช้งานก่อนหน้าเพื่อดูปริมาณการใช้ซีพียูและเครือข่ายได้
      4. Startup
      แท็บ Startup จะแสดงรายชื่อโปรแกรมต่าง ๆ ที่เริ่มต้นทำงานโดยอัตโนมัติพร้อมกับระบบ Windows ในกรณีที่ต้องการปิดไม่ให้โปรแกรมทำงานโดยอัตโนมัติทำได้โดยการคลิกขวาบน โปรแกรมที่ต้องการจากนั้นเลือก Disable นอกจากนี้ยังสามารถค้นหน้าข้อมูลของโปรแกรมจากอินเทอร์เน็ตได้อีกด้วย
      5. Users
      แท็บ Users จะแสดงรายชื่อผู้ใช้ที่กำลังไซน์อินเข้าระบบ Windows พร้อมทั้งข้อมูลการใช้งาน CPU, Memory, Disk และ Networkและเมื่อทำการคลิกขวาบนชื่อผู้ใช้จะมีคำสั่ง Manage users a accounts สำหรับเปิดหน้า User Management เพื่อจัดการบัญชีผู้ใช้ดัง
      6. Details
      แท็บ Details จะแสดงรายชื่อโปรเซสทั้งหมดของระบบและผู้ใช้ทุกคนพร้อมทั้งข้อมูลหมายเลข Process ID, Status, User name, CPU, Memory และ Description เมื่อทำการคลิกขวาบนโปรเซสจะปรากฏคำสั่งให้เลือกใช้งาน เช่น End task, End process tree, Set priority และ Set affinity เป็นต้น และยังสามารถค้นหน้าข้อมูลของโปรเซสจากอินเทอร์เน็ตได้อีกด้วย
      7. Services
      แท็บ Services จะแสดงรายชื่อเซอร์วิสทั้งหมดของ Windows ทั้งที่แอคทีฟและไม่แอคทีฟ พร้อมทั้งแสดงหมายเลข Process ID, Description, Status และ Group เมื่อทำการคลิกขวาบนเซอร์วิสจะปรากฏคำสั่ง 6 คำสั่งสำหรับใช้ควบคุมเซอร์วิสดังและยังสามารถสวิตช์ไปยังแท็บ Services หรือค้นหาข้อมูลของเซอร์วิสจากอินเทอร์เน็ตได้อีกด้วย
      สรุป Windows 8 Task Manager:
      Windows 8 Task Manager มีคุณลักษณะใหม่ที่มีประโยชน์และช่วยให้การวิเคราะห์สุขภาพและประสิทธิภาพ ของระบบ Windows ทำได้รวดเร็วและง่ายขึ้น การค้นหาข้อมูลของโปรเซสจากอินเทอร์เน็ตทำได้ง่ายขึ้น และ App History ช่วยให้ผู้ใช้ขั้นสูงสามารถระบุสาเหตุและแก้ไขปัญหาทั้งแบบ livelocks และ deadlocks ได้เร็วขึ้น เพื่อป้องกันไม่ให้ระบบเสียหาย

      การเรียกใช้งานโปรแกรมต่างๆผ่าน Windows Task Manager
          ตอนแรกเราต้อง Start Windows Task Manager ก่อนด้วยการกด Ctrl+Shift+Esc
      เราก็จะได้  Windows Task Manager ขึ้นมา  ดังรูป


      จากนั้นให้เราไปที่ Applications แล้วเลือก New Task...
      แล้วก็พิมพ์โปรแกรมที่เราต้องการลงไป  เช่น ผมพิมพ์ cmd  แล้วก็กด OK  ก็จะมีโปรแกรมที่เราต้องการ Run ขึ้นมา





      บางคนอาจสงสัยว่า  เรื่องง่ายๆ แค่นี้ทำไมต้องเอามาเขียนด้วย
      นั่นน่ะสิครับ

         แต่ไอ้เรื่องที่ว่า ง่ายๆ เนี่ยแหล่ะครับ  ที่หลายๆคนคาดไม่ถึง
      ที่ผมเอามาเขียนก็เพราะว่า  หากคุณเป็นคนหนึ่งที่เจอสถานการณ์  โดนไวรัส  แบบว่ามันเล่น Interrupt การทำงานของ Windows  แล้วไอ้ปุ่ม Start Menu มันดันไม่ยอมโผล่ขึ้นมา  แบบว่ามีแต่  Desktop Background ให้เราเห็น  แล้วเราจะทำยังไง  ถ้าใช้ Start Menu ไม่ได้
         คุณคงคิดง่ายๆว่า  Format  ลง Windows ใหม่ไปเลย  ทั้งๆที่ จริงๆแล้ว  เราสามารถเข้าไปแก้ไข Registry ของ Windows  ให้มันกลับมาใช้งานเหมือนเดิมได้  ซึ่งคุณก็ต้องไปถามพี่ Google ดูว่า ไอ้ Registry ที่มันเก็บค่าการแสดงผลของ Start Menu มันอยู่ที่ไหน  (เรื่องการเข้าใช้ registry ผมเคยเขียนไว้ในหัวข้อ ซ่อน / lock drive ใน Windows7  อยู่ครับ)   แล้วก็แก้มันให้กลับมาเหมือนเดิมซ่ะ  แค่นี้คุณก็ไม่ต้องไปเสียเวลาลง Windows ใหม่แล้ว
                 วิธีการใช้ Windows 8 Task Manager
      Task Manager เป็นหน้าต่างที่ช่วยให้คุณจัดการโปรแกรมที่เปิดให้ตรวจสอบ CPU และใช้หน่วยความจำและอื่น ๆ นี้เป็นคุณลักษณะหนึ่งที่ปรับปรุงใหม่อย่างรุนแรงใน Windows 8 จะทำให้มันเป็นวิธีที่มีประโยชน์มากขึ้นกว่าในอดีตที่ผ่านมา
      ถึงจัดการงานจะเหมือนกันใน Windows 8 ในขณะที่รุ่นก่อนหน้านี้:
      ที่จะไปถึง Windows 8 Task Manager:
      กด Control + Alt + Delete และคลิก Task Manager
      คลิกรายละเอียดเพิ่มเติม
      กด Control + Shift + Esc 
      คลิกรายละเอียดเพิ่มเติม
      วิธีที่สองคือได้เร็วขึ้นเพื่อให้มันคุ้มค่าที่จะจดจำแป้นพิมพ์ลัด
      เมื่อคุณอยู่ในใหม่ Windows 8 Task Manager, คุณจะสังเกตเห็นว่ามันมีลักษณะที่แตกต่างกันมากขึ้นกว่า แต่ก่อน คุณเริ่มต้นในการกระบวนการแท็บและคุณสามารถดูได้อย่างรวดเร็วเท่าไหร่ CPU มีการใช้หน่วยความจำเท่าใดจะถูกใช้และอื่น ๆ คุณสามารถคลิกที่งานและคลิกงานสิ้นสุด
      คลิกไปที่แท็บและคุณจะเห็นชุดของกราฟที่มีสีสันที่คุณสามารถคลิกผ่านการใช้งานที่แสดงให้เห็นว่าในช่วงเวลาก่อนที่คุณจะเปิด Task Manager นี้เป็ข้อมูลที่มีประโยชน์จริงๆโดยเฉพาะอย่างยิ่งถ้าคุณสงสัยว่าคุณกำลัง วิ่งออกมาจากหนความจำหรือที่คุณกำลัง maxing ออก CPU
      ถัดไปเป็นแท็บประวัติ App ใหม่ Windows 8 นี้แสดงให้เห็นเวลาเท่าใดโปรแกรมเฉพาะได้รับการใช้ CPU และการใช้ข้อมูล คอลัมน์ข้อมูลเป็นสิ่งสำคัญโดยเฉพาะอย่างยิ่งถ้าคุณอยู่ในแผนข้อมูลมิเตอร์ (โดยเฉพาะถ้า Windows ไม่ทราบว่าจะนำข้อมูลนี้ในคอลัมน์ Metered Network) ทราบว่าเฉพาะการใช้งานที่เมโทร (คนที่มีกระเบื้องบนหน้าจอเริ่มต้น) จะปรากฏในแท็บนี้นอกจากนี้ยังใหม่กับ Windows 8 Task Manager เป็นแท็บ Startup ก่อนที่ Windows 8 ปพลิเคชันเริ่มต้นการจัดการถูกฝังอยู่ในอีกไม่ใช้สามารถเข้าถึงได้ง่ายที่ เรียกว่า msconfig ตอนนี้คุณสามารถจัดการแอพพลิเคเริ่มต้นขวาจาก Task Manager หากคุณต้องการที่จะหยุดการตรวจสอบจากการเปิดตัวเมื่อ Windows เปิดตัวเพียงแค่คลิกที่มันและคลิกปิดใช้งาน
      มีแท็บอื่น ๆ ใน Task Manager ที่มีประโยชน์สำหรับการจัดการผู้ใช้และปิดการใช้งานส่วนบุคคลและบริการ
      วิธีการใช้ผู้จัดการทีมคนใหม่งานใน Windows 8 หรือ 10

      ที่ Task Manager ใน Windows 8 และ 10 ได้รับการปรับปรุงอย่างสมบูรณ์ มันง่ายต่อการใช้งาน, เสื้อกันฝนและอื่น ๆ คุณลักษณะบรรจุกว่าที่เคย Windows 8 อาจจะทั้งหมดที่เกี่ยวกับรถไฟใต้ดิน แต่ที่ Task Manager และ Windows Explorer จะดีขึ้นกว่าที่เคย
      ที่ Task Manager ตอนนี้จัดการโปรแกรมเริ่มต้นที่แสดงให้เห็นอยู่ IP ของคุณและแสดงกราฟการใช้ทรัพยากรเนียน สีเข้ารหัสใหม่ไฮไลท์กระบวนการโดยใช้ทรัพยากรระบบมากที่สุดเพื่อให้คุณสามารถดูได้อย่างรวดเร็ว

      คลิกที่ปุ่ม "รายละเอียดเพิ่มเติม" และคุณจะเห็นข้อมูลมากขึ้น สถิติการใช้ทรัพยากรที่มีรหัสสี - เข้มสีที่ใช้ทรัพยากรมากขึ้น
      คุณสามารถขยาย app ที่จะเห็นหน้าต่างของถ้า app มีหลายหน้าต่าง

      รายการของกระบวนการดังกล่าวจะถูกแบ่งออกเป็นสามส่วน - แอพพลิเคกระบวนการพื้นหลังและกระบวนการของระบบ Windows
      หากคุณไม่แน่ใจว่าสิ่งที่กระบวนการคือคุณสามารถคลิกขวาและเลือก "ค้นหาออนไลน์" เพื่อค้นหาในเครื่องมือค้นหาเริ่มต้นของคุณ

      สถิติระบบแท็บผลการดำเนินงานที่แสดงให้เห็นกราฟเนียนข้อมูลระบบของคุณ คุณสามารถเลือกอย่างใดอย่างหนึ่งในตัวเลือกที่ด้านขวาเพื่อดูข้อมูลเพิ่มเติม อินเตอร์เฟซใหม่แสดงข้อมูลมากขึ้นกว่าที่ Task Manager เก่าแสดงให้เห็นว่าจริงๆคุณสามารถดู IP ของระบบของคุณโดยไม่ต้องขุดผ่านแผงควบคุม ที่ใช้ในการต้องมีจำนวนมากของการคลิก
      คุณยังสามารถเปิดใช้งานโปรแกรมตรวจสอบทรัพยากรในคลิกเดียว มันยังไม่ได้รับการปรับปรุงใน Windows 8 แต่จะแสดงข้อมูลมากยิ่งขึ้นกว่าที่ Task Manager ไม่

      ประวัติแอป

      แท็บกระบวนการแสดงเฉพาะการใช้ทรัพยากรของแต่ละขั้นตอนปัจจุบัน "การประวัติแอปแท็บ" แสดงให้เห็นว่าเวลาของ CPU และแบนด์วิธเครือข่ายแต่ละแอพพลิเคเมโทรได้ใช้เพื่อให้คุณสามารถระบุหมูทรัพยากร

      โปรแกรมเริ่มต้น

      แท็บเริ่มต้นแสดงให้เห็นถึงการใช้งานที่เริ่มต้นโดยอัตโนมัติกับคอมพิวเตอร์ของคุณ หน้าต่างก็มีวิธีที่จะปิดใช้งานโปรแกรมได้อย่างง่ายดายเริ่มต้น หน้าต่างยังมาตรการเพียงระยะเวลาที่แต่ละโปรแกรมจะล่าช้าในการเริ่มต้นของคุณเพื่อให้คุณสามารถตัดสินใจอย่างชาญฉลาด

      ผู้ใช้

      ผู้ใช้แท็บแบ่งลงการใช้ทรัพยากรของระบบโดยบัญชีผู้ใช้ คุณสามารถเพิ่มชื่อของผู้ใช้เพื่อดูกระบวนการของผู้ใช้นั้น

      กระบวนการขั้นสูงรายละเอียดและบริการต่างๆ

      รายละเอียดแท็บเป็นวิวัฒนาการของกระบวนการเก่าแท็บรุ่นก่อนหน้าของ Windows มันไม่ได้มีอินเตอร์เฟซที่สวย - แม้ว่าไอคอนโปรแกรมได้รับการเพิ่ม มันเสี่ยง exposes ตัวเลือกขั้นสูงไม่พบบนแท็บอื่น ๆ รวมถึงการจัดลำดับความสำคัญของกระบวนการและความสัมพันธ์ของ CPU (CPU กำหนดความสัมพันธ์ของ CPU กระบวนการทำงานบนถ้าระบบของคุณมีหลาย cpu หรือ CPU กับแกนหลาย.)
      แท็บบริการได้รับการ prettied ขึ้นและในขณะนี้มีตัวเลือกที่จะได้อย่างรวดเร็วเริ่มต้นบริการ

      คุณสามารถคลิก Link บริการเปิดให้ใช้โปรแกรมบริการซึ่งมีตัวเลือกขั้นสูงที่คุณจะไม่พบในที่ Task Manager
      วิธีการปิดโปรแกรมใน Windows 7 ใช้งาน Windows Task Manager
      เพื่อปิดหรือยกเลิกโปรแกรมใน Windows 7 คุณควรกดปุ่ม Ctrl + Alt + Delete รวมแป้นพิมพ์บนแป้นพิมพ์เพื่อเปิดหน้าจอการรักษาความปลอดภัยของ Windows 7
      หน้าจอ Windows 7 การรักษาความปลอดภัย
      ที่หน้าจอการรักษาความปลอดภัยที่แสดงไว้ข้างต้นให้คลิกที่ปุ่ม Task Manager นี้จะเปิดตัวจัดการงาน Windows 7 ที่แสดงด้านล่าง
      วินโดวส์ 10 ที่ Task Manager
      ตอนนี้คุณต้องการเลือกกระบวนการหรือโปรแกรมที่คุณต้องการที่จะยุติโดยการ คลิกซ้ายได้ครั้งเดียวดังนั้นมันจะกลายเป็นไฮไลต์ตามที่แสดงในภาพด้านล่าง
      เมื่อคุณเลือกกระบวนการปุ่มสิ้นสุดกระบวนการจะกลายเป็นใช้ได้ ที่จะยุติโปรแกรมคลิกที่ปุ่มสิ้นสุดกระบวนการและโปรแกรมจะถูกยกเลิก
       ความแตกต่างระหว่างฟรีและมีหน่วยความจำ ฯลฯ ฯลฯ ฯลฯ คืออะไร? โพสต์ในวันนี้เราจะมาดูที่ค่าเหล่านี้และอธิบายสิ่งที่แต่ละคนหมายถึง
      ด้านล่างนี้เป็นภาพหน้าจอของแท็บ Performance จาก R2 ที่ใช้ Windows Server 2008 ด้วย RAM 16GB และ 16GB หน้าไฟล์:
      clip_image002
      แท็บหน่วยความจำตรวจสอบทรัพยากรของมองเช่นนี้
      clip_image004
      แท็บผลการดำเนินงานแบ่งออกเป็นส่วนต่อไปนี้:
      • การใช้ CPU - นี้แสดงเปอร์เซ็นต์ของรอบการประมวลผลที่ไม่ได้ใช้งานในขณะนี้ ถ้ากราฟนี้จะแสดงเปอร์เซ็นต์สูงอย่างต่อเนื่อง (และถ้าคุณไม่สามารถที่จะหากระบวนการใด ๆ เคี้ยวมันขึ้นมาก็อาจจะเป็นเพราะการขัดจังหวะ / DPCs. ใช้ Process Explorer เพื่อดูรายละเอียดเพิ่มเติมเกี่ยวกับพวกเขา. นอกจากนี้ยังอาจหมายถึงการประมวลผลที่มีมากเกินไป ในระบบ) ทั้งนี้ขึ้นอยู่กับจำนวนของซีพียูในระบบของเราสามารถดูกราฟหลายต่อ CPU บนด้านขวา
      • ประวัติความเป็นมาการใช้ CPU - บ่งบอกว่าไม่ว่างประมวลผลที่ได้รับ กราฟแสดงเฉพาะค่าตั้งแต่เวลาที่ Task Manager ถูกเปิด
      • หน่วยความจำ - แสดงเปอร์เซ็นต์ของหน่วยความจำกายภาพที่กำลังถูกใช้
      • หน่วยความจำกายภาพประวัติการใช้ - ระบุว่าหน่วยความจำกายภาพมากจะถูกนำมาใช้ นอกจากนี้ยังแสดงค่าตั้งแต่ Task Manager ที่ถูกเปิด
      • หน่วยความจำกายภาพ (MB) - ระบุหน่วยความจำกายภาพทั้งหมดและสามารถใช้ได้เช่นเดียวกับจำนวนหน่วยความจำที่ใช้โดยแคชของระบบ
      • หน่วยความจำเคอร์เนล (MB) - ระบุหน่วยความจำที่ใช้โดยระบบปฏิบัติการและไดรเวอร์ที่ทำงานอยู่ในโหมดเคอร์เนล (เพจและ Non-เพจสระว่ายน้ำ)
      • ระบบ - ให้ผลรวมสำหรับจำนวนของจับเธรดและกระบวนการที่กำลังทำงานอยู่ กระบวนการเป็นโปรแกรมปฏิบัติการเดียว ด้ายเป็นวัตถุในกระบวนการที่ทำงานคำแนะนำโปรแกรมหนึ่ง จับคือการอ้างอิงถึงทรัพยากรที่ใช้โดยระบบปฏิบัติการ กระบวนการอาจจะมีหลายหัวข้อซึ่งแต่ละในทางกลับกันอาจจะมีหลายจับ
           เราจำเป็นต้องเก็บไว้ในใจว่ากราฟใช้หน่วยความจำ (แสดงให้เห็นใน Windows Vista / 2008/7 / 2008R2) คือผลรวมของชุดการทำงานส่วนตัวทั้งหมดของกระบวนการที่ บนระบบปฏิบัติการรุ่นเก่า (XP / 2003) ค่าใช้ PF เห็นคือระบบรวม Commit นี้แสดงให้เห็นถึงการใช้งานไฟล์ของหน้าเว็บที่มีศักยภาพเช่นวิธี pagefile มากจะใช้ในกรณีที่ทุกภาคเอกชนหน่วยความจำเสมือนความมุ่งมั่นในระบบจะต้องมีการทำเพจออกไปยังดิสก์
      ขณะนี้การดูรายละเอียดที่ส่วนหน่วยความจำทางกายภาพ:
      • รวม - เคาน์เตอร์นี้แสดงให้เห็นจำนวนของ RAM ที่ใช้งานโดยระบบปฏิบัติการ โปรดทราบว่าอาจมีความแตกต่างระหว่างการติดตั้ง RAM และ RAM รวมเนื่องจากการตั้งค่าหน่วยความจำทางกายภาพเงาใน BIOS, หน่วยความจำที่แมปไปยังอุปกรณ์ PCI ฯลฯ ต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับสาเหตุของความแตก
      • Cached - นี้แสดงให้เห็นถึงผลรวมของระบบชุดการทำงานรายการสแตนด์บายและรายการหน้าการแก้ไข หากคุณต้องการที่จะหาเคาน์เตอร์ที่ตรงกันใน Perfmon แล้วโหลดขึ้นวัตถุต่อไปภายใต้หน่วยความจำ - ไบต์แคช Modified ไบต์รายการหน้าสแตนด์บายแคชไบต์หลักแคชสแตนด์บายไบต์ความสำคัญปกติและการส แตนด์บายแคชไบต์สำรอง
      • ที่มีจำหน่าย - นี่คือจำนวนหน่วยความจำทางกายภาพที่มีอยู่ในขณะนี้สำหรับการใช้งานโดยระบบปฏิบัติการ, ไดรเวอร์และกระบวนการ มันเป็นเท่ากับผลรวมของหน้าสแตนด์บายหน้าฟรีและรายการที่หน้าศูนย์
      • Free - นี้เป็นผลรวมของหน้าฟรีและรายการที่หน้าศูนย์
      ภายใต้ส่วนของหน่วยความจำเคอร์เนลเรา:
      • เพจ - นี้เป็นที่ใช้ในปัจจุบันจพูไบต์ใน MB
      • Nonpaged - นี่คือการจัดสรรในปัจจุบันไบต์ Nonpaged สระว่ายน้ำใน MB
      นี่คือข้อมูลบางอย่างเกี่ยวกับรัฐที่แตกต่างของหน้าในหน่วยความจำ (อ้างอิง: Windows ภายใน 5 TH Edition):
      • ที่ใช้งาน - (เรียกว่ายังถูกต้อง) หน้าเป็นส่วนหนึ่งของชุดการทำงาน (ทั้งกระบวนการชุดการทำงานหรือระบบชุดการทำงาน) หรือมันไม่ได้อยู่ในชุด (ตัวอย่างเช่นหน้าเคอร์เนลทำเพจ) ในการทำงานและ PTE ถูกต้องมักจะชี้ไปที่มัน .
      • สแตนด์บาย - หน้าก่อนหน้านี้เป็นของชุดการทำงาน แต่จะถูกลบออก (หรือถูกสมบูรณ์โดยตรงในรายการ Standby) หน้าก็ไม่ได้แก้ไขตั้งแต่มันถูกเขียนไปยังดิสก์ที่ผ่านมา PTE ยังคงหมายถึงหน้าทางกายภาพ แต่มีการทำเครื่องหมายไม่ถูกต้องและในการเปลี่ยนแปลง
      • Modified - หน้าก่อนหน้านี้เป็นของชุดการทำงาน แต่จะถูกลบออก อย่างไรก็ตามหน้ามีการปรับเปลี่ยนในขณะที่มันเป็นในการใช้งานและเนื้อหาในปัจจุบันยังไม่ได้รับการเขียนไปยังดิสก์หรือจัดเก็บระยะไกล PTE ยังคงหมายถึงหน้าทางกายภาพ แต่มีการทำเครื่องหมายไม่ถูกต้องและในการเปลี่ยนแปลง มันจะต้องเขียนในการจัดเก็บสำรองข้อมูลก่อนหน้าทางกายภาพสามารถนำกลับมาใช้
      • ดัดแปลงไม่มีเขียน - เหมือนกับหน้าแก้ไขยกเว้นว่าหน้าได้รับการทำเครื่องหมายเพื่อให้นักเขียนหน้าจัดการหน่วยความจำของการแก้ไขจะไม่เขียนไปยังดิสก์ ผู้จัดการแคชเครื่องหมายหน้าได้รับการแก้ไขไม่เขียนตามคำขอของไดรเวอร์ระบบแฟ้ม ยกตัวอย่างเช่น NTFS ใช้รัฐนี้สำหรับหน้าเว็บที่มีข้อมูลเมตาของระบบไฟล์เพื่อให้มันเป็นครั้งแรก สามารถมั่นใจได้ว่ารายการบันทึกการทำธุรกรรมจะล้างไปยังดิสก์ก่อนหน้าพวกเขา จะปกป้องถูกเขียนไปยังดิสก์
      • ฟรี - หน้าฟรี แต่มีข้อมูลที่สกปรกที่ไม่ได้ระบุในนั้น หน้าเว็บเหล่านี้ไม่สามารถจะได้รับเป็นหน้าของผู้ใช้ในการดำเนินการของผู้ใช้โดยไม่ต้องเริ่มต้นด้วยศูนย์สำหรับเหตุผลด้านความปลอดภัย
      • กลายเป็นศูนย์ - หน้าที่เป็นอิสระและได้รับการเริ่มต้นด้วยศูนย์โดยด้ายศูนย์หน้า (หรือก็ตัดสินใจที่จะอยู่แล้วมีเลขศูนย์)
      • หน่วยความจำหน้าหมายถึงอ่านอย่างเดียว - รอม
      • Bad - หน้าได้สร้างความเท่าเทียมกันหรือฮาร์ดแวร์อื่น ๆ ข้อผิดพลาดและไม่สามารถใช้ นอกจากนี้ยังถูกนำมาใช้ภายในโดยระบบสำหรับหน้าเว็บที่อาจจะเปลี่ยนจากรัฐหนึ่งไปยังอีกหรืออยู่ในภายในมองกัน
      ไมโครซอฟท์ได้บรรจุจริงๆข้อมูลจำนวนมากเข้ามา แท็บนี้และฉันไม่ต้องการความจริงที่ว่าควรมองข้าม (ผมเคยรวมกราฟเป็นภาพคอมโพสิตเพื่อให้ได้อย่างรวดเร็วคุณจะเห็นว่าแต่ละส่วนบนแท็บจะเต็มไปด้วยข้อมูล.) ในฉบับนี้ ของ Windows รายงานสก์ท็อป , ฉันจะเจาะเข้าไปในแท็บปฏิบัติงานของผู้จัดการและใช้เวลามองใกล้ที่คุณลักษณะ ใหม่ทั้งหมดและรายละเอียดปรากฏในส่วนของการดำเนินงานของแต่ละแท็บ

      รูปที่

      แท็บแสดงข้อมูลผลการดำเนินงานและกราฟของ CPU หน่วยความจำดิสก์และอีเธอร์เน็ต
      ก่อนที่ผมจะเริ่มต้นมีการเปลี่ยนแปลงเป็นอย่างใดอย่างหนึ่งออกไปด้านนอกที่ ผมสังเกตเห็นได้ทันทีและนั่นคือที่แถบชื่อสำหรับเครื่องมือนี้ใช้ในการอ่าน Windows Task Manager และตอนนี้แถบชื่อเพียงแค่อ่านที่ Task Manager ไม่แน่ใจว่าที่สำคัญการเปลี่ยนแปลงที่อยู่หรือแม้กระทั่งถ้ามันเป็นถาวร แต่กระนั้นมีเป็น
      หมายเหตุบรรณาธิการ: เพื่อ รีเฟรชหน่วยความจำของคุณใน Windows 8 คุณจะได้รับที่ Task Manager โดยการกด CTRL-ALT-DEL เลือกที่ Task Manager และคลิกที่ปุ่มเพิ่มเติมรายละเอียด

      ซีพียู
      ในส่วนของ CPU ของ แท็บประสิทธิภาพซีพียูที่เกิดขึ้นจริงคือตอนนี้ระบุเฉพาะในรายละเอียดกับ แบรนด์จำนวนรุ่นความเร็วเช่นเดียวกับจำนวนของซ็อกเก็แกนและประมวลผลเชิง ตรรกะที่มีการแสดงเด่นดังแสดงในรูป B คุณสามารถบอกได้อย่างรวดเร็วไม่ว่าจะเป็นเทคโนโลยี virtualization ฮาร์ดแวร์โปรเซสเซอร์ถูกเปิดใช้งาน (การดำเนินการที่ไม่นานที่ผ่านมา เป็นเรื่องยากที่จะดำเนินการ และเติบโตทุกประเภทของความสับสน เมื่อมันถูกต้อง ที่จะเรียกใช้ Windows XP Mode ใน Windows 7) คุณยังสามารถหาข้อมูลเกี่ยวกับแคชซีพียู
      ภาพ B

      ส่วน CPU ของผลการดำเนินงานในขณะนี้แท็บระบุ CPU ในรายละเอียด
      กราฟแสดงร้อยละของการใช้งาน CPU ของคุณในระดับ 0 ถึง 100 กว่ากรอบเวลา 60 วินาที จำนวนการใช้ประโยชน์ด้านล่างกราฟแสดงค่าร้อยละที่ใดจุดหนึ่งในเวลา ในบรรทัดถัดไปลงคุณสามารถหาข้อมูลบางอย่างจากพี่ผู้จัดการงาน: กระบวนการกระทู้และมือจับและด้านล่างที่คุณจะได้พบกับเวลา
      จัดการและหัวข้อย่อยเป็นจริงวัตถุของกระบวนการ ค่าจัดการแสดงจำนวนของตัวระบุวัตถุหรือจับที่มีใช้อยู่ในปัจจุบันโดยทุกกระบวนการทำงาน ค่าด้ายจริงหมายถึงจำนวนของกระบวนการย่อยกระบวนการทำงานภายในที่มีขนาดใหญ่ มูลค่ากระบวนการของหลักสูตรหมายถึงจำนวนของกระบวนการทำงานในปัจจุบัน
      โดยค่าเริ่มต้นในส่วนของ CPU แสดงกราฟเดียวกันแสดงการใช้ประโยชน์โดยรวม หากคุณต้องการที่จะเห็นกราฟสำหรับแต่ละหน่วยประมวลผลเชิงตรรกะเพียงแค่คลิกขวาและเลือกประมวลผลเชิงตรรกะ หากคุณต้องการกราฟเพื่อแสดงครั้งเคอร์เนลคลิกขวาบนกราฟและเลือกแสดง Kernel ไทม์ ภาพคอมโพสิตแสดงในรูป C แสดงให้เห็นทั้งสองเมนูคลิกขวา (ฉันจะครอบคลุมบางส่วนของคุณสมบัติที่พบในเมนูคลิกขวาในช่วงเวลา.)
      ภาพ C

      คุณสามารถกำหนดค่ากราฟเพื่อแสดงประมวลผลเชิงตรรกะและการแสดงครั้งเคอร์เนล
      หน่วยความจำ
      ในส่วนของความทรงจำของแท็บประสิทธิภาพจำนวนของหน่วยความจำที่ปรากฏเด่นชัดพร้อมกับหน่วยความจำชนิดดังแสดงในรูปที่ D นอกจากนี้คุณยังสามารถดูความเร็วชิปจำนวนสล็อตหน่วยความจำที่ใช้และปัจจัยฟอร์ม
      คุณมีวิธีการหลายครั้งนั่งลงที่เครื่องคอมพิวเตอร์ที่ไม่คุ้นเคยและอยากจะรู้ว่าระดับของรายละเอียดเกี่ยวกับหน่วยความจำในระบบที่? ดีตอนนี้มันเป็นขวาที่นี่ใน Task Manager คุณยังสามารถดูจำนวนหน่วยความจำที่สงวนไว้สำหรับฮาร์ดแวร์
      D รูป

      ส่วนความทรงจำของแท็บประสิทธิภาพให้คุณมีข้อมูลรายละเอียดเกี่ยวกับการใช้งานหน่วยความจำ
      ที่คุณสามารถดูมีสองกราฟในส่วนของหน่วยความจำ กราฟแสดงการใช้งานครั้งแรกที่หน่วยความจำในระดับ 0 ถึงจำนวนของหน่วยความจำมากกว่ากรอบเวลา 60 วินาที กราฟสองชื่อหน่วยความจำองค์ประกอบแสดงให้เห็นว่าหน่วยความจำที่ใช้โดยกระบวนการไดรเวอร์หรือระบบปฏิบัติการ
      ด้านล่างของกราฟที่คุณจะพบวัดที่คุ้นเคยเช่นจำนวนหน่วยความจำในการใช้งานและจำนวนหน่วยความจำที่มีอยู่ มูลค่าความมุ่งมั่นเป็นวัดที่เรียบง่ายที่แสดงการใช้งานหน้าไฟล์ นี่หมายเลขแรกที่แสดงจำนวนของหน่วยความจำทางกายภาพและเสมือนที่ใช้ใน ปัจจุบันในขณะที่จำนวนที่สองแสดงให้เห็นจำนวนของหน่วยความจำทางกายภาพและ เสมือนที่มีอยู่บนเครื่องคอมพิวเตอร์ของคุณ
      ค่าที่เก็บไว้แสดงถึงปริมาณของหน่วยความจำกายภาพที่ใช้ในเร็ว ๆ นี้สำหรับทรัพยากรระบบ (หน่วยความจำนี้จะยังคงอยู่ในแคชในกรณีที่ทรัพยากรระบบที่มีความจำเป็นอีกครั้ง แต่มันใช้ได้ควรจะต้องดำเนินการอื่น ๆ มัน.)
      ค่าเพจสระว่ายน้ำแสดงถึงปริมาณของหน่วยความจำกายภาพใช้โดยระบบปฏิบัติการใน การจัดเก็บวัตถุที่สามารถเขียนไปยังดิสก์เมื่อพวกเขาจะไม่ถูกนำมาใช้ มูลค่าไม่สามารถทำเพจสระว่ายน้ำแสดงถึงปริมาณของหน่วยความจำกายภาพที่ใช้โดย ระบบปฏิบัติการในการจัดเก็บวัตถุที่ไม่สามารถเขียนไปยังดิสก์ แต่ต้องยังคงอยู่ในหน่วยความจำกายภาพตราบเท่าที่พวกเขาได้รับการจัดสรร
      ดิสก์
      ในส่วนของดิสก์แท็บประสิทธิภาพหมายเลขรุ่นของไดรฟ์และชนิดของไดรฟ์จะปรากฏเด่นชัดที่ด้านบนของส่วนดังแสดงในรูปที่ E (ไม่จำเป็นต้องไปจัดการอุปกรณ์เพื่อค้นหาข้อมูลใด ๆ เพิ่มเติม) นอกจากนี้คุณยังสามารถดูความจุฮาร์ดดิสก์เท่าไหร่มันมีรูปแบบไม่ว่าจะเป็นระบบดิสก์และไม่ว่าจะมีไฟล์หน้า
      รูปที่ E

      ส่วนดิสก์ของแท็บ Performance มีสองกราฟ
      ที่คุณสามารถดูมีสองกราฟในส่วนดิสก์ กราฟแรกคือเรื่องเวลาที่ใช้งานอยู่และแสดงค่าร้อยละของการใช้ดิสก์ของคุณ (ร้อยละของเวลาดิสก์กำลังประมวลผลการอ่านหรือเขียนคำขอ) โย 0-100 กว่ากรอบเวลา 60 วินาที กราฟที่สองคือเรื่องอัตราการส่งดิสก์และแสดงอัตราการถ่ายโอนระหว่างฮาร์ดดิสก์และระบบกว่ากรอบเวลา 60 วินาที
      กราฟด้านล่างนี้คุณจะพบค่าเวลาที่ใช้งานอยู่ซึ่งบ่งชี้ว่าร้อยละของการใช้งานที่ใด ๆ หนึ่งจุดในเวลา ค่าเฉลี่ยระยะเวลาตอบสนองแสดงถึงปริมาณของเวลาที่ใช้ในไดรฟ์ที่จริงการถ่ายโอนข้อมูลไปยังระบบ การเรียนการสอนอ่านและเขียนค่าความเร็วบ่งบอกถึงวิธีการที่รวดเร็วดิสก์มีประสิทธิภาพของ I / O การดำเนินงาน
      อีเธอร์เน็ต
      ในส่วนของอีเธอร์เน็ตแท็บ Performance ชื่อของการ์ดเครือข่ายจะปรากฏเด่นชัดที่ด้านบนของส่วนดังแสดงในรูป F นอกจากนี้คุณยังจะได้เห็นชื่ออะแดปเตอร์ชื่อ DNS และทั้งสองที่อยู่ IPv4 และ IPv6 IP
      รูป F

      ในส่วนของอีเธอร์เน็ตแท็บ Performance ชื่อของการ์ดเครือข่ายจะปรากฏเด่นชัดที่ด้านบนของส่วน
      กราฟแสดงโดยรวมส่งและรับกิจกรรมโย 0-100 Kbps กว่ากรอบเวลา 60 วินาทีในขณะที่การส่งและรับค่าด้านล่างกราฟแสดงประเภทของกิจกรรมที่ใดจุด หนึ่งในเวลา หาก คุณคลิกขวาที่ใดก็ได้ในส่วนอีเธอร์เน็ตและเลือกดูรายละเอียดเครือข่ายคุณจะ เห็นหน้าต่างที่สองเต็มไปด้วยข้อมูลที่มีรายละเอียดดังแสดงในรูป G
      รูป G

      เลือกดูรายละเอียดเครือข่ายและคุณจะเห็นหน้าต่างเต็มสองข้อมูลรายละเอียด
      เปลี่ยนการแสดงผลหน้าต่าง
      มีหลายวิธีที่คุณสามารถเปลี่ยนการแสดงผลของหน้าต่าง Task Manager ที่มีการ หากคุณคลิกขวาที่อยู่ทางด้านซ้ายของหน้าต่างคุณจะเห็นมุมมองสรุปและคำสั่งที่ซ่อนกราฟ เลือกดูสรุปเอารายละเอียดทั้งหมดและใบรูปขนาดย่อกราฟและเลือกซ่อนกราฟแทนที่กราฟที่มีจุด bullet ดังแสดงในรูปที่ H
      รูป H

      การใช้ข้อมูลอย่างย่อดูและซ่อนกราฟคุณสามารถเปลี่ยนการแสดงผลของหน้าต่าง Task Manager ของ
      หากคุณคลิกขวาที่ใด ๆ ของกราฟหลักและเลือกกราฟข้อมูลอย่างย่อดูคำสั่งเพียงกราฟจะแสดง ภาพคอมโพสิตในรูปที่ผมแสดงให้เห็นว่าแต่ละกราฟในสรุปกราฟดู
      รูปที่ผม

      ภาพนี้แสดงให้เห็นคอมโพสิตแต่ละกราฟในสรุปกราฟดู
      นอกจากนี้คุณยังจะเห็นทั้งสองคำสั่งในเมนูอื่น ๆ : ดูและคัดลอก เมื่อคุณเลือกดูคุณจะเห็นเมนูย่อยที่ช่วยให้คุณสามารถสลับระหว่าง CPU หน่วยความจำดิสก์และส่วนอีเธอร์เน็ตที่ หากคุณเลือกคัดลอกคำสั่งใด ๆ ของรายละเอียดขึ้นอยู่กับข้อความบนหน้าจอจะถูกคัดลอกไปยังคลิปบอร์ดที่คุณ สามารถวางลงใน Notepad หรือข้อความอีเมล
      เป็นสิ่งที่ต้องใช้ของคุณหรือไม่
      คุณคิดว่ามีข้อมูลรายละเอียดเพียงพอในการปฏิบัติงานแท็บใน Task Manager ที่จะรับประกันการพิจารณาของคุณ? และเช่นเคยหากคุณมีความคิดเห็นหรือข้อมูลที่จะแบ่งปันเกี่ยวกับหัวข้อนี้โปรดใช้เวลาสักครู่จะลดลงโดย ฟอรั่ม TechRepublic ชุมชน และแจ้งให้เราได้ยินจากคุณ

      บรรณานุกรม

      http://support.hp.com/th-th/document/c03724179
      http://thaiwinadmin.blogspot.com/2012/08/the-guide-to-windows-8-task-manager.html
      http://na5cent.blogspot.com/2012/01/windows-task-manager.html
      http://www.reviversoft.com/th/blog/2012/10/control-the-windows-8-task-manager/
      https://translate.google.co.th/translate?hl=th&sl=en&u=https://www.bleepingcomputer.com/tutorials/close-a-program-using-task-manager/&prev=search
      https://translate.google.co.th/translate?hl=th&sl=en&u=https://blogs.technet.microsoft.com/askperf/2013/05/03/finally-a-windows-task-manager-performance-tab-blog/&prev=search
      https://translate.google.co.th/translate?hl=th&sl=en&u=http://www.techrepublic.com/blog/windows-and-office/better-troubleshooting-with-the-windows-8-task-manager-performance-tab/&prev=search
       

       

วันพุธที่ 21 ธันวาคม พ.ศ. 2559

บทที่5

   บทที่5
   การติดตั้งระบบปฏิบัติการ

1.ซอฟต์แวร์กรรมสิทธิ์ (proprietary software)
       คือ ซอฟต์แวร์ที่สิทธิ์ในการใช้งานและทำซ้ำถูกจำกัดหรือสงวนสิทธิ์ไว้โดยเจ้าของซอฟต์แวร์หรือผู้จัดทำ ผู้อื่นไม่สามารถนำมาใช้งานหรือทำซ้ำได้นอกจากได้รับอนุญาตในสิทธิ์นั้นจากเจ้าของ. proprietary software อาจไม่ได้เป็น ซอฟต์แวร์ลิขสิทธิ์ เสมอไป, แต่โดยมากแล้ว เจ้าของซอฟต์แวร์มักจะใช้กลไกของระบบกฎหมายลิขสิทธิ์ในปัจจุบัน เพื่อเป็นเครื่องมือในการสงวนสิทธิ์ของตนเองไว้, ทำให้ซอฟต์แวร์กลายเป็น proprietary software. ตัวอย่างของ proprietary software ที่เป็นที่รู้จักกันดี ได้แก่ ไมโครซอฟท์ วินโดวส์ หรือ อะโดบี โฟโตชอป

คำว่า "โพรไพรเอทารีซอฟต์แวร์" เป็นคำจำกัดความที่ทางมูลนิธิซอฟต์แวร์เสรี (Free Software Foundation, FSF) ได้สร้างขึ้นเพื่อใช้อธิบายถึงซอฟต์แวร์ที่ไม่ใช่ซอฟต์แวร์เสรี เพื่อ ไว้เรียกเปรียบเทียบกับ ซอฟต์แวร์เสรี หรือ ซอฟต์แวร์ที่เปิดให้ผู้อื่นใช้งาน แจกจ่าย และ ดัดแปลงแก้ไขได้

2.ซอฟต์แวร์ระบบเปิด
       กรุงเทพธุรกิจ - หน่วยงานของรัฐ คือ ตัวกำหนดมาตรฐานการใช้ซอฟต์แวร์ที่สำคัญ เมื่อรัฐเลือกใช้ซอฟต์แวร์ใด เอกชนย่อมต้องเลือกใช้ระบบที่เหมือนกัน เพื่อความคล่องตัวในการทำงาน ไม่ต้องเสียเวลาแปลงไฟล์กันไปมา
รอแรงขับจากหน่วยงานรัฐ
กระทั่ง อาจก่อปัญหาให้อ่านไฟล์กันไม่ได้ ซึ่งเฉพาะปี 2548 ทั้งหน่วยงานรัฐ และเอกชน มีค่าใช้จ่ายซื้อซอฟต์แวร์ลิขสิทธิ์และบริการรวมกันเกือบ 5 หมื่นล้านบาท แบ่งเป็นหน่วยงานรัฐกว่า 7,100 ล้านบาท เอกชน เฉพาะกิจการขนาดใหญ่เกือบ 4 หมื่นล้านบาท
ไม่เฉพาะไทยประเทศเดียวที่ต้อง จ่ายค่าซอฟต์แวร์ และบริการจำนวนมหาศาลต่อปี แต่ประเทศอื่นๆ ก็เผชิญสภาวะเดียวกัน ดังนั้น ซอฟต์แวร์มาตรฐานเปิดจึงเป็นทางเลือกที่หลายประเทศให้ความสนใจ โดยรัฐบาลของประเทศต่างๆ ได้กำหนดนโยบายเป็นทางการใช้เทคโนโลยีระบบเปิดและไฟล์เอกสารแบบเปิด เช่น มลรัฐแมสซาชูเซตส์ ที่กำหนดให้ใช้ซอฟต์แวร์แอพพลิเคชั่นออฟฟิศ ต้องรับกับมาตรฐานระบบเปิด
ภายในมกราคม ปี 2550 กรมสรรพากรฝรั่งเศส ที่โอนย้ายระบบโปรแกรมออฟฟิศในพีซี 80,000 เครื่องไปใช้แอพพลิเคชั่น ออฟฟิศ ที่เป็นมาตรฐานเปิด และปีที่แล้ว กระทรวงกลาโหมของสิงคโปร์ ได้เปลี่ยนระบบการใช้ซอฟต์แวร์แบบปิดจากเดสก์ทอป 20,000 เครื่องมาใช้ซอฟต์แวร์แบบเปิด ซึ่งคาดว่า กว่า 13 ประเทศกำลังพิจารณาการใช้โอเพ่น ดอคคิวเม้นท์ ฟอร์แมต (ODF)
"การเข้าสู่ระบบเปิด จะช่วยส่งเสริมให้เกิดการร่วมมือแลกเปลี่ยนการพัฒนาสร้างนวัตกรรมใหม่ๆ ที่ท้ายที่สุดก็ช่วยสร้างความมั่งคั่งทางเศรษฐกิจให้กับประเทศ หากรัฐบาลหนึ่งรัฐบาลใดไม่ปรับตัวให้เป็นไปตามกระแสโลก ไม่ใช้เทคโนโลยีระบบเปิดแล้ว เชื่อว่า 5-10 ปีข้างหน้า จะถูกบายพาสจากประเทศอื่นๆ ได้" นายสตีเฟ่น เบรม รองประธาน กอฟเวิร์นเม้นท์ โปรแกรม เอเชีย แปซิฟิก ไอบีเอ็ม กล่าว
เร่งไทยใช้มาตรฐานเปิด
นายเบรม กล่าวว่า ไทยต้องเร่งเข้าสู่การปรับใช้มาตรฐานเปิด (Open Standard) ซึ่งรองรับการทำงานต่างระบบ (Interoperability) และการใช้มาตรฐานเอกสารโอดีเอฟ เพื่อกระตุ้นให้เกิดการแข่งขัน โดยไม่อิง หรือผูกติดกับเทคโนโลยีของบริษัทรายหนึ่งรายใด (Independent) ทั้งยังทำให้รัฐสามารถควบคุมและเรียกใช้เอกสารโดยไม่อิงกับเทคโนโลยีที่ เปลี่ยนแปลงไปตามกาลเวลาได้ (Forward and Backward Competability)
สำหรับมาตรฐานโอดีเอฟ เป็นความพยายามผลักดันระดับโลกที่จะแก้ไขปัญหาเอกสารอิเล็กทรอนิกส์ที่ เพิ่มขึ้นเป็นจำนวนมาก โดยเฉพาะภาครัฐและประชาชนที่ต้องใช้งานเอกสารอิเล็กทรอนิกส์ แต่มีปัญหาการเข้าถึง ค้นคืน และใช้ข้อมูลเหล่านั้น กรณีที่มีการใช้งานไฟล์เอกสารต่างโปรแกรมซอฟต์แวร์ จึงเกิดการรวมตัวกันเป็นกลุ่มพันธมิตร "โอเพ่น ดอคคิวเม้นท์ ฟอร์แมต อะลายแอนซ์ " จาก35 องค์กรทั่วโลก ที่มีสมาชิกประกอบด้วย สมาคม เวนเดอร์ สถาบันการศึกษา หน่วยงานรัฐด้านไอซีทีของหลายประเทศ
หน่วยงานรัฐแรงดันระบบเปิด
หน่วยงานรัฐ จะเป็นผู้สร้างการเปลี่ยนแปลงผลักดันให้ใช้มาตรฐานเปิด และไฟล์เอกสารเปิดโอดีเอฟได้ โดยกำหนดในการจัดซื้อจัดจ้างของภาครัฐว่าต้องเป็นมาตรฐานเปิดและทำงานต่าง ระบบร่วมกันได้ และบังคับใช้โอดีเอฟ ซึ่งการผลัดกันนั้น จะเป็นกระทรวงหนึ่งกระทรวงใดที่มีอิทธิพลผลักดันหน่วยงานอื่นๆ ให้เป็นไปในทิศทางเดียวกันได้
ไม่ว่าจะเป็นกระทรวงเทคโนโลยีสาร สนเทศและการสื่อสาร กระทรวงการคลังที่เกี่ยวข้องการจัดซื้อ กระทรวงสาธารณสุข ที่ต้องใช้การแลกเปลี่ยนข้อมูลผู้ป่วย (เฮลธ์ เรคคอร์ด)
นอกจากนั้น กลุ่มประเทศความร่วมมือทางเศรษฐกิจในภูมิภาคเอเชียแปซิฟิก หรือเอเปค ก็สามารถร่วมมือกันพัฒนาการใช้งานโอดีเอฟได้ ซึ่งจะก่อให้เกิดการแลกเปลี่ยนข้อมูลระหว่างกันได้ โดยเฉพาะหากเกิดปัญหาการระบาดไข้หวัดนก ก็อาจแลกเปลี่ยนข้อมูลระหว่างประเทศกันได้มากและง่ายขึ้น
ด้านข้อมูลจากซีเน็ต นิวส์ ระบุว่า การผลักดันโอดีเอฟ เป็นการสร้างมาตรฐานเอกสารออฟฟิศทั้งการประมวลผลคำ (WordProcessing) การนำเสนอ (Presentation) และเอกสารคำนวณ (Spredsheet) โดยปัจจุบันกว่า 90% ของโปรแกรมเอกสารสำนักงานจะใช้ฟอร์แมตของไมโครซอฟท์
ขณะที่ไมโครซอฟท์ พยายามส่งเสริมการใช้มาตรฐานเอกสาร ที่เป็นโอเพ่น เอ็กซ์เอ็มแอล ดอคคิวเม้นท์ ฟอร์แมต โดยในโปรแกรมออฟฟิศ 2007 ที่ไมโครซอฟท์จะวางตลาดครึ่งปีหลังของปี 2550 จะใช้ไฟล์มาตรฐานโอเพ่นเอ็กซ์เอ็มแอล
3.การปิดระบบใน Windows 7
       3.1 Shutdown เป็นการปิดเครื่อง
       3.2 Switch user เป็นการล็อคออนเข้าบัญชีผู้อื่น โดยงานของบัญชีผู้ใช้คนเดิมยังคงอยู่
       3.3 Log off เป็นการปิดการทำงานของบัญชีผู้ใช้อยู๋ปัจจุบัน เพื่อล็อกออนเข้าบัญชีผู้ใช้รายอื่น
       3.4 Lock เป็นการหยุดพักการทำงานชั่วคราว
       3.5 Restart เป็นการปิดระบบ แล้วบูตเครื่องใหม่
       3.6 Sleep เป็นการหยุดพักระบบหรือระบบหลับชั่วคราว สามารถกลับมาใช้งานเมื่อมีการขยับเมาส์หรือกดปุ่มคีย์ใดๆ บนคีย์บอร์ด
       3.7 Hibernate เป็นการหยุดพักการทำงานชั่วคราว ด้วยการจัดเก็บงานที่ค้างคาอยู่ ณ ขณะนั้นไว้ในฮาร์ดดิสก์ และเครื่องก็จะถูกปิดไป ครั้นเมื่อมีการเปิดเครื่อง ระบบก็จะโหลดโปรแกรมที่ค้างคาขึ้นมา เพื่อให้เราได้ใช้งานต่อ





 บรรณานุกรม
1.https://th.wikipedia.org/wiki/ สืบค้นเมื่อ 21/12/2559
2.http://www2.osdev.co.th/node/355 สืบค้นเมื่อ 21/12/2559

 

 

 

บทที่4

บทที่4
ประเภทของโปรแกรมระบบปฏิบัติการ
 ระบบ ปฏิบัติการเป็นโปรแกรม (Software) ที่ทําหน้าที่ ควบคุมการทํางานของ เครื่องคอมพิวเตอร์และอุปกรณ์ที่ต่อพ่วงกับเครื่องคอมพิวเตอร์ ซึ่งระบบปฏิบัติการจะทําหน้าที่ เป็น ตัวกลางในการติดต่อกับฮาร์ดแวร์ของเครื่องโดยตรงและโปรแกรมการใช์งานต่าง ๆ
ระบบปฏิบัติการ (Operating System) ระบบต่างๆ
         การทํางานของคอมพิวเตอร์จะไม่สามารถทํางานด้วยตัวเองได้ แต่จะต้องอาศัยโปรแกรมสั่งให้คอมพิวเตอร์ทํางานซึ่งเรียกว่า “ซอฟต์แวร์” (Software) โดยทั่วไปซอฟต์แวร์จะแบ่งเป็น 2 ประเภท คือ โปรแกรมสําเร็จรูป และโปรแกรมระบบปฏิบัติการ ซึ่งระบบปฏิบัติการนี้จะมีหน้าที่ ในการจัดการและควบคุมการทํางานและอุปกรณ์ต่างๆ ของเครื่องคอมพิวเตอร์ เช่น การจัดการเกี่ยวกับการแสดงผลบนจอภาพ รับข้อมูลทางแป้นพิมพ์หรือเมาส์ การจัดการเกี่ยวกับแฟ้มข้อมูล การจัดเก็บข้อมูลลงแฟ้ม การติดตั้งโปรแกรม นอกจากนี้ระบบปฏิบัติการยังช่วยสร้างส่วนติดต่อ ระหว่างผู้ใช้กับคอมพิวเตอร์ (User interface) ให้ง่ายต่อการใช้งาน ระบบปฏิบัติการมีอยู่หลาย ระบบ ซึ่งมีการพัฒนาจากผู้ผลิตหลายบริษัท แต่ที่สําคัญ ๆ มีดังนี้
            1. ระบบปฏิบัติการ DOS (Disk Operating System) 
          ระบบ DOS เป็นระบบปฏิบัติการที่ถูกพัฒนาขึ้นโดยบริษัท IBM เพื่อให้เป็นระบบปฏิบัติการสําหรับเครื่องพีซี ซึ่งตัวโปรแกรม DOS จะถูก Load หรืออ่านจากแผ่นดิสก์เข้าไปเก็บไว้ในหน่วยความจําก่อน จากนั้น DOS จะไปทําหน้าที่เป็น ผู้ประสานงานต่าง ๆ ระหว่างผู้ใช้กับอุปกรณ์คอมพิวเตอร์ทั้งหลายโดยอัตโนมัติ โดยที่ DOS จะรับคําสั่งจากผู้ใช้หรือโปรแกรมแล้ว นํ าไปปฏิบัติตาม โดยการทํางานจะเป็นแบบ Text mode สั่งงานโดยการกดคําสั่งเข้าไปที่ซีพร็อม (C:>)ดังนั้น ผู้ใช้ระบบนี้จึงต้องจําคําสั่งต่าง ๆ ในการใช้งานจึงจะสามารถใช้งานได้ ระบบปฏิบัติการ DOS ถือได้ว่าเป็นระบบปฏิบัติการที่เก่าแก่. และปัจจุบันนี้มีการใช้งานน้อยมาก
              2. ระบบปฏิบัติการ Microsoft Windows 
         Windows เป็นระบบปฏิบัติการที่พัฒนาโดยบริษัท Microsoft ซึ่งจะมีส่วนติดต่อกับ ผู้ใช้(User interface) เป็นแบบกราฟิก หรือเป็นระบบที่ใช้รูปภาพแทนคําสั่ง เรียกว่า GUI (Graphic User Interface) โดยสามารถสั่งให้เครื่องทํางานได้โดยใช้เมาส์คลิกที่สัญลักษณ์หรือคลิกที่ คําสั่งที่ต้องการ ระบบนี้อนุญาตให้ผู้ใช้สามารถใช้งานโปรแกรมได้มากกว่า 1 โปรแกรมในขณะเดียวกันซึ่งถ้าเป็นระบบ DOS หากต้องการเปลี่ยนไปทํางานโปรแกรมอื่น ๆ จะต้องออกจาก โปรแกรมเดิมก่อนจึงจะสามารถไปใช้งานโปรแกรมอื่น ๆ ได้ ในลักษณะการทํางานของ Windows จะมีส่วนที่เรียกว่า “หน้าต่าง” โดยแต่ละโปรแกรมจะถือเป็นหน้าต่างหนึ่งหน้าต่าง ผู้ใช้สามารถ สลับไปมาระหว่างแต่ละหน้าต่างได้ นอกจากนี้ระบบ Windows ยังให้โปรแกรมต่าง ๆ สามารถ แชร์ข้อมูลระหว่างกันได้ผ่านทางคลิปบอ์.ด (Clipboard) ระบบ Windows ทําให้ผู้ใช้ ทั่ว ๆไปสามารถทําความเข้าใจ เรียนรู้และใช้งานเครื่องคอมพิวเตอร์ได้ง่ายขึ้น
       3. ระบบปฏิบัติการแมค
                ระบบปฏิบัติการแมค (Mac OS) เป็นระบบปฏิบัติการทางบริษัทแอปเปิล (Apple Inc.) ถูก พัฒนาขึ้นตั้งแต่ปี พ.ศ.2527 เป็นระบบปฏิบัติการที่มีพื้นฐานมาจากระบบปฏิบัติการยูนิกซ์ และเป็นผู้บุกเบิกส่วนติดต่อผู้ใช้แบบกราฟิก ระบบปฏิบัติการแมคมีการพัฒนาหลายรุ่น เช่น แมคโอเอสรุ่นที่ 9 (Mac OS 9) แมคโอเอสรุ่นที่ 10(Mac OS X)
     
 4. ระบบปฏิบัติการ Unix 
           Unix เป็นระบบปฏิบัติการที่ใช้บนเครื่อง SUN ของบริษัท SUN Microsystems แต่ไม่ได้เป็นคู่แข่งกับบริษัท Microsoft ในเรื่องของระบบปฏิบัติการบนเครื่อง PC แต๋อย่างใด แต่Unix เป็นระบบปฏิบัติการที่ใช็เทคโนโลยีแบบเปิด (Open system) ซึ่งเป็นแนวคิดที่ผู้ใช้ไม่ต้อง ผูกติดกับระบบใดระบบหนึ่งหรืออุปกรณ์ยี่ห้อเดียวกัน นอกจากนี้ Unix ยังถูกออกแบบมาเพื่อ ตอบสนองการใช้งานในลักษณะให้มีผู้ใช้ได้หลายคนในเวลาเดียวกัน เรียกว่า ระบบหลายผู้ใช้(Multiuser system) และสามารถทํางานได้หลาย ๆ งานในเวลาเดียวกัน ในลักษณะที่เรียกว่า ระบบหลายภารกิจ (Multitasking system)
             5. ระบบปฏิบัติการ Linux 

           Linux เป็นระบบปฏิบัติการเช่นเดียวกับ DOS, Windows หรือ Unix โดยLinuxนั้นจัด ว่าเป็นระบบปฏิบัติการ Unix ประเภทหนึ่ง การที่Linuxเป็นที่กล่าวขานกันมากในช่วงปี 1999 – 2000 เนื่องจากความสามารถของตัวระบบปฏิบัติ การและโปรแกรมประยุกต์ที่ ทํ างานบนระบบ Linux โดยเฉพาะอย่างยิ่งโปรแกรมในตระกูลของ GNU (GNU’s Not UNIX) และสิ่งที่สําคัญที่สุดก็คือ ระบบ Linux เป็นระบบปฏิบัติการประเภทฟรีแวร์ (Free ware) คือไม่เสียค่าใช้จ่ายในการซื้อ โปรแกรม Linux นั้นมี นักพัฒนาโปรแกรมจากทั่วโลกช่วยกันแก้ไข ทําให้การขยายตัวของ Linux เป็นไปอย่างรวดเร็ว โดยในส่วนของใจกลางระบบปฏิบัติการ หรือ Kernel นั้นจะมีการพัฒนาเป็นรุ่นที่ 2.2 (Linux Kernel 2.2) ซึ่งได้เพิ่มขีดความสามารถและสนับสนุนการทํางานแบบหลายซีพียู หรือ SMP (Symmetrical Multi Processors) ซึ่งทําให้ระบบLinux สามารถนําไปใช้สําหรับทํางาน เป็น Saver ขนาดใหญ่ได้ระบบ Linux ตั้งแต่รุ่น 4 นั้น สามารถทํางานได้บนซีพียูทั้ง 3 ตระกูล คือ บนซีพียูของ อินเทล (PC Intel) ดิจิทัลอัลฟาคอมพิวเตอร์ (Digital Alpha Computer และซันสปาร์ค (SUN SPARC) เนื่องจากใช้เทคโนโลยีที่เรียกว่า RPM (Red Hat Package Management) ถึงแม้ว่าขณะนี้ Linux ยังไม่สามารถแทนที่ Microsoft Windows บนพีซีหรือ Mac OS ได้ทั้งหมดก็ตาม แต่ก็มีผู้ใช้ จํานวนไม่น้อยที่สนใจมาใช้และช่วยพัฒนาโปรแกรมประยุกต์บน Linux และเรื่องของการดูแล ระบบ Linux นั้น ก็มีเครื่องมือช่วยสําหรับดําเนินการให็สะดวกยิ่งขึ้น
6ระบบปฏิบัติการอื่นๆ
                ในปัจจุบันพีดีเอ สมาร์ทโฟน จีพีเอส แท็บแล็ต หรืออุปกรณ์พกพาอื่นๆ เป็นอุปกรณ์ที่ได้รับความนิยมมากยิ่งขึ้น อุปกรณ์พกพาเหล่านี้มีทรัพยากรที่จำกัด เช่น หน่วยความจำ แหล่งพลังงาน และอาจให้ความสำคัญกับการพัฒนาอุปกรณ์รับข้อมูล เช่น แทร็กบอล (trackball) หรือจอสัมผัส (touch screen) ที่ เพิ่มความสะดวกในการใช้งานมากขึ้น จึงจำเป็นอย่างยิ่งที่จะต้องมีระบบปฏิบัติการเฉพาะ เพื่อบริหารจัดการทรัพยากรอย่างมีประสิทธิภาพ ระบบปฏิบัติการในกลุ่มอุปกรณ์ประเภทนี้ เรียกว่า ระบบปฏิบัติการแบบฝังตัว (embedded operating system)เช่น ซิมเบียน (Symbian) วินโดวส์โมบาย (Windowsmobile) แบลคเบอร์รี่ (BlackBerry) แอนดรอยด์(Android) ไอโอเอส (ios) 
โปรแกรมแปลภาษาคอมพิวเตอร์
  ตัวแปลภาษาโปรแกรมคอมพิวเตอร์ เป็นโปรแกรมที่ใช้ในการแปลความหมายของคำสั่งในภาษาคอมพิวเตอร์ชนิดต่างๆไป เป็นภาษาเครื่อง ซึ่งเป็นภาษาที่คอมพิวเตอร์เข้าใจ และทำงานตามคำสั่งได้ โดยโปรแกรมที่เขียนเป็นโปรแกรมต้นฉบับ หรือ ซอร์สโค้ด ( Source code) ซึ่งโปรแกรมเมอร์เขียนคำสั่งตามหลักการออกแบบโปรแกรม และจำเป็นต้องใช้ตัวแปลภาษาคอมพิวเตอร์เพื่อตรวจสอบไวยากรณ์ของภาษาว่าเขียน ถูกต้อง หรือไม่ และทดสอบผลลัพธ์ว่าเป็นอย่างไร ซึ่งภาษาคอมพิวเตอร์ชนิดต่างๆจะมีตัวแปลภาษาของตนเองโดยเฉพาะ โปรแกรมที่แปลจากโปรแกรมต้นฉบับแล้วจะเรียกว่า ออบเจ็คโค้ด ( Object code) ซึ่งเป็นภาษาเครื่องที่ประกอบด้วย รหัสคำสั่งที่คอมพิวเตอร์สามารถเข้าใจและนำไปปฏิบัติได้ต่อไป
          ตัวแปลภาษาคอมพิวเตอร์มีการใช้งานสำหรับการแปลภาษาคอมพิวเตอร์ชนิดต่างๆแบ่งออกเป็น 3 ประเภท
          1. แอสเซมเบลอร์ ( Assembler) เป็นตัวแปลภาษาแอสเซมบลีซึ่งเป็นภาษาระดับต่ำ ให้เป็นภาษาเครื่อง
          2. อินเทอร์พรีเตอร์ ( Interpreter) เป็น ตัวแปลภาษาคอมพิวเตอร์ระดับสูงไปเป็นภาษาเครื่อง โดยใช้หลักการแปลคำสั่งครั้งละ 1 คำสั่งให้เป็นภาษาเครื่อง แล้วนำคำสั่งที่เป็นภาษาเครื่องนั้นไปทำการประมวลผล และแสดงผลลัพธ์ทันทีหากไม่พบข้อผิดพลาด หลังจากนั้นจะแปลคำสั่งถัดไปเรื่อยๆจนกว่าจะจบโปรแกรม ในระหว่างการแปลคำสั่ง ถ้าหากพบข้อผิดพลาดทางไวยากรณ์ของภาษา โปรแกรมอินเทอร์พรีเตอร์ก็จะหยุดการทำงานพร้อมแจ้งข้อผิดพลาดให้ทำการแก้ไข ซึ่งทำได้ง่ายและรวดเร็ว แต่ออบเจ็คโค้ดที่ได้จากการแปลคำสั่งโดยใช้อินเทอพรีเตอร์นั้นไม่สามารถเก็บ ไว้ใช้ใหม่ได้ จะต้องแปลโปรแกรมใหม่ทุกครั้งที่ต้องการใช้งาน ทำให้โปรแกรม ทำงานได้ค่อนข้างช้า
          3. คอมไพเลอร์ ( Compiler) เป็นตัว แปลภาษาคอมพิวเตอร์ระดับสูงไปเป็นภาษาเครื่อง โดยทำการตรวจสอบความถูกต้องของการเขียนคำสั่งทั้งหมดทั้งโปรแกรมให้เป็นออ บเจ็คโค้ด แล้วจึงทำการแปลคำสั่งไปเป็นภาษาเครื่อง จากนั้นจึงทำทำการประมวลผลและแสดงผลลัพธ์ หากพบข้อผิดพลาดของการเขียนโปรแกรม หรือมีคำสั่งที่ผิดหลักไวยากรณ์ของภาษาคอมพิวเตอร์ โปรแกรมคอมไพเลอร์จะแจ้งให้โปรแกรมเมอร์ทำการแก้ไขให้ถูกต้องทั้งหมดก่อน แล้วจึงคอมไพล์ใหม่อีกครั้ง จนกว่าไม่พบข้อผิดพลาดถึงจะนำโปรแกรมไปใช้งานได้
          ข้อดีของคอมไพเลอร์ คือโปรแกรมออ ปเจ็คโค้ดที่ได้จะรวบรวมคำสั่งที่สำคัญในการรันโปรแกรม และได้โปรแกรมที่ทำงานเองได้ หรือ Execute Program ซึ่งสามารถทำงานได้ไม่จำกัด ไม่ต้องเสียเวลาในการแปลใหม่ทุกครั้ง ทำให้การทำงานของโปรแกรมเป็นไปอย่างรวดเร็ว จึงเป็นรูปแบบการแปลที่ได้รับความนิยมอย่างมาก
          ในปัจจุบัน มีหลักการแปลภาษาคอมพิวเตอร์แบบใหม่เกิดขึ้น คือ แปลจากซอร์สโค้ด ไปเป็นรหัสชั่วคราว หรืออินเทอมีเดียตโค้ด ( Intermediate Code) ซึ่งสามารถนำไปทำงานได้ด้วย การใช้โปรแกรมในการอ่าน และทำงานตามรหัสชั่วคราวนั้น โดยโปรแกรมนี้จะมีหลักการทำงาน คล้ายกับอินเทอพรีเตอร์ แต่จะทำงานได้เร็วกว่าเนื่องจากรหัสชั่วคราวจะใกล้เคียงกับภาษาเครื่องมาก มีข้อดีคือสามารถนำรหัสชั่วคราวนั้นไปใช้ได้กับทุก ๆ เครื่องมี่มีโปรแกรมตีความได้ทันที

โปรมแกรมอรรถประโยชน์
            โปรแกรม อรรถประโยชน์เป็นโปรแกรมที่ช่วยอำนวยคามสะดวกในการใช้งาน หรือการจัดการคอมพิวเตอร์ได้อย่างมีประสิทธิภาพ เช่น การจัดการไฟล์ การบีบอัดไฟล์ การสำรองไฟล์ การจัดเรียงพื้นที่ดิสก์ การลบไฟล์ที่ไม่จำเป็น การป้องกันไวรัส
1)โปรแกรมจัดการไฟล์
                โปรแกรมจัดการไฟล์(file manager)ใช้ จัดการไฟล์และโฟล์เดอร์ต่างๆ ตามที่ผู้ใช้ต้องการ เช่น ค้นกา คัดลอก เคลื่อนย้าย ลบ เปลี่ยนชื่อ ซึ่งการจัดการเหล่านี้สามารถทำได้อย่างสะดวกและรวดเร็ว ตัวอย่างโปรแกรมจัดการไฟล์ เช่น Windows Explorer,FreeCommander
2)โปรแกรมบีบอัดไฟล์
                โปรแกรมบีบอัดไฟล์(file compression) ช่วย ลดขนาดไฟล์หรือกลุ่มของไฟล์ เพื่อประหยัดพื้นที่จัดเก็บ และสะดวกในการโอนย้ายไฟล์ ก่อนการใช้งานไฟล์ที่ถูกบีบอัดมาแล้ว จำเป็นต้องเปลี่ยนคืนสู่สภาพเดิมเหมือนก่อนการบีบอัด จึงจะสามารถนำไปบีบอัดได้ ตัวอย่างโปรแกรมบีบอัดไฟล์ เช่น 7-Zip, WinZip, WinRAR
3)โปรแกรมสำรองไฟล์
                โปรแกรมสำรองไฟล์(buckup) ช่วย ในการสำเนาไฟล์จากฮาร์ดดิสก์ไปเก็บไว้ในหน่วยเก็บข้อมูลอื่น ในกรณีที่ฮาร์ดดิสด์หรือข้อมูลเกิดความเสียกาย ผู้ใช้สามารถกูคืนข้อมูลจากหน่วยเก็บข้อมูลที่เป็นสำเนานั้นได้ และข้อมูลที่สำรองไว้นั้นควรเก็บรักษาไว้ในที่ที่ปลอดภัย  โปรแกรมสำรองไฟล์  Buckup
4)โปรแกรมจัดเรียงพื้นที่ดิสก์
                โปรแกรมจัดเรียงพื้นที่ดิสก์ (disk defragmenter) ช่วย จัดเรียงพื้นที่ว่างที่กระจายอยู่ในฮาร์ดดิสก์ ซึ่งเกิดจากการสร้างและลบไฟล์ที่มีอยู่เป็นจำนวนมาก ทั้งนี้เพื่อเพิ่มประสิทธิภาพในการเข้าถึงไฟล์ ซึ่งเดิมส่วนของไฟล์ดังกล่าวอาจเคยกระจัดกระจายอยู่ตามตำแน่งต่างๆใน ฮาร์ดดิสก์ เนื่องจากฮาร์ดดิสก์ไม่มีพื้นที่ว่างที่ขนาดใหญ่พอที่จะเก็บไฟล์นั้นใน พื้นที่ต่อเนื่องกันได้ ส่งผล ให้ต้องใช้เวลานานในการเข้าถึงทุกส่วนในไฟล์อย่างครบถ้วน  โปรแกรมจัดเรียงพื้นที่ดิสก์จะจัดเรียงส่วนของไฟล์เดียวกันให้อยู่ในพื้นที่ ที่ต่อเนื่องกันให้มากที่สุด ในขณะเดียวกันก็จัดเรียงให้พื้นที่ว่างที่อยู่ระหว่างส่วนต่างๆของไฟล์ต่างๆ ให้มาอยู่ในพื้นที่ต่อเนื่องกันด้วย โปรแกรมจัดเรียงพื้นที่ดิสก์ เช่น  Disk Defragmenter, Ultra defrag
5)โปรมแกรมลบไฟล์ที่ไม่จำเป็น
                โปรมแกรมลบไฟล์ที่ไม่จำเป็น (disk cleanup) เป็น โปรแกรมที่ช่วยลบไฟล์หรือข้อมูลที่ไม่จำเป็นออกจากฮาร์ดดิสก์ เช่น ข้อมูลที่เกิดขึ้นขณะค้นหาทางอินเทอร์เน็ต หรือข้อมูลที่ลบทิ้งแล้วแต่ยังเก็บในถังขยะ โปรมแกรมลบไฟล์ที่ไม่จำเป็น เช่น Disk Cleanup
โปรมแกรมขับอุปกรณ์
                โปรมแกรมขับอุปกรณ์หรือดีไวซ์ไดรเวอร์ (device driver) เป็นดปรแกรมที่ช่วยในการติดตั้งระบบเพื่อให้คอมพิวเตอร์สามารถติดต่อหรือใช้งานอุปกรณ์ต่างๆได้ ตัวอย่างโปรมแกรมขับอุปกรณ์  เช่น printer driver, scanner driver, sound driver
บรรณานุกรม
http://pinghaha927.blogspot.com/2014/09/blog-post.html 

วันพุธที่ 7 ธันวาคม พ.ศ. 2559

บทที่3

บทที่3
ระบบปฏิบัติการกับการจัดการทรัพยากรระบบ

 

สถานะของโปรเซส 

สถานะต่างๆ ในการทำงานของโปรเซสจะมีสถานะใดสถานะหนึ่งเท่านั้น ซึ่งจะมีหลายสถานะด้วยกัน ดังนี้

           รูปที่ 2.4  โอเอสจะจัดสรรและจัดการโปรเซสจำนวนมากมายให้ทำงานได้อย่างไร
  1. New
   คือโปรเวสที่เพิ่งสร้างขึ้น
   2.Ready
      คือ สถานะที่โปรเซสพร้อมที่จะใช้งานซีพียูทันทีที่โอเอสที่มอบหมายให้ โดยสถานะนี้อยู่ในสถานะพร้อมที่จะรันเท่านั้น ยังไม่มีการรันหรือเอ็กซ์คิวต์แต่อย่างใด
   3. Running
       คือสถานะที่โปรเซสครอบครองซีพียู หรือซีพียูมีการเอ็กซ์คิวต์คำสั่งของโปรเซสนั้น
   4. Waiting
       คือสถานะโปรเซสนั้นกำลังรอเหตุการณ์อะไรบ้างอย่าง
   5. Block
       คือสถานะที่เกิดการขัดจังหวะการอุปกรณ์อินพุต/เอาต์พุต ซึ่งก็คืออินเตอร์รัพต์
   6.Terminated
       คือสถานะของโปรเซสที่ประมวลผลเสร็จสิ้น
การจัดเวลาซีพียู (cpu Scheduling) เป็นหลักการทำงานหนึ่งของระบบปฏิบัติการที่ทำให้คอมพิวเตอร์มีความสามารถใน การรันโปรแกรมหลายๆ โปรแกรมในเวลาเดียวกัน ซึ่งการแบ่งเวลาการเข้าใช้ซีพียูให้กับโปรเซสที่อาจถูกส่งมาหลายๆ โปรเซสพร้อมๆกัน ในขณะที่ซีพียูอาจมีจำนวนน้อยกว่าโปรเซส หรืออาจมีซีพียูเพียงตัวเดียว จะทำให้คอมพิวเตอร์สามารถทำงานได้ปริมาณงานที่มากขึ้นกว่าการที่ให้ซีพียู ทำงานให้เสร็จทีละโปรเซส ในบทนี้ เราจะมาพูดถึงอัลกอริทึมพื้นฐานของการจัดเวลาซีพียูนี้ โดยจะพูดถึงวิธีการหลักๆ ที่แต่ละอัลกอริทึมมีแตกต่างกัน ข้อดีข้อเสีย และความเหมาะสมต่อระบบงานแบบต่างๆ เพื่อการเลือกใช้อย่างถูกต้อง
3.1 หลักความต้องการพื้นฐาน
จุดประสงค์ของการรันโปรแกรมหลายโปรแกรมคือ ความต้องการที่จะให้ซีพียูมีการทำงานตลอดเวลาเพื่อให้มีการใช้ซีพียูอย่าง เต็มที่ และเต็มประสิทธิภาพ ซึ่งระบบคอมพิวเตอร์มีซีพียูตัวเดียว ในเวลาใดเวลาหนึ่งซีพียูจะทำงานได้เพียงงานเดียวเท่านั้น ถ้ามีหลายโปรแกรมหรือหลายงาน งานที่เหลือก็ต้องคอยจนกว่า จะมีการจัดการให้เข้าไปใช้ซีพียู
ความคิดและหลักการของการทำงานกับหลายโปรแกรมในขั้นพิ้นฐานนั้นค่อนข้างที่จะ ไม่ซับซ้อน แต่ละโปรแกรมจะถูกรันจนกระทั่งถึงจุดที่มันจะต้องคอยอะไรซักอย่างเพื่อใช้ สำหรับการทำงานช่วงต่อไป ส่วนมากการคอยเหล่านี้ก็คือการทำงานที่เกี่ยวข้องกับอินพุต/เอาต์พุตนั้นเอง ในระบบคอมพิวเตอร์ที่มีความสามารถรันโปรแกรมได้ทีละโปรแกรม การทำงานของระบบก็จะไม่ซับซ้อน ซีพียูจะหยุดการทำงานในระหว่างที่คอยอินพุต/เอาต์พุตนี้ ซึ่งการคอยเหล่านี้เป็นการเสียเวลาโดยเปล่าประโยชน์ เพราะซีพียูไม่ได้ทำงานเลย
ส่วนหลักในการรันหลายโปรแกรม เราพยายามใช้เวลาเวลาที่ซีพียูต้องคอยนี้ทำงานอย่างอื่นต่อไป ดังนั้นเมื่อใดก็ตามที่ซีพียูต้องคอย และยังมีโปรแกรมในหน่วยความจำหลายโปรแกรมที่คอยการใช้ซีพียูอยู่ เราจะจัดให้ซีพียู ทำงานในโปรแกรมเหล่านั้นทันที ซึ่งระบบจะจัดการนำเอาโปรแกรมที่คอยอินพุต/เอาต์พุต ออกไปก่อน เพื่อที่จะให้โปรแกรมอื่นที่คอยใช้ซีพียูนี้ สามารถเข้ามาได้ ถ้าทำงานในแบบนี้ไปเรื่อยๆ ซีพียูก็จะได้มีงานเกือบตลอดเวลากับโปรแกรมหลายๆ โปรแกรมที่อยู่ในระบบ
การจัดเวลาให้กับซีพียูแบบนี้ เป็นหลักความต้องการพื้นฐานของระบบปฏิบัติการในคอมพิวเตอร์ ทรัพยากรที่คอมพิวเตอร์มีอยู่ในเครื่องๆหนึ่ง จะถูกจัดสรรการใช้ก่อนการนำไปให้โปรแกรมใดๆ ซีพียูเองก็ถือได้ว่าเป็นทรัพยากรของระบบคอมพิวเตอร์ชนิดหนึ่งที่มีความ สำคัญมากที่สุด โดยซีพียูนี่เอง ที่จะเป็นศุนย์กลางของการสร้างระบบปฏิบัติการที่มีความสามารถในการรันหลาย โปรแกรม

3.1.1 ช่วงเวลาอินพุต/เอาต์พุต และช่วงเวลาใช้ซีพียู (I/O) and CPU Burst Cycle)
ความสำคัญของการจัดเวลาของซีพียูนั้น ขึ้นอยู่กับคุณลักษณะของโปรเซส โดยทั่ว ๆ ไป การเอ็กซีคิวต์โปรเซส จะประกอบด้วยเวลาที่ใช้ซีพียู (CPU Burst Cycle) และเวลาที่คอยอุปกรณ์อินพุต/เอาต์พุต
(I/O) and CPU Burst Cycle) ในขณะที่มีการเอ็กซีคิวต์โปรเซส จะมีการสลับการทำงานระหว่าง 2 ช่วง เวลานี้ เท่านั้น และจะเกิดไม่พร้อมกัน และการเอ็กซีคิวต์มักจะเริ่มจาการใช้ซีพียู แล้วก็ตามด้วยหารอินพุต/เอาต์พุต เมื่อจบการรอคอยก็จะตามมาด้วยเวลาของซีพียู สลับกันไปเรื่อยๆ จนกว่าจะจบการเอ็กซีคิวต์ ซึ่งการเอ็กซีคิวต์นี้มักเป็นการใช้เวลาซีพียูเพื่อทำการจบหรือสิ้นสุด โปรเซสมากกว่าการรอคอยอินพุต/เอาต์พุต (ดูรูป 3.1)



รูป 3.1 การทำงานที่หลากหลายที่ใช้เวลาซีพียูและเวลาในการคอยอินพุต/เอาต์พุต [OSC6:P152]
จากการค้นคว้าที่ผ่านมา ได้มีการศึกษาถึงลักษณะช่วงเวลาของการใช้ซีพียูไว้จาสามารถมองเห็นคร่าวๆว่า ลักษณะของช่วงเวลาที่ใช้ซีพียูในแต่ละโปรเซสจะมีรูปแบบอย่างไร ถึงแม้ว่ารูปแบบของเวลาอาจจะมีความแตกต่างกันอยู่บ้าง แต่ก็มีแนวโน้มที่ว่า แต่ละโปรเซสมักจะมีคาบเวลาการเข้าใช้ซีพียูคล้ายๆกันในรูป 3.2

รูป3.2 ฮีสโตแกรมของเวลาซีพียู [OSC6:P153]

จากกราฟอธิบายได้ว่า การใช้ซีพียูของโปรเซสใดๆนั้น มักจะมีความถี่มากสำหรับเวลาซีพียูช่วงเวลาสั้นๆ ส่วนเวลาซีพียูระยะเวลานานๆ นั้นจะมีความถี่น้อยกว่า นอกจากนี้ยังมีแนวโน้มว่า โปรเซสที่มีการติดต่อแลกเปลี่ยข้อมูลกับอุปกรณ์ภายนอกมากๆ ก็มักจะมีช่วงเวลาของการใช้ซีพียูค่อนข้างสั้นแต่บ่อยครั้ง และมีช่วงเวลาการใช้ซีพียูนานๆ เพียงเล็กน้อย และการศึกษาคุณสมบัติของโปรเซสต่างๆ เหล่านี้อย่างละเอียด ทำให้เราสามารถนำมาใช้เป็นข้อมูลในการเลือกลักษณะของอัลกอริทึมที่เหมาะสม สำหรับการจัดเวลาให้กับซีพียูให้ดีที่สุดในระยยคอมพิวเตอร์แต่ละระบบได้ต่อ ไป

3.1.2 ตัวจัดการเวลาซีพียู (CPU Scheduler)
เมื่อใดก็ตามที่ซีพียูว่าง ระบบปฏิบัติการจะต้องเข้ามาเลือกโปรเซสตัวใดตัวหนึ่งที่คอยอยู่ในคิวเข้ามา ใช้งานซีพียู การเลือกโปรเซสเพื่อเข้ามาใช้ซีพียูนี้ จะถูกจัดการด้วยส่วนที่เรียกว่า ตัวจัดการช่วงสั้น (Short – term Scheduler) หรือ ตัวจัดการเวลาซีพียู (CPU Scheduler) ตัวจัดการเวลานี้จะเลือกโปรเซสที่อยู่ในหน่วยความจำที่พร้อมในการ เอ็กซีคิวต์ที่สุด เพื่อให้ครอบครองเวลาซีพียูและทรัพยากรที่เกี่ยวข้องกับโปรเซสนั้น
ติวของโปรเซสในหน่วยความจำนั้นไม่จำเป็นต้องเป็นแบบมาก่อนได้ก่อน (FIFO : First in First out) เสมอไป อาจจะเป็นไปตามลำดับความสำคัญ (Priority) โครงร่างต้นไม้(Tree) หรืออาจจะเป็นลิ้งลิสก็ได้ อย่างไรก็ตามโปรเซสทุกโปรเซสที่หร้อมใช้ซีพียู จะต้องมีโอกาสได้เข้าครอบครองเวลาซีพียูไม่เวลาใดก็เวลาหนึ่ง ซึ่งการเข้าและออกจากการครอบครองเวลาซีพียูแต่ละครั้ง จำเป็นต้องมีการเก็บข้อมูลไว้เสมอว่า เข้ามาแล้วได้ทำอะไรไปบ้าง ช่วงต่อไปจะทำอะไร เป็นต้น โดยใช้พื้นที่หน่วยความจำส่วนหนึ่งเก็บข้อมูลของแต่ละโปรเซสหลังเสร็จสิ้น การใช้ซีพียู พื้นที่หน่วยความจำที่มีชื่อว่า บล็อคควบคุมโปรเซส (PCB : Process Control Block)

3.1.3 การให้สิทธิการจัดเวลา (Preemptive Scheduling)
การตัดสินใจของซีพียูในการเลือกเอ็กซีคิวต์โปรเซสใดๆ ขึ้นอยู่กับสถานการณ์ดังนี้
1. เมื่อมีการเปลี่ยนสถานะของโปรเซสจากสถานะรัน ไปเป็นสถานะคอย เช่น ในสภาวะที่คอยอินพุต/เอาต์พุต หรือการคอยให้โปรเซสลูกเสร็จสิ้นไปก่อน เป็นต้น
2. เมื่อการเปลี่ยนสถานะของโปรเซสจากรัน เป็นสถานะพร้อม เช่นเมื่อมีอินเทอรัพต์เกิดขึ้น เป็นต้น
3. เทื่อมีการเปลี่ยนสถานะของโปรเซสจากสถานะคอย เป็นสถานะพร้อม เช่นเมื่อ อินพุต/เอาต์พุต เสร็จสิ้นไปแล้ว เป็นต้น
4. มื่อโปรเซสเสร็จสิ้นไปแล้ว

ทั้ง 4 สถานการณ์ดังกล่าวข้างต้น ในสถานการณ์ที่1 และ 4 นั้นเป็นสถานการณ์มราจะต้องมีการตัดสินใจทำอะไรอย่างใดอย่างหนึ่งโดยไม่ สามารถหลีกเลี่ยงได้ เช่น ต้องไปเลือกโปรเซสใหม่เข้ามาเอ็กซีคิวต์ต่อไป เนื่องจากโปรเซสเดิมไม่ใช้ซีพียูอีกแล้ว แต่สำหรับสถานการณ์ที่ 2 และ 3 นั้น การตัดสินใจต้องอยู่บนพื้นฐานหรือกฎเกณฑ์ ของแต่ล่ะอัลกอริทึมที่ใช้ ซึ่งอาจทำให้มีการทำงานที่แตกต่างกันไป
การตัดสินใจที่เกิดขึ้นเนื่องจากสถานการณ์ 1 และ 4 การจัดเวลาซีพียูจะเป็นแบบไม่ให้สิทธิ์ก่อน (non preemptive) นอกนั้นจะเรียกว่าให้สิทธิ์ก่อน (preemptive) ภายใต้การทำงานแบบไม่ให้สิทธิ์ก่อนนี้ โปรเซสจะครอบครองเวลาซีพียูไปจนกว่าจะเสร็จ หรือเปลี่ยนสถานะตัวเองเป็นสถานะคอย การจัดเวลาซีพียูแบบนี้เป็นวิธีการที่ใช้อยู่ในระบบปฏิบัติการ window3.1 และ Apple Macintoch ซึ่งเป็นพียงวิธีการที่ใช้ได้เฉพาะกับแพล็ตฟอร์มของฮาร์ดแวร์เฉพาะแบบ เท่านั้น เนื่องจากระบบปฏิบัติการนี้ไม่ต้องการในการใช้ฮาดแวร์พิเศษ เช่น ไทม์เมอร์ ในการนับคาบเวลาสำหรับการให้โปรเซสใดๆ ครอบครองเวลาซีพียูโปรเซสใดๆในระบบนี้สามารถครอบครองเวลาซีพียูได้จนกว่าจะ หมดความต้องการ ถ้าระบบนี้ต้องการทำเป็นระบบมัลติยูเชอร์ การจัดเวลาแบบให้สิทธิก่อนจะเหมาะสมกว่า
แต่ปัญหาก็มีอยู่ว่าการจัดเวลาแบบให้สิทธิก่อนนั้นต้องใช้ทรัพยากรพิเศษเข้า ช่วยเยอะเพื่อแก้ปัญกาต่างๆ ที่หลักเลี่ยงไม่ได้ที่มีอยู่มากมาย ทำให้ระบบมีราคาแพง คิดง่ายๆ อย่างเช่นในกรณีของโปรเซส 2 โปรเซสที่ใช้ข้อมูลร่วมกัน โปรเซสแรกอาจจะต้องหยุดรอในขณะที่อยู่ในระหว่างการอัปเดทขอ้มูล เนื่องจากคาบเวลามันหมดพอดี แล้วโปรเซสสองก็เข้ามาแทน ซึ่งโปรเซสที่สองนี้อาจจะต้องการที่จะอ่านข้อมูลที่โปรเซสแรกยังแก้ไขไม่ เรียบร้อย ถึงแม้ว่าเหตุการณ์แบบนี้จะดูเป็นเรื่องธรรมดาสำหรับการแก้ไช แต่ในการทำงานจริงๆ แล้ว ระบบปฏิบัติการจะต้องมีตัวช่วยพิเศษมากมาย ดังกล่าวในบทต่อไปนี้
วิธีการจัดเวลาแบบให้สิทธิก่อนนั้นมีผลกระทบต่อการออกแบบ kernel ของระบบปฏิบัติการเป็นอย่างมาก เช่น ในระหว่างเกิด systemcall นั้น kernel อาจจะยังไม่ว่าง เช่นกำลังทำงานในการจัดคิวโปรเซสอยู่ แล้วอะไรจะเกิดขึ้นหากว่าโปรเซสทำให้หยุด และออกจากการครอบครองเวลาซีพียูแน่นอนความวุ่นวายต้องเกิดขึ้น ระบบปฏิบัติการบางตัวเช่น UNIX มีการแก้ปัญหาตรงจุดนี้โดยให้ systemcall สิ้นสุดเอง หรือไม่ก็คอยจนกว่าจะมีการบล็อคการทำงานของอินพุต/เอาต์พุตเกิดขึ้น แล้วจึงมีการทำคอนเท็กซ์สวิตซ์ ที่ทำเช่นนี้ก็เพราะว่า การออกแบบ kernel จะได้ไม่มีความยุ่งยากมาก ตัว kernel เองจะได้ไม่ไปจัดการโปรเซสอื่นๆ ถ้าโครงสร้างข้อมูลของ kernel ยังไม่อยู่ในสภาพสมบูรณ์ แต่ปัญหาก็คือการทำงานของ kernel แบบนี้ช้าเกินไป ทำให้ต้องมีการพัฒนาบางสิ่งบางอย่าง เพิ่มเติมเข้ามาอีก ดังกล่าวในย่อหน้าต่อไป

3.2.1 Dispatcher
คอมโพเนนต์ที่สำคัญอีกตัวหนึ่งที่เกี่ยวข้องกับฟังก์ชันในการจัดเวลาซีพียู ก็คือสิ่งที่เรียกว่า Dispatcher ซึ่งเป็นโมดูลที่ทำหน้าที่ควบคุมการครอบครองซีพียูของโปรเซส ฟังก์ชันนี้ประกอบด้วย
- การย้าย Context
- การย้ายไป user mode
- กระโดดไปยังตำแหน่งที่เหมาะสมของโปรแกรม เพื่อที่จะเริ่มรันโปรแกรมนั้นใหม่อีกครั้ง


Dispatcher นี้ควรมีการทำงานที่เร็วที่สุดเท่าที่จะทำได้ เพราะว่ามันจะต้องทำงานทุกครั้งที่มีการย้ายโปรเซส ซึ่งเวลาที่ถูกใช้ไปกับการกระทำเช่นนี้เราเรียกว่า Dispatch Latency

3.2 ข้อพิจารณาในการจัดเวลา
อัลกอริทึมของการจัดเวลาซีพียู มีคุณสมบัติแตกต่างกันไป ซึ่งอาจจะมีการให้ความสำคัญกับโปรเซสอย่างมากกว่าโปรเซสอื่นๆ ดังนั้นการเลือกอัลกอริทึมสำหรับใช้ในสถาการณ์ต่างๆนั้น เราจำเป็นที่จะต้องพิจารณาถึงคุณสมบัติ เหล่านี้ให้ดีว่ามีข้อดีข้อเสีย อย่างไร
ข้อพิจารณาหลายข้อ ได้ถูกำหนดไว้เพื่อใช้ไปในการเปรียบเทียบอัลกอริทึมต่างๆ ซึ่งลักษณะข้อพิจารณาแต่ละชนิดนั้น สามารถสร้างความแตกต่างให้เห็นได้อย่างชัดเจนในการตัดสินว่าอัลกอริทึมใดดี ที่สุด ข้อการพิจารณาดังกล่าวนี้มีดังนี้
- อรรถประโยชน์ของซีพียู (CPU utilization) คือคำนึงถึงการใช้ประโยชน์จากซีพียูอย่างสูงสุด โดยทำให้ซีพียูมีการทำงานมากที่สุดเท่าที่จะทำได้ คิดเป็นเปอร์เซนต์ระหว่าง 0-100% ซีพียูควรถูกใช้งานระหว่าง 40-90%
- ทรูพุต (Throughput) ถ้าหากว่าซีพียูทำงานตลอดเวลาก็หมายความว่างานก็กำลังถูกให้ให้เสร็จ ซึ่งเราสามารถวัดออกมาได้เป็นจำนวนงานที่เสร็จต่อหน่วยเวลา หรือเรียกว่าทรูอินพุต สำหรับงานที่ยาวมาก อัตราการทำงานหรือค่าอินพุต อาจจะเป็นหนึ่งงานต่อชั่วโมง และก็อาจจะเป็นไปได้ว่างานที่สั้น ก็จะทำให้ทรูอินพุตของระบบสามารถวัดได้ถึง 10 งานต่อวินาที
- เวลาทั้งหมด (Turnaround Time) คือช่วงเวลาทั้งหมดที่ใช้ในการทำงานใดงานหนึ่งตั้งแต่เริ่มต้นเข้าไปในระบบ จนงานถูกทำเสร็จเรียบร้อย ซึ่งจะรวมเอาเวลาที่จะต้องรอที่จะเข้าไปในหน่วยความจำ เวลาที่คอยอยู่ในคิว เวลาที่ใช้ซีพียู และเวลาของอินพุต/เอาต์พุต ทั้งหมดเข้าด้วยกัน
- เวลาคอย (Waiting Time) คือช่วงเวลาที่งานใดงานหนึ่งต้องรอการทำงานของตัวจัดเวลา โดยไม่รวมเวลาของการใช้ซีพียู และเวลาของการติดต่ออินพุต/เอาต์พุต ส่วนใหญ่ก็คือเวลาที่งานต้องคอยอยู๋ในคิว (Ready Queue) นั้นเอง
- เวลาตอบสนอง (Response Time)คือเวลาที่วัดระหว่างเวลาที่มีการเรียกร้องขอการกระทำใดๆต่อระบบแล้วมี การตอบรับกลับมา ซึ่งในบางโปรแกรมที่มีการติดต่อกับผู้ใช้ภายนอกมากๆ เวลารวมทั้งหมดอาจไม่ใช่จุดประสงค์หลักที่ต้องการ เพราะเมื่อมีการติดต่อกับโปรแกรมกับผู้ใช้งานภายนอกนั้น ระบบปฏิบัตืการจะสิ้นสุดการรับผิดชอบเมื่อการร้องขออินพุต/เอาต์พุต สิ้นสุดลง ต่อจากนั้นระบบปฏิบัติการก็จะไปจัดการเรื่องภายในเกี่ยวข้องกับซีพียู อุปกรณ์อินพุต/เอาต์พุตต่างๆที่ติดอยู่กับระบบเหล่านี้ก็จะเป็นผู้ติดต่อกับ ผู้ใช้งาน ดังนั้นเรื่องความเร็วของเวลาตอบสนองมักจะขึ้นอยู่กับอุปกรณ์ อินพุต/เอาต์พุตเหล่านี้ ตัวอย่างเช่น เครื่องพิมพ์ ซีพียูอาจใช้คำนวณใดๆสิ้นสุดแล้ว ได้มีการให้ผลลัพธ์ออกมา และซีพียูก็จะทำงานอื่นต่อไปแล้ว แต่ผลลัพธ์ที่ได้นี้อาจจะต้องใช้เวลาอีกซักระยะยาวกว่าผู้ใช้จะมองเห็น ผลลัพธ์ปรากฎบนกระดาษอย่างนี้ เป็นต้น

จากการวัดลักษณะต่างๆของระบบดังกล่าวข้างต้นสรุปได้ว่าสิ่งที่ผู้ออกแบบ ระบบการจัดการเวลาต้องการก็คือ การทำให้เวลาในการทำงานสั้นที่สุดนั้นเอง แต่ในความเป็นตริงแล้วอาการได้อย่างเสียอย่างมักจะต้องเหิดขึ้น คือเราไม่มามารถ ที่จะได้ระบบที่มามารถทำให้มีการใช้ซีพียูได้สูงสุด โดยที่มีทรูพุท มากที่สุด มีเวลารวมเร็วที่สุด และได้เวลาตอบสนองเร็วที่สุดพร้อมๆกัน ดังนั้นการหาจุดพอดีจากค่าเฉลี่ยของคุณสมบัคิแต่ละชนิดจึงมีความจำเป็นซึ่ง บางครั้งอาจจะต้องมีการกำหนดจุดที่ยอมรับได้ไว้จุดใดจุดหนึ่ง ถ้าหากว่าไม่สามารถหาค่าเฉลี่ยได้
อย่างไรก็ตามก็ได้มีการแนะแนวทางไว้ว่า สำหรับระบบคอมพิวเตอร์ที่ทำงานแบบอินเทอร์เอ็กทีฟ ในระบบแบเวลา การทำให้เวลาตอบสนองมีความคงที่แน่นอนสูงสุด มีความสำคัญกว่าการที่ทำให้ระบบมีทรูพุตสูงสุด เพราะว่าผู้ใช้งานอาจจะต้องการระบบแบ่งเวลาในการตอบสนองที่แน่นอนสำหรับผู้ ใช้หลายๆคน อย่างไรก็ตามความแน่นอนและเชื่อถือได้ของการตอบสนองคำสั่งในระบบแบ่งเวลาก็ อาจเป็นเรื่องที่ไม่มีความสำคัญมากนักในระบบของการทำงาน
หลังจากที่เราได้รู้จักลักษณะต่างๆ ของการจัดเวลาของการทำงานต่างๆ ภานในเครื่องคอมพิวเตอร์แล้ว ต่อไปนี้เราก็จะไปดูรายละเอียดว่า ในการทำงานแต่ละแบบนั้นต้องทำอะไรกันบ้าง เกี่ยวข้องกับระบบการทำงานอะไร แล้วต้องการทรัพยากรชนิดใด ซึ่งการอธิบายให้เข้าใจว่าได้ดีก็ต้องอาศัยตัวอย่างที่มีเวลาซีพียู และเวลาอินพุต/เอาต์พุต หลายร้อยครั้งสลับกัน แต่ในบทนี้จะมีการใช้ตัวอย่างของงานที่มีเวลาซีพียูครั้งเดียว และมุ่งความสนใจไปที่การเปรียบเทียบนะกว่างค่าเฉลี่ยของเวลารอคอย หรือเวลาที่จะต้องคอยอยู่ในคิวเท่านั้น

3.3 อัลกอริทึมของการจัดเวลา (Scheduling Algorithms)
อัลกอริทึมสำหรับการจัดการเวลาในโปรเซสนั้น มีความสำคัญอยู่ที่การตัดสินว่าจะให้โปรเซสใดครอบครองเวลาซีพียูก่อน ซึ่งต่อไปนี้ เราจะมาศึกษากันว่ามีวิธีการใดบ้างที่ใช้ในการตัดสินใจคัดเลือกโปรเซส

3.3.1 การจัดเวลาแบบมาก่อนได้ก่อน (FCFS : First-come-First-Served)
ตรอบจนทุกวันนี้มีวิธีการในการจัดการเวลาที่ง่ายที่สุดสำหรับการคัดเลือก โปรเซสให้ครอบครอง ซีพียู ก็คือ อัลกอริทึมที่ใช้แนวคิดของการมาก่อนได้ก่อน ซึ่งมีหลักการง่ายๆ ก็คือ โปรเซสใดที่ร้องขอให้ซีพียูก่อนก็จะได้รับการจัดสรรให้ครอบครองเวลาซีพียูไป ก่อน ซึ่งการสร้างอัลกอริทึมนี้ทำขึ้นมานั้นได้ไม่ยาก เพราะสามรถนำเอาหลักการของคิวมาก่อนได้ก่อน มาใช้ได้เลย เมื่อมีโปรเซสใดโปรเซสเข้ามาอยู่ในคิวแบบนี้ PCB ของงานก็ถูกเชื่อมไว้กับหางคิวเมื่อใดที่ซีพียูว่างลง โปรเซสใด PCB อยู่ในหัวของมันคิวก็จะถูกนำออกมาจากคิวให้เข้าครอบครองเวลาซีพียูได้เลย

ค่าเฉลี่ยของการรอคอยในคิวแบบมาก่อนได้ก่อนได้ก่อนนี้ค่อนข้างสูง ซึ่งนี้ก็คือผลเสียของการใช้หลักการแบบนี้ ตัวอย่างที่จะแสดงต่อไปนี้ จะใช้อธิบายได้ว่า ทำไมมาก่อนได้ก่อน จึงทำให้ค่าเฉลี่ยของการคอยจึงมีค่าสูง

สสมติว่างานมาถึงคิวตามลำดับดังนี้คือ p1 , p2 และ p3 แถวคอยในระบบ FIFO ก็จะมีลักษณะดังนี้

เวลาในการคอย p1 ในที่นี้จะมีค่า 0 วินาที และขิง p2 คือ24 วินาทีและ p3 คือ27 วินาที ค่าเฉลี่ยของการคอยในสถานการณ์เช่นนี้ก็จะเท่ากับ (0+24+27) /3 หรือ 17 วินที แต่ถ้าสมมติว่าโปรเซสเข้ามาในคิว FIFO ตามลำดบัใหม่ เช่น p3 , p2 และ p1 คิวก็จะมีลักษณะที่ต่างออกไปดังนี้



จากสภาวการณ์สมมติที่สองนี้ เราก็จะได้ออกมาว่า เวลาคิวของ p3 เท่ากับ 0 วินาทีของ p2 เท่ากับ 3 วินาทีและของ p1 เท่ากับ 6 วินาที ซึ่งทำให้ค่าเฉลี่ยของการคอยมีค่าเท่ากับ (0+3+6) /3 =3 วินาทีเท่านั้น
จะเห็นได้ว่าถึงแม้จะมีโปรเซสเหมือนกันรอการเข้าครอบครองซีพียู แต่หากว่าลำดับการเข้าไปคิวมีความแตกต่างกันแล้ว ก็อาจจะทำให้ค่าเฉลี่ยของเวลาในการคอบมีความแตกต่างกันได้มาก นั้นก็คือเวลาของการคอยในแบบ FIFO นั้นยังคงไม่ดีพอ ถ้าหากว่าความต้องการใช้ซีพียูของแต่ละโปรเซสมีคาบเวลาที่แตกต่างกันมากดัง ตัวอย่างข้างต้น
จากตัวอย่างที่ผ่านมาเป็นเพียงตัวอย่างของโปรเซที่มีการขอเรียกในซีพียู ครั้งเดียว สมมติว่า โปรเซสที่เข้ามีทั้งความต้องการซีพียู และ อินพุต/เอาต์พุต สลับกันไป โปรเซสที่ต้องการใช้ซีพียูในระบะเวลาสั้นๆ จะต้องเสียเวลาคอยโปรเซสที่ต้องใช้ซีพียู เป้นระยะเวลานานๆ ครั้งแล้วครั้งเล่า ถ้าหากมีการสลับกันระหว่างเวลาซีพียูและเวลาอินพุต/เอาต์พุต 100 ครั้ง ค่าเ)ลี่ยของเวลาในการคอบก็จะเป็นค่าเฉลี่ยที่นานที่สุด ตามตัวอย่างลำดับของโปรเซส p1 p2 p3 ดังกล่าว
ลักษณะการทำงานของการจัดเวลาซีพียูแบบมาก่อนได้ก่อนนี้ เป็นอัลกิริทึมแบบไม่ให้สิทธิ์ก่อน นั่นก็คือเมื่อโปรเซสใดครอบครองเวลาซีพียูแล้ว ซีพียูจะไม่มีโอกาสด้ว่าง จนกว่าความต้องการใช้ซีพียูของโปรเซสนั้นจะสิ้นสุดลงด้วยการสลับ ไปยังอินพุต/เอาต์พุต ซุ่งจะก่อให้เกิดปัญหาใหญ่ได้ ให้กับระบบคอมพิวเตอร์แบบแบ่งเวลาเพราะว่าผู้อิ่นๆ อาจจะต้องคอยเวลาให้โปรเซสตนเอง ซึ่งอาจจะแนโปรเซสที่สั้นๆ เสร็จพร้อมๆ กัน โปรเซสของผู้อื่นที่ใช้เวลายาวนานกว่ามากๆ เชื่อแน่ว่าผู้ใช้คอมพิวเตอร์ในระบบแบ่งเวลานี้คงไม่เห้นด้วยกับการทำงานใน แบบนี้เป็นแน่

3.3.2 การจัดเวลาแบบงานสั้นทำก่อน (SJF : Short-Job-First-Scheduling)
จากการที่ได้พบเห็นปัญหาในหลักการของอัลกอริทึมมาก่อนได้ก่อน ทำให้มีการคิดค้นต่อไปว่าทำอย่างไรจึงจะเกิดความพอดีระหว่างโปรเซสที่ ต้องการเวลาซีพียูสั้นๆ กับโปรเซสที่ต้องการซีพียูนานๆ ผลลัพธ์ก็คือ แนวความคิดที่จะทำให้โปรเซสที่ต้องการตาบเวลาของซีพียูในเวลาถัดไปสั้น ที่สุด จะได้รับเลือกให้เข้ามาครอบครองซีพียูก่อน และถ้ามีโปรเซสหลายๆตัวที่มีคาบเวลาของซีพียูของช่วงเวลาช่าวงต่อไปเท่าๆกัน ก็จะใช้หลักการมาก่อนได้ก่อนมาใช้ในการคัดเลือก ซึ่งอาจมีชื่อเรียกการคัดงานแบบนี้ว่า สั้นที่สุดได้ใช้เวลาซีพียูไป เพราะแนวความคิดนี้จะมีการจัดคาบเวลาของซีพียูช่วงต่อไปเพียงช่วงเดียวมาก กว่าการวัดรวมว่าตลอดทั้งโปรแกรมต้องการใช้ซีพียูนานเท่าไหร่ อย่างไรก็ตาม เราจะใช้ชื่อว่า SJF แทนเพื่อการอ้างอิงหลักการแบบนี้ต่อไป เนื่องจากว่า SJF เป็นชื่อที่เรียกใช้กันอย่างแพร่หลาย และใช้กันในหนังสือเล่มอื่นๆ อีกมากมาย

ทีนี้เรามาดูการทำงานของ SJF จากตัวอย่างดูบ้าง สมมติว่าเรามีโปรเซสที่มีเวลาซีพียูดังนี้


ถึงแม้ว่าลำกับการเข้ามาในคิวอาจจะเป็น p1 . p2 p3 และ p4 แต่การใช้หลักการของ SJF จะจัดคิวออกมาได้ในลักษณะแบบนี้



ค่าเฉลี่ยของการคอยของงานในระบบก็จะเท่ากับ (3+9+16)/4=7 วินาที ซึ่งถ้าหากว่าการใช้หลักการของมาก่อนได้ก่อน (FCFS) ค่าเฉลี่ยของการคอยก็จะเท่ากับ (6+14+21)/4 = 10.25 จะเห็นได้ว่ามีความแตกต่างกันถึง 3.25 วินาที
จากการทดลองพอว่า SJF จะให้ค่าเฉลี่ยของการคอยได้ต่ำที่สุด สำหรับชุดของโปรเซสใดๆ ก็ตามเพราะว่าการเลื่อนโปรเซสที่มีเวลาซีพียูน้อยสุดมาไว้หย้าคิว จะมีการลดเวลาการคอยโปรเซสทั่สั้นมากกว่าการเพิ่มเวลาของโปรเซสที่ยาวเสมอ ดังนั้นค่าเฉลี่ยของการคอยแบบนี้จึงต่ำสุด
สิ่งที่ยากมากสำหรับการใช้วิธี SJF ก็คือการวัดคาบเวลาของซีพียูถัดไปของแต่ละโปรเซสที่ร้องขอเวลาซีพียูเข้ามา ซึ่งในระบบการทำงานแบบแบ็ตซ์ เจ้าของโปรเซสจะต้องเป็นผู้บอกช่วงเวลาที่จำกัดของการใช้ซีพียู สำหรับโปรเซสให้กับระบบ เพื่อใช้เป็นข้อมูลอ้างอิงสำหรับการจัดการจัดลำดับดังกล่าว ซึ่งเจ้าของโปรเซสก็จะพยายามที่จะทำให้ค่าต่ำที่สุด เพื่อโอกาสในการเข้าไปใช้ซีพียูมาก่อนมากที่สุด แต่ถ้าคาบเวลาที่กำหนดไว้นี้มีค่าน่อยเกินไป ก็จะทำให้โปรแกรมนั้นไม่สามรถคำนวณสำเร็จได้ ซึ่งจะต้องเสียเวลามาเริ่มต้นกันใหม่อีก การจัดเวลาแบบ SJF นั้น เป็นวิธีการที่ใช้กันมากในระบบแบ็ตต์ หรือการจัดเวลาในช่วงยาว
อย่างไรก็ตาม ถึงแม้ว่า SJF จะมีข้อได้เปรียบในแง่ของค่าเฉลี่ยการคอย SJF ก็ยังคงมีปัญหาในการนำมาใช้การจัดเวลาช่าวงสั้น เพราะเราไม่สามารถรู้ได้ว่าความยาวของคาบเวลาการใช้ซีพียูในช่วงเวลาต่อไป ของแต่ละโปรเซสเป็นเท่าใด วิธีการที่มักใช้เป้นแค่การประมาฯเอาเท่านั้น โดยปนะมาณเอาจากระบะเวลาของซีพียูในคาบเวลาที่ผ่านมาด้วยการหาค่าเฉลี่ย เป้นต้น
การประมาณค่าของคาบเวลาซีพียูมักจะหาค่าฉลี่ยแบบเอ็กโปเนนเชียล สมมติว่า Tn เป็นคาบเวลาของ nth เวลาที่ใช้ซีพียูและ tn+1 คือค่าประมาณสำหรับเวลาซีพียูคาบต่อไป และให้0 < α <1

จากสูตรดังกล่าวเป็นการห่าค่าเฉลี่ยแบบเอ็กโปเนนเชียล ระหว่างคาบเวลาในอดีต tn และคาบเวลาจริงที่เพิ่มจะผ่านไป Tn โดยมี α เป็นพารามิเตอร์ในการควบคุมความสำคัญของเวลาในอดีตและปัจจุบัน ซึ่งถ้า α = 1 ก็หมายความว่คาบเวลาที่เพิ่งผ่านไปมีความสำคัญที่สุด โดยไม่คำนึงถึงคาบเวลาช่วงอื่นๆ ในอดีตเลย แต่ถ้า α = 0 ก็หมายความว่า คาบเวลาในอดีตมีความสำคัญสูงสุด ซึ่งในความเป็นจริงแล้ว α = 0.5 เป็นค่าที่นิยมใช้กันมาก เพราะว่าข้อมูลในอดีตและปัจจุบันมีความสำคัญเท่ากัน ค่าเริ่มต้น t0 อาจกำหนดไว้ตายตัวที่ค่าใดค่าหนึ่ง อาจได้มาจากค่าเฉลี่ยของการทำงานที่ผ่านๆ มาก็ได้ รูป 3.3 แสดงให้เห็นว่า การทำงานคาบเวลาซีพียูนั้นมีลักษณะอย่างไร



รูป 3.3 ค่าจากการทำนายความยาวของเวลาซีพียู

การทำงานของอัลกอริทึม SJF สามารถเป็นได้ทั้งแบบให้สิทธิ์ก่อน หรือไม่ให้สิทธิ์ก่อน การตัดสินใจจะเกิดขึ้นทุกครั้งเมื่อมีโปรเซสเข้ามาในคิวในขณะที่ยังมีโปรเซส อื่นใช้งานซีพียูอยู่ เพราะว่าโปรเซสใหม่อาจมีคาบเวลาของเวลาซีพียูสั้นกว่าเวลาที่เหลืออยู่ของ เวลาซีพียูของโปรเซสที่กำลังใช้ซีพียู ถ้าเป็นแบบนั้น อัลกอริทึมที่เป็นแบบสิทธิ์ก่อนจะทำการหยุดงานที่กำลังใช้ซีพียูอยู่ แต่ถ้าเป็นแบบไม่ให้สิทธิ์ก่อน อัลกอริทึมก็จะปล่อยให้งานที่ทำงานอยู่นั้นใช้ซีพียูของช่วงเวลานั้น บางครั้งการทำ SJF แบบให้สิทธิ์ก่อน อาจมีชื่อเรียกว่า Shortest-Remaining-First

ต่อไปนี้จะยกตัวอย่างเพื่อความเข้าใจในเรื่อง SJF แบบให้สิทธิ์ก่อน โดยสมมติให้มีโปรเซสที่จะเข้ามาในระบบ 4 โปรเซสดังนี้



เมื่องานมาถึงคิวตามเวลาที่แสดงไว้ ลำดับของการเข้าใช้ซีพียู ก็จะเป็นดังนี้



อธิบายได้ว่า เมื่อโปรเซส P1 เข้ามาถึงเวลา 0 วินาที โปรเซส p1 ก็จะได้เข้าไปใช้ซีพียูทันทีเนื่องจากว่ายังไม่มีโปรเซสอื่นเข้ามา เมื่อถึงเวลาที่ 1 วินาที งาน p2 ซึ่งมีคาบเวลาซีพียูสั้นกว่า4วินาที
เมื่อเทียบ p1 ซึ่งยังเหลืออีก 7 วินาที ดังนั้นงาน p1 จึงถูกหยุดไว้ก่อนเพื่อ p2 จะได้เข้าไปใช้ซีพียู และเนื่องจากคาบเวลาความต้องการใช้ซีพียูของ p1 ยังเหลือมากกว่า p4 แต่น้อยกว่า p3 การจัดลำดับการเข้าใช้ซีพียู จึงออกมาตามรูปที่แสดงข้างต้น โดยถ้าให้ p2 แทรก p1 กลางคัน เวลารอคอยเฉลี่ยจะเท่ากับ ((10-1)+(1-1)+(17-2)+(5-3))/ 4 = 26/4 = 6.5 แต่ห้ามแทรกการคัน เวลารอคอยเฉลี่ยจะเท่ากับ ((0)+(8-1)+(17-2)+(12-3))/4 = 31/4 = 7.75 วินาที


3.3.3 การจัดเวลาตามลำดับความสำคัญ (Priority Scheduling)
วิธีการของอัลกอริทึมSJF สามารถมองได้อีกแง่หนึ่งว่าเป็นการจัดเวลาตามลำดับความสำคัญชนิดหนึ่งลำดับ ความสำคัญของแต่ละโปรเซสจะถูกกำหนดไว้โดยวิธีใดวิธีหนึ่ง เพื่อว่าการใช้ซีพียูจะมีการใช้โปรเซสที่มีลำดับความสำคัญที่สูงสุดเท่านั้น แต่ถ้ามีงานที่ลำดับความสำคัญเท่ากัน จะมีการนำมาก่อนได้ก่อนมาใช้
ในที่นี้วิธีการของ SJF ได้มีการกำหนดลำดับความสำคัญของโปรเซสด้วยคาบระยะเวลาของความต้องการใช้ซีพี ยูหรือเวลาการใช้ซีพียูของแต่ละโปรเซสเช่นโปรเซสใดมีคาบเวลาสั้นที่สุดก็จะ มีลำดับความสำคัญมากที่สุด ทีนี้เมื่อเราพูดถึงความมากน้อยของลำดับความสำคัญ มันก็จะมีความจำเป็นที่จะต้องกำกับไว้ด้วยสัญลักษณ์ที่เปรียบเทียบกันได้ เช่น ตัวเลขจำนวนนับ เป็นต้น แต่จะกำหนดให้มีกี่ลำดบัก็สุดแล้วแต่ผู้ออกแบบ อาจจะเป็น 0-9 หรือ 0-6789 ก็ได้และก็ไม่มีกฏตายตัวว่าเลขมากหรือน้อยจะมีความหมายในเรื่องของลำดับความ สำคัญอย่างไร ซึ่งการไม่มีข้อตกลงในการใช้ระบบการกำกับของความสำคัญเหล่านี้ อาจก่อให้เกิดความสับสนขึ้นได้ ดังนั้นในหนังสือเล่มนี้จะมีการกำหนดว่าตัวเลขน้อยมีลำดับความสำคัญมาก เพื่อเป็นที่เข้าใจร่วมกัน
ตัวอย่างต่อไปนี้เป็นการแสดงถึงการจัดเวลาซีพียู แบบใช้ตัวเลขเป็นตัวบอกความสำคัญโดยมีตัวอย่างโปรเซส5 ตัวอย่างดังนี้



ถ้าเราใช้การจัดเวลาแบบการใช้ลำดับความสำคัญ เราจะสามารถจัดลำดับของโปรเซสให้เข้าไปทำงานในซีพียูได้ดังนี้

a>

ซึ่งค่าฉลี่ยของการคอยในคิวของแต่ละโปรเซสมีค่าเท่ากับ (1+6+16+18)/5 = 8.2 วินาที
การกำหนดลำดับความสำคัญของแต่ละโปรเซสสามารถกำหนดได้ภายใน และ ภายนอก การกำหนด ภายในคือ การกำหนดลำดับความสำคัญด้วยวิธีการใดหารหนึ่งจากการวัดและคำนวณคุณสมบัติบาง อย่างของแต่ละโปรเซสที่สามารถวัดค่าได้ คุณสมบัติที่วัดค่าได้เหล่านี้เช่น เวลาของการกำจัดการใช้ซีพียู ความต้องการขนาดของหน่วยความจำ จำนวนไฟล์ที่ต้องเกี่ยวข้องหรือแม้แต่อัตราส่วนของจำนวนเวลา อินพุต/เอาต์พุตต่อเวลาซีพียูเป็นต้น ส่วนการกำหนดจากภายนอก หมายถึงการกำหนดลำดับความสำคัญของโปรเซสใดๆ จากวิธีการอื่นๆ นอกเหลือจากระบบปฏิบัติการ ตัวอย่างเช่น ราคาค่าเช่าเวลาซีพียู แหล่งที่มาของโปรเซส หรือความเร่งด่วนของโปรเซส เหล่านี้ล้วนสามารถนำมาเป็นตัวใช้สำหรับคำนวณค่าลำดับความสำคัญของโปรเซส ก่อนที่ระบบปฏิบัติการจะรับเอาโปรเซสเข้ามานั่นเอง
การจัดเวลาแบบมีลำดับความสำคัญสามารถเป็นได้ทั้งแบบให้สิทธิ์ก่อนหรือไม่ให้ สิทธิ์ก่อนก็ได้ โดยมีลักษณะการทำงานเหมือนกับ SJF ดังกล่าวมาแล้วทุกประการ
ปัญหาใหญ่ของการจัดการเวลาซีพียู โดยใช้ลำดับความสำคัญของโปรเซสมาเกี่ยวข้องก็คือโปรเซสที่มีลำดับความสำคัญ ต่ำอาจจะไม่มีโอกาสได้เข้าไปใช้ซีพียูเลย ถ้าหากว่าโปรเซสที่มีลำดับความสำคัญสูงกว่าอยู่เป็นจำนวนมาก ซึ่งโดยปกติแล้วโปรเซสที่มีลำดับความสำคัญสูงต่ำเหล่านี้ กว่าจะได้รับซีพียูมาทำงานก็อาจจะเป็นตีสองวันอาทิตย์หรือไม่ก็ถูกยกเลิกไป ในที่สุด เพราะระบบคอมพิวเตอร์มีการตัดสินขัดและต้องเริ่มเปิดเครื่องกันใหม่

การแก้ปัญหาให้กับสถานการณ์ที่มีโปรเซสลงเหลือ เนื่องจากมีลำดับความสำคัญต่ำก็คือ การเพิ่มลำดับความสำคัญให้กับโปรเซสที่ยังไม่เสร็จเหล่านี้ตามระยะเวลาที่ คอยอยู่ในคิว ตัวอย่างเช่น สมมคิว่าเรามีการออกแบบให้มีลำดับความสำคัญจาก 0-127 ขั้น เราอาจจะเพิ่มอัลกอริทึมพิเศษลงไปว่า ถ้าโปรเซสใดคอยการใช้ซีพียูครบ 15 นาที ก็ให้ลดตัวเลขลำดับขั้นลงทีละขั้น และจะลดลงเรื่อยๆ ทุก 15 นาที ซึ่งการกระทำแบบนี้ แม้โปรเซสที่เข้ามาในระบบมีลำดับความสำคัญต่ำสุด ที่ 127 ก็จะมีโอกาส เข้าไปในซีพียูภานในเวลาไม่เกิน 32 ชม. เพราะในที่สุดโปรเซสนี้ก็จะมีความสำคัญเท่ากับ 0
3.3.4 การจัดเวลาแบบวนรอบ (RR : Round-Robin Scheduling)

การจัดเวลาแบบวนรอบ (RR : Round-Robin Scheduling) เป็นวิธีการที่คิดขึ้นมาเพื่อใช้กับระบบคอมพิวเตอร์แบบแบ่งเวลาโดยเฉพาะ โดยมีลักษณะการทำงานแบบมาก่อนได้ก่อน(FCFS)แต่ให้มีกรรมวิธีของสิทธิ์ก่อน รวมอยู่ด้วย แต่ละโปรเซสที่เข้ามาในระบบจะถูกกำจัดเวลาการเข้าไปใช้ซีพียูเท่าๆกัน ซึ้งช่วงเวลานี้จะเป็นช่วงเวลาสั้นๆ เรียกว่า เวลาควันตัม (Quantum Time) หรือช่วงเวลา (Time Slice) ระยะเวลาควันตัมนี้ มีความยาวระหว่าง 10 ถึง 100 มิลลิวินาที และคิวที่ใช้ก็เป็นแบบวงกลม (Circular Queue) ตัวจัดเวลาจะมีการให้ซีพียูกับโปรเซสเซอร์ที่อยู่ในคิวแบบวนไปรอบๆ ในแต่ละคาบเวลาที่ให้นั้น โดยจะมีความยาวนานของการได้รับซีพียูมากที่สุดคือ 1 ควันตัม ถ้าโปรเซสไม่สามารถกระทำได้สำเร็จภายใน 1 ควันตัมนี้ โปรเซสจะต้องถูกกลับไปไว้คิวเช่นเดิม สถานภาพต่าง ๆ ของโปรเซสที่ยังทำไม่เสร็จก็จะถูกบันทึกไว้ เพื่อว่าเมื่อถึงโอกาสได้ครอบครองซีพียูอีก ก็จะได้เริ่มต้นรันต่อจากครั้งที่แล้วโดยไม่ต้องเริ่มใหม่ทั้งหมด
การสร้างระบบการทำงานแบบวนรอบ เราจะทำคิวที่พร้อมทำงาน(Ready Queue)เป็นแบบมาก่อนได้ก่อนไว้สำหรับเก็บโปรเซสต่างๆ โปรเซสที่เข้ามาใหม่จะถูกนำมาต่อไว้ที่หางของคิว ตัวจัดเวลาจะเลือกเอาโปรเซสที่อยู่ตรงหัวคิวออกมา แล้วกำหนดให้ไทม์เมอร์หยุดการให้เวลาซีพียูหลังจากนั้น 1 ควันตัม แล้วนำโปรเซสออกไปต่อที่หางคิว ถ้าหากว่าโปรแกรมยังไม่สิ้นสุดการทำงาน
โปรเซสบางโปรเซสอาจต้องการใช้ซีพียูน้อยกว่า 1 ควันตัม ในกรณีนี้โปรเซสที่เสร็จก่อนถึงเวลา 1 ควันตัม จะต้องให้ออกจากการครอบครองซีพียู เพื่อให้โปรเซสอื่นที่อยู่ตรงหัวคิวเข้ามาทำงานได้
เวลาเฉลี่ยของการคอยในกรรมวิธีของวนรอบจะค่อนข้างนาน ให้ลองพิจารณาตัวอย่างของการเอ็กซิคิวต์โปรเซส 3 โปรเซสดังต่อไปในแบบวนรอบ โดยที่โปรเซสทั้ง 3 เข้ามาถึงระบบพร้อมๆ กัน



สมมุติว่า เราใช้ควันตัมเท่ากับ 4 วินาที โปรเซส P1 ครอบซีพียูในครั้งแรก 4 วินาที แต่เวลาที่ต้องการจริงคือ 24 วินาที ดังนั้นโปรเซส P1 จึงเหลือเวลาที่ต้องการอีก 20 วินาที แต่เมื่อเวลาควันตัมแรกหมดลงที่วินาที
ที่ 4 โปรเซส P1 ก็จะออกจากการครอบครองซีพียู โปรเซส P2 ซึ่งเป็นโปรเซสที่อยู่ถัดไปในคิว ก็จะได้ครอบครองซีพียู แต่โปรเซส P2 ต้องการครอบครองซีพียูแค่ 3 วินาที ดังนั้นโปรเซส P2 จึงทำเสร็จก่อนที่เวลา
ของควันตัมจะหมดลง โปรเซส P3 ที่คอยอยู่ถัดไปจึงได้เข้าครอบครองซีพียู ที่เวลา 7 วินาที ผลของการทำงานแบบควันตัมต่อโปรเซสดังกล่าวสามารถแสดงได้ดังนี้


ค่าเฉลี่ยของเวลาที่ต้องคอยคือ 17/3 = 5.66 วินาที
ในหลักการทำงานของการวนรอบ จะไม่มีโปรเซสใดๆ ที่จะได้รับโอกาสในการครอบครองซีพียูเกินหนึ่งควันตัม ไม่ว่าโปรเซสที่กำลังใช้งานอยู่นั้นจะเสร็จหรือไม่ก็ตาม เมื่อหมดเวลาของหนึ่งควันตัม โปรเซสที่
กำลังครอบครองซีพียูอยู่นั้นก็จะต้องถูกนำออกมาจากซีพียู และถ้ายังไม่เสร็จก็จะถูกนำไปเข้าคิว การทำงานแบบ
วนรอบนี้จึงเป็นการทำงานแบบให้สิทธิ์ก่อน

ถ้ามีโปรเซสอยู่ในคิวจำนวน n โปรเซส และระยะเวลาของควันตัมเท่ากับ q หน่วย แต่ละโปรเซสที่
อยู่ในคิวจะมีเวลาเฉลี่ยของการคอยไม่นานไปกว่า (n-1) x q หน่วย ก่อนที่จะได้รับการเข้าไปใช้ซีพียูอีกครั้ง
ตัวอย่างเช่น ถ้ามีโปรเซส 5 โปรเซส และระยะของควันตัมคือ 20 วินาที แต่ละโปรเซสจะต้องคอยในคิวโดย
เฉลี่ยประมาณไม่เกิน 80 วินาที ที่บอกว่าไม่เกินก็เพราะว่าการคอยอาจจะน้อยกว่านี้ ถ้าหากว่ามีโปรเซสใดๆ
สามารถทำงานเสร็จโดยใช้เวลาน้อยกว่าเวลาควันตัมนั่นเอง

ประสิทธิภาพของการวนรอบขึ้นอยู่กับการกำหนดขนาดของควันตัมเป็นอย่างยิ่ง ถ้าขนาดของควันตัม
ใหญ่หรือนานเกินไป ประสิทธิภาพของการวนรอบก็จะใกล้เคียงกับแบบมาก่อนได้ก่อน แต่ถ้าขนาดของควันตัม เล็กมากเกินไป ทรูพุต (throughput) ของระบบก็จะช้าลง เนื่องจากการนำเอาโปรเซสเข้าและออก
จากการครอบครองซีพียูจะต้องเสียเวลาบางส่วนในการทำ Dispatcher ซึ่งถ้าขนาดของควันตัมเล็กใกล้เคียงกับเวลาของ Dispatcher เวลาของระบบรวมก็จะหมดไปกับการเอาโปรเซสเข้าและออก (Context Switch)นั่นเอง
ในการทำระบบปฏิบัติการแบบการวนรอบนั้น การกำหนดขนาดของควันตัม เป็นเรื่องที่ติ้งทำกันอย่างพิถีพิถัน ซึ่งอาจจะต้องมีการทดลองใช้ขนาดขงควันหลายๆ ขนาดกับระบบที่ใช้จริง เนื่องจากความเร็วของซีพียู
และอุปกรณ์ต่างๆ ที่เกี่ยวข้องกับการทำ Context Switch มีความเร็วไม่เท่ากันในแต่ละคอมพิวเตอร์ส่วนใหญ่แล้วขนาดของควันตัมมักจะมี ขนาดที่ใหญ่กว่าเวลาของ Context Switch พอสมควร เช่น ประมาณ 10 เท่า
เป็นต้น ซึ่งหมายความว่าถ้าเวลาของ Context Switch ที่ต้องใช้คือ 1 วินาที ขนาดของควันตัมควรจะเป็นที่
ประมาณ 10 วินาที เป็นต้น แต่นั่นไม่ใช่เป็นสูตรตายตัวสำหรับระบบงานคอมพิวเตอร์ทุกๆ เครื่อง การกำหนด
ขนาดที่เหมาะสมยังต้องคำนึงถึงลักษณะโปรเซส ความเร็วซีพียู และต้องการในลักษณะการตอบสนองของคอมพิวเตอร์ในสภาวการณ์ต่างๆ ประกอบกันด้วย

ในการวนรอบ (turnaround time) ก็เป็นอีกส่วนหนึ่งที่จะมีผลกระทบจากขนาดของควันตัม
จากตัวอย่างในรูปที่ 3.4 ด้านล่างนี้จะเห็นว่าเวลาในการวนรอบไม่จำเป็นที่จะต้องดีขึ้นจากการที่ขนาดของ
ควันตัมที่เพิ่มขึ้นเสมอไป ในทางปฏิบัติทั่วๆ ไปแล้ว ค่าเฉลี่ยนของเวลาในการวนรอบจะดีขึ้นถ้างานแต่ละงานสามารถทำเสร็จได้ภายใน ระยะเวลาของ 1 ควันตัม



รูป 3.4 แสดงเวลาวนรอบที่เปลี่ยนไปตามเวลาควันตัม [OSC6:P165]
จากตัวอย่างข้างต้น เรายังไม่มีการคิดเวลาของคอนเท็กซ์สวิตซ์ที่ต้องเสียไป เพราะถ้ามีการรวมเวลาของ
คอนเท็กซ์สวิตซ์แล้ว การลดขนาดของควันตัมในระดับหนึ่งก็จะทำให้เวลาในการวนรอบเพิ่มขึ้นได้เป็นอย่างมาก
แต่ถ้าขนาดของควันตัมใหญ่เกินไป ก็จะเป็นการทำงานคล้ายๆ มาก่อนได้ก่อนนั่นเอง ในทางปฏิบัติแล้ว ถ้าเราพอ
จะรู้ว่าแต่ละงานจะใช้เวลาซีพียูงานละเท่าใด เราก็จะสามารถกำหนดเวลาของควันตัมไว้ที่ประมาณ 80 % ของเวลาซีพียู

3.3.5 การจัดเวลาแบบคิวหลายระดับ (Multilevel Queue Scheduling)
เป็นการจัดเวลาของการนำโปรเซสเข้ามาครอบครองซีพียูอีกแบบหนึ่ง สำหรับระบบที่สามารถ
แบ่งระดับชั้นของงานได้อย่างชัดเจน เช่น งานที่เป็นฟอร์กราวนด์ (Foreground) หรืออินเตอร์แอ็กทีฟ
(Interactive) กับงานที่เป็นแบ็คกราวนด์ (Background) หรือแบ็ตซ์ (Batch) ซึ่งงานทั้งสองแบบนี้
ต้องการเวลาตอบสนอง (Response time) ที่แตกต่างกัน ซึ่งสามารถใช้ระบบการจัดเวลาที่แตกต่างกันได้
โดยทั่วไปแล้วงานที่เป็นฟอร์กราวนด์จะมีระดับชั้นความสำคัญเหนือกว่างานที่เป็นแบ็คกราวนด์
การจัดเวลาแบบคิวหลายระดับนี้จะใช้วิธีแบ่งคิวออกเป็นหลายๆ ระดับหมายถึงระดับโปรเซสที่มี
ความสำคัญแตกต่างกัน ซึ่งการแบ่งระดับความสำคัญของโปรเซสนั้น สามารถแบ่งได้หลายลักษณะไม่ว่าจะ
แบ่งตามขนาดของโปรเซสจำนวนหน่วยความจำที่ต้องใช้หรือจำนวนอินพุต/เอาต์พุต เป็นต้น
โดยที่แต่ละคิว ยังสามารถใช้หลักการของการจัดเวลาที่แตกต่างกันได้ด้วย เช่น งานที่เป็นฟอร์กราวนด์ก็อาจ
ใช้การจัดตารางแบบการวนรอบ(RR)ส่วนงานที่เป็นแบบแบ็คกราวนด์ก็อาจใช้วิธีการจัดตารางเวลาแบบมา
ก่อนได้ก่อน (FCFS) นอกจากนี้ยังมีการเพิ่มการจัดเวลาระหว่างคิวอีกด้วย ซึ่งอาจเป็นได้ทั้งแบบการจัด
ลำดับความสำคัญแบบคงที่ (fixed-priority preemptive scheduling) หรือ การจัดลำดับความ
สำคัญแบบเปลี่ยนแปลงได้ (variable-priority preemptive scheduling) ก็ได้ ซึ่งในแบบหลังนี้
โปรเซสอาจมีการปรับตัวเองในเรื่องของระดับความสำคัญด้วยการเลื่อนไปมาระหว่างคิวได้ ดังกล่าวในย่อ
หน้าถัดไป
ตัวอย่างลักษณะของการจัดลำดับความสำคัญแบบคงที่ที่มีคิว 5 คิวคือ
1. system process queue
2. interactive process queue
3. interactive editing process queue
4. batch 14 process queue
5. student process queue
ตามรูป 3.5 ดังนี้
ระดับความสำคัญสูงสุด (Highest priority)

ระดับความสำคัญต่ำสุด (Lowest priority)

รูป 3. 5 การจัดเวลาแบบคิวหลายระดับ [OSC6:P166]

แต่ละคิวจะมีความสำคัญเหนือกว่าคิวที่อยู่ด้านล่างถัดลงไปเสมอ นั่นก็คือโปรเซสที่คอยอยู่ในคิวที่มีความสำคัญต่ำจะมีโอกาสได้ออกมาใช้ซีพี ยูก็ต่อเมื่อคิวที่มีความสำคัญสูงกว่าไม่มีโปรเซสที่ต้องทำเหลืออยู่ เท่านั้น หรือทำในขณะที่โปรเซสที่มีลำดับความสำคัญกำลังครอบครองซีพียู แล้วมีโปรเซสที่มีลำดับความสำคัญ
สูงกว่าเข้ามาคอยอยู่ในคิวที่สูงกว่า โปรเซสนี้ก็จะถูกนำออกมาจากซีพียูทันที
อย่างไรก็ตามเพื่อป้องกันไม่ให้โปรเซสที่อยู่ในคิวต่ำ ต้องคอยอยู่นานเกินไป หรืออาจจะไม่มีโอกาส
เข้าได้ไปใช้ซีพียูเลย เพราะว่าในคิวบน ๆ ไม่เคยว่างเลย ก็อาจจะต้องมีการกำหนดสัดส่วนเวลาให้กับแต่ละคิว
ในการทำงานเข้าไปในซีพียู เช่น การกำหนดให้เวลา 80 เปอร์เซ็นต์เป็นของโปรเซสที่ฟอร์กราวนด์ และอีก
20 เปอร์เซ็นต์เป็นของงานแบ็คกราวนด์เป็นต้น
ส่วนการทำงานแบบการจัดลำดับความสำคัญแบบเปลี่ยนแปลงได้นั้น อาจมีชื่อเรียกอีกอย่างได้ว่า
เป็นการทำงานแบบ Multilevel Feedback Queue Scheduling เพราะว่าโปรเซสในแต่ละคิวสามารถ
มีการเลื่อนชั้นระดับความสำคัญขึ้นหรือลงได้ ซึ่งเมื่อเปรียบเทียบกับแบบการจัดลำดับความสำคัญแบบคงที่แล้ว
อาจจะต้องเสียเวลาเพิ่มอีกนิดหน่อยในการคำนวณหาระดับความสำคัญใหม่ให้กับโปรเซส ซึ่งส่วนมาแล้วจะแบ่ง
ระดับความสำคัญตามระยะเวลาของซีพียู เช่น ทำงานได้ดี เวลาที่ซีพียูนานขึ้นก็อาจจะถูกลดชั้นลงมาสู่คิวที่มี
ลำดับความสำคัญต่ำได้ ซึ่งจะทำให้โปรเซสที่มีการใช้ซีพียูน้อยแต่มีอินพุต/เอาต์พุต หรืออินเทอร์แอ็กทีฟมาก ๆ
มีโอกาสเข้าไปอยู่ในคิวที่มรความสำคัญมากได้ วิธีนี้ยังเป็นการป้องกันไม่ให้มีโปรเซสที่มีความสำคัญน้อยถูกดองอยู่ในคิว เพราะโปรเซสที่อยู่ในคิวที่ต่ำก็สามารถเลื่อนขึ้นไปสู่คิวที่สูงขึ้นถ้าคอย อยู่นานเกินไป
จะพิจารณาตัวอย่างของ Multilevel Feedback Queue ดังรูป 3.6



มาก่อนได้ก่อน(FCFS)

รูป 3.6 Multilevel Feedback Queue [OSC6:P168]

เมื่อมีโปรเซสแรกเข้ามาในคิวแรก มันก็จะได้โอกาสเข้าไปครอบครองซีพียู ภายใต้การกำหนดขนาดของควันตัม 8 วินาที ซึ่งถ้ามันไม่สามารถเสร็จได้ภายในควันตัมที่กำหนดนี้ มันก็จะถูกลดชั้นลงไปอยู่ในคิวที่สองที่มีการกำหนดขนาดของควันตัมไว้ 16 วินาที และถ้าเมื่อไหร่คิวแรกไม่มีโปรเซสอยู่ โปรเซสที่อยู่ในคิวที่มีการกำหนดขนาดควันตัมไว้ 16 วินาที ก็จะมีโอกาสได้ไปครอบครองซีพียู และถ้าโปรเซสนี้ยังไม่เสร็จใน 16 วินาทีนี้
มันก็จะถูกลดชั้นลงมาอยู่ในคิวแบบมาก่อนได้ก่อน ซึ่งจะได้โอกาสครอบครองซีพียูก็ต่อเมื่อคิวควันตัมขนาด
8 วินาที และ 16 วินาทีว่างเท่านั้น อย่างไรก็ตามถ้ามีโปรเซสที่ถูกแช่อยู่ในคิวมาก่อนได้ก่อน (FCFS) นานเกินไป โปรเซสเหล่านี้ก็อาจมีโอกาสที่จะถูกนำกลับขึ้นไปยังคิวด้านบนได้เช่นกัน
หลักการทำงานแบบนี้จะให้ความสำคัญกับโปรเซสใดๆ ก็ตามที่มีเวลาซีพียูที่น้อยกว่าหรือเท่ากับ
8 วินาทีส่วนงานที่มีเวลาซีพียูมากกว่า 8 วินาที แต่น้อยกว่าหรือเท่ากับ 24 วินาทีมันก็จะตกลงมาอยู่ในคิว
มาก่อนได้ก่อน (FCFS)
สิ่งสำคัญที่ต้องคำนึงถึงเมื่อต้องการที่จะออกแบบการจัดเวลาแบบนี้ มีดังนี้คือ
1. จำนวนของคิว
2. วิธีของการจัดเวลาของแต่ละคิว
3. หลักเกณฑ์ในการตัดสินใจเพิ่มความสำคัญของโปรเซส
4. หลักเกณฑ์ในการตัดสินใจลดความสำคัญของโปรเซส
5. หลักเกณฑ์ในการตัดสินใจนำเอาโปรเซสที่ต้องการครอบครองซีพียูมาเข้าในคิว
การทำงานของ Multilevel Feedback Queue ดังกล่าวข้างต้นทำให้มันเป็นระบบการจัดเวลากันอย่างแพร่หลาย เพราะสามรถปรับเปลี่ยนสัดส่วนต่างๆ ให้เหมาะสมได้ง่ายกับระบบคอมพิวเตอร์ที่มันจะต้องทำการควบคุม แต่การที่มันมีค่าที่ต้องปรับเปลี่ยนเป็นจำนวนมากตามที่กล่าวมาทั้ง 5 ข้อข้างต้นนั้น ก็ทำให้การตัดสินใจหาค่าที่เหมาะสมเป็นสิ่งที่กระทำได้ไม่ง่ายนัก เนื่องจากเป็นการปรับแต่งที่ซับซ้อนมาก

3.4 การจัดเวลาของมัลติเพิลโปรเซสเซอร์ (Multiple-Processor Scheduling)
ที่ผ่านมาได้มีการกล่าวถึงการจัดการเวลาสำหรับระบบคอมพิวเตอร์ที่มีซีพียู เพียงตัวเดียว แต่ถ้าจะต้องออกแบบระบบปฏิบัติการสำหรับคอมพิวเตอร์ที่มีซีพีอยู่หลายตัว การออกแบบต่าง ๆ ก็จะยิ่งเพิ่มความ
ซับซ้อนขึ้นไปอีกมากจากในอดีตถึงปัจจุบันก็ได้มีการทดลองวิธีการจัดเวลา หลายๆ แบบที่พอจะเป็นไปได้แต่ก็ยังไม่สามารถสรุปได้ว่าวิธีไหนเป็นวิธีที่ดีที่สุด ซึ่งก็ไม่แตกต่างไปจากการหาวิธีที่ดีที่สุดสำหรับจัดการกับระบบที่มี
ซีพียูเพียงตัวเดียวเลยดังนั้นในย่อหน้าต่อไป เราก็จะมาศึกษากันถึงวิธีการเป็นบางส่วนที่เป็นไปได้และใช้กันอย่าง
แพร่หลาย ในระบบที่มีซีพียูหลายตัวกัน และเราก็จะจำกัดปัญหาของเราอยู่เพียงแค่ว่าซีพียูที่มีหลายตัวนี้เป็นซีพียู
ที่มีลักษณะการทำงานเหมือนกันทุกประการ ซึ่งสำหรับระบบที่มีซีพียูที่แตกต่างกันนั้น ก็จะมีการกล่าวถึงในบทต่อไป
สิ่งที่ควนคำนึงเป็นอันดับแรกก็คือการแชร์โหลดให้กับซีพียู (Load Sharing)เพื่อให้ซีพียูแต่ละตัวมีงานทำมากพอๆกันซึ่งวิธีการง่ายๆ ก็คือการจัดให้ระบบคิวมีเพียงระบบเดียว ไม่ว่าจะมีซีพียูกี่ตัวก็ตามวิธีนี้จะมีการนำโปรเซสออกจากคิว เพื่อไปใช้งานซีพียูทันทีที่มีซีพียูตัวใดตัวหนึ่งว่างงาน และพบว่าในคิวยังมีโปรเซสรออยู่
การทำงานในลักษณะที่มีซีพียูหลายตัวต่างก็มีระบบการจัดการเวลาของตัวเอง จะต้องมีการออกแบบอย่างระมัดระวังในเรื่องของการที่โปรเซสแต่ละโปรเซสอาจจะ ต้องการใช้ข้อมูลในฐานข้อมูลในเวลาเดียวกัน
รวมทั้งต้องระวังไม่ให้ซีพียูที่ว่างงานพร้อมกัน เลือกเอาโปรเซสจากคิวใช้ร่วมกันอยู่พร้อมกัน ซึ้งอาจจะทำให้มีการดึงเอาโปรเซสเดียวกันเข้าไปทำก็ได้ การแก้ปัญหาด้วยการปล่อยงานที่ดึงออกจากคิวพร้อมกับซีพียูตัวอื่นๆทิ้งไปก็ ยังสามารถก่อปัญหาในเรื่องที่โปรเซสถูกปล่อยทิ้งออกจากซีพียูพร้อมๆ กันหมด ซึ่งอาจทำให้โปรเซสนั้นหายไปจากระบบเลยก็ได้
การแก้ปัญหาดังกล่าวจึงหนีไม่พ้นที่จะต้องเพิ่มความซับซ้อนเข้าไปในระบบอีก จนได้ เช่น การทำให้มีระดับของซีพียูที่แตกต่างกัน ถึงแม้ว่าจะเป็นซีพียูที่เหมือนกันก็ตาม วิธีการคือการให้ซีพียูตัวใดตัวหนึ่งเป็นตัวควบคุมสั่งการต่อซีพียูอีกตัว หนึ่งถัดไปอีก 1 ตัว และตัวถัดไปก็ควบคุมต่อไปเรื่อยๆ เพื่อไม่ให้มีการเข้าไปถึงโปรเซสจากคิวพร้อมๆ กัน โดยการจัดระบบซีพียูลักษณะนี้จะมีชื่อเรียกว่า Master-slave structure
ในระบบคอมพิวเตอร์บางระบบที่มีการพัฒนาเพื่อให้ได้ประสิทธิภาพสูงสุด ได้มีการใช้ซีพียู แยกต่างหากระหว่างงานภายในของระบบ เช่น พวกการจัดเวลาและการจัดการระบบอื่นๆ ออกจากพวกงานอินพุต/เอาต์พุตทั้งหลาย และกับงานที่เป็นของผู้ใช้ซึ่งการทำงานแยกกันของซีพียูแบบนี้ ทำให้การออกแบบระบบปฏิบัติการ เพราะว่าซีพียูตัวอื่นๆ ไม่ว่าจะมีกี่ตัวก็ตาม จะเข้าถึงได้เฉพาะข้อมูลของผู้ใช้ภายนอกเท่านั้น

3.5 การจัดเวลาแบบเรียลไทม์ (Real – Time Scheduling)
ในบทแรกๆ เราได้มีการพูดถึงระบบปฏิบัติการแบบเรียลไทม์ ว่ามันจะเป็นแนวความคิดของระบบคอมพิวเตอร์ที่มีความต้องการสูง ดังนั้นในย่อหน้านี้เราก็จะมาพูดถึงว่า ระบบการจัดเวลาแบบไหนที่สมควรเลือกใช้ในระบบปฏิบัติการแบบเรียลไทม์นี้
การทำงานแบบเรียลไทม์นั้นแบ่งออกเป็นสองประเภทคือ
• Hard Real-time
• Soft Real-time

Hard real-time คือระบบที่สามารถทำงานใดงานหนึ่งให้เสร็จตามเวลาที่กำหนดได้ ซึ่งงานที่จะรับเข้ามาแต่ละงานนั้นจะมีความต้องการของเวลาที่ต้องการให้ เสร็จมาด้วย ดังนั้นตัวจัดเวลาจะต้องเป็นตัดสินใจว่าจะรับงานเข้ามาทำหรือไม่ ซึ่งถ้าหากว่าตัดสินใจรับงานใดๆ เข้ามาทำก็หมายความว่า งานนั้นได้รับการรับรองว่าจะถูกทำให้เสร็จได้ภายในเวลาที่กำหนดมา ซึ่งงานที่ถูกปฏิเสธก็หมายความว่า เวลาที่กำหนดมานั้นเร็วเกินกว่าที่สภาวะของระบบในขณะนั้นจะทำได้ทัน ซึ่งการที่จะสามารถตัดสินใจแบบนี้ได้นั้น ระบบปฏิบัติการจะต้องรู้แน่นอนว่าการทำงานของฟังชันก์ต่างๆของตัวระบบ ปฏิบัติการใช้เวลาเท่าใดแต่จะเป็นการยากมากถ้าหากระบบคอมพิวเตอร์มีการใช้ สื่อจัดเก็บข้อมูล หรือหน่วยความจำเสมือน ซึ่งจะได้กล่าวในบทต่อไปว่าทำไมจึงไม่สามารถกำหนดเวลาการใช้หน่วยความจำ สำรองเหล่านี้ได้แน่นอน ดังนั้นระบบ Hard Real-time มักจะทำงานกับโปรแกรมเฉพาะที่ได้รับการใช้ฮาร์ดแวร์ของระบบทั้งหมด เพื่อทำงานหรือคำนวณให้กับงานใดงานหนึ่งอย่างเฉพาะเจาะจง ทำให้ระบบนี้จึงประกอบไปด้วยสิ่งที่จำเป็นในการทำงานที่ได้รับมอบหมาย เท่านั้น ซึ่งอาจจะมีฟังก์ชันการทำงานในส่วนต่างๆ ไม่ครบถ้วนเหมือนกับระบบคอมพิวเตอร์ที่สร้างขึ้นมาให้สามารถรับงานหลายๆงาน ที่แตกต่างกัน
Soft Real-time คือระบบที่ข้อจำกัดต่างๆ ไม่เข้มงวดเท่ากับระบบ Hard Real time มันอาจเป็นเพียงระบบแบ่งเวลาที่ธรรมดาที่มีการให้ระดับความสำคัญแก่งานบาง ประเภท หรืองานที่ถูกเลือกไว้ล่วงหน้าว่าเป็นงานเร่งด่วน ซึ่งอาจทำให้เกิดปัญหาของการทำงานในระดับต่ำ ๆ อาจไม่ได้รับเวลาของซีพียูเลยดังที่เคยกล่าวไว้แล้วในหลักการของการจัดลำดับ ความสำคัญแบบคงที่ (Fix priority) อย่างไรก็ตามอย่างน้อยเราก็สามารถสร้างการทำงานที่ให้การตอบสนองของระบบเข้า ใกล้แบบ Hard time แต่สามารถสนับสนุนงานอื่นๆ ได้อีกหลายงาน อันจะทำให้การใช้ระบบมีความคุ้มค่ากว่า และในสถานการณ์จริงแล้ว ระบบ Hard real-time จะมีราคาแพงกว่า Soft Real-time มากในแง่ของต้นทุนต่องานที่ผลิตได้ อย่างไรก็ตาม งานบางชนิดก็มีความสำคัญมากถึงขั้นที่ว่าราคาของระบบที่จะใช้ไม่เป็นปัจจัย หลัก เช่น งานทางด้านการบิน หรือกิจการด้านทางทหาร เป็นต้น
การสร้าง Soft real-time จะต้องมีการออกแบบอย่างระมัดระวังเพิ่มจาก priority Queue ปกติโดยมีกฎเพิ่มดังนี้

1. งานที่เป็นเรียลไทม์จะต้องได้รับความสำคัญสูงสุดเหนืองานอื่นๆ ทั้งหมดที่ไม่ใช่เรียลไทม์ และจะไม่มีวันที่งานแบบเรียลไทม์จะถูกลดขั้นลงไปอยู่ในคิวที่มีลำดับความ สำคัญที่ต่ำกว่านี้ แม้ว่าระบบคิวแบบลำดับความสำคัญที่ใช้อาจเป็นแบบ Priority Feedback Queue ก็ตาม
2. เวลาของการทำ Context Switch และ Dispatcher ต้องสั้นมากๆ ยิ่งสั้นเท่าไร ก็จะยิ่งทำให้งานที่เป็น เรียลไทม์ สามารถเข้าไปใช้ซีพียูได้เร็วขึ้นเท่านั้น

ในส่วนของกฎข้อที่ 1 นั้นเราอาจสามารถสร้างออกมาใช้งานได้ไม่ยาก แต่การที่ทำให้กฎข้อที่ 2 สามารถกระทำได้อย่างแน่นอนมักเป็นเรื่องที่ยาก เนื่องจากว่าระบบปฏิบัติการที่เคยออกแบบกันมาทั้งหลายรวมทั้งระบบ UNIX นั้นถูกบังคับให้คอย System Call ทุกชนิดเสร็จสิ้น ก่อนหรือไม่ก็ต้องคอยให้เกิดการ บล็อกอินพุต/เอาต์พุตเสียก่อนที่จะมีการทำ และมักจะใช้เวลานาน เพราะบาง System call อาจจะกินเวลานานมาก และ บล็อกอินพุต/เอาต์พุต บางตัวก็มักจะทำงานได้ช้า

การแก้ปัญหาชั้นต้นก็คือเราต้องยอมให้สามารถหยุด System Call ได้รับสำรับ System Call ที่ใช้เวลานานบางตัว ด้วยการใส่ preemption point ลงไปใน system call ที่ยาว ๆ เหล่านี้ เพื่อที่จะให้มันหยุดตรวจสอบว่ามีงานแบบ เรียลไทม์คอยอยู่หรือเปล่า และถ้ามีก็ให้ไปทำงานเรียลไทม์ก่อน แล้วจึงกลับมาทำ system call ที่เหลืออยู่ให้เสร็จ อย่างไรก็ตามการใส่ preemption point ก็ยังมีข้อจำกัดที่ไม่สามรถใส่ลงไปได้ในขณะที่ข้อมูลของ Kernel กำลังถูกเปลี่ยนแปลง ซึ่งทำให้บางครั้งไม่สามารถทำให้ dispatch latency เล็กลงมากๆ ได้
อย่างไรก็ตามการปกป้องโครงสร้างข้อมูล จากการเรียกใช้งานโดยงานที่มีลำดับความสำคัญสูง ในขณะที่งานที่มีลำดับความสำคัญต่ำกำลังใช้อยู่ ทำให้งานที่มีลำดับความสำคัญสูงจำเป็นต้องคอยงานที่มีลำดับความสำคัญต่ำ กำลังใช้อยู่ ทำให้งานที่มีลำดับความสำคัญสูงจำเป็นต้องคอยงานที่มีลำดับความสำคัญต่ำ เหล่านี้ เหตุการณ์เช่นนี้ทำให้ดูเหมือนว่างานที่กำลังใช้โครงสร้างข้อมูลอยู่นั้นมี ลำดับความสำคัญสูงที่สุด เราเรียกเหตุการณ์นี้ว่า Priority Inversion ซึ่งสามารถเกิดขึ้นได้เป็นสายยาวๆ เมื่อมีงานมาก ๆ เข้ามาซึ่งปัญหาเหล่านี้ก็ จะสามารถแก้ได้ด้วยวิธี
Priority-inheritance protocol นั่นคืองานที่มีลำดับความสำคัญต่ำๆ ก็จะได้รับความสำคัญสูงเท่ากับงานที่คอยใช้โครงสร้างข้อมูลอันเดียวกันอยู่ วิธีนี้จะทำให้งานที่มีลำดับความสำคัญต่ำๆ มีโอกาสเสร็จได้เร็วขึ้นและปล่อยการใช้โครงสร้างข้อมูลแล้ว ก็จะถูกตั้งค่าให้มีลำดับความสำคัญกลับมาเท่าเดิม
3.6 การคัดเลือกอัลกอริทึมสำหรับการจัดเวลาซีพียู
เมื่อเราได้ทำการรู้จัก อัลกอริทึม สำหรับการจัดเวลาซีพียูกันแล้ว ก็มีคำถามว่าเราจะเลือกอัลกอริทึมแบบไหน สำหรับระบบคอมพิวเตอร์ใดระบบหนึ่ง จากที่ได้ศึกษามาก็จะเห็นว่าการเลือกอัลกอริทึมที่ดีที่สุดนั้นเป็นเรื่อง ยากมาก
ปัญหาแรกที่เราจะต้องคิดถึงก็คือ เรื่องของการกำหนดคุณสมบัติสำหรับการเปรียบเทียบในกระบวนการคัดเลือกจาก หัวข้อ 3.2 จะเห็นว่าหลักเกณฑ์ในการกำหนดคุณสมบัติเพื่อการเปรียบเทียบอัลกอริทึมต่างๆ นั้น มักจะมาจากอรรถประโยชน์ของซีพียู (CPU utilization) เวลาตอบสนอง (Response time) และทรูพุต (Throughput) ซึ่งเราต้องมีการให้ค่าความสำคัญของแต่ละคุณสมบัติไว้ด้วย
หลักเกณฑ์การพิจารณาอาจกำหนดได้เป็นตัวอย่างดังนี้
• ให้มีการใช้ซีพียูสูงสุด โดยให้สามารถมีช่วงเวลาตอบสนองที่ไม่นานไปกว่า 1 วินาที
• ให้มีทรูพุตสูงสุด โดยที่เวลาวนรอบเป็นอัตราส่วนโดยตรงอย่างพอเหมาะกับเวลาที่ต้องใช้ในการรันทั้งหมด
เราอาจจะกำหนดหลักเกณฑ์ต่างๆ ให้มากกว่านี้ได้ ขึ้นอยู่กับว่า เราต้องการอะไร หรืออะไรคือสิ่งที่ดีที่สุดสำหรับระบบคอมพิวเตอร์ที่ให้มา อย่างไรก็ตาม การกำหนดหลักเกณฑ์ การพิจารณาเหล่านี้มักเป็นสิ่งที่ยากมาก เพราะว่าเรามักจะไม่ทราบ หรือทราบไม่แน่นอนว่าความต้องการที่แท้จริงของระบบคอมพิวเตอร์แต่ละระบบนั้น คืออะไร ดังนั้น สิ่งที่เราสามารถทำได้ในบทเรียนนี้ ก็คือการสมมุติว่า เราทราบความต้องการของระบบคอมพิวเตอร์แล้ว และเราสามารถกำหนดหลักเกณฑ์การพิจารณาได้ว่ามีอะไรบ้าง
เมื่อเรามีหลักเกณฑ์การพิจารณาอย่างครบถ้วนแล้ว เราก็จะมาเรียนรู้กันว่าเรามีวิธีการอย่างไรบ้างในการเปรียบเทียบและพิจาณา เพื่อที่จะเลือกอัลกอริทึมที่ดีที่สุด
3.6.1 Deterministic Modeling
วิธีนี้เป็นวิธีการคัดเลือกที่เรียกว่า analytic evaluation ซึ่งจะนำเอาอัลกอริทึมชนิดต่างๆ และลักษณะของงาน มาสร้างสูตร เพื่อใช้ในการคำนวณหาตัวเลขของประสิทธิภาพที่สามารถวัดและเปรียบเทียบได้
ตัวอย่างต่อไปนี้เราสมมติให้ว่ามีงาน 5 โปรเซสนี้มาถึงระบบที่เวลา 0 วินาที ตามลำดับที่ให้ไว้ในตารางโดยมีระยะเวลาของเวลาซีพียูตามกำหนด

โปรเซส เวลา
P1
P2
P3
P4
P5 10
29
3
7
12

อัลกอริทึมที่จะนำมาพิจารณาสมมติว่ามี 3 ชนิด คือมาก่อนได้ก่อน(FCFS), งานสั้นได้ทำก่อน (SJF)และเวลาวนรอบ (RR) โดยมีควันตัม = 10 วินาที ถ้าเราจะพิจาณาว่าอัลกอริทึมชนิดใดที่จะให้ค่าเฉลี่ยของการคอยต่ำสุด เราก็จะมีวิธีคำนวณดังนี้
สำหรับ FCFS



เวลาของการคอยคือ FCFS ก็คือ (0+10+39+42+49)/5 =28 วินาที1
เวลาการคอยของ SJF ก็คือ (10+32+0+3+20)/5 = 13 วินาที
สำหรับ RR เราจะมีลำดับการ RUN งานดังนี้



เวลาของคอยของ RR ก็คือ (0+32+20+23+40)/5 = 23 วินาที

จะเห็นได้ว่าถ้าเราใช้เกณฑ์ตัดสินจากค่าเฉลี่ยนของการคอย SJF จะเป็นอัลกอริทึมที่ดีที่สุด เนื่องจากว่ามีค่าเฉลี่ยนของการคอยต่ำที่สุด
วิธี Deterministic Modeling นี้เป็นวิธีที่ง่ายและรวดเร็ว ได้ผลลัพธ์ที่เป็นเลขที่แน่นอน เพื่อการเปรียบเทียบที่สามารถเห็นได้อย่างเด่นชัดว่าอัลกอริทึมแบบไหนดี ที่สุด อย่างไรก็ตาม ผลลัพธ์ที่ได้อาจจะไม่สามารถเป็นจริงได้เสมอในเหตุการณ์จริง เนื่องจากว่าข้อมูลที่ใช้ในการคำนวณนั้นเป็นข้อมูลสมมุติที่มีเพียงค่าเดียว หรือไม่ก็มีเพียงจำนวนน้อย เมื่อเทียบกับสถานการณ์จริงแล้ว ข้อมูลสมมุติเหล่านี้ก็ไม่อาจจะเป็นตัวแทนของเหตุการณ์จริงได้อย่างสมบูรณ์ แต่สำหรับระบบที่ไม่ซับซ้อนมาจนเกินไป การคำนวณจากข้อมูลที่เปลี่ยนไปหลายๆ ครั้งก็อาจทำให้เราสามารถสรุปว่าอัลกอริทึมไหน ควรจะได้รับการคัดเลือก
ในทางปฏิบัติแล้ว ระบบงาน และระบบคอมพิวเตอร์ มีความซับซ้อนมากกว่านี้มากมาย การใช้วิธี Deterministic Modeling นี้มักมีข้อจำกัดมากเกินไปสำหรับการนำมาใช้ในระบบคอมพิวเตอร์ปัจจุบัน

3.6.2 โมเดลการจัดคิว
ลักษณะของงานที่เข้ามาในระบบคอมพิวเตอร์นั้นมักจะมีลักษณะที่ไม่แน่นอน ในแต่ละวันที่มีการใช้ระบบคอมพิวเตอร์นั้น งานต่างๆ ที่เข้ามาอาจมีลักษณะที่ไม่ซ้ำกันเลย อย่างไรก็ตามมีสิ่งหนึ่งที่เราสามารถทำนายหรือกำหนดได้ นั้นคือการกระจายของเวลาในการใช้ซีพียู และของการใช้อินพุต/เอาต์พุตซึ่งเราสามารถที่จะกำหนดแบบคร่าวๆได้ ซึ่งก็เช่นเดียวกันกับเวลาของการมาถึงระบบของงานต่างๆ ที่เราสามารถกำหนดไว้แบบการกระจายเช่นกัน จากการกำหนดค่ากระจายดังกล่าว ก็จะทำให้เราสามารถที่จะคำนวณว่าค่าเฉลี่ยนของทรูพุต การใช้งานซีพียู เวลาคอย หรือคุณสมบัติอื่นๆ ได้อีกมาก
ระบบคอมพิวเตอร์สามารถอธิบายได้ว่าเป็นระบบเน็ตเวิร์คของการให้บริการ แบบสถานีหรืออาจมองได้เป็นสายงานกานผลิต โดยที่แต่ละสถานีจะมีคิวของตัวเอง ไม่ว่าจะเป็นตัวซีพียูหรืออุปกรณ์ต่างๆ ถ้าเรารู้ว่าเวลาของการให้บริการของแต่ละสถานีนั้นนานแค่ไหน และรูว่าเวลาที่งานต่างๆ จะเข้าที่คิว เราก็จะสามารถคำนวณหาค่าที่ต้องการต่างๆ ได้แล้ว วิธีนี้จึงมีชื่อเรียกว่าการวิเคราะห์การจัดคิวแบบเน็ตเวิร์ค
สำหรับตัวอย่างในเรื่องนี้ สมมุติให้ n คือค่าเฉลี่ยนความยาวของคิว โดยไม่รวมงานที่กำลังทำอยู่ ให้ w คือค่าเฉลี่ยนของเวลาที่ต้องคอยในคิว ให้ เป็นค่าเฉลี่ยนของเวลาที่งานใหม่จะเข้ามาในระบบ เช่น 3 งานต่อวินาที เป็นต้น ต่อจากนั้นเราก็จะสามารถคำนวณได้ว่าในขณะที่งานใดงานหนึ่งคอยเป็นเวลา w งานใหม่ก็จะเข้ามาเป็นจำนวน
x w ดังนั้น n = x w
สูตรดังกล่าวมีชื่อเรียกว่า Little’s Formula สูตรนี้มีความหมายในการคำนวณเพราะว่ามันสามารถใช้อัลกอริทึมใดๆ ก็ได้ ที่เรารู้ค่าเฉลี่ยการกระจายของเวลาในการมาถึงระบบของงาน และอย่างน้อยเราก็สามารถคำนวณหาค่าของตัวใดตัวหนึ่งใน 3 ตัวแปร n,w และ นี้ถ้าเรารู้ค่าของตัวแปรอีกสองตัว ตัวอย่างเช่น ถ้าเรารู้ว่าจะมีงานเข้าในระบบ 7 งานต่อวินาทีโดยเฉลี่ย และถ้ามีจำนวนงานอยู่ในแถวคอย 14 ตัว เราก็จะสามารถทราบได้ว่าค่าเฉลี่ยของการคอยในแถวคอยจะเป็นเวลา 2 วินาที
การใช้การวิเคราะห์การจัดคิวเป็นวิธีที่มีประโยชน์มาก เพราะสามารถใช้คำนวณหาค่าตัวเลขต่างๆเช่น เวลาเฉลี่ยนของการคอยแต่ละอัลกอริทึมเอาไว้เปรียบเทียบกัน อย่างไรก็ตามวิธีนี้ยังมีปัญหาอยู่ตรงที่สามารถที่ใช้คำนวณอัลกอริทึมไม่ได้ ทั้งหมด และยังมีปัญหาเรื่องของการคำนวณค่าเฉลี่ยของการกระจายต่างๆ อยู่เพราะว่าถ้าหากระบบหรืออัลกอริทึมที่ใช้มีความซับซ้อนมาก การตั้งสูตรเพื่อคำนวณค่าที่ถูกต้องจริงๆ มักจะทำได้ยากตามไปด้วย ดังนั้นการตั้งค่าตัวเลขของค่าเฉลี่ยในการกระจาย มักมีการกำหนไว้อย่างง่ายๆ ซึ่งอาจทำให้ผลการคำนวณไม่เที่ยงตรงเท่าที่ควร
3.6.3 วิธีการจำลองระบบ (Simulations)
การที่เราจะเลือกวิธีการ หรือเลือกอัลกอริทึมที่ถูกจ้องต่อระบบใดๆ อย่างเป็นจริงจังแล้ว เราสามารถใช้วิธีการของการจำลองแบบ (Simulation) ซึ่งวิธีการนี้จะสามารถคำนวณตัวเลขต่างๆ ออกมาได้อย่างเที่ยงตรงมากขึ้น
การทำการจำลองระบบในที่นี้จะเกี่ยวข้องกับการใช้โปรแกรมคอมพิวเตอร์ ซึ่งจะต้องมีการเขียนโปรแกรมเพื่อใช้เป็นตัวแทนหรือหุ่นจำลองของระบบต่างๆ ในคอมพิวเตอร์ นอกจากนี้ยังต้องมีการเขียนโปรแกรมเพื่อเป็นตัวแทนของสิ่งแวดล้อมที่ เกี่ยวข้องกับระบบคอมพิวเตอร์นั้นๆ อีกด้วย
สิ่งสำคัญในการสร้างแบบจำลองระบบคอมพิวเตอร์นี้ก็คือการมีตัวแปรที่เป็น ตัวแทนของเวลา เพื่อเป็นสิ่งที่อ้างตำแหน่งหรือเป็นหลักการในการสร้างเหตุการณ์ต่างๆ ให้เกิดขึ้น (ตัวแปรเวลานี้จะมีค่าเพิ่มขึ้นเรื่อยๆตามเวลาที่เปลี่ยนไป) หรือไม่ก็เปลี่ยนตามเหตุการณ์ที่จะเกิดขึ้น ซึ่งเหตุการณ์ต่างๆ ในคอมพิวเตอร์ที่เกี่ยวข้องกับเวลาทั้งหมดจะต้องใช้ตัวแปรเวลาตัวเดียวกัน
เวลาของเหตุการณ์ต่างๆ ที่จะเกิดขึ้นในแบบจำลองนี้สามารถกระทำได้สองแบบ แบบแรกก็คือใช้วิธีสุ่มเราจะต้องเขียนโปรแกรมขึ้นมาก็สามารถสร้างงาน สร้างเวลาของซีพียู สร้างเวลาที่จะเข้ามาในระบบ ตามกฎของความน่าจะเป็น โดยเราสามารถกำหนดค่าเฉลี่ยของการกระจายในการค่าสุ่มเหล่านี้ได้ โดยที่ลักษณะของการกระจายสามารถที่จะเป็นแบบไหนก็ได้ เช่น อาจจะเป็นแบบที่ UNIFORM หรือ เป็น exponential หรือแบบ Poisson
หรือเป็นการใช้ข้อมูลจริงจากระบบจริง ซึ่งนั้นก็หมายความว่า เราได้ใช้ระบบจริงที่จะนำเอาอัลกอริทึมที่จะได้นำไปใช้จริงๆ โดยสามารถหามาได้จากการใช้ trace tape
Trace tape จะประกอบไปด้วยข้อมูลของการทำงานจริงของคอมพิวเตอร์ ที่เราต้องการจะหาอัลกอริทึมที่ดีที่สุด ข้อดีของการใช้ข้อมูลจริงคือ เราจะได้ผลลัพธ์ของการเปรียบเทียบอัลกอริทึมที่ถูกต้องมากกว่าการใช้วิธี สุ่มค่าการกระจายของทฤษฏีความน่าจะเป็น อย่างไรก็ตามถ้าหากว่าระบบมีความยุ่งยากซับซ้อนมาก การใช้วิธีการของความน่าจะเป็นก็ยังเป็นสิ่งที่จำเป็น
การทำแบบจำลองเพื่อการเปรียบเทียบอัลกอริทึมนี้ อาจจะต้องอาศัยเวลาในการทำงานค่อนข้างมากเพื่อให้ได้มาซึ่งผลลัพธ์ที่ เที่ยงตรงทำให้วิธีนี้อาจมีราคาสูง และยิ่งทำให้การจำลองแบบมีความถูกต้องมากเท่าใด ก็จะยิ่งทำให้เสียเงินและเวลามากขึ้นเท่านั้น ดังนั้นผู้ที่จะใช้วิธีการจำลองแบบจะต้องตัดสินใจก่อนว่า จะใช้การจำลองแบบที่มีความละเอียดสูงแค่ไหนที่พอเพียงต่อการตัดสินใจ โดยไม่ทำให้เสียเงินและเวลามากเกินความจำเป็น
3.6.4 วิธีการสร้างขึ้นมาจริงๆ
อย่างไรก็ตามการสร้างแบบจำลอง ก็ยังคงเป็นการจำลองแบบที่ไม่มีทางจะเหมือนจริงได้ สิ่งที่ดีกว่าก็คือการสร้างอัลกอริทึมชนิดๆต่างๆ เพื่อทดลองใช้กับโปรแกรมจัดการระบบจริงๆ ในระบบคอมพิวเตอร์ที่ใช้งานในสิ่งแวดล้อมจริงๆ
เหตุผลหลักที่ทำให้วิธีการนี้จะไม่เป็นแนวทางที่นิยมปฏิบัติคือ จะใช้ต้นทุน หรือการลงทุนสูงมาก เพราะนอกจากจะต้องเขียนโปรแกรมของอัลกอริทึมแต่ละแบบแล้ว ยังต้องมีการใช้เวลาและแรงงานในการเปลี่ยนการทำงานของโปรแกรมจัดการระบบ เพื่อให้สามารถรองรับอัลกอริทึมแบบต่างๆ ที่จะนำมาทดลองยิ่งไปกว่านั้นแต่ละอัลกอริทึมอาจยังต้องการระบบฮาร์ดแวร์ พิเศษที่แตกต่างกันออกไป ทำให้ต้องมีระบบคอมพิวเตอร์ที่ต้องสามารถปรับเปลี่ยนได้ ซึ่งก็ไม่ใช่เรื่องที่จะทำกันได้ง่ายๆ ภายใต้ต้นทุนที่จำกัด และที่เป็นปัญหาที่สุดก็คงหนีไม่พ้นปัญหาที่อาจจะมาจากผู้ใช้คอมพิวเตอร์ นั่นเอง เพราะคงมีผู้ใช้ไม่มากนักที่จะยอมเสียเวลาทำงานจริงมาเสี่ยงกับระบบ คอมพิวเตอร์ที่อยู่ในขั้นทดลอง
และถึงแม้ว่าเราจะมีวิธีการที่ดีสำหรับการแก้ปัญหาดังกล่าวข้างต้น คำถามก็ยังมีต่อไปว่า ผลที่ได้จากการทดลองจะทำให้การตัดสินใจถูกต้องแค่ไหน เพราะเราจะมีความมั่นใจได้อย่างไรว่า เราได้ทำการทดลองอัลกอริทึมต่างๆ ได้ครบถ้วนต่อทุกสถานการณ์ที่จะเกิดขึ้น ซึ่งคำตอบก็เห็นได้ชัดเจนอยู่แล้วว่าเป็นไปไม่ได้ เนื่องจากว่างานหรือลักษณะของปัญหาที่จะนำเข้ามานั้นมีโอกาสที่จะ เปลี่ยนแปลงได้เสมอ และเป็นการเปลี่ยนแปลงในทางที่ไม่สามารถล่วงรู้ได้ และตัวผู้ใช้เองก็อาจจะมีการปรับปรุงโปรแกรมของตนเอง เพื่อให้มีความเหมาะสมกับอัลกอริทึมที่ใช้ จุดประสงค์ก็เพียงเพื่อให้โปรแกรมของตนสามารถมีโอกาสเข้าใช้ซีพียูมากกว่า โปรแกรมของผู้อื่นๆตัวอย่างง่ายๆ ก็คือ การที่ผู้เขียนโปรแกรมงานให้มาขนาดเวลาซีพียูสั้นๆ ถ้าหากรู้ว่าระบบคอมพิวเตอร์ที่จะใช้งานใช้อัลกอริทึมแบบงานสั้นได้ทำก่อน (SJF) เป็นต้น
ทางออกที่ดีที่สุดก็คือการที่สามารถทำให้ระบบคอมพิวเตอร์ใดๆ สามารถที่จะเปลี่ยนแปลงและปรับเปลี่ยนอัลกอริทึมที่จะใช้โดยผู้ควบคุม การเปลี่ยนแปลงนี้บางส่วนอาจสามารถกระทำได้ในระหว่างการใช้งานซึ่งบางส่วนก็ อาจจะสามารถกระทำได้เฉพาะช่วงที่เปิดเครื่องเท่านั้น การทำให้ระบบคอมพิวเตอร์ใดๆ สามารถปรับเปลี่ยนอัลกอริทึมได้นี้เป็นที่ต้องการของระบบคอมพิวเตอร์แทบทุก ระบบ เพราะว่างานในแต่ละวันหรือแต่ละช่วงเวลามักมีความต้องการระบบปฏิบัติการที่ แตกต่างกัน ถึงแม้จะรู้กันดีว่าการปรับเปลี่ยนเหล่านี้เป็นความต้องการแต่ในทุกวันนี้ ระบบคอมพิวเตอร์ที่สามารถยอมให้มีการปรับแต่งระบบปฏิบัติการได้นั้นก็ยังคง มีอยู่เป็นจำนวนน้อยมาก
สรุป
การจัดเวลาซีพียู(CPU Scheduling) เป็นงานของการจัดเวลาใช้งานซีพียูโดยมีหน้าที่หลักก็คือการตัดสินใจเลือกงาน เข้ามาใช้งาน โดยมี Dispatcher เป็นเครื่องมือในการนำเอางานที่ได้รับคัดเลือกนี้เข้าและออกจากการใช้ซีพียู
การมาก่อน(FCFS) เป็นอัลกอริทึมแบบให้สิทธิ์ก่อน(Preemptive) ที่ง่ายที่สุดสำหรับการจัดเวลาซีพียู แต่ก็เป็นระบบการจัดการที่ทำให้งานที่ต้องการใช้ ซีพียูเพียงแค่ระยะเวลาสั้นๆต้องคอยงานที่ใช้ซีพียูนานๆ ส่วนงานสั้นได้ทำก่อน(SJF) ก็เป็นอัลกอริทึมที่สารมารถเป็นทั้งแบบให้สิทธิ์ก่อน(Preemptive) และไม่ให้สิทธิ์ก่อน(nonpreemptive) SJF จะให้ค่าเฉลี่ยของการรอคอย(Waiting Time) สั้นที่สุด แต่ในการใช้งานจริงจะก็มีปัญหาในเรื่องของการวัดระยะซีพียูถัดไปของแต่ละงาน SJF มีการทำงานคล้ายกับการมีลำดับขั้นความสำคัญของงาน(Priority) โดยงานที่มีเวลาซีพียูสั้นๆ จะเป็นงานที่มีความสำคัญมาก ทำให้มีโอกาสเข้าไปใช้ซีพียูก่อน ซึ่งอาจทำให้เกิดปัญหาการตกค้างของงานที่มีความสำคัญต่ำถ้าหากว่าระบบ คอมพิวเตอร์มีงานมาก การแก้ไขก็ด้วยการใช้วิธีเพิ่มความสำคัญให้กับงานตามระยะเวลาที่ต้องคอย
อัลกอริทึมแบบวนรอบ(RR : Round-Robin) ก็เป็นระบบการจัดเวลาแบบให้สิทธิ์ก่อนเหมาะสมกับระบบคอมพิวเตอร์แบบแบ่งเวลา หรือการทำงานแบบอินเตอร์แอ็กทีฟเพราะจะทำให้มีเวลาวนรอบ(Turnaround Time) ที่คงที่แน่นอน เนื่องจากว่า RR มีการกำหนดช่วงเวลาที่จำกัดในการเข้าใช้ซีพียูของแต่ละงานที่คงที่ที่เรียก ว่าเวลาควันตัม(Quantum Time) ซึ่งงานทุกงานจะมีโอกาสได้รับซีพียูมาใช้อย่างมากก็เพียงแค่ระยะเวลาของควัน ตัมที่กำหนดเท่านั้น ซึ่งการกำหนดค่าของควันตัมนี้ ต้องมีการกำหนดให้พอดี ถ้ามีการกำหนดที่ยาวเกินไปการทำงานก็จะมีประสิทธิภาพมใกล้เคียงกับ FCFS แต่ถ้าควันตัมถูกกำหนดใว้สั้นเกินไป ระบบก็จะเสียเวลาไปกับการนำงานเข้าและออก หรือเวลาในการทำ Context Switch มากเกินไปจนทำให้ทรูพุตของระบบต่ำลง
คิวแบบหลายระดับ (Multilevel Queue) อาจมีการรวมเอาอัลกอริทึมหลายชนิดเข้าใว้ด้วยกันเพื่อให้สามารถรองรับระบบ งานที่มีงานหลายประภทมากขึ้นโดยจะให้บนิการแก่งานต่างๆอย่างเท่าเทียมกันตาม ระดับความสำคัญของงานนั้นๆ และการใช้คิวแบบ Multilevel Feedback ก็จะยอมให้มีการปรับเปลี่ยนระดับความสำคัญของตัวงานได้ด้วยการยอมให้งาน สามารถเลื่อนขึ้นหรือลงในคิวแบบหลานระดับเพื่อแก้ปัญหาของการที่งานบางชนิด จะไม่มีโอกาสได้รับซีพียูมาใช้เลย
การตัดสินใจว่าจะนำเอาอัลกอริทึมชนิดไหนมาใช้ก็มีวิธีการอยู่มากมาย การใช้วิธีคำนวณจากสูตรนั้นมีประโยชน์ในการคำนวณหาประสิทธิภาพของระบบโดยรวม แบบคร่าวๆ ในขณะที่วิธีการจำลองแบบหรือSimulation นั้นจะสามารถทำให้การตัดสินใจมีความถูกต้องมากขึ้น แต่ก็ต้องแลกมาด้วยแรงงานและเวลา ซึ่งจะทำให้มีผลกระทบต่อต้นทุนที่จะต้องสูงขึ้น แต่ในบางระบบคอมพิวเตอร์ที่ต้องการประสิทธิภาพสูงสุดโดยไม่สนใจว่าต้องใช้ ต้นทุนเท่าไร วิธี Simulation ก็จะต้องเป็นเรื่องีท่หลีกเลี่ยงไม่ได้ อย่างไรก็ตาม วิธีที่ดีที่สุดก็คือการสร้างอัลกอริทึมต่างๆ ขึ้นมาและทดลองใช้ระบบคอมพิวเตอร์ที่ทำงานกับงานจริง
ในปัจจุบันสิ่งที่เป็นความต้องการของระบบคอมพิวเตอร์ก็คือ ความต้องการที่จะให้ระบบปฏิบัติการมีความสามารถในการปรับเปลี่ยนหรือปรับ แต่งอัลกอริทึมที่ใช้ได้ตามลักษณะของงานที่เปลี่ยนแปลงไป 

                                     บรรณานุกรม
https://sites.google.com/site/operatingsystemeng1/sthana-khxng-por-e
http://csnon04.blogspot.com/2008/03/3_06.html