Sistem de operare (php)
Există două tipuri principale de procese, de planificare a procedurilor - preemptive (preemptive) și non-preemptive (non-preemptiv).
multitasking non-preemptiv - multitasking non-preemptiv - este o modalitate de a proceselor de planificare în care procesul activ se realizează atât timp cât el are, din proprie inițiativă, nu va renunța la un control la planificatorul sistemului de operare coada selectat un alt proces runnable .
multitasking - multitasking - este un mod în care decizia de a schimba procesorul pentru a efectua același proces pentru executarea unui alt procedeu este preluat de planificatorul sistemului de operare, nu sarcina activă.
multitasking și non-preemptiv - este un concept mai larg decât tipurile de prioritate. Priorități sarcini pot fi ambele utilizate și nu sunt utilizate atunci când deplasarea, și metoda de programare non-preemptive. Deci, în cazul utilizării cu prioritate a priorităților relative ale disciplinei poate fi atribuită unei clase de sisteme cu un multitasking non-preemptive și disciplina prioritate absolută - la o clasă de sisteme cu multitasking. O disciplină de planificare besprioritetnaya bazată pe alocarea egală de felii de timp pentru toate sarcinile legate de algoritmii preemptive. Diferența principală dintre opțiunile multitasking și non-preemptive este gradul de centralizare a mecanismului de sarcini de programare. Atunci când mecanismul de preemțiune programarea de activitate este în întregime axat pe sistemul de operare, programatorul scrie cererea, fara a avea grija că va rula în paralel cu alte sarcini. În acest caz, sistemul de operare îndeplinește următoarele funcții: definește momentul scoaterii din sarcina activă efectua, își amintește contextul său, alege din coada de sarcini gata și începe să-i mai jos pentru a efectua descărcarea de contextul său. Atunci când un mecanism de non-preemptiv programarea multitasking este distribuit între programele de aplicație și sistemul. Programul de aplicație primește de control de la sistemul de operare în sine determină momentul finalizării următoarei sale iterație, și transferă controlul sistemului de operare prin orice apel de sistem, iar sistemul de operare generează o coadă de sarcină, și selectează, în conformitate cu unele algoritm (de exemplu, pe baza priorităților) următoarea problemă în executie. Un astfel de aranjament creează probleme, atât pentru utilizatori și dezvoltatori deopotrivă.
Cu toate acestea, în aproape toate sistemele de operare moderne axate pe aplicații de înaltă performanță (UNIX, Windows NT, OS / 2, VAX / VMS), pus în aplicare multitasking. Recent, rândul său, la clasa desktop-ul sistemului de operare, de exemplu, OS / 2 Warp și Windows 95. Este posibil, în acest sens, multitasking este adesea numit adevărat multitasking.