ความแตกต่างระหว่าง Multiprogramming และ Multitasking คืออะไร


10

ฉันพบว่ามันยากที่จะแยกความแตกต่างระหว่าง Multiprogramming และ Multitasking อย่างชัดเจน

แหล่งที่มาหลักของฉันคือWikipediaแต่บทความ WP ดูเหมือนจะขัดแย้งกับแหล่งข้อมูลที่มีชื่อเสียงน้อยกว่า (เช่นอาจารย์วิทยาลัยของฉัน)

เมื่อฉันอ่าน WP การประมวลผลหลายจุดเป็นวิธีพื้นฐานของการเพิ่มปริมาณงานของ CPU โดยการสลับบริบทเมื่อกระบวนการรอ I / O

Multiprogramming ไม่ได้รับประกันว่าโปรแกรมจะทำงานในเวลาที่เหมาะสม แท้จริงแล้วโปรแกรมแรกอาจทำงานได้นานหลายชั่วโมงโดยไม่จำเป็นต้องใช้อุปกรณ์ต่อพ่วง

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

มัลติทาสกิ้งแบบ Preemptiveใช้การควบคุมการตั้งเวลาที่เข้มงวดมากขึ้นให้ความสำคัญกับกระบวนการบางอย่างมากกว่ากระบวนการอื่น ๆ

  1. ภาพรวมนี้ถูกต้องหรือไม่ ถ้าไม่ใช่นั่นเพราะ WP ไม่ถูกต้องหรือเพราะฉันอ่านผิด WP?
  2. ทำไมบางแหล่งที่มาดูเหมือนจะทำให้เกิดการรวมหลายโปรแกรมและมัลติทาสกิ้ง?

1
"กับแหล่งข้อมูลที่มีชื่อเสียงน้อยกว่า (เช่นอาจารย์วิทยาลัยของฉัน)" - โอ้ที่รัก ฉันหวังว่าเขาจะมีชื่อเสียงมากกว่าวิกิพีเดียซึ่งมีเนื้อหาที่น่าเบื่อหน่ายใน CS
Raphael

"การใช้โปรแกรมหลายโปรแกรม" น่าจะเป็นวิธีประวัติศาสตร์มากกว่า การทำงานหลายอย่างในปัจจุบันนั้นเกี่ยวข้องกับการบล็อก IO แต่เป็นเพียงหนึ่งในปัจจัยที่ใช้ในกระบวนการเล่นปาหี่ ยิ่งไปกว่านั้นการทำงานมัลติทาสก์ที่ทันสมัยเกือบทั้งหมดนั้นได้รับการสนับสนุนจากซีพียู (ซึ่งไม่เคยมีการสนับสนุนมาหลายปีมาแล้วและกระบวนการที่มีความประพฤติดีนั้นควรจะเรียกวิธีการรอตามระบบปฏิบัติการที่รองรับความร่วมมือ)
vzn

2
@ ราฟาเอลคุณสามารถทำให้โลกทั้งใบเป็นที่โปรดปรานได้โดยการอบให้สมบูรณ์
vonbrand

1
@ vonbrand ฉันพยายาม แต่น่าเสียดายที่มีผู้เชี่ยวชาญที่อบพอที่จะพูดคุยเกี่ยวกับความพยายามดังกล่าว
Raphael

@ ราฟาเอลและฝูงชนนั้นก็ไม่ปรากฏขึ้นที่นี่ด้วย?
vonbrand

คำตอบ:


9

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

โปรเซสเซอร์โดยเฉพาะอย่างยิ่งสาย intel มีกลไกสำหรับการทำงานมัลติทาสกิ้งจริง (จับเวลาขัดจังหวะคำแนะนำพิเศษ) ตั้งแต่อย่างน้อย 80286 M68000 ที่ใช้ใน Mac แรกเป็นโปรเซสเซอร์ที่มีความสามารถมัลติทาสกิ้งเต็มรูปแบบ นี่ไม่ใช่การพัฒนาล่าสุดในสถาปัตยกรรม โปรดทราบว่าระบบที่ใช้ร่วมกันครั้งแรกเป็นการสลับโปรแกรมของผู้ใช้เข้าและออกดังนั้นจึงไม่ได้มีหลายโปรแกรมในแง่ของการมีหลายโปรแกรมในหน่วยความจำในเวลาเดียวกัน

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

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

ในเครื่องส่วนบุคคลไม่มีแรงจูงใจให้เรียกใช้โปรแกรมหลายรายการพร้อมกันอย่างน้อยในตอนแรก (ผู้ใช้หนึ่งคนต่อหน้าเครื่องจักรที่ จำกัด อย่างรุนแรงไม่ได้คาดหวังอะไรมาก) เมื่อเครื่องจักรเติบโตขึ้นวิธีการแก้ไขปัญหานี้และอนุญาตให้โปรแกรมหลายโปรแกรมในแต่ละครั้งโดยไม่ต้องเปลี่ยนระบบปฏิบัติการมากนักคือ "การทำงานร่วมกันในการทำงานหลายอย่างพร้อมกัน" ซึ่งทุกโปรแกรมจะถูกปล่อยออกมาเป็นระยะเพื่อให้ระบบปฏิบัติการเลือกโปรแกรมอื่นที่จะทำงาน เนื่องจากโปรแกรมที่ทำสิ่งนี้สามารถควบคุมได้อย่างเต็มที่จึงสามารถเลือกที่จะทำสิ่งนี้เมื่อไม่มีสิ่งใดมายุ่งกับผู้อื่น จำเป็นต้องพูดโปรแกรม "ลืม" เพื่อทำหน้าที่เต็มที่ในการรับได้เพิ่มประสิทธิภาพที่น่าสนใจ ... ระบบ Mac รุ่นแรกทำงานในลักษณะนี้และด้วยเหตุผลข้างต้นนี่ไม่นานเกินไป บนระบบฝังตัวที่ไม่มีระบบปฏิบัติการพื้นฐานและมีชุดของโปรแกรมที่ควบคุมอย่างแน่นหนาที่รันอยู่นี่เป็นตัวเลือกที่ตอบสนองได้อย่างแน่นอน


บทความ WP ดูเหมือนว่ามีความหมายว่าการใช้โปรแกรมหลายตัวไม่มีหน่วยความจำเสมือนเมื่อเทียบกับการทำงานหลายระบบ (ระบบ) ในอดีตมันอาจจะเป็นจริง แต่นิยามมุมฉากคืออะไร?
didierc

1
เรามี IBM S / 370 แบบหลายโปรแกรมที่นี่ใน '70s และแน่นอนไม่มีหน่วยความจำเสมือน (ฉันดูเหมือนจะจำได้ว่ามีดิสก์ที่ใช้สำหรับการสพูลเท่านั้น) หน่วยความจำเสมือนช่วยให้คุณมีโปรแกรมมากขึ้นใน RAM ที่ จำกัด (ในขณะที่คุณเก็บเฉพาะส่วน "ที่ใช้มากที่สุด") การใช้ประโยชน์ได้ดียิ่งขึ้น ใช่ฉันจะพิจารณาความเป็นอิสระโดยสิ้นเชิง แต่ในทางปฏิบัติวันนี้คุณจะไม่พบที่อื่น ยกเว้นบางทีในเราเตอร์ไร้สายหรือโทรศัพท์มือถือของคุณ ...
vonbrand

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

@didierc orthogonal? คุณหมายถึงสิทธิพิเศษซึ่งกันและกัน
jsj

2

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


0

มีความแตกต่างมากมายระหว่างการทำงานมัลติทาสก์และมัลติโปรแกรม

การทำงานหลายอย่างกำลังทำงานมากกว่าหนึ่งงานในเวลาเดียว ตัวอย่างเช่นคุณกำลังฟังเพลงพิมพ์กระดาษและพิมพ์บน MS-Word ในเวลาเดียวกัน

ในขณะที่มัลติโปรแกรมในระบบปฏิบัติการประเภทนี้เราปรับปรุงการใช้งาน CPU โดยใช้การบัฟเฟอร์และการสพูล ในการประมวลผลตามลำดับ CPU จะไม่ทำงานหลังจากเรียกใช้งานโปรแกรมและโหลดโปรแกรมถัดไปจากหน่วยความจำหลัก ในระหว่างการดำเนินการของ i / o cpu ยังตั้งอยู่ idel, ซีพียูยังไม่ได้ใช้งาน, แต่ใช้สภาพแวดล้อมแบบมัลติการเขียนโปรแกรม, CPU สลับไปยังโปรแกรมถัดไปและประมวลผล นี่คือเทคนิคที่ใช้ด้วยความช่วยเหลือของการบัฟเฟอร์และการสพูล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.