SO Notiuni

5
1.Un sistem de operare reprezinta un set de programe care asigura gestionarea resurselor unui sistem de calcul implementand algoritmi destinati sa maximizeze performantele si realizeaza o interfata intre uilizator si sistemul de calcul, extinzand dar totusi si simplificand setul de operatii disponibile. 2. Job spooling este tehnica de inmagazinare pe benzi sau disk-uri. 3. Functiile unui sistem de operare sunt: interfata cu utilizatorul, gestiunea fisierelor, gestiunea perifericelor, gestiunea memoriei, gestiunea proceselor, tratarea erorilor, gestiunea sistemului. 4. Dupa accesul la memorie SO pot fi: UMA(uniform access memory), NUMA(non uniform access memory), NORMA(no remote memory access). 5.Tipurile de nucleu sunt: monolitic, modular, extensibil, multinivel, micronucleu(micro-kernel = in care SO este alcatuit din mai multe procese fiecare asigurand mai multe servicii). 6. Tas k -urile pot fi: sporadice, periodice si aperiodice. 7. Dupa importanta deadline -ului SO sunt: hard(actiunea unui task ce depaseste deadline-ul este 0 sau negativ), soft(actiunea unui task ce depaseste deadline-ul este indiferenta). 8. Drivere -le transforma actiunile de I/O ale utilizatorului in cereri specifice componentei hardware. 9. Un sistem de operare contine doua parti: de control si servicii. 10. Procesul este un program in executie. 11. Executia unui proces se poate face in 2 moduri: utilizator (procesele au acces numai la propria zona de cod, date si stiva utilizator), nucleu(procesul contine instructiuni privilegiate si poate avea acces la structuri de date ale nucleului). 12. Crearea proceselor se poate face: la initializarea sistemului(reboot), la executia unui apel de functie pentru crearea unui proces(fork), la cererea utilizatorului de a crea un nou proces, la initializarea unui job. 13. Terminarea proceselor este: normala(terminarea programului - voluntar), eroare(terminare cu eroare - voluntar), fatal error(divide by 0), core dump(involuntar), terminata de un alt proces(involuntar). 14. Process Control Block furnizeaza date cu privire la identificarea procesului, informatiile de stare(registri vizibili utilizatorului), informatiile de control al procesului. 15. Tabela regiunilor per proces poate intra in tabela proceselor, in zona „u” sau intr-o zona de memorie alocata acestui scop. 16. Contextul unui proces consta din: contextul utilizator, contextul registrelor, contextul nivel nucleu. 17. Thread -ul este unul sau mai multe subtask-uri in cadrul task-ului executat de un proces. 18. Zona „u” este caracterizata de: un pointer la intrarea in tabela proceselor corespunzatoare procesului la care este atasata zona u, identificatorul utilizatorului real si efectiv, timpii de executie al procesului si descendentilor sai in modul utilizator si nucleu, modul de reactie a procesului la semnale, identificatorul terminalului de control, eroarea aparuta in timpul apelului unei reactii de sistem, valoare returnata de o functie de sistem, parametrii de I/O, directorul curent, tabela descriptorilor de fisiere utilizator(TDFU), dimensiunea limitata a procesului si a fisierelor, masca pentru drepturile de acces la fisierele create. 19. Tabela proceselor contine urmatoarele campuri: starea procesului, localizarea procesului in memoria interna sau in memorie secundara folosita pentru swapping, dimensiunea procesului, identificatorii atasati utilizatorului si grupului sau, identificatorul procesului, descriptorul evenimentului care a produs trecerea procesului in starea de asteptare, parametrii de planificare pentru obtinerea procesului, semnale trimise procesului inca netratate, diferiti timpi care indica timpul de executie in mod utilizator si in mod nucleu pentru calculul prioritatii procesului. 20. Operatiile care se pot excuta asupra thread-urilor sunt: spawn, block, unblock,finish. 21. Zombie reprezinta un proces terminat dar care totusi se mai gaseste in tabela de procese. 22. La o schimbare de proces se executa pasii: decizia daca trebuie sa se execute o schimbare de context, salvarea contextului vechiului proces, alegerea noului proces de catre planificatorul de procese, restaurarea contextului noului proces. 23. Relatii intre thread-uri si procese: 1 la 1 (fiecare proces are un singur thread), n la 1 (fiecare proces are mai multe thread-uri), 1 la n (poate comuta intre masini diferite pentru a realiza anumite operatii cheie), n la n (poate comuta intre domenii diferite 29. In proiectarea semafoarelor trebuie avute in vedere urmatoarele: sectiunile critice trebuie incadrate de P si V ceea ce uneori este mai greu de urmarit, un proces nu poate fi distrus in sectiunea critica, verificarea corectitudinii programelor nu este usoara, gestiunea cozii poate duce la aparitia unor probleme de proiectare. 30.Semafoare private : numai un singur proces Q poate aplica P si V asupra lui, celelalte procese putand executa numai V. Valoarea initiala a unui semafor privat este 0. 33. Starile unui proces in cazul sincronizarii folosind bariere: toate procesele mai putin unul ajung la bariera si sunt blocate, ultimul proces ajunge la bariera, toate procesele isi continua executia mai departe (dezavantaj – se consuma timp CPU util dar nu este echilibrata incarcarea proceselor). 34. Blocaj -ul este situatia in care o resursa ceruta de un proces este mentinuta in starea ocupat de catre alt proces aflat la randul lui in asteptarea eliberarii unei resurse.

description

sisteme de operare notiuni

Transcript of SO Notiuni

1.Un sistem de operare reprezinta un set de programe care asigura gestionarea resurselor unui sistem de calcul implementand algoritmi destinati sa maximizeze performantele si realizeaza o interfata intre uilizator si sistemul de calcul, extinzand dar totusi si simplificand setul de operatii disponibile.2. Job spooling este tehnica de inmagazinare pe benzi sau disk-uri.3. Functiile unui sistem de operare sunt: interfata cu utilizatorul, gestiunea fisierelor, gestiunea perifericelor, gestiunea memoriei, gestiunea proceselor, tratarea erorilor, gestiunea sistemului.4.Dupa accesul la memorie SO pot fi: UMA(uniform access memory), NUMA(non uniform access memory), NORMA(no remote memory access).5.Tipurile de nucleu sunt: monolitic, modular, extensibil, multinivel, micronucleu(micro-kernel = in care SO este alcatuit din mai multe procese fiecare asigurand mai multe servicii).6. Task-urile pot fi: sporadice, periodice si aperiodice.7.Dupa importanta deadline-ului SO sunt: hard(actiunea unui task ce depaseste deadline-ul este 0 sau negativ), soft(actiunea unui task ce depaseste deadline-ul este indiferenta).8. Drivere-le transforma actiunile de I/O ale utilizatorului in cereri specifice componentei hardware.9. Un sistem de operare contine doua parti: de control si servicii.10. Procesul este un program in executie.11. Executia unui proces se poate face in 2 moduri: utilizator (procesele au acces numai la propria zona de cod, date si stiva utilizator), nucleu(procesul contine instructiuni privilegiate si poate avea acces la structuri de date ale nucleului).12. Crearea proceselor se poate face: la initializarea sistemului(reboot), la executia unui apel de functie pentru crearea unui proces(fork), la cererea utilizatorului de a crea un nou proces, la initializarea unui job.13. Terminarea proceselor este: normala(terminarea programului - voluntar), eroare(terminare cu eroare - voluntar), fatal error(divide by 0), core dump(involuntar), terminata de un alt proces(involuntar).14. Process Control Block furnizeaza date cu privire la identificarea procesului, informatiile de stare(registri vizibili utilizatorului), informatiile de control al procesului.15. Tabela regiunilor per proces poate intra in tabela proceselor, in zona u sau intr-o zona de memorie alocata acestui scop.16. Contextul unui proces consta din: contextul utilizator, contextul registrelor, contextul nivel nucleu.17. Thread-ul este unul sau mai multe subtask-uri in cadrul task-ului executat de un proces.18. Zona u este caracterizata de: un pointer la intrarea in tabela proceselor corespunzatoare procesului la care este atasata zona u, identificatorul utilizatorului real si efectiv, timpii de executie al procesului si descendentilor sai in modul utilizator si nucleu, modul de reactie a procesului la semnale, identificatorul terminalului de control, eroarea aparuta in timpul apelului unei reactii de sistem, valoare returnata de o functie de sistem, parametrii de I/O, directorul curent, tabela descriptorilor de fisiere utilizator(TDFU), dimensiunea limitata a procesului si a fisierelor, masca pentru drepturile de acces la fisierele create.19. Tabela proceselor contine urmatoarele campuri: starea procesului, localizarea procesului in memoria interna sau in memorie secundara folosita pentru swapping, dimensiunea procesului, identificatorii atasati utilizatorului si grupului sau, identificatorul procesului, descriptorul evenimentului care a produs trecerea procesului in starea de asteptare, parametrii de planificare pentru obtinerea procesului, semnale trimise procesului inca netratate, diferiti timpi care indica timpul de executie in mod utilizator si in mod nucleu pentru calculul prioritatii procesului.20. Operatiile care se pot excuta asupra thread-urilor sunt: spawn, block, unblock,finish.21. Zombie reprezinta un proces terminat dar care totusi se mai gaseste in tabela de procese.

22. La o schimbare de proces se executa pasii: decizia daca trebuie sa se execute o schimbare de context, salvarea contextului vechiului proces, alegerea noului proces de catre planificatorul de procese, restaurarea contextului noului proces.23. Relatii intre thread-uri si procese: 1 la 1 (fiecare proces are un singur thread), n la 1 (fiecare proces are mai multe thread-uri), 1 la n (poate comuta intre masini diferite pentru a realiza anumite operatii cheie), n la n (poate comuta intre domenii diferite pentru a realiza unele operatii cheie).24. Lightweight processes pot fi vazute ca un intermediar intre thread-urile utilizatorului si thread-urile kernel.25. Sincronizarea este actiunea ce permite modificarea starii unui proces.26. Sectiunea critica este zona de program prin care se apeleaza o resursa critica.27. Protocol de excludere mutuala este procedura prin care se face accesul unor procese la resursele critice ce presupune o sincronizare ce permite modificarea starii proceselor si eventual comunicatiei.28. Descriptorul de fisier descrie starea fisierelor utilizate de proces.

29. In proiectarea semafoarelor trebuie avute in vedere urmatoarele: sectiunile critice trebuie incadrate de P si V ceea ce uneori este mai greu de urmarit, un proces nu poate fi distrus in sectiunea critica, verificarea corectitudinii programelor nu este usoara, gestiunea cozii poate duce la aparitia unor probleme de proiectare.30.Semafoare private: numai un singur proces Q poate aplica P si V asupra lui, celelalte procese putand executa numai V. Valoarea initiala a unui semafor privat este 0.31. Un monitor este o structura de data formata din variabilele de sincronizare(conditie),resurse partajate si proceduri de acces la resurse. Procedurile pot fi interne sau externe. Din momentul in care se acceseaza o procedura a monitorului, un proces trece prin starile urmatoare: asteptare in coada de intrare a monitorului, asteptarea intr-o coada pe o variabila de conditie (wait), suspendarea prin executia signal, care reactioneaza un proces de asteptare pe o variabila de conditie, executia normala instructiunilor unei proceduri din monitor.32. Algoritmul de asteptare activa consuma timp util CPU pentru un proces care asteapta si are un grad ridicat de dificultate in elaborarea protocoalelor de intrare si iesire lucru ce poate duce pe langa neclaritati si la aparitia de erori.

33. Starile unui proces in cazul sincronizarii folosind bariere: toate procesele mai putin unul ajung la bariera si sunt blocate, ultimul proces ajunge la bariera, toate procesele isi continua executia mai departe (dezavantaj se consuma timp CPU util dar nu este echilibrata incarcarea proceselor).34. Blocaj-ul este situatia in care o resursa ceruta de un proces este mentinuta in starea ocupat de catre alt proces aflat la randul lui in asteptarea eliberarii unei resurse.35. Obtinerea unei resurse se face prin parcurgerea etapelor: cerere de acces (daca cererea nu este satisfacuta imediat procesul este nevoit sa astepte), utilizarea (procesul poate folosi resursa), eliberare (procesul elibereaza resursa).36. Resursele pot fi: reutilizabile (utilizate de un proces si apoi eliberate pentru a putea fi utilizate de alte procese timp CPU, canale I/O, memorie principala si virtuala, fisiere, baze de date, semafoare) sau consumabile (intreruperi, semnale, mesaje, informatii din buffer-ele I/O ).37.Inlaturarea planificarii nepreemptive: daca unui proces ii sunt blocate unele cereri atunci elementele trebuie sa elibereze resursele alocate, daca un proces cere o resursa care este alocata altui proces, SO poate preempta al doilea proces si sa ii ceara sa elibereze resursa.

38. Interblocare. Un set de procese se afla in starea de interblocare atunci cand oricare proces din set se afla in asteptarea unui eveniment ce poate fi produs numai de catre un alt proces din setul respectiv. Interblocarea apare in sistem daca si numai daca sunt indeplinite conditiile: excludere mutuala, ocupare si asteptare, imposibilitatea achizitionarii fortate, asteptare circulara. Daca graful de alocare al resurselor nu contine bucle atunci in sistem nu exista interblocare. Daca fiecare tip de resursa este format dintr-un singur tip element atunci existenta unei bucle in cadrul grafului arata ca in sistem a aparut o interblocare.39. Inlaturarea asteptarii circulare: definirea unei ordonari liniare a resurselor (o prioritate), o data ce o resursa a fost obtinuta, numai resursele care urmeaza din lista pot fi obtinute.40. Detectarea blocajelor: Strategii de rezolvare a situatiilor in care se detecteaza blocaje: sunt oprite toate procesele blocate, se salveaza starea proceselor blocate la un anumit moment anterior aparitiei blocajului (checkpoint) si se restarteaza procesele (este posibil sa se ajunga din nou la blocaj), procesele sunt oprite succesiv pana cand se iese din starea de blocaj, alocarea preemptiva a resurselor duce la disparitia blocajului.

41. Criterii de selectie a proceselor blocate: cel mai putin timp procesor consumat pana in prezent, cele mai putine rezultate produse pana in prezent, cel mai mult timp de rulare ramas estimat, cele mai putine resurse alocate din totalul celor cerute pana in prezent, cea mai mica prioritate.42. Oprirea blocajelor presupune faptul ca procesele sunt oprite succesiv pana cand se iese din starea de blocaj. Alocarea preemptiva a resurselor se face pana la disparitia blocajului.43. Evitarea blocajelor: nu se permite startarea unui proces daca cererilede resurse pot duce la blocaj, nu se permit cererile succesive de resurse ale unui proces daca alocarea lor poate duce la blocaj.44. Planificarea nepreemptiva: cand un proces trece din starea running in starea waiting si cand un proces este terminat45. Planificare preemptiva: cand un proces trece din starea running in starea ready si din starea waiting in starea ready.46. Modalitatea de interventie stabileste momentele in care planificatorul intra in actiune.47. Functia de prioritate are ca argumente procesele si parametrii sistemului.

48. Regula de arbitraj stabileste o ordine in caz de prioritati egale (servirea in ordine cronologica, servirea circulara sau aleatoare).49. Inversarea unei prioritati apare atunci cand un proces de prioritate scazuta acceseaza o sectiune critica apoi apare un proces de prioritate mare care foloseste si el sectiunea critica si astfel se blocheaza.50. Mostenire a prioritatii: de fiecare data cand un proces detine o sectiune critica pentru care asteapta si alte procese i se acorda respectivului proces maximul prioritatii proceselor aflate in asteptare.51. Efectul de convoi apare cand o multime de procese are nevoie de o resursa pentru un timp scurt, iar un altul detine resursa pentru un timp mai indelungat blocandu-le pe primele.52. Linux: avem 3 algoritmi (clase) de planificare FIFO real-time; round-rolin real-time; non-real-time.53. Memoria cache contine informatiile cele mai recent utilizate de CPU.54. Memoria operativa contine programele si datele pentru toate procesele existente in sistem.55. Memoria de arhivare este gestionata de utilizator si consta din fisiere, baze de date rezidente pe diferite suporturi de stocare a informatiei.

56. Memoria expandata este un mecanism ce permite ca mai multe chip-uri de memorie operativa sa aiba, alternativ, aceeasi adresa de memorie. Astfel avem de-a face cu memorie secundara care are ca suport memoria interna.57. Adresarea relativa se foloseste pentru realizarea de salturi intr-un program, precizandu-se sensul si numarul de locatii peste care trebuie sarit pentru a ajunge la noua adresa.58. Alocarea cu partitii simple se mai numeste si alocare statica si presupune decuparea memoriei in zone de lungime fixa numite partitii.6 59. Alocarea absoluta se face pentru programe pregatite de editorul de legaturi pentru a fi rulate intr-o zona de memorie si numai acolo.60. Alocarea relocabila este adresarea in partitie si se face cu baza si deplasament la incarcarea in memorie a programului, in registrul lui de baza se pune adresa de inceput a partitiei.61. Alocarea cu partitii variabile se face in functie de solicitari si de capacitatea memoriei ramasa disponibila la un moment dat, numarul si dimensiunea partitiilor se modifica automat.

62. Alocarea paginata a memoriei: instructiunile si datele fiecarui program sunt impartite in zone de lungime fixa, numite pagini virtuale. Paginile virtuale se pastreaza in memoria secundara memoria operativa este impartita in zone de lungime fixa, numite pagini fixe sau cadre. Fiecare proces are propria lui tabela de pagina, in care este trecuta adresa fizica a paginii virtuale, daca ea este prezentata in memoria operativa.63. Alocarea segmentata a memoriei introduce faptul ca textul unui program poate fi plasat in zone de memorie destincte, fiecare zona continand o bucata de program numita segment.64. Memoria virtuala este o tehnica ce permite executia proceselor chiar daca acestea nu se afla integral in memorie. Un avantaj distinct este acela al rularii unor programe de dimensiuni mai mari decat cele ale memoriei fizice.65. Paginarea la cerere: nu se introduce in memorie intregul program ci numai cateva pagini atunci cand sunt necesare. Daca se incearca folosirea unei pagini care nu este inca in memorie se va genera o eroare de genul pagina lipsa.66. Anomalia lui Balady: rata de aparitie a erorilor de tip lipsa sa creasca odata cu cresterea numarului de cadre alocate si nu sa scada cum ar fi normal.

67. Algoritmul LRU(last recently used) alege pagina cu cea mai lunga durata de neutilizare.68. Algoritmul a doua sansa in momentul verificarii starii unei pagini se inspecteaza bitul de referire asociat. Daca este 0 atunci pagina va fi inlocuita. Daca este 1 atunci i se da paginii o a doua sansa (bitul de referire asociat primeste valoarea 0 iar in timpul de sosire in memorie primeste valoarea momentului curent), trecandu-se (in ordinea FIFO) la verificarea starii urmatoarei pagini.69. Algoritmul LFU(least frequently used) selecteaza pentru inlocuire pagina care are asociat cel mai mic numar de referire.70. Algoritmul MFU(most frequently used) considera ca pagina care are asociat cel mai mic numar de referiri este probabil cea mai recent introdusa in memorie si este posibil sa o foloseasca in continuare.71. Metoda primei potriviri (First Fit) memoria solicitata este alocata in prima zona in care incape, principalul avantaj fiind simplitatea cautarii de spatiu liber.72. Metoda celei mai bune potriviri (Best Fit) se cauta accea zona libera care dupa alocare lasa cel mai putin spatiu liber.73. Metoda celei mai rele potriviri (Worst Fit) se cauta zonele libere care dupa alocare lasa cel mai mult spatiu liber.

74. Metoda alocarii prin camarazi (Buddy -system) aceasta metoda exploateaza reprezentarea liniara a adreselor si faptul ca din ratiuni tehnologice, dimensiunea memoriei interne este un multiplu al unei puteri a lui doi.75. Fisiere de tip pile (gramada) datele sunt colectate in ordinea in care apar, scopul fiind acumularea si salvarea unei cantitati de date, inregistrarile putand avea campuri diferite. Nu au o structura bine definita si accesul la o inregistrare poate fi foarte costisitor din punct de vedere a timpului.76. Fisiere cu organizare secventiala inregistrarile au un format fix, cautarea intr-un astfel de fisier implica procesarea tuturor inregistrarilor, este dificila inregistrarea unor articole noi, o solutie fiind folosirea unei liste inlantuite pentru organizarea structurii fisierului.77. Fisiere cu acces direct prin pozitie are articole cu format fix care sunt plasate in sectoare vecine, solutia putandu-se extinde cu mici modificari si la fisierele cu format variabil.78. Fisiere inverse contine pentru fiecare cheie specificata de utilizator adresele disc la care se afla articolele care contin cheia respectiva79. Fisiere multilista fiecare cheie dintr-un articol ii este atasat un pointer catre articolul urmator care contine aceeasi cheie.

80.Fisiere secvential indexate articolele vor fi scrise pe suport in acces secvential si sunt plasate in ordinea crescatoare a indexului. Articolele sunt grupate in blocuri de informatii numite pagini.81. Fisiere selective materializeaza functia de regasire printr-un singur calcul efectuat de CPU.82. Fisiere organizate folosind B-arbori fiecare nod este prevazut cu m locuri in care pot fi memorate m chei, pot fi maximum m chei si minimum m/2 chei.83. B-arborele contine chei numai in nodurile terminale. B-arborele extins permite adaugarea unei informatii de zestre pe langa fiecare pointer din B-arbore84. FAT(File Allocation Table) pastram informatiile legate de spatiul alocat fiecarui fisier.85. Alocarea inlantuita un fisier este inregistrat intr-un sir de blocuri legate intre ele printr-o lista inlantuita.86. Alocarea contigua un fisier pe disc trebuie sa ocupe un set de adrese consecutive pe disc. 87. Alocarea indexata pe langa blocurile atasate fisierului, la crearea fisierului respectiv, creeaza un bloc special numit bloc de index.88. JFS (Journal File System) scrierile pe disc sunt realizate asincron datorita faptului ca dupa terminarea unei cereri de sosire la disc informatiile sunt inregistrate in log-uri si apoi sunt facute modificarile in tabela descriptorilor de fisier.

89. HPFS (High Performance File System) organizeaza discul in volume si rezerva primele 18 sectoare pentru blocul de boot, superbloc si blocul de rezerva. Aceste blocuri contin informatiile de control care sunt utilizate pentru initializarea sistemului, gestiunea sistemului de fisiere si refacerea sistemului de fisiere dupa producerea de erori.90. Sisteme de fisiere distribuite permit distribuirea sistemului de fisiere pe masini diferite fizic, pastrand totusi datele disponibile de pe acele masini. Un avantaj imediat este backup-ul usor al datelor si managementul acestora. RFS, NFS-UNIX, Active Directory- Windows.91. Dispozitivele de I/O sunt formate dintr-o componenta mecanica si una electronica numita controller. Un astfel de controller poate gestiona mai multe dispozitive identice.92.DMA(Direct Memory Access) blocurile de date sunt mutate direct in memorie fara implicarea procesorului, acesta fiind implicat numai la inceputul si sfarsitul operatiei.93.Dispozitivele de I/O: dispozitive bloc (discul), dispozitive caracter (imprimanta, mouse, terminale, adaptoare de retea).94. Conditii de interblocare: excludere mutuala, ocupare si astptare, imposibilitatea achizitionarii fortate, asteptare circulara.

95.Blocaj situatia in care o resursa ceruta de un proces este mentinuta in starea ocupat de catre alt proces aflat la randul lui in asteptarea eliberarii unei resurse.96. Algoritmul feedback se foloseste cand nu se cunoaste timpul de care mai are nevoie un proces ca sa-si termine executia. Sunt penalizate procesele care ruleaza prea mult si pot duce la aparitia fenomenului de infometare. Nu variem algoritmul de planificare si prioritatile in functie de caile de asteptare.97. Algoritmul SCAN miscarea capetelor incepe de la ultimul cilindru catre primul si serveste toate cererile pe care le primeste. Dupa servirea cererii de la adresa cea mai mica de cilindru solicitat, capetele isi schimba sensul de mers, servind cererile aparute ulterior iar apoi cererile de pe cilindrul solicitat cu cea mai mare adresa,apoi iar se schimba sensul.98. Registre mapate: Comunicatia dintre controller-e si unitatea central se realizeaz prin intermediul unor registre, care de cele mai multe ori fac parte din spatiul de adrese de memorie (sunt mapate n memorie memory mapped I/O). Aceste registre mapate n memorie se acceseaz la fel ca orice locatie de memorie, singura diferent fiind timpul de acces mai redus. Aceste registre sunt utilizate de sistemul de operare pentru a nscrie parametri si comenzi si pentru a citi starea dispozitivului respectiv si codurile de eroare.