Sunteți pe pagina 1din 15

MONOPROGRAMAREA este o tehnica de exploatare a unui SO prin executia secventiala

a lucrarilor.
Caracteristici: a) planificarea lucrarilor se face strict secvential, intr-o ordine prestabilita; b)
in momentul executiei, fiecarei lucrari ii sunt puse la dispozitie toate resursele sist de calcul;
c) fiecarei lucrari ii corespunde un sg proces la un mom dat, a.i. at cand apare o operatie de
I/E, microprocesorul trebuie sa astepte terminarea acestuia pt a putea continua executia
lucrarii initiale. Scopul este reducerea timpului petrecut de un program in masina.
Executia lucrarilor in monoprogramare. La aceasta metoda de programare exista un
procesor de comunicatii care se ocupa de transferul datelor mem princ mem aux. Acesta
permite executarea DMA (direct memory access) NPR (non processor request) Existenta
procesorului de comunicatie duce la cresterea productivitatii sist de calcul.

MULTIPROGRAMAREA pp existenta simultana in memorie a mai multor lucrari.
Timpul in care procesorul se afla intr-o stare de asteptare pt transferul datelor pt un anumit
proces poate fi exploatat, acesta putand fi preluat de o alta lucrare. Se imbunatateste astfel
randamentul SO respectiv.
Caracteristici. a) existenta simultana a mai multor lucrari in mem interna; b) existenta unui
mecanism de trecere de la o lucrare la alta; c) existenta unui mecanism de protectie intre
lucrari astfel incat acestea sa nu se perturbe reciproc sau SO; d) Exist unui mecanism de
gestiune a resurselor fizice si logice solicitate de catre lucrarile in executie.
Planificarea executiei lucrarilor. Orice sistem de calcul care utiliz tehnica multiprogramarii
detine o comp numita monitor de planificare a lucrarilor. Acesta are rolul de a selecta lucrarile
pt care timpul de neocupare al unitatii centrale este minim. Are 2 funtii principale: -
asigurarea prioritatilor; - alocarea resurselor care utiliz aceste prioritati. Algoritmi de
planificare:
STF (shortest processing time first) = se executa mai intai lucrarile cu timp minim de
executie, se urmareste trecerea cat mai rapida a lucrarilor prin sistem.
LTF (longest processing time first) = se executa mia intai lucrarile cu cel mai lung timp de
executie.
SMF (smallest memory requirement first) = se executa mai intai procesele care solicita cea
mai putina memorie
LMF (largest memory req first) = se executa mai intai procesele care solicita cea mai multa
memorie
FIFO (first in first out) = procesele se executa in ordinea sosirii
LIFO (last in first out) procesele se executa in ordinea inversa sosirii
Round Robin = procesele se afla asezate intr-o coada circulara in care fiecare primeste o
cuanta de timp.

TEHNICA SPOOLING (simultaneous peripherial operations online) - activitatea de
suprapunere a op de intrare, prelucrare si iesire prin intermediul tehnicii Spooling. - realizeaza
incarcarea maxima a dispoz periferice. - ofera o noua gama de facilitati utilizatorului.
Caracteristici: a) utilizarea memoriei auxiliare de capacitate mare si a tehnicii
multiprogramarii; b) se realizeaza o incarcare maxima a dizpozitivelor periferice; c) se
creeaza o serie de zone de mem tampon (buffer) care simuleaza dizpozitivele fizice prin
dispoz periferice virtuale care permit: -incarcarea unor lucrari inainte ca acestea sa fie
executate; - listarea unor lucrari la imprimanta in timp ce se executa alte lucrari; - executarea
unor lucrari in alta ordine decat cea naturala; - modificarea prioritatii lucrarilor;
TEHNIC CU DIVIZAREA TIMPULUI se refera la utilizarea concurenta a resurselor
unui sistem de calcul de catre n utilizatori aflati in fata unor terminale PC situate local sau la
distanta. Caract generale: a) protectia memoriei fiecare utiliz primeste o partitie de
memorie protejata fara a avea voie sa acceseze partitiile celorlalti utilizatori; b) independenta
utiliz fiecare lucrare a unui utiliz primeste o cuanta de timp pentru executie, daca lucrarea sa
nu se termina in aceasta cuanta, ea va fi evacuata in memoria auxiliara intr-o coada, lasand
locul unei alte lucrari. Caract hardware: a) memoria interna de capacitate mare si o UC
rapida, care sa asigure un timp minim de raspuns; b) ceas de timp real, care sa egnereze
intreruperile necesare comutarii lucrarilor; c)memorie externa cu acces direct (DMA); d) un
sistem de comunicatii alcatuit din modemuri, comutatoare, concentratoare. Caract software:
a) SO aloca resursele conform unui alg de planificare; b) mecanism de acordare a prioritatilor;
c) alocarea de mem pt fiecare lucrare si stabilirea adresei de inncarcare a acesteia; d) tratarea
intreruperilor prin rutine specifice; e) prelucrarea colectiilor de date.
MULTIPRELUCRARE - la aceasta tehnica sis de calcul trebuie sa aiba cel putin 2 unitati
centrale care lucreaza in paralel. Oricata putere de calcul are un sist, acesta nu va fi suficient.
Pana la aceasta ora cresterea perfomantei unui sist de calcul se realiza prin viteza de calcul a
U.C. Nu miniaturizarea e problema, ci racirea. O alta sansa de a mari puterea de calcul este
folosirea microprocesoarelor in paralel. O prima categ care se utiliz este: 1) microprocesoare
cu memorie partajata = UC comunica intre ele prin intermediul memoriei partajate. Acest
sistem e f greu de implementat din cauza proiectarii protocoalelor de comunicatie. 2)
multicalculatoare cu pasarea mesajelor: - toate UC dispun de mem proprie; - fiecare UC are
acces doar la aceasta memorie; - este mai lenta, dar mai usor de implementat; 3) calc
distribuite: -calc sunt imprastiate pe o arie mare, propagare de 10-50 ms; -pe un calc se pot
rula fie un singur program fie prog diferite; -se intalnesc 2 mari clasificari: a) sist de calcul cu
proc omogene; b) sist de calcul cu proc diferite.
Oportunitatile folosirii multipreluc: a) incarcarea partajata a programelor; fiecare UC isi
alege si prelucreaza o anumita lucrare din coada de asteptare. b) separarea diverselor functii al
unui sistem de calcul; fiecare fct va fi repartizata unui singur proc. c) cresterea fiabilitatii sist:
1) duplexarea sistemelor, in care fiecare procesor are cel putin o dublura, care se gaseste in
stand-by si care intra in actiune, numai at cand cade procesorul principal. Uneori acest
procesor secundar este folosit la executarea altor activitati. 2) sisteme duale, la care cele 2
procesoare lucreaza simultan la aceeasi problema, verificandu-se periodic in mod reciproc.
GESTIUNEA MEMORIEI - In sist de calcul, exista o serie de dispozitive de memorare,
organizate in final pe 2 nivele: -memorie interna (principala); -memorie externa (auxiliara).
Gestiunea de memorie are rolul de a imparti informatia intre aceste 2 nivele. Scopul este
cresterea vitezei de executie a programelor concurente. Activitatea de gest a memoriei are la
baza 3 algoritmi: 1) algoritmul de transfer, care det mom la care un bloc de date este transferat
din mem externa in mem interna, in avans de executie sau in timpul executiei; 2) algoritmul
de plasare, care stabileste zonele libere de memorie interna in care un anumit bloc ar putea fi
plasat; 3) algoritmul de reamplasare, care det ce blocuri si la ce moment de timp, vor fi
reamplasate in cadrul mem interne.
ADMINISTR. SIST DE FISIERE UNIX La Unix fisierele sunt memorate pe HDD sub
forma de blocuri(max 4 KB). Nucleul e cel care tine evidenta tuturor acestor blocuri care pot
fi ocupate, libere, defecte, care constituie rezerva pt reparatii. Nucleul este si cel care
controleaza cine este proprietarul unui fisier si ce drepturi de acces exista la acesta. La Unix
toate fisierele sunt referite in termeni de octeti a.i putem sa scriem pe orice dispozitiv caracter
cu caracter. Structura de directoare la Unix e o structura aorborescentaa cu directorul
radacina in sus. Fiecare utilizator acreditat in sistem Unix are si un director de resedinta care ii
apartine.
- root vf structurii arborescente; - bin binary, dir care conttine in forma binara sau
executabila toate comenzile si utilitarele UNIX; etc dir care pastreaza toate comenzile si
utilitarele necesare administrarii sistemului; lib contine toate bibliotecile de sistem necesare
compilatoarelor; dev contine numele tuturor dispozitivelor periferice instalate sau nu in
sistem; ele sunt niste pointeri catre driverele dispozitivelor periferice; temp pastreaza toate
fisierele temporare; - este accesibil tuturor utiliz; - tot ce se afla in acest dir e sters at cd se
restarteaza sistemul; - lost&found este folosit de catre utilitarul care intretine sistemul de
fisiere; -usr dir in cre se regasesc toate dir de resedinta ale utiliz; - unix contine nucleul SO
si se incarca in momentul pornirii calc.
PLANIFICAREA SI EXECUTAREA JOB-URILOR S.O Unix este un sistem multi-
tasking si multi-utilizator. La un anumit mom de timp in RAM pot coexista mai multe joburi
care pot apartine si la mai multi utilizatori in acelasi timp. Sistemele unix utilizeaza pt
planificare, in general, algoritmul Round-Robin cu prioritate. Aceasta inseamna ca fiecare job
(proces) primeste o creanta in timp, in care are dreptul sa utilizeze microprocesorul. Cand
aceasta creanta de timp expira sau procesorul rateaza sa o foloseasca in intregime, aceasta va
fi transferat intr-o coada circulara de asteptare. Job-urile cu op de I/E intensive au prioritati
mai mari, iar job-urile care ruleaza in bg au prioritatile cele m mici.
Un job cu o prioritate mai mare se asaza in fata in coada de asteptare. In UNIX exista si alte
cozi de asteptare pt dispozitive periferice. Fiecare proces lucreaza pana isi epuizeaza toate
cuantele de timp care ii sunt necesare. Prioritatile joburilor sunt reevaluatela intervale de timp
bine stabilite pt a crea un mediu de exploatare echitabil
WINDOWS; MEMORIA VIRTUAL sist wind, mem virtuala se compune din memoria
RAM instalata si dintr-un fisier de Swap. Acest fisier este un fisier normal (dinamic), care se
poate dezvolta pana la ocupare intregului spatiu liber de pe hard disk. Wind lucreaza cu o
mem virtuala organizata pe segmente paginate. At cand aplicatia solicita un astfel de segment
si se va genera intreruperea de not present care aduce segm de pe hard disk dupa care aplicatia
va continua ca si cand nimic nu s-ar fi intamplat acest mecanism inseamna ca e trasparent
aplicatiei. Un manager de mem slab poate face ca sistemul sa se miste f lent. Procesoarele din
fam Intel au pagina de memorie de 4 kb.
WINDOWS; PROTECIA MEMORIEI - S.O. seteaz tabele pagin care descriu zone
exacte ale memoriei fizice la care un program are acces; - flag-ul read/write mpiedic un
program s modifice coninutul unei pagini read only sau a unei pagini de cod a programului;
- flag-ul user/supervisor permite S.O. s-i protejeze memoria de accesul aplicaiilor. Cnd o
aplicaie ncearc s acceseze o locaie de memorie care nu e n memoria proprie alocat, proc
genereaz o ntrerupere i informeaz sistemul despre problem. Uneori, mesaje de referire
invalid pot aprea pt a indica o problem soft, iar S.O. va rspunde prin nchiderea
programului respectiv.
WINDOWS; PROTECIA DE DISPOZITIV - Cand porneste o aplicatie, Win se uita sa
vada daca are de-a face cu o aplicatie Win sau Dos.
Toate aplicatiile Win utilizeaza api-urile pt a solicita SO-ului accesul la diferite dispozitive. In
Win, pt aceste aplicatii e calea unica de a accesa un dispozitiv. Daca o aplicatie Win incearca
sa acceseze in mod direct un dispozitiv, proc va genera o intrerupere pt violarea de protectie,
iar SO-ul va anula aplicatia in cauza.
O aplicatie DOS care incearca sa acceseze in mod direct un dispozitiv nu este un lucru
neobisnuit deoarece DOS-ul lucra in aceasta maniera. O aplicatie DOS ruleaza in modul
virtual 8086 si intr-o masina virtuala separata. Pt a putea permite acestui gen de aplicatii sa
acceseze in mod direct un dispozitiv, Win seteaza un bitmap de permisiuni I/O pt fiecare
masina virtuala. Acest bitmap este o matrice de biti (flag-uri), un flag pt fieare port I/O care
spune daca acesta poate fi accesat sau nu in mod direct.
Tot acest mecanism constituie un element cheie in functionarea Win si s. n. virtualizare de
dispozitiv. El este important deoarece proc furnizeaza facilitati hardware de protectie selectiva
a portilor I/O pe baza de tratare individuala de la program la program si cu informarea S.O.-
ului de fiecare data cand apare un acces direct.
WINDOWS; LEGAREA DINAMICA - In trecut, atunci cand se compila si se executa
editarea de legaturi pt un program, SO parcurgea o serie de biblioteci din care copia cod-
obiect in corpul aplicatiei noastre. Azi, la Win, editarea de legaturi a fost impartita in doi pasi:
- editarea legaturilor; parcurgerea unor biblioteci din care copiaza cod si biblioteci cu referinte
(import libraries); - incarcarea programului. Editorul de legaturi scaneaza bibliotecile de
import si include in programul executabil un nume al modulului tinta si un punct de intrare.
Apoi referintele sunt translatate in adrese reale. Win e alcatuit in mare parte din module DLL.
Driver-ele de dispozitiv sunt si ele DLL-uri si au un set de puncte de intrare standard. Acest
lucru face ca, atunci cand, de exemplu, schimbam imprimanta totul sa se rezolve doar prin
simpla inlocuire a driverului de imprimanta, fara a fi necesara recompilarea nucleului.
PLANIFICATORI WINDOWS
SO windows dispun ptr planificarea proceselor de 2 planificatori: primar sic el al cuantei de
timp. Planificatorul primar este cel care acorda prioritati firelor/proceselor. Un process
suspendat este un process care nu va primi accets la microprocessor. Planificatorul cuantei de
timp este cel care acorda proceselor nesuspendate o parte din timpul proceselor disponibile(o
coanta). Planificarea proceselor are loc in 4 pasi: 1.planificatorul primar acorda prioritati cu
valori intre 0-31 fiecarei fir de executie; 2.planificatorul primar suspenda toate procesele care
nu primesc prioritate maxima ; 3.planificatorul cuantei de timp in functie de aceste prioritati si
de focalizare a masinii virtual aloca cuante de timp proceselor/firelor nesuspedate;4.la fiecare
20milisecunde planificatorul primar reevalueaza prioritatile aflate in memorie.

CONCEPTUL DE MEMORIE VIRTUALA - Conceptul de mem virtuala, constituie o
combinatie de facilitati hardware si software care ofera utiliz o serie de avantaje de operare,
cel mai important fiind un spatiu mare de adresa logica. Adresa logica(virtuala) constituie
domeniul de def a unei functii f(t): Ad.virt Ad. Fizica. La baza conceptului de mem.
virtuala, se gasesc 3 notiuni: - spatiul de adresa virtuala sau logica; -spatiul de adresa fizica; -
functia de translatare in memoria virtuala. Elem de baza cu care opereaza mem. virtuala sunt:
-pagina= care este o unitate de mem de dimensiune fixa; -segmentul = care este o unitate de
mem de dimensiune variabila, dar intre limite predefinite.

MODURI DE ORGANIZARE A MEMORIEI VIRTUALE:
1.Organnizarea la nivel de adresa. In acest mod de organiz se lucreaza cu date la nivel de
bloc. Daca procesul refera adresa virtuala ai aceasta se introduce in registrul de adresa
virtuala RV; registrul REZIDENT este pus pe 0, iar registrul ACCES pe 1, initializandu-se
procesul de translatare.
- daca pt ai se gaseste o intrare in tabela ft atunci continutul gasit se introduce in registrul de
adresa al memoriei RM, avand loc extragerea din memoria interna a inf solicitata de procesor
de la adresa reala bj;
- daca nu se gaseste o intrare in ft, atunci RM=0, registrul REZIDENT este pus pe 1 si are loc
innitierea celor trei alg care vor aduce din memoria externa in memoria interna inf referita de
procesor, actualizand totodata si tabela de descriere a functiei de trannslatare ft.
2.Organizarea la nivel de pagina. Pagina se compune din m multe blocuri, avand o
generalitate m mare. Pagina virtuala= pagina fizica. a) RM(Q)/=0 pagina este prezenta in
mem interna, iar registrul rezident este 0 si acces 1. b) RM(Q)=0 rezidentul este pe 1, se
pornesc cei 3 alg ai mem virtuale si pagina este incarcata in mem interna, facandu-se in
acelasi timp si actualizarea tabelei MTP si a registrelor. Ac mod de oganiz permite prog sa
aiba numai partea necesara la momentul executiei in mem interna. Exista un schimb
permanent de pagini intre mem interna, externa si HDD.
3.Organizarea la nivel de segment. Segmentul este o structura de date cu dimensiuni variabile,
putandu-se dimensiona dupa logica programarii. In registrul RV se incarca adr virtuala
formata din 2 campuri: S care reprez contextul de cautare in tabela MTS si C care reprez
adresa curenta din segment. In MTS la adresa data de S gasim 2 campuri R si D care se vor
incarca in reg buffer R repr adresa de baza a segmentului, iar D dim segmentului. Aceasta
dim intra intr-un comparator unde se verifica adresa de cuvant a.i. ea sa nu depaseasca limita
superioara a segmentului.
4.Organizarea la nivel de segment paginat. Adresa ai se incarca in reg RV si are 3 campuri: -S
inndex pt MTS; -CP index de cautare in tabela paginii specifice; - CC adresa cuv in
pagina.
Inreg din tabela MTS au 2 campuri R care repr indexul de cautare in MTP pt a gasi adr de
baza a tabelei pt pag, iar D repr dim segmentului in nr de pagini.


NUCLEUL UNIX partea cea mai condensata a sist de operare care realiz intreaga
functionalitate a unui sist de calcul. Nucleul e chemat sa ascunda complexitatea hard. Nucleul
treb sa indeplineasca 2 sarcini primare: 1)sa coordoneze lucrul din multiprogramare; 2)
gestionarea sistemului de fisiere pe mediile de stocare. Nucleul UNIX este rezident in mem
RAM de la pornirea pana la oprirea calc, iat restul SO si aplicatiilor se incarca doar at cd este
necesar. La sistemele Unix nucleul are in jur de 1 MB. Nucleul realiz 4 functii majore: 1)
interfata cu hardware-ul; 2) administrarea sistemului de fisiere; 3) administrarea memoriei; 4)
planificarea si executarea joburilor.
Structura Sistemului Unix-O structur standard a unui sistem de fiiere UNIX
conine urmtorii directori avnd n componen: /ROOT;/ dev fiiere speciale
pentru dispozitivele periferice: consola sistem, terminale, discuri, imprimant, etc.;/
bin utilitare n form executabil: compilatoare, asambloare, instrumente pentru
dezvoltarea programelor;/ lib biblioteci pentru limbaje de programare i utilitare;/
etc programe pentru administrarea sistemului: fiiere cu parole, comenzi de
iniializare;/ tmp spaiu temporar de manevr folosit de programele de sistem;/root /
unix nucleul sistemului de operare, direcionnd sistemul ctre /aixps2/unix.std;/ u
director n care se creeaz Home directory pentru fiecare utilizator;/ local partiia
activ (de aici se face bootarea);/ lost+found director unde se ataeaz fiierele i
directorii gsii ca nefcnd parte din nici un sistem de fiiere;/ usr alte programe
necesare utilizatorilor;
ADMINISTRAREA MEM IN UNIX Unixul fol conceptul de memorie virtuala paginata.
Intr-un astfel de sistem are loc in permanenta un transfer de pagini intre mem interna si HDD
si invers, operatie numita paging. Paginile sunt unitati de mem de dim fixa. Aceasta dim poate
fi stab de catre admin de sistem la instalarea sistemului. Pt paging UNIX utiliz o partitie
speciala pe HDD numita partitie de swap.
EXPANDAREA VARIABILELOR Inlocuirea unei var cu valoarea ei
PATH = /usr/bin : /etc:
^ nume var ^ valoare var. $echo PATH -> afiseaza PATH.
$ echo $PATH -> valoarea variabilei. In cazul in care avem 2 var X si X1 si dormi sa
definim o a treia Y=$X1. In acest caz shell-ul intra in deruta. Trebuie sa folosim acolade
Y={$X1} atribuie var Y valoarea var X1.
Y={$X}1 atribuie lui Y valoarea var X cu un 1 atasat.
In cazul acoladelor exista 4 situatii: 1. ${variabila: -cuvant} acceasta forma indica: daca var
nu este setata sau este nula se va inlocui expr prin cuvant. Daca var este setata si nenula at se
inlocuieste expresia prin valoarea var. 2. ${variabila:=cuvant} expresie identica cu prima
cu exceptia faptului ca at cd var este nesetata sau nula ea va fi setata la valoarea cuvantului.
Ex: a) X=hello $echo $X $echo ${X:-goodbye}
$echo ${X:=goodbye} b) X nu e definita. $echo $X nu se afis nimic
$echo ${X:-goodbye} -> goodbye $echo $X -> nu se afis nimic
$echo ${X:=goodbye} -> goodbye $echo $X -> goodbye.
3. ${variabila;?cuvant} - daca var e setata si este nenula nu se intampla nimic, daca var nu
este setata sau este nula se afiseaza cuvantul si se revine la prompt. Ac forma este folosita pt
mesaje de atentionare sau erori.
$echo ${PATH:?cale nesetata!} 4. ${variabila:+cuvant} este inversa primei. Daca var este
setata si nenula se inlocuieste expresia prin cuvant, in rest nu se intampla nimic.

SUBSTITUIREA COMENZILOR Este o facilitate foarte puternica pusa la dispozitia utiliz
de Unix prin care iesirea unui program devine intrare intr-o variabila sau inn linia de comanda
a unui alt program.
Ex: `x=ls job` $comanda1 param1 param2 `ls job`
Procesul de analizare gramaticala a liniei de comanda nu este recursiv, innsemnand ca shell-ul
nu va mai parcurge linia de comanda expandand in continuare.
Ex: $echo `echo $PATH ` -> afiseaza $PATH
$echo `echo `date ` ` -> afiseaza `date`

TRANSFERAREA PARAMETRILOR COMENZILOR UNIX
Dupa ce shell-ul efectueaza analiza gramaticala a liniei de comanda acesta va separa
parametrii conform var IFS dupa care trece la transferarea acestor parametri si la executarea
comenzii. Exista 2 cai prin care are loc aceasta transferare. 1) Prin intermediul unor var
dedicate: - daca comanda provine dintr-un program scris in C parametrii vor fi transferati prin
niste argu[1] argu[2]. daca comanda provine dintr-un shell script param vor fi transferati
prin inermed unor var notate $1 $2 ... $9. 2) Transferarea param prin mediu. Modul in care
shell-ul executa o comanda: in UNIX shell-ul nu produce doar o simpla cautare a comenzii pe
hardpt a aduce in memorie si pt a o lansa in executie. Inainte de aceste operatii shell-ul isi
creaza o copie identica, dar poate identifica ce copie este parintele si care este fiul. Comanda
se va rula in subshell-ul fiu care contine toate var parintelui. Astfel shell-ul poate transfera
parametrii comenzii
PROCESUL INIT la pornirea calculatorului, dupa executarea rutinelor de testare a
configuratiei sistemul va citi primul bloc de pe hard disk MBR unde din tabela de partitii
stabileste care este partitia activa, deci partitia din care urmeaza sa se incarce sistemul de
operare. Dupa aceasta, sistemul va citi, primul bloc din partitie -BOOT, care contine un
program specializat numit LOADER, ce va incarca in memorie si va lansa in executie nucleul
sistemului de operare. Nucleul va instala o serie de procese, in functie de versiunea de sistem
in spatiul utilizator. Spatiul utilizator este reprezentat de catre zona de memorie alocata unui
utilizator. Dintre procesel lansate de catre nucleu, cel mai inportant este init. Cea mai
importanta tabele din sistemele Unix este tabele inittab. Aceasta tabela contine instruct pt
felul in care se va executa init si in ce stari va fi pus sistemul in continuare. O stare este o
configuratie software a intregului sistem la un moment dat. Programul init nu poate fi decat
intr-o singura stare la un anumit moment de timp. Starile in care poate lucra procesul init: S
single user - utilizator singur fara task-uri; 0 shut down; 1 utilizator singur, dar cu task-uri
in bg; 2 multiutilizator fara retea; 3 multiutilizator cu retea; 4 stare definita de utilizator;
5 shut down; 6 shut down imediat. O inregistrare in tabela inittab are 4 campuri separate
intre ele prin :: 1) campul eticheta care spune procesului init in ce ordine trebuie executate
inregistrarile din tabela inittab; 2) contine starile in care comanda respectiva trebuie rulata; 3)
campul actiune (atitudine) pe care intul trebuie sa o execute fata de procesul in cauza; 4)
campul care contine numele comenzii.
init : 2 : initdefault : Inainte de a se pune in starea implicita initul va exec procesele care au
in campul actiune flag-urile boot sau bootwait. Scriptul brc(boot record) este cel care citeste
ceasul hard al masinii si seteaza dupa el ceaul soft, curata dir temporare si lanseaza comanda
fsck care realizeaza verificarea si eventual repararea sist de fisiere run 2 : 2,3 : wait : re2
Once ii spune lui init sa lanseze un proces, iar at cd isi sch starea, daca procesul s-a
terminat sa nu-l mai relanseze. Responde ii spune lui init sa lanseze un proces, iar at cd isi
sch starea, daca procesul s-a terminat sa-l relanseze. Powerfail si Powerwait se lanseaza la
caderea de tensiune. Sysinit apare la prg care se vor lansa inainntea oricarei actiuni de la
consola; - se foloseste pt lansarea unei interfete grafice.
PROCESORUL 80286 A introdus modul protejat, cu toate acestea 286 a continuat sa
pastreze compatibilitatea cu predecesorul sau - 8086. La pornire 286 lucreaza in modul real
dupa care comuta in modul protejat. In modul protejat utilizeaza continutul registrelor de
segment ca index intr-o tabela in memorie ce contine inregistrari de 8 octeti fiecare
descriptori.
Tabela GDT e creata de SO pt a-si aloca spatiu de memorie si pt a oferi task-urilor spatiu
comun de memorie. Proc dispune de 2 inreg hard LDTR si GDTR care contin adresa de baza
a celor 2 tabele. Continutul GDTR ramane de regula neschimbat de-a lungul unei sectiuni de
lucru. Doua aspecte majore sunt de remarcat la modul protejat: 1) introduce notiunea de
protectie a memoriei, astfel ca S.O poate rula mai multe task-uri in acelasi timp, fiecare in
propria zona de memorie. 2) introducerea accesului indirect la memorie prin intermediul
descriptorilor a.i progr pot sa plaseze registrii in memorie in mod convenabil.

PROCESORUL 80386 A evoluat din 286 pe urmatoarele cai: 1) intern adresa, registrii,
datele au crescut la 32 de biti. Dimensiunea maxima a unui segment devine 4 GB. 2)
programatorul dispune de un spatiu liniar de adrese de la 0 la 4 si de o schema completa de
memorie virtuala paginata. 3) un SO corect echipat poate rula simultan aplicatii 8086,286 si
pe 32 de biti. 4) modul virtual 8086 si bitmapul pemisiunilor I/O permit o compatibilitate de
100% cu aplicatiile DOS. Adresarea Microprocesorul 386 poate rula apliactii fie in mod real
(virtual 8086), fie protejat (gen 286), fie pe 32 de biti.
Intrarea de descriptor 80386:
In modul virtual 8086 proc 386 utiliz adr de baza 0-15. celelalte 2 campuri pt adr de baza (16-
23;24-31) sunt ignorate. In modul 286 adr de baza e formata din 2 campuri: bitii 0-15 + bitii
16-23 (al treilea se ignora).Pe 32 de biti se iau in considerare toate cele 3 campuri.Limita se
compune din 2 campuri cu un total de 20 biti. Cu 20 de biti limita poate fi la 1MB.
G granularity, este singurul bit de granularitate; daca e 0 sist lucreaza cu granularitate pe biti
si limita se refera la un segment 286; daca e 1 granularitatea e pe pagina si limita repr limita in
pagina. O pagin a de memorie in Win are 4 KB.
WINDOWS; PROTECIA SISTEMULUI DE OPERARE se refer la instruciunile
speciale ce opereaz cu comutri de task-uri, mnuirea ntreruperilor sau solicitrilor de
sistem i mpiedic coruperea S.O. Proc furnizeaz pt cererile de protecie 4 niveluri de
privilegiu. Pe nivelul 0 un software poate s schimbe tabele de pagini, s comute modurile
proc, s porneasc/opreasc paginarea sau s opreasc proc. Pt restricionarea aplicaiilor,
acestea ruleaz numai pe nivelul trei. Dac un program cu nivelul 3 ncearc s execute
instruciuni privilegiate, proc va genera o ntrerupere i va nchide programul care a provocat-
o.
Proc are mecanisme complexe pt controlul soft care ruleaz pe cele 4 niveluri. Comutarea se
realizeaz prin intermediul gate-urilor intrri specializate n tabela descriptor. Exist n
prezent 4 tipuri de pori: call, interrupt, task i trap.
GESTIONAREA MEMORIEI
In sistemele windows, gestionarea memorie se realizeaza pe doua nivele: un nivel al
programatorului de aplicatii si un nivel al sistemelor de operare.
Spatiul de memorie virtual a aplicatiei este alcatuit din:
Spatiul privat(0-2G) este spatial de memorie virtuala in care aplicatia isi poate aloca memorie
in mod dynamic, atunci cand ruleaza. Desi este un spatiu privat al aplicatiei acesta nu este
total protejat deoarece si alte aplicatii pot accesa aceasta zona.
Spatiul partajat(2-3G) de regula contine DLL-urile aplicatiei si este folosit si pentru
comunicarea intre aplicatii.
Spatiul system(3-4G) contine DLL-urile de system si alte resurse apartinand sistemului iar
aplicatia nu poate sa-si aloce memorie in aceasta zona, doar poate sa o acceseze.
Alocarea dinamica de memorie pentru aplicatie se poate face fie printr-o cerere explicita a
aplicatiei fie in mod implicit atunci cand o aplicatie solicita o resursa care are nevoie de
memorie cum ar fi spre exp deschiderea unei ferestre.Ptr gestionarea memorie sistemului de
operare prin Win 32 API pune la dispozitia aplicatiei o serie de functii de gestionare a
memoriei care pot fi impartite in trei mari categorii:1.exista un set de functii care ii permit
aplicatiei sa creeze oricate heap-uri locale doreste. In plus aplicatia poate dirija sistemul de
operare ca in unele situatii sa foloseasca anumite heap-uri locale. In aceste heap-uri pot fi
generate structure de date asemanatoare, de exp: butoane. 2. O a doua categorie sunt functiile
API care permit aplicatiei sa resolve niste zone special de memorie care sa nu mai fie allocate
ulterior. Acest lucru permite aplicatiilor multifir sa acceseze aceeasi zona de memorie in mod
simplu, adica printr-un singur pointer. 3. Functii care permit aplicatiei sa deschida un fisier in
spatial privat de memorie si sa mapeze o parte a acestui fisier la mapa de memorie proprie.
Acelasi fisier poate fi deschis si de catre o alta aplicatie permitand astfel accesul rapid catre
fisier de catre mai multe aplicatii care il partajeaza.
UNIX-Shell un program scris in limbajul C proiectat pt a ajuta utilizatorii sa comunice cu
nucleul sistemului de operare. Shell-ul este deci un translator care traduce comenzile de nivel
inalt nucleului in limbaj masina. D.p.d.v al S.O Shell-ul este un interpretator de comenzi si o
poarta pt circa 400 de comenzi. D.p.d.v al nucleului, Shell-ul se incarca si se executa ca un
program oarecare in timp ce pt utilizatori el constituie leg vitala cu nucleul S.O.
Shell-ul este si un limbaj de programare structurat care ne permite sa scriem programe f
complexe numite shell scripts. Diferenta dintre aceste programe si aceleasi programe scrise in
C este ca aceste programe sunt mai lente in executie in schimb efortul de programare este
mult mai redus.




CARACTERISTICILE GENERALE ALE UNUI SHELL
1) Executia comenzilor in foreground. Shell-ul Unix pune pe ecran un prompt la care se pot
introduce comenzi. Dupa apasarea tastei Enter, shell-ul preia comanda si o traduce nucleului
care o va lansa in executie. In aceasta situatie, shellul va astepta pana ce comanda se termina
de executat pt a reveni la prompt. Exceptie fac utilitarele mari care au un set de comenzi
interioare si care revin la prompt printr-o comanda explicita (quit, exit). 2) Procesarea
comenzilor in background. In aceasta situatie, dupa ce shell-ul traduce comanda nucleului,
acesta va reveni imediat la prompt, fara a mai astepta terminarea executiei acesteia. Comanda
va fi asezata de catre nucleu intr-o coada de asteptare. 3) Biblioteca de comenzi incorporate.
Shell-ul este dotat cu o biblioteca de comenzi care se incarca in memorie odata cu acesta. Au
avantajul ca se executa imediat, nemaifiind necesara pornirea unui alt proces si aducerea
comenzii de pe HDD(ls, pwd) 4). Variabilele Sunt zone de memorie care pastreaza valori
specifice necesare sist de operare si utilizatorilor. Utilizatorii le fol foarte des in scrierea de
shell-scripturi. 5) Control I/O redirectari Shellul pune la dispoz un mecanism care permite
schimbarea pct de destinatie standard pt intrari/iesiri si sist de erori spre fisiere. 6) Limbaj
structurat si mediu de program - Shell-ul ne pune la dispozitie structura de programe de tipul
IF, Then, Else; while, until, for. 7) Substituierea comenzilor se refera la abilitatea shell-ului
prin care rezultatul unei comenzi devine intrare fie in linia de text a unei alte comenzi, fie intr-
o variabila.

ORGANIZAREA FISIERELOR SI DIRECTOARELOR IN UNIX - Fisierul este
structura fundamentale de pastrare grupata a informatiei pe mediile de stocare dintr-un sistem
de calcul. In sistemele de calcul Unix toate articolele existente in sist de calcul sunt tratate in
termen de fisier. Intrarile de director in sistemle Unix nu contin decat 2 campuri: -numele; -
inode number. Caracteristici pt scrierea numelor de fisier in unix: 1) la vechile sisteme unix,
numele putea avea lungime max de 14 caract. La unix nu exista extensie. 2) daca dorim sa
scriem nume compuse, vom utiliza puncte sau liniuta de subliniere. 3) nu avem voie sa
utilizam semne cabalistice %, @, ?, $, , spatii si tab-uri. 4) Unix este sensibil la tipul de
caractere cu care scriem (case sensitive).
Restul de atribute care apartin unui fisier se gasesc intr-o tabela numita inode list.

TIPURI DE FISIERE UNIX 1) fiiere text - fisiere care contin caract ASCII sub forma de
text; 2) fiiere de date contin date utilizate in diverse aplicatii si informatii speciale de
formatare; 3) fiiere cod sursa contin date scrise intr-un limbaj de programare (C, Java,
Fortran, etc) si au extensii specifice limbjului in care au fost scrise; 4) fiiere executabile
sunt programe obtinute in urma compilrii si editrii de legaturi ce pot fi rulate; 5) programe
shell este att fisier text ct i fiier executabil; - conine instruciuni specifice programarii
shell; 6) fiiere legtur sunt referine ctre un alt fiier stocat n alt locaie a sistemului;
n loc de pstrarea a dou sau mai multe copii ale unui fiier pe disc, se pot crea legturi
ctre un fiier deja existent; 7) fiiere asociate dispozitivelor conin inf legate de
componentele hard ale calculatorului i fac referire la funciile de administrare ale sistemului.

SISTEMUL DE SECURITATE UNIX S.O. Unix are 4 niveluri de securitate pt a asigura
cel mai inalt nivel de integritate a sistemului. 1) Nivelul de securitate intern face referire la
modul in care intrarea/iesirea se executa pe un sistem Unix. Utilizatorul trebuie sa dispuna de
un username si de o parola. Sistemul il cauta intr-o baza de date si evident pe masina sunt
admisi utiliz care au conturi agreate.Tot la acest nivel exista si contul Root sau administrator,
acesta avand toate privilegiile in calculator. In plus, administratorul poate da drepturi speciale
unor utiliz, drepturi care sa le permita sa acceseze o serie de comenzi de sistem.
2) Nivelul de securitate fisier al 2-lea zid de aparare din sistem si se refera la permisiunile,
grupului si restului utiliz fata de un anumit fisier. 3)Nivelul responsabilitate ofera
posibilitatea de a se sti in orice moment cine a executat o anumita actiune in sistem. Pt aceasta
fiecare utiliz primeste un LUID (login user identifier) care constituie o marca de nesters a
fiecarui proces utilizat in sistem. 4)Verificare (Audit) face un pas in plus prin aceea ca
inregistreaza si actiunile nereusite din sistem. Cele 2 niveluri pot fi lansate de catre admin de
sistem pt a urmari activ o perioada de timp cu mentiunea ca ele genereaza fisiere de tip log f
mare.

MEDIUL SHELL Parametrii care participa la alcatuirea acestui mediu sunt alcatuiti din
setul variabilelor de shell. O variabila este numele unei locatii de memorie temporare in care
se depune o anumita informatie. Shell-ul are un set standard de variabile la care utilizatorii pot
sa-si adauge propriile variabile. Folosirea variabilelor este una dintre caile cele mai
importante prin care utilizatorul are flexibilitate si control asupra S.O Unix.
Vizualiz var din shell: $set, %setenv. Variabile:
-HOME calea pana la dir resedinta (home directory); - LOGNAME numele de utilizator; -
MAIL calea pana la dir de posta electronica; - TZ data si timpul; - PS1 tipul prmoptului
folosit de shell.

LUCRUL CU COMENZI IN UNIX Sintaxa comenzii - linia de program pe care o tastam
pe ecran si care contine comanda + o serie de parametrii sn linie de comanda. Aceasta se
incheie in momentul in care apasam tasta enter. Toate comenzile din Unix au o comportare
implicita (default). Orice comanda lansata, chiar fara parametri auxiliari, trebuie sa realizeze
ceva. Exista comenzi care au fie optiuni, fie argumente, fie ambele. Exista insa si comenzi,
care nu au nici una, nici alta. Cand se da o comanda Shell-ul o va cauta dupa caile descrise in
variabile PATH. Cand o gaseste o va aduce dupa hard-disk si o va lansa in executie. In
general este recomandat ca, comenzile sa fie scrise in lit mici, pt a nu se confunda cu
variabilele. Optiuni Rolul unei optiuni in sintaxa comenzii este acela de a modifica si
imbunatati raspunsul implicit al comenzii. Optiunile sunt usor de recunoscut prin faptul ca
sunt intotdeauna precedate de semnul -. Nu exista pauza intre - si optiune, dar exista
pauza intre comanda si -.
Ex: $who inf despre utiliz conectati in acel moment; who -H
Argumentele reprezinta orice informatie: -date; - siruri numerice; -siruri alfanumerice; -
nume de fisiere; asupra careia opereaza comanda.
Ex: $cal 12 1988

COMENZI INTERNE SHELL pe masura ce introducem comanda Shell-ul o preia si o
prelucreaza inainte de a-i da curs. Acest proces de spargere a comenzii in elementele
constituente sn analiza gramaticala(parsing).Separarea in partile constituiente este facuta de
shell printr-un separator care se afla in variabila, numita IFS(inter field separator). Inainte de a
aplica regulile de separare a parametrilor, Shell-ul aplica regulile ghilimelelor si substituirea
comenzii, apoi shellul genereaza nume de fisiere si expandarea variabilelor ca in final determ
intrarile si iesirile comenzii.

REDIRECTARI IN UNIX Redirectarea intrarii. Intrarea standard este tastatura. Aceasta
poate fi redirectata spre un fisier sau un alt dispoz.
$ cat < job va avea ca intrare fisierul job
$ cat << marcaj Job 1
Job 2
marcaj
Executa toate aceste scripturi iar cd intalneste al 2 lea marcaj de eof, fie iese, fie executa
comanda urmatoare.
Redirectarea iesirii. Iesirea standard a unei comenzi este display-ul. Aceasta iesire poate fi si
redirectata intr-un fisier cu ajutorul semnului > . Exista si situatia in care in mod inlatuit,
iesirea unei comenzi, devine intrare pt alta comanda, aceasta constituind o conducta(pipe).
$ ls >> x listare in fisierul x
$ comanda 1 | comanda 2 |comanda 3 redirectare intrare si iesiri








FOLOSIREA SEMNELOR ? SI * ; EXPRESII [ ] UNIX
; este utiliz ca separator ce permite introducerea comenzilor multiple pe o singura linie
comanda. Este echivalent cu apasarea tastei ENTER.
$ cd /user/joe ; ls schimba directorul, dupa care ii afiseaza continutul.
echiv cu $cd /user/joe $ ls
? poate substitui un singur caracter, in timp ce * poate substitui de la 0 la mai multe caractere.
$ ls job? -> job1 job2 job3 joba
$ ls *job* -> job1 xjob joba
Expresiile [ ] ne permit sa ne exprimam mai restrictiv $ ls job[1 2 3] -> job1 job2 job3 .
Expresiile ne permit si utiliz unonr domenii multiple.
$ ls job[1-8,a-z] job2 job7 jobt jobc . Cand folosim expresiile * isi schimba si el
semnificatia: $ ls job[1-8,a-z]* -> job27 jobadf jobxsd
Analiza unei linii de comanda shell
Pe 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 IFS
care de regula este fixata pe Space sau Tab. Acest separator poate fi setat la dorinta
utilizatorul. Inainte de a aplica regulile de separare a parametrilor shell-ul aplica
mai intai regulile ghilimelelor, substituirea de comanda, apoi genereaza numele de
fisiere si in final executa expandarea variabilelor si determina intrarile si iesirile
comenzilor. In Unix exista 3 feluri de ghilimele si toate se folosesc pereche : " ", ' ',
\ \.
PARTITIILE DE DISC UNIX UNIX poate lucra cu discuri multiple care devin aproape
transparente utiliz daca nu sunt montate in sistemul de fisiere. Montarea este un proces prin
care un dispozitiv fizic este asociat cu un director din sistemul de fisiere. In UNIX partitiile
unui HDD sunt privite exact ca un disc fizic. Aceste partitii au denumiri diferite la diferite
versiuni de UNIX, dar organiz lor principala este aceeasi. Un admi de sistem trebuie sa
efectueze salvari periodice (backup) ce se pot face fie fisier cu fisier(dinamic), fie pista cu
pista(static). Salvarile fisier cu fisier au dezavantajul ca sunnt lente deoarece fisierele sunt
scrise inn mod fragmentat pe HDD. Salvarile pista cu pista sunt mai rapide, dar nu mereu
accesibile. In practica se foloseste o metoda mixta in care fisierele fiecarui utilizator sunt
salvate dinamic, in timp ce partea statica se realiz pista cu pista. Partitiile nu permit trecerea
fisierelor peste limitele lor. Daca avem nevoie de fisiere de dim f mari se va utiliza o tehnica
inversa partitionarii striping. Prin ea m multe HDD sunt unite intr-un hard logic f mare.
Trecerea de pe un hard pe altul se face automat. Dezavantajul este acela ca daca un HDD cade
se pierde intreaga inf. In partitionare avem avantajul ca daca o partitie cade se pierde mult mai
putina inf si in plus salvarile sunt mult mai rapide.

PERMISIUNILE DE FISIER UNIX Sistemul de permisiuni constituie inima sist de
securitate in UNIX. Ac permisiuni stabilesc ce drepturi exista vis-a-vis de un fisier sau dir pt
proprietar, grupul de afiliere si restul utilizatorilor. At cd admin de sistem creeaza un cont se
creeaza un user ID si un grup ID. Orice fisier sau director pe care il vom crea va primi acesti 2
identificatori. Pt a vedea toate optiunile se foloseste comanda $ls l -rw_/r__/r__/
Inregistrarea are 4 campuri: 1. identifica tipul de fisier - = fisier obisnuit; d=director;
b=dispozitiv de tip block; c=dispozitiv organizat pe caractere; p(pipe)=fisier care face parte
dintr-o conducta; s(socket)=interfata soft intre aplicatie si retea; l(link)=legatura simbolica.
Celelalte se refera la utilizatori:
2. proprietar; 3. grup; 4. restul utilizatorilor; r read -permisiune de citire; w write - de
scriere; x execute de executie. Daca un dir este marcat numai pt executie continutul lui nu
poate fi vizualizat si nici modificat.
Setarea permisiunilor. $chmod 1.mod simbolic; 2.mod absolut.
1.Modul simbolic $chmod la_cine operator permisiuni nume
Variabila descriere
la_cine a all se refera la toate categ de utiliz
u owner proprietar
g group
o other restul utiliz
operator + permisiunile se adauga la cele existente
- permisiunile se scad din cele existente
= permisiunile suprascriu permis existente
Ex: $chmod a=rwx ana. Modul absolut:
Fiecarui camp din inreg pt permisiuni i se asoc o triada binara. 111 110 100 $chmod 764 .
MONITORIZAREA PROCESELOR. COMENZILE PS, KILL SI WHO In lucrul curent
admin are nevoie sa vada ce se intampla cu procesele lansate in bg pe termen lung. Comenzi
ce ofera inf despre procese: $$ returneaza PID shell (process ID); $! returneaza PID
ultimului proces lansat in bg. In calculator exista 2 pct de vedere referitor la proces: 1) de
administrator; 2) cel de utilizator. 1) administratorul de sistem este incarcat sarcina mentinerii
integritatii de sistem si a echitatii mediului de lucru. Probleme pe care le pot avea admin: -
procese care abuzeaza de spatiul de memorie; - procese zombie; - procese care genereaza
multe procese-fiu. 2) Pe utiliz il intereseaza cat timp ruleaza un proces, cata mem consuma
sau daca ruleaza corect. PS. Comanda care ne permite sa vizualizam inform despre procese
este PS (process status). In forma sa implicita se afiseaza Id-ul de proces, de terminal, timpul
de rulare si numele comenzii. Ex: $ps l
F S UID PID PPID C PRI NI ADDR1 ADDR2
10 S 154 52 1 O 30 20 D0526774 D0526FFD
F si S descriu starea proceselor. In F se scrie in octal.
01 proces aflat in memorie in executie; 02 proces de sistem; 04 proces in asteptarea unei
operatii; 10 procesul este evacuat pe disc sau partial evacuat; 20 procesul e urmarit de un
alt proces.
Sdb (symbol debugger). S sleep; R run, poate aparea o singura data in lista daca avem un
singur procesor; I intermediate, e pe cale sa fie blocat, rulat sau purjat; Z zombie, proces
ce urmeaza sa fie eliminat, daca acest marcaj apare la 2 lansari consecutive ale comenzii ps ca
este zombie cu adevarat; B blocked, proces blocat in asteptarea unei operatii de I/O; UID
identificatorul utiliz care a lansat procesul; PID process ID; PPID parent process ID; C
camp fara semnificatie pt utiliz curent; e utilizat de admin de sistem pt a vedea cat din timpul
procesor e utilizat pt planificarea proceselor. PRI priority, nivelul de prioritate al procesului;
valorile mici semnifica prioritati mari; NI nice, influenteaza prioritatea; ADDR1 si ADDR2
adresele de pagina la care un program a fost intrerupt; SZ size, dimensiunea memorei
ocupate de proces; WCHAN adresa la care s-a facut evacuarea pe HDD; TTY arata protul
la care e conectat procesul; pt procesele din bg acest camp contine ?; TIME timpul de rulare
al procesului in minute si secunde din momentul lansarii; CMD numele prescurtat al
comenzii.
KILL. Pt a putea cntrola procesele, UNIX pune la dispoz semanle intreruperi soft, singurele
care pot intrerupe prelucrarea curenta a unui proces. Se preda controlul unei rutine de
intrerupere care analizeaza situatia, emite un mesaj de eroare si abordeaza task-ul. $ kill n
PID (n nr de semnal. In UNIX exista 15 semnale;9 sau 15 fol frecvent). De regula,
procesele fac parte dintr-un lant sau dintr-o conducta. Cand un proces lider primeste semnalul
kill, acesta il va trimite catre fii in mod asincron. Pt a nu incerca sa omoare un proces in mod
repetat, comanda kill trimite un semnal de eroare si se auto-abort-eaza; pot aparea astfel
procese zombie.
WHO este un instanntaneu dpdv al utilizatorului. Cu ajut lui se poate afla cine cine ruleaza la
un moment dat pe un sistem.
$who Hu afiseaza 4 campuri: nume utiliz, portul la care e conectat, momentul la care s-a
facut login-ul, timpul la care s-a apasat o tasta.
WINDOWS; MASINI VIRTUALE O masina virtuala Win e un context de executare ce
contine: - mapa de memorie adresabila a aplicatiei; - continuturile registrelor hardware -
resursele Win alocate aplicatiei. In sistemele Win exista 2 feluri de MV: o MV de sistem in
care ruleaza toate aplicatiile pe 16 si pe 32 de biti (Win 16, Win 32) si cate o MV DOS pt
fiecare aplicatie DOS. La initializarea sistemului SO seteaza MV de sistem si pregateste
contextul global pt toate MV DOS.
Interfata intre aplicatiile Win si functiile de sistem se realiz prin API (application
programming interface). Legatura dintre o app Win si functiile din subsitemul Win e acuta la
mmentul incarcarii programului prin legare dinamica dynamic linking.
WINDOWS; MODELE MULTITASKING
SO Win 3.1 utiliza modul de planificare a proceselor prin o schema multitasking cooperativ.
Mesaje Un program Win furniz sisemului o serie de mesaje pt a-l informa despre
evenimentele ce au loc in sistem. In Win 3.1 exista o singura coada pt mesajele tuturor
aplicatiilor din sistem; at cd o aplicatie rata sa-si extraga mesajele din coada, coada de mesaje
crestea la infinit, impingand sistemul in halt.
La Win NT si UNIX un program aflat in faza de rulare s.n. proces. La Win 3.1 task (cei 2
termeni sunt sinonimi). Componenta dintr-un SO care se ocupa de planificare s.n. scheduler.
El opereaza cu 2 marimi timpul si evenimentul. Timp procesul Win primeste de la
planificator o cuanta de timp (time slice) in care are dreptul sa utilizeze proc. Evenimentele
de regula influenteaza deciziile planificatorului. Un evenimnent reprezinta, de exemplu, un
click cu mouse-ul. Acest eveniment det planificatorul sa transfere procesorului programul
care detine fereastra pe care s-a facut click.
La Win 3.1 (multit cooperativ) planif nu poate intrerupe un task care detine proc la un
moment dat si este obligat sa astepte ca task-ul sa-si termine treaba cu proc. Incepand cu Win
NT s-a inntrodus modul prioritar. Win 95 utilizeaza ambele tehnici.
In multit prioritar planif poate intrerupe task-uri in orice moment pt a preda controlul task-ului
prioritar. Prioritatile proceselor sunt reevaluate in mod periodic de planificator in functie de
cuanta de timp si parametrii de rulare ai masinii virtuale.
In multit cooperativ proc nu poate intrerupe un task in timpul lui de lucru.
WINDOWS: SUPORT API Win pune la dispozitia utilizatorilor si aplicatiilor API-urile
prin intermediul a trei componente majore: kernel, user si GDI. Kernel - asigura functiile de
sistem (alocarea memoriei si gestiunea proceselor). User - pune la dispozitie functiile si
serviciile destinate ucrului cu ferestre: crearea si mutarea ferestrelor, manuirea mesajelor,
executarea casetelor de dialog. GDI (graphic device interface) - se ocupa de functiile grafice:
desenarea de linii, scanarea de font-uri, gestiunea de culoare si facilitati de tiparire. In SO
Windows (de la 95 incoace), aceste module au o existernta duala in sistem, existan o varianta
de 32 de biti si una de 16 biti pt fiecare dintre ele. Aceasta existenta duala e insa transparenta
utilizatorului curent. Apelul acestor functii api se face prin nume, spre deosebire de DOS unde
apelurile erau intreruperi numerice. Un program Windows e o colectie de API din cele 3
module.
PLANIFICAREA MASINILOR VIRTUALE
Planificarea proceselor in sistemele Windows este strict legata de gestionarea masinilor
virtuale. Sistemele windows au introdus conceptul de fir . Firul/firele constituie obiectele cu
care lucreaza planificatorul si ele repr unitatea fundamental de lucru cu procesele. Un fir este
un mod de executie al unui proces ; poate fi creat de o aplicatie win32 DxD; un fir dispune de
stiva si context de executie ; un fir partajeaza memoria cu procesul parinte; un fir poate fi unul
dintre mai multe fire generate de un process. aceste fire se mai numesc si procese de categorie
usoara deoarece ele se creaza foarte usor si partajeaza memoria cu procesul parinte..
Utilizarea firelor duce la utilizarea mult mai buna a sistemului de operare, Spre exp la
windows 3.1 daca un editor de texte incarca un fisier lung suntem obligati sa asteptam mult
pana la incarcarea complete a fisierului. Chiar daca ne razgandim nu putem opri operatia.
Astazi se poate pune in fir sa supravegheze butonul cancel si care poate intrerupe incarcarea
in orice moment. In sistemul 3.1 win16, aplicatiile win16 rulau intr-un singur fir si se folosea
modelul de multi-tasking cooperative. In sistemul win32 o aplicatie ruleaza mai intai intr-un
fir primar dar poate oricand sa genereze fire.
PLANIFICAREA IN MV SISTEM
Toate firele ruleaza in MV system, Exista posibilitatea ca la un moment dat sa existe in MV
system mai multe fire cu aceeasi prioritate maxima; celelalte se suspenda. In aceasta situatie
se aplica algoritmul Robin in care fiecare process primeste o cuanta de timp iarcand aceasta
expira firul se aseaza intr-o coada de asteptare circular. Daca un timp rateaza sa-si foloseasca
cuanta de timp planificatorul cuantei de timp o va ceda urmatorului process din coada.

CONTROLUL PLANIFICATORULUI
Asupra planificatorului de procese se exercita doua influente. Prima se refera la algoritmul
intern care trebuie sa asigure un mediu echitabil de utilizare a memoriei principale.Aceasta
inseamna ca el trebuie sa aloce sufficient timp unui fir ca sa poata sa-si faca treaba dar nu prea
mult timp ca sa dezavantajeze celelalte aplicatii.. Pentru a realize acest algoritm se folosesc 3
tehnici:1.schimbarea prioritatilor care permite planificatoryului sa schimbe prioritatile unor
fire atunci cand apar diverse evenimente;2.decaderea in timp a prioritatilor prin care
prioritatile anterior evaluate sunt reduse gradat la prioritatea normal;3.comutarea prioritatilor
si se refera la schimbarea brusca de prioritati a unui fir de joasa prioritate astfel incat el sa
elibereze in cel mai scurt timp posibil o resursa exclusiva pentru care asteapta niste fire de
inalta prioritate. A doua influenta ampla a planificatorului se refera la utilizarea UxD din
sistemul de baza. Acestea sunt folosite pentru a se informa despre prioritati, cuante de timp,
focalizarea masinilor virtual dar si in acelasi timp pentru modificarea acestor parametric.

COZI DE MESAJE
Sistemele Windows sunt sisteme conduse prin evenimente> Evenimentele sunt anuntate
aplicatiilor sau SO prin mesaje. Intr-un system de calcul windows exista mesaje system,
mesaje ale driverelor dedicate si mesaje lansate de aplicatii. Coada de intrare rand este
supravegheata de un fir care dispecereaza mesajele catre cozile aferente. Existenta mai multor
cozi ptr mesaje se numeste desincronizarea intrarii. Ptr mesajele aplicatiilor pe 16 biti exista o
singura coada. Aplicatia pe 32 de biti ruleaza mai intai pe un singur fir numit primar. Daca o
aplicatie genereaza un fir secundar , sistemul de operare nu face imediat o coada pentru acesta
ci numai in momentul in care firul doreste sa genereze o coada, o va genera, asta ptr a nu face
risipa de spatiu
Fire si UAE-Exista 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 de a inchide aplicatia du un minim de pierderi si
agitatie.2) dupa caderea aplicatiei - cunosterea ssitemului.Aplicatiile cad prin erori
de adresare, o adresa sub 4mb inseamna pt Windows o violare de protectie. RC
abordeaza problema in 2 moduri in primul tratarea erorii se va executa printr-un fir
separat si nu in cadrul aplicatiei care e in deruta oricum. Inchiderea unei aplicatii
inseamna si inchiderea tuturor resurselor utilizate. Pt aceasta S.O. va parcurge o
serie de tabele unde va gasi id-ul firului cancelat. Curatirea pt aplicatiile win32 se
face imediat daca exista aplicatii pe 16 biti active atunci resursele vor trebui lasate
disponibilizate.