Know Intuit proces de calcul, organizarea de curs
Rezumat: Conceptul de procese și fire. Target, procese, fire (fire) fibre. Multiprogramming. Formulare MULTIPROGRAM de muncă. Managementul proceselor și fire. Crearea de procese și fire. Modele de procese și fire. Job Scheduling, procese și fire. Interacțiunea și sincronizarea proceselor și fire. metode de excludere reciprocă. Semafoarelor și monitoare. Deadlocks (impas). Sincronizarea obiectelor OS. Suport software și hardware multiprogramming. apeluri de sistem.
5.1. proces și conceptul thread. Target, procese, fire (filamente), fibrele
Unul dintre conceptele de bază legate de sistemele de operare, este un proces -. Un concept abstract care descrie funcționarea programului [10] Totul funcționează pe software-ul computerului. inclusiv sistemul de operare, este posibil să ne imaginăm un set de procese.
OS sarcină este de a gestiona procese și resurse de calculator, sau mai degrabă, organizarea utilizării raționale a resurselor pentru punerea în aplicare mai eficientă a proceselor. Pentru a rezolva această problemă, sistemul de operare trebuie să aibă informații despre starea curentă a fiecărui proces și resurse. Abordarea universală de a furniza astfel de informații este de a stabili și susține un tabel cu informații pentru fiecare obiect de control.
Fig. 5.1. masa de operație
Multiprogramming (multitasking multitasking.) - aceasta este o modalitate de a organiza procesul de calcul, în care un singur procesor sunt executate alternativ mai multe programe. Pentru a sprijini multiprocesare. OS trebuie să determine pentru ei înșiși lucrările interioare ale unității, care vor fi împărțite între procesor și alte resurse de computer. Prelucrarea lotului OS predominantă în a doua și primele calculatoare și a treia generație, o unitate de lucru a fost de locuri de muncă. În prezent, două tipuri de unități de operare identificate în majoritatea sistemelor de operare o unitate mai mare - un proces sau o sarcină și mai puțin mari - curs de apa. sau fire. Mai mult, procedeul este realizat sub forma unuia sau mai multor fluxuri.
În același timp, unele sisteme de operare moderne au revenit la o unitate de lucru ca loc de muncă (Iov), de exemplu, în Windows. în activități Windows este un set de unul sau mai multe procese gestionate integral. În special, fiecare asociat sarcinii cotelor de resurse și limitele stocate într-un obiect de referință corespunzător. Contingentele includ elemente cum ar fi numărul maxim de procese (nu permite proceselor de atribuire a crea numărul necontrolat de procese copil), timpul total CPU disponibile pentru fiecare proces separat și pentru toate procesele împreună, precum și cantitatea maximă de memorie utilizată pentru procesul și întreaga lucrare . Sarcinile pot limita, de asemenea, procesele lor în termeni de securitate, de exemplu, să primească sau să refuze privilegii administrative (chiar și cu parola corectă).
Procesele sunt luate în considerare de către sistemul de operare ca o aplicație sau containere pentru toate tipurile de resurse, cu o singură excepție - timpul CPU. Aceasta este cea mai importantă resursă este alocată de către sistemul de operare între alte unități de muncă - flux, care obține numele lor, deoarece acestea sunt secvențe (fire de execuție) comenzi. Fiecare proces începe cu un singur fir, dar noul flux poate fi generată (generat de) procesul dinamic. In cel mai simplu caz, procesul constă dintr-un singur flux, iar în acest mod a fost tratat „proces“ pe termen lung la mijlocul anilor '80 (de exemplu, în primele versiuni ale UNIX). Unele sisteme de operare moderne persistă această situație, și anume conceptul de „curgere“ este complet absorbită de noțiunea de „proces“.
De regulă, fluxul se execută în modul de utilizare, dar când el se referă la apelul de sistem, apoi se trece la modul nucleu. După finalizarea fluxului apelului sistem continuă să se execute în modul de utilizator. Fiecare fir are două stive, unul este utilizat în modul de kernel, celălalt - în modul de utilizare. În plus față de starea (valoarea curentă a obiectelor stream) identificatorul și două stive, fiecare fir are un context (care stochează registrele sale în cazul în care nu funcționează), o zonă privată pentru variabilele sale locale, și pot avea acces la propriul jeton (informațiile sale de securitate ). Când se termină firul, poate înceta să mai existe. Procesul se termină atunci când ultimul încetează activ să existe flux.
Relația dintre sarcini, procese și fire este prezentată în Fig. 5.2.
Fig. 5.2. Sarcini, procese, fire,
Astfel, există o ierarhie a sistemului de operare de unități, care au fost aplicate pentru Windows după cum urmează (Fig. 5.3).
Se pune întrebarea: de ce o astfel de organizare complexă a muncii. efectuate de către sistemul de operare? Răspunsul trebuie căutat în dezvoltarea teoriei și practicii multiprogramming, al căror scop - pentru a asigura utilizarea mai eficientă a resursei principale a sistemului informatic - CPU (CPU-uri multiple).
Prin urmare, înainte de a proceda la luarea în considerare a moderne de management procesor principii, procese și fire, ar trebui să se concentreze pe principiile de bază ale multiprogramming.
Fig. 5.3. Unități de operare OS Ierarhie
5.2. Multiprogramming. Formulare de lucru MULTIPROGRAM
Multiprogramming concepute pentru a crește eficiența sistemului de calcul [10. 17]. Cu toate acestea, eficiența poate fi înțeleasă în mod diferit de. Indicatorii mai tipice de eficiență a sistemelor de calcul sunt:
- Throughput - numărul de sarcini efectuate de sistemul în unitatea de timp;
- experiența utilizatorului, este, printre altele, că pot lucra simultan interactiv cu mai multe aplicații pe o singură mașină;
- Sistem de reactivitate - capacitatea de a rezista la predeterminate interval (eventual foarte scurt) timp între lansarea programului și a da rezultatul final.
În funcție de alegerea unuia dintre acești indicatori sunt împărțite în eficiența de operare a sistemului de procesare a lotului. Sistemele de sistem time-sharing și în timp real (unele sisteme de operare poate suporta simultan mai multe moduri).
Sistemele de prelucrare a lot destinate pentru a rezolva problemele în principal de calcul care nu necesită rezultate rapide [11]. Capacitatea maximă a computerului este realizată în acest caz prin minimizarea nefuncționare a dispozitivelor sale, și în special CPU. Pentru a realiza această sarcină sub formă de pachete este formată astfel încât amestecul rezultat multiprogramming sarcini echilibrate toate dispozitivele mașinii. De exemplu, în prezența unui astfel de amestec se dorește sarcini intensive computaționale și IOCTL. Cu toate acestea, în acest caz, este dificil să se asigure sincronizarea unui anumit loc de muncă.
În cazuri favorabile, timpul total de execuție a amestecului sarcini este mai mic decât timpul total de executarea lor secvențială. În acest caz special timpul de execuție sarcini pot fi cheltuite mai mult decât în varianta sa exclusivă (fig. 5.4).
În timp utilizatorii de sisteme de diviziune (în cazul particular - unul), cu posibilitatea de a lucra cu mai multe aplicații interactive. Pentru a face acest lucru, fiecare cerere trebuie să primească în mod regulat posibilitatea de a „comunica“ cu utilizatorul. Această problemă este rezolvată prin faptul că sistemul de operare este obligat să suspende periodic cererea fără a aștepta atunci când „de bună voie“ renunțe la procesor.
Fig. 5.4. efect multiprogramming Ilustrație
Toate cererile sunt alocate alternativ cuantelor de timp CPU, astfel încât utilizatorul rulează programul pentru a executa, sunt capabile să mențină un dialog cu ei (fig. 5.5) de la terminalul său. În cazul în care cuantumul timpului este ales suficient de mic încât toți utilizatorii au impresia-om de operare a mașinii.
Fig. 5.5. Sistem de divizare în timp
Sistemele în timp real sunt concepute pentru a gestiona obiecte tehnice (prin satelit, rachete, centrale electrice nucleare, mașini, abordare științifică, și altele.), proces (linia galvanică, furnalul, etc.), diverse tipuri de sisteme de servicii (bilete de rezervă, taxe și conturi, etc ..). În toate aceste cazuri, există un timp maxim admisibilă în timpul căreia unul sau celalalt obiect program de control care urmează să fie executat. În caz contrar, consecințele nedorite până la un accident.
OS criteriu de eficiență, în acest caz, este capacitatea de a menține un interval predeterminat între începutul programului și rezultatele obținute. De data aceasta se numește răspunsul sistemului, iar proprietatea corespunzătoare - reactivitate. la reacție cerințe de timp depind de obiectul specific gestionat sau proces. În timp real sistemele multiprogramming amestec este un set fix de soluții software pre-proiectate a sarcinilor de gestionare funcționale un obiect sau un proces. Selectarea unui program de a efectua o întrerupere este realizată (în funcție de starea curentă a obiectului) sau conform unui program de lucru planificat.
Sistemul în timp real, de regulă de calcul prevăzut de alimentare cu energie în caz de vârf, motorul dar, de asemenea, sunt luate măsuri pentru a asigura o fiabilitate ridicată a funcționării sistemului (de rezervă, redundanță, tripla redundanta cu element de majoritate și altele.).
O formă interesantă de lucru asociate cu multiprogramming multiprocesare. Multiprocesare - un mod de organizare a procesului de calcul într-un sistem cu mai multe procesoare, în cazul în care mai multe sarcini (procese, fire) pot fi efectuate simultan pe procesoare diferite ale sistemului. Conceptul multiprocesor nu este nouă, ea a fost cunoscut inca din anii '70, dar a devenit disponibil pe scară largă numai în ultimul deceniu, în special odată cu apariția de PC-uri multiprocesor (de multe ori ca un server LAN).
Sistemele multiprocesor este adesea descris ca fiind simetrice și asimetrice cum ar fi. Acești termeni sunt, pe de o parte, la arhitectura sistemului de calculator, iar pe de altă parte - o metodă de calcul organizarea procesului.
Arhitectura multiprocesare simetrică a sistemului presupune uniformitatea și uniformitatea permite procesoare și memorie de mare împărțită între procesoare. Scalabilitate, și anume, posibilitatea de creștere a numărului de procesoare, în acest caz, este limitat, deoarece toate folosesc aceeași memorie și, prin urmare, trebuie să fie situate într-o singură carcasă. Arhitectura echilibrată a sistemelor informatice puse în aplicare cu ușurință multiprocesare simetrică comun pentru toate procesoarele sistemului de operare. În acest caz, toate procesoarele implicate în mod egal în gestionarea procesului de calcul și în punerea în aplicare a cererilor. Procesoare diferite pot, la un moment dat în timp servesc simultan atât diferite si sistemul de operare comun aceleași module. Pentru a face acest lucru, programele de sistem de operare trebuie să fie reintranta (povtornovhodimymi).
Sistemul de operare este complet descentralizat. modulele sale rula pe orice procesor disponibil. Odată ce procesorul finalizează executarea sarcinii următoare, trece de control la Task Scheduler. Ultimul selectat din problema generală pentru toate procesoarele coadă de sistem care urmează să fie executat pe procesorul următor.
În sistemele de computere cu procesoare arhitectura asimetrice pot fi diferite atât în caracteristicile (performanța. Team System), precum și cu privire la rolul funcțional al sistemului. De exemplu, procesoarele pot fi alocate pentru calcul IO et al. Această neomogenitate duce la diferențe structurale în sistem fragmente care cuprinde mai multe procesoare (scheme de conectare diferite, seturi de periferice, moduri de interacțiune cu procesoare și alte dispozitive.).
Scalarea în astfel de sisteme este pus în aplicare în mod diferit, pentru că nu există nici o cerință a unui singur organism. Sistemul poate cuprinde mai multe dispozitive, dintre care fiecare cuprinde unul sau mai multe procesoare. Scalarea în acest caz, se face referire la orizontală, și sistemul multiprocesor - cluster. Sistemul de cluster poate fi realizat doar cu organizarea procesului de calcul multiprocesor asimetric pe principiul „maestru - sclav“. Aceasta este cea mai simplă metodă poate fi utilizată în sistemele informatice, cu arhitectură simetrică. În aceste sisteme de operare care rulează pe un singur procesor, care este numit lider și organizarea gestionarea centralizată a procesului de calcul și distribuirea tuturor resurselor de sistem.