ระบบปฏิบัติการเป็นส่วนสำคัญของโปรแกรมที่จัดการฮาร์ดแวร์คอมพิวเตอร์และแอพพลิเคชั่นซอฟต์แวร์อื่นๆ
เรียกได้ว่าทำหน้าที่เป็นพ่อค้าคนกลาง เนื่องจากผู้ใช้ไม่สามารถให้คำสั่งโดยตรงกับ CPU ในภาษาเครื่อง และ CPU ไม่สามารถโต้ตอบกับผู้ใช้ได้โดยตรง ดังนั้นจึงจำเป็นต้องมีคนกลางที่สื่อสารและแปลการโต้ตอบทั้งหมดระหว่างผู้ใช้และ CPU
นอกเหนือจากงานพื้นฐานที่ระบบปฏิบัติการทำ เช่น การควบคุมอุปกรณ์ต่อพ่วง การแสดงผลลัพธ์บนหน้าจอ การติดตามข้อมูล และไฟล์ ระบบปฏิบัติการยังช่วยวัตถุประสงค์ที่สูงขึ้นของการทำงานหลายโปรแกรมและการทำงานหลายอย่างพร้อมกัน
Multiprogramming vs Multitasking ในระบบปฏิบัติการ
ความแตกต่างระหว่าง Multiprogramming และ multitasking คือในการ multiprogramming CPU รันมากกว่าหนึ่งโปรแกรมพร้อมกันในขณะที่ multitasking CPU รันมากกว่าหนึ่งงานพร้อมกัน
ตารางเปรียบเทียบระหว่าง Multiprogramming และ Multitasking ในระบบปฏิบัติการ
พารามิเตอร์ของการเปรียบเทียบ | มัลติโปรแกรมมิ่ง | มัลติทาสกิ้ง |
---|---|---|
ความหมาย | ในระบบ Multiprogramming จะมีการโหลดโปรแกรมตั้งแต่หนึ่งโปรแกรมขึ้นไปในหน่วยความจำหลักซึ่งพร้อมที่จะดำเนินการพร้อมกัน | มัลติทาสกิ้ง หมายถึง รันโปรแกรม งาน เธรดต่าง ๆ ที่ทำงานพร้อมกันหลายโปรแกรม |
วัตถุประสงค์ | วัตถุประสงค์หลายโปรแกรมคือการปรับปรุงการใช้งาน CPU | วัตถุประสงค์มัลติทาสกิ้งคือการปรับปรุงระยะเวลาของการตอบสนอง |
เวลา | Multiprogramming ใช้เวลาในการรันโปรแกรมใด ๆ ที่ประมวลผลมากขึ้น | การทำงานหลายอย่างใช้เวลาน้อยลงในการดำเนินการงานหรือกระบวนการของโปรแกรม |
Multiprogramming คืออะไร?
Multiprogramming มุ่งเน้นไปที่การเพิ่มการใช้งาน CPU มันรันหลายโพรเซสในเวลาเดียวกันบนโปรเซสเซอร์ตัวเดียว
CPU ข้ามไปยังงานหรือโปรแกรมอื่นในขณะที่โปรแกรมดำเนินการ IO เช่น ในหลายโปรแกรม ระบบปฏิบัติการจะเก็บงาน/โปรแกรมหลายรายการไว้ในหน่วยความจำ ดังนั้น CPU จะเลือกงานและเริ่มดำเนินการ
เมื่องานนั้นต้องรอการดำเนินการ IO ใด ๆ CPU จะสลับไปที่งานอื่นและเริ่มดำเนินการ ดังนั้น สิ่งนี้ทำให้ CPU ไม่ว่างและถูกใช้งานอย่างสูง และไม่เคยไม่ได้ใช้งานเลย
การเขียนโปรแกรมหลายโปรแกรมสามารถทำได้บน CPU ที่ประมวลผลช้า ต้องใช้หน่วยความจำน้อยกว่า (RAM หรือ ROM) ในการทำงาน แนวคิดทั้งหมดของ Multiprogramming นี้คือการทำให้ CPU ไม่ว่างให้นานที่สุด
- การดำเนินการตามกำหนดเวลาไม่ใช่เรื่องง่าย
- จำเป็นต้องมีการจัดการเพิ่มเติม
มัลติทาสกิ้งคืออะไร?
การทำงานหลายอย่างพร้อมกันหมายถึงการทำงานมากกว่าหนึ่งงานในแต่ละครั้ง หมายความว่าคุณกำลังใช้คอมพิวเตอร์และฟังเพลงอยู่ การค้นหาบางอย่างบนอินเทอร์เน็ตโดยใช้เบราว์เซอร์และสร้างไฟล์คำที่เป็นงานของคุณ ดูเหมือนว่างานทั้งหมดจะเกิดขึ้นพร้อมกัน ไม่ใช่งานทั้งหมดที่เกิดขึ้นพร้อมกัน แต่เป็นโปรเซสเซอร์ที่สลับไปมาระหว่างความเร็วที่เราคิดว่าเกิดขึ้นในเวลาเดียวกัน
การทำงานหลายอย่างพร้อมกันนั้นค่อนข้างคล้ายกับการทำหลายโปรแกรม แต่ใน CPU นี้จะถูกจัดสรรให้กับกระบวนการสำหรับกำหนดเวลาคงที่เช่น 'ควอนตัมเวลาหรือการแบ่งเวลา' หลังจากที่ CPU 'สลับบริบท' ไปยังกระบวนการอื่น มันรันโปรแกรมหรืองานมากกว่าหนึ่งรายการพร้อมกัน
ในการมัลติทาสกิ้ง ผู้ใช้สามารถโต้ตอบกับระบบได้ ตัวอย่างเช่น เราสามารถพิมพ์จดหมายในขณะที่งานพิมพ์กำลังดำเนินอยู่ สำหรับการทำ Multitasking พีซีต้องใช้หน่วยความจำขนาดใหญ่ (RAM หรือ ROM) วัตถุประสงค์หลักคือการปรับปรุงเวลาตอบสนองจาก CPU
มัลติทาสกิ้งเป็นระบบที่ซับซ้อนมาก มันขึ้นอยู่กับแนวคิดการแบ่งเวลาซึ่งจัดสรรช่วงเวลาคงที่ให้กับแต่ละงานที่จะดำเนินการ มีประสิทธิภาพมากเมื่อโปรแกรมต้องการความเท่าเทียมกันในระดับสูง มันให้ช่วงเวลาคงที่สำหรับทุกโปรแกรมในการดำเนินการ
ข้อดีของการทำงานหลายอย่างพร้อมกัน
- เวลาตอบสนองสั้นลง
- ความขนานเชิงตรรกะ
- การใช้งานซีพียู
ข้อเสียของการทำงานหลายอย่างพร้อมกัน
- ไม่สามารถนำไปใช้กับโปรเซสเซอร์ความเร็วต่ำมาก
- ต้องใช้หน่วยความจำขนาดใหญ่ในการทำงาน
ความแตกต่างที่สำคัญระหว่าง Multiprogramming และ Multitasking ในระบบปฏิบัติการ
บทสรุป
Multiprogramming และ Multitasking เป็นสองแง่มุมของระบบปฏิบัติการสมัยใหม่ การเขียนโปรแกรมหลายโปรแกรมกำลังบันทึกหลายกระบวนการในหน่วยความจำ แล้วดำเนินการทีละรายการบนโปรเซสเซอร์ตัวเดียว
การทำงานหลายอย่างพร้อมกันนั้นค่อนข้างคล้ายกับการเขียนโปรแกรมหลายโปรแกรม แต่ใน CPU นี้จะถูกจัดสรรให้กับกระบวนการสำหรับกำหนดเวลาที่แน่นอน มันรันโปรแกรมหรืองานมากกว่าหนึ่งรายการพร้อมกันโดยใช้ CPU หลายตัวในคอมพิวเตอร์เครื่องเดียวกัน
ดังนั้น เราสามารถพูดได้ว่า Multitasking ถือได้ว่าเป็น multiprogramming อย่างไรก็ตาม Multiprogramming ไม่ถือว่าเป็น multitasking