Apelurile de sistem reprezinta modalitatea prin care aplicatiile apeleaza serviciile puse la dispozitie de catre nucleul sistemului de operare.
Exista mai multe tipuri de apeluri de sistem; de control de procese(Process Control), pentru managementul fisierelor(File Management), pentru manipularea dispozitivelor(Device Management), pentru managementul informatiei(Information Management), pentru comunicare(Communication).
Un proces reprezinta un program in executie, o instanta a unui program. Sistemul de operare aloca resurse utilizatorului prin procese.
In Linux se creeaza un contex special. Acest context contine informatii necesare sistemului de operare pentru a rula programul ca si cum ar fi singurul program ce ruleaza in sistem, iar in Windows exista un planificator de procese numit ProcessScheduler . Planificatorul de porcese decide ce proces urmeaza sa fie executat.
Windows-ul gestioneaza fisierele prin obiecte de fisiere(file objects), pointeri de fisiere(files pointers) si file handlere, deasemenea avem stream-uri care contin informatii despre fisiere(fiecare stream este asociat unui fisier), iar in cazul Linux-ului toate fisierele sunt accesate ca facand parte dintr-un arbore.
In cazul apelurilor de sistem de tipul Device Management am observat ca in Linux majoritatea device driverelor sunt extensii ale kenel-ului.
In Windows, Device Manager este o extensie a Microsoft Management Console care asigura o organizare a tuturor dispozitivelor hardware instalate in calculator.
Atat in cadrul Windows-ului cat si in cadrul Linux-ului memoria are un rol foarte important, fiind cea mai importanta resursa a unui sistem de calcul, iar un sistem de operare trebuie sa realizeze urmatoarele servicii fundamentale: gestiunea timpului procesorului, gestiunea spatiului de memorie si managementul operatiilor de intrare/iesire.
Bibliografie
http://www.sal.ksu.edu/faculty/tim/ossg/Introduction/sys_calls.html
http://elf.cs.pub.ro/so/
http://labs.cs.upt.ro/labs/so/html/so4.html
http://msdn.microsoft.com/en-us/library/windows/desktop/
http://andrei.clubcisco.ro/cursuri/3so/labs/v2/Laborator_04_-_Gestiunea_memoriei.pdf
http://msdn.microsoft.com/en-us/library/aa366599%28VS.85%29.aspx
http://cursuri.cs.pub.ro/~so/Laboratoare/04.%20Gestiunea%20memoriei.pdf
http://isc.pub.ro/laboratorISC/laboratorISC.htm
http://os.obs.utcluj.ro/
http://linux.about.com/library/cmd/blcmdl3_scandir.htm
III.Gestiunea memoriei: (Nicolae Andreea) 1.Introducere
Memoria se poate defini ca fiind o resursă a calculatorului ce are o importanță deosebită și trebuie să avem grijă în ce fel o gestionăm.
Memoria unui calculator este o partea a acestuia în care se stochează programe și date. Din memorie,procesorul culege date care îi sunt necesare pentru a prelucra date și tot aici va depune și rezultatele. Unitatea de memorie este reprezentată de 0 sau 1,valori ce reprezintă cifre binare.
Așteptările tuturor de la o memorie sunt ca aceasta să fie cât mai rapidă,să fie de capacitate mare și să fie fiabilă din punct de vedere al costurilor.Ba mai mult, de ce nu să își țină stocat conținutul și atunci ca nu există alimentare cu curent.Majoritatea calculatoarelor dispun de o memorie ierarhică,cu un pic de memorie cache care se caracterizează prin rapiditate și prin faptul că are un cost ridicat și că este volatilă,o memorie principală, care de asemenea este volatilă,însă nu are un preț foarte mare și a cărei viteză este medie.Rolul de a gestiona aceste memorii îi revine sistemului de operare.
Gestiunea memoriei are următoarele obiective:
-Alocarea memoriei care este necesară atunci când se rulează procese;
-Contabilizarea zonelor ocupate sau libere;
-Dezalocarea memoriei de procesele care nu mai sunt utile;
-De a oferi ajutor în protecția memoriei;
-De a executa transferul proceselor între hard-disk și și memoria principală;
-De a ajută la calculul translatării dresei.
2.Swapping
Prin definiție, swapping-ul este o strategie simplă de aducere în memorie a unui proces,de a-l execută , iar apoi de a-l depune pe disc. Mai exact, swapping-ul face o referire în ceea ce privește un transfer de procese care are loc între RAM și hard-disk. S-a observat că memoria principală trebuie oarecum să se extindă deoarece odată cu evoluția programelor, acestea pot fi mari consumatoare de memorie.Amintim și procesele inactive, care nu sunt consumatoare de memorie,se află în general pe disk.
Swapping-ul a apărut ca o soluție în rezolvarea problemei de insuficiență a memoriei.Avantajul pe care îl deține această tehnică este acela că memoria are partiții de dimeniune variabila, ceea ce conducee la o utilizare mult mai eficientă a memoriei.Dezavantajul swapping-ului este acela că duce la complicarea algoritmului dealocare a memoriei, unde memoria alocată se poate schimba,acest lucru depinzând de anumite procese care pleacă din memorie sau care pot veni din memorie.
(2)
Algoritmi de înlocuire a paginilor
În momentul în care „apare un defect de pagina”, sistemul de operare are obligația de a elibera un loc unei pagini care va fi adusă în locul acelei pagini care este puțin probabil i se ceară solicitarea ,pagină care va trebui să fie scoasă din memorie.Este necesar ca tot ce a conținut respectiva pagină să se scrie pe un disc, asta în cazul în care aceasta a suferit modificări în timpul în care s a aflat în memorie. În caz contrar,actualizarea conținutului se va face în mod automat, nu va mai fi nevoie de o copiere suplimentară,iar pagina nou introdusă în memorie va realiza suprascrierea în mod direct asupra paginii scoase.
Pentru a spori performanta sistemului de operare, este indicat să se elimină o pagină care are o frecvență de utilizare mică, de aceea pentru a se evita o încărcare inutilă a memoriei nu se va elimina o pagină care se folosește des.
În cele ce urmează, voi face o prezentare a celor mai importanți și utilizați algoritmi care ajută la înlocuirea pagînilor,iar la final voi face o comparație între ei.
2.1 Algoritmul optim Belady
Principiul algoritmului este de a înlocui pagină care ulterior nu va mai fi utilizată într-o perioadă lungă de timp. Este de menționat faptul că acest algoritm nu se poate implementa practic.
Înainte să se acceseze o anumită pagină, i se atașează o etichetă,unde este menționat un număr de intrsuctiuni.Pe scurt,acest algoritm sugerează să se elimine acea pagină a cărui număr de pe etichetă este cel mai mare dintre toate. Putem spune că este un algoritm eficient în ceea ce privește evaluarea celorlalți algoritmi de înlocuire,dar, din păcate, nu poate fi realizat practic, ceea ce ne conduce la o comparație între algoritmi ce se pot realiza și un algoritm care este cel mai bun posibil.
(1)
Algoritmul Not recently used folosește 2 biți de stare notați cu R și M, care îi regăsim la fiecare pagină. R semnifică pagina la care s-a făcut referirea; M semnifică faptul că pagina a fost modificta/scrisă. Acești 2 biți pot lua valori 0 sau 1. Mai trebuie specificat faptul că biții R și M trebuia să suporte modificări de fiecare dată când se accesează memoria, ei fiind de folos în atunci când se dorește construirea unor algorimi nu foarte complicați de înlocuire a paginilor.Inițial, bitul R și bitul M primesc valoarea 0,însă după un anumit timp,doar bitul R va căpăta valoarea 0 în scopul de a vedea ce pagini au fost utilizate recent și care nu.
Acest algoritm ne ajută să deosebim patru clase:
-Clasa 0 : R=0,M=0
-Clasa 1: R=0,M=1;
-Clasa 2: R=1,M=0;
-Clasa 3: R=1,M=1;
Datorită acestui algoritm, eliminarea paginilor se face într-un mod total aleator și în ciuda acestui fapt, conduce la o bună performanță a sistemul de operare.Algoritmul ține cont atunci când elimină o pagină de un timp aproximativ egal cu 20 ms.
2.3 Algoritmul FIFO
Algoritmul First In first Out se caracterizează prin faptul că reușește să mențină o listă înlănțuită a paginilor,menținând inclusiv și ordinea acestora în care au apărut în memorie. Principiul acestui algoritm este acela că pagina de la început va fi prima înlocuită, după cum ne sugerează și numele algoritmului :primul intrat,primul ieșit.
Exemplu: Considerăm o bibliotecă care dispune de m locuri destinate cărților pe fiecare raft în parte. La un moment dat, este scoasă o carte care are un real succes. În acest moment, biblioteca este nevoită să introducă noua carte, însă va trebui să elimine una din cărțile mai vechi. O opțiune ar fi să scoată o carte pe care bibliotecă o introdusese demult . În mod cert, biblioteca deține o lista în care ține evidența tuturor cărților din momentul în care ele au fost introduse,iar cea mai nouă carte se află la sfârșitul listei,în avantajul celei mai vechi care reprezentă cap de lista și cu siguranță va fi scoasă.
În acest fel se întâmplă și la înlocuirea paginilor,unde există o lista deținută de sistemul de operare cu toate paginile,începând cu cea mai veche și sfârșind cu cea mai nouă.
(1)
2.4 Algoritmul NFU
Algorimul Not Frequently Used subliniază ideea de a exista un numărător astfel încât fiecare pagină să aibă propriul său contor care la început se va inițializa cu 0. Sistemul de operare va începe să analizeze paginile în momentul în care va exista o întrerupere, astfel că se va incrementa contorul și în acest fel, vom vedea de câte ori o pagină fost utilizată. În acest mod, sistemul de operare va știi ce decizie să ia în momentul în care seva defecta o pagină, și anume va elimina acea pagină pentru care contorul are cea mai mică valoare.
Acest algorim are și un dezavantaj : ține cont în mare parte de frecvența de folosire, fără a luă în cosniderarea timpul de folosire.
Acest algoritm s-a format în urma modificării algoritmului NFU prin faptul că acest nou algoritm va ține cont și de timpul duratei utilizării, nu numai de frecvența cu care sunt utilizate paginile.
Contorul se va împarți la 2, deci va avea loc o deplasare la dreapta și nu va mai fi incrementat cu o unitate, în timp ce bitul de referință se va adăuga în partea stânga.În acest caz, prioritatea cea mai mare va aparține paginilor care au fost accesate recent, iar în momentul în care de soreste eliminarea unei pagini, se va ține cont valoarea cea mai mică stocată în contor.
2.6.Concluzii și comparații între algoritmi
Nu este de ajuns doar să folosim un anumit algoritm pentru a expulza o pagină din interiorul memoriei.Este important să știm ce face fiecare, care sunt avantajele și dezavantajele lor și când anume este necesar să îi folosim într-un mod optim.
Algoritmul optim,după cum îi spune și numele, reprezintă un algoritm,pe care îl putem numi optimal, care ne oferă posibilitatea de a vedea defectele de pagină și numărul minim al acetora. Este mai degrabă în model în ceea ce privește ceilalți algoritmi.
Algoritmul First În First Out are dezavantajul că poate elimina și pagini care pot fi importante,chiar dacă sunt pagini care au fost introduse cu mult timp în urmă,conform principiului.
Algoritmul Not Recently Used îl consider puțin radical deoarece eliminarea paginilor se face într-un mod total aleator și nu putem știi ce informații sunt în acele pagini și nu ne putem da seama de importanța lor.
Dostları ilə paylaş: |