sisteme operare vasilescu

21
1)Sitemele de operare Un sistem de operare constă dintr-o colecţie integrată de programe de sistem, ce oferă utilizatorului posibilitatea folosirii eficiente a sistemului de calcul, concurând la dezvoltarea programelor de aplicaţie. Majoritatea sistemelor de operare sunt organizate pe două niveluri: 1) nivelul fizic care este mai apropiat de partea de hardware, 2) nivelul logic este mai apropiat de utilizator Funcţiile unui sistem de operare Pentru a îndeplini rolul de interfaţă între hardware şi utilizatori, un sistem de operare trebuie să fie capabil a îndeplini următoare le funcţii: 1) oferirea posibilităţii de pregătire şi lansare în execuţie a programelor de aplicaţie  în acest scop, un sistem de operare trebuie să dispună de cel puţin următoarele componente: - un editor de texte pentru a introduce şi modifica un program sursă (PS) scris într- un limbaj de programare; - un translator pentru limbajul de programare folosit (asamblor, compilator sau interpretor), care să traducă instrucţiunile programului sursă, într-o formă recunoscută de sistemul de calcul (formă binară) - program obiect sau module obiect (PO); - un editor de legături care să realizeze legătura dintre diverse module obiect, sau să apeleze la module obiect din bibliotecile sistemului, 2) Monoprogramarea Monoprogramarea este o tehnică de gestiune a lucrărilor ce presupune execuţia secvenţială a lucrărilor solicitate a se prelucra pe un sistem de calcul. Caracteristicile acestei tehnici se concretizează în următoarele aspecte: - planificarea lucrărilor se realizează strict secvenţial într-o ordine prestabilită; - fiecare lucrare are la dispoziţie toate resursele sistemului de calcul în momentul execuţiei; - fiecărei lucrări i se asociază un singur proces la un moment dat, astfel că pe durata operaţiilor de intrare/ieşire (care durează mult comparativ cu durata de execuţie a unităţii centrale de prelucrare), unitatea centrală de prelucrare aşteaptă terminarea acestor operaţii, conducând la creşterea duratei de execuţie a lucrărilor. 1

Upload: alintalina-alina

Post on 03-Apr-2018

245 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 1/21

1)Sitemele de operare

Un sistem de operare constă dintr-o colecţie integrată de programe de sistem, ceoferă utilizatorului posibilitatea folosirii eficiente a sistemului de calcul, concurând la

dezvoltarea programelor de aplicaţie.Majoritatea sistemelor de operare sunt organizate pe două niveluri:1) nivelul fizic care este mai apropiat de partea de hardware,2) nivelul logic este mai apropiat de utilizator

Funcţiile unui sistem de operarePentru a îndeplini rolul de interfaţă între hardware şi utilizatori, un sistem de operaretrebuiesă fie capabil a îndeplini următoarele funcţii:1) oferirea posibilităţii de pregătire şi lansare în execuţie a programelor de aplicaţie

 în acest scop, un sistem de operare trebuie să dispună de cel puţin următoarelecomponente:- un editor de texte pentru a introduce şi modifica un program sursă (PS) scris într-unlimbaj de programare;- un translator pentru limbajul de programare folosit (asamblor, compilator sauinterpretor), care să traducă instrucţiunile programului sursă, într-o formărecunoscutăde sistemul de calcul (formă binară) - program obiect sau module obiect (PO);- un editor de legături care să realizeze legătura dintre diverse module obiect, sausă

apeleze la module obiect din bibliotecile sistemului,

2) Monoprogramarea

Monoprogramarea este o tehnică de gestiune a lucrărilor ce presupune execuţiasecvenţialăa lucrărilor solicitate a se prelucra pe un sistem de calcul.Caracteristicile acestei tehnici se concretizează în următoarele aspecte:- planificarea lucrărilor se realizează strict secvenţial într-o ordine prestabilită;- fiecare lucrare are la dispoziţie toate resursele sistemului de calcul în momentul

execuţiei;- fiecărei lucrări i se asociază un singur proces la un moment dat, astfel că pe durataoperaţiilor deintrare/ieşire (care durează mult comparativ cu durata de execuţie a unităţii centralede prelucrare),unitatea centrală de prelucrare aşteaptă terminarea acestor operaţii, conducând lacreşterea durateide execuţie a lucrărilor.

1

Page 2: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 2/21

Obiectivul urmărit în cadrul acestei tehnici îl constituie reducerea timpului mediupetrecutde lucrare în sistem.

3) Multiprogramarea

Multiprogramarea este o tehnică de gestiune a lucrărilor pe sistemele de calcul princaresunt plasate mai multe lucrări simultan în memoria internă iar CPU comută între ele;din punct de vedere conceptual, multiprogramarea implică simultaneitatea a "n"procesoare pe un singur procesor sau existenţa a "n" procesoare virtuale în cadrulunui singur procesor.

Caracteristicile de bază ale acestei tehnici constă în:- existenţa simultană a mai multor lucrări în memoria internă;

- existenţă unui mecanism de trecere de la un program la altul astfel ca randamentulsistemului să fie ridicat;- existenţa unui mecanism de protecţie între lucrări care să permită execuţiafiecăreia, fără afectarea celorlalte lucrări existente în memoria internă;- existenţa unui mecanism pentru gestiunea resurselor fizice şi logice solicitate decătrelucrările în execuţie (echipamente periferice, informaţii, etc.).Obiectivul urmărit în multiprogramare îl constituie maximizarea volumului de lucrăricare trec prin sistem şi minimizarea timpului petrecut de o lucrare în sistem.

STF Shortest proccessing Time First - lucrarea cu cel mai scurt timp de prelucrare este

primaexecutată, urmăreşte minimizarea timpului de trecere prin sistem a lucrărilor cedurează puţin;LTF Longest proccessing Time First - lucrarea cu cel mai lung timp de prelucrare esteprimaexecutată, urmăreşte reducerea timpului total de execuţie a lucrărilor;SMF Smallest Memory requirment First - lucrarea ce necesită cel mai mic spaţiu dememorieeste prima executată;LMF Largest Memory requirment First - lucrarea ce necesită cel mai mare spaţiu dememorie este prima executată;

FIFO First Input First Output - lucrările sunt executate în ordinea lansării în execuţie;LIFO Last Input First Output - lucrările sunt executate în ordinea inversă lansării înexecuţie;Round-Robin sau planificarea circulară, fiecare lucrare având alocată o cuantă de timp(interval de 1-10 ms), după care controlul este comutat la următoarea lucrare.

4) Tehnica Spooling

2

Page 3: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 3/21

2.4. Sistemul spooling (Simultaneous Peripheral Operations On Line)Activitatea de suprapunere a operaţiilor de intrare, prelucrare şi ieşire prinintermediultehnicii spooling, are ca principal obiectiv îmbunătăţirea randamentului sistemului decalcul şi lărgirea gamei de facilităţi oferite utilizatorilor.

 Tehnica dispune de următoarele caracteristici:- disponibilitatea unei memorii externe de capacitate mare şi cu acces direct (discurimagnetice), care asociată cu tehnica multiprogramării permite manipularea unorsuccesiuni continuede operaţii de intrare, ieşire şi alte prelucrări, ameliorând astfel diferenţa dintretimpul de execuţieal operaţiilor de intrare/ieşire şi timpul de execuţie al operaţiilor de către CPU;- asigurarea unei încărcări la întreaga capacitate a dispozitivelor periferice deintrare/ieşire;- esenţialul acestei tehnici constă în organizarea de zone tampon de memorie

(buffere) în carese creează dispozitive periferice de intrare/ieşire virtuale ce permit:* introducerea de lucrări înainte ca acestea să fie executate;* redarea rezultatelor la imprimante în timpul execuţiei altor lucrări;* planificarea execuţiei lucrărilor în ordinea priorităţilor fără a ţine seama de disciplinadeintroducere a acestora în sistem;* schimbarea ordinii de execuţie a lucrărilor prin priorităţi asociate.

5) Sisteme TIME – SHARING (Sisteme cu timp divizat)

 Tehnica de gestiune a lucrărilor time-sharing este caracterizată de utilizareaconcurentă aresurselor unui sistem de calcul de către "n" utilizatori prin intermediul staţiilor delucru (work stations) plasate local sau la distanţă; elementele globale ce definesc aceste sistemesunt tehnicadivizării timpului şi multiplexarea resurselor între mai mulţi utilizatori independenţi;termenul de

multiplexare semnifică partajarea resurselor sistemului astfel încât se creează maimulte procese,fiecare utilizator având senzaţia că sistemul îi aparţine integral (practic, se comutăsau semultiplexează în timp, de la un utilizator la altul).În time-sharing CPU este partajată pe bază de cerere, planificarea execuţiei urmărindobţinerea unui timp de răspuns minim; lucrările nu au priorităţi prestabilite, astfel căacestea trebuie să fie executate într-o manieră dinamică.

3

Page 4: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 4/21

Trăsăturile esenţiale ale acestei tehnici constă în:- protecţia memoriei, prin care programele utilizatorilor trebuie să fie protejate întreelepentru a nu permite accesul neautorizat, fiecare program fiind limitat la spaţiul său dememorie;

- independenţa utilizatorilor, prin care se stabileşte o cuantă de timp pentru fiecareutilizator;dacă programul nu s-a terminat în acest interval de timp, este returnat în memoriaexternă şi plasatla sfârşitul firului de aşteptare, încărcându-se alt program în memoria internă,ş.a.m.d.- alocarea resurselor pentru programele utilizatorilor este efectuată de monitorulrezident înmemoria internă (monitor de time-sharing): spaţiu de memorie internă, timp CPU,tratarea cererilorde întrerupere de la terminale, etc.;

6) Multiprelucrarea

Se poate aprecia că multiprogramarea este un concept software, iar multiprelucrareaun concept hardware.Un sistem de calcul utilizează tehnica multiprelucrării dacă cel puţin două CPUlucrează în paralel; unităţile centrale de prelucrare pot executa instrucţiunile unuisingur program sau pot executa instrucţiuni din programe diferite.Oportunitatea multiprelucrării constă în :- încărcarea partajată a programelor pentru execuţie, fiecare procesor având acces lafirul de aşteptare alcătuit din lucrările solicitate a se executa;

- separarea diverselor funcţii ale sistemului, existând câte un program responsabilpentrufiecare funcţie;- creşterea fiabilităţii sistemului, pentru care există două posibilităţi:- duplexarea sistemelor, prin care una sau mai multe componente hardware suntdublate, unafiind în activitate iar cealaltă va fi activată la apariţia unui defect al primeicomponente; pe duratafuncţionării corecte a procesorului principal, procesorul secundar poate fi folositpentru alte operaţii;

7) Gestiunea resurselor unui sistem de calcul

Componenta hardware a sistemelor de calcul necesită existenţa unui sistem deoperarecare să poată gestiona resursele hardware, concomitent cu asistarea utilizatorului petimpulpregătirii şi lansării în execuţie a lucrărilor sale. Programele de comandă-control alesistemului

4

Page 5: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 5/21

de operare sunt constituite din programe care coordonează şi controlează resurselehardware(memoria, CPU, canalele, dispozitivele periferice) şi informaţiile (programe, date), îndeplinindastfel rolul sistemului de operare de a asigura utilizarea eficientă a resurselor şi de a

rezolvaconflictele apărute în competiţia dintre utilizatori.Pentru gestionarea resurselor programele de comandă-control ale sistemului deoperaretrebuie să realizeze următoarele activităţi:- evidenţierea fiecărei resurse;- adoptarea unei strategii pentru determinarea în orice moment cărui proces să-ialoceresursa, cât din resursă, la ce moment de timp şi cuanta de timp alocată;- să aloce resursele, iar la terminarea activităţii să le dezaloce.1) funcţia de gestiune a memoriei

2) funcţia de gestiune a procesorului3) gestiunea dispozitivelor periferice4) gestiunea informaţiei

8) Gestiunea proceselor

Utilizarea partajată a resurselor unui sistem de calcul este determinată de insuficienţala un moment dat a resurselor necesare execuţiei simultane a proceselor create deutilizatori. Gestiunea procesoarelor are ca scop asigurarea procesoarelor laprocesele create. Fiecărui program de aplicaţie, sistemul de operare îi asociază oserie de procese.

Procesul reprezintă un program în execuţie (program de serviciu, de aplicaţie saurutină asistemului de operare).Procesorul reprezintă componenta capabilă să execute un program (CPU sau canal).Procesele concurente numite şi procese paralele, presupun că la un moment dat,mai multeprograme pot fi urmărite între punctul de începere şi terminare a execuţiei; în acestcaz proceseleinteracţionează în două moduri:- indirect, prin concurarea la aceiaşi resursă a sistemului;- direct, prin utilizarea simultană a aceloraşi resurse.

Mecanismele de sincronizare pentru coordonarea şi comunicarea între proceseincludurmătoarele posibilităţi:1) biţi de atenţiePrin această modalitate, orice resursă partajată de "n" procese va dispune de un bitde atenţie"lock-bit " folosindu-se convenţia:lock-bit = 0 - resursa este disponibilă;

5

Page 6: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 6/21

lock-bit = 1 - resursa este în folosinţă.Înainte ca un proces să aibă acces la un procesor, acesta va verifica starea lock-bit -ului: dacălock-bit = 0 atunci este permis acestui proces să aibă acces la procesor, iar laterminarea execuţiei

va trece lock-bit -ul în starea iniţială 0; dacă pe parcursul execuţiei un alt proces vasolicitaprocesorul, acesta va găsi lock-bit -ul în starea 1, el fiind trecut în starea de aşteptarepână cândlock-bit -ul devine 0.2) mecanisme de aşteptare şi semnalizareInconvenientul sincronizării proceselor prin lock-bit constă în continuarea secvenţei detestare alock-bit -ului pentru comutarea din starea 1 în starea 0;

9) Gestiunea memoriei

Gestiunea memoriei are rolul de a decide cum trebuie organizată informaţia pe celedouă nivele şi când trebuie transferată informaţia între acestea; tehnicile de gestiunea lucrărilor (multiprogramare, multitasking, time-sharing,etc) implică existenţa unormetode eficiente pentru gestiunea memoriei: tehnici de alocare dinamică şi memoriavirtuală

Alocarea memoriei interne se poate realiza:- static când programul este încărcat iniţial în orice zonă liberă din memoria internă.

Înmomentul solicitării unei întreruperi, acesta este transferat în memoria externăurmând a fi reluat după tratarea întreruperii.- dinamic când adresele relative ale instrucţiunilor programului după editarea delegături, nu sunt translatate în adrese fizice în faza de încărcare a programului înmemoria internă, ci doar în momentul execuţiei instrucţiunilor.

10) Memoria VirtualaConceptul unui singur nivel de memorie- denumită memorie virtuală- oferăutilizatoruluiiluzia că memoria internă are o capacitate foarte mare, partea de hardware realizând

automat transferul informaţiei din memoria internă în memoria externă şi invers.Unitatea de transfer între memoria internă şi cea externă este pagina, aceastareprezentând o entitate a memoriei de dimensiune fixă de 512, 1024, 2048 sau 4096kbytes; procesul de deplasare al paginilor între memoria internă şi memoria externăeste referit ca transfer de pagini.O adresă folosită de programator se numeşte adresă virtuală, iar adresa reală undeeste

6

Page 7: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 7/21

memorată se numeşte adresă fizică (dimensiunea spaţiului de adrese virtuale estemult mai maredecât dimensiunea spaţiului de adrese reale).

11) Moduri de organizare a memoriei virtuale

Organizarea la nivel de adresăDacă procesorul referă adresa virtuală ai, aceasta se introduce în registrul de adresevirtuale RV, registrul REZIDENT este resetat (pus pe 0), iar registrul de ACCES setat(pus pe 1), iniţializându-se procesul de translatare:- dacă se găseşte cu ai o intrare în tabela f t, atunci conţinutul găsit se introduce înregistrulde adrese fizice al memoriei interne RM, având loc extragerea din memoria internă ainformaţiei

2) Organizarea la nivel de pagină

Organizarea la nivel de pagină conduce la reducerea necesarului de informaţieconţinut întabela f t deoarece spaţiul de adrese este divizat în blocuri de dimensiune constantănumite pagini.Dimensiunea paginii virtuale coincide cu dimensiunea paginii reale ceea ce implicănetranslatareaadresei cuvântului de pagină. Dispozitivul de translatare construieşte o tabelă apaginilor organizată în memoria internă (MTP) cu informaţii necesare procesului detranslatare din adrese virtuale în adrese fizice.

Organizarea la nivel de segmentOrganizarea la nivel de segment împarte spaţiul de memorie în blocuri de dimensiunevariabilă, numite segmente (pot fi module de program sau anumite structuri de date).Adresa virtuală referită de procesor constă din numele segmentului S şi numelecuvântului din segment C; adresa de memorie unde începe segmentul S reprezintăadresa de bază R, iar prin D se specifică dimensiunea segmentului.

Organizarea la nivel de segment-pagină

Organizarea la nivel de segment-pagină divide adresele virtuale şi adresele fizice însegmente, iar segmentele în pagini, în vederea fructificării avantajelor celor douămetode de organizare:- paginarea, care oferă implementarea simplă şi cel mai sigur mijloc de protecţie ainformaţiei;- segmentarea, care satisface într-o mai mare măsură cerinţele programatorului prindivizarea în segmente, deci ţinând seama de logica programului

7

Page 8: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 8/21

12) Structura Sistemului Unix

O structură standard a unui sistem de fişiere UNIX conţine următorii directori având încomponenţă: /ROOT/ dev fişiere speciale pentru dispozitivele periferice: consola sistem,

terminale, discuri, imprimantă, etc.;/ bin utilitare în formă executabilă: compilatoare, asambloare, instrumentepentru dezvoltarea programelor;/ lib biblioteci pentru limbaje de programare şi utilitare;/ etc programe pentru administrarea sistemului: fişiere cu parole, comenzide iniţializare;/ tmp spaţiu temporar de manevră folosit de programele de sistem;/root / unix nucleul sistemului de operare, direcţionând sistemul către/aixps2/unix.std;/ u director în care se creează Home directory pentru fiecare utilizator;/ local partiţia activă (de aici se face bootarea);

/ lost+found director unde se ataşează fişierele şi directorii găsiţi canefăcând parte din nici un sistem de fişiere;/ usr alte programe necesare utilizatorilor;

13) Nucleul UNIXNucleul sistemului se operare UNIX este acea parte a programelor de comandă şicontrol care activează şi controlează:- alocarea timpului maşină;- spaţiul de memorie;- canalele de comunicaţie către diverse taskuri executate de utilizator la un momentdat

Nucleul este cel chemat sa ascunda complexitatea hardware-ului fata de utilizator.Nucleele Unix detin o mare portabilitate deoarece la portarea lor pe alta platforma enecesara rescrierea a doar 15%-50% dintre surse. Aceasta portabilitate este datoratafaptului ca sistemele Unix au fost primele scrise intr-un limbaj de nivel inalt.

Nucleul sistemului de operare este alcătuit din următoarele componente:- programul supervizor central;- rutine de serviciu pentru o serie de activităţi cum ar fi de exemplu, scrierea înmemorie, gestiunea ceasului sistem, etc.

Principalele funcţii îndeplinite de nucleul sistemului de operare:

- planificarea, coordonarea şi gestionarea execuţiei proceselor;- furnizarea de servicii de sistem cum sunt: tratarea operaţiilor de intrare/ieşire şigestiuneafişierelor;- manipularea operaţiilor dependente de hardware, întreruperile şi funcţiile de sistem;- gestiunea memoriei.

14) Administrarea de nucleu a sistemului de fisiere

8

Page 9: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 9/21

 Toate fisierele de pe HDD sunt controlate de catre nucleu, unitatea de masura insistemul Unix este blocul:

1 Bloc Unix=4KB

Unix-sisteme multi-user din aceasta cauza nucleul este obligat sa stie cine esteproprietarul si ce drepturi are vis-a-vis de un fisier. Fisierele sunt vazute ca o insiruirede octeti. Fiecare utilizator primeste un Home directory. In sistemele Unix sistemul defisiere are forma arborescenta.

15) Administrarea de nucleu a memoriei in sistemele de operarea UNIX

Fiind un sistem de operare multitasking, UNIX ţine evidenţa taskurilor concurente şimenţine controlul diverselor programe care sunt rezidente în RAM la un moment dat,furnizând şiinformaţii privind suficienţa spaţiului de memorie:

- în mod normal, fiecare program este încărca în diverse zone de memorie RAM;- în modul de operare cu divizarea timpului (time-sharing), poate opera fărăevacuareaconţinutului memoriei pe disc; fiecare program se execută în cuanta de timp alocatărămânând înmemorie numai programele a căror execuţie nu s-a încheiat (practic, numai registrelesistemuluisunt divizate între programe, astfel că evacuarea programelor implică de fapt, numaievacuareaconţinutului registrelor);- pe durata execuţiei proceselor, UNIX alocă porţiuni distincte de RAM pentru:

* segmentul de cod (instrucţiunile programului) protejat la scriere;* segmentul de date ce conţine toate datele definite de utilizator: valori, variabile,etc.;* segmentul de stivă care conţine toate informaţiile de sistem necesare menţineriiintacte a unuiproces, atunci când este evacuat din RAM pe disc sau când este încărcat în RAM de pedisc.

16) Planificarea si executarea job-urilor de catrea nucleul Unix

Fiecare utilizator poate avea la un moment dat incarcate in memorie unul sau maimulte job-uri. In afara de acestea mai exista si o serie de procese care ruleaza inbackground. Cpu nu poate executa decat un singur job la un anumit moment, deaceea unit de management a memoriei aflata in nucleu acorda fiecarui proces ocuanta de timp pentru executie, fiecare proces se va executa pe rand, fiecarecastigand procesorul pt acea cuanta repartizata. Daca un proces termina sau rateazasa-si foloseasca cuanta de timp aceasta se va aloca altui proces.

9

Page 10: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 10/21

Sistemele Unix au la baza ca algoritm de planificare a proceselor algoritmul Round-Robin cu prioritati. Exista diferente de implementare la diferite versiuni de Unix dar inprincipiu prioritate primesc procesele cu operatii de intrare/iesire intensive. Cea maimica prioritate o primesc procesele care lucreaza in background , in afara de coadade procese la Cpu mai exista si o serie de cozi organizate pentru dispozitive. Sistemul

are incorporat si un sistem de securitate care are grija ca job-urile sa nu se perturbereciproc.

17) UNIX-SHELLShell - interpreterul de comenzi, reprezintă mecanismul prin care sistemul de operarerealizează interfaţa între utilizator şi sistemul de calcul; interpreterele de comenziexistente pe sistemele de operare Unix sunt:* Bourne Shell (bsh) şi Bourne Again Shell (bash) al cărui producător este firma AT&T;bsh a fost prima variantă a interpreterelor de comenzi;* C Shell (csh) elaborat de firma Sun Microsystem; interpreterul are o sintaxă acomenzilor similară cu cea a limbajului C;

* Korn Shell (ksh) ce se constituie ca o îmbinare a variantelor anterioare.Sistemul de fişiere cuprinde programe utilitare, aplicative şi de gestiune a operaţiilordeintrare/ieşire.

Shell-ul este un program scris in C/C++ proiectat sa ajute utilizatorul sa comunice cunucleul sistemului de operare. Practic este un translator de comenzi in cod masina.Utilizatorul va folosi un limbaj usor de inteles care va fi tradus de shell nucleului.Shell-ul este un translator de comenzi pt nucleu: este un interpretor de comenzi careactioneaza ca o poarta pt cele ~400 comenzi si utilitare cu care este inzestratsistemul.

Dpdv al nucleului Shell-ul este uin program oarecare dar pt utilizator acesta constituielegatura vitala cu sistemul de operare.Shell-ul - mijloace pt scrierea unor programe shellscript. Aceste programe sunt de tipbloc de comenzi care contin o serie de comenzi tip shell care se executa ca si cand arf i introduse de la tastatura..Shell-ul este totodata si un limbaj de programare structurat care permite scriereaunor programe destul de complexe, un program scris in shell poate face acelasi lucruca un program scris in C, dar executia este mai lenta deoarece programul esteinterpretat, aceasta presupunand compilarea si executarea linie cu linie.

18) Caracteristici generale ale unui Shell

Shell-ul este cel care pune un prompt pe ecran la care putem tasta o comanda, dupatasta ENTER Shell-ul preia comanda, o traduce nucleului si este lansata in executie.Shell-ul va astepta pana la terminarea executarii comenzii, dupa care va pune un nouprompt pe ecran, exceptie fac utilitarele mai complexe care au comenzi interneproprii si din care iesirea se face in mod explicit.* Bourne Shell (bsh) şi Bourne Again Shell (bash) al cărui producător este firma AT&T;bsh a fost prima variantă a interpreterelor de comenzi;

10

Page 11: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 11/21

* C Shell (csh) elaborat de firma Sun Microsystem; interpreterul are o sintaxă acomenzilor similară cu cea a limbajului C;* Korn Shell (ksh) ce se constituie ca o îmbinare a variantelor anterioare.Sistemul de fişiere cuprinde programe utilitare, aplicative şi de gestiune a operaţiilorde

intrare/ieşire.19) Organizarea fisierelor si directoarelor in sistemul UNIX

Fisierul este structura fundamentala pt pastrarea informatiilor pe mediile de stocaretoate articolelel prezente intr-un sistem Unix sunt referite in termen de fisiere.In intrarea de director la sistemele Unix se inregistreaza informatie simpla ce secompune din "Inode number" si numele fisier.Numele de fisier se pot edita %, !, ?, [ ]numele de fisier la unix sunt CASE SENSITIVERestul caracteristicilor se inreg in tabela Inode-List.

20) Tipuri de fisiere UNIX

Sistemul de operare UNIX System V lucrează cu următoarele tipuri de fişiere:- fişiere obişnuiteAceste fişiere sunt constituite dintr-un şir de bytes (memoraţi de obicei pe disc)terminat cu un marker de sfârşit de fişier (EOF). Şirul este divizat în linii de textterminate cu caracterul "new line" (CR). Restricţiile de lungime, format, utilizat;- fişiere specialeFişiere speciale se constituie ca o interfaţă între programele utilizator şi rutinelenucleului sistemului de operare, ce lucrează direct cu dispozitivele periferice de

intrare/ieşire. Astfel, utilizatorul va trata perifericele de intrare/ieşire ca fişiere,activarea unui astfel de fişier coincizând cu activarea driverului dispozitivului perifericasociat. La rândul lor, fişiere speciale sunt de 3 categorii:* fişiere speciale de tip caracter sunt fişierele care transferă un byte printr-ooperaţie deintrare/ieşire;* fişiere speciale de tip bloc sunt fişierele care transferă un bloc printr-o operaţie deintrare/ieşire;* fişiere speciale de tip pipe sunt fişiere ce constituie canale de comunicaţie între 2procese;comunicaţia între două procese se poate realiza în memorie prin fişiere pipe

obişnuite, sau pe disc prin aşa zisele fişiere pipe (named pipe).-cataloage de fişiere (directori)Directorii sunt cataloage de fişiere ce conţin numele fişierelor componente şi adresafizică pe unitate simbolizată prin:. (un singur punct) identifică numele directorului propriu, numit Home directory (2bytes);.. (două puncte) identifică numele directorului părinte ân care fişierul cu un anumitindex

11

Page 12: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 12/21

21) Nivele de securitate in UNIX

Sistemele UNIX sunt prevazute cu 4 nivele de securitate pt a asigura maximum desecuritate.

a) primul este nivelul de securitate sistem - se refera la procedurile de login si logoutpe care utilizatorul trebuie sa le parcurga pt a deschide/inchide o sesiune de lucru peUnix.Fiecare utiliztor are o parola si un nume pe care S.O. le va stoca intr-o baza dedate securizata. Tot la acest nivel intra si contul de R00T sau administrator.Administratorul de sistem are la acest nivel si o rezerva prin care poate acorda unorutilizatori drepturi speciale.b) Nivelul de securitate fisier - face referire la permisiunile care se aloca utilizatorilor,vis-a-vis de utilizarea unui anumit fisier.c) responsabilitate - se refera la modul in care fiecare actiune aparuta intr-un sistemUnix este atribuita utilizatorului real pt aceasta, sist furnizeaza o marca de nestersnumita LUID (Login user id). Cu aj ascestei marci, adm de sistem poate urmari istoria

unei intregi activitati petrecute in calculator.d) verificare - la acest nivel se face un pas inainte a.i. se pot urmari nu numaitentativele reusite de a utiliza un proces cat si tentativele nereusite. Cu prg deresponsabilitate si verificare pus in functiune , un administrator de sistem poate aveao imagine completa a ceea ce s-a intamplat in calc in fiecare secunda.

22) Mediul Shell-UNIX

Mediul Shell - parametrii care lucreaza la crearea acestui mediu sunt reprez detotalitatea variabilelor existente in shell. Variabil este numele unei locatii temporarede memorie in care este depusa o anumita informatie. Sistemele UNIX at cand le

luam contin un set standard de variabile, utilizatorii pot sa-si creeze propriilevariabile. Folosirea variabilelor ofera o mai mare flexibilitate si control utilizatorului.EX: HOME, LOGIN, MAIL, TERM, TZ, PS1. Toate variabilele care sunt necesare in mod curent pot fi puse in fisierele deinitializare a.i. sa se seteze automat la deschiderea unei sesiuni de lucru.

23) Lucrul cu comenzi in UNIXLinia de pe ecran pe care o introducem de la tastatura si care se va incheia prinapasarea ENTER se numeste linie de comanda.Sintaxa generala este $ comanda [optiuni] [argumente] Toate comenzile din Unix au o comportare implicita, adica o comanda lansata fara

optiuni si argumente trebuie sa faca ceva. Exista comenzi care pot sa aiba numaioptiuni sau numai argumente, dar exista si comenzi singure. De regula, in Unix,comenzile se scriu cu litere mici, pt a nu fi confundate cu variabile. In UNIX exista ovariabila numita PATH in care sunt inscrise toate directoarele prin care shell-ul vacauta o comanda.EX: $dateOptiunile schimba comportarea implicita a comenzii, imbunatatind raspunsul. Suntrecunoscute prin faptul ca toate au in fata -.

12

Page 13: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 13/21

Argumentele pot si siruri de nr, siruri alfanumerice, asupra carora va actionacomanda.

24) Comenzi interne Shell

25) Analiza unei linii de comanda shellPe masura ce se introduce de la tastatura comanda, shell-ul o preia si o prelucreaza.Aceasta spargere a liniei de comanda in partile constituente este numita si Parsing.Ex: $ls -l my_file adica comanda (ls) optiune (-l) si argument (my_file)In Unix, separatorul folosit in limite de comanda se gaseste intr-o variabila numita IFScare de regula este fixata pe Space sau Tab. Acest separator poate fi setat la dorintautilizatorul.Inainte de a aplica regulile de separare a parametrilor shell-ul aplica mai intai regulileghilimelelor, substituirea de comanda, apoi genereaza numele de fisiere si in finalexecuta expandarea variabilelor si determina intrarile si iesirile comenzilor. In Unix

exista 3 feluri de ghilimele si toate se folosesc pereche : " ", ' ', \ \.

26) Redirectari si conducte in sistemul de operare UNIXRedirectarea intrarii se poate realiza spre orice:Ex: $cat<joe s-a redirectat comanda cat catre fisierul joePentru a folosi redirectarea intrarii in shell-scripturi va trebui sa urmarim sintaxa, (ex:$cat <<marcaj......marcaj EOF) vor fi executate job-urile dintre marcaje, se emite EOFsi se continua executarea.Redirectarea iesiriiIesirea standard este display-ul. Ea poate fi redirectata practic spre orice dispozitiv,dar de regula, redirectarea se face catre fisier.

Ex: $ ls >x Iesirea comenzii va fi inscrisa in fisierul x, cu conditia sa avem permisiunide scriere in el. Daca fisierul exista deja, continutul lui va fi inlocuit de noul continut.

27) Folosirea semnelor ? *; Expresii [ ] UNIX? poate inlocui un singur caracter in timp ce * poate inlocui mai multe caractere.Uneori dorim sa fim mai restrictivi iar cele 2 semne nu ne pot permite acest lucru.$ls job[123] job1 job2 job3$ls job[1-3] job1 job2 job3$ls job[!12] orice care are terminatie o cifra fara 1 si 2

28) Expandarea variabilelorInlocuirea variabilelor prin valoarea ei cu semnul $: y=$xExpresii:$ {variabila: -cuvant} Aceasta forma indica daca variabila nu a fost definita sau estenula, expresia va lua valoarea cuvant; daca variabila este definita si nenula atunciexpresia va fi inlocuita de valoarea variabilei.

13

Page 14: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 14/21

$ {variabila: =cuvant} Este aproape identica cu exceptia cazului in care variabila estenula sau nedefinita prin inlocuirea expresiei prin cuvant se va seta si variabila lavaloarea cuvant.$ {variabila: +cuvant} Aceasta forma este inversa primei forme adica daca variabilaeste setata si nenula se va inlocui expresia prin cuvant.

29) Substituirea comenziiAceasta substituire a comenzii este o facilitate puternica folosita de UNIX si prinintermediul ei iesirea unei comenzi poate deveni intrare intr-o variabila sau intrareintr-o linie de text a altei comenzi.EX: x='ls y'$ comanda param1 param2 'comanda1'Procesul de analiza gramaticala (Parsing) a liniei de comanda nu este recursiv. Shell-ul nu va parcurge linia de comanda si nu va incerca in continuare expandareaelementelor care o compun.

30) Transferarea parametrilor comenzilor UNIXDaca comanda provine de la un program C/C++ atunci acesti parametri vor fitransferati prin argum1. daca comanda provine dintr-un shellscript atunci parametriicomenzii se vor transfera prin parametrii $1, $2....In sistemele UNIX atunci cand se lanseaza exec unei comenzi Shell-ul isi face mai intaio copie in care va rula procesul, aceasta copie este identica cu exceptia ca shell-ulstie care e copia parinte si care e copia fiu. Atunci cand se creaza copia fiu, ea vamosteni ea va mosteni si toate variabilele parintelui, in acest subshell cu ajutoruloperatiei de execing se va executa noua comanda. O variabila setata in shell-ulparinte va fi transferata automat fiului prin operatia forking.

31) Partitiile de disc UNIXS.O. Unix opereaza cu discuri virtuale montate in sistemul de fisier. Montarea = unproces de anexare a unui dispozitiv fizic in sistemul de fisier.Partitionarea presupune impartirea HDD in mai multe partitii vazute de S.O. ca nistediscuri virtuale. Salvarea informatiei se face in 2 feluri : fisier cu fisier sau pista cupista. Prima este mai lenta deoarece fisierele pot fi fragmentate dar este maiselectiva. Cea de a doua este mai rapida dar mai putin selectiva. In practica semixeaza cele 2 in timp ce fisierele utilizatorilor se salveaza fisier cu fisier.Avantajul partitionarii este ca putem salva selectiv si in caz de accident se pierd maiputine informatii.

32) Permisiunile de fisier UNIXReprezinta inima sistemului de securitate in UNIX. Arata ce drepturi pot aveaproprietarul, grupul de utilizatori al proprietarului si restul utilizatorilor fata de unfisier. Atunci cand administratorul de sistem creeaza un cont de utilizator, acesta vaprimi un id de utilizator si un id de grup care vor exista pe toata durata existenteicontului. Daca nu se face o specificatie anume --> utilizatorul ID other.

14

Page 15: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 15/21

Root-user ul are un id Sys. Toate fisierele si directoarele care vor fi create de unanumit utilizator vor fi identificate de id-ul de utiliz si de id-ul de grup respectiv. Pt avizualiza permisiunile se da comanda $ls -l.-/---/---/---/Primul grup - tipul fisierului

al doilea grup permisiunile pt proprietaral treilea grup permisiunile pt grupal 4 lea grup permisiunile pt restul utilizatorilorComanda cu care putem seta permisiunile este chmod$chmod pentrucine operator permisiunile nume_fisierex: -/rw-/r--/r--/ nume

chmod a=rwx numechmod o -r numechmod o +r nume

Modul absolut: campurilor pt permisiuni li se acorda o reprezentare octala

33) Procesul INIT

La pornirea calculatorului exista in Bios un soft care citeste tabela de partitie sistabileste partitia activare. Se duce in partitia UNIX-ului de unde se citeste primulblock, numit bloc de boot pe care il si lanseaza. In acest bloc se gaseste un programcare va incarca nucleul sist de op. In funct de versiunea de UNIX nucleul va incarca inzona de utilizatori o serie de procese cel mai important este procesul cu Id-ul nr1numit procesul INIT, deoarece este tatal tuturor proceselor care se vor incarca insistem. Pt ca init sa stie ce procese sa incarce el va citi din /etc o tabelainittab.Aceasta este cea mai importanta din sistem deoarece ea contine viitoareaconfigurare a sistemului, procesul initse in ac tabela pt a sti in ce stare sa se puna.

Starea=configurarea soft a intregului sistem si determina ce procese urmeaza a fiincarcate. Init se poate afla intr-o singura stare la un moment dat:starea:-boot-S - single user-0 = shutdown-1 = singleuser cu taskuri in bkgd-2 = multiuser (fara retea)-3 = multiuser (cu retea)-4 = definita de utilizator-5 = shutdown

-6 = shutdown imediatInittab are 4 campuri: eticheta, starile, actiune, numele comenzii.

34)Monitorizarea proceselor.Comenzile PS, KILL, WHO

Monitorizarea proceselor este necesara atunci cand lansam procese pe termen lungsau atunci cand suntem admin de sistem.

15

Page 16: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 16/21

Shell-ul ne pune la dispozitie o serie de comenzi unele imediate si unele complexe.Fiecare proces in Unix primeste un ID atunci cand e lansat in executie$$ returneaza Id-ul de shell$! ne arata Id-ul ultimului program lasnat in executie in backgroundUn admin de sistem poate avea probleme cu programe care au luat-o razna, care

genereaza prea multe procese fiu, care abuzeaza de spatiul de memorie si HDD sichiar programe care refuza sa moara.Comanda ps (process status)Data in forma implicita comanda ne afiseaza id-ul procesului, terminalul de la care afost lansat, de cat timp ruleaza si numele comenzii.$ps -f (full) apar urmatoarele campuri: F si S (campuri de stare a comenzii), C (campfara semnificatie pt utilizator), PRI (prioritatea proceselor), NI (influenteaza prioritateadar nu semnificativ), ADDR1 si ADDR2 (contin adresa primei pagini a procesului), SZ(dimensiunea procesului in octeti, WCHAN (adresa la care un proces a fost intrerupt), TTY (terminalul de la care s-a lansat comanda), TIME (de cat timp ruleaza).Pentru a vizualiza informatii despre toate procesele din sistem avem optiunile -ef; -el;

-e.Comanda killPentru a trece peste faza vizualizarii proceselor si pt a putea avea control asupraacestora, Unix-u ne pune la dispozitie o serie de semnale. Semnalele sunt adevarateintreruperi soft, functia lor este ca atunci cand dorim intreruperea cursului rularii unuproces care merge normal sau anormal se va lansa un astfel de semnal care lanseazao subrutina de intrerupere care opreste procesul si reia controlul si care de regulasemnaleaza o eroare dupa care aborteaza procesul.$kill -9 PID. Terminarea unui proces parinte este importanta dar conteaza si modul, daca unproces face parte din o serie de procese este important ca omorarea sa se faca de jos

in sus. Semnalarea parintelui e importanta dar insuficienta. Atunci cand comanda killsemnaleaza un proces parinte acesta va lansa catre fii sai o serie de comenzi deinchidere. Exista posibilitatea ca atunci cand aceste semnale ajung la fii acesta safifost deja ucis de parinte, comanda kill se autoaborteaza lasand perspectiva ca uniidintre fii la care nu au trimis semnale sa ramana zombie.Comanda whoLa anumite momente de timp s-ar putea sa fim mai interesati de cine ruleaza uncalculator si nu ce se ruleaza. In timp ce comanda ps era un instantaneu dpdv alnucleului, comanda who este un instantaneu dpdv al user-ului, cine este logged-in.$who -HuAre urmatoarele campuri: NAME, LINE, TIME, IDLE, PID

35) Arhitectura procesorului INTEL; Procesorul 80286Procesorul 80286 a introdus modul de lucru protejat, lucra mai intai in modul real(specific 8086)Modul protejat - in acest mod continutul registrelor selector capata o alta utilizare, eledevenind un index intr-o tabela de descriptori. Un descriptor=o zona contigua dememorie cu o marime de 8 octeti. Toti descriptorii unei aplicatii se gasesc in tabelaLDT (local descriptor table). GDT (global descriptor table) - este intretinuta de S.O. pt

16

Page 17: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 17/21

a-si genera propriul spatiu de adresa si pt a permite aplicatiilor sa poata accesa ozona comuna de memorie S.O. poate plasa LDT-ul unei aplicatii si GDT-ul oriunde inmemorie; pt a sti adresele de unde incep aceste tabele microproc pune la dispozitie 2registre LDTR si GDTR. Scrierea celor 2 registri este o operatie proivelegiata pe carenu are voie sa o faca decat S.O.

De retinut:-modul protejat introduce notiunea de protectie a memoriei, permite existenta a maimultor task-uri in Ram fara sa se perturbe.-se introduce accesul indirect la memorie prin intermediul acestor descriptori. Sepastreaza notiunea de segmente, putand fi plasate oriunde in memorie chiardiscontinuu.

36) Procesorul 80386S-a dezvoltat din 80286 pe mai multe cai:- intern a crescut de la 16 la 32 biti- segmentele au o dimensiune pana la 4gb

- procesorul 386 ofera proiectantilor de S.O. posbilitatea de a crea o mem virtualacompleta- un sistem de calcul cu 386 corect echipat poate rula simultan aplicatii 8086, 80286si aplicatii pe 32 biti- modul virtual 8086 impreuna cu bitmap-ul de permisiune i/o ofera o compatibilitatede 100% cu aplicatiile DOS.Se pastreaza tehnica adresarii memoriei ca la 80286, in cazul in care se permite lucrupe 32 biti 386 poate realiza o schema completa de memorie virtuala paginata. Candse lucreaza pe 32 biti adresa citita din descriptor capata inca un nivel de interpretare.Pentru lucrul in mod 8086 se folosesc bitii 0-15Pentrul lucrul in modul 286 la cei 16 biti de mai sus se adauga inca 8 biti

37) Windows: Memoria VirtualaMem virtuala = RAM+ un fisier SWAP care apartine Windows-ului si care e scris peHDD. Transferul de informatie intre Ram si fisierul swap se face in segmente. Daca oaplicatie incearca sa acceseze un segment care nu a fost adus in ram, microprocseteaza bit-ul not present din descriptorul aplicatiei, iar sistemul de operare vagenera o intrerupere care intrerupe aplicatia si incarca de pe hdd segmentul accesatdupa aceasta aplicatia se reporneste si isi continua activitatea ca si cum nu s-ar fiintamplat nimic.La pornirea sistemului Windowsul comuta procesorul in modul protejat, dupa carepoate seta modul paginat. O data setata paginarea, aceasta va ramane asa pana la

inchiderea sistemului. La momentul lucrului paginat adresa din descriptor la care seadauga deplasarea din prog de aplicatie.Adresa liniara pe 32biti:Primii 10 biti ai adresei liniare constituie un index intr-o tabela director pt tabelepaginii. Urmatorii 10biti sunt utilizati ca un index intr-o tabela pt pagini, cu ajutorulacestui index se extrage adresa de baza a paginii. Ultimii 12 biti = deplasarea inpagina data de catre program. Adunarea celor 2 adrese are ca rezultat adresa fizicape 32biti.

17

Page 18: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 18/21

38) Windows; Protectia memorieiOrice s.o. trebuie sa ofere caracteristici de protectie: pt datele utilizator, programelorcare ruleaza in modul curent si a dispoz fizice impotriva acceselor neautorizate. Deregula cand o aplicatie incearca sa adresez un spatiu de memorie dincolo de

structurile alocate atunci microprocesorul genereaza o intrerupere iar S.O.prelucreaza o serie de informatii sensibile date de intrerupere.a) s.o. este cel care seteaza tabelele de paginareb) r/w protejeaza paginile din mem fata de scrierea neautorizatac) u/s asigura protectia zonei de mem alocate in sistemO aplicatie care apeleaza o functie care incarca multi parametrii poate duce ladepasirea spatiului alocat. In aceasta situatie S.O dupa ce face analiza adauga noipagini de memori la map-ul aplicatiei. Cazul in care incearca sa adreseze peste spatiude memorie va cancela aplicatia in cauza.

39) Windows; Protectia Sistemului de OperareProtectia este necesar sa protejam si s.o. insusi cand spunem acest lucru adicaimpiedicarea aplicatiilor de a executa unele instructiuni speciale ale microproc:comutarea de task-uri, intreruperi si solicitari de gestiune de sistem.Proc INTEL - 4 nivele de securitate. S.O. Windows foloseste decat 2 nivele adicanivelul 0 si 3. Kernelul lucreaza pe 0, iar aplicatiile utilizatorului pe 3. Un software carelucreaza pe nivel 0 poate seta tabelele proprii, poate comuta modurile procesorului saporneasca/opreasca procesorul etc.In practica de multe ori aplicatiile trebuie sa apeleze servicii de sistem si deci sacomute microproc in modurile de privilegiu. In aceasta situatie S.O. trebuie sa aiba unmecanism care asigura controlat comutarea procesorului intre nivelele de privilegiu.

trecerea de pe un nivel la altul se face cu ajutorul portilor care sunt de 4 tipuri: call,intterupt, trap, task.

40) Windows; Protectia Dispoz PerifericeSolicitarea de protectie a dispoz perif consta in partajarea a unei resurse sauprevenirea unor aplicatii sa foloseasca o resursa nepartajabila. Controlul hard realizatde aplicatii atunci cand efect op de intrare/iesire se face prin 4 porti si prin solicitarilede intrerupere IRQ. Adresele de port oferite de microproc atunci cand se lucreaza peun octet sunt in nr de 65536. Irq pt fiecare dispoz sunt unice. Acces de nivel inalt - seutilizeaza prin intermediul folosirii driverelor de dispozitiv. Driverele sunt module softcare controleaza dispoz periferice. O aplicatie care doreste sa acceseze un anume

dispozitiv trebuie sa faca o cerere la s.o. daca este acceptata atunci aplicatia poateda cerere de scriere/citire. La sfarsit aplicatia va inchide canalul. Toate aceste cererisunt definite ca parte a Windows API.

41)Masina Virtuala

42) Windows; Modele Multitasking

18

Page 19: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 19/21

Win 3.1 punea la baza planificarii proceselor o schema numita multitaskingcooperativ. Incepand cu Win 95 ambele ramuri (chicago si cairo) vor utilizaplanificarea proceselor pt aplicatiile win32 un algoritm de planificare cu intreruperi:event driven. Aplicatiile emit o serie de mesaje pt a informa s.o. despre anumiteevenimente care apar. Ex: un click de mouse=eveniment. La sistemele 3.1 exista o

singura coada de mesaje in aceasta situatie un task care devia de la lucrul normalputea sa nu mai preia din coada mesaje rezulta blocarea sistemului.INcepand cu win 95 sistemul de operare organizeaza tot mai multe cozi de mesajeprivate fiecare apartinand unei aplicatii. Daca o coada de mesaje se blocheaza nu vaexista nicio problema pt celelalte aplicatii.In modul multitasking planificatorul poate intrerupe un proces in orice moment sipoate sa ia procesorul si sa il acorde altui proces cu prioritate mai mare. Acest lucrue mare avantaj deoarece in modul cooperativ exita riscul ca unele evenimente sa fieratate.In sistemele cooperative exista obiceiul de a se inmana procesorul planificatorului. Insistemele prioritare nivelul de prioritate al proceselor e recalculat periodic de

planificator.

43) Windows; Suport APIWindowsul pune la dispozitie API-urile prin Kernel, User, GDI.Kernel=incorporeaza majoritatea functiilor de sistem:alocarea memoriei, gestiuneaproceselor etc.User=incorporeaza toate functiile legate de ferestre crearea si mutarea lor, manuireamesajelor, casete de dialog.GDI= graphic device interface - toate functiile legate de grafica adica tot ce inseamnatrasare de linii, scalare font-uri, culori si facilitati de tiparire.Un program Win poate apela aceste functii API printr-un singur nume care va fi

rezolvata de S.O. abia la momentul executiei. Aceasta tehnica se numeste Dynamiclinking. Cele 3 module sunt exmple DLL.

44) Windows; legare dinamicaAtunci cand compilam un program editorul de legaturi parcurgea o serie in programulexecutabil: editarea de legaturi si incarcarea programului preluat de s.o.Editorul de legaturi mai parcurge o serie de biblioteci dar el parcurge si niste biblioteccare contin numai referinte spre functii care vor fi rezolvate la mom incarcariiprogramului si lansarii lui.Aceste biblioteci care contin doar referinte se numesc biblioteci de import. O astfel dedefinire exista pt fiecare functie API din Windows. Editorul de legaturi scaneaza

biblioteca de import si include un punct de intrare si un nume.Oricare module care satisfac aceste referinte se numesc biblioteci legate dinamic. Toate aceste biblioteci declara un set de puncte de intrare care satisfac referintele incauza. Windows-ul este o colectie de DLL-uri. Spre exemplu in Win toate driverele sesistem sunt DLL-uri si declara un set standard de astfel de puncte de intrare. Atuncicand dorim sa schimbam o imprimanta nu este necesar recompilarea sirelinkeditarea sistemului.

19

Page 20: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 20/21

45) Gestionarea memorieiPe nivele are loc: la nivel de s.o. si la nivel program aplicatieSpatiul de adresa privat o are fiecare aplicatie win32. Zona privata nu este totalprotejata in ea putand sa faca adresari si alte aplicatii. Aplicatia poate sa-si rezervememorie pt perioada care ruleaza pt incarcarea DLL-urilor de sistem, in acest fel

aplicatia poate sa adreseze.In aceasta zona se pot rezerva spatii de memorie pe care le pot partaja mai multeaplicatii. Solicitarile de memorie ale unei aplicatii se pot face fie in mod explicit sauimplicit atunci cand aplicatia porneste o noua resursa a caror structuri de date solicitamemorie.Alocarea "heap" - o zona de mem heap inseamna o zona rezervata pt a satisfacenecesitatile de mem dinamice la momentul rularii unei aplicatii.In win 3.1:Heap-urile locale erau rezervate in zona privata a aplicatieiheap-urile globale erau intr-o zona comuna de mem pt toate aplicatiile.La sistemele Win Ramura Chicago aplicatiile win32 utiliz 1 heap si nu mai sunt

necesare vechile selectoare. Pt un programator win32 API a adaugat un set nou defunctii pt alocarea de memorie dinamica.Seturi de functii pt gestionarea memoriei:- in ramura Chicago se furnizeaza functii care permit crearea de heap-uri private-o aplicatie poate crea oricate astfel de heap-uri doreste si poate indruma S.O. sautilizeze un anumit heap atunci cand are nevoie-la astfel de heap-uri private pot avea acces si alte aplicatii creandu-se posibilitateade partajare a memoriei. In aceste heap-uri private aplicatia poate crea structuri dedate cu o config asemanatoare.

46) Windows; Planificarea masinilor virtuale

Planificarea proceselor in Win e strans legata de gestionarea masinilor virtuale. Win95 a introdus un nou concept acela de fir (thread) . Firul este unit de baza inplanificarea WindowsUn fir:-un mod de a executa un proces- poate fi creat de aplicatii win32 si VxD- un fir are o stiva si un context de executie proprii-poate fi unul din ma multe fire create de parinteFirele sunt procese de categ usoara, sunt usor de creat pt ca ele partajeaza zona dememorie a parintelui.In Win RC exista posibilitatea ca proc principal sa creeze un fir care in mod separat sa

urmareasca butonul cancel permitand intreruperea incarcarii. Serviciile fir suntdisponibile numai pt aplicatiile pe 32 biti si VxD sub sistemele WIN RC.Aplicatiile pe 16biti nu pot apela Api-urile din fir. Se conserva astfel aplicatiile pe16biti modul multitasking cooperativ.

47) Planificatori WindowsExista 2 planificatori ai gestionarii masinii virtuale:-primal si se ocupa cu alocarea de prioratati de fir

20

Page 21: Sisteme Operare Vasilescu

7/28/2019 Sisteme Operare Vasilescu

http://slidepdf.com/reader/full/sisteme-operare-vasilescu 21/21

-secundar acorda un anumit procent din timpul procesoruluiIn calculator vor exista procese suspendate, acestea neprimind timp de exec dinpartea procesorului.Planificatorul primar examineaza fiecare fir in parte dupa care ii acorda un nivel deprioritate de la 0 - 31. Planificatorul primar suspenda toate firele care nu au nivel

maxim de prioritate. Planificatorul de timp aloca proceselor cuanta de timp necesara,in functie de nivelul de prioritate primit si in functie de cunostintele despre starea VM.Firele ruleaza implicit planificatorul primar va reevalua prioritatile la fiecare20milisecunde.

48) Planificarea in MV de sistemAtunci cand avem aplicatii de fire multiple poate aparea situatia in care sa avem mamulte fire cu aceeasi prioritate, planificatorul cuantei de timp utilizand algoritmulRound Robin primind o cuanta de timp, iar daca expira trec la coada. Daca un procesrateaza sa-si foloseasca cuanta el va fi trimis la coada urmatorului proces.Exista 2 influente diferite care controleaza planificatorul:

a) propriul algoritm intern prin care incearca sa utilizeze un mediu multitaskingechitabil. Fiecare fir sa primeasca suficient timp pt a-si rezolva problemele dar nuprea mult ca sa blocheze celelalte proceseb) apelurile directe ale serviciilor de sistem de VxDPlanificatorul utilizeaza 3 tehnici-modificarea dinamica a prioritatilor-decaderea in timp- succesiunea prioritatilor

49) Fire si UAEexista situatii in care aplicatii din sistem pot cadea in timpul lor, Windows urmareste 2

aspecte:1) manuirea eleganta a progr care a gresit, acordarea catre utilizator a permisiunii dea inchide aplicatia du un minim de pierderi si agitatie.2) dupa caderea aplicatiei - cunosterea ssitemuluiAplicatiile cad prin erori de adresare, o adresa sub 4mb inseamna pt Windows oviolare de protectie.RC abordeaza problema in 2 moduri in primul tratarea erorii se va executa printr-unfir separat si nu in cadrul aplicatiei care e in deruta oricum. Inchiderea unei aplicatiiinseamna si inchiderea tuturor resurselor utilizate. Pt aceasta S.O. va parcurge o seriede tabele unde va gasi id-ul firului cancelat. Curatirea pt aplicatiile win32 se faceimediat daca exista aplicatii pe 16 biti active atunci resursele vor trebui lasate

disponibilizate.