sisteme de operare

47
Nucleu UNIX,rol,component. Nucleele (kernel) sistemelor de operare constituie partea cea mai condensata a sistemul de operare care asigura intreaga functionalitate a unui sistem de calcul. Nucelu are doua sarcini primare: 1. sa se ocupe de planificarea proceselor, adica de multitasking 2. gestionarea sistemului de fisiere Nucelul e completat de catre programele utilitare ale sistemului de operare, cum ar fi editoarele de texte, interpretoarele, complilatoarele si editoarele de legaturi. Acestea se instaleaza ori de cate ori sunt necesare, spre deosebire de nucleul sistemului de operare care ramane rezident in memorie de la pornire pana la oprire. In sistemul de operare unix nucleul are dimensiunea ~ 1MB. Nucelul tre sa indeplineasca 4 funcii: 1. Interfata cu Hardware 2. Administrarea sistemului de fisiere 3. Administrarea memoriei 4. Planificarea si executare joburilor

Upload: dragos-stroe

Post on 24-Sep-2015

18 views

Category:

Documents


4 download

DESCRIPTION

SO

TRANSCRIPT

Nucleu UNIX,rol,component.Nucleele (kernel) sistemelor de operare constituie partea cea mai condensata a sistemul de operare care asigura intreaga functionalitate a unui sistem de calcul.Nucelu are doua sarcini primare:1. sa se ocupe de planificarea proceselor, adica de multitasking2. gestionarea sistemului de fisiereNucelul e completat de catre programele utilitare ale sistemului de operare, cum ar fi editoarele de texte, interpretoarele, complilatoarele si editoarele de legaturi. Acestea se instaleaza ori de cate ori sunt necesare, spre deosebire de nucleul sistemului de operare care ramane rezident in memorie de la pornire pana la oprire. In sistemul de operare unix nucleul are dimensiunea ~ 1MB. Nucelul tre sa indeplineasca 4 funcii:1. Interfata cu Hardware2. Administrarea sistemului de fisiere3. Administrarea memoriei4. Planificarea si executare joburilor1. Interfata cu Hardware: Nulceul e cel care ascunde userului complexitatea hardwareului. Sistemul de operare UNIX a fost primul sistem de operare scris in limbaj de nivel inalt (C, C++). Scrirea in acest limbaj asigura sistemului de operare UNIX o foarte mare portabilitate, ceea ce il face instalabil pe orice tip de platforma. Pentru a porta sistemul de pe o platforma pe alta e necesara rescrierea a 10%-50% din kernel.

Administrarea de catre nucleu a sis de fisier UNIXIn UNIX, fisierel sunt memorate pe HDD in blocuri. Nucleul e cel care gestioneaza si stie despre fiecare bloc de pe HDD carui fisier apartine, ce blocuri sunt libere, ce blocuri sunt defecte si ce blocuri vor inlocui blocurile defecte. Toate fisierel in sistemul UNIX sunt tratate in termen de octeti. In UNIX, inclusiv dispozitivele sunt vazute ca fisiere. Nucelul e cel care cunoaste proprietarul fiecarui fisier si acorda drepturile de acces fisierului in cauza. Atunci cand un administrator creeaza un nou cont de utilizator, acesta va avea automat asociat un director de rederinta numit HOME DIRECTORY.In sistemel UNIX, sistemul de fisiere e organizat sub forma unei structuri arborescente cu radacina in sus.

- BIN (BINARY) este directorul care contine in forma executabila toate comenzile si directoarele UNIX. - ETC contine toate programele si utilitarele administratorului de sistem.- LIB (LIBRARY) contine toate bibliotecile de sistem, C si C++- DEV (DEVICE) acest director contine informatii despre toate dispozitivele, fie ca sunt sau nu instalate in sistem.- LOST&FOUND este folosit de programele sistemului de operare care intretin si verifica sistemul de fisiere- TMP (TEMPORARY) e folosit atat de sist de operare cat si de catre user pentru pastrarea fisierelor temporare cu mentiunea ca acest director e sters automat ori de cate ori se reporneste calculaotrul- USR (USER) directorul in care se gasesc toate directoarele de resedinta ale utilizatorului., - UNIX e un fisier, el contine nucleul sistemului de operare si care se incarca atunci cand pornim calculaotrul. UNIX e un fisier care reprezinta imaginea nucleului aflata pe HDD.Administrarea de catre nucleu a Memoriei

Sistemel UNIX utilizeaza memoria virtuala organizata la nivel de pagina. Paginile au o dimensiune predefinita, fixa. In timpul lucrului , sistemul schimba in permanenta pagini intre memoria interna si cea auxiliara, operatiile se numesc paging.SO Unix dispune de o partitie speciala numita /dev/swap in care se executa aceste operatii.Spre deosebire de windows in care schimburile se fac intr-un fisier dynamic aflat pe hard, Unixul utilizeaza aceasta partitie care este statica.

Planificarea si executarea joburilor Sistemel UNIX sunt multiuser si multitasking, aceasta inseamna ca fiecare user are incarcate in memorie simultan mai multe joburi, in plus, exista si o seris de joburi care ruleaza in background. Sistemel UNIX utilizeaza ca algoritmi de planificare, algoritmul ROUND ROBIN, cu prioritati, a.i. fiecare proces primeste o cunata de timp in care are voie sa utilizele procesorul. Daca procesul se termina, cuanta de timp se realoca. Procesele cu prioritate mai mare, intra in fata, in coada de asteptare. In sistemel UNIX, in general, prioritati mari au procesele cu intrari, iesiri intensive. Procesele care ruleaza in background au prioritatile cele mai mici. Nucleul dispune si de mecanisme de securitate care au girja ca procsele sa nu interfereze intre ele sau cu sistemul de operare.Unix-shellUn shell unix e un program scris in limbajul C care realizeaza o interfata intre utilizator si nucleul sistemului de operare . Userul foloseste comenzile de nivel inalt pe care shellul le preia si le traduce. Shell e un interpretor care constituie o poarta care nucleu pentru cele circa 400 de comenzi si utilitare cu care e inzestrat un UNIX. Din punct de vedere al nucelului, shellul e un program oarecare, dar pentru user, constituie legatura vitala cu kernelul. Shellul pune la dispozitie mediul si mijloacele necesare scierii unor shellscripturi, care sunt niste fisiere de tip lot de comenzi care se executa ca si cand ar fi date de la tastatura in lot secvential. Shellul ofera posibilitatea programarii structurate, prin stucturi de tip if-then-else, while-do, etc.Programele de tip script se executa mai incet, deoarece sunt interpretate, nu compilate, dar au avantajul ca necesita un effort de programare mult mai mic.

Caracteristici generale ale unui shell:1. executarea comenzii shell-ul afieaz prompterul pe ecran n ateptarea unei comenzi; dup iniierea comenzii, el o va prelua i o va traduce nucleului ce o va executa, dup care are loc ntoarcerea la prompter. Exista si exceptii cum ar fi mail sau vi care au comenzi proprii.2) bibliotecile incorporate fac parte din shell; executarea acestor comenzi este mai rapid dect a celor care nu sunt introduse n aceast biblioteca i care trebuie aduse de pe HDD;3) procesarea n background shellul ne pune un prom pe ercan, introducem comanda care va fi lansata in executie si pusa intr-o coada de asteptare, iar shellul revine imediar la prom fara a mai astepta executarea comenzii.4)extensie nume fisier- face referire la posibilitatea folosii semnelor wildcard *? Care pot inlocui unul sau mai multe caractere in numele de fisier.5) variabilele constitue zone periferice de memorie in care sunt memorate o serie de vaori care afecteaza so.6) redirectarea I/O n UNIX intrarea standard este tastatura i ieirea standard este monitorul. Shell-ul ofer posibilitatea de a schimba aceasta, oferind posibilitatea de a scrie rezultatele direct la imprimant sau de a putea prelua datele ce urmau a fi introduse de la tastatur dintr-un fiier.7) limbaj si mediu shell-ul pune la dispoziie o serie de controale ce ajut programarea structurat: construcii while, for, if-then-else,until.8) substituirea comenzilor shellul permite ca iesirea unei comenzi sa devina intrare in linia de text a unei alte comenzi sau intr-o variabila.

Organizarea fisierelor si directoarelor

Fiierul = o structur fundamental pentru pstrarea grupat a informaiei pe mediile de stocare. Intrarea de director n UNIX

72.330sales

Numele fisierului inode numberRestul de informaii sunt ncrcate n tabela Inode List.In SO Unix numele de fiere trebuie sa respecte:- lungimea intre 1 si 14 caractere;-numele de fisiere nu au extensii, daca dorim nume combinate folosim . sau -.- se evit folosirea n numele de fiiere a caracterelor @, &, ;, |, spaiile i tab-urile- UNIX este un sistem case-sensitive, adic face difereniere ntre literele mari i cele mici.Intrarea in tabele inode llist(512 bii)Inode numberDrepturi de accestipNr leg la fisierUIDGIDCreeare accesare, modificaredimensiuneAdrese blocuri de date

Nr de leg la fisier- arata cati utilizatori partajeaza la mom present fisierul.UID-user identify- nr unic pe care il primeste.GID- identificatorul de grupDimensiunea- dim fis in kiloocteti.Adrese de blocuri- are 13 campuri; primele 10 rep adrese directe adica contin direct inf care ma intereseaza. Cel de al 11 lea este adresare indirect. 12-adresare dublu indirect, 13- adresare tripla indirect.

Tipuri de fiiere1. fiiere curente:- text conin date n format ASCII- de tip lot de comnzi - conin date n format ASCII care reprezint comenzi recunoscute i executate de shell- executabile conin date n format binar-executabil ce reprezint comenzi i aplicaii- de date conin informaii codificate recunoscute doar de aplicaiile care le-au creat2. fiiere director: reprezint fiiere normale dar cu un coninut de repertoriu ce conin o list de intrri de director a fiierelor pe care utilizatorul a hotrt s le asocieze din motive funcionale3. fiiere speciale de dispozitive: conin numele tuturor dispozitivelor prezente ntr-un sistem de calcul, ataate sau nu; aceste fiiere nu conin date propriu-zise i doar pointeri ctre programele-translator de dispozitive (device drivers).

Nivele de securitate UNIXSistemul de securitate al UNIX are patru nivele funcionale:1) nivelul de securitate sistem, ce const din procedurile utilizate pentru a executa login / logout. La iniierea unei sesiuni, fiecare utilizator va avea un username i o parol ce va fi cutat ntr-o baz de date proprii (de obicei ascuns) pentru identificare i autentificare. Nu sunt admii dect cei care au conturi legitime. Acest sistem include de asemenea recunoaterea conturilor de root. UNIX asigur o rezerv de login pentru root i i permite acestuia s acorde unele privilegii i altor utilizatori: Ex.: s ruleze anumite programe-sistem, s instaleze anumite aplicaii, s gestioneze coada de imprimare etc.2) nivelul de securitate fiier: reprezint cea de-a doua linie de aprare i const din modurile de acces pentru proprietarii unui fiier, grupurile de lucru asociate i accesul pentru publicul general.3) nivelul de securitate responsabilitate: se refer la modul n care fiecare aciune aprut pe un sistem UNIX poate fi urmrit i atribuit utilizatorului real. Un identificator adiional numit LUID (Login User ID) este ataat pentru a furniza o marc de neters fiecrui proces asociat cu un utilizator4) nivelul de securitate audit (verificare): presupune faptul c n UNIX se pot contoriza pentru sistemul de conturi de utilizator nu numai tentativele reuite de utilizare a unui program, ci i cele nereuite.

Mediul shell:Totalitatea variabilelor care se gasesc in setul standard al shell-ului alc mediul shell.Variabil = numele unei locaii de memorie care constine o anumite inf.Shell-ul vine cu un set standard de variabile i ofer i utilizatorului crearea unor variabile personale. Utilizarea variabilelor permite o mare flexibilitate i un mare grad de control sistemului UNIX.Pentru afiarea variabilelor se folosesc comenzile: $set %set envVARIABILA:home conine ntreaga cale ctre homedir-ul utilizatorului curentlogname conine numele de login al utilizatorului curndmail conine calea pn la directorul n care se afl corespondena electronic a utilizatorului curentterm conine informaii despre tipul de terminal la care lucrmtz conine informaii despre fusul orar al mainii UNIXps1 conine informaii despre tipul de prompter folosit de utilizator. Personalizarea sa se poate face din fiierele de configurare .profile i .loginpath conine cile de directoare n care shell-ul va cuta comenzile utilizatorului

Tipuri de Shell:De tip Bourne ; profile / $/ShDe tip C: login/ cshre / % / kshDe tip Korn: profile/$/ksh.Lucru cu comenzi in Unix:Tot ce se introduce de la tastatura cand avem promtul de shell, constitue linia de text a unei comenzi. Shell-ul nu o ia in considerare pana nu apasam enter.$comanda [opiuni] [argumente]Orice linie de comand are o comportare implicit; unele comenzi pot avea opiuni i/sau argumente; alte opiuni pot avea numai opiuni, numai argumente sau nici una dintre ele. De regul, comenzile se scriu cu litere mici pentru a nu fi confundate cu variabilele.Shell-ul dispune de o variabila PATH. Atunci cand lansam o comanda, shellul o cauta prin directoarele care sunt inscrise var PATH./bin:/usr/bin:/home/vasile: . daca gaseste comanda o executa.O optiune are rolul de a modifica / mbuntii comportarea implicit a comenzii; opiunile sunt mereu precedate de semnul - fr a exista un spaiu ntre - i opiunea efectiv. ntre comand i - exist ntotdeauna un spaiu.$whoafieaz toi utilizatorii autentificai n acel moment$who h afieaz aceleai informaii ca mai sus cu o scurta descriere a coloanelorArgumentele reprezint orice informaie (date, fiiere) asupra crora va opera comanda$calafieaz calendarul lunii curente ncadrat de luna precedent i cea urmtoare$cal 9 1983afieaz calendarul lunii septembrie 1983$diff fisier1 fisier2calculeaz diferenele ntre cele dou fiiere primite ca argument

Analiza unei linii de comanda shell:Dup tastarea unei comenzi, shell-ul o va procesa pe msur ce o introducem i abia dup prelucrare se va trece la execuie. Procesul de spargere a unei linii de comand n constitueni se numete analiz gramatical parsing.opiunea$ls l mydirargumentulcomandaShell-ul separ parametrii utiliznd coninutul variabilei IFS (InterField Separator). n mod normal IFS este constituit din caractere blank i tab-uri. nainte de a aplica regulile de separare a parametrilor, shell-ul aplic regulile ghilimelelor, substituie comenzii, genereaz numele de fiiere din expresiile curente, expandeaz variabilele i determin intrarea i ieirea comenzii.

In sistemel UNIX exista 3 tipuri de ghilimele: ghilimelele obisnuite apstrofuri semne de prim ` `Tot ce se afla intre ghilimele si apostrofuri este considerat de catre shell ca un singur bloc. $ls x y se vor afisa informatii despre fisiere x si y$ls x y sau $ls x y shellul va genera o eroare. In primul rand nu exista fisierul x y si in al doilea rand nu avem voie sa folosim pauza in numele fisierelor.Ex: $echo * - va afisa pe ecran continutul tuturor fisierelor si subdirect curente.$echi * va afisa steluta$echi * va afisa stelutaSemnele de prim forteaza executarea unei comenzi, iar rezultatul acesteia va deveni un parametru in linia de comanda initiala.$echo `*` - daca primul fisier din directorul curent e executabil, shelul il va executa cu toate celelalte fisiere ca parametri, iar rezultatul fiind imprevizibil. daca primul fisier nu e executabil, shelul va semnala o eroareSemnul $ returneaza valoarea unei variabile.X=hello$ echo $x- se af hello$ echo x- se af x/- pierdere de semnificatie$echo ; - se afiseaza un spatiu$echo \; se af ;( ) => (comanda1;comanda2) deschide un nou shell

Redirectarea intrariiIn mod normal intrarea standard in SO in unix este de la tastatura, dar shellul permite redirectionarrea aceste intrari de regula catre fisier.$cat x continutul nu se mai pierde, noul continut fiind adaugat la cel vechi.

Folosirea semnelor ? si *; Expresii [ ]? poate inlocui un singur character, in timp ce * poate inlocui de la 0 la mai mukte caractere.$ ls job? -> job1 job2 job3 joba$ ls job* -> job job3 jobx jobxyzExpresii [] ne permit sa fim mai restrictive in exprimare.$ls job[12]- listeaz fiierele job1 i job2, dac acestea exist n directorul curent$ls job[1-8]- listeaz fiierele de la job1 la job8, dac acestea exist n directorul curent$ls job[a-z]- listeaz fiierele de la joba la jobz, dac acestea exist n directorul curentExist posibilitatea de a exclude anumite fiiere de la cutare prin includerea semnului !$ls job[!34]- listeaz toate fiierele care au o cifr n coad, cu excepia fiierelor job3 i job4Pentru a accesa fiierele de tipuri diferite, se pot combina semnele pentru obinerea unii efect maxim:$ls job[0-9][a-z]*- listeaz toate fiierele ce ncep cu job i continu cu o cifr, o liter i apoi orice alt ir de caractere.

Expandarea variabilelor:Expandarea variabilelor nseamn nlocuirea unui nume de variabil cu valoarea sa.Declararea unei variabile se face prin construcia nume_variabil = valoare$nume = Mihai$echo nume- afieaz nume$echo $nume- afieaz MihaiConsider dou variabile, X i X1. Dac vom defini variabila $Y= $X1- avem o ambiguitate, deoarece nu se tie dac se dorete accesarea variabilei X1 sau se dorete adugarea la variabil X a lui 1$Y = {$X}1- pentru a elimina ambiguitatea, am stabilit s accesm variabila X i s i adugm un 1 n coad$Y = {$X1}- pentru a elimina ambiguitatea, am stabilit s accesm variabila X1Se pot folosi urmtoarele construcii:ExpresiaSe evalueaz la

${variabil:-cuvnt}- dac variabila este definit i nenul, se evalueaz la variabil- dac variabila este nedefinit sau nul, se evalueaz la cuvnt

${variabil:-cuvnt}- dac variabila este definit i nenul, se evalueaz la variabil- dac variabila este nedefinit sau nul, se evalueaz la variabil, iar variabila ia valoarea cuvnt

${variabil:?cuvnt}- dac variabila este setat i nenul, se evalueaz la variabil- dac variabila este nedefinit sau nul, se tiprete cuvnt i se revine n shell

${variabil:+cuvnt}- dac variabila a fost setat i este nenul, se evalueaz la variabil- dac nu a fost setat sau este nul, nu se ntmpl nimic

Substituirea comenzilor:Substituirea comenzii se refer la faptul c ieirea unei comenzi poate deveni intrare ntr-o variabil sau o linie de text.$X = `ls jobx`- ncarc n variabila X ieirea comenzii ls jobxDup executarea substituirii comenzii, shell-ul separ parametrii dup variabila InterFieldSeparator (IFS). Procesul de analizare gramatical a liniei de comand nu este recursiv, shell-ul nu va reparcurge linia de comand i nu va ncerca expandarea n continuare a acesteia.$comanda1 parametru1 parametru2 `comanda2` - se va executa comanda2, iar rezultatul ei va deveni al treilea parametru pentru comanda1.$echo `echo $PATH`- se afieaz $PATH, nerealizndu-se o prelucrare recursiv$echo `echo `date``- se afieaz date$echo `date`- se afieaz data curent de dou ori

Transferarea parametrilorDup analiza gramatical a liniei de comand, shell-ul este gata s transfere parametrii ctre comand. Dac programul a fost scris n C, parametrii sunt plasai n vectorul argv de unde pot fi preluai, n ordinea liniei de comand, prin argv[0], argv[1],Dac programul este un shell-script, atunci parametrii sunt aloca`ti variabilelor $1, $2, $9Dac avem scriptul PGM, i este apelat prin linia de comand PGM job[12], atunci el va vedea linia de comand ca:$PGMjob1 job2

$1$2Transferul datelor prin mediuShell-ul poate transfera variabilele ctre un program i prin mediu. La UNIX executarea unei comenzi nu nseamn numai aducerea de pe HDD i rularea sa ntr-un proces, ci shell-ul, nainte de a executa comanda, va crea un nou subshell ca o copie a sa n care ulterior va rula comanda. Procedeul poart numele de forking.

Shell

subshellsubshell fork fork

procesul Aprocesul BPartiiile de disc UnixTabela de partiii este localizat n MBR Master Boot Record. Acesta se afl la primul track, primul cilindru n sectorul 1. (Track 0, Head 0, sector 1). Partea de informaii a unei partiii UNIX conine informaii despre blocurile de boot, blocurile defecte i blocurile de rezerv.Soft-ul se sistem este o parte static care nu prea sufer modificri, n vreme ce soft-ul utilizatorului sufer dese modificri, fiind o parte dinamic. Salvarea unui HDD (operaia de backup) se poate face pista cu pist, cu o vitez superioar dat total neselectiv din punct de vedere al informaiei, dar i fiier cu fiier, selectiv dar mai ncet deoarece fiierele nu sunt memorate n zone contigue pe disc. Prin urmare, la operaia de backup se va proceda la salvarea pista cu pist a partiiilor sistem i la salvarea fiier cu fiier a zonelor utilizator.Partiiile UNIX sunt vzute ca discuri logice. Ele au dezavantajul c nu se poate scrie un fiier dincolo de limita unei partiii. UNIX poate crea un singur disc logic foarte mare prin unirea mai multor discuri fizice printr-un procedeu denumit stripping. Acest sistem ofer posibilitatea existenei unor fiiere de dimensiuni foarte mari, dar au dezavantajul c la defectarea unuia dintre discuri ntreaga informaie de pe toate discurile este nefolositoare.

Procesul INIT-care are Id-ul nr 1 si va fi parintele tuturor proceselor instalate ulterior. Pt a instala aceste procese , comanda init citeste o tabele numita init/tab. Este cea mai importanta tabela din system , deoarece ea contine viitoare configurare a sistemului. Init se uita in aceasta tabela pt a stii in ce stare sa se puna. Starea sau nivelul de rulare reprezinta intreaga configuratie viitoare a pc-ului. La un anumit moment de timp , init se poate gasi intr-o singura stare .Tipuri de stare:S- utilizator singur (fara taskuri in background)0-shutdown(halt)1-utilizator singur ()2-multi utilizator3- multiutilizator cu retea4- definite de utilizator5- shutdown6-shutdown imediat(restard)

O nregistrare din tabela inittab este compus din patru cmpuri:- cmpul 1: cmpul etichet cu ajutorul cruia init-ul sorteaz ordinea de execuie a tabelului;- cmpul 2: o list ce conine strile n care va rula procesul n cauz- cmpul 3: cmpul aciune ce determin ce aciune va lua init-ul n raport cu procesul din list- once: se ruleaz comanda i se continu procesarea; la schimbarea de stare , dac comanda ruleaz n continuare, ea nu se va mai rencrca- uspown- spune comenzii init ca daca comanda nu mai ruleaza sa o reporneasca.- powerfail: comanda se va executa in mod imediat cu conditia sa existe echipamentele hard de rigoare.- powerwait: asemeni cu prima cu excepria faptului ca init astepata terminarea comenzii in curs, dupa care o muta pe comanda powerfail.- sysinit: se ruleaz comanda nainte ca orice acces de la consol s se fi produs- cmpul 4: numele comenzi

Comanda PS (process status) data in forma implicita, aceasta afiseaza id-ul procesuluo, id-ul terminalului, timpul de rulare si numele scurt al comenzii.$sleep 100&- determin somnul de 100 de secunde$ps- afieaz urmtorul tabel

PIDTTYTIMECOMMAND

81con0:01sh

4022con0:00sleep

4084con0:00ps

$ps L- determin afiarea detaliat a raportului despre procesele din sistem

Cmpul F este cod in octal si val lui poate f: 01proces n memorie02proces de tip sistem04proces blocat fie datorit comenzii lock fie datorit ateptrii pentru o operaie I/O10proces transferat (parial) pe disc n vederea swap-ului20proces monitorizat de alt proces (n curs de debug)Cmpul S: S-sleep proces adormitR-running proces ce ruleazI-intermediate proces n stare intermediar, pe cale s ruleze, s fie blocat sau s se termineZ-zombie procesul s-a terminat dar nu a fost eliminat din lista de rulare din diverse motiveUID: - afieaz identificatorul proprietarului procesului (User ID). la $ps f se afieaz username-ul n clarPID: - afieaz Process ID PPID: - afieaz identificatorul de proces al printelui procesului currentC: - fr semnificaie pentru utilizatori obinuii, afieaz doar timpul de utilizare a procesorului (n procente) pentru planificarea procesuluiPRI: - determin prioritatea procesului n lista de procese. O valoare mai mic indic o prioritate mai mareNI: - folosit, n mic msur, la determinarea prioritii. Vine de la NICE (frumos)ADDR1 i ADDR2: - adresa primei pagini a procesului, putnd reprezenta i adresa de evacuare pe disc. Necesar la repararea aplicaiilor czuteSZ: - size (mrimea) reprezint dimensiunea n blocuri de 1 KB a imaginii principale a procesului

WCHAN: - adresa de ntrerupere a unui procesTTY: - portul de la care a fost lansat procesul respectivTIME: - timpul scurs de la lansarea procesului COMMAND: - comanda scurt a procesului. $ps f determin afiarea comenzii lungi (inclusiv PATH-ul)Oprirea unui proces cu ajutorul comenzii $killDup partea de informare i pentru a avea un control asupra proceselor, UNIX ofer semnale de proces.Semnalele de proces reprezint adevrate ntreruperi cu funcia de a ntrerupe execuia normal a unor procese i de a cauza preluarea controlului de ctre o subrutin de ntrerupere care n cele mai multe cazuri afieaz un mesaj de eroare dup care se autoaborteaz.$kill -9 81- determin transmiterea semnalului kill la procesul cu PID-ul 81Eliminarea printelui unei serii de procese e important, dar nu suficient i conteaz mult modul n care procesele fiu sunt omorte. Terminarea proceselor se recomand a se face ntr-o list de jos n sus (de la fiu la printe). Cnd lansm comanda $kill ctre un printe, acesta va trimite semnale de nchidere la rndul su ctre fii. Dac un semnal ajunge la un fiu deja mort, $kill emite un mesaj de eroare dup care se autoaborteaz, lsnd perspectiva rmnerii de procese fiu nenchise (zombie).

Comanda $whoDac $ps era o comand pentru determinarea unui instantaneu al sistemului de operare din punct de vedere al kernel-ului, $who este un instantaneu din punct de vedere al utilizatorului. n forma ei cea mai simpl, $who ne afieaz cine este logat la un moment dat pe un sistem UNIX, afindu-ne numele de utilizator, linia (portul) la care este conectat, momentul conectrii, timpul de mers n gol (idle time perioada n care utilizatorul nu a apsat nici o tast) i unele comentarii.

Windows: Memoria virtual

La SO windows, memoria virtual, se compune din memoria RAM fizica si dinttr-un fisier de swap aflat pe harddisk. Sistemul schimba mereu segmente de cod si date.Memoria virtual este organizata in segmente periferice. Fiecare segment continand una sau mai multe pagini de 4 KB.

Interpretare:biii 31-22: index ntr-un director de tabelebiii 21-12: index ntr-o astfel de tabel de paginbiii 11-0: deplasarea n pagin (pentru a ajunge la byte-ul dorit)Toata aceasta structura este ancorata la o adresa care este incarcata intr-un singur registru de microprocessor numit CR3. Ori de cate ori SO comuta o aplicatie acesta va schimba continutul acestui registru.Pt ca spatial este destul de mare, SO dispune de un fisier pe Harddisk numit fisier de paginare in care se mentine o parte din aceste tabele:

biii 31-12 (20 bii) indexul tabelei de paginDAU/SR/WP

D-dirty- arata daca pagina a fost scrisa cu ceva.A-acces- arata daca pagina a fost vreodata accesata.U/S- user/supervisor- arata daca pagina este de tip utilizator sau de tip system.R/W-read/write-arata daca pag este deschisa la citire/scriere.P-present-arata daca pag este incarcata in memoriei.

Windows protectia memorieiOrice sistem de operare trebuie s ofere sisteme de protecie pentru:1. Datele utilizatoruluiO prim problem este rezervarea numai pentru sistemul de operare a dreptului de a seta tabele de pagini ce descriu zone exacte de memorie la care un program poate avea acces.Flag-ul R/W din intrarea n tabela de pagin mpiedic un program s modifice o pagin read-only.Flag-ul U/S permite sistemului de operare s i protejeze memoria proprie de orice acces a unei aplicaii de utilizator.2. Protecia ntre programele concurenteOricnd o aplicaie vrea s acceseze o zon de memorie care nu este n zona de memorie alocat, CPU genereaz o ntrerupere i nmneaz sistemului de operare informaii despre problem. Exist situaii cnd referirea dincolo de spaiul de memorie a unui task s fie legal (Ex.: atunci cnd un apel de funcie mpinge pe stiv parametrii care depesc memoria alocat aplicaiei. n acest caz sistemul de operare este obligat s mai aloce memorie aplicaiei, dup care aceasta este repornit).n alte cazuri, un mesaj de referire invalid a memoriei apare pentru a indica o problem software, spre exemplu o aplicaie care vrea s acceseze ce nu are dreptul s acceseze. n acest caz, sistemul de operare nu are nimic altceva de fcut dect s ncerce nchiderea aplicaiei ce a provocat aceast referin.

Windows :Protecia sistemului de operareCPU 386 este pus n situaii n care acioneaz ca un comutator de task-uri, mnuitor de ntreruperi i alte asemenea solicitri ale gestiunii de sistem. Nucleul Windows trebuie s fie singurul software din computer care s implementeze aceste operaii.Pentru a putea accesa funcii privilegiate trebuie s existe un mod controlat prin care CPU s comute ntre nivele diferite de privilegiu: acest lucru se poate face printr-o poart de intrare specializat ntr-o tabel de descriptori ce permite transferuri controlate ntre inele. Sunt folosite patru pori pentru aceste operaii:CALL- pentru apeluri de rutine de alte privilegiiINTERUPT - pentru gestionarea de ntreruperiTASK- pentru comutarea de task-uriTRAP- pentru debugging-ul de aplicaiiCnd o aplicaie trece printr-o asemenea poart ctre Ring0, se genereaz noi indicatori de instruciune i de stiv, care sunt apoi folosite pentru manipularea datelor sensibile. Rentoarcerea n programul apelator reface contextul n care a fost pornit programul.

Windows:Protecia de dispozitiveSolicitarea proteciei de dispozitive apare:- la partajarea corect a unei resurse (HDD)- pentru arbitrarea ncercrii de a utiliza o resurs nepartajabil (un port COM)Accesul de nivel jos (low-level) = la nivel hard, un program controleaz toate operaiile de intrare-ieire prin manipularea porilor I/O i a solicitrilor de ntrerupere (IRQ = Interrupt ReQuest);Pentru fiecare resurs, sistemul trebuie s aloce o adres de I/O i un IRQ unice (n general, deoarece se ntmpl ca dou sau mai multe dispozitive s mpart acelai IRQ). ntr-un sistem compatibil IBM PC exist 65.566 de pori (adrese de port pe 16 bii). Pentru a lucra cu un dispozitiv, este suficient ca o aplicaie s scrie date ntr-un port i acestea vor fi transmise dispozitivului asociat portului. n acelai mod, pentru a citi date de la un dispozitiv, se citesc date din portul su asociat (instruciunile ASM specifice sunt out i in)n general, un dispozitiv iniiaz o ntrerupere ori de cte ori are nevoie de atenie. Microprocesorul i sistemul de operare apeleaz un driver care tie s rezolve toate problemele legate de comunicarea cu dispozitivul. Sistemul de operare este responsabil de instalarea i configurarea acestor rutine ale driverului.Accesul de nivel nalt (high-level)= apare atunci cnd o aplicaie solicit accesul la un dispozitiv printr-o cerere de deschidere a dispozitivului adresat sistemului de operare. Dac cererea are succes, aplicaia va putea apoi s citeasc/scrie pe dispozitiv. ntr-un final, aplicaia va renuna la accesul la dispozitiv tot printr-o cerere adresat sistemului de operare.Cererile prin care o aplicaie solicit accesul la un dispozitiv se realizeaz prin intermediul API-ului Windows. Sistemul de operare valideaz apelurile API i le nmneaz driverului specific de dispozitiv, asistnd gestiunea erorilor i planificarea taskurilor.

Windows: Suport APIToate SO Windows dispun de 3 module majore numite kernel, user, GDI, ce alcatuiesc subsistemul windows.Modulul kernel contine toate fct de tip API rreferitoare la gestiunea de system.Modulul user contine toate fct legate de lucru cu ferestre , fct pt mesaje si casete de dialog.Modulul GDI contine toate fct legate de grafica(desenare de linii, lucru cu culori, schimbare format caractere) si fct de tiparire.Atunci cand utilizam fct de tip API utilizatorul va pune in programul sau numele unui astfel de fct, spre deosebire de DOS unde se lucre cu fct de numele. Cele 3 module sunt niste ex de DLL (dynamic link librarie)- toate aplicatiile windows protejeaza fct din aceste 3 biblioteci.

Windows- Legarea dinamicaIn trecut atunci cand compilam si editam legaturile pt un prog, editorul de legaturi copia in prog executabil partile de cod.In SO Windows moderne , cand se utilizeaza legarea dinamica, editarea de legaturi se executa in 2 pasi.1)editarea de leg2)incarcarea program In primul pas editorul de leg mai copiaza inca un cod, dar parcurge si niste biblioteci care contin referinte spre anumite resurse. Se numesc biblioteci de import. Ele contin numele modulului si un punct de intrare. Rezolvarea acestor referinte se face in momentul incarcarii si executiei progr de catre SO. Orice aplicatie care dispune de legarea de dinamica si declara astfel de pct de intrare se numeste biblioteca legata dynamic. Windows utilizeaza in mod extensive DLL. Spre ex un driver de imprimanta va declara intotdeauna aceleasi pct de intrare, indifferent de ce tip de imprimanta.