Multitasking cooperativ - Cooperative multitasking

Multitaskingul cooperativ , cunoscut și sub numele de multitasking non-preventiv , este un stil de multitasking pe computer în care sistemul de operare nu inițiază niciodată un comutator contextual de la un proces în curs de desfășurare la alt proces. În schimb, pentru a rula mai multe aplicații concomitent, procesele cedează în mod voluntar controlul periodic sau când sunt inactive sau blocate logic . Acest tip de multitasking se numește cooperativ, deoarece toate programele trebuie să coopereze pentru ca schema de planificare să funcționeze.

În această schemă, planificatorul de procese al unui sistem de operare este cunoscut ca un planificator cooperativ al cărui rol este limitat la pornirea proceselor și lăsarea acestora să returneze controlul în mod voluntar asupra acestuia.

Utilizare

Deși este rar utilizat în sistemele moderne mai mari, este utilizat pe scară largă în sistemele încorporate cu restricții de memorie și, de asemenea, în aplicații specifice precum CICS sau subsistemul JES2 . Multitaskingul cooperativ a fost schema principală de planificare pentru aplicațiile pe 16 biți folosite de Microsoft Windows înainte de Windows 95 și Windows NT și de clasicul Mac OS . Windows 9x a folosit multitasking non- preventiv pentru aplicații vechi pe 16 biți, iar versiunile PowerPC ale Mac OS X înainte de Leopard l-au folosit pentru aplicații clasice . NetWare , care este un sistem de operare orientat spre rețea, a folosit multitasking cooperativ până la NetWare 6.5. Multitaskingul cooperativ este încă utilizat pe sistemele RISC OS .

Multitaskingul cooperativ este utilizat cu await în limbi, cum ar fi JavaScript sau Python , care prezintă o buclă de eveniment cu un singur fir în timpul rulării lor.

Probleme

Întrucât un sistem multitasking cooperat se bazează pe fiecare proces care acordă în mod regulat timp altor procese din sistem, un program slab conceput poate consuma tot timpul CPU pentru el însuși, fie prin efectuarea unor calcule extinse, fie prin așteptarea ocupată ; ambele ar face ca întregul sistem să stea . Într-un mediu server , acesta este un pericol care face întregul mediu inacceptabil de fragil.

În schimb, multitaskingul preventiv întrerupe aplicațiile și oferă control asupra altor procese din afara controlului aplicației.

Potențialul blocării sistemului poate fi atenuat prin utilizarea unui cronometru de supraveghere , adesea implementat în hardware; acest lucru invocă de obicei o resetare hardware .

Multitaskingul cooperativ permite implementarea mult mai simplă a aplicațiilor, deoarece execuția lor nu este niciodată întreruptă în mod neașteptat de programatorul de procese; de exemplu, diverse funcții din interiorul aplicației nu trebuie să fie reintroduse .

Vezi si

Referințe