Multiprogramming
ระบบมัลติโปรแกรมมิ่ง(Multiprogramming System) จะมีหนึ่งโปรแกรมหรือมากกว่า ในหน่วยความจำหลัก(main memory) ที่พร้อมจะดำเนินการ(execute) แต่จะมีเพียงหนึ่งโปรแกรมที่จะได้รับ CPU สำหรับการทำคำสั่ง ในขณะที่โปรแกรมอื่นๆ ต้องรอให้ถึงลำดับของตัวเอง โดยแนวคิดหลักของมัลติโปรแกรมมิ่ง คือลดการใช้ของ CPU time เช่น ถ้าหากในขณะนี้มีกระบวนการที่กำลังทำงานเกี่ยวกับ I/O (ไม่ต้องใช้ CPU ในการทำให้เสร็จ) แล้วระบบปฏิบัติการ (OS) มีการขัดจังหวะ(interrupt) การทำงานในกระบวนการดังกล่าว และกำหนดให้โปรแกรมที่เป็นหนึ่งในหน่วยความจำหลักเตรียมพร้อมที่จะดำเนินการ ซึ่งวิธีนี้จะไม่มีการสูญเสีย CPU time ที่ระบบะบบปฏิบัติการรอการทำงาน I/O ให้เสร็จ อีกทั้งกระบวนการที่กำลังทำงานอยู่จะยังคงดำเนินการไปจนกว่าจะมีกระบวนการหนึ่งเลิกใช้ CPU หรือยุติการใช้ I/Oอย่างไรก็ตามเป้าหมายสูงสุดของมัลติโปรแกรมมิ่ง คือการทำให้ CPU ยุ่งมากที่สุดจนกว่าจะมีกระบวนการหนึ่งพร้อมสำหรับการดำเนินการ
ข้อควรจำ หากในคำสั่งอย่างเช่น ระบบที่มีการทำงานอย่างถูกต้อง ระบบปฏิบัติการควรจะโหลดโปรแกรมต่างๆ ไปยังหน่วยความจำหลักที่มีการแบ่งพิื้นที่ไว้ และให้มีการป้องกันการร้องขอ เพื่อหลีกเลี่ยงการเกิดโอกาสที่กระบวนการหนึ่ง อาจเปลี่ยนแปลงกระบวนการอื่นๆได้ ส่วนปัญหาอื่นคือระบบควรมีการระบุ address ถ้ามีโปรแกรมเกิด fragmentation ในขณะที่เข้าหรือออกจากหน่วยความจำหลัก และอีกหนึ่งปัญหาที่ต้องมีการจัดการคือโปรแกรมขนาดใหญ่มักจะไม่พอดีกับหน่วยความจำ ซึ่งจะต้องแก้ปัญหาโดยการใช้ pagination และ virtual memory
สุดท้ายนี้ ถ้ามี N กระบวนการที่พร้อมสำหรับ CPU ในกรณีที่เกิดข้อผิดพลาดอาจจะมีหนึ่งโปรแกรมที่จะรอ N-1 โปรแกรมในการทำให้สำเร็จก่อนจะเริ่มดำเนินการ
Multiprocessing
มัลติโปรเซสซิ่ง(Multiprocessing) คือการใช้งานตั้งแต่ 2 CPU ขึ้นไปภายในระบบคอมพิวเตอร์เพียงระบบเดียว ซึ่งอาจรวมไปถึงความสามารถของระบบที่สนับสนุนมากกว่าหนึ่งโปรเซสเซอร์ (processor) และความสามารถในการจัดการงาน(task)ระหว่างโปรเซสเซอร์ในบางครั้งหรือบางพจนานุกรม มัลติโปรเซสซิ่ง หมายถึงกระบวนการ(process)หลายๆกระบวนการ ที่ดำเนินการอยู่ในเวลาเดียวกัน แต่ถ้าอธิบายในเชิงฮาร์ดแวร์(hardware) มัลติโปรเซสซิ่งจะสื่อถึง ระบบคอมพิวเตอร์ที่มีหน่วยประมวลผลหลายๆหน่วย โดยใช้หน่วยความจำหลักและอุปกรณ์ต่อพ่วงร่วมกัน เพื่อการดำเนินการไปพร้อมกับโปรแกรม ส่วนในระดับของระบบปฏิบัติการนั้นมัลติโปรเซสซิ่ง หมายถึง กระบวนการที่มีการดำเนินการไปพร้อมๆกัน หรือ กระบวนการแบบขนาน(parallel processing)
Multitasking
ในระบบคอมพิวเตอร์ มัลติทาร์กกิ้ง(multitasking) คือ กระบวนการที่งาน(task)หลายๆงาน หรือเรียกกันว่าโปรเซส(process) ดำเนินการไปในระยะเวลาเดียวกัน ซึ่งงานแต่ละงานจะทำงานไปพร้อมกันแทนการทำงานแบบเรียงตามลำดับ โดยงานจะแชร์ CPU และหน่วยความจำหลัก แต่ก็ไม่ได้หมายถึงกระบวนการทำงานแบบขนานกรณีที่คอมพิวเตอร์มีหน่วยประมวลผลเดียว มีเพียงหนึ่งงานที่ได้ทำงาน ณ เวลาใดๆ ซึ่งหมายความว่า CPU ถูกกระตุ้นให้ทำคำสั่งสำหรับงานดังกล่าว แต่มัลติทาร์กกิ้งสามารถแก้ปัญหาได้โดย กำหนดให้งานหนึ่งงาน ดำเนินการที่เวลาใดๆ และเมื่อมีงานที่รออยู่ จะกำหนด CPU ให้ดำเนินการจากงานหนึ่งไปยังอีกงานหนึ่ง เรียกว่า context switch ถ้าเกิด context switch บ่อยๆ พอ จะทำให้กระบวนการทำงานแบบขนานเสมือนเกิดขึ้นสำเร็จ
ส่วนในกรณีที่มีมัลติโปรเซสเซอร์(multiprocessor) หรือ มัลติคอร์(multicore) จะช่วยให้งานมากกว่าหนึ่งงานดำเนินการไปได้ในครั้งเดียว(หนึ่งงาน ต่อหนึ่ง CPU หรือ core)
No comments:
Post a Comment