Sisteme de Operare
examen scris ?i oral (mai mult scris, deoarece oral nu se poate da deoarece
practica ... unix ? este un fi?ier ce con?ine nucleul sistemului de operare ?i care,
odat? ... 1) executarea comenzii ? shell-ul afi?eaz? prompterul pe ecran în
a?teptarea ...
Part of the document
Sisteme de operare
Adrian Vasilescu Structura cursului:
- 7 cursuri de Unix
- 7 cursuri de Windows
- examen scris ?i oral (mai mult scris, deoarece oral nu se poate da
deoarece practica este redus?)
- prezen?? ?i proiect la seminar; seminarul nu conteaz? prea mult, doar ca
"indulgen??" UNIX Sistemul de operare UNIX:
- a fost scris începând cu anul 1970
- ruleaz? pe toate platformele, de la laptop-uri pân? la megacomputere
- a fost primul sistem de operare scris într-un limbaj superior (C),
având prin urmare un mare grad de portabilitate. Înainte de apari?ia sa,
toate sistemele de operare erau scrise într-un limbaj ma?in? (assembler) ?i
prin urmare erau foarte greu de portat de la o platform? la alta.
Sistemul UNIX devine portabil prin recompilarea surselor pe fiecare
platform? pe care se dore?te portarea sa, modific?rile realizate în surse
fiind în jurul a 15-50% din cod. Organizarea UNIX:
Sistemul de operare UNIX este structurat soft, în straturi diferite bazate
pe abstractizarea cresc?toare a hardware-ului. Nucleul (kernel-ul):
- asigur? interfa?a dintre om-hardware ?i întreaga func?ionalitate a
sistemului de calcul
- sarcinile primare ale nucleului sunt:
- conducerea procesului de multitasking (multiprogramare) - UNIX
este un sistem multiuser ?i multitasking
- coordonarea, memorarea ?i exploatarea fi?ierelor
- întreg sistemul de operare este construit în jurul kernel-ului,
restul sistemului fiind deservit de un shell, sistemul de interac?iune
dintre om ?i kernel;
- func?iile kernel-ului:
a) interfa?? cu hardware-ul:
- kernel-ul ascunde complexitatea hardware-ului fa?? de
utilizator ?i este prevazut cu facilit??i legate strict de
acest subiect
- se caut? s? fie cât mai condensat (cca. 1 MB) ?i mai
portabil
- la portarea pe o alt? platform?, kernel-ul trebuie
rescris în propor?ie de 15 - 50 % b) administrarea sistemelor de fi?iere:
- în UNIX memorarea fi?ierelor se face sub form? de blocuri
(echivalentul clusterelor în Windows). Aceste blocuri
reprezint? cea mai mic? granularitate în lucru cu
fi?ierele, reprezentând, de regul?, 4 KB (adic? opt blocuri
fizice de 512 B)
- într-o tabel? se ?ine eviden?a tuturor blocurilor
alocate, a celor disponibile, a celor defecte precum ?i a
blocurilor care le vor înlocui pe cele ce se vor defecta
- în cadrul sistemului de securitate, sistemul de operare
re?ine pentru fiecare fi?ier proprietarul ?i drepturile
aferente lui ?i celorlal?i utilizatori
- în UNIX, fiecare fi?ier este tratat ca un ?ir de bytes
(în mod binar)
- dispozitivele (periferice sau interne) sunt tratate ca
fi?iere binare, astfel încât un utilizator poate scrie
direct un byte pe floppy disc, hard disc sau imprimat?
- structura de director î UNIX este arborescent? cu
r?d?cina în sus. Când root-ul (administratorul de sistem)
creeaz? un cont de utilizator nou, acesta va primi automat
un homedir ("director cas?") propriu, în care î?i va putea
construi subdirectoare.
bin - con?ine toate comenzile UNIX ?i toate utilitarele în
form? binar? (executabil?)
etc - con?ine comenzile ?i informa?iile necesare
administratorului de sistem
dev - con?ine pointeri la dispozitivele periferice
lib - con?ine biblioteca de func?ii pentru compilatorul C
lost+found - folosit de comanda de verificare a sistemului
de fi?iere (apelat? de sistem sau de administratorul
de sistem)
tmp - folosit de diferite comenzi UNIX pentru stocarea
fi?ierelor temporare. Poate fi folosit ?i de c?tre
utilizatori cu men?iunea c? la repornirea sistemului
este ?ters automat
usr - con?ine în general homedir-urile pentru utilizatori.
La un num?r mare de utilizatori pot exista usr1,
usr2, ...
unix - este un fi?ier ce con?ine nucleul sistemului de
operare ?i care, odat? înc?rcat în memorie va r?mâne
rezident
c) administrarea memoriei
- în UNIX se folose?te conceptul de memorie virtual?
organizat? în pagini (tehnica "paging"). Pagina are
dimensiune fix?, dar dimensiunea ei poate fi stabilit? de
administrator la instalarea sistemului;
- translatarea între memoria principal? ?i cea auxiliar?
(proces denumit "swaping") are loc într-o parti?ie special?
reg?sit? în /dev/swap, parti?ie a c?rei dimensiune este
stabilit? înainte de instalare;
- de managementul memoriei se ocup? MMU, Memory Management
Unit
d) planificarea ?i executarea (gestionarea) job-urilor:
- UNIX folose?te pentru planificarea ?i gestionarea job-urilo active
tehnica round-robin (coad? circular? de procese) cu
priorit??i. Fiecare proces prime?te o cuant? de timp în
care poate accesa CPU. Dac? procesul se termin? înainte de
terminarea cuantei alocate, timpul de procesare r?mas este
alocat urm?torului proces; dac? procesul îns? nu a terminat
procesarea în cuanta de timp alocat?, el reintr? în coad?
a?teptând o nou? cuant?.
- job-urile cu opera?ii de I/O (input / output) intense primesc o
prioritate mai ridicat?, în vreme ce procesele de
background (fundal) primesc o prioritate mai mic?.
- UNIX are implementat un sistem de securitate care împiedic?
interferarea itre procesele aceluia?i sau a diferi?ilor
utilizatori. UNIX Shell Shell-ul reprezint? leg?tura dintre nucleul sistemului de operare ?i
utilizator, el facilitând introducerea comenzilor de c?tre utilizator ?i
translatând comenzile acestuia într-o form? în?eleas? de nucleu.
Nucleul încarc? shell-ul ca pe orice alt program din sistemul de operare;
din punct de vedere al kernel-ului, nu exista nici o deosebire între el ?i
restul programelor, dar din punctul de vedere al unui utilizator, el
reprezint? leg?tura vital? cu UNIX-ul.
O alt? caracteristic? important? a shell-ului este aceea de a utiliza
mediul ?i mijloacele pentru a construi programe denumite shell scripts,
adic? fi?iere de tip batch (lot - fi?iere ce con?in un lot de comenzi).
Aceste fi?iere de comenzi sunt executate de shell l?sând impresia c?
fiecare comand? con?inut? de ele ar fi introdus? de la tastatur?. Prin
urmare, shell-ul poate servi ?i ca limbaj de programare structurat?,
oferind construc?ii ?i structuri ce permit scrierea aplica?iilor complexe.
Ca avantaj al acestor shell-scripturi avem faptul ca ele necesit? pentru
implementare un mic efort de programare, dar dezavantajul c? ele se execut?
mai pu?in rapid decât programele compilate ?i scrise în limbajul C
(scripturile sunt interpretate de shell la înc?rcarea lor).
Caracteristicile generale ale unui shell
1) executarea comenzii - shell-ul afi?eaz? prompterul pe ecran în
a?teptarea unei comenzi; dup? ini?ierea comenzii, el o va prelua ?i o va
traduce nucleului ce o va executa, dup? care are loc întoarcerea la
prompter. excep?ii de la aceast? regul? sunt utilitarele (Ex.: mail, vi)
care sunt aplica?ii complexe din care nu se poate reveni la prompter decât
printr-o comand? explicit?.
2) biblioteca de comenzi încorporate - încorporat în shell ?i înc?rcate în
memorie se afl? o suit? de comenzi; executarea acestor comenzi este mai
rapid? decât a celor care nu sunt introduse în aceast? biblioteca ?i care
trebuie aduse de pe HDD;
3) procesarea în background - UNIX ofer? aceast? facilitate, astfel încât
comenzile lansate în background sunt traduse kernel-ului de c?tre shell ?i
apoi se revine la prompter, f?r? a se a?tepta terminarea execu?iei
acestuia. În general, acest tip de execu?ie este specific programelor care
nu au nevoie de mari resurse de procesare ?i a c?ror activitate se
desf??oar? un timp îndelungat. Ex.: imprimarea. Aceast? caracteristic?
ofer? o mare flexibilitate în administrarea sistemului.
4) extinderea numelor de fi?iere - shell-ul permite utilizarea caracterelor
wildcard (cabalistice) (*, ?) care permit substituirea în numele unui
fi?ier sau a unui director a unui ?ir de caractere sau a unui caracter.
Ex.: ls -a *a.so
listeaz? toate fi?ierele care au extensia .so ?i a c?ror nume se termin? în
a.
ls mia?nel
listeaz? toate fi?ierele care încep cu mia, se termin? în nel ?i mai con?in
o liter? între aceste grupuri.
5) variabilele - acestea reprezint? loca?ii de memorie ce p?streaz? valori
specifice de date ce afecteaz? func?ionarea sistemului ?i/sau a unor
aplica?ii.
6) redirectarea I/O - în UNIX intrarea standard este tastatura ?i ie?irea
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