Изпреварваща многозадачност [страница - 171] ✿ Прочети онлайн безплатно и без регистрация" />

Илюстрирана урок по теория на операционни системи> относно изпълнението на многозадачност

изпреварваща многозадачност

Всичко това ни довежда до идеята за причина ThreadSwitch не от потребителската програма, а по някакъв друг начин. Например, инструктира функция обаждане от прекъсване на таймера система. След това ние получаваме следната схема.

  • Всяка нишка се разпределя времето слот.
  • Ако конецът не пусна процесора за своята квантова, той е отстранен и пренасочен към края на опашката. В този случай, всички готови за изпълнение конец повече или по-малко равномерно получат контрол.

Този механизъм, наречен време нарязване или за временно ползване. изпълнява в микрокод Transputer и почти всички съвременни операционни системи. А общо име за всички методи нишки превключване система се инициира чрез изместване на срока (превантивен) няколко задачи. По този начин, изпреварваща многозадачност се противопоставя на кооперация, в която превключване се появява само по инициатива на проблема. споделяне Време е специален случай на осъществяване на превантивна мултитаскинга. При системи с приоритетите на сегашното изместване на проблема не е само сигналите на таймера, но в случай, че по някаква причина (най-често се дължи на външно събитие) се активира от процес с приоритет по-висока от сегашната.

Въпросът за момента на кванта не е тривиален проблем. От една страна, изключително кратък квантовата доведе до факта, че голямата част от времето, системата ще се справят с превключване нишки. От друга страна, интерактивни системи или в реално време, твърде големи, за квантовата системи ще доведе до неприемливо високо време за реакция.

Системата за реално време, можем да твърдим, нишката, която е необходимо да се реагира бързо, приоритет и да го оставите в това. Но ние не можем да направим това с интерактивни програми в мулти-потребител или операционни системи с много потребители е потенциално като UNIX върху x86 десктоп машина или нд

От сетивната психология известно, че човек започва да се чувства забавяне на отговор на стойността на забавянето на около 100 милисекунди. Ето защо, в системите за разделено време, предназначени за интерактивна работа, количествен обикновено избран да бъде равна на десетки милисекунди. При по-старите системи, за обработка на партидите ориентирани изчислителни задачи, като операционна система DISPAK на BESM-6, количествен могат да достигнат до няколко десети от секундата, или дори секунди. Това увеличава ефективността на системата, но това прави невъзможно или поне неудобно - интерактивна работа. Много съвременни системи за избрани времеви отрязък динамично за различните класове процеса на планиране и приоритизиране.

реално време системи обикновено имат две график клас - реалния и разделянето време. график клас, като правило, не се дава на отделните нишки, както и на целия процес. процеси в реално време, не са прекъснати от сигнали за таймера и могат да бъдат задвижвани само от интензификация на по-висок приоритет в реално време нишка. В реално време нишки на най-голям приоритет, са действително работещи в режим на кооперативна многозадачност. Но конец междинното време и процесите на са разселени помежду си чрез сигнали, таймер и в реално време, процеси, тъй като те са активирани.

Изпреварваща многозадачност има много предимства, но ако ние сме около сто ще се обади, както е описано в предишния раздел ThreadSwitch прекъсне таймер или друго външно устройство, като ключ ще бъде непоправимо наруши прекъсва нишката.

Наистина, програмата потребител може да използва всеки от Т регистри, които не се съхраняват при нормални разговори. Ето защо, например, хардуерно прекъсване манипулатори се съхраняват в стека всички регистри, използвани от тях. Между другото, ако нашата функция ThreadSwitch ще спаси всички регистри в стека, няма да има точно това, което искаме. ThreadSwitch причинени от прекъсване, запазва текущите регистри конец за текущата стека, стека е включен към нова тема, тя се възстановява от неговите стека регистри, както и нова нишка получава контрол, така че ако не го беше загубено.

Пример 8.3. превключването на контекст функция в Linux / x86 ядро.

НАШИТЕ ПРОЕКТИ