Textul prelegerii
Durata: 2 ore (90 min.)
· Scopul și obiectivele cursului.
· Informațiile și datele.
· Concepte de bază și definiții: Sistemul de operare pe disc (DOS); Un sistem de operare de uz general.
· Organizarea de utilizare rațională a resurselor.
· Multiprogramming sau multitasking.
· Sisteme de prelucrare a lot.
· Multiprogramming în sistem timesharing.
· Multiprogramming în sistemele de timp real.
7.2.1 Informații generale - până la 15 minute.
După cum sa menționat mai sus, cea mai importantă funcție a sistemului de operare este de a organiza utilizarea eficientă a resurselor. Situat aceleași resurse hardware, dar gestionate de diferite sisteme de operare, sistemul de calcul poate funcționa cu o eficiență complet diferite.
Cunoașterea mecanismelor interne ale sistemului de operare vă permite să evalueze în mod indirect confortul, eficiența și performanța.
probleme de management trebuie să fie abordate în sistemele de operare cu un singur program de (alocare de memorie între sistem, rezidenții și distribuția de întrerupere de aplicare, și așa mai departe. d.), cu toate acestea, în plină creștere, aceste probleme apar în sistemele de operare multitasking. Sunt în competiție pentru resurse, sistemul în sine, și aplicații multiple. Prin urmare, cele mai multe dintre sarcinile de management se referă în mod specific la sistemele multiprogramming.
Multiprogramming sau multitasking (multitasking) - un mod de organizare a procesului de calcul în care un singur procesor efectuat alternativ mai multe programe. Aceste programe simultan executabile împart CPU și toate celelalte resurse informatice - memorie operațională și externe, dispozitive de intrare-ieșire, date, etc. Se crede că multiprogramming crește eficiența sistemului informatic, dar însuși conceptul de eficiență este adesea înțeleasă în moduri diferite ...
Criterii de performanță tipice pentru astfel de sisteme sunt [4]:
- Capacitatea - numărul de sarcini efectuate de sistemul informatic la un moment dat,
- experiență de utilizator, care constă în capacitatea unui utilizator de a lucra simultan pe o singură mașină cu mai multe aplicații,
- reactivitatea sistemului - capacitatea sistemului de a rezista la intervale de timp prestabilite între lansarea programului și rezultatele obținute.
În funcție de criteriul eficienței sistemelor de operare sunt împărțite în
- Sistemul de procesare a pachetelor
- sistem de divizare în timp și
- sisteme în timp real.
fiecare tip de sistem au mecanisme specifice și aplicații specifice. Sunt sisteme în care, de exemplu combinat, o parte din sarcinile îndeplinite într-un mod discontinuu, o parte din timpul de partajare.
Sistemele de procesare 7.2.2 Batch - până la 15 minute.
Utilizarea multiprogramming pentru a crește capacitatea de tranzit a scopului principal al calculatorului este de a minimiza timpul de lucru al tuturor dispozitivelor din calculator, și, mai presus de toate, a procesorului. Nefuncționare poate apărea ca urmare a suspendării de sarcini interne motive legate, cum ar fi anticiparea datelor de intrare. Datele pot fi stocate pe un disc sau să vină de la utilizator, de la instrumentarea și așa mai departe. D. În cazul unor astfel de situații, soluția cea mai simplă și naturală care crește eficiența procesorului, este de a comuta CPU pentru a efectua alte sarcini, care au toate datele pentru prelucrare. Acest concept sta la baza sistemelor de lot multiprogramming.
sistem de prelucrare a lot conceput pentru a aborda sarcini, în principal de calcul care nu necesită rezultate rapide. Obiectivul primar este o capacitate de sistem discontinuu - numărul de sarcini pe unitatea de timp.
Pentru a maximiza acest criteriu în astfel de sisteme care funcționează următoarea schemă este utilizat:
- la începutul pachetului de locuri de muncă este format de către sistem,
- Fiecare loc de muncă necesită o resursă de sistem,
- Obiectivele acestui pachet este format un amestec multiprogramming, adică, o multitudine de sarcini executate simultan.
Pentru a efectua simultan sarcini selectate au cerințe diferite pentru resurse pentru a asigura o încărcare echilibrată a tuturor dispozitivelor din calculator. De exemplu, în multiprogramming amestec este de dorit să fie prezent sarcini de calcul și de intrare intensivă sarcină și de ieșire.
Alegerea unui nou loc de muncă în afara pachetului depinde de situația internă din sistem, care este, selectează o sarcină de primă importanță pentru situația dată. Din aceasta rezultă că, în pachetul sisteme de calcul nu poate garanta executarea unei sarcini într-un anumit interval de timp.
Luați în considerare opțiunile de combinare a timpului-IO și calcule.
Una dintre variantele de o astfel de combinație este tipic pentru computerele care au un procesor dedicat de intrare-ieșire. Procesoarele mainframe sunt numite canale. De obicei, canalul are propriul set de instrucțiuni, care diferă de instrucțiunea de sistem CPU. Aceste comenzi sunt destinate pentru a controla dispozitivele externe și au forma:
- verifica starea dispozitivului,
- instalați un cap magnetic,
- set top foaie,
- linie de imprimare și t. d.
Programele de canal pot fi stocate în aceeași memorie ca și programul CPU. Soi CPU transmite parametrii de canal și indică programul de intrare-ieșire, el trebuie să le îndeplinească. Din acest punct procesorul central și canalul poate funcționa în paralel (figura 7.1).
O altă metodă de combinare calcul cu operațiunile de intrare-ieșire implementate în calculatoarele, în care dispozitivul extern nu este controlat de către procesorul de intrare-ieșire și controlori. În mod obișnuit, fiecare dispozitiv extern sau grup are propriul controler, care îndeplinește în mod autonom comenzile de la CPU. În acest caz, operatorii și CPU funcționează în mod asincron.
Figura 7.1 - procesare paralelă de calcul și de intrare-ieșire operațiuni în sistemul de canale
Figura 7.2 - execuția în paralel a calculelor și a operațiunilor de intrare-ieșire cu controlerul de sistem
Multe periferice includ piese în mișcare, operatorul efectuează de obicei comanda sa mai lent decât CPU. Acest fapt este folosit pentru organizarea de performanță de calcul paralel și IOPS. Calculele pot fi efectuate între emiterea de controlere de comandă de dispozitive externe. Un astfel de aranjament este prezentat în figura 7.2.
Procesorul recunoaște că regulatorul este gata să accepte următoarea comandă sau o alarmă de întrerupere, sau periodic de votare statutul controlorilor.
Efectul maxim se obține cu calcule mai complete care se suprapun și operațiunile de intrare-ieșire. Dacă sunteți deja execută o singură sarcină, gradul de accelerare depinde de natura problemei și modul în care a luat cu atenție în considerare posibil paralelismul în programare. Dacă problema este dominată de calcul sau de intrare-ieșire, accelerația este practic absentă. Nu se poate suprapune în cazurile în care este necesar să se continue calculul a fost operațiuni complete de intrare-ieșire. În aceste cazuri, timpul procesorului central de mers în gol este inevitabilă.
Dacă sistemul rulează simultan mai multe sarcini, există posibilitatea de a combina calcularea unei probleme IO alta. In timp ce o sarcină este în așteptare pentru un eveniment (debloca fișierul pagina de descărcare sau de un complet operațiunile de intrare-ieșire), procesorul nu este inactiv ca tine pas prin programe, și de a efectua alte sarcini.
De multe ori, timpul total de execuție a amestecului sarcini este mai mic decât timpul total în timpul secvențial. În acest caz, executarea unei anumite sarcini în modul multitasking poate dura mai mult decât cu alocarea exclusivă a procesorului această sarcină. Atunci când este utilizat împreună, procesorul din sistem poate fi situații în care sarcina este gata pentru a rula, dar procesorul este ocupat efectuează o altă activitate. În acest caz, problema, completați de intrare-ieșire, gata pentru a rula, dar procesorul este nevoit să aștepte eliberarea pe care lungește perioada punerii sale în aplicare. Astfel, Figura 7.3 arată că o sarcină executată monomod Un program de 6 unități de timp, dar într-un MULTIPROGRAM - 7. Sarcina, de asemenea, în loc de 5 unități de timp se face pentru un timp total de 6. Dar ambele sarcini în modul multitasking este de numai 8 unități, și un singur program - 11.
În sistemele discontinue comută procesor de la o sarcina de a efectua o alta este inițiată de o sarcină activă - sarcină activă declină procesor de necesitatea de a efectua operațiuni de intrare-ieșire.
Figura 7.3 - îndeplinește două sarcini în timp un singur sistem de program (D), într-un sistem multiprogramming (M)
Acest mecanism determină o mare probabilitate ca o sarcină poate dura o lungă perioadă de timp de procesare și alte sarcini opri.
Este evident că sistemul de ambalare crește eficiența hardware-ul, dar face imposibil de a lucra interactiv.
7.2.3 multiprogramming timp sistemele de separare - 15 min.
În sistemele de divizare a timpului, unul sau mai mulți utilizatori li se dă posibilitatea de a lucra interactiv simultan cu mai multe aplicatii. Pentru a face acest lucru, fiecare cerere trebuie să comunice periodic cu utilizatorul. Este evident că sistemele de prelucrare a lot nu poate oferi o astfel de oportunitate.
Pentru a pune în aplicare sisteme de separare de timp utilizate în mod obișnuit „preventiv“ multitasking în care sistemul de operare forțat periodic să suspende fiecare cerere, fără a aștepta să dea în mod voluntar de control al sistemului. În acest caz, fiecare aplicație primește periodic un cuantum de timp pentru a procesa, astfel încât fiecare dintre aceste aplicații pot menține un dialog cu utilizatorul.
În sistemele de partajare de timp, spre deosebire de sistemele de prelucrare a lot, utilizatorul continuă să comunice cu aplicarea sa de-a lungul timpului este procesat. Acest lucru vă permite să detecteze și să corecteze erorile, introduceți datele și a obține rezultate în timp real.
Fiecare utilizator, în acest caz, a oferit un terminal separat și aplicarea acestuia primește periodic felie de timp în care este procesat de către CPU. Deoarece fiecare sarcină alocat doar cuantum de timp CPU, nici o aplicație nu poate ocupa CPU pentru o lungă perioadă de timp, iar timpul de răspuns este acceptabil. Dacă felie de timp este suficient de mic, atunci performanța adecvată a sistemului informatic și o cantitate corespunzătoare de utilizatori simultani pentru toți utilizatorii simultan impresia de proprietate de monopol a unui sistem informatic.
Se înțelege că sistemul de divizare a timpului este semnificativ mai puțin eficace în ceea ce privește dispozitivele de utilizare a procesorului și de sistem decât sistemul de prelucrare a lot. Acest lucru se datorează faptului că, în orice moment dat nu rulează aplicația care încarcă sistemul cel mai eficient, iar cererea a cărei rândul său a venit să primească următoarea felie de timp. reducere suplimentară a performanțelor se datorează nevoii de mai frecvente comutarea procesorului la cererea privind aplicarea - necesită frecvente procese de comutare de context, care crește în mod semnificativ deasupra capului sistemului.
Pe de altă parte, utilizarea sistemelor de divizare a timpului crește eficiența sistemului informatic, în comparație cu un regim de monopol, deoarece fără degradare a utilizatorilor sistemului de performanță de serviciu servește simultan mai multe (uneori foarte mulți utilizatori).
7.2.4 multiprogramming în sistemele de timp real - până la 15 minute.
În timp real sistemele multiprogramming amestec este un set fix de programe pre-proiectate previzibile. Alegerea programului este efectuată de o întrerupere sau un obiect, în conformitate cu planul.
Capacitatea de hardware și sistemul de operare pentru a garanta răspunsul rapid depinde de viteza de comutare de la o sarcina la alta, care, la rândul său, depinde în mod substanțial de viteza de procesare a semnalului de întrerupere. În cazul în care are loc o întrerupere, procesorul folosind sondajul afla exact cine a cauzat întrerupere, răspunsul sistemului poate fi prea lent.
Designerii de sisteme în timp real nu au un scop de a utiliza hardware-ul cât mai eficient posibil. În schimb, proiectarea unor astfel de sisteme, procesorul este ales, de obicei, cu o marjă suficient de mare, astfel încât chiar și în cazul sistemului de vârf a face față sarcinilor lor.
Trebuie remarcat faptul că abordarea utilizate în mod obișnuit la proiectarea sistemelor „obișnuite“ de calculator bazate pe evaluarea medie de sarcină, intensitatea medie de aplicare, timpul mediu de așteptare, și deci nu este potrivit pentru sistemele de control - .. Sistemele în timp real. Aceste sisteme ar trebui să fie proiectate luând în considerare posibilitatea unei combinații dintre cele mai rele condiții în operațiune. Aceasta conduce la faptul că cele mai multe ori calculatorul de control al sistemului este inactiv, și, în consecință, sarcina medie de hardware este foarte mică. Acesta este prețul inevitabil să plătească pentru că, în cazul unei situații de urgență (de urgență), sistemul va funcționa corect, iar procesul tehnologic nu va fi deranjat. Dacă nu aderă la această abordare a sistemelor de control în timp real, noi Chernobyls inevitabile.
Tratamentul 7.2.5 multiprocesor - 15 minute.
Multiprocesare - este o organizație a procesului de calcul într-un sistem multiprocesor, în care mai multe sarcini (procese, fire) sunt realizate simultan pe mai multe procesoare.
Primele încercări multiprocesare efectuate de la mijlocul anilor '50. Cu toate acestea, în timp ce costul fiecărui procesor a fost atât de mare, și propria multi-procesare a organizației este atât de complex încât au existat aceste încercări, în principal pentru a îmbunătăți fiabilitatea anumitor sisteme, cum ar fi reactoarele nucleare.
În cazul în care distinge multiprocesare și procesarea multiprogramming. În sistemele multiprogramming funcționarea în paralel a diferitelor dispozitive externe care se ocupă de diverse programe, dar procesorul central, în orice moment dat doar un singur program de procese. Asta este, multiprogramming de prelucrare - un procesor de procesare secvențială a diferitelor programe, care pare a fi doar simultane. Într-un sistem multiprocesor, o varietate de sarcini sunt procesate pe procesoare diferite, și există, de fapt, în același timp. Deci, multiprogramming și multiprocesare - este o varietate de termeni, care pot fi tratate ca unul și același sistem și diverse.
Când multiprocesare de management foarte complicat, deoarece majoritatea resurselor sistemului este partajată de toate procesoarele, respectiv, planul și să aloce resurse au reprezentat mai mult de un procesor. Desigur, în unele sisteme, fiecare procesor (sau per nucleu) are o memorie cache, dar este - doar o mică parte din resursele care trebuie să fie gestionate.
Dacă există mai multe procesoare sau miezuri este crescut numărul de conflicte care apar atunci când accesarea programelor și resurselor partajate. Acest lucru crește semnificativ riscul de diferite tipuri de încuietori care apar la accesarea aceleași resurse. Pentru a rezolva problemele sistemului de operare trebuie să fie planificate cu atenție și să aloce resurse între procese și programe. Acesta ar trebui să reducă la minimum, de asemenea, interdependența dintre activitățile care rulează simultan, precum și între părțile sistemului de operare.