Відмінності між версіями «Кооперативна багатозадачність»

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
[перевірена версія][очікує на перевірку]
м
м (Виключно використання Вікіфікатора)
 
(Не показано 2 проміжні версії 2 користувачів)
Рядок 1: Рядок 1:
'''Кооперативна багатозадачність''', також відома як '''багатозадачність без витіснення''', це стиль комп'ютерної [[Багатозадачність|багатозадачності]], в якому [[операційна система]] ніколи не ініціює перемикання контексту від запущеного [[Процес (інформатика)|процесу]] до іншого процесу. Замість того, процеси періодично добровільно поступаються контролем , або перебувають в режимі очікування, для того щоб кілька додатків мали можливість працювати одночасно. Цей тип багатозадачності називається "кооперативним", тому що всі програми повинні співпрацювати для роботи всієї схеми планування. У цій схемі процес [[Планувальник операційної системи|планувальника операційної системи]] відомий як кооперативний планувальник, його роль зводиться до запуску процесів і дозволу їм повернути управління назад добровільно. <ref name="pcmag">{{cite web
+
'''Кооперативна багатозадачність''', також відома як '''багатозадачність без витіснення''', це стиль комп'ютерної [[Багатозадачність|багатозадачності]], в якому [[операційна система]] ніколи не ініціює перемикання контексту від запущеного [[Процес (інформатика)|процесу]] до іншого процесу. Замість того, процеси періодично добровільно поступаються контролем, або перебувають в режимі очікування, для того щоб кілька додатків мали можливість працювати одночасно. Цей тип багатозадачності називається «кооперативним», тому що всі програми повинні співпрацювати для роботи всієї схеми планування. У цій схемі процес [[Планувальник операційної системи|планувальника операційної системи]] відомий як кооперативний планувальник, його роль зводиться до запуску процесів і дозволу їм повернути управління назад добровільно.<ref name="pcmag">{{cite web
 
| url = http://www.pcmag.com/encyclopedia/term/48051/non-preemptive-multitasking
 
| url = http://www.pcmag.com/encyclopedia/term/48051/non-preemptive-multitasking
 
| title = Definition of non-preemptive multitasking
 
| title = Definition of non-preemptive multitasking
Рядок 11: Рядок 11:
 
}}</ref>
 
}}</ref>
   
Хоча вона рідко використовується в сучасних великих системах, окрім певних додатків, таких як CICS або підсистема JES2, кооперативна багатозадачність була основною схемою планування для 16-розрядних програм, які використовував [[Microsoft Windows]] до версій [[Windows 95]] і [[Windows NT]], а також [[Mac OS]] до версії [[OS X]]. [[Windows 9x]] використовував багатозадачність без витіснення для 16-розрядних застарілих додатків, PowerPC з операційною системою Mac OS X до версії Leopard використовував його для класичних додатків. [[NetWare]], яка представляє собою мережево-орієнтовану операційну систему, використовувала кооперативну багатозадачність до версії NetWare 6.5. Кооперативна багатозадачність досі використовується в [[RISC OS]] системах. <ref name="pcmag" /> [[NetWare]], which is a network-oriented operating system, used cooperative multitasking up to NetWare&nbsp;6.5. Cooperative multitasking is still used on [[RISC&nbsp;OS]] systems.<ref>{{cite web
+
Хоча вона рідко використовується в сучасних великих системах, окрім певних додатків, таких як CICS або підсистема JES2, кооперативна багатозадачність була основною схемою планування для 16-розрядних програм, які використовував [[Microsoft Windows]] до версій [[Windows 95]] і [[Windows NT]], а також [[Mac OS]] до версії [[OS X]]. [[Windows 9x]] використовував багатозадачність без витіснення для 16-розрядних застарілих додатків, PowerPC з операційною системою Mac OS X до версії Leopard використовував його для класичних додатків. [[NetWare]], яка являє собою мережево-орієнтовану операційну систему, використовувала кооперативну багатозадачність до версії NetWare 6.5. Кооперативна багатозадачність досі використовується в [[RISC OS]] системах.<ref name="pcmag" /> [[NetWare]], which is a network-oriented operating system, used cooperative multitasking up to NetWare&nbsp;6.5. Cooperative multitasking is still used on [[RISC&nbsp;OS]] systems.<ref>{{cite web
 
| url = http://www.riscos.info/index.php/Preemptive_multitasking
 
| url = http://www.riscos.info/index.php/Preemptive_multitasking
 
| title = Preemptive multitasking
 
| title = Preemptive multitasking
Рядок 18: Рядок 18:
 
}}</ref>
 
}}</ref>
   
Так як кооперативно багатозадачна система потребує того , щоб кожен процес регулярно віддавав час іншим процесам в системі, одна погано розроблена програма може використовувати весь процесорний час для себе, або шляхом проведення великих розрахунків або через стан активного очікування; обидва фактори можуть привести до того, що система зависне. У серверному середовищі, це загроза, робить все середовище неприпустимо тендітним. Проте, кооперативна багатозадачність дозволяє набагато простішу реалізацію додатків, оскільки їх виконання ніколи не може бути несподівано перерваним процесорним планувальником. Наприклад, різні функції всередині програми не повинні бути [[Повторновикористовна підпрограма|повторновикористовними]].<ref name="pcmag" /><ref name="classiccmp" />
+
Через те, що кооперативно багатозадачна система потребує того, щоб кожен процес регулярно віддавав час іншим процесам в системі, одна погано розроблена програма може використовувати весь процесорний час для себе, або шляхом проведення великих розрахунків або через стан активного очікування; обидва фактори можуть привести до того, що система зависне. У серверному середовищі, це загроза, робить все середовище неприпустимо тендітним. Проте, кооперативна багатозадачність дозволяє набагато простішу реалізацію додатків, оскільки їх виконання ніколи не може бути несподівано перерваним процесорним планувальником. Наприклад, різні функції всередині програми не повинні бути [[Повторновикористовна підпрограма|повторно використовними]].<ref name="pcmag" /><ref name="classiccmp" />
   
 
На відміну від цього, [[витискальна багатозадачність]] перериває додатки та передає управління іншим процесам поза контролем додатку.
 
На відміну від цього, [[витискальна багатозадачність]] перериває додатки та передає управління іншим процесам поза контролем додатку.
Рядок 32: Рядок 32:
 
[[Категорія:Паралельні обчислення]]
 
[[Категорія:Паралельні обчислення]]
 
[[Категорія:Технології операційних систем]]
 
[[Категорія:Технології операційних систем]]
  +
[[Категорія:Конкурентні обчислення]]

Поточна версія на 17:55, 15 червня 2020

Кооперативна багатозадачність, також відома як багатозадачність без витіснення, це стиль комп'ютерної багатозадачності, в якому операційна система ніколи не ініціює перемикання контексту від запущеного процесу до іншого процесу. Замість того, процеси періодично добровільно поступаються контролем, або перебувають в режимі очікування, для того щоб кілька додатків мали можливість працювати одночасно. Цей тип багатозадачності називається «кооперативним», тому що всі програми повинні співпрацювати для роботи всієї схеми планування. У цій схемі процес планувальника операційної системи відомий як кооперативний планувальник, його роль зводиться до запуску процесів і дозволу їм повернути управління назад добровільно.[1][2]

Хоча вона рідко використовується в сучасних великих системах, окрім певних додатків, таких як CICS або підсистема JES2, кооперативна багатозадачність була основною схемою планування для 16-розрядних програм, які використовував Microsoft Windows до версій Windows 95 і Windows NT, а також Mac OS до версії OS X. Windows 9x використовував багатозадачність без витіснення для 16-розрядних застарілих додатків, PowerPC з операційною системою Mac OS X до версії Leopard використовував його для класичних додатків. NetWare, яка являє собою мережево-орієнтовану операційну систему, використовувала кооперативну багатозадачність до версії NetWare 6.5. Кооперативна багатозадачність досі використовується в RISC OS системах.[1] NetWare, which is a network-oriented operating system, used cooperative multitasking up to NetWare 6.5. Cooperative multitasking is still used on RISC OS systems.[3]

Через те, що кооперативно багатозадачна система потребує того, щоб кожен процес регулярно віддавав час іншим процесам в системі, одна погано розроблена програма може використовувати весь процесорний час для себе, або шляхом проведення великих розрахунків або через стан активного очікування; обидва фактори можуть привести до того, що система зависне. У серверному середовищі, це загроза, робить все середовище неприпустимо тендітним. Проте, кооперативна багатозадачність дозволяє набагато простішу реалізацію додатків, оскільки їх виконання ніколи не може бути несподівано перерваним процесорним планувальником. Наприклад, різні функції всередині програми не повинні бути повторно використовними.[1][2]

На відміну від цього, витискальна багатозадачність перериває додатки та передає управління іншим процесам поза контролем додатку.

Посилання[ред. | ред. код]

  1. а б в Definition of non-preemptive multitasking. pcmag.com. Процитовано 2015-08-15.mdy.2020. 
  2. а б Joe Bartel (2011-11-05.mdy.2020). Non-Preemptive Multitasking. classiccmp.org. Процитовано 2015-08-15.mdy.2020. 
  3. Preemptive multitasking. riscos.info. 2009-11-02.mdy.2020. Процитовано 2015-08-15.mdy.2020.