Sunteți pe pagina 1din 118

Cuprins

1. Funciile i componentele unui sistem de operare ..................................


1.1. Sistem de operare ................................................................................................................. 1.2. Funciile unui sistem de operare ....................................................................................... 1.3. Programe de comand control ......................................................................................... 1.4. Programe de servicii pentru dezvoltarea programelor de aplicaie ......................... 1.4.1. Editoare de texte ................................................................................................... 1.4.2. Translatoare de limbaje ........................................................................................ 1.4.3. Editorul de legturi ................................................................................................ 1.5. Alte programe de servicii ................................................................................................... 1.6. Sisteme de operare la calculatoarele personale ........................................................... 1.6.1. Categorii de sisteme de operare ......................................................................... Exerciii ..........................................................................................................................................

2. Tehnici de gestiune a lucrrilor la sistemele de calcul .........................


2.1. Obiectivele urmrite n gestiunea lucrrilor .................................................................. 2.2. Monoprogramarea ................................................................................................................. 2.3. Multiprogramarea ................................................................................................................. 2.4. Sistemul spooling (Simultaneous Peripheral Operations On Line) ........................... 2.5. Sisteme TIME SHARING (sisteme cu timp divizat) ................................................ 2.6. Multiprelucrarea ................................................................................................................... 2.6.1. Sisteme master slave ......................................................................................... 2.6.2. Planificarea execuiei lucrrilor ......................................................................... Exerciii ..........................................................................................................................................

4 4 4 6 7 7 8 11 12 13 13 19 20 20 21 22 24 25 27 27 28 30 31 32 32 33 34 34 35 35 39 39 40 43 44 44 44 45 47 48

3. Gestiunea resurselor unui sistem de calcul funcie a sistemului de operare ..................................................................................................................


3.1. Gestiunea proceselor i procesoarelor ............................................................................ 3.1.1. Procese concurente i coordonarea proceselor ............................................... 3.1.2. Sincronizarea proceselor ...................................................................................... 3.1.3. Gestiunea procesoarelor ....................................................................................... 3.2. Gestiunea memoriei .............................................................................................................. 3.2.1. Alocarea dinamic a memoriei ............................................................................. 3.2.2. Memoria virtual .................................................................................................... 3.3. Gestiunea dispozitivelor periferice ................................................................................. 3.3.1. Uniti de control i canale de transfer ........................................................... 3.3.2. Activitatea de gestiune a dispozitivelor periferice ...................................... Exerciii ..........................................................................................................................................

4. Componenta ROM-BIOS i ntreruperi. MS-DOS .................................


4.1. Prelucrarea ntreruperilor .................................................................................................. 4.1.1. Conceptul de ntrerupere ...................................................................................... 4.1.2. ntreruperi la PC-uri .............................................................................................. 4.2. Clase de ntreruperi la PC-uri ............................................................................................ 4.3. Atribuirea ntreruperilor i prioritii. Serializarea ntreruperilor ........................

4.4. Componenta ROM-BIOS i MS-DOS ............................................................................... 4.4.1. Elemente componente BIOS ................................................................................ 4.4.2. Structurarea programelor i segmentarea la MS-DOS ............................... 4.4.3. Alocarea memoriei pentru programe i execuia lor ..................................... 4.4.4. Programe rezidente (TSR) ................................................................................... Exerciii ..........................................................................................................................................

5. WINDOWS .....................................................................................................
5.1. Arhitectura mediului Windows .......................................................................................... 5.1.1. Arhitectura de baz ............................................................................................... 5.1.2. Arhitectura Windows 98 ...................................................................................... 5.2. Noi caracteristici la Windows 98 ..................................................................................... 5.2.1. Interfaa Windows 98 .......................................................................................... 5.2.2. Faciliti pentru lucrul n reea .......................................................................... 5.2.3. Servicii multimedia ................................................................................................ 5.3. Windows 2000 ......................................................................................................................

6. Sistemul de operare UNIX .........................................................................


6.1. Caracteristici i componente majore ............................................................................... 6.1.1. Evoluie i caracteristici ....................................................................................... 6.1.2. Arhitectura sistemelor de calcul ce lucreaz cu UNIX ................................ 6.2. Sistemul de fiiere UNIX SYSTEM V ............................................................................ 6.2.1. Tipuri de fiiere ..................................................................................................... 6.2.2. Structura arborescent a sistemului de fiiere ............................................ 6.2.3. Structura standard a sistemului de fiiere ..................................................... 6.2.4. Protecia fiierelor i drepturi de acces ......................................................... 6.2.5. Modificarea drepturilor de acces ...................................................................... 6.2.6. Montarea volumelor n structura arborescent a sistemului de fiiere ... 6.3. Interpretorul de comenzi SHELL ..................................................................................... 6.3.1. Comenzi shell ........................................................................................................... 6.3.2. Fiiere standard. Redirectare i extensii ........................................................ 6.3.3. Multitasking i ateptare ..................................................................................... 6.3.4. Conducte i linii de conducte ............................................................................... 6.3.5. Limbajul de programare Shell ............................................................................. 6.3.6. Fiiere de comenzi indirecte ............................................................................... 6.4. Nucleul sistemului de operare UNIX (KERNEL) ........................................................... 6.4.1. Structur i funcii ................................................................................................ 6.4.2. Procese i stri ....................................................................................................... 6.4.3. Coordonarea i gestiunea proceselor ................................................................ 6.4.4. Sincronizarea proceselor ..................................................................................... 6.4.5. Comunicaia ntre procese ................................................................................... 6.4.6. Gestiunea fiierelor speciale .............................................................................. Exerciii ..........................................................................................................................................

50 50 51 52 55 57 58 58 59 64 68 71 75 77 80 85 85 85 88 92 92 93 94 94 95 97 101 101 101 102 103 103 104 108 108 109 111 114 115 117 119

FUNCIILE I COMPONENTELE UNUI SISTEM DE OPERARE

Un sistem de calcul nu poate s prelucreze date fr s fie programat, un program constnd dintr-o succesiune de instruciuni ce converg ctre soluia problemei ce se rezolv. Exist dou categorii de programe: 1) programe de aplicaii care sunt destinate s rezolve probleme specifice; acestea efectueaz prelucrri ale datelor, n concordan cu cerinele informaionale; 2) programe de sistem destinate s coordoneze operarea circuitelor sistemului, asistnd la dezvoltarea programelor de aplicaii; ele sunt proiectate s faciliteze utilizarea eficient a resurselor sistemului de calcul i s ajute la dezvoltarea si execuia programelor de aplicaii. Programele de sistem sunt scrise pentru anumite categorii de sisteme de calcul i nu pot fi folosite pe orice calculator; sunt furnizate de ctre productorii sistemelor de calcul sau alte firme specializate, fiind astfel proiectate nct s corespund unei game variate de solicitri.

1.1. Sistem de operare Un sistem de operare const dintr-o colecie integrat de programe de sistem, ce ofer utilizatorului posibilitatea folosirii eficiente a sistemului de calcul, concurnd la dezvoltarea programelor de aplicaie. Se poate aprecia c un sistem de operare acioneaz ca o interfaa ntre componenta hardware a unui sistem de calcul i utilizator, reprezentat prin programele sale de aplicaie (fig.1.1.).
SISTEM DE OPERARE NIVEL FIZIC NIVEL LOGIC comenzi macroinstruciuni limbaje de programare mesaje PROGRAME DE APLICAIE (PA) PA1 PA2

utilizator utilizator

HARDWARE

PAn

utilizator

Fig. 1.1. Sistemul de operare-interfa ntre hardware i utilizator

Sisteme operaionale Majoritatea sistemelor de operare sunt organizate pe dou niveluri: 1) nivelul fizic care este mai apropiat de partea de hardware, interfernd cu aceasta printr-un sistem de ntreruperi ce semnalizeaz anumite evenimente deosebite ce au loc n sistem; n acel moment va da controlul unor rutine de pe nivelul logic n vederea tratrii acestora i al informrii utilizatorului despre cauzele care le-au generat. 2) nivelul logic este mai apropiat de utilizator, interfernd cu acesta prin: comenzi ce specific execuia anumitor subfuncii ale sistemului de operare; macroinstruciuni ce conduc la expandarea n programele de aplicaii, a unor macrodefiniii cu funcii speciale; limbaje de programare; mesaje ctre utilizator; ntreruperi solicitate de ctre software. 1.2. Funciile unui sistem de operare Pentru a ndeplini rolul de interfa ntre hardware i utilizatori, un sistem de operare trebuie s fie capabil a ndeplini urmtoarele funcii: 1) oferirea posibilitii de pregtire i lansare n execuie a programelor de aplicaie (fig.1.2.); n acest scop, un sistem de operare trebuie s dispun de cel puin urmtoarele componente: un editor de texte pentru a introduce i modifica un program surs (PS) scris ntr-un limbaj de programare; un translator pentru limbajul de programare folosit (asamblor, compilator sau interpretor), care s traduc instruciunile programului surs, ntr-o form recunoscut de sistemul de calcul (form binar) - program obiect sau module obiect (PO); un editor de legturi care s realizeze legtura dintre diverse module obiect, sau s apeleze la module obiect din bibliotecile sistemului, respectiv la modulele obiect din biblioteca utilizatorului - care au fost catalogate n prealabil, pentru a construi structura pe segmente impus de sistemul de calcul n vederea execuiei programelor (program obiect executabil-POE). Odat construit structura pe segmente, programul va fi gata de execuie, ceea ce va implica ncrcarea acestuia n memoria intern i execuia efectiv; componenta sistemului de operare ce realizeaz acest deziderat se numete ncrctor. Dac aceast component lanseaz automat execuia programului dup ncrcarea n memoria intern, ncrctorul este de tip Load and Go. 2) alocarea resurselor necesare execuiei programelor prin: identificarea programelor ce se execut i a necesarului de resurse; alocarea memoriei interne i a dispozitivelor periferice; identificarea i protecia coleciilor de date. 3) acordarea unor faciliti prin utilitare de interes general: gestiune cataloage (directori, subdirectori) i fiiere; creare, modificare, copiere, mutare, tergere, recuperare directori i fiiere; sortare/interclasare; comprimare/decomprimare spaiu pe suporturile de memorie extern; depistare i eliminare virui informatici i altele. 4) planificarea execuiei mai multor programe (multiprogramare) dup anumite criterii, n vederea utilizrii eficiente a unitii centrale de prelucrare.

Capitolul 1 Funciile i componentele unui sistem de operare


MS-DOS UNIX ed vi emacs nice editor

Editor texte

edit

Program surs Translator limbaj

PS asm pas c bas a cp cc b

Erori

Program obiect Editor legturi

PO

.obj

.o

Biblioteci utilizatori

Biblioteci sistem .exe .com a.out .x

Program obiect executabil

POE

ncrctor lansare n execuie

Fig. 1.2. Pregtirea execuiei programelor 5) coordonarea execuiei mai multor programe ce se execut simultan, prin urmrirea modului de execuie a instruciunilor programelor, depistarea i tratarea erorilor, lansarea n execuie a operaiilor de intrare/ieire i depistarea eventualelor erori. 6) asistarea execuiei programelor de ctre utilizator, prin comunicaia sistem de calcul-utilizator att la nivel hardware ct i la nivel software. 7) asigurarea organizrii i proteciei datelor n memorie. 8) posibilitatea generrii unui sistem de operare pe msura configuraiei existente. 1.3. Programe de comand - control Sisteme de operare sunt alctuite n principal, din dou categorii de programe: - programe de comand-control avnd rolul de coordonare i control al tuturor funciilor sistemului de operare; - programe de servicii care sunt executate sub supravegherea programelor de comand-control, i sunt utilizate de programator pentru dezvoltarea aplicaiilor. Programele de comand-control cunoscute i sub numele de monitoare, supervizoare sau executive, coordoneaz activitatea celorlalte componente ale sistemului de operare.

Sisteme operaionale Cele mai frecvent utilizate componente ale supervizorului sunt ncrcate n memoria intern nc de la generarea sistemului de operare, fiind pstrate n memoria intern pe tot parcursul execuiei aplicaiilor de ctre sistemul de calcul; aceste programe se numesc rutine rezidente, formnd nucleul sistemului de operare; celelalte componente rmn n memoria extern fiind apelate i executate numai atunci cnd sunt solicitate de ctre nucleul sistemului de operare ( se numesc rutine tranziente) asemenea oricrui program de aplicaie (fig. 1.3.)
Memoria intern Rutinele rezidente (nuceul) Rutinele tranziente Alte rutine i programe de aplicaie ncrcare sistem de operare Solicitri ale PCC Memoria extern Programe de comand control (PCC) Programe de servicii Programe de aplicaie

Fig. 1.3. Rutine rezidente i rutine tranziente Supervizorul iniiaz execuia operaiilor de intrare/ieire pentru transferul componentelor tranzitorii din memoria extern n memoria intern, fiind totodat responsabil de alocarea canalelor de transfer (magistralele) pentru dispozitivele periferice de intrare/ieire; de asemenea efectueaz controlul i coordonarea unitii centrale de prelucrare (CPU) pe parcursul recepionrii de mesaje de la canalele prin care se execut transferul, a execuiei programelor din memoria intern respectiv, a transmiterii de mesaje ctre dispozitivele periferice de intrare/ieire prin intermediul magistralelor. Dispozitivele periferice de intrare/ieire trebuie s fie alocate aplicaiilor care le solicit, datele solicitate fiind transferate n memoria intern sub controlul sistemului de gestiune a intrrilor/ieirilor. Programele de comand control ndeplinesc trei funcii majore: a. administrarea resurselor fizice ale sistemului de calcul; b. planificarea, lansarea i urmrirea execuiei aplicaiilor; c. depistarea i tratarea evenimentelor deosebite ce apar n timpul execuiei unei aplicaii. (detalii se regsesc n capitolul 3.). 1.4. Programe de servicii pentru dezvoltarea programelor de aplicaie Programele de servicii se execut sub controlul programelor de comand control ca orice program de aplicaie, avnd n componen programe care faciliteaz dezvoltarea programelor de aplicaii respectiv programe utilitare de interes general. Principalele programe de care dispune orice sistem de operare pentru dezvoltarea unui program de aplicaie sunt: editoarele de texte, translatoarele de limbaje, editoarele de legturi, ncrctoarele i depanatoarele. 1.4.1. Editoare de texte Un editor de texte este un set de programe ce ofer posibilitatea introducerii, editrii, i tipririi de texte sub forma unor fiiere ASCII. Textele sunt alctuite din caractere care se introduc de la tastatur aprnd n acelai timp i pe monitor; erorile pot fi corectate uor deoarece acestea nu sunt nc tiprite pe hrtie. Editoarele de texte au ca activitate principal, crearea i editarea de texte; mpreun cu hardware-ul, furnizeaz calea de urmat pentru vizualizarea, memorarea, editarea i regsirea textelor create. Editoarele de texte mai performante, permit i introducerea elementelor de grafic n text. Deoarece documentaia de utilizare a editoarelor de texte este voluminoas, proiectanii acestora au prevzut pentru cele mai frecvente funcii, un sistem de Help ce const n informaii minime afiate

Capitolul 1 Funciile i componentele unui sistem de operare la monitor referitor la modul de lucru al funciei. Numele fiierului, pagina curent, linia i coloana n care se afl cursorul, sunt permanent afiate pe monitor n vederea orientrii utilizatorului; textul poate fi memorat pe suport magnetic, se poate refolosi i modifica dup necesiti. Editoarele de texte sunt componente ale sistemului de operare cu cea mai mare frecvena de utilizare, existnd astzi o mare varietate datorit serviciilor aduse pentru a degreva utilizatorul de sarcini elementare cum sunt: desprirea n silabe, alinierea textelor, paragrafelor, titlurilor, sublinierea unor poriuni din text, cutare unui ir de caractere i editarea acestuia, indexarea documentului, realizarea cuprinsului, etc. Observaii: - un procesor de texte poate produce fiiere ASCII numai dac include opiunea out of ASCII text; limbajul Java folosete caractere ASCII reprezentate pe 16 bii (caractere Unicode) ce includ caracterele ntlnite la majoritatea limbilor strine 1.4.2. Translatoare de limbaje Translatoarele de limbaje sunt componente ale programelor de servicii care traduc programe surs(PS) scrise de utilizator ntr-un limbaj de programare, n programe obiect(PO), a cror instruciuni n limbaj main sunt recunoscute i executate de sistemul de calcul. Translatoarele de limbaje se divid n dou categorii: 1) compilative care realizeaz numai traducerea PS ---> PO; acestea pot fi: * asambloare - programe de servicii care traduc programe surs scrise n limbaje de asamblare specifice fiecrui sistem de calcul (masm, tasm); * compilatoare - programe de servicii care traduc programe surs scrise n limbaje evoluate, universale (Pascal, C); 2) interpretative - care odat cu compilarea realizeaz i execuia programului (Basic). Spre deosebire de asambloare, compilatoarele creeaz o form intermediar arborescent a instruciunilor din programul surs astfel: - orice variabil este un nod terminal al arborelui; - orice operator creeaz un arbore binar a crui ramur stng este primul operand, iar cea din dreapta este al doilea operand. Pentru a nelege modul de lucru al unui compilator n tratarea unei instruciuni, se consider urmtorul exemplu: S se determine arborele binar corespunztor aciunii unui compilator pentru calculul expresiei: X = A * ( B - C ) * D * ( E - F - 207 ) Rezultatul aciunii compilatorului asupra expresiei este redat n fig. 1.4. = X * A B E D C = F + * 207

Fig. 1.4. Aciunea unui compilator asupra expresiei X 8

Analiz sintactic PS

Structura pe atomi lexicali

Analiz sintactic

Arbore sintactic

Analiz sintactic

Structura pe atomi lexicali (4)

Optimizare cod

Arbore sintactic

Generare cod PO

(1)

(2)

(3)

(1)

(2)

(3)

(5)

Tabel de simboluri

Fiier erori

Fig.1.5. Etapele unui proces de compilare

Capitolul 1 Funciile i componentele unui sistem de operare (1) Analiza lexical descompune PS n atomi lexicali (identificatori, cuvinte rezervate, constante, operatori) pe care i introduce n tabela de simboluri sub form codificat. (2) Analiza sintactic prin care irul de atomi lexicali este analizat n privina depistrii unor structuri sintactice ca: expresii, liste, proceduri, plasndu-le ntr-un arbore de derivare (arbore sintactic). (3) Analiza semantic folosete structura programului i informaiile din tabela de simboluri pentru generarea unui grup de instruciuni simple cu format fix (codul intern); dac arborele sintactic nu respect gramatica limbajului, semnalizeaz erori. (4) Optimizarea codului presupune eliminarea redundanelor, a lungimii i variabilelor inutile, n vederea unei execuii mai eficiente. (5) Generarea codului aloc zone de memorie pentru pstrarea datelor n timpul execuiei, aloc registre i produce codul obiect. (6) Gestiunea structurilor de date reprezint o colecie de proceduri care creeaz i actualizeaz baza de date cu care lucreaz celelalte faze; n baza de date se gsesc tabelele identificatorilor, a constantelor, a constructorilor, a cuvintelor cheie, a procedurilor standard, care uneori sunt nglobate ntr-o unic tabel de simboluri. (7) Tratarea erorilor este realizat de o colecie de proceduri ce sunt activate cnd se depisteaz o eroare n program; utilizatorul primete mesaje de diagnostic iar compilatorul continu analiza sintactic pentru a depista alte erori. O succint abordare comparat a translatoarelor de limbaje conduce ctre urmtoarele aspecte mai semnificative: - asamblorul este determinat de limbajul main specific fiecrui sistem de calcul, iar compilatorul este specific unui anumit limbaj de programare independent de sistemul de calcul; - compilatorul ofer posibilitatea scrierii de programe pentru orice sistem de calcul ce dispune de compilatorul respectiv; - asamblorul translateaz o definiie simbolic a programului surs ntr-o singur definiie din programul obiect, n timp ce compilatorul o poate translata n mai multe definiii din programul obiect (memoria ocupat astfel de asamblor necesit mai puin spaiu, dar compilatorul este mai puternic datorit includerii ntr-o definiie surs, a mai multor definiii obiect); - interpretorul este util n special, la controlul proceselor industriale ce se desfoar n timp real, ns interpretarea este mai lent dect compilarea; - execuia repetat a unui program este facilitat de compilator care realizeaz translatarea o singur dat, n timp ce interpretorul l translateaz de fiecare dat. Exist componente ale sistemului de operare ce sunt concepute ca programe generalizate care, n funcie de necesitile utilizatorului se pot adapta pentru a realiza un grup de funcii; aceasta se realizeaz n faza de asamblare, prin intermediul unui macrolimbaj care asigur generarea secvenelor de program (PS i PO) specificate. Macrolimbajul folosete macroinstruciuni care sunt instruciuni ale PS, care asigur prin intermediul comenzilor, inserarea n PS a secvenei de instruciuni n locul unde a aprut macroinstruciunea; de remarcat este faptul c nu economisete dect timp utilizator. Structura unei macroinstruciuni: -nceput MACRO -nume NNNN -secvena instr.1 de ... instruciuni instr.n -sfrit ENDM Dup definirea unei macroinstruciuni, utilizarea numelui NNNN este echivalent cu utilizarea secvenei de instruciuni incluse n macroinstruciune.

10

Sisteme operaionale Macroasamblorul este componenta programelor de servici a sistemului de operare care trateaz macroinstruciunile, avnd ca activiti de baz: recunoaterea macrodefiniiilor indicate prin MACRO, ENDM; memorarea definiiilor macroinstruciunilor de care are nevoie pentru a le expanda la un apel macro; recunoaterea apelului macroinstruciunii cu secvena de instruciuni corespunztoare. nlocuirea macroinstruciunii cu secvena de instruciuni corespunztoare. 1.4.3. Editorul de legturi Structura extern a unui PS este alctuit din seciune, segment i program. Seciunea este o unitate de program independent constituit dintr-o secven de definire a datelor i o secven de instruciuni, ce asigur posibilitatea comunicrii cu alte uniti ale PS (fig.1.6.).
Elemente de comunicaie cu alte uniti Definire date Proceduri Elemente de comunicaie cu alte uniti Definire date Proceduri

Fig. 1.6. Comunicaia dintre dou seciuni ale unui program surs Definirea datelor i procedurilor servesc att propriei seciuni ct i altor seciuni. Compilatorul asigur pe lng generarea codului obiect i informaii de legtur ntre seciuni: - informaii de identificare (nume seciune, punctul de intrare); - informaii de legtur. Structura unei seciuni dup compilare este redat n fig.1.7.
Nume seciune Punct de intrare Dicionar de legtur Codul obiect

Fig. 1.7. Structura unei seciuni dup compilare Dicionarul de legturi rezult n urma determinrii de ctre compilator, a elementelor de comunicaie specificate n fiecare seciune a PS, coninnd dou tipuri de simboluri: - externe - nedefinite n seciune, cu adresa necunoscut; - interne - definite n seciune, dar referite din exteriorul acesteia. Segmentul este o succesiune de seciuni ntre care au fost rezolvate legturile; acesta conine: - numele segmentului; - punctul de intrare n segment; - codul obiect al seciunilor aranjate ntr-o anumit ordine. Programul este o structur arborescent de segmente (segment principal i segmente subordonate organizate pe substructuri); acesta este organizat ntr-o structur multifazic de ctre editorul de legturi, care pe baza numelor segmentelor din care este alctuit programul i a secvenei de seciuni din care este compus fiecare segment, creeaz structura de program pe care o depune pe suport extern (de obicei, hard-disk) de unde va fi ulterior ncrcat n RAM pentru execuie.

11

Capitolul 1 Funciile i componentele unui sistem de operare Editorul de legturi prelucreaz PO rezultat n urma compilrii seciunilor, n scopul construirii structurii pe segmente a programului; el este o component a programelor de servicii care asigur urmtoarele funcii: - construirea dicionarului de legturi ntre diverse seciuni; - nlocuirea fiecrei seciuni din cadrul unui segment, cu un factor de relocare corespunztor adresei de ncrcare n RAM; - alocarea de zone continue pentru segment; - modificarea constantelor de adres relocabile, pentru a conine valorile relocate ale simbolurilor lor; - cutarea n biblioteca relocabil, a modulelor obiect catalogate; - construirea structurii arborescente a programelor executabile. Activitatea editorului de legturi (linkeditor) este redat n fig.1.8. PO Program obiect Structura pe segmente

Bibliotec sistem

Editorul de legturi

Program obiect executabil

POE

Bibliotec utilizator Fig.1.8. Activitatea editorului de legturi Observaii: - mediul de programare Pascal include editorul de legturi n compilator; - sub sistemul de operare UNIX editarea legturilor se realizeaz implicit, cu excepia cazurilor n care ea este gestionat de utilizator; n acest caz, la compilare se va specifica opiunea - o (numai compilare). 1.5. Alte programe de servicii ncrctorul ncrctorul este componenta sistemului de operare ce ncarc programul obiect executabil (POE) n RAM n vederea execuiei i iniializarea execuiei. ncrcarea programelor n RAM pentru execuie se poate face: - imediat dup translatare, cnd sistemul de operare are inclus ncrctorul n compilator (compilatoare Load and Go); - n momentul editrii de legturi (ncrctorul inclus n Link); - dup editarea de legturi, ca proces distinct. Activitatea ncrctorului la sistemul de operare MS-DOS este materializat prin execuia funciei exec, n timp ce la sistemul de operare UNIX funcia similar este execl

12

Sisteme operaionale Depanatorul Depanatorul este un program de servicii ce ofer utilizatorului mijloace convenabile pentru depanarea i controlul operaiilor programului su prin: - lansarea n execuie a programului; - suspendarea execuiei n puncte predeterminate (breakpoints) sau execuie pas cu pas; - examinarea i modificarea coninutului cuvintelor din RAM i registre; - realizarea de modificri i corecii adiionale la rularea programului, utiliznd codul binar, octal, hexazecimal. Sub MS-DOS exist utilitarul debug, n timp ce sub UNIX se poate folosi utilitarul sdb ce se constituie ca un depanator simbolic care permite analiza execuiei pas cu pas a programelor, prin vizualizarea strii variabilelor, a parametrilor ce definesc mediul de execuie i altele. Alturi de programele de servicii destinate acordrii de instrumente ce ofer faciliti utilizatorilor pentru dezvoltarea propriilor programe de aplicaie, un sistem de operare dispune de programe de interes general care sunt lansate n execuie prin specificarea unor comenzi aparinnd interpretorului de comenzi sau se gsesc pe suportul de memorie extern sub forma fiierelor executabile: - gestiunea cataloagelor (directori, subdirectori): copiere, mutare, tergere, creare, redenumire etc. - gestiunea datelor i programelor sub forma fiierelor: creare, mutare, copiere, tergere, redenumire, salvare, refacere etc.; - informaii despre sistemul de calcul, despre componente i despre resursele utilizate; - opiuni de configurare a resurselor; - comprimare/decomprimarea spaiu pe suportul de memorie extern: pkzip/pkunzip, arj, rar, stacker; - antivirus: scan, clean, tbav, fprot, avx, rav; - alte comenzi. 1.6. Sisteme de operare la calculatoare personale 1.6.1. Categorii de sisteme de operare La calculatoarele personale (PC) exist n principal dou categorii de sisteme de operare: 1) monotasking care execut un singur task (program sau parte a unui program aflat n faza de execuie) la un moment dat, avnd ca principale funcii: - ncrcarea i execuia programelor; - asigurarea unei interfee omogene cu dispozitivele periferice; - posibilitatea dialogrii cu utilizatorul prin intermediul unui interpretor de comenzi. 2) multitasking care va asigura suplimentar, partajarea timpului ntre programele ce se execut simultan i gestiunea alocrii resurselor sistemului de calcul att hardware ct i software; nucleul sistemului de operare include urmtoarele componente: - supervizorul care are ca principale activiti lansarea, oprirea sau suspendarea aplicaiilor; - planificatorul proceselor care regleaz timpul de execuie alocat pentru diverse activiti. I. alocatorul de resurse evideniaz resursele libere sau alocate; II. modulul de gestiune pentru intrri /ieiri ce asigur dialogul cu perifericele. La nucleul sistemului de operare se adaug: I. interpretorul de comenzi; II. sistemul de gestiune al fiierelor;

13

Capitolul 1 Funciile i componentele unui sistem de operare III. sistemul de gestiune al bazelor de date; IV. programe de comunicaie Referirile s-au fcut la nucleul sistemelor de operare rezident n memoria intern, parte component a programelor de comand control; considerentele precizate la programele de sistem rmn valabile cu specificul impus de categoria microsistemelor. Principalele sisteme de operare existente astzi pe PC-uri sunt: MS-DOS i interfeele grafice Windows, Unix, OS/2, Apple/Macintosh DOS, VMS. 1) MS-DOS (Microsoft Disk Operating System) n 1981 firma Microsoft a lansat sistemul de operare IBM MS-DOS care n 1985 a devenit standardul sistemelor de operare pe microcalculatoare cu implementarea microprocesoarelor pe 16 bii (I 8086, I 8088) MS-DOS versiunea 3.3; versiunile ulterioare ofer faciliti pentru desfurarea activitii utilizatorului prin punerea la dispoziie a unor opiuni de alegere din meniu, comparativ cu versiunile anterioare care presupuneau cunoaterea sintaxei fiecrei comenzi; drept urmare, software-ul special denumit DOS SHELL a fcut din sistemul de operare MS-DOS un sistem uor de utilizat, cu meniu disponibil pentru comenzi. Ultima versiune este MS-DOS 7 sub interfeele grafice Windows. Sistemul de operare MS-DOS a fost proiectat n principal, s execute un singur program pentru un singur utilizator. 2) Digital Research Corporation a introdus cteva versiuni noi, incluznd DOS Concurent care suporta execuia mai multor programe n acelai timp (DR-DOS). 3) Apple DOS a fost introdus pe PC-urile de tip Apple, care se bazeaz pe microprocesoare diferite dect cele folosite de IBM, deci incompatibil cu clasele de PC-ri de tip IBM; iniial a fost destinat pentru un singur utilizator care execut un program la un anumit moment. Un sistem de operare mult mai puternic este Macintosh DOS proiectat s fie utilizat pe PCuri de tip Apple /Macintosh DOS (implementat cu microprocesor Motorola 68040) ce permite multiprogramare i memorie virtual. Apple Computer a lansat urmtoarea generaie de sisteme de operare constituit din Mac OS 8 i Rhapsody. 4) Interfeele grafice WINDOWS Windows este o interfa grafic orientat pe ferestre; utilizatorul poate lansa concomitent mai multe aplicaii, fiecare n fereastra ei, precum i efectuarea schimbului de informaii intre acestea. Se consider ca apariia sa marcheaz momentul n care calculatoarele IBM i compatibile, au putut egala facilitile de utilizare i viteza calculatoarelor din gama Macintosh. Windows 3.11. for Wokgroups, spre deosebire de Windows 3.1., dispune suplimentar de faciliti pentru lucru n reea a grupurilor de utilizatori conectai; acetia pot efectua transferuri de date, mesaje, informaii prin simpla selectare i activare a unor comenzi i funcii disponibile. Windows NT (New Tehnology) a fost proiectat n ideea compatibilitii cu interfeele grafice precedente, Windows 3.1. i Windows 3.11. for Workgroups. Sistemul Windows NT, serverul Windows NT i produsele legate de acesta, alctuiesc un sistem un client-server deschis, deosebit de puternic i fiabil. Unul dintre avantajele majore care-l recomand, constituie posibilitatea implementrii att pe platforme Intel, ct i pe platforme bazate pe microprocesoare RISC. Windows 95 spre deosebire de versiunile precedente, ncearc s fie un compromis de sistem de operare ce lucreaz pe 32 de bii; ncorporeaz majoritatea facilitilor regsite la celelalte interfee grafice, adugnd i altele noi. Este util doar n aplicaii pe 32 de bii, chiar dac pstreaz compatibilitatea cu aplicaiile pe 16 bii. Windows 98 este un sistem de operare complet integrat cu Internetul, constituindu-se ca un suport pentru noile tehnologii hardware i pstrnd compatibilitatea cu Windows 95 fa de care apare ca un upgrade.

14

Sisteme operaionale Windows 2000 este ultima generaie a celui mai rspndit sistem de operare de reea din ntreaga lume. Proiectat pentru organizaii de orice dimensiune noua versiune ofer siguran sporit i scalabilitate, costuri mai reduse, respectiv servicii pentru aplicaii derulate prin Internet. 5) OS/2 (Operating System / 2) n 1988 IBM i Microsoft a introdus sistemul OS/2 care a fost proiectat s preia avantajele microprocesoarelor I 80286 i I 80386 pentru seria de microcalculatoare IBM PS/2 pe 32 bii; este un sistem de operare multitasking, fiind capabil a adresa 16 M memorie intern; necesit 1,5 M memorie intern i hard disc; versiunile construite n jurul microprocesorului I 80386 sunt i multiutilizator (maxim 16 utilizatori simultan). Dei spaiul adreselor fizice este de 16 M, prin mecanismul memoriei virtuale spaiul adreselor virtuale poate accesa pn la 32 M. OS/2 pstreaz majoritatea comenzilor MS-DOS n special pentru operaiile cu fiiere i periferice. Pentru a permite micarea intre aplicaii a utilizatorului, OS/2 dispune de o interfa PM (Presentation Manager) orientat pe ferestre pentru introducerea comenzilor, selectarea taskurilor ce se vor executa, gestiunea taskurilor i altele; PM dispune de dou programe de comand control: controlul pentru configurarea porturilor, culorilor ecranului i setului de caractere, etc.; utilitar pentru fiiere ce permite deplasarea prin arbori de directori, mutare, copiere, tergere de fiiere i subdirectori, modificarea atributelor, sortarea i alte operaii. Versiunile recente OS/2 Warp i OS/2 Warp Connect solicit cel puin un sistem AT 386 cu 4 M de RAM (OS/2 Warp) respectiv 8 M de RAM (Warp Connect). OS/2 Warp este un sistem de operare ce controleaz aciunile calculatorului, dar este i o interfa grafic utilizator (GUI-Graphical User Interface), care permite comanda calculatorului, prin selectarea de simboluri vizuale. Dintre facilitile disponibile la OS/2 Warp se pot enumera: lucrul cu mai multe programe (multitasking); interfaa sistemului Warp este uor de neles, de memorat; toate programele livrate cu Warp au aspecte grafice i de operare similare (pachetul Bonus Pak) OS/2 Warp faciliteaz conectarea la Internet (CIM) Bonus Pak include un procesor de texte, un program de tip foaie electronic de calcul (spredsheet), generator de diagrame, Sistem de Gestiune a Bazelor de Date (SGBD), generator de rapoarte; utilitare pentru accesoriile: plci audio, fax / modem, video, etc. Conectarea la Internet se realizeaz on-line Compuserve cu CIM pentru OS/2, respectiv cu Hyper ACCESS Lite la alte servicii on-line, la un Bulletin Board System sau la alt PC. 6) UNIX a fost iniial creat pentru minicalculatoare, pentru a mri disponibilitile sistemului: memorie virtual, multiutilizator i multitasking; rescris n limbajul C, a fost portabil pe o gam mai larg de sisteme de calcul: mainframes, microcalculatoare, de unde i unul din marile sale avantaje. Actualmente, sistemele de operare UNIX sunt proiectate de mai multe firme specializate, ceea ce a condus la existenta mai multor versiuni cum sunt: AIX, SCO-ODT, HP-UX, SOLARIS, Digital, UNIX, IRIX, Linux, .a. Trsturile principale ale sistemului de operare UNIX sunt: Sistemul de fiiere structurat pe mai multe niveluri, ceea ce permite mai multor utilizatori s lucreze cu acelai calculator n acelai timp (multiuser); Orice utilizator curent poate solicita execuia mai multor programe n acelai timp (multitasking); Un program utilizator poate s transmit rezultatele sale altui program; Utilizatorul poate redirecta rezultatele programului su de la un dispozitiv periferic la altul; 15

Capitolul 1 Funciile i componentele unui sistem de operare Existena unui interpretor de comenzi i un limbaj adecvat, cunoscut sub denumirea de Shell; Folosete un limbaj structurat numit C, pentru programarea sistemelor; Includerea unor componente pentru editarea textelor i formatarea lor pentru tiprire; Utilizarea de tehnici evoluate pentru conectarea sistemelor de calcul care opereaz sub UNIX sau alt sistem de operare; Nu impune vreo limit la eventualele modificri determinate de specificul aplicaiei. Linux a fost dezvoltat ca o versiune distribuit gratuit de UNIX, UNIX fiind unul dintre cele mai utilizate sisteme de operare n lume, mult timp standardul pentru staii de lucru de nalt performan i servere mari. Pentru c UNIX este un produs comercial, el trebuie cumprat pentru fiecare platform pe care ruleaz. Licenele pentru versiunile UNIX pentru PC-uri sunt destul de scumpe i de aceea, n tentativa de a face UNIX-ul disponibil fr costuri pentru cei care vor s-l experimenteze, un numr important de sisteme UNIX pentru domeniul public au fost dezvoltate de-a lungul anilor. Una dintre primele astfel de versiuni ale UNIX-ului a fost Minix, scris de Andrew Tanenbaum. Cu toate c Minix nu avea un set foarte mare de caracteristici, a fost un mic sistem de operare ce putea fi folosit pe PC-uri. Pentru a extinde Minix-ul, un numr de programatori au nceput dezvoltarea unui sistem de operare mai puternic care s profite de avantajele arhitecturii microprocesorului I 80386. Unul din primii proiectani ai acestui sistem cunoscut ulterior sub numele de Linux, a fost Linus Torvalds de la Universitatea din Helsinki. El a lansat o prim versiune a Linux-ului n 1991. O versiune comercial, aproape fr nici un bug, a fost lansat pentru programatori n martie 1992. Curnd, muli programatori au nceput s lucreze la Linux i pe msur ce provocarea i dorina de a construi un sistem de operare asemntor UNIX-ului a nceput s prind, Linux-ul a crescut cu o rat remarcabil. Deoarece numrul celor care lucrau la Linux cretea, ntr-un final acest sistem de operare a fost terminat i acum include toate instrumentele ce se pot ntlni ntr-o versiune comercial a UNIX-ului. Linux-ul continu s creasc pe msur ce adapteaz noi caracteristici i programe care original, au fost scrise pentru versiunea comercial a UNIX-ului. Linux nu se bazeaz pe o singur versiune de UNIX, ci este o consolidare a celor mai bune caracteristici ale BSD UNIX i System V. BSD UNIX a fost dezvoltat i implementat la Universitatea din California (Berkeley) ncepnd din anul 1997. Cteva lansri majore au crescut puterea lui BSD UNIX. Cteva programe standard UNIX au fost iniial realizate la BSD, cu toate c BSD a ncetat dezvoltarea versiunilor de UNIX la nceputul anilor 90. Compania AT&T care a realizat prima versiune de UNIX, a continuat propria dezvoltare producnd o serie de versiuni UNIX numite System III, System IV i System V. Linux folosete prima lansare a lui BSD UNIX numit 4.4 BSD ca baz i preia cteva alte caracteristici din ultima lansare a versiunii System V, numit System V Release 4 ( SVR4 ). Linux este un sistem de operare complet multitasking i multiuser care se comport ca sistemele de operare UNIX n termenii comportamentului nucleului i a suportului pentru periferice (fig.3.9). Linux are toate trsturile UNIX-ului, plus cteva extensii recente care i-au adugat mai multa flexibilitate . Unele servicii software furnizate chiar de nucleu, au proprieti similare, prin urmare au fost abstractizate n clase. De exemplu, diferitele protocoale de reea au fost abstractizate ntr-o singur interfa de programare numit BSD socket library. Un alt exemplu l constituie fiierele de sistem virtuale ( Virtual File System -VFS ) care abstractizeaz operaii legate de fiiere i pentru care fiecare sistem de fiiere are propria implementare. Cnd o entitate ncearc s utilizeze un sistem de fiiere, cererea se transmite VFS - ului care o redirecioneaz ctre driverul pentru sistemul de fiiere corespunztor. Pentru a face ca Linux-ul s fie acceptat la scar larg, el suport un numr de sisteme de fiiere inclusiv cele compatibile cu DOS i OS/2. Sistemul iniial de fiiere propriu al Linux-ului 16

Sisteme operaionale numit ext2fs este proiectat pentru o utilizare optim a discului. Linux-ul este ideal pentru dezvoltare de aplicaii i experimentare cu noi limbaje. Diferite compilatoare, inclusiv C, C++, Fortran, Pascal, Modula-2, LISP, Ada, Basic i Smalltalk vin prin distribuirea software-ului. Multe dintre compilatoarele Linux-ului, instrumente, debuggere i editoare provin de la proiectul GNU Free Software Foundation. 7) Open VMS Open VMS, iniial denumit VMS ( Virtual Memory System ), a fost conceput n 1976 ca un sistem de operare pentru noua linie de calculatoare pe 32 de bii a firmei DEC (Digital Eguipment Corporation), numit VAX (Virtual Address eXtension ). Primul model VAX ( 11/780 ) a fost denumit Star, de aici i numele de cod Starlet pentru sistemul de operare VMS, nume care se pstreaz i astzi ca nume pentru biblioteca sistem ( STARLET.OLB). Versiunea actual a sistemului de operare este Open VMS 7.2 Open VMS este un sistem de operare pe 32 de bii cu suport pentru multitasking, multiprocesor i memorie virtual. Conceput ca un sistem de operare de uz general care ruleaz att n mediile de dezvoltare, ct i n mediile de producie, Open VMS poate fi implementat pe toat seria de calculatoare Alpha a firmei DEC (actualmente un departament al firmei Compaq Computer Corporation ), ct i pe seriile de calculatoare VAX, Micro VAX, VAX Station i VAX Server. Pentru ambele categorii de platforme OpenVMS asigur faciliti de multiprocesare simetric ( Symmetric MultiProcessing SMP). Sistemul de operare OpenVMS poate fi configurat pentru a oferi performane maxime n medii foarte variate ca de exemplu domenii care necesit calcule i operaii de intrare /ieire intense, medii client /server, sau execuie n timp real. Performana sistemului depinde de tipul de calculator, memoria intern disponibil, numrul i tipul discurilor, etc. Versiunea 7.2 pentru platforme Alpha aduce noi faciliti proiectate pentru a asigura un nivel nalt de interoperabilitate ntre OpenVMS i Windows NT. Aceasta ofer i arhitectura software Galaxy pentru OpenVMS care crete performana, scalabilitatea i sigurana n funcionare permind mai multor instante ale sistemului de operare s se execute simultan n acelai calculator sau pe un cluster. Cele mai importante faciliti introduse sau extinse de ctre OpenVMS V7.2 sunt: integrarea cu Windows NT; arhitectura Galaxy pentru platforme Alpha; canale pe fibre optice pentru interconectarea mediilor de stocare ntr-un cluster OpenVMS; componenta Object Model ( COM ); Java Development Kit; Netscape Fast Track Web Server; noi modaliti de realizare a clusterelor ( performan sporit pentru baze de date mari distribuite, management simplificat, toleran la defeciuni fizice, Galaxy, etc ;) sistem mbuntit de stocare a fiierelor; servicii de TCP/IP mbuntite, bazate pe cele din kernelul Tru 64 UNIX; unelte noi pentru administrare; mbuntiri n ceea ce privete performana, sigurana, disponibilitatea i securitatea sistemului de operare; program de BACKUP mbuntit; compatibilitate complet cu anul 2000. Ultima versiune ( OpenVMS V7.2-1) include suport pentru COM V1.1 pentru OpenVMS, canale de fibre optic pentru conectarea dispozitivelor de stocare, suport pentru multe din standardele importante cum ar fi OSF/Motif i OSF Distributed Computing Enviroment (DCE), Java i Microsoft Distributed Component Object Model (DCOM). 17

Capitolul 1 Funciile i componentele unui sistem de operare La ora actual exist aproximativ 450.000 de sisteme OpenVMS instalate n ntreaga lume . Produsele Alpha/OpenVMS sunt apreciate datorit performanei, securitii, siguranei n funcionare, facilitilor de interconectare oferite, posibilitilor de upgrade ulterior i costurilor foarte sczute de ntreinere . Acestea sunt dovedite i de poziia ocupat pe pia : numrul 1 n domeniul sistemelor integrate din domeniul medical; 90% din sistemele productorilor de procesoare; peste 50% din sistemele de facturare; 66% din transferurile financiare se fac pe maini Alpha/OpenVMS; 5 din cele mai mari 10 burse ale lumii; peste 80% din loterii. n Romnia, sistemele Alpha/OpenVMS/Oracle sunt folosite de ctre Ministerul Industriei i Comerului, Mobifon ( Connex ), Registrul Independent al Acionarilor REGISCO S.A., SNCFR i n sistemul bancar .

18

Sisteme operaionale

EXERCIII 1. Care sunt asemnrile i deosebirile dintre programele de aplicaie (software de aplicativ) i programele de sistem (software de baz) ? 2. Identificai etapele de pregtire a execuiei programelor pe un mediu de programare (Turbo Pascal, de exemplu), evideniind activitatea componentelor sistemului de operare. 3. Determinai structura arborescent creat de aciunea unui compilator asupra expresiilor: a) E = ( a - b ) * ( c + d + e : f ) b) F = x - ( y + z ) : t c) G = a2 - b2 : 5c d) H = x + ( y - a + b )( z2 - t3 ) : 298 - uvw1/2 e) A = GF - EH 4. Prin ce se deosebesc esenial translatoarele de limbaje ? 5. Corectai erorile de execuie aprute la un program scris n Turbo Pascal, utiliznd depanatorul inclus n MS-DOS (se activeaz debug.exe). 6. Care sunt principalele sisteme de operare disponibile la calculatoarele personale compatibile IBM ? Menionai caracteristicile de baz mai semnificative. 7. Prin ce se difereniaz semnificativ sistemele de operare care sunt proiectate pentru calculatoarele IBM, de cele care echipeaz sistemele Apple i MacIntosh ?

19

TEHNICI DE GESTIUNE A LUCRRILOR LA SISTEMELE DE CALCUL


Unul dintre obiectivele utilizrii eficiente a sistemelor de calcul este acela de a executa un volum ct mai mare de lucrri, cu o configuraie minim (termenul de lucrare desemneaz activitile declanate de solicitarea unor prelucrri cu ajutorul sistemelor de calcul). n acest scop se analizeaz componenta hardware (din punct de vedere al costului, ca msur a utilizrii eficiente a volumului de lucrri ce trece prin sistem ntr-o perioad dat de timp) i software (un program este bun dac rspunde cerinelor informaionale pentru care a fost realizat, utilizeaz un spaiu minim de memorie intern i un timp de execuie ct mai redus). Rolul principal al sistemului de operare este s mbunteasc eficiena utilizrii resurselor sistemului de calcul. Componentele sistemului de operare luate individual, sunt astfel proiectate nct s utilizeze ct mai eficient fiecare resurs a sistemului de calcul: timpul unitii centrale de prelucrare, spaiul de memorie intern i extern, registre, dispozitive periferice de intrare/ieire i altele. Pentru aprecierea performanelor unui sistem de calcul se pot utiliza o serie de indicatori cum sunt: - volumul de lucrri intrate n sistem; - timpul petrecut n sistem; - timpul de rspuns ca diferen ntre momentul servirii cererii i emiterea ei; - accesibilitatea sistemului; - fiabilitatea sistemului; - costul serviciilor prestate. Unii indicatori sunt n conflict, astfel c o cretere a performanelor unui indicator se realizeaz pe seama scderii performanelor altui (altor) indicator(i); exemplu: creterea volumului de lucrri din sistem implic o cretere a timpului petrecut n sistem de ctre fiecare lucrare i implicit la creterea timpului de rspuns; de asemenea, verificrile de securitate mresc timpul de prelucrare.

2.1. Obiectivele urmrite n gestiunea lucrrilor Una dintre funciile majore ale unui sistem de operare este de a optimiza utilizarea tuturor resurselor unui sistem de calcul: timp unitate central de prelucrare, spaiu de memorie intern, canale, registre, dispozitive periferice de intrere/ieire, biblioteci, programatori, utilizatori, rezultate ale prelucrrii. Cu o planificare foarte riguroas este posibil apropierea de ncrcarea maxim a unitii centrale de prelucrare i a procesoarelor de intrare/ieire (canale). Chiar i n acest caz ns, sunt meninute neocupate alte resurse ale sistemului de calcul: memoria intern, memoria extern, dispozitivele periferice de intrare/ieire.

20

Sisteme operaionale La stabilirea unei modaliti de planificare a lucrrilor trebuie cunoscute foarte precis obiectivele- uneori subiective i contradictorii- de realizare simultan a urmtoarelor activiti: - execuia unui volum ct mai mare de lucrri n unitatea de timp - dac se ruleaz lucrri cu timp redus de execuie; - reducerea timpilor de ateptare ai unitii centrale de prelucrare - dac se execut lucrri cu volum mare de calcule i numr redus de operaii de intrare/ieire; - ncrcarea dispozitivelor periferice la capacitate maxim - cnd se execut lucrri cu volum mare de operaii de intrare/ieire i volum redus de calcule. Se observ c unele obiective se exclud prin natura lor. Se poate aprecia n general, c pentru stabilirea unei strategii de planificare a execuiei unor lucrri n condiiile impuse de limitrile hardware, se vor urmri obiectivele: - maximizarea ratei de ieire a lucrrilor; - minimizarea timpului mediu de rspuns; - servirea unui numr ct mai mare de utilizatori, ntr-un timp acceptabil; - reducerea costurilor pentru serviciile prestate; - posibilitatea execuiei unor lucrri cu prioritate (printr-un cost mai ridicat); - ncrcarea echilibrat a unitii centrale de prelucrare i a sistemului de intrare/ieire; - folosirea cu un randament ridicat a spaiului de memorie intern i extern; - distribuirea prelucrrii unui program, prin mprirea acestuia n sarcini mai mici (taskuri) ce se pot executa n paralel (multitasking); - integrarea unui numr ct mai mare de utilizatori (clieni) n jurul unui procesor central (server). 2.2. Monoprogramarea Monoprogramarea este o tehnic de gestiune a lucrrilor ce presupune execuia secvenial a lucrrilor solicitate a se prelucra pe un sistem de calcul. Caracteristicile acestei tehnici se concretizeaz n urmtoarele aspecte: - planificarea lucrrilor se realizeaz strict secvenial ntr-o ordine prestabilit; - fiecare lucrare are la dispoziie toate resursele sistemului de calcul n momentul execuiei; - fiecrei lucrri i se asociaz un singur proces la un moment dat, astfel c pe durata operaiilor de intrare/ieire (care dureaz mult comparativ cu durata de execuie a unitii centrale de prelucrare), unitatea central de prelucrare ateapt terminarea acestor operaii, conducnd la creterea duratei de execuie a lucrrilor. Obiectivul urmrit n cadrul acestei tehnici l constituie reducerea timpului mediu petrecut de lucrare n sistem. Execuia lucrrilor n monoprogramare Un program solicit pe parcursul execuiei operaii de intrare/ieire; operaiile sunt supervizate de ctre un procesor de comunicaii numit canal, care transfer coninutul ntre memoria intern i dispozitivele periferice de intrare/ieire. Dac unitatea central de prelucrare ntlnete o instruciune de citire, atunci iniiaz execuia unui proces de intrare ctre procesorul de comunicaie, continund-i activitatea de prelucrare fr a se interfera cu activitatea canalului. Procesele de intrare/ieire fiind mai lente, unitatea central de prelucrare va atepta transferul datelor solicitate n vederea prelucrrii lor ulterioare; dac procesul de intrare s-a ncheiat, unitatea central de prelucrare va fi sesizat de canal printr-o ntrerupere. Sincronizarea activitilor dintre unitatea central de prelucrare i procesorul de comunicaie este redat n fig. 2.1.

21

Capitolul 2 Tehnici de gestiune a lucrrilor la sistemele de calcul

iniiere operaie de intrare/ieire CPU

procesor comunicaie

t1

t2

t3

t4

Fig.2.1. Sincronizarea activitilor dintre unitatea central de prelucrare ( CPU ) i procesorul de comunicaie ( DMAC ) n monoprogramare t1 - momentul iniierii de ctre CPU a unei operaii de intrare; t2 - momentul n care CPU are nevoie de datele solicitate de la dispozitivul periferic de intrare, pe care nu le are deoarece nu s-a terminat operaia de citire; t3 - se termin operaia de citire i se reia execuia programului de ctre CPU cu datele solicitate; t4 - momentul ncheierii execuiei programului. Pentru aprecierea eficienei utilizrii acestor procesoare ( CPU, DMAC), se calculeaz randamentul de utilizare (n % ): t (t 3 t 2 ) CPU = 4 100 t4 t [t + (t 4 t 3 )] DMAC = 4 1 100 t4 Dei prezena canalului amelioreaz productivitatea sistemului datorit simultaneitii activitii acestuia cu activitatea CPU (parial sau total), exist intervale de timp impuse de necesitatea sincronizrii activitilor n care CPU este n starea de ateptare. 2.3. Multiprogramarea

Timpul de inactivitate al CPU impus de perioadele de ateptare poate fi redus substanial dac n memoria intern ar putea coexista simultan mai multe programe ce pot solicita CPU atunci cnd aceasta ateapt terminarea unei operaii de intrare/ieire pentru lucrarea curent n execuie. Multiprogramarea este o tehnic de gestiune a lucrrilor pe sistemele de calcul prin care sunt plasate mai multe lucrri simultan n memoria intern iar CPU comut ntre ele; din punct de vedere conceptual, multiprogramarea implic simultaneitatea a "n" procesoare pe un singur procesor sau existena a "n" procesoare virtuale n cadrul unui singur procesor. Caracteristicile de baz ale acestei tehnici const n: - existena simultan a mai multor lucrri n memoria intern; - existen unui mecanism de trecere de la un program la altul astfel ca randamentul sistemului s fie ridicat; - existena unui mecanism de protecie ntre lucrri care s permit execuia fiecreia, fr afectarea celorlalte lucrri existente n memoria intern; - existena unui mecanism pentru gestiunea resurselor fizice i logice solicitate de ctre lucrrile n execuie (echipamente periferice, informaii, etc.). Obiectivul urmrit n multiprogramare l constituie maximizarea volumului de lucrri care trec prin sistem i minimizarea timpului petrecut de o lucrare n sistem. Multiprogramarea se poate aprecia ca o dezvoltare a sistemului de operare, iar folosirea partajat a CPU de ctre lucrri, ca o execuie concurent (n realitate, partajarea este realizat pe intervale distincte).
22

Sisteme operaionale 2.3.1. Planificarea execuiei lucrrilor Sistemele de calcul ce utilizeaz tehnica multiprogramrii sunt prevzute cu o component a sistemului de operare numit monitor de planificare a lucrrilor, care alege dintr-un grup de programe n ordinea sosirilor, pe acelea potrivit crora timpul neocupat al CPU s fie minim; exist o limit pentru numrul de lucrri ce pot fi executate simultan (dac acest numr este depit, este invocat o procedur pentru selecia lucrrilor, iar cele neselectate rmn n ateptare) funcie de memoria afectat utilizatorilor. Procesul de planificare are dou funcii distincte: - asigurarea prioritii; - alocarea resurselor care utilizeaz prioritatea. Algoritmii de planificare presupun c lucrrile sunt ordonate pe baz de prioritate, sub forma firelor de ateptare. Alegerea unui anumit algoritm se va face dup obiectivele urmrite; dintre algoritmii frecvent utilizai n multiprogramare se menioneaz: STF Shortest proccessing Time First - lucrarea cu cel mai scurt timp de prelucrare este prima executat, urmrete minimizarea timpului de trecere prin sistem a lucrrilor ce dureaz puin; LTF Longest proccessing Time First - lucrarea cu cel mai lung timp de prelucrare este prima executat, urmrete reducerea timpului total de execuie a lucrrilor; SMF Smallest Memory requirment First - lucrarea ce necesit cel mai mic spaiu de memorie este prima executat; LMF Largest Memory requirment First - lucrarea ce necesit cel mai mare spaiu de memorie este prima executat; FIFO First Input First Output - lucrrile sunt executate n ordinea lansrii n execuie; LIFO Last Input First Output - lucrrile sunt executate n ordinea invers lansrii n execuie; Round-Robin sau planificarea circular, fiecare lucrare avnd alocat o cuant de timp (interval de 1-10 ms), dup care controlul este comutat la urmtoarea lucrare. 2.3.2. Sincronizarea activitii CPU cu activitatea procesorului de comunicaie Sincronizarea activitii CPU cu activitatea procesorului de comunicaie este redat n fig. 2.2. presupunnd existena a trei programe ncrcate n memoria intern (P1,P2,P3) la un moment dat, ce sunt executate de CPU conform algoritmului Round-Robin.

CPU T1 P1

T2 P2

T3 P3 P1 t1 t2 t3 P2 t4 t5 P3

procesor comunicaie

t6 t7 t8 t9 t10 t11 t12 t13

Fig.2.2. Sincronizarea activitilor dintre CPU i procesorul de comunicaie n multiprogramare

23

Capitolul 2 Tehnici de gestiune a lucrrilor la sistemele de calcul t1 - momentul iniierii unei operaii de intrare/ieire de ctre CPU pentru P1; t2 - momentul cnd P1 are nevoie de transferul datelor solicitate la t1 care nu sunt disponibile deoarece nu s-a terminat operaia de intrare/ieire, comutnd astfel la execuia programului urmtor P 2; t3 - terminarea operaiei de intrare/ieire pentru P1 (CPU este ocupat cu P2); t4 - iniierea operaiei de intrare/ieire pentru P2; canalul fiind liber, trece la execuia solicitat; t5 - momentul cnd P2 necesit datele solicitate; operaia de intrare/ieire nu s-a ncheiat, deci CPU comut la P3; t6 - iniierea unei operaii de intrare/ieire de ctre P3; canalul este ocupat, trece operaia n ateptare; t7 - se termin operaia de intrare/ieire iniiat de P2 i poate fi lansat operaia de intrare/ieire iniiat de P3 (t8); t9 - momentul cnd CPU devine liber de la P3 i avnd datele solicitate de P1 nc de la momentul t3, reia execuia P1; t10 - se ncheie execuia P1 i CPU comut la P2; t11 - se ncheie execuia P2 i CPU ateapt deoarece nu s-a ncheiat operaia de intrare/ieire iniiat de P3; t12 - se ncheie operaia de intrare/ieire i se red controlul CPU pentru P3; t13 - sfrit P3.

t (t 12 t 11 ) CPU = 13 100 t 13 t [t 1 + (t 4 t 3 ) + (t 13 t 12 )] DMAC = 13 100 t 13


2.4. Sistemul spooling (Simultaneous Peripheral Operations On Line)

Activitatea de suprapunere a operaiilor de intrare, prelucrare i ieire prin intermediul tehnicii spooling, are ca principal obiectiv mbuntirea randamentului sistemului de calcul i lrgirea gamei de faciliti oferite utilizatorilor. Tehnica dispune de urmtoarele caracteristici: - disponibilitatea unei memorii externe de capacitate mare i cu acces direct (discuri magnetice), care asociat cu tehnica multiprogramrii permite manipularea unor succesiuni continue de operaii de intrare, ieire i alte prelucrri, ameliornd astfel diferena dintre timpul de execuie al operaiilor de intrare/ieire i timpul de execuie al operaiilor de ctre CPU; - asigurarea unei ncrcri la ntreaga capacitate a dispozitivelor periferice de intrare/ieire; - esenialul acestei tehnici const n organizarea de zone tampon de memorie (buffere) n care se creeaz dispozitive periferice de intrare/ieire virtuale ce permit: * introducerea de lucrri nainte ca acestea s fie executate; * redarea rezultatelor la imprimante n timpul execuiei altor lucrri; * planificarea execuiei lucrrilor n ordinea prioritilor fr a ine seama de disciplina de introducere a acestora n sistem; * schimbarea ordinii de execuie a lucrrilor prin prioriti asociate. Organizarea unui sistem spooling este redat n fig. 2.3.

24

Sisteme operaionale

P1 CON 1

Buffer i/ P1 P3 P2 P4

Buffer /o P9 P10 LPT1 P11

Canal RAM LPT1 P7 P8 Nucleu sistem de operare Canal

CON 2

P12

P5 P6

P2

Canal

CPU

Fig. 2.3. Organizarea unui sistem spooling P1, P2 se introduc de la tastatur; P3, P4 ateapt ncrcarea n memoria intern; P5, P6, P7, P8 sunt active n memoria intern; P9, P10 sunt executate i ateapt tiprirea; P11, P12 se tipresc.
2.5. Sisteme TIME SHARING (Sisteme cu timp divizat)

Tehnica de gestiune a lucrrilor time-sharing este caracterizat de utilizarea concurent a resurselor unui sistem de calcul de ctre "n" utilizatori prin intermediul staiilor de lucru (work stations) plasate local sau la distan; elementele globale ce definesc aceste sisteme sunt tehnica divizrii timpului i multiplexarea resurselor ntre mai muli utilizatori independeni; termenul de multiplexare semnific partajarea resurselor sistemului astfel nct se creeaz mai multe procese, fiecare utilizator avnd senzaia c sistemul i aparine integral (practic, se comut sau se multiplexeaz n timp, de la un utilizator la altul). n time-sharing CPU este partajat pe baz de cerere, planificarea execuiei urmrind obinerea unui timp de rspuns minim; lucrrile nu au prioriti prestabilite, astfel c acestea trebuie s fie executate ntr-o manier dinamic. Multiplexarea resurselor ntre procese necesit existena unei componente a programelor de comand-control capabil s trateze o larg gam de ntreruperi. Utilizatorii sunt aleatori, se schimb n orice moment, lucreaz programe diferite, se conecteaz/deconecteaz la/din sistem independent unii de alii utiliznd perioade de timp diferite pentru execuia lucrrilor. Trsturile eseniale ale acestei tehnici const n: - protecia memoriei, prin care programele utilizatorilor trebuie s fie protejate ntre ele pentru a nu permite accesul neautorizat, fiecare program fiind limitat la spaiul su de memorie; - independena utilizatorilor, prin care se stabilete o cuant de timp pentru fiecare utilizator; dac programul nu s-a terminat n acest interval de timp, este returnat n memoria extern i plasat la sfritul firului de ateptare, ncrcndu-se alt program n memoria intern, .a.m.d. - alocarea resurselor pentru programele utilizatorilor este efectuat de monitorul rezident n memoria intern (monitor de time-sharing): spaiu de memorie intern, timp CPU, tratarea cererilor de ntrerupere de la terminale, etc.;
25

Capitolul 2 Tehnici de gestiune a lucrrilor la sistemele de calcul - alocarea memoriei interne se realizeaz printr-o tehnic de alocare i control a micrii paginilor ntre memoria intern i cea extern. Caracteristici hardware solicitate implic: - memorie intern de capacitate mare i CPU rapid pentru asigurarea unui timp minim de rspuns (volum mic de migrri ntre memoria intern i cea extern, respectiv comutarea rapid ntre programe); - ceas de timp real care s genereze ntreruperi pentru comutarea CPU de la un program la altul; - memorie extern cu acces direct n care o soluie ar fi cuplarea n paralel a memoriei externe la CPU i terminale, ceea ce implic transferul ntre memoria extern i terminale independent de activitatea CPU; - sistem de comunicaie transferul informaiilor ntre CPU i terminale, linii de comunicaii, modemuri, concentratoare i multiplexoare; - terminale i CPU adecvate. Caracteristici software Caracteristici software sunt realizate n principal de monitorul de time-sharing care gestioneaz resursele ntregului sistem: - alocarea i comutarea CPU dup timpul alocat pe baza unui algoritm de planificare a execuiei stabilit astfel nct s se asigure: - reducerea timpului de rspuns; - minimizarea timpului necesar comutrii ntre procese; - posibilitatea lansrii n execuie a oricrui proces care ateapt, lansare ce se execut n funcie de prioriti; - ncrcarea echilibrat a sistemului; - stabilirea locului fiecrui program n firul de ateptare, n funcie de prioritate; - alocarea spaiului de memorie intern: zona de memorie i adresa unde se ncarc fiecare program; - tratarea ntreruperilor prin analiza motivului ntreruperii care va determin aciunea ce se ntreprinde n continuare; - gestiunea fiierelor prin care se determin locul unde sunt memorate coleciile de date, regsirea lor rapid, parola de protecie .a.. Modul de lucru al unui sistem time-sharing este redat n fig. 2.4.
DP Disc sistem Canale de i/o i/o Disc utilizator

P1 P2 P4

P3

Monitor timesharing (nucleu) RAM

Procesor comunicaie

P6

P5

Memorie instane

Fig. 2.4. Modul de lucru al unui sistem time-sharing

26

Sisteme operaionale 2.6. Multiprelucrarea

Dac mai multe programe se gsesc n acelai timp n memoria intern i partajeaz resursele sistemului de calcul atunci sistemul utilizeaz tehnica multiprogramrii; dac n multiprogramare se folosesc mai multe procesoare, atunci sistemul utilizeaz tehnica de gestiune denumit n multiprelucrare. Se poate aprecia c multiprogramarea este un concept software, iar multiprelucrarea un concept hardware. Un sistem de calcul utilizeaz tehnica multiprelucrrii dac cel puin dou CPU lucreaz n paralel; unitile centrale de prelucrare pot executa instruciunile unui singur program sau pot executa instruciuni din programe diferite. Oportunitatea multiprelucrrii const n : - ncrcarea partajat a programelor pentru execuie, fiecare procesor avnd acces la firul de ateptare alctuit din lucrrile solicitate a se executa; - separarea diverselor funcii ale sistemului, existnd cte un program responsabil pentru fiecare funcie; - creterea fiabilitii sistemului, pentru care exist dou posibiliti: - duplexarea sistemelor, prin care una sau mai multe componente hardware sunt dublate, una fiind n activitate iar cealalt va fi activat la apariia unui defect al primei componente; pe durata funcionrii corecte a procesorului principal, procesorul secundar poate fi folosit pentru alte operaii; - sisteme duale, sunt sistemele n care dou procesoare centrale prelucreaz simultan acelai program de aplicaie, periodic verificndu-se reciproc privind validarea rezultatelor.
2.6.1. Sisteme master/slave Unul din obiectivele multiprelucrrii este de a degreva o CPU, de sarcini specifice ca: tabelri de date, editri de texte, gesiunea coleciilor de date (fiiere, baze de date); pentru a realiza acest deziderat, la o CPU - denumit slave, este cuplat o CPU care este destinat coordonrii activitilor din sistem - denumit master (fig.2.5.). Master-ul poate s coordoneze toate operaiile de intrare/ieire n timp ce slave-ul execut operaii complexe; n acest caz masterul este referit ca "front-end processor" avnd rol de interfa ntre slave i dispozitivele periferice de intrare/ieire.

CPU master Date, comunicaii control

Alte DP i/o

Memorie extern

CPU slave Prelucrri complexe

Fig. 2.5. Front-end processor Dar masterul se poate utiliza i ca interfa ntre slave i colecii voluminoase de date existente n memoria extern, situaie n care este referit ca "back-end processor" fiind responsabil de gestiunea coleciei de date (fig.2.6.)

27

Capitolul 2 Tehnici de gestiune a lucrrilor la sistemele de calcul


Memorie extern Slave MAINFRAME CPU1 CPU1 Master Date, comunicaii, control

Alte DP i/o

Fig.2.6. Back-end processor Prin urmare, n multiprelucrarea sistemelor organizate n varianta master/slave, fiecare CPU fi dedicat unor sarcini specifice sau poate fi utilizat n mod alternativ pentru execuia unei aceleiai sarcini, n vederea furnizrii unor rspunsuri mai rapide.
2.6.2. Planificarea execuiei lucrrilor n funcie de gradul de planificare al lucrrilor i al sistemului de comunicaie, se disting urmtoarele clase de sisteme (fig.2.7.): 1) sisteme cu CPU identice care sunt determinate de modul n care CPU partajeaz memoria: * memorie unic pentru CPU cuplate n care mai multe CPU partajeaz o memorie; * memorie proprie pentru fiecare CPU din sistem. De remarcat este faptul c se pot include i variante master/slave.

Fig.2.7.a) memorie unic i CPU identice

Memorie intern

CPU

CPU

Memorie intern

Fig.2.7.b) memorie proprie i CPU identice

CPU slave CPU master Memorie intern unic CPU slave CPU slave

28

Fig.2.7.c) memorie unic i CPU master/slave

Sisteme operaionale
Memorie intern CPU slave CPU master Memorie intern

Fig.2.7.d) memorie unic i CPU master/slave Legturile dintre memoria intern i CPU se pot realiza n urmtoarele variante: - legtur matriceal (cross bar) prin intermediul unui sistem de comunicaie, cererile neservite fiind plasate ntr-un fir de ateptare gestionat prin hardware sau software; - legtur prin canale multiple cnd procesoarele partajeaz o cale unica pentru fiecare modul de memorie; - legtur printr-un singur canal folosit partajat acesta constituind interfaa dintre toate CPU i memoria intern. 2) sisteme cu CPU diferite care presupun existena unui numr de CPU periferice care lucreaz n paralel cu CPU principal; pot fi organizate sub form de: - arie de procesoare (processor array) care implic divizarea unui program n activiti independente ce se pot executa simultan pe CPU existente n configuraie; - conduct (pipe) ceea ce permite operarea direct asupra unui ir de vectori (pipeline) elementele irului fiind reprezentate de CPU; - puternic conectate, caracterizate de o cretere a volumului de lucrri executate datorit controlului direct exercitat de CPU din configuraie asupra resurselor; - slab conectate, care pot partaja: sistemul de comunicaie, volumele de memorie cu acces direct, programele de servici prin care componenta software dintr-un sistem comunic cu componenta software din alt sistem, pentru cereri de partajare a resurselor; nu exist un control asupra resurselor unui procesor exercitat de alt procesor. Planificarea execuiei lucrrilor n multiprelucrare depinde de modul de conectare al sistemelor, existnd urmtoarele variante: 1) planificarea n cazul sistemelor diferite se poate realiza: - manual, fr nici o planificare, doar cu comutarea de la un procesor la altul; - prin urmrirea ncrcrii echilibrate a sistemelor, dac acestea sunt slab conectate i dispun de CPU proprie; 2) planificarea n cadrul sistemelor master/slave n care toate resursele sunt disponibile tuturor CPU; n acest caz, memoria intern i dispozitivele periferice de intrare/ieire sunt alocate la procese nu la CPU, iar CPU sunt asigurate s execute procesele de ctre modulul de planificare a execuiei proceselor (sisteme puternic conectate). n cazul tehnicii de planificare master/slave, o CPU master reine starea tuturor proceselor din sistem i planific activitatea tuturor CPU slave. 3) planificarea n cazul sistemelor omogene. n aceast situaie, CPU sunt tratate ca CPU slave, avnd loc o planificare descentralizat; se creaz o list n memoria intern ce conine numele proceselor i starea lor, fiind permis oricrei CPU s acceseze aceast list. n momentul ntreruperii execuiei unui proces, CPU creia i-a fost atribuit merge la lista proceselor i gsete procesul pe care l va lansa n execuie (va folosi acelai algoritm de planificare pentru alegerea urmtorului proces de executat din lista proceselor gata pentru execuie).

29

Capitolul 2 Tehnici de gestiune a lucrrilor la sistemele de calcul

EXERCIII

1. Enumerai obiectivele urmrite n planificarea lucrrilor de ctre sistemele de operare. 2. Care sunt avantajele multiprogramrii comparativ cu monoprogramarea ? 3. Se consider un sistem de calcul cu trei grade de multiprogramare. Pentru programele respective se cunosc urmtoarele: - duratele de execuie estimate pentru programele P1, P2, P3 sunt: t1ex=7c t2ex=6c t3ex=9c - momentele iniierii operaiilor de intrare/ieire: t1i=4c t2i=3c t3i=5c - duratele operaiilor de intrare/ieire: t1i/o=6c t2i/o=5c t3i/o=10c ntre momentul iniierii operaiilor de intrare/ieire i momentul cnd programele respective solicit datele citite o cuant de timp (1c). Se cere: s se calculeze randamentele de utilizare a CPU i canalului pentru urmtoarele discipline: a. Round-Robin; b. planificare cu prioriti astfel: prioritatea lui P3 > prioritatea lui P1 > prioritatea lui P2; c. algoritmul SJNE (Short Job Next Executed). 4. n ce const sistemul Spooling i ce avantaje ofer ? 5. Care sunt asemnrile i deosebirile dintre multiprogramare i sistemele time-sharing ? 6. Specificai obiectivele urmrite de ctre fiecare variant de organizare master/slave n multiprelucrare. 7. Prin ce se deosebesc sistemele ce utilizeaz tehnica multiprelucrrii i cum se realizeaz planificarea execuiei lucrrilor n cadrul fiecreia ?

30

GESTIUNEA RESURSELOR UNUI SISTEM DE CALCUL FUNCIE A SISTEMULUI DE OPERARE


Componenta hardware a sistemelor de calcul necesit existena unui sistem de operare care s poat gestiona resursele hardware, concomitent cu asistarea utilizatorului pe timpul pregtirii i lansrii n execuie a lucrrilor sale. Programele de comand-control ale sistemului de operare sunt constituite din programe care coordoneaz i controleaz resursele hardware (memoria, CPU, canalele, dispozitivele periferice) i informaiile (programe, date), ndeplinind astfel rolul sistemului de operare de a asigura utilizarea eficient a resurselor i de a rezolva conflictele aprute n competiia dintre utilizatori. Pentru gestionarea resurselor programele de comand-control ale sistemului de operare trebuie s realizeze urmtoarele activiti: - evidenierea fiecrei resurse; - adoptarea unei strategii pentru determinarea n orice moment crui proces s-i aloce resursa, ct din resurs, la ce moment de timp i cuanta de timp alocat; - s aloce resursele, iar la terminarea activitii s le dezaloce. n acest scop, programele de comand-control ale sistemului de operare au fost grupate n 4 categorii, corespunztor funciilor ndeplinite: 1) funcia de gestiune a memoriei care const n: - evidena acestei resurse: ct memorie este alocat i pentru care programe; - ce proces primete memorie, la ce moment i n ce cantitate - n cazul multiprogramrii; - aloc pri din memorie i asigur metode de acces i protecie pentru procesele solicitante; - dezaloc zonele de memorie alocate. 2) funcia de gestiune a procesorului (CPU) se refer la: - evidena procesoarelor i strilor acestora ("traffic controller"); - decide cine poate s utilizeze procesorul ("proccesor scheduler"), la ce moment de timp i pentru ct timp; - aloc procesorul la un proces prin pregtirea i ncrcarea unor registre hardware; - retrage alocarea cnd procesul renun la utilizarea procesorului, s-a terminat sau a depit cuanta de timp alocat. 3) gestiunea dispozitivelor periferice realizeaz urmtoarele activiti: - evidena dispozitivelor, a unitilor de control i a canalelor ("I/O Traffic Controller"); - decide metoda cea mai eficient de alocare a dispozitivelor periferice; dac are loc o utilizare simultan, decide cine folosete resursa i ct timp ("schedulering I/O"); - alocarea dispozitivelor periferice i iniiaz operaia de intrare/ieire; - dezalocarea dispozitivelor periferice la terminarea execuiei operaiilor de intrare/ieire. 4) gestiunea informaiei care se materializeaz n: - evidenierea resursei (informaia), localizarea ei, utilizarea, starea, etc. (File System); - decide cine utilizeaz informaia, impune protecia cerut i ofer rutine de acces necesare; - aloc resursele prin deschiderea fiierului (OPEN); - dezaloc resursele prin nchiderea fiierului (CLOSE).

31

Sisteme operaionale 3.1. Gestiunea proceselor i procesoarelor Utilizarea partajat a resurselor unui sistem de calcul este determinat de insuficiena la un moment dat a resurselor necesare execuiei simultane a proceselor create de utilizatori. Gestiunea procesoarelor are ca scop asigurarea procesoarelor la procesele create. Fiecrui program de aplicaie, sistemul de operare i asociaz o serie de procese. Procesul reprezint un program n execuie (program de serviciu, de aplicaie sau rutin a sistemului de operare). Procesorul reprezint componenta capabil s execute un program (CPU sau canal). Programul este o secven de instruciuni, iar procesul o serie de activiti (taskuri) executate prin program. Activitatea (task) este o unitate de lucru intern creat de sistemul de operare, atunci cnd o etap din lucrare este acceptat de sistemul de calcul. Lucrarea reprezint o colecie de activiti (taskuri) ce se execut de ctre sistemul de calcul. 3.1.1. Procese concurente i coordonarea proceselor Procesele concurente numite i procese paralele, presupun c la un moment dat, mai multe programe pot fi urmrite ntre punctul de ncepere i terminare a execuiei; n acest caz procesele interacioneaz n dou moduri: - indirect, prin concurarea la aceiai resurs a sistemului; - direct, prin utilizarea simultan a acelorai resurse. Tranziia strilor unui proces este redat n fig.3.1.
Inactiv nelansat Lansare Pregtit ntrerupt Activare Dezactivare Activ

Blocat n ateptare

Fig.3.1. Tranziia strilor unui proces Oportunitatea programrii concurente const n necesitatea reducerii timpului de rspuns la solicitrile la care este supus sistemul de calcul concomitent cu utilizarea eficient a resurselor precum i n necesitatea utilizrii partajate a informaiei i comunicaiei ntre programele n curs de execuie, ceea ce implic i o sincronizare specific la nivelul software-ului de baz. Coordonarea proceselor concurente implic urmtoarele aspecte: 1) determinarea proceselor potrivit crora sistemul de activiti trebuie s fie independent de vitezele relative de execuie ale activitilor componente, conducnd la un rezultat unic; dac acest rezultat depinde de ordinea i viteza de execuie a activitilor, sistemul este nedeterminat i n acest caz se vor introduce restricii de prioritate (grad de preceden); 2) interblocarea proceselor apare atunci cnd dou sau mai multe procese ateapt un timp nedefinit ntr-un fir de ateptare circular, ca alt proces s renune la preteniile de utilizare a unei resurse; interblocarea poate fi nlturat prin mecanisme cum sunt: - prealocarea resurselor partajate; - alocarea controlului n avans de execuie;

32

Capitolul 3 Gestiunea resurselor unui sistem de calcul funcie a sistemului de operare - organizarea secvenial a cererilor i ierarhizarea resurselor pe nivele astfel nct atunci cnd un proces a dobndit resursele de la un anumit nivel, poate solicita resurse numai de la un nivel superior; - excluderea mutual a proceselor prin care anumite activiti vor fi programate astfel nct s nu poat fi n execuie n acelai timp (de exemplu, READ i WRITE). 3.1.2. Sincronizarea proceselor Sincronizarea proceselor include mecanisme prin care anumite procese vor fi oprite la un moment dat, pn ce apar anumite evenimente ce se afl sub controlul altei activiti. Problema sincronizrii apare datorit partajrii resurselor n legtur cu alocarea proceselor pentru execuie i comunicaia ntre procese care genereaz dou aspecte: - apariia condiiei de competiie ntre procese care se ivete atunci cnd planificarea unor procese pentru execuie devine critic deoarece parametrii pentru planificarea execuiei provin din calcule diferite; - tendina de a obine resursa de ctre procese ar putea genera interblocarea acestora. Mecanismele de sincronizare pentru coordonarea i comunicarea ntre procese includ urmtoarele posibiliti: 1) bii de atenie Prin aceast modalitate, orice resurs partajat de "n" procese va dispune de un bit de atenie "lock-bit" folosindu-se convenia: lock-bit = 0 - resursa este disponibil; lock-bit = 1 - resursa este n folosin. nainte ca un proces s aib acces la un procesor, acesta va verifica starea lock-bit-ului: dac lock-bit = 0 atunci este permis acestui proces s aib acces la procesor, iar la terminarea execuiei va trece lock-bit-ul n starea iniial 0; dac pe parcursul execuiei un alt proces va solicita procesorul, acesta va gsi lock-bit-ul n starea 1, el fiind trecut n starea de ateptare pn cnd lock-bit-ul devine 0. 2) mecanisme de ateptare i semnalizare Inconvenientul sincronizrii proceselor prin lock-bit const n continuarea secvenei de testare a lock-bit-ului pentru comutarea din starea 1 n starea 0; n acest sens, o variant de utilizare mai eficient a procesorului n sensul reducerii timpului de ateptare i de ciclare o constituie plasarea procesului ntr-o list de procese blocate alturi de alte procese. Atunci cnd procesorul alocat unui proces ncheie execuia, acesta va introduce un semnal de legtur (pointer) prin care unul din procesele blocate din lista celor care ateapt, este sesizat c resursa pentru care a fost blocat a devenit liber; n acest moment, procesul care ctig competiia este trecut din lista de procese blocate, n lista proceselor gata de execuie, urmnd s fie din nou planificat pentru reluarea execuiei din punctul n care a fost ntrerupt. 3) calculul semafoarelor prin operaiile P i V P i V sunt primitive care opereaz pe semafoarele S constituite din variabile ce iau valori ntregi (nu numai 0 i 1). Mecanismul se desfoar astfel: P(S): decrementeaz valoarea lui S cu 1 i dac S <= 0 atunci ateapt; V(S): incrementeaz valoarea lui S cu 1 i dac S <= 0 atunci semnal. 4) comunicarea direct de tip SEND/RECEIVE Mecanismele de sincronizare anterioare realizeaz comunicaii indirecte. Sincronizarea se poate realiza i ntr-o manier direct, prin intermediul primitivelor SEND (Proces1, mesaj) i RECEIVE(Proces2, mesaj). 5) cutii potale Cutiile potale sunt constituite din zone tampon din memoria dinamic, tratat ca dispozitiv periferic de intrare/ieire. Fiecare activitate creeaz o cutie potal cu informaii ce pot fi extrase de celelalte activiti nainte de lansarea n execuie.

33

Sisteme operaionale 3.1.3. Gestiunea procesoarelor Gestiunea procesoarelor presupune asigurarea procesoarelor la procesele create; aceast activitate se desfoar la dou nivele: 1) planificarea lucrrilor, la care se decide care lucrri vor fi executate i care va fi prima lansat n execuie; 2) alocarea procesorului la procese. n acest scop exist module specializate ale programelor de comand-control ale sistemului de operare, ce realizeaz o serie de activiti: Modulul pentru planificarea lucrrilor ndeplinete urmtoarele activiti: - evidenierea strii tuturor lucrrilor sesiznd care dintre lucrri solicit servicii; - alegerea disciplinei prin care vor intra lucrrile n sistem: prioriti, resurse solicitate, ncrcarea echilibrat, etc.; - alocarea resurselor necesare lucrrii planificate: memorie intern, extern, dispozitive periferice, CPU; - dezalocarea resurselor la terminarea execuiei lucrrii. Modulul de planificare a lucrrilor creeaz unul sau mai multe procese pentru lucrarea considerat n momentul trecerii din starea de pregtire n starea de execuie, stabilind totodat i modul de comunicaie ntre procese; cu alte cuvinte, aloc resursele fizice disponibile la procese, n scopul utilizrii eficiente a sistemului de calcul, prin simularea unei maini virtuale pentru fiecare proces i un sistem de faciliti ce permit proceselor concurente s realizeze o excludere mutual din regiunile critice i s comunice cu alte procese. Modulul pentru planificarea procesoarelor decide care dintre procese va dispune de procesor, n ce moment i care este cuanta de timp alocat: - evideniaz starea tuturor proceselor (componenta traffic controller); - decide procesul care va dispune de procesor i pentru ct timp (processor scheduller); - aloc procesorul la procese, ceea ce implic actualizarea coninutului registrelor procesorului care s reflecte starea curent; - dezalocarea procesorului atunci cnd cuanta de timp acordat a expirat sau procesul trebuie s atepte datorit unei ntreruperi cum ar fi solicitarea unei operaii de intrare/ieire. n acest caz e necesar salvarea coninutului registrelor procesorului, n vederea pstrrii strii la care a fost ntrerupt, pentru rencrcarea la reluarea execuiei din punctul n care a fost ntrerupt. Se poate astfel aprecia c modul de planificare a procesoarelor aloc maini virtuale la procesele create, n conformitate cu strategia adoptat. Pentru planificarea lucrrilor la nivelul procesorului se ntlnesc dou tipuri de sisteme: 1) sisteme nepreemptive n care fiecare activitate se execut pn la execuia complet; n acest caz, procesorul va executa cererea cea mai prioritar din sistem pn la terminarea execuiei, chiar dac pe durata execuiei apar cereri mai prioritare n sistem; 2) sisteme preemptive sunt sistemele n care cererile se pot afla n diverse etape ale execuiei; la un moment dat sistemul execut o singur activitate, dar dac apare o cerere cu prioritate mai mare, execuia curent este ntrerupt i trecut n ateptare. 3.2. Gestiunea memoriei Sistemele de calcul includ diverse dispozitive de memorare organizate n final pe dou nivele: memoria intern i memoria extern. Gestiunea memoriei are rolul de a decide cum trebuie organizat informaia pe cele dou nivele i cnd trebuie transferat informaia ntre acestea; tehnicile de gestiune a lucrrilor (multiprogramare, multitasking, time-sharing,etc) implic existena unor metode eficiente pentru gestiunea memoriei: tehnici de alocare dinamic i memoria virtual. Obiectivul activitii de gestiune a memoriei este de a furniza o vitez de execuie sporit

34

Capitolul 3 Gestiunea resurselor unui sistem de calcul funcie a sistemului de operare a programelor, prin meninerea n memoria intern a acelor pri din programe care sunt referite cu o frecven mare de ctre CPU (de regul, programe independente ntre ele); deoarece n memoria intern exist simultan mai multe programe independente ntre ele, pentru a utiliza eficient CPU apar urmtoarele aspecte: - introducerea n memoria intern a programului ce urmeaz a fi executat necesit un spaiu de memorie determinat de dimensiunea sa, de spaiul liber din memoria intern n acel moment i de modul de ocupare al memoriei interne de ctre alte programe; - pentru zonele de memorie alocate diferitelor programe, trebuie s se asigure protecia acestora fa de anumite interferene i adresri cu alte programe. Alocarea spaiului din memoria intern se realizeaz n funcie de disponibilitatea memoriei n acel moment, fapt care nu permite cunoaterea adreselor reale ocupate de program la momentul execuiei (numite i adrese fizice) n etapele scrierii i translatrii programelor a cror adrese de memorie, sunt simbolice (numite adrese logice). Translatarea adreselor logice n adrese fizice se realizeaz printr-o funcie de translatare care precede execuia instruciunii respective. Activitatea de gestiune a memoriei are la baz trei algoritmi (fig.3.2.): 1) algoritmul de transfer care determin cnd un bloc trebuie transferat din memoria extern n memoria intern - naintea execuiei sau n timpul execuiei; 2) algoritmul de plasare care determin ce zon nealocat din memoria intern este folosit pentru plasarea blocului ncrcat din memoria extern; 3) algoritmul de reamplasare care determin care blocuri i la ce moment trebuie rencrcate n memoria intern.
Procesor Adrese Memorie intern Canale de transfer Comenzi de deplasare Memorie extern

Fig.3.2. Activitatea de gestiune a memoriei 3.2.1. Alocarea dinamic a memoriei Alocarea memoriei interne se poate realiza: - static cnd programul este ncrcat iniial n orice zon liber din memoria intern. n momentul solicitrii unei ntreruperi, acesta este transferat n memoria extern urmnd a fi reluat dup tratarea ntreruperii. Rencrcarea sa n memoria intern se va face obligatoriu n acelai spaiu de adrese fizice n care a fost ncrcat iniial, ceea ce reprezint un mare neajuns n cazul multiprogramrii i multitasking-ului; - dinamic cnd adresele relative ale instruciunilor programului dup editarea de legturi, nu sunt translatate n adrese fizice n faza de ncrcare a programului n memoria intern, ci doar n momentul execuiei instruciunilor. Adresele relative se pstreaz pentru o deplasare a programului dintr-o zon n alta a memoriei interne i o rencrcare a programului din memoria extern, ntr-o alt zon din memoria intern. 3.2.2. Memoria virtual Conceptul unui singur nivel de memorie- denumit memorie virtual- ofer utilizatorului iluzia c memoria intern are o capacitate foarte mare, partea de hardware realiznd automat transferul informaiei din memoria intern n memoria extern i invers. Unitatea de transfer ntre memoria intern i cea extern este pagina, aceasta reprezentnd o entitate

35

Sisteme operaionale a memoriei de dimensiune fix de 512, 1024, 2048 sau 4096 kbytes; procesul de deplasare al paginilor ntre memoria intern i memoria extern este referit ca transfer de pagini. O adres folosit de programator se numete adres virtual, iar adresa real unde este memorat se numete adres fizic (dimensiunea spaiului de adrese virtuale este mult mai mare dect dimensiunea spaiului de adrese reale). Funcia de translatare a unei adrese virtuale ai n adres real bj se poate defini astfel: ft = 0 dac informaia de la adresa virtual solicitat (ai) nu este n acel moment rezident n memoria intern; ft = bj dac adresa virtual ai gsete rezident adresa real bj n memoria intern. Dac ft(ai) = 0 se emite un semnal de nereziden i se genereaz o ntrerupere care are ca efect plasarea din memoria extern n memoria intern, a informaiei referite de procesor prin adresa virtual ai. La terminarea ntreruperii (care lanseaz n execuie algoritmii de transfer, plasare i reamplasare) ft(ai) va fi nenul, avnd loc o nou iniiere a activitii ntrerupte. Dispozitivul de translatare este redat n fig.3.3. ai bj

Procesor

Tabel funcie de translatare

Memorie intern Canale de transfer Memorie extern

Comenzi de deplasare

Fig.3.3. Mecanismul de translatare a adreselor virtuale n adrese fizice Din punct de vedere al modului de organizare, exist implementate urmtoarele variante pentru memoria virtual: 1) organizarea la nivel de adres (fig.3.4.) RV
Procesor

ai

ai

Tabel funcie de translatare

RM bj bj
Memorie intern

bj
Acces Depire

Rezident Memorie extern

Fig. 3.4. Organizarea la nivel de adres a memoriei virtuale Dac procesorul refer adresa virtual ai, aceasta se introduce n registrul de adrese virtuale RV, registrul REZIDENT este resetat (pus pe 0), iar registrul de ACCES setat (pus pe 1), iniializndu-se procesul de translatare: - dac se gsete cu ai o intrare n tabela ft, atunci coninutul gsit se introduce n registrul de adrese fizice al memoriei interne RM, avnd loc extragerea din memoria intern a informaiei

36

Capitolul 3 Gestiunea resurselor unui sistem de calcul funcie a sistemului de operare solicitat de procesor de la adresa real bj; - dac nu se gsete o intrare n ft, atunci RM = 0, registrul REZIDENT este setat i are loc iniierea celor 3 algoritmi care vor aduce din memoria extern n memoria intern informaia referit de procesor, actualiznd totodat i tabela de descriere a funciei de translatare ft. Acest mod de organizare are dezavantajul c spaiul de memorie ocupat de tabela ft este prea mare, aceasta coninnd adresele de baz ale blocurilor d; ft determin adresa bj astfel: bj= f(d)+c unde c este adresa relativ de la adresa de baz (d) a blocului. 2) organizarea la nivel de pagin Organizarea la nivel de pagin conduce la reducerea necesarului de informaie coninut n tabela ft deoarece spaiul de adrese este divizat n blocuri de dimensiune constant numite pagini. Dimensiunea paginii virtuale coincide cu dimensiunea paginii reale ceea ce implic netranslatarea adresei cuvntului de pagin. Dispozitivul de translatare construiete o tabel a paginilor organizat n memoria intern (MTP) cu informaii necesare procesului de translatare din adrese virtuale n adrese fizice (fig. 3.5.).
RV Procesor RM MTP C Q Q Memorie extern

ai

C P

bj

Memorie intern

Acces Depire

Rezident

Fig.3.5. Organizarea la nivel de pagin a memoriei virtuale Pentru orice adres virtual ai se asociaz perechea (P,C) unde P reprezint numrul cuvintelor din pagin, iar C numrul unui cuvnt referit din P. Prin P se intr n tabela de pagini, la unul din cuvintele de la 0 la 2p, de unde se extrage componenta Q de o anumit dimensiune; dac: - RM (Q) are coninut nenul, atunci adresa solicitat de procesor are drept corespondent o pagin de memorie rezident n memoria intern; - RM (Q) = 0 atunci adresa virtual solicitat nu are adres de pagin real n memoria intern, ceea ce conduce la declanarea celor 3 algoritmi ca urmare a setrii registrului de REZIDENT. Algoritmii vor determina transferul paginii corespunztoare din memoria extern n memoria intern, actualiznd totodat i MTP, dup care procesorul refer din nou adresa. Organizarea la nivel de pagin ofer avantajul c un program se poate executa fr a avea toate paginile ncrcate n memoria intern, ele putnd fi ncrcate pe msur ce devin necesare n prelucrare, deci o utilizare mai eficient a memoriei i totodat, o protecie mai sigur a informaiei. 3) organizarea la nivel de segment Organizarea la nivel de segment mparte spaiul de memorie n blocuri de dimensiune variabil, numite segmente (pot fi module de program sau anumite structuri de date)- fig. 3.6.

37

Sisteme operaionale

RV Procesor

RM MTS Comparator C R R D D R buffer Memorie extern

ai

C S

bj

Memorie intern

Acces Depire

Rezident

Fig.3.6. Organizarea la nivel de segment a memoriei virtuale Adresa virtual referit de procesor const din numele segmentului S i numele cuvntului din segment C; adresa de memorie unde ncepe segmentul S reprezint adresa de baz R, iar prin D se specific dimensiunea segmentului. Adresa real determinat prin R+C se obine dac registrul de buffer conine adresa extras din memoria tabelei de segmente, efectundu-se i comparaia dintre C i D; dac R = 0, atunci se vor declana cei trei algoritmi. 4) organizarea la nivel de segment-pagin Organizarea la nivel de segment-pagin divide adresele virtuale i adresele fizice n segmente, iar segmentele n pagini, n vederea fructificrii avantajelor celor dou metode de organizare: - paginarea, care ofer implementarea simpl i cel mai sigur mijloc de protecie a informaiei; - segmentarea, care satisface ntr-o mai mare msur cerinele programatorului prin divizarea n segmente, deci innd seama de logica programului (fig.3.7.).
RV CC CP S MTS R D CP R D R buffer Depire segment Rezident Acces pagin Acces segment RA Q Memorie extern MTP RM CC Q

Procesor

ai

bj

Memorie intern

Fig. 3.7. Organizarea la nivel de segment-pagin a memoriei virtuale 38

Capitolul 3 Gestiunea resurselor unui sistem de calcul funcie a sistemului de operare n cadrul acestui mod de organizare, exist o singur tabel de segmente i un numr de tabele de pagini egal cu numrul de segmente. Atunci cnd procesorul refer o adres virtual, acesteia i se asociaz: - adresa virtual a segmentului S; - adresa virtual a paginii n segment CP; - adresa virtual a cuvntului din cadrul paginii CC; iar registrul de acces segment este setat. Prin S din RV se caut n MTS; dac se gsete o adres, aceasta este reprezentat prin: - R - adresa tabelei de pagini; - D - dimensiunea segmentului exprimat n pagini i introdus apoi n registrul de buffer. Prin intermediul lui R din registrul de buffer se selecteaz o tabel de pagini din MTP; componenta CP din registrul de adrese i R din registrul de buffer, permit extragerea din tabela de pagini a cuvntului indicat prin CP din RV; cuvntul selectat are Q bii i reprezint una din paginile reale din memoria intern, fiind introdus n RM unde vine i componenta CC care indic adresa real a cuvntului n pagin. Dac nu se gsete prin S din RV nici o intrare n MTS, atunci segmentul virtual adresat nu are corespondent n memoria intern, deci registrul de REZIDENT este setat i se declaneaz algoritmii de transfer din memoria extern n memoria intern a segmentului solicitat actualizndu-se i memoria tabelei de segmente. Dac CP din RV este mai mare dect D din registrul de buffer, registrul de depire semnalizeaz o eroare de adresare poziionndu-se pe 1. Accesul n MTP se realizeaz prin poziionarea registrului de acces la pagin pe 1, iar componentele Q i CC sunt introduse n RM. n cazul proceselor concurente, gestiunea memoriei ntre mai multe procese poate fi analizat prin - limitarea frecvenei transferului de date i programe; - conservarea execuiei programelor din memoria intern, n timp ce alte programe sunt n ateptare n memoria extern; - transferul datelor i programelor din memoria intern atunci cnd procesele le solicit. 3.3. Gestiunea dispozitivelor periferice O mare pondere din arhitectura sistemelor de calcul este deinut de echipamentele de intrare/ieire (denumite dispozitive periferice), fapt care implic o atenie deosebit acordat utilizrii lor eficace. Dei evoluia continu n domeniul facilitilor (mai ales a vitezelor de execuie) a condus la multe mbuntiri, continu s existe diferene mari ntre viteza dispozitivelor periferice i vitezele la care opereaz CPU i memoria intern, ceea ce motiveaz introducerea canalelor de intrare/ieire i a procesoarelor specializate n operarea cu unitile de control ale dispozitivelor periferice. 3.3.1. Uniti de control i canale de transfer Unitile de control ale dispozitivelor periferice sunt prevzute cu circuite electronice destinate controlului automat al citirii/scrierii efective pe mediile fizice, ndeplinind urmtoarele funcii: - recunoaterea adreselor dispozitivelor periferice pe care le controleaz; - conversia comenzilor primite de la canal n forma acceptat de mecanismele i circuitele perifericului comandat; - transmiterea ctre canal a secvenelor de semnale standard ce indic desfurarea operaiilor de intrare/ieire solicitate; - efectuarea controlului de paritate asupra datelor i informaiilor de control; - urmrirea ndeplinirii condiiilor de execuie a comenzii;

39

Sisteme operaionale - generarea informaiei de stare a dispozitivelor periferice i a unitilor de control care se prezint canalului la iniierea i respectiv, prelucrarea modului n care s-a terminat transferul de date; - conversia formatului datelor din codul acceptat de dispozitivul periferic, n codul acceptat de CPU la citire sau invers la scriere. Exist uniti de control ce permit conectarea la canal a unui singur dispozitiv periferic sau mai multor dispozitive periferice, numrul acestora fiind limitat de debitul canalului i de numrul de periferice admis de acesta. Canalele de transfer dirijeaz fluxul de informaie ntre memoria intern i dispozitivele periferice degrevnd CPU de sarcina tratrii proceselor de intrare/ieire ndeplinind ca principale funcii: - transformarea informaiei de comand primit de la CPU n semnale acceptate de ctre unitile de control ale dispozitivelor periferice; - prelucrarea controlului transferului de date i eliberarea CPU pentru alte lucrri; - asamblarea sau dezasamblarea datelor transferate ntre dispozitivele periferice i memoria intern; - sincronizarea transferului de date cu activitatea CPU; - controlul adresei care reprezint sursa sau destinaia transferului de date n memoria intern, inclusiv verificarea proteciei memoriei; - generarea informaiei de stare a canalului, pe care o ine la dispoziia CPU. Transferul de informaii ntre dispozitivele periferice i memoria intern, se poate realiza: - continuu - cnd un dispozitiv periferic se conecteaz logic la canal pn la terminarea transferului de date, nepermind altui dispozitiv periferic s comunice cu canalul n acest interval de timp; - multiplex - cnd mai multe dispozitive periferice pot transmite simultan prin interfa. 3.3.2. Activitatea de gestiune a dispozitivelor periferice O operaie de intrare/ieire este iniiat de CPU prin executarea unei instruciuni ce specific canalul, adresa dispozitivului periferic i adresa locaiei din memoria intern unde ncepe programul de transfer numit driver, care specific operaiile de intrare/ieire ce se vor executa; n timpul execuiei driver-ului, CPU poate executa alte operaii n mod concurent; totodat CPU controleaz modul n care se desfoar execuia procesului de intrare/ieire prin instruciuni specifice. Procesul de intrare/ieire cunoate starea CPU prin cercetarea coninutului registrelor de stare. Comunicaia dintre canalul de intrare/ieire i CPU se realizeaz, de obicei, prin intermediul ntreruperilor (o ntrerupere constituie o facilitate hardware care poate suspenda execuia operaiei curente de ctre CPU, memorarea strii curente i transferul la o locaie specific unde se gsete un program pentru tratarea ntreruperii respective). CPU i canalele de intrare/ieire sunt proiectate pentru a opera n mod concurent n urmtoarea ierarhie: CPU controleaz activitatea canalelor de intrare/ieire, canalele de intrare/ieire controleaz activitatea unitilor de control ale dispozitivelor periferice iar acestea controleaz activitatea dispozitivelor periferice ataate. Un sistem de intrare/ieire poate fi organizat n urmtoarele moduri: - un canal de intrare/ieire poate fi utilizat n mod partajat de dou CPU folosind un controller pentru canalul de intrare/ieire- situaie ntlnit la sistemele de calcul exploatate n multiprelucrare; - o unitate de control poate fi partajat ntre mai multe canale, situaie n care pentru acelai dispozitiv periferic exist mai multe ci de acces, iar doua CPU partajeaz aceeai unitate de control; - dispozitivele periferice de intrare/ieire pot fi partajate ntre mai multe uniti de control ataate la diferite canale de intrare/ieire ale aceleiai CPU sau la canalele mai multor CPU. n acest caz, este solicitat aceeai unitate de control, existnd mai multe ci prin care dispozitivul periferic poate transmite sau recepiona date (fig.3.8.).

40

Capitolul 3 Gestiunea resurselor unui sistem de calcul funcie a sistemului de operare n toate cazurile, dispozitivele periferice pot fi conectate printr-un dispozitiv de comutare. Canal de intrare/ieire

Unitate de control

...

Unitate de control

Unitate de comutare

Dispozitiv periferic

...

Dispozitiv periferic

Fig. 3.8. Variant de organizare a unui sistem de intrare/ieire Sistemele de operare dispun de drivere pentru controlul sistemului de intrare/ieire i pentru gestiunea datelor, care degreveaz utilizatorii de scrierea programelor pentru procesele de intrare/ieire din programele lor de aplicaie. Gestiunea dispozitivelor periferice trebuie s ndeplineasc urmtoarele funcii: - evidena strii tuturor dispozitivelor periferice sub forma blocurilor unitilor de control asociate pentru fiecare dispozitiv periferic; - introducerea unei discipline pentru a determina crui proces i este alocat dispozitivul periferic, pentru ct timp i la ce moment, n funcie de natura proceselor, de viteza dispozitivului periferic i modul lui de funcionare; - alocarea dispozitivului periferic, a unitii de control i a canalului pentru proces; - dezalocarea la nivelul procesului. Utilizarea eficient a dispozitivelor periferice se realizeaz cu ajutorul unor metode hardware i a unor module specializate ale sistemului de operare. Gestiunea dispozitivelor periferice prin metode hardware se poate realiza prin: 1) operarea dispozitivului periferic independent, fr asistena canalului sau unitii de control; 2) disciplina buffer care implic existena unui buffer pentru date n dispozitivul periferic sau al unitii de control, ce ar permite unui dispozitiv periferic lent s lucreze independent de canal; 3) ci de acces multiple, concretizate n mai multe ci de acces pentru fiecare dispozitiv periferic. n acest caz, driverele pentru gestiunea dispozitivelor periferice vor ine evidena cilor de acces i vor determina ruta liber pentru servirea unei cereri de intrare/ieire la dispozitivul periferic solicitat; 4) multiplexarea canalului prin execuia unor programe de canal multiple, ceea ce nseamn o implementare hardware a multiprogramrii pentru programele de canal. Gestiunea dispozitivelor periferice de ctre sistemul de operare este realizat de urmtoarele module specializate:

41

Sisteme operaionale 1) controlorul traficului de intrare/ieire (I/O Traffic controller) care are rolul de a evidenia informaiile de stare pentru fiecare dispozitiv periferic, furniznd informaii mecanismului prin care un dispozitiv periferic poate fi alocat sau nu. n acest scop, construiete un bloc de control pentru dispozitivul periferic, unul pentru unitatea de control i unul pentru canal (fig.3.9.);

Bloc de control dispozitive periferice Identificare unitate dispozitiv periferic Starea dispozitivului periferic Uniti de control la care este cuplat dispozitivul periferic Procese care ateapt accesul la dispozitivul periferic Bloc de control pentru unitile de control Identificarea uniti de control Stare uniti de control Dispozitive periferice conectate la unitatea de control Console conectate la unitatea de control Console conectate la unitatea de control Procese care ateapt accesul la unitatea de control

Bloc de control canale Identificarea canal Stare canal Uniti de control cuplate la canal Procese care ateapt accesul la canal

Fig. 3.9. Informaia de stare a dispozitivelor periferice 2) planificatorul operaiilor de intrare/ieire (I/O Scheduller) care conine algoritmul privind strategia utilizat pentru alocarea canalului, a unitilor de control i a dispozitivelor periferice; are funcii similare cu planificatorul proceselor, cu deosebirea c un program de canal odat lansat n execuie nu va putea fi ntrerupt nainte de execuia lui complet; 3) manipulatorul dispozitivelor periferice de intrare/ieire (I/O Devices Handler) are rolul de a crea programul de canal pentru execuia funciei dorite, executnd fizic operaia respectiv; 4) dispozitive periferice utilizate partajat (Shared Devices) sunt partajate ntre mai multe procese concurente, ceea ce implic: - interferena cererilor din partea proceselor; - protecia mpotriva acceselor neautorizate. 5) dispozitive periferice virtuale sunt dispozitive periferice ce pot fi convertite pentru a putea fi utilizate partajat prin sistemul Spooling.

42

Capitolul 3 Gestiunea resurselor unui sistem de calcul funcie a sistemului de operare

EXERCIII 1. Ce reprezint procesele concurente i care sunt strile de tranziie prin care poate trece un proces ? 2. Cum se poate preveni interblocarea proceselor ? 3. Care sunt mecanismele de sincronizare ntre procese i prin ce se caracterizeaz fiecare dintre ele ? 4. Specificai activitile desfurate de modulele sistemului de operare care asigur alocarea procesoarelor. 5. Ce se nelege prin multitasking preemptiv ? 6. Ce se urmrete prin mecanismul memoriei virtuale i n ce const diferitele moduri de organizare ale acesteia ? Menionai avantajele oferite de ctre fiecare mod de organizare. 7. Se consider un sistem de calcul avnd implementat memorie virtual organizat la nivel de pagin. Capacitate unei pagini este 512 K, capacitatea memoriei reale este de 4 G, iar a memoriei virtuale este de 4 T. Se cere s se determine: a) dimensiunea registrului de adrese virtuale; b) dimensiunea registrului de adrese reale; c) capacitatea memoriei tabelei de pagini. 8. Se consider un sistem de calcul avnd implementat memorie virtual organizat la nivel de segment lungimea segmentului variind ntre 256 k i 1024 K. Capacitatea memoriei reale este de 4 G iar a memoriei virtuale este de 4 T. Se cere s se determine: a) dimensiunea registrului de adrese virtuale; b) dimensiunea registrului de adrese reale; c) dimensiunea registrului buffer; d) capacitatea memoriei tabelei de segmente. 9. Se consider un sistem de calcul avnd implementat memorie virtual organizat la nivel de segment-pagin. Capacitate unei pagini este 512 K, iar lungimea segmentului variaz ntre 256 K i 1024 K.Capacitatea memoriei reale este de 4 G, iar a memoriei virtuale este de 4T. Se cere s se determine: a) dimensiunea registrului de adrese virtuale; b) dimensiunea registrului de adrese reale; c) dimensiunea registrului buffer; d) dimensiunea registrului de adrese; e) capacitatea memoriei tabelei de segmente; f) capacitatea memoriei tabelei de pagini. 10. Specificai activitile desfurate de modulele sistemului de operare care asigur gestiunea dispozitivelor periferice de intrare/ieire.

43

COMPONENTA ROM-BIOS I NTRERUPERI. MS-DOS.


4.1. Prelucrarea ntreruperilor 4.1.1. Conceptul de ntrerupere n cadrul procesului de execuie al unui program CPU trebuie s asigure urmtoarele funcii: - evidenierea strii n care se afl i asigurarea unui mecanism de schimbarea strii; - asigurarea nlnuirii automate a instruciunilor; - asigurarea comenzilor necesare execuiei unei instruciuni. n ceea ce privete schimbarea strii CPU, aceasta se poate realiza prin: - memorarea dinamic a informaiei de stare, n cuvntul de stare al procesorului (MSW Machine Status Word); - sistemul de ntreruperi. CPU se poate afla n una din urmtoarele stri: - operaional- atunci cnd poate executa operaii de prelucrare a datelor; - neoperaional- care corespunde unei situaii de defect. Starea operaional se caracterizeaz prin una din urmtoarele stri generate de procese: - activ sau n ateptare; - ntreruptibil sau nentreruptibil, funcie de luarea n considerare a ntreruperii sau nu (se spune c ntreruperea este mascat); - sistem sau utilizator, dup cum este sub controlul sistemului de operare sau al programelor de aplicaie lansate de utilizatori. Informaia de stare este dinamic i reflect n orice moment funcionarea CPU, fiind memorat ntr-un registru de stare sub denumirea de cuvnt de stare program MSW (Machine Status Word), coninnd n general, urmtoarele informaii: - dreptul de acces al programului la zona respectiv de memorie; - o informaie sintetic asupra modului cum s-a ncheiat execuia instruciunii precedente, numit cod de condiie (registrul Eflags la microprocesoarele Intel); - mtile de ntreruperi; - starea CPU; - nivelul de prioritate al programului; - adresa urmtoarei instruciuni de executat (registrul EIP - Extended Instruction Pointer la microprocesoarele Intel). Posibilitatea comutrii strii CPU se realizeaz prin procese de ntrerupere care (de exemplu, n cazul multiprogramrii) este o condiie indispensabil n sensul asigurrii trecerii controlului de la un program la altul. Prelucrarea ntreruperilor este realizat de o component hardware specializat inclus n CPU i o component software (ce dispune de rutine incluse n sistemul de operare pentru a trata fiecare ntrerupere n parte). Etapele tratrii unei ntreruperi (fig.4.1.):

44

Sisteme operaionale

Fig. 4.1. Etapele tratrii unei ntreruperi - n momentul apariiei unei cereri de ntreruperi, aceasta se va lua n considerare dac este cea mai prioritar din irul de ntreruperi; - analiza tipului de ntrerupere i salvarea cuvntului de stare al programului la o anumit adres din memoria intern; - ncrcarea unui cuvnt de stare al programului specific ntreruperii i lansarea n execuie a rutinei ce prelucreaz ntreruperea; - rencrcarea vechiului cuvnt de stare al programului de la adresa unde a fost salvat n memoria intern, dup terminarea prelucrrii ntreruperii; - redarea controlului programului ntrerupt. ntreruperile pot fi generate: de program, de operaiile de intrare/ieire, de defect al CPU sau externe sistemului de calcul provenind de la alte echipamente cu care este cuplat. 4.1.2. ntreruperi la PC - uri La microprocesoarele implementate pe PC -uri care permit multiprogramarea (I80286, I80386, I80486, Pentium), controlul accesului ntre programele de aplicaie i sistemul de operare este asigurat prin controlul spaiului de adres i un mecanism de protecie privilegiat astfel: - controlul spaiului de adres separ programele de aplicaii unele fa de altele; - mecanismul privilegiat de protecie izoleaz software-ul de baz de software-ul aplicaii. Acesta garanteaz posibilitatea programelor de a avea acces la segmentul de cod, de date i

45

Capitolul 4 Componenta ROM-BIOS i ntreruperi MS-DOS resursele de intrare/ieire de baz, numai pentru nivelul privilegiat al segmentului respectiv. Protecia se bazeaz pe noiunea de ierarhie de tutel, existnd patru niveluri privilegiate aranjate n inel, ncepnd cu cea mai mare tutel 0 (fig.4.2.)

Nivel 3 Nivel 2 Nivel 1 Nivel 0

Fig.4.2. Protecia prin ierarhia de tutel - nivelul 0 este rezervat n general, sistemului de operare; - nivelul 3 este nivelul cea mai mic tutel. Nivelul privilegiat este un atribut de protecie alocat la toate segmentele prin software-ul sistemului, aceasta determinnd care proceduri pot accesa segmentul, n timp ce drepturile de acces sunt implementate hardware. Codul sistemului de operare i segmentele de date plasate la cel mai privilegiat nivel (nivel 0) nu pot fi accesate prin programe de alt nivel privilegiat, fiecare program putnd accesa date la un nivel identic sau mai mare. ntreruperile i excepiile sunt cazuri speciale de transfer al controlului ntre programe. O ntrerupere este generat de un eveniment independent de programul n curs de execuie, n timp ce excepiile sunt rezultate direct din programul n curs de execuie, aprnd atunci cnd o instruciune nu poate fi executat complet n mod normal. Pentru localizarea ntreruperii, CPU asociaz fiecrei surse de ntrerupere un numr, numit vector de ntrerupere cu rol de adres n IDT. Tabela de descriere a ntreruperilor (IDT) definete dirijarea acestora pentru fiecare tip de ntrerupere; aceast tabel poate fi localizat oriunde n spaiul adreselor fizice, ea fiind accesat n memoria real prin adrese ce sunt pstrate n registrul tabelei de descriere a ntreruperilor (IDTR). Fiecare intrare n tabela de descriere a ntreruperilor conine adresa planificatorului de ntreruperi. Erorile de execuie care genereaz excepiile refer o intrare n tabela de descriere a ntreruperilor ce se poate identifica prin bitul 1 n codul de eroare. Acest bit este setat pe 1 dac ntreruperea a fost

46

Sisteme operaionale cauzat de un eveniment extern programului (flagul TF=1). Excepiile au totodat i rolul de a detecta faulturile sau erorile de programare produse de utilizarea operanzilor sau a nivelurilor privilegiate; ele nu pot fi mascate, avnd fixai vectorii n primele 32 de ntreruperi. De exemplu, ncercarea de a viola protecia cauzeaz o excepie care, ca orice fault este dirijat de programul care a generat-o dac aceasta este o ntrerupere, respectiv de un alt program, dac este o intrare n tabela de descriere a ntreruperilor. 4.2. Clase de ntreruperi la PC - uri Sistemul de ntreruperi la PC este realizat cu ajutorul unui controlor de ntreruperi (standard 8259 A), existnd mai multe niveluri de ntreruperi situate fie pe magistrala sistemului, fie pe placa de baz a CPU. PC din gama IBM sau compatibile manevreaz urmtoarele clase de ntreruperi: 1) ntreruperi ale microprocesorului grupate pe tipuri de ntreruperi, fiecrui tip fiindu-i atribuit un cod dup care se identific; 2) ntreruperi iniiate hardware sunt cauzate de evenimente externe activate pe dou linii : INTR (INTerrupt Request) i NMI (Non Maskable Interrupt -pini de ntrerupere ai microprocesorului): - dac linia INTR este activ, CPU execut anumite activiti n funcie de indicatorul de validare al ntreruperii (IF): * dac IF = 0, atunci ntreruperile semnalate vor fi mascate (inactive), iar CPU ignor ntreruperea i execut instruciunea urmtoare a programului activ; * dac IF = 1, atunci CPU recunoate cererea de ntrerupere, oprete execuia normal a programului activ i pred controlul rutinei de tratare a ntreruperii; - dac linia NMI este activ, ntreruperea anun producerea unor evenimente critice, iar CPU le va da imediat controlul; evenimentele ce utilizeaz intrarea NMI sunt nemascabile, n timp ce evenimentele care utilizeaz intrarea INTR sunt calificate ca ntreruperi posibil de inhibat (mascabile). Mascarea ntreruperilor se poate realiza prin setarea bitului IF din cuvntul de stare al procesorului (de remarcat c IF nu inhib excepiile, ntreruperile cauzate de instruciunile INT sau de erorile de extensie ale procesorului). ntreruperile nemascabile au o prioritate mai mare dect ntreruperile mascabile. 3) ntreruperi iniiate software sunt produse explicit de instruciuni de ntrerupere sau sunt rezultatul unor condiii de excepie ce previn programul asupra continurii execuiei; sunt ntreruperi nemascabile. Instruciunile de ntrerupere sunt de forma: INT n unde prin n se va specifica numrul vectorului de ntrerupere. O instruciune INT (INTerrupt) genereaz o ntrerupere imediat dup execuia sa. Tipul de ntrerupere este codificat n instruciune anunnd CPU care rutin de tratare a ntreruperii s o execute. Deoarece poate fi specificat orice tip de ntrerupere software, se pot utiliza i pentru a testa rutinele de tratare a ntreruperilor generate de dispozitivele externe. Dac este setat bitul TF, CPU genereaz o ntrerupere dup execuia fiecrei instruciuni; aceasta se numete execuie pas cu pas (step by step) constituindu-se ntr-un instrument deosebit de

47

Capitolul 4 Componenta ROM-BIOS i ntreruperi MS-DOS util pentru testarea i depanarea programelor ntreruperile software sunt fixate la orice PC din gama IBM sau compatibil, ele fcnd parte din programele BIOS-ului. 4) ntreruperile DOS sunt disponibile numai sistemului de operare MS-DOS; rutinele de tratare a acestor ntreruperi gestioneaz operaii de baz, lucrul cu fiierele, gestionarea memoriei, .a. 5) ntreruperile Basic sunt folosite numai dac n memoria ROM, interpretorul Basic este activ. 6) ntreruperile de adres se gsesc sub forma vectorilor de ntreruperi, n tabela vectorilor de ntrerupere i conin adresele diferitelor tabele din memorie, nefiind asociate cu rutinele de tratare a ntreruperilor; trei tabele sunt mai semnificative: - tabela de iniializare video; - tabela de baz a discului; - tabela de caractere grafice. 7) ntreruperile folosite de programe utilizator care de regul, au un interval rezervat. 4.3. Atribuirea ntreruperilor i prioritii. Serializarea ntreruperilor Iniial, microprocesoarele familiei Intel X86 aveau opt ntreruperi incluse pe controlerul standard Intel 8259 A numerotate de la 0 la 7, cu prioriti n ordine descresctoare numerelor atribuite (NMI, IRQ0, IRQ1,..., IRQ7); existau doar dou linii de semnal dintre care una era folosit de ntreruperea nemascabil NMI (eroare de paritate a memoriei sau provenit de la coprocesorul matematic), iar cealalt era folosit de ntreruperile IRQ n funcie de prioritatea asociat. Ulterior, la modelele AT numrul liniilor de semnal s-a dublat prin introducerea unui nou controler Intel 8259 A legat n cascad cu primul controler (fig. 4.3.), la ntreruperea IRQ 2 care a fost redistribuit liniei IRQ 9, modificndu-se i prioritile aa cum se observ din tabelul 4.1. Magistralele PCI nu folosesc controlerul de ntreruperi AT, avnd integrat propriul controler care include patru linii de ntrerupere (patru linii a cte opt bii), neimpunnd limite n modul de folosire al semnalelor de ntrerupere datorit n principal software-ului. Majoritatea PC - urilor actuale bazate pe microprocesoare Pentium, pentru a pstra compatibilitatea cu microprocesoarele Intel precedente, includ plci ISA/PCI; n acest caz, legtura cu microprocesorul se realizeaz pe magistrala PCI printr-un cip de legtur PCI-magistrala local a microprocesorului, n timp ce legtura cu magistrala ISA se realizeaz printr-un cip de legtur ISA/PCI care include un standard de serializare a ntreruperilor IRQ pentru magistrala PCI. Standardul de serializare IRQ se bazeaz pe un semnal special IRQ SER ce codific ntreruperile IRQ; printr-un ciclu IRQ SER se trimit informaii despre starea tuturor ntreruperilor din sistem (durata unui ciclu este de 4 - 8 cicluri de ceas), acesta fiind divizat n cadre ce includ cte trei cicluri de ceas. Un cadru codific starea unei ntreruperi (tabelul 4.2.)

48

Sisteme operaionale
Numr ntrerupere IRQ 0 IRQ 1 IRQ 2 IRQ 3 Funcia realizat Ieire - ceas 0 Tastatur - buffer plin Cascad din IRQ 2 Port serial 2, 4 Comunicaie SLDC, BSC Adaptor reea, cluster Port serial 1, 3 Comunicaie SLDC, BSC Adaptor comunicaie vocal Port paralel 2 Audio Controler floppy-disk Port paralel 1 Adaptor cluster Ceas de timp real Redirectare soft la INT OA Video Reea Rezervat (12 - mouse) Coprocesor matematic Controler de hard-disk IDE primar Controler de hard-disk IDE secundar 7 Prioritate general

IRQ 4

IRQ 5 IRQ 6 IRQ 7 IRQ 8 IRQ 9

9 10 11 11 1

IRQ 10-12 IRQ 13 IRQ 14 IRQ 15

2-4 5 5 6

Tabelul 4.1. Atribuirea ntreruperilor i prioritile asociate la sistemele AT (magistrale ISA pe 16 bii)
8259 - 1
IRQ 0 circuite ceas IRQ 1 tastatur IRQ 2 IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7

CPU

INT

8259 - 2
IRQ 8 RTC/CMO IRQ 9 IRQ 10 IRQ 11 IRQ 12 IRQ 13 IRQ 14 IRQ 15

INT de la sloturi de 8 bii

FPU

de la sloturi de 16 bii de la sloturi de 8 bii pentru IRQ 2

Fig. 4.3. Controler de ntreruperi pe 16 bii

49

Capitolul 4 Componenta ROM-BIOS i ntreruperi MS-DOS 4.4. Componenta ROM-BIOS i MS-DOS 4.4.1. Elemente componente BIOS Sistemul driverelor de intrare/ieire de baz - BIOS (Basic Input Output System) rezident n memoria ROM, conine urmtoarele elemente: - programe de test pentru resursele sistemului din configuraia standard; - program de ncrcare a nregistrrii ce conine ncrcarea sistemului de operare pe disc; - proceduri pentru tratarea cererilor de ntrerupere externe.
ntreruperea codificat IRQ 0 IRQ 1 SMI # IRQ 3 IRQ 4 IRQ 5 IRQ 6 IRQ 7 IRQ 8 IRQ 9 IRQ 10 IRQ 11 IRQ12 IRQ13 IRQ 14 IRQ 15 IOCHCK # INT A INT B INT C INT D Neatribuite Poziia cadrului 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22-32 Observaii

System Management Interrupt

I/O Check

Disponibile

Tabelul 4.2. Codificarea cadrelor de serializare a ntreruperilor la magistrala PCI - proceduri pentru comanda i controlul execuiei operaiilor de intrare/ieire la nivel fizic, pentru dispozitivele periferice din configuraia standard. Programele de test pentru resursele din configuraia standard se execut automat odat cu pornirea sistemului realiznd urmtoarele activiti: - testarea sumar a microprocesorului care include testarea registrelor accesibile utilizatorului i a cilor de date; - testarea i programarea canalului DMA (Direct Memory Acces) i a contorului programabil ce particip la realizarea operaiei de remprosptare a memoriei interne; - testarea i programarea contorului programabil pe baza cruia se construiete ceasul de timp real; - stabilirea configuraiei sistemului prin determinarea poziiei comutatorilor; - testarea memoriei RAM; - testarea sistemului de ntreruperi i iniializarea tabelei ce conine adresele rutinelor pentru tratarea acestora; - stabilirea legturilor cu alte ROM din afara plcii de baz incluse n interfeele dispozitivelor periferice, ce const n: * stabilirea adreselor de tratare a ntreruperilor aferente;

50

Sisteme operaionale * iniializarea dispozitivelor periferice i a variabilelor asociate; * testarea sumar a adaptoarelor pentru tastatur, monitor i discuri. 4.4.2. Structurarea programelor i segmentarea la MS-DOS Programele executabile pot fi memorate pe suport extern n dou forme: - nume_fiier.EXE constituit dintr-o structur multisegment: stiva, datele, codul; - nume_fiier.COM constituit dintr-un singur segment ce include att datele ct i codul instruciunilor programului. ntr-un fiier cu extensia .EXE, programul este constituit ntr-un format relocabil incluznd un antet cu privire la informaiile necesare pentru realocare. Fiierele cu extensia .COM ocup un spaiu mai redus pe suport magnetic, ncrcndu-se n RAM mult mai repede. Oricare ar fi formatul programului executabil, n momentul ncrcrii n RAM pentru execuie acesta este precedat de un prefix de segment al programului (PSP) a crui adres de nceput este ds:0000 i es:0000 avnd urmtoarea structur constituit din 256 bytes (100H): - adresa 0: codul instruciunii INT 20H- 2 bytes; - adresa 2: ultima adres de memorie - 2 bytes; - adresa 4: rezervat - 1 byte; - adresa 5: apel procedur de intrare n DOS corespunztor funciilor DOS- 5 bytes; - adresa AH: adresa de revenire n DOS la terminare execuie (INT 22H i INT 4CH) ce se afl la adresa de tratare a ntreruperii INT 22H -4 bytes; - adresa EH: adresa de tratare CTRL-BREAK care se gsete la adresa de tratare a ntreruperii INT 23H - 4 bytes; - adresa 12H: adres de tratare a cererilor critice ce se afl la adresa de tratare a ntreruperii INT 24H - 4 bytes; - adresa 16H: rezervai pentru DOS - 22 bytes; - adresa 2CH: adre de segment pentru un ir de caractere ASCIIZ ce conin descrierea informaiilor de sistem (environment); - adresa 2EH: rezervat pentru DOS - 46 bytes; - adresa 5CH: blocul de control al fiierelor pentru primul parametru - 16 bytes; - adresa 6CH: blocul de control al fiierelor pentru al doilea parametru - 20 bytes; - adresa 80H: numrul de bytes n linia de apel a programului (nu include i numele programului) - 1 byte; - adresa 81H: linia de apel a programului (fr numele programului i directivele de redirectare) 127 bytes. Structura unui fiier .EXE conine 3 segmente: a. segmentul de stiv, segment ce poate apare n orice ordine relativ din alt segment; este utilizat de programe pentru a memora orice date care trebuie salvate i reapelate apoi de program; b. segmentul de date este segmentul care conine variabile referite de segmentul de cod, motiv pentru care este important s fie plasat naintea acestuia n vederea scderii posibilitii de a se produce erori, a creterii vitezei de execuie i a eficienei asamblrii; c. segmentul de cod conine instruciunile executabile ncepnd cu o etichet ce identific punctul de intrare n segment. n momentul ncrcrii fiierului .EXE pentru execuie, se va poziiona n RAM mai nti PSP ce conecteaz programul cu MS-DOS dup care MS-DOS poziioneaz n RAM segmentul de cod, segmentul de date i cel de stiv al programului. n final, MS-DOS plaseaz elementele de identificare ale segmentului de cod i ale segmentului de stiv n registrele de segment:

51

Capitolul 4 Componenta ROM-BIOS i ntreruperi MS-DOS - registrele ES i DS sunt iniializate la adresa de segment corespunztoare adresei de nceput a segmentului de date; - registrul CS este iniializat la adresa de nceput segmentului ce conine programul. Dac exist un singur segment atunci coninutul lui CS va fi cu 10H (64 n hexazecimal) mai mare dect coninutul registrelor DS i ES. Pentru execuia corect a programului, registrele DS i ES trebuie ncrcate explicit cu adresele segmentelor de date pe care le acceseaz: - registrul de stiv (SS) i indicator al adresei din stiv (SP) se vor iniializa dac nu a fost declarat explicit un segment pentru stiv sau se dorete utilizarea unui alt segment pentru stiv, dect cel de cod. n cazul inexistenei unei astfel de iniializri, registrul SS este iniializat cu aceeai valoare ca i registrul CS, iar SP va conine valoarea 0 astfel nct prima informaie din stiv va fi memorat n segmentul de cod la adresa 0FFFEH. La terminarea execuiei programului, redarea controlului se realizeaz cu INT 21H precedat de ncrcarea n registrul AX a funciei 4C00H. Structura fiierului .COM Fiierul .COM are un singur segment "comun" ce conine toate datele programului, PSP par i stiva. Dimensiunea maxim a unui program .COM poate fi de 64 K ct este dimensiunea unui segment, i toate referirile din program sunt relative la adresa de nceput a segmentului. MS-DOS construiete PSP i l include n segment pe primii 256 bytes (100H) ceea ce implic definirea punctului de intrare n program la 100H dup blocul de 256 bytes al PSP. Dup definirea punctului de intrare n program, acesta trebuie comutat la instruciunea de nceput a execuiei programului (dac este scris o dat ntre punctul de intrare i instruciunea de pornire, asamblorul trebuie s sar peste aceast dat - instruciunea JUMP- la prima instruciune executabil). Datele programului pot fi plasate oriunde n program, cu condiia s nu se interfereze cu codul (de preferat plasarea datelor naintea codului deoarece asamblorul poate semnala erori la referirea unor date ce nu au fost declarate n prealabil). De remarcat c nu este necesar iniializarea registrelor de segment (acestea fiind iniializate implicit cu aceeai valoare ca i registrul CS), iar stiva este iniializat automat la sfritul segmentului ocupat de program (registrul SS conine aceeai valoare ca i registrul CS, iar registrul SP conine valoarea 0FFFE0H). La terminarea programului, fa de fiierele .EXE exist urmtoarele deosebiri: - redarea controlului MS-DOS se realizeaz cu instruciunea RET naintea terminrii procedurii principale, care are ca efect un salt la primul byte din prefixul programului unde se gsete instruciunea INT 20H memorat la nceputul prefixului de program; - instruciunea END trebuie s identifice eticheta punctului de intrare la deplasarea 100H. La execuia editrii de legturi se va semnala o eroare ce se ignor, cu privire la nedeclararea segmentului de stiv SS. 4.4.3. Alocarea memoriei pentru programe i execuia lor Avnd n vedere organizarea logic a memoriei interne la PC - uri (fig.4.4.), sistemul de operare MS-DOS divide memoria de 640 K n dou zone: - prima zon ncepe la adresa 0000:0000H i conine: * vectorii de ntrerupere; * tabela vectorilor de ntreruperi; * zonele tampon; * nucleul sistemului de operare (partea rezident); - a doua zon - zona de tranziene - conine programele i informaii de context pentru aceste programe (environment); fiecrui program i se atribuie la cerere, blocuri de memorie ce sunt

52

Sisteme operaionale precedate de un bloc de control de 16 bytes care conine: * identificatorul blocului - byte 0; * adresa de segment pentru PSP-ul programului cruia i-a fost atribuit acest bloc (blocurile eliberate conin valoarea 0) byte 1 i 2; * dimensiunea blocului de memorie exprimat n multipli de 16 bytes, fr a lua n considerare memoria ocupat de blocurile de control - byte 3-4; * zona liber - byte 5-15.
16M/4 32M

Memoria extins HMA


IM FFFFF

Comp. ROM BIOS de pe placa de baz


896K E0000

Memorie expandat (mprit n pagini logice i relocate n fereastra EMS) 64K

Fereastra EMS
832K

Mem. ROM de pe placa de baz


768K BFFFF

Memoria RAM video


640K A0000

192K 128K 64K 16K

0K

Memoria convenional DOS Rutine BIOS Tabel vectori ntreruperi


0 128K 64K 0K

53

Fig. 4.4. Organizarea logic a memoriei interne la PC-uri

Capitolul 4 Componenta ROM-BIOS i ntreruperi MS-DOS Nu exist prevzut un mecanism de compactare a spaiului de memorie disponibil. Astfel, dac sunt eliberate anumite zone de memorie fr ultima zon ocupat iniial, atunci aceste zone se utilizeaz numai dac o nou cerere de memorie solicit aceste zone, fenomen ce poate conduce i la fragmentarea memoriei. ncrcarea i execuia unui program se realizeaz prin execuia funciei EXEC prin care programul ncrctor va solicita sistemului de operare alocarea a dou blocuri de memorie: - un bloc de memorie pentru program; - alt bloc de memorie, pentru contextul acestuia. Un program care se execut poate s lanseze n execuie un alt program pentru care trebuie s-i pregteasc argumentele (lansarea n execuie se face cu funcia DOS 4BH) ntr-un bloc de parametri, n vederea construirii prefixului programului ce se execut (fig.4.5.):
Memoria convenional Vector ntreruperi Tabele sistem de ntreruperi Buffere Nucleul sistemului de operare (rezident) Tranziente - programe i informaii de control asociate Solicitare blocuri de memorie
Adresa 0 a programului Bloc de memorie pentru context Bloc de control 16 bytes Bloc de memorie pentru program

Lansare alt program n execuie pregtire parametri ntr-un bloc de parametri

Sfrit context

Segment Deplasare al Segment Deplasare bloc Control doilea bloc bloc control primul bloc FCB-2 de control FCB-1 de control

Segment linie de comand

Deplasare Adres pentru linia segment de de comand context

Fig. 4.5. Alocarea memoriei pentru programe

54

Sisteme operaionale - adresa segmentului de context care dac este 0, se consider contextul programului curent, byte 0-1; - deplasarea pentru linia de comand (offset-ul), byte2-3; - segmentul liniei de comand ce conine numrul de caractere, textul i 0DH, byte 4-5; - deplasarea pentru primul FCB (File Control Block), byte 6-7; - segmentul blocului de control al fiierului (primul FCB), byte 8 i 9; - deplasarea pentru al doilea FCB, byte 10-11; - segmentul celui de-al doilea FCB, byte 12-13; Coninutul blocurilor de control sunt copiate n zone corespunztoare din PSP-ul programului lansat n execuie. Dac programul apelat nu lucreaz cu FCB sau i le pregtete singur, atunci n bytes de la 6 la 13(0DH) se va transmite valoarea 0. Prin funcia 4DH, programul care a apelat funcia EXEC poate obine informaii despre modul de terminare al programului executat: mov ah,4dh int 21h iar codul de terminare se afl n registrul n AH: 0 terminare normal; 1 terminare cu CTRL/C; 2 eroare acces memorie extern; 3 terminare cu rmnere program rezident. Sfritul contextului se face cu 2 bytes avnd valoarea zero, iar un nou context trebuie s conin cel puin definirile pentru COMSPEC, PATH, PROMPT. nainte de apelul funciei EXEC, trebuie salvate toate registrele ce conin informaii utile i a coninutului registrelor SP i SS n memoria programului apelant. La revenirea din programul apelat se refac registrele salvate. 4.4.4. Programe rezidente (TSR) Programele rezidente (TSR Terminate and Stay Resident) sunt o manier rudimentar de exploatare multitasking la MS-DOS, ce const n existena n RAM a mai multor programe care sunt activate prin producerea unui eveniment extern, putndu-se comuta rapid de la un program la altul i crend astfel iluzia de multitasking. Un program rmne n RAM la terminarea execuiei prin apelul funciei DOS 31H. Pentru activarea unui program TSR trebuie s aib loc un eveniment extern (combinaii de taste), fiind astfel necesar utilizarea unei secvene ce trateaz ntreruperea de nivel 9, activare ce nu trebuie s afecteze execuia altor programe care se mai execut (chiar alte TSR). Din acest motiv la activarea ntreruperii 9 se execut: - salvarea strii curente; - salvarea codului de scanare curent; - dac are loc un eveniment extern atunci se execut TSR, altfel se trateaz ntreruperea de nivel 9 i se reface starea salvat.

55

Capitolul 4 Componenta ROM-BIOS i ntreruperi MS-DOS Deoarece un program TSR poate conine funcii DOS i MS-DOS nu este reentrant, activarea programelor TSR se va face numai dac nu este n execuie o funcie DOS sau sistemul de operare nu este n tratarea unei erori critice. Dac programul TSR realizeaz operaii cu discuri, e necesar salvarea adresei PSP a programului ntrerupt i a adresei zonei de transfer a discului (DTA Disk Transfer Area) urmnd ca la sfritul execuiei programului TSR, s se realizeze operaia invers. Un program TSR conine trei secvene de program distincte: - instalarea programului (iniializarea), ce const dintr-o secven ce creeaz legturile programului cu sistemul de operare (INT 35H i INT 25H): INT 35H permite obinerea i salvarea ultimei adrese de tratare a ntreruperii; INT 25H pentru crearea noii legturi. - programul TSR ce conine secvena de program propriu-zis; - dezafectarea legturilor TSR- MS-DOS i refacerea vechilor legturi.

56

Sisteme operaionale

EXERCIII 1. S se explice de ce apar ntreruperile i care sunt etapele prelucrrii lor. 2. Cum sunt protejate programele de aplicaie ntre ele i cum se evit interferena lor cu programele sistemului de operare la PC -uri ? 3. S se pun n eviden deosebirea dintre ntreruperi i excepii. 4. n ce const tabela vectorilor de ntrerupere ? S se identifice elementele la un PC. 5. Care sunt ntreruperile BIOS i ce semnificaie le este atribuit fiecreia ? 6. S se identifice etapele de dezvoltare ale unui program de aplicaie la MS-DOS, program scris n diverse limbaje de programare, relevnd rolul fiecrei componente a sistemului de operare. 7 Care este structura fiierelor executabile .EXE i .COM ? Avnd acelai nume de fiier, un executabil .COM se lanseaz n execuie naintea unui executabil .EXE; justificai afirmaia. 8. Cum aloc MS-DOS memorie pentru programe ? Care este mecanismul de apel al unui alt program ? 9. Ce reprezint un program TSR ? S se identifice la PC pe care se lucreaz programele TSR. 10. S se specifice avantajele i dezavantajele oferite de ncrcarea n memorie a programelor TSR.

57

WINDOWS
5.1. Arhitectura mediului windows Arhitectura mediului Windows a fost proiectat astfel nct s fie asigurat protecia taskurilor executate simultan. Protecia se bazeaz pe ierarhia de tutel potrivit creia un task poate s acceseze numai taskurile situate pe un nivel superior (fig. 5.1.)

2 1

Fig. 5.1. Nivelurile ierarhiei de tutel Nivelul 0 este asociat sistemului de operare, iar nivelul 3, programelor de aplicaie; nivelurile 1 i 2 conin drivere de echipamente neincluse n nivelurile 0 sau 5. Acest mod de aezare a taskurilor asigur faptul c orice ncercare de acces neautorizat, va genera o excepie care va lansa rutina de violare a inelului de protecie. Windows 95 i Windows NT 4.0 spre deosebire de versiunile precedente, utilizeaz modelul de memorie nedifereniat. Modelul este suportat pe PC-urile AT386 sau superioare. Prin aceasta nu se elimin mecanismul de segmentare, ns sistemul de operare ignor aceast capacitate. n cazul memoriei segmentate, procesorul meninea controlul prin intermediul tabelei de selectori, un selector adresnd un segment de 64 K. Adresa liniar se determina prin nsumarea adresei de baz din tabela de descriptori accesat de selector, cu deplasarea (ambele pe 32 de bii) fig. 5.2. n modul de adresare nedifereniat, fiecare registru conine o adres pe 32 de bii divizat n trei cmpuri, fiecrui cmp corespunzndu-i un anumit nivel de protecie (fig. 5.3.): 1) localizarea tabelei de pagini, care solicit volumul total de memorie necesar; numrul de pagini din tabel corespunde cu numrul de pagini de 4 K alocate aplicaiei (o aplicaie ce solicit 100 K de RAM, are 25 de intrri); 2) localizarea paginii n tabela de pagini; 3) localizarea oricrui byte din pagina de 4 K, prin adunarea deplasrii (off set) - biii 0-11.

58

Sisteme operaionale 15 31 Selector de 16 bii (conine o intrare n tabela de descriptori) 0 CS DS SS ES FS GS 0 31 0

Deplasare (o locaie din interiorul unui segment)

Tabela de descriptori

31 Descriptor de segment (adresa de baz a unei zone de memorie de 64 K)

+
Adresa liniar pe 32 de bii

Fig. 5.2. Adresarea n modul protejat

5.1.1. Arhitectura de baz Arhitectura de baz i componentele mediului Windows sunt redate n fig. 5.4. Sistemul VM ( Virtual Mode ) Sistemul VM furnizeaz majoritatea funciilor destinate utilizatorului; este alctuit din urmtoarele componente : 31 Pointer n catalogul tabelelor de pagini 22 21 12 11 0

Pointer ntr-o tabel de pagini

Deplasare de pagin

Intrare n catalog tabele pagin

Intrare ntr-o tabel de pagini

Adres fizic

Catalog tabele de pagini


Tabel de pagini Cadru de pagin

Fig. 5.3. Modul de adresare nediferenial 59

Capitolul 5 - Windows aplicaii Windows pe 32 de bii care pot fi executate n multitasking preemptiv utiliznd modelul de adresare nedifereniat a memoriei (prin acest mod de adresare, se reduce semnificativ timpul de acces la memorie ); fiecare task primete cte o parte egal din interfaa Shell alctuit din Windows Explorer; aplicaii pe 16 bii care sunt executate de Windows ntr-un spaiu de adrese comun ca un singur task, utiliznd astfel un multitasking cooperativ, nepreemptiv. Windows const dintr-o combinaie de aplicaii pe 16 bii i 32 de bii; pentru a permite comunicaia ntre cele dou categorii de aplicaii, Windows folosete un strat de conversie (thunk layer), constituind o stiv aferent sensului de comunicaie ( fig. 5.5 ). Alturi de stratul de conversie, asemntor altor sisteme de operare ce execut multitasking (OS/2,UNIX), Windows folosete pentru realizarea legturii ntre aplicaii fiiere DLL (Dynamic Link Library). Exist dou forme de legare ( linking ) sub Windows (sau OS/2 sau UNIX). Prima legtur combin toate modulele obiecte necesare pentru a crea o aplicaie unic; legarea are loc dup ce programatorul termin de copiat codul. Al doilea ciclu de legare are loc atunci cnd utilizatorul trece la ncrcarea aplicaiei .Aici este momentul n care intervine DLL. Fiecare aplicaie Windows are referine nerezolvate la funcii (numite apeluri de biblioteci de import). Aceste apeluri ncarc un fiier DLL care conine codul necesar pentru. a satisface acel apel de funcie . Sistemul VM (Virtual Mode) Aplicaii Win. 32 bii Spaiu de adresare Multitasking controlat (preemptiv) API Kernel KRNL 386.EXE KERNEL.DLL Interfaa Shell Aplicaii pe 16 bii Spaiu comun de adresare utilizat partajat Multitasking cooperativ Main virtual DOS Calculator virtual MS-DOS

Interfaa cu componente hardware (GDI.EXE, GDI 32.DLL)

Interfaa utilizator USER.EXE, USER 32.DLL

Nivelul 3 de protecie - aplicaii Nivelul 1, 2 drivere de echipamente neincluse Sistemul de baz (1) Controlul fiierelor pe HD, FD, CD-ROM, reele i alte dispozitive (2) Servicii de reea: securitate comunicaii (3) Servicii pentru sistemul de operare: conectare, funcionare (4) Controlul mainii virtuale: control memorie, servicii VD, ncrctor dinamic, gestiune main virtual DOS, server DPMI (5) Drivere pentru echipamente: interfa dintre Windows i echipamentele conectate la PC Nivel 0 de protecie servicii sisteme de operare Fig. 5.4. arhitectura i componentele mediului Windows

60

Sisteme operaionale Dac fiierul DLL se afl n memorie atunci cnd este apelat, Windows decrementeaz nivelul de utilizare; cnd controlul de utilizare ajunge la 0, Windows poate s-l descarce din memorie. Utilizarea fiierelor DLL poate duce la salvarea unei cantiti destul de mari de memorie atunci cnd se ncarc aplicaii multiple . Maina virtual DOS Fiecare main virtual dispune de propriul su spaiu de memorie i acces la echipamentele de sistem, Windows crend impresia c este singura aplicaie care se execut pe sistem (cerin MS-DOS). O main virtual DOS ruleaz n mod 86 virtual crend n memoria protejat mai multe maini 8086 a cte 1 M fiecare. Unele aplicaii DOS utilizeaz extensii compatibile DPMI care le permit rularea n mod protejat . Aplicaii Windows

Kermel

Interfaa de grafic

Interfa utilizator

Apeluri mixte 16 32 bii

32 bii

Strat de conversie

Subsistem Windows

Tratarte funcii specializate pe 16 bii

Fiiere executabile 32 bii

16 bii

Shell

Kernel

Interfaa de grafic

Interfa utilizator

Cod sistem (primitive) VMM Fig. 5.5. Interaciunea aplicaiilor pe 16 i 32 de bii VD

API (Application Programming Interface ) Fiecare aplicaie Windows capt acces la sistemul de operare utiliznd o interfa API. n esen, un apel API face acelai lucru ca orice ntrerupere: cere sistemului de operare s execute un task. Codul pentru API apare n fiierele de sistem (cum este i cazul sistemului de operare MS-DOS, al crui cod este scris n mod real); n Windows, codul API beneficiaz de caracteristica de revenire (reentrant) ceea ce i permite s proceseze simultan mai multe apeluri. 61

Capitolul 5 - Windows Sistemul Windows utilizeaz efectiv dou API- una pe 16 bii i una pe 32 de bii. Indiferent ce API utilizeaz, orice aplicaie va adresa trei componente de baz: versiunile pe 16 bii ale acestor fiiere sunt GDI.EXE, USER.EXE i KRNL 386.EXE, iar versiunile pe 32 de bii sunt GDI32.DLL,USER32.DLL i KERNEL32.DLL: Kernel - nucleul Windows (KERNEL386.EXE sau KERNEL32.DLL) furnizeaz suport pentru funciile de nivel jos de care are nevoie o aplicaie pentru a rula. Aceastcomponent nu trateaz nici cu mediul i nici cu echipamentele; ea interacioneaz numai cu Windows nsui . Graphical Device Interface mediul echipamentelor grafice (GDI.EXE sau GDI32.DLL). Ori de cte ori o aplicaie scrie pe ecran, ea utilizeaz serviciile GDI. Componenta Windows are grij de fonturi, de serviciile de tiprire, de monitor, de administrarea culorilor i orice alt aspect artistic al mediului Windows pe care utilizatorii l pot vedea n timp ce utilizeaz propria aplicaie; User - utilizator (USER.EXE sau USER32.DLL). Windows este bazat n ntregime pe ferestre . Are nevoie de un administrator care s urmreasc toate ferestrele create de aplicaii pentru a afia diverse tipuri de informaii. Ori de cte ori o aplicaie afieaz o pictogram sau un buton, folosete un anumit tip de funcie inclus n USER. Windows se lanseaz ca o aplicaie pe 16 bii pentru a putea implementa standardul Plug and Play (PNP). Componenta BIOS PNP conine seciuni separate pentru modul de lucru real i apelurile pe 16 bii n modul de lucru protejat. Dac Windows s-ar lansa n modul pe 32 de bii, nu ar putea apela componenta BIOS PNP pentru a instala toate componentele fr a fi necesare o mulime de aciuni suplimentare. Configurarea tuturor echipamentelor trebuie s aib loc nainte ca Windows s lanseze efectiv interfaa grafic. Totui, operaiile pe 16 bii se termin foarte repede dup ce s-a lansat Windows (programul shell al utilizatorului este o aplicaie pe 32 de bii ); de ndat ce nucleul Kernel pe 16 bii vede apelul pentru shell, lanseaz o aplicaie numit VWIN32.386 care ncarc bibliotecile DLL pe 32 de bii ce alctuiesc WIN32 API. O dat ce termin acest task, VWIN32.386 red controlul Kernelului pe 16 bii, care la rndul lui apeleaz Kernelul pe 32 de bii. Din acest moment Windows ruleaz pe 32 de bii. PLUG and PLAY (PNP) PNP reprezint lucrul a trei componente de sistem: hardware-ul, componenta BIOS i sistemul de operare. El activeaz lucrurile eseniale ale sistemului cum ar fi unitatea de disc i adaptorul de afiaj. n timpul procesului de iniiere, sistemul de operare ncheie taskul de alocare a ntreruperilor i a adreselor de porturi ale tuturor componentelor sistemului. El cere componentei BIOS s furnizeze o list a alocri anterioare, pentru a nu le mai utiliza nc o dat. Caracteristici suplimentare oferite de standardul PNP: identific echipamentele instalate Windows detecteaz automat toate componentele ataate la sistem. determin necesitile de resurse ale echipamentelor Orice echipament instalat pe calculator are nevoie de resurse sub forma ciclurilor procesor, porturi de intrare / ieire , canale DMA, memorie i ntreruperi. Windows lucreaz cu componenta BIOS i echipamentele periferice pentru a veni n ntmpinarea acestor necesiti fr nici o intervenie. actualizarea automat a configuraiei sistemului i detectarea conflictelor dintre resurse Comunicarea dintre echipamentele periferice, BIOS i sistemul de operare permit mediului Windows s creeze o configuraie de sistem fr nici o intervenie din partea utilizatorului. Blocurile de configurare din Device Manager (administratorul de echipamente) sunt colorate n gri deoarece utilizatorul nu mai trebuie s furnizeze aceast informaie. Nivelul ridicat al comunicrii permite mediului Windows s sondeze dispozitivele periferice pentru porturi 62

Sisteme operaionale alternative i parametri de ntreruperi, atunci cnd are loc un conflict cu un alt echipament instalat. ncrcarea i descrcarea unui driver de echipament Fiierele CONFIG.SYS i AUTOEXEC.BAT conineau linie dup linie, instruciuni de lansare a programelor driver de echipamente i TSR; Windows poate menine sau chiar s mbunteasc performanele unui sistem PNP fr a utiliza un fiier CONFIG.SYS sau AUTOEXEC.BAT. Compatibilitatea PNP ofer posibilitatea Windows-ului s ncarce i s descarce dinamic orice echipament de care are nevoie sistemul. notificarea schimbrii configurrii PNP ar putea modifica configurarea sistemului automat, doar atunci cnd se modific eventual configuraia sistemului; Windows anun acest lucru, afind o caset de dialog n care spune ce s-a modificat. Sistemul de baz Sistemul de baz conine toate serviciile sistemului de operare : a) controlul fiierelor ofer o interfa pentru toate echipamentele conectate la PC; b) servicii de reea ofer faciliti de lucru n reeaua Microsoft i lucrul n mod protejat pentru majoritatea produselor LAN; c) servicii de sistem de operare care includ caracteristicile PNP, solicitri ale utilizatorului i ale sistemului de operare; d) gestiunea mainii virtuale se ocup de : programarea execuiei taskurilor; lansarea n execuie i oprirea oricrei aplicaii din sistem; controlul memoriei virtuale prin intermediul interfeei API; controlul tuturor operaiilor de alocare a memoriei, inclusiv acionarea ca un server DPMI (interfaa pentru modul protejat DOS) pentru aplicaii MS DOS care ruleaz n mod protejat; comunicaia dintre taskuri care filtreaz toate cererile pentru DDE (Data Dynamic Exchange) i OLE (Object Linking and Embeding); e) drivere pentru dispozitive care lucreaz n: modul real, ceea ce implic o comutare permanent ntre modul real i cel protejat; VxD ( Virtual x Driver ) care va comunica cu sistemul fr comutarea n modul real. Fiierele de sistem VxD (Virtual x Driver) Odat cu Windows 95, s-a eliminat adresarea n mod real prin includerea funciilor sistemului de operare ntr-o arhitectur pe 32 de bii, utiliznd tehnica adresrii n mod protejat VFAT (Virtual File Allocation Table), tehnic ce reduce cderile de sistem i timpul de acces la disc (fig. 5.6.): Windows mod protejat VFAT IFS Controller Unitate de disc

int 21 h

IFS

Aplicaie DOS mod real

BIOS
int 21 h

DOS
int 13 h

Fig. 5.6. Tehnica VFAT

63

Capitolul 5 - Windows Fiierele de sistem Windows sunt organizate n 32 de straturi (layers): stratul O este cel mai apropiat de sistemul de intrare / ieire; stratul 31 este cel mai apropiat de hardware. Fiecare strat ofer posibilitatea de a aduga fiiere de sistem i echipamente specifice. IFS (Installable File System) programul de gestiune a fiierelor de sistem instalabile, este stratul superior al fiierelor de sistem. IFS este VxD care asigur interfaa pentru aplicaii, recepionnd solicitrile aplicaiei i transfernd controlul ctre driverul corespunztor din fiierele de sistem. FSD (File System Driver) driverul fiierelor de sistem, strat ce conine ca principal component VFAT. FSD VFAT este un VxD care gestioneaz toate solicitrile referitoare la unitile de HD locale. IOS ( Input Output System) sistemul de intrare / ieire este stratul superior destinat echipamentelor ce realizeaz transferul pe blocuri (un bloc = 512 bytes), unitatea organiznd blocurile de date n multiplii de 512 bytes; unitile sunt HD, CD ROM, reea, DSS. Stratul asigur servicii de echipament pentru driverele FSD ca : - direcionarea cererilor de la FSD la diverse drivere de dispozitive periferice de intrare /ieire; - recepionarea informaiilor de stare de la driverele echipamentelor periferice. VTD (Volume Tracking Driver) driverul de eviden a volumului, monitorizeaz starea unitilor de memorie extern amovibile i raporteaz schimbarea suportului (FD, CDROM) TSD (Type Specific Driver) driverul unui tip de dispozitiv: HD, FD, unitate de reea VSD (Vendor Supplied Driver) driver furnizat de productor pentru o unitate nestandard de CD-ROM, FD optic, .a. PD (Port Driver) driver pentru comunicarea cu dispozitivul prin intermediul adaptorului (exemplu PD pentru IDE) SCSI limbaj de comand pentru interfaa SCSI SCSI Manager traduce comenzile ntr-un format recunoscut de driverul de miniport Miniport Driver driver de dispozitiv ce recunoate utilizarea dispozitivelor SCSI PMM (Protected Mode Mapper) configuratorul modului protejat permite utilizarea driverelor MS-DOS sub Windows 95, fcnd un driver n mod real s lucreze aparent n mod protejat. RMD (Real Mode Driver) driver de mod real utilizat pentru dispozitive mai vechi. 5.1.2. Arhitectura Windows 98 Arhitectura de baz din Windows 98 ofer numeroase avantaje pentru utilizator : sistem de operare pe 32 de bii n modul protejat, complet integrat dispare astfel necesitatea unui exemplar MS DOS separat ; sistem multitasking controlat i multifir aceste caracteristici asigura reacia corespunztoare a sistemului i procesarea n fundal; sistem de fiiere instalabile pe 32 de bii sisteme cum ar fi VFAT, sistemul de fiiere pentru CD-ROM (CFS), FAT32 i redirectoare de reea, asigur performane superioare, posibilitatea utilizrii denumirilor lungi de fiiere i o arhitectur deschis care permite evoluii viitoare ; drivere de dispozitiv pe 32 de bii disponibile n ntregul sistem care asigura performane superioare i utilizarea eficient a memoriei; nucleu integral pe 32 de bii cuprinde componente de gestionare a memoriei, secveniator i componente de gestionare a proceselor; soliditate a sistemului i faciliti de eliberare a memoriei ceea ce elibereaz memoria la terminarea sau blocarea aplicaiilor; 64

Sisteme operaionale configurare dinamic a mediului astfel c necesitatea interveniei utilizatorului pentru a-i configura calculatorul este redus; capacitate superioar a sistemului face ca limitele de acces la resursele sistemului n cazul rulrii simultane a mai multor aplicaii s fie mai flexibile. Sarcina sistemului de operare este de a furniza servicii pentru aplicaiile aflate n derulare, iar ntr-un mediu multitasking, de a asigura faciliti care s permit rularea simultan a mai multor aplicaii. Windows 98 nu are nevoie de fiiere separate CONFIG.SYS sau AUTOEXEC.BAT, n schimb folosete driverele i parametrii necesari, ncrcnd automat fiierele driverului adecvat sau stabilind configuraia corespunztoare n timpul procesului de iniializare. Windows 98 ofer urmtoarele servicii de sistem: gestionarea proceselor i firelor de execuie; comunicaii i sincronizare ntre procese; subsistem Win32 complet controlat; servicii I/O pentru CD-ROM i hard disc; servicii I/O de reea; servicii de tiprire; operaii grafice de nivel nalt; gestionarea ferestrelor. Pentru a rspunde cerinelor de compatibilitate cu aplicaiile i driverele existente, de micorare a dimensiunii setului de lucru al sistemului de operare i mbuntire a performanelor sistemului, Windows 98 folosete o combinaie de cod pe 32 de bii i pe 16 bii. n general, codul pe 32 de bii este folosit n Windows 98 pentru a mbunti performanele sistemului, n timp ce codul pe 16 bii rspunde cerinelor de reducere a dimensiunii sistemului i de meninere a compatibilitii cu aplicaiile i driverele existente (fig. 5.7.). Driverele de dispozitiv virtual din Windows 98 preiau funcionalitile unor drivere de dispozitiv n modul real sub MS-DOS, eliminnd necesitatea ncrcrii lor MS-DOS. Aceast tehnic asigur o amprent minim n memoria convenional, performane ridicate, precum i fiabilitatea respectiv stabilitatea sistemului. Windows 98 asigur compatibilitatea cu magistralele USB, cu interfeele pentru controllerele-gazd Universal i Open i cu dispozitivele USB pentru intrri de la utilizator. Arhitectura integrat a sistemului de operare Windows 98 permite rularea de aplicaii sub MS-DOS, Win16 i Win32. Componentele sistemului sunt mprite ntre nivelul 0 i nivelul 3, realiznd diferite niveluri de protecie ( fig. 5.8.) Nivelul 3 este protejat de alte procese n derulare, prin serviciile asigurate de arhitectura procesorului Intel. Nivelul 0 este format din serviciile de nivel sczut ale sistemului de operare cum ar fi gestionarea sistemului de fiiere i a componentelor virtuale. Aplicaiile sub Win16 folosesc facilitile de multitasking controlat ale altor componente, inclusiv subsistemele pe 32 de bii pentru tiprire i comunicaii i beneficiaz de soliditatea i de protecia oferit de nucleul sistemului Windows 98. Facilitile pentru aplicaiile, driverele de dispozitiv i programele TSR sub MS-DOS sunt preluate i n sistemul de operare Windows 98. Funciile asigurate ntr-un sistem virtual MSDOS sunt cele din ultima versiune a acestui sistem de operare, permind utilizatorilor s lanseze aceleai comenzi i programe utilitare. n Windows 98, aplicaiile sub Win32 prezint urmtoarele avantaje fa de aplicaiile sub Win16: multitasking controlat, iruri separate de mesaje, spaiu de adres plat, compatibilitate cu Windows NT, acceptarea denumirilor lungi de fiiere, protejarea memoriei, soliditate superioar.

65

Capitolul 5 - Windows

partea pe 32 bii

partea pe 16 bii USER 16 Serviciile de gestionare a ferestrelor i meniurilor existente n Windows 5.1., plus cteva faciliti noi (modelul cu intrri asincronice, noi stiluri etc.)

USER 32

Stratul de conversie

GDI 32 Sistem raster pentru fonturi True Type, subsistem pentru tiprire, spooler, mecanism universal de grafic (Dib Engine)

GDI 16 Sistemul de gestionare a graficii existent n Windows 5.1., plus noul sistem Bezier, ci, EMF etc.

Keme 132 Servicii pentru fire de execuie, elemente de sincronizare, gestionarea memoriei, fiiere mapate n memorie, sistem I/O pentru fiiere, servicii de depanare, consol, comunicaii etc.

(Sens unic)

Keme 116

Fig. 5.7. Codul pe 16 i 32 bii la Windows 98

Facilitile din Windows 98 care asigur soliditatea sistemului de operare sunt: mai bun reiniializare local: eliberarea firelor de execuie ale driverelor de dispozitiv virtual la ncheierea procesului; urmrirea strii firelor de execuie; validarea parametrilor driverelor de dispozitiv virtual.

66

Sisteme operaionale
Nivel 3 (Sistem VM) Aplicatii Win32 Aplicatii Win32 Aplicatii Win32 Servicii de sistem kemel grafica gestionarea ferestrelor

Aplicatii Win16 Aplicatii Win16

Nivel 3 (MS-DOS VM)

Nivel 3 (MS-DOS VM)

Nivel 0 Sistem de fisiere in modul protejat :VFAT, CDFS, SCSI, Retea Sistem de gestionare a masinii virtuale: Pager, Secventiator, server DPMI

Fig. 5.8. Nivelurile de protecie la Windows 98 Fiecare aplicaie sub MS-DOS ruleaz ntr-un sistem virtual separat i este preconfigurat pentru a executa operaiile n mod controlat i a rula n fundal atunci cnd este activat o alt aplicaie. Fiecare sistem virtual este protejat fa de alte operaii derulate n sistem, astfel nct eventualele erori din aplicaiile sub Win16 sau sub Win 32 s nu poat bloca o aplicaie sub MSDOS i reciproc. Windows 98 asigur protecia memoriei pentru rularea aplicaiilor sub MS-DOS, mpiedicnd aplicaiile s suprascrie zona de sistem MS-DOS n modul real. La nchiderea unui sistem virtual sub Windows 98 fie prin procedura normal cnd utilizatorul prsete aplicaia sau solicit o reiniializare local, fie accidental cnd se blocheaz aplicaia, sunt eliberate toate resursele alocate sistemului virtual. Windows 98 asigur faciliti pentru aplicaiile sub Win16 i compatibilitatea cu aplicaiile sub Windows existente, meninnd solicitrile de memorie la un nivel redus. Aplicaiile sub Win 32 beneficiaz i de sistemul de multitasking controlat, de un spaiu de adres liniar (nu segmentat) i de un set API cu numeroase faciliti. Aplicaiile sub Win32 folosesc iruri separate de mesaje pentru a asigura soliditatea sistemului. Sistemul preia mesajele din irul de intrare i le transmite aplicaiei corespunztoare sub Win32 sau sub sistemului Win16, n cazul n care mesajul este destinat unei aplicaii sub Win16 (fig. 5.9.). Dac o aplicaie sub Win32 se blocheaz i numai accept sau nu mai prelucreaz mesajele primite, celelalte aplicaii sub Win16 i Win32 aflate n derulare nu vor fi afectate. Dac o aplicaie sub Win32 se nchide sau dac utilizatorul solicit o reiniializare local pentru o astfel de aplicaie, irurile de mesaje separate contribuie la soliditatea sistemului de operare, simplificnd procesul de eliberare a resurselor folosite de aplicaie. De asemenea, ele asigur o fiabilitate i o capacitate mai mare de refacere n cazul blocrii unei aplicaii.

67

Capitolul 5 - Windows
Intreruperi determinate de mouse Unitate de prelucrare a intreruperilor Intreruperi determinate de tastatura Mesaje Intrari brute pentru fire de executie

Sir de mesaje Subsistemul Win 16 Aplicatii sub Win 16

Sir de mesaje Aplicatie sub Win 32

Sir de mesaje Aplicatie sub Win 32

Sir de mesaje Aplicatie sub Win 32

Aplicatii sub Win 16

Fig. 5.9. Distribuirea mesajelor pe 16 i 32 de bii 5.2. Noi caracteristici la Windows 98 Noile caracteristici ale sistemului de operare Windows 98 pot fi clasificate n: platforma pentru inovaii; simplitate, vitez i putere; fiabilitate i posibiliti de administrare superioare; integrare Internet. Platformele pentru inovaii includ mbuntirile hardware i software pentru Windows 98.

Win32 Driver Model (WDM) este un nou model de driver universal pentru Windows 98 i Microsoft Windows NT 5.0 i permite ca noile dispozitive s aib un singur driver pentru ambele sisteme de operare. FAT32, versiunea mbuntit a sistemului de fiiere FAT (tabela de alocare a fiierelor) permite formarea discurilor de peste 2 G ca o singur unitate. Pentru mai mult flexibilitate, Windows 98 conine i un utilitar de conversie grafica

FAT32, care poate converti rapid i sigur o unitate de disc de la versiunea FAT iniial, la FAT32. Windows 98 include suport pentru interfaa de configurare avansat i de gestionare a consumului (Advanced Configuration and Power Interface-ACPI). n afar de facilitatea ACPI,

68

Sisteme operaionale Windows 98 ofer suport pentru extensiile Advanced Power Management (APM) 1.2, inclusiv pentru oprirea hard discului, pentru interfaa PCMCIA, pentru dezactivarea modemului i reluarea funcionrii n cazul apelului telefonic.

Cu interfaa integrat pentru Internet din Windows 98, accesul la Internet devine o parte integrant a interfeei cu utilizatorul. Windows 98 permite executarea unui set de comenzi (script) direct prin interfaa cu utilizatorul sau din linia de comand. Suportul pentru aceast funcionalitate este oferit prin intermediul aplicaiei Windows Scripting Host (WSH) i permite administratorilor i utilizatorilor, s economiseasc timp prin executarea automat a numeroaselor aciuni de la nivelul interfeei, cum ar fi crearea unei comenzi rapide, conectarea sau deconectarea la un server de reea. WSH este o aplicaie extrem de flexibil, incluznd suport pentru scripturi Microsoft Visual Basic sau Java i o arhitectur independent de limbaj. mbuntirile aduse parametrilor de afiare ofer posibilitatea schimbrii dinamice a rezoluiei ecranului i a profunzimii culorilor. Aplicaia Internet Connection Wizard (ICW) pune la dispoziia utilizatorilor sistemului de operare Windows 98, toate elementele funcionale necesare pentru conectarea rapid i simpl la Internet. Noul mecanism Microsoft Intellimouse le permite utilizatorilor s se concentreze mai mult asupra documentului sau a foii de calcul, dect asupra mutrii mouse-ului pe pictograme sau barele de derulare, pentru a se deplasa n cadrul programului. Aplicaia Dial-Up Networking inclus n Windows 98 a fost actualizat pentru a fi compatibil cu Dial-Up Scripting, prin care poate fi automatizat operaia de conectare la sistemul de buletine informatice (BBS) i la alte servicii on-line. Noua aplicaie Disc Defragmenter Optimization Wizard folosete procesul de

defragmentare a discului pentru a mri viteza de rulare a aplicaiilor utilizate frecvent. n acest scop, aplicaia Wizard creeaz un fiier jurnal (log), cu ajutorul cruia identific programele folosite cel mai des. Prin plasarea tuturor fiierelor unei aplicaii n aceeai zon de pe hard disc, se va mbunti viteza de rulare a aplicaiei respective. Aplicaia Windows Tune Up Wizard permite planificarea unei zile i a unei ore n fiecare sptmn, n care calculatorul s efectueze singur o operaie de "curare", adic s tearg fiierele inutile i s efectueze defragmentarea discului pentru aplicaiile folosite frecvent, astfel nct acestea s ruleze ct mai rapid. Windows 98 este compatibil cu standardul Infrared Data Association (IrDA) pentru conectare fr fir. Suportul pentru IrDA le permite utilizatorilor sistemului de operare Windows 98, s se conecteze cu uurin la dispozitivele periferice sau la alte calculatoare, fr a folosi cabluri de conectare. Acest set de drivere asigur calculatoarelor portabile (laptop) sau de birou (desktop) dotate cu echipament pentru conectare prin radiaii infraroii, posibilitatea de lucru n reea, de transfer de fiiere i de tiprire fr fir, prin intermediul altor dispozitive compatibile IrDA care lucreaz pe baz de radiaii infraroii. Point-to-point Tunneling Protocol (PPTP) ofer posibilitatea de a utiliza reele de date publice, cum este Internet, pentru a crea reele virtuale private prin conectarea unor calculatoareclient cu serverele de reea. PPTP furnizeaz un sistem de ncapsulare a protocolului n scopul folosirii protocoalelor multiple prin intermediul legturilor TCP/IP i criptrii datelor pentru garantarea confidenialitii, transmiterea de informaii prin reele neprotejate devenind n acest fel mai sigur.

69

Capitolul 5 - Windows Windows 98 conine toate componentele necesare pentru a permite utilizarea calculatorului ca server accesibil de la distan. Clienii se vor putea conecta prin linia telefonic la un calculator cu Windows 98 pentru accesul la resurse locale ori la o reea IPX/SPX sau NetBEUI. ActiveMovie este o nou arhitectur multimedia pentru Windows, prin care se obine o redare video de o calitate ridicat i un set extensibil de interfee cu ajutorul crora se poate crea aplicaii i instrumente media. Windows 98 ofer suport pentru programele realizate de alte firme care folosesc extensiile Intel Pentium Multimedia Extensions (MMX) pentru a beneficia de facilitile audio i video ale noii generaii de procesoare Intel Pentium. Windows 98 ofer servicii client pentru reele NetWare care sunt compatibile cu Novell NetWare Directory Services (NDS). Aceste servicii le permit utilizatorilor mediului Windows 98 s se conecteze la servere Novell NetWare 4.x rulnd NDS pentru a obine accesul la fiiere i la resurse de tiprire. Aplicaia Internet System Update este un nou serviciu bazat pe Web care scaneaz calculatorul pentru a afla componentele hardware i software instalate, iar apoi compara aceste informaii cu cele dintr-o baz de date actualizat, pentru a stabili dac exist drivere sau fiiere de sistem mai noi. n cazul n care gsete drivere sau fiiere de sistem mai recente, acest serviciu poate s le instaleze n mod automat. Exist chiar i o funcie de anulare (rollback), care poate elimina driverul instalat automat de Internet System Update. System File Checker este un nou utilitar care furnizeaz o modalitate simpl de a verifica dac fiierele de sistem din Windows 98 nu au fost modificate sau alterate. El include i un mecanism simplu pentru refacerea versiunilor originale ale fiierelor de sistem, n cazul n care acestea au fost modificate. Utilitarul Microsoft System Information colecteaz informaii despre starea componentelor unui calculator. Informaiile colectate se pot referi la hardware sau software, la driverele de dispozitiv sau la resursele utilizate n mod curent. Ele pot fi extrem de valoroase pentru identificarea, detectarea i rezolvarea problemelor legate de hardware, de software sau de configuraie. Windows 98 conine i o versiune mbuntit a utilizatorului Dr. Watson. Dac este activat, atunci cnd intervine o defeciune generat de program (eroare de protecie, blocare sau alt ntrerupere), Dr. Watson o intercepteaz i indic programul care a cauzat-o i motivul. n plus, Dr. Watson colecteaz informaii detaliate despre starea sistemului n momentul apariiei defeciunii. Acestea sunt nregistrate pe disc i pot fi afiate pe ecran pentru a ajuta administratorul sau personalul care acord asisten pentru produsul respectiv s determine cauza defeciunii. n Windows 98 a fost introdus o funcie pentru rularea automat a aplicaiei ScanDisk n situaia n care sistemul de operare este nchis ntr-un mod incorect sau dac hard discul genereaz o eroare. Aceast facilitate l va ajuta pe utilizator s se asigure c unitile de hard disc funcioneaz corect i nu au clusteri lips, fiiere suprapuse sau alte defeciuni. Includerea programului Microsoft Internet Explorer 4.0 n Windows 98 ofer cel mai simplu, mai rapid i mai recreativ mod de navigare prin Web.

70

Sisteme operaionale

Windows 98 conine o gam larg de instrumente pentru comunicarea on-line: - Microsoft Outlook Expres, o aplicaie client cu toate facilitile pentru e-mail i citirea mesajelor - Microsoft NetMeeting, o soluie complet pentru conferine n Internet care ofer funcionaliti bazate pe standarde audio, de date i video - Microsoft NetShow, care permite urmrirea transmiterii radio /TV n direct sau nregistrate, fr ateptare pentru ncrcare sau reducerea performanelor reelei - Microsoft FrontPad, un editor HTML de tip WYSING (what you see is what you get) bazat pe versiunea complet a programului Microsoft FrontPage97, care ofer faciliti de editare HTML, ce permit chiar i utilizatorilor nceptori s creeze cu uurin pagini Web - Personal Web Server care furnizeaz o modalitate simpl de publicare a paginilor Web n reele locale sau n Internet. 5.2.1. Interfaa Windows 98 Indiferent de suprafaa de lucru folosit (cea standard din Windows sau Active Desktop), Windows 98 conine versiuni mbuntite ale instrumentelor prezentate pe suprafaa de lucru n Windows 95, mai exact bara de taskuri i meniul Start.

Fig. 5.10. Interfaa grafic Windows 98 Windows 98 i propune s introduc n Windows 95 faciliti pentru Internet, fr ca acesta s necesite o nou instruire a utilizatorului. n acest scop, My Computer, Network Neighborhood, meniul Start i alte elemente ale interfeei cu utilizatorul s-au mbogit cu elemente Web. n loc s afieze funcii suplimentare n fruntea sistemului de operare i s 71

Capitolul 5 - Windows modifice interfaa cu utilizatorul, Windows 98 ofer o metod unic, mai simpl, pentru accesul la informaii indiferent dac acestea sunt stocate n calculator, n reeaua local (LAN) sau n Internet. Windows 98 introduce elemente de conectare la Web prin mbuntirile aduse meniului Start i barei de taskuri. Principalele funcionaliti adugate meniului Start i barei de taskuri sunt: - meniul Start execut taskuri Web n meniul Start apar noi comenzi pentru Favorites i o nou comand Find, numit On The Internet, care ajut la gsirea siteurilor vizitate frecvent. - personalizarea meniului Start acum se poate personaliza meniul Favorites, ntregul meniu Programs i chiar partea superioar a meniului Start, prin manevre de tragere i plasare cu mouse-ul - posibiliti de extindere a barei de taskuri bara de taskuri a devenit deschis i expandabil, cu o bar de adrese prestabilite pentru introducerea adreselor Web.

Butonul Start din Windows 98 este mult mai mult dect un simplu lansator de programe. Meniul Programs derulat din butonul Start permite lansarea programelor la fel de rapid ca i pn acum, precum i modificarea ordinii n care sunt afiate programele i grupurile de programe.

72

Sisteme operaionale Meniul Favorites afieaz site-urile favorite din Internet i alte dosare sau fiiere pe care utilizatorul le deschide n mod frecvent. Meniul Documents afiat de butonul Start conine o list cu ultimele 15 documente deschise. Acest meniu ofer acces rapid la informaiile cu care s-a lucrat recent, evitnd cutrile care necesit timp i rbdare. Meniul Settings afiat de butonul Start prezint noua comand Settings Wizard, alturi de comenzile Control Panel i Printers din Windows 95. Comanda Find din meniul Start al mediului Windows 98 conine dou elemente noi: comenzile On The Internet i People, alturi de comenzile: Files Or Folders i Computer care existau n Windows 95. Caseta de dialog Find pentru fiiere i dosare conine urmtoarele opiuni pentru cutare: - cutri pe baza denumirilor pariale - cutri pe baza ultimei modificri - cutri pe baza unui text - salvarea rezultatelor cutrii - gestionarea fiierelor n panoul cu rezultatele cutrii. Sistemul de asisten a fost revizuit pentru Windows 98 i este uor accesibil cu butonul Start. Interfaa cu utilizatorul s-a modificat fa de formatul Help standard, semnnd acum cu o interfa pentru Web. Acest nou format conine legturi ctre sistemele Help existente n Internet. Comanda Run lansat de butonul Start ofer posibiliti superioare de utilizare, de tip linie de comand. Comanda Log Off ajut la schimbarea rapid a utilizatorului, i nlocuiete vechea opiune Close All Programs And Log On As a Different User existent n caseta de dialog Shutdown din Windows 95.

Opiunea Shutdown ofer un acces simplu i sigur la comenzile Shut Down, Restart i Restart In MS-DOS Mode.

Meniul Start mai include dou mbuntiri: - posibilitatea utilizrii tehnicii de tragere i plasare - afiarea unui meniu de comenzi rapide Sarcina barei de taskuri este de a face comutarea ntre diverse aplicaii, o operaie la fel de simpl ca i schimbarea canalelor de televizor. Fiecare fereastr deschis are un buton pe bara de taskuri. Comutarea ntre aplicaii este o operaie simpl, care const n executarea unui clic pe canalul corespunztor de pe bara de taskuri.

n Windows 98, n afar de butoanele pentru rularea aplicaiilor i pentru deschiderea dosarelor, bara de taskuri poate conine mai multe bare cu instrumente. Butoanele barei de taskuri sunt redimensionate n mod automat, n funcie de numrul de aplicaii active. Windows 98 include o serie de opiuni pentru lucrul cu barele de instrumente de pe bara de taskuri: 73

Capitolul 5 - Windows crearea unei noi bare cu instrumente modificarea aspectului butoanelor din barele cu instrumente redimensionarea barelor cu instrumente de pe bara de taskuri poziionarea barelor cu instrumente de pe bara de taskuri combinarea barelor cu instrumente provenite de pe bara de taskuri

Cu un singur program Microsoft Explorer, procesul de gsire a unor informaii este unificat, astfel nct se pot vizualiza date din calculatorul propriu, din reea, din intranet i din Internet, folosind acelai instrument. Windows Explorer este acum un program puternic, flexibil, eficient i extensibil. Dintre cele mai importante caracteristici din Windows Explorer pot fi enumerate: - afiarea unei multitudini de informaii ntr-o singur fereastr - flexibilitate i adaptabilitate (se poate opta pentru a vedea coninutul dosarelor n mai multe feluri, inclusiv n modurile de afiare Large Icon, Small Icon i Details) - o bogie de informaii despre obiecte n modul de afiare Details Navigarea prin reea se realizeaz cu ajutorul aplicaiei Network Neighborhod, accesibil de pe suprafaa de lucru.

empty

full

Fiierele terse din Windows 98 sau din casetele de dialog obinuite ale aplicaiilor de care aparin ajung n Recycle Bin, de unde pot fi recuperate. Aplicaia Recycle Bin indic n mod grafic dac este gol coul de gunoi sau conine ceva. Windows 98 are o funcie undo cu mai multe niveluri, care permit anularea a uneia sau a mai multor aciuni anterioare (tergerea, redenumirea, mutarea sau copierea fiierelor).

Sistemul de asisten on-line din Windows 98 aduce cteva elemente noi. Fiierele Help din Windows pot fi scrise acum ca pagini HTML, cu toate atributele controalelor ActiveX, cu animaii i legturi. Cele mai importante caracteristici ale sistemului Help din Windows 98 sunt: - interfaa tip Web - eticheta Contents - etichete Index - butoanele Hide i Show - butonul Print - butoanele de comenzi rapide - butonul Whats This ?

74

Sisteme operaionale

Fig.5.11. Fereastra Control Panel la Windows 98 Fereastra Control Panel (fig.5.11.) concentreaz toate comenzile, controalele i funciile de configurare ntr-un singur loc. Instrumentul Display din Control Panel controleaz configuraia interfeei grafice a mediului Windows 98, permind personalizarea acesteia de ctre utilizator. Dosarul Printers ofer posibilitatea selectrii rapide a opiunilor de administrare i configurare a imprimantei. Dosarul Fontts din directorul Windows reprezint unicul loc unde pot fi instalate sau manipulate toate fonturile utilizate de sistem. Operaiile cu fonturi pot fi efectuate n acelai mod ca i n cazul altor obiecte de tip fiier de sistem. 5.2.2. Faciliti pentru lucrul n reea Windows 98 a fost construit pentru a rspunde cerinelor administratorilor de reea din cadrul firmelor, avnd o arhitectur de reea pe 32 de bii, bine integrat, cu performane superioare. Windows 98 este orientat i spre utilizator, astfel c accesul i controlul reelei se desfoar coerent, iar cutarea i tiprirea n reea sunt operaii uor de executat. n plus, Windows 98 rspunde nevoii de mobilitate a utilizatorului, permind accesul la reea de la distan, prin calculatoare portabile. Unul dintre obiectivele principale ale sistemului de operare Windows 98 n privina reelelor este asigurarea compatibilitii. Compatibilitatea implic att continuarea asigurrii suportului pentru componentele existente, n modul real, ct i asigurarea compatibilitii ntre noile componente din Windows 98, pe 32 de bii, n modul protejat, i aplicaiile i driverele pe 16 bii sub MS-DOS, precum i cu aplicaiile i bibliotecile DLL pe 16 bii sub Windows. Principalele faciliti pentru reea din Windows 98 sunt urmtoarele: arhitectur de reea pe 32 de bii, robust, deschis, de nalt performan, cu software client pe 32 de bii pentru reea, software pe 32 de bii pentru partajarea fiierelor i pentru tiprirea n reea, protocoale de reea pe 32 de bii i drivere pe 32 de bii pentru plcile de reea; 75

Capitolul 5 - Windows posibilitatea de a folosi simultan mai multe redirectoare, mai multe protocoale i mai multe drivere pentru plcile de reea, care faciliteaz integrarea suprafeei de lucru ntr-un mediu eterogen de reea; suport pentru conectivitate pe baza standardelor industriale i soluii de gestionare a sistemelor, inclusiv TCP/IP, IPX, SNMP i DMI; integrarea complet cu Novell NetWare, inclusiv software client compatibil NetWare, pe 32 de bii, n modul protejat, pentru conectarea la servere NetWare 5.x i 4.x i partajare n mod peer-to-peer n medii NetWare; integrare complet cu Microsoft Windows NT Server cu posibilitatea utilizrii unei soluii client/server puternice; faciliti integrate pentru gestionarea sistemului, inclusiv posibilitatea de administrare de la distan, monitorizare i urmrire a configuraiei calculatoarelor din reea; posibilitate de acces la reea prin acces telefonic, oferind acces de la distan n servere din reele Microsoft, Novell NetWare i UNIX i suport pentru protocoale de acces de la distan, cum ar fi PPP, PPTP i SLIP; simplitatea conectrii i configurrii imprimantelor pentru tiprirea n reea.

Windows 98 poate s lucreze simultan cu pn la 10 clieni de reea pe 32 de bii, n modul protejat, prin intermediul interfeei NPI (Network Provider Interface). Aceasta definete un set de interfee API, folosite de Windows 98 pentru accesul la reea i executarea unor operaii cum ar fi deschiderea unei sesiuni de lucru a serverului, cutarea n servere, conectarea la servere. Arhitectura de reea din Windows 98 asigur faciliti pentru lucrul n reea i integrare de nivel superior. Elementele chieie ale arhitecturii de reea din Windows 98 sun urmtoarele (fig.5.12.): drivere rapide pe 32 de bii pentru dispozitive virtuale (VxD) componentele de reea din Windows 98 sunt incluse ca drivere VxD pe 32 de bii, cu amprenta zero n memoria convenional, i sunt ncrcate dinamic atunci cnd sunt necesare sistemului; fiabilitate conflictele din memorie sau ncercrile de nlnuire exclusiv a aceluiai set de ntreruperi, care conduc de regul la blocri de sistem sau la mesaje de eroare, nu apar i la componentele de reea n modul protejat, deoarece Windows 98 arbitreaz alocarea resurselor hardware; design modular, deschis arhitectura de reea din Windows 98 este modular i conine o interfa Network Provider Interface, o interfa IFS (Installable File System) i versiunea 4.1 a specificaiei NDIS (Network Driver Interface Specification); suport pentru mai multe tipuri de reele Windows 98 accept diferii furnizori de reea, diferite redirectoare de reea, concepute pentru interfee IFS i diferite drivere NDIS. Windows 98 accept utilizarea simultan a mai multor clieni de reea pe 32 de bii n modul protejat i a unui client de reea n modul real; suport pentru mai multe protocoale Windows 98 include suport pentru IPX/SPX, TCP/IP i NetBEUI; Plug and Play toate componentele de reea din Windows 98 sunt concepute pentru autoconfigurare dinamic.

76

Sisteme operaionale

Interfa de aplicaie Furnizori de servicii de reea Redirectoarele Interfaa de programare a transferurilor Protocol de transfer Interfaa pentru driverele de dispozitiv

Win 32 Winnet interface Winnet 16

Win 32 print APIS Windows NP/PP

Net Ware NP/PP IFS Manager

Windows networking (SMB)

NetWare-compatible (NCP)

Windows Sockets NetBIOS NetBEUI IPS/SPX NDIS 4.1 NDIS 2.0 ODI TCP/IP

Fig. 5.12. Arhitectura de reea Windows 98 Windows 98 are o interfa modular, deschis, numit Network Provider Interface (NPI), care permite instalarea simultan sub Windows 98 a mai multor reele. Interfaa NPI prezint urmtoarele avantaje: -interfaa deschis permite productorilor de software s realizeze programe bine integrate n Windows pentru serverele lor de reea -toate reelele acceptate sunt accesate i administrate n mod similar, prin interfaa cu utilizatorul Network Neighborhood din Windows 98. 5.2.3. Servicii multimedia Windows 98 este o platform multimedia complet, care permite transformarea oricrui calculator ntr-un aparat multimedia uor de utilizat. Arhitectura Plug and Play simplific instalarea i utilizarea dispozitivelor compatibile multimedia, fiind totodat compatibil cu programele i instrumentele multimedia create pentru versiunile anterioare de Windows. Windows 98 permite creatorilor de software recreativ s realizeze repede i uor jocuri distractive, moderne, rapide, cu caracteristici grafice deosebite. Sistemul de operare ofer suport pentru tehnologii de ultim or din domeniul graficii de tip rastru 2-D, al randrii tridimensionale i al sonorizrii digitale, care reprezint elementele cheie n dezvoltarea jocurilor pe calculator. Pentru programatori, Windows 98 reprezint o platform puternic pentru crearea unor aplicaii multimedia profesionale. Arhitectura pe 32 de bii a mediului Windows 98 exploateaz la maximum posibilitile oferite de calculatoare n domeniul multimedia, astfel nct programatorii pot cpta imagini video i sunete digitale de o calitate superioar. Arhitectura multitasking din Windows 98 constituie un mediu de lucru convenabil pentru creatorii de multimedia. Arhitectura modernizat a subsistemului din Windows 98 pentru fiiere video i audio digitale, pentru interfaa MIDI i pentru gestionarea fiierelor, le permite autorilor 77

Capitolul 5 - Windows i creatorilor de instrumente s realizeze efecte sonore, video i de animaie de calitate profesional. Tehnologia multimedia din Windows 98 este complet compatibil cu programele multimedia pe 16 bii. Facilitile Plug and Play din Windows 98 simplific procesul de instalare a unui nou dispozitiv multimedia n calculator, inclusiv instalarea dispozitivelor multimedia mai vechi, prin includerea de instrumente care permit identificarea i rezolvarea conflictelor ntre dispozitivele de tip mai vechi care nu sunt compatibile cu standardul Plug and Play. Printre mbuntirile tehnologiilor multimedia pot fi amintite facilitile: AutoPlay, facilitile integrate pentru un sistem video digital, precum i facilitile integrate pentru sunet i fiiere MIDI. Aplicaia CD Player n Windows 98 ofer multe din facilitile unor aparate CD Player complexe, cum ar fi redarea aleatorie, programarea ordinii de redare i posibilitatea de salvare a acestei programri. Windows 98 cuprinde i un sistem de fiiere pe 32 de bii (CDFS) pentru citirea fiierelor din unitatea de CD-ROM ct mai rapid i ct mai eficient posibil. Windows 98 cuprinde un set de interfee API pentru aplicaii grafice, Microsoft Direct X5. Interfeele API din pachetul Direct X5 permit accesul la noi funcionaliti hardware, cum ar fi utilizarea mai multor monitoare, a unei magistrale seriale universale pentru jocuri i dispozitive audio, soluii de optimizare MMX, accelerator de sunet 3-D, faciliti de randare cum ar fi netezirea i filtrarea texturilor anizotrope. n afar de faptul c permite utilizatorilor s asculte compact-discurile muzicale preferate, Windows 98 este compatibil cu noul format CD Plus, conceput de Sony Corporation i Philips International, care permite integrarea pieselor muzicale i a datelor pe acelai CD. Formatul CD Plus beneficiaz de seria de faciliti integrate n Windows 98 pentru a face domeniul multimedia mult mai atractiv, inclusiv de facilitatea AutoPlay i de subsistemele multimedia pe 32 de bii care permit o redare de nalt fidelitate. DirectShow este o nou arhiectur Windows pentru transmisii n flux care permit redri video de nalt calitate, asigurnd n acelai timp un set extensibil de interfee pentru dezvoltarea aplicaiilor i instrumentelor de multimedia. Facilitile integrate n Windows 98 pentru MIDI fac i platforma Windows o soluie viabil pentru produciile audio i pentru controlul echipamentelor. WinToon este un instrument pentru redarea animrilor sub Windows 98, care permite crearea unor prezentri multimedia animate, cu afiare pe ntreg ecranul, mbuntind calitatea i viteza de redare. Programul poate fi ncorporat uor n aplicaiile multimedia de pe CD-ROM.. Pentru a simplifica problema stocrii i redrii secvenelor sonore din cadrul aplicaiilor, Windows 98 include un set de tehnologii pentru comprimarea sunetului. Aceste codecuri pot fi mprite n dou mari grupe: codecuri pentru muzic (care permit comprimarea unui sunet apropiat de calitatea CD la circa un sfert din volumul su iniial ) i codecuri pentru voce ( care permit o comprimare extrem de eficient a datelor referitoare la voce ). Sistemul multitasking face din Windows 98 o platform atractiv pentru producii multimedia. Crearea unui material multimedia solicit intens Windows 98, creatorii pot pstra controlul asupra calculatorului, chiar i atunci cnd este n desfurarea unui proces complicat de comprimare. Subsistemele din Windows 98 pentru video digital, audio digital, MIDI i pentru gestionarea fiierelor reprezint o platform ideal pentru realizarea unor efecte video, audio i de animaie de nalt calitate. Deoarece n Windows 98 datele pot fi scrise pe disc mult mai repede, creatorii pot capta secvene video de calitate superioar mai mari, cu mai multe cadre pe secund, i mai colorate. Windows 98 include faciliti pentru dispozitive specifice creaiei multimedia, cum ar fi discurile laser i video recordere. Aceste faciliti simplific procesul de configurare a sistemului pentru capturare secvenial, un procedeu prin care creatorul captureaz date video digitale pentru cte un cadru , urmnd ca acesta s fie comprimate. Capturarea secvenial este un proces 78

Sisteme operaionale lent, dar reprezint cea mai buna metod pentru capturarea unor imagini video digitale de nalt calitate. Windows 98 este compatibil cu dispozitivele DVD, incluznd tipurile audio, video i de sistem. Windows 98 include o aplicaie DVD Player, care poate fi folosit pentru a vizualiza datele de pe discuri DVD. Utilizatorii care au o plac NTSC (National Television System Committee) sau PAL (Phase Alternation Line) instalat n calculator, pot s urmreasc programele TV ntr-o fereastr de pe suprafaa de lucru. Microsoft Windows 98 conine o aplicaie numit TV Viewer, care furnizeaz software-ul necesar pentru recepionarea semnalelor TV pe ecranul calculatorului. Semnalele pot proveni de la un post de emisie TV prin anten, de la o reea de televiziune prin cablu sau de la un satelit de transmisie direct DIRECTIV (DBS direct broadcast satellite). Pentru a folosi toate facilitile oferite de TV Viewer, trebuie ca utilizatorul s fie conectat la DIRECTIV. Meniul TV poate fi folosi pentru: afiarea programului TV; subscrierea n vederea urmririi programelor TV; introducerea unor restricii pentru utilizatorii softului; crearea unei liste personale cu canale; selectarea rapid a canalului preferat; adugarea sau eliminarea unor canale; solicitarea de asisten. Subscrierea n vederea urmririi emisiunilor TV este important n cazul n care au fost introduse restricii pentru utilizarea softului de ctre unii membrii ai familiei. Dac s-au stabilit restricii i cineva urmrete emisiunile TV fr s subscrie, o face n calitate de invitat. Un invitat are cele mai restrictive privilegii de vizionare i nu poate urmri dect emisiunile accesibile tuturor. Program Guide reprezint programul emisiunilor de televiziune i conine o gril n care toate canalele sunt afiate n partea stng i orele de transmisie n partea superioar. Ghidul TV poate fi parcurs pentru a vedea ce emisiuni sunt transmise sau poate fi cutat un anumit program executnd clic pe Search. Exist posibilitatea de a cuta relurile unor emisiuni i de a insera signete pentru programe care l intereseaz pe utilizator. Dup ce utilizatorul ncepe s urmreasc emisiunile TV pe calculator, i se ofer posibilitatea de a ncrca ghidul TV pentru programe locale. Ghidul TV afieaz emisiunile difuzate la ora curent a zilei respective, precum i emisiunile din ziua urmtoare sau din alt zi a sptmnii. Aplicaia TV Viewer poate afia o serie de pictograme, care reprezint modalitatea grafic de a oferi informaii rapide, fr a distrage atenia. De asemenea, are o serie de controale care pot fi folosite n timpul vizionrii. Ghidul TV ofer o metod pentru gsirea rapid a unei anumite emisiuni, fr a derula toat lista de programe. Se poate cuta o anumita emisiune, o categorie de emisiuni sau un anumit canal. Dup ce TV Viewer afieaz rezultatele cutrii, acesta pot fi ordonate fie n ordine alfabetic, dup titlul emisiunilor, fie cronologic, dup or i dat. Se poate crea o list personal de canale care conine canale accesibile fiecrui telespectator. nainte de a fi modificat, lista include toate canalele din toate sursele video disponibile (reea, cablu sau satelit). Dac se introduc restricii pentru vizionarea, lista de canale va conine numai canalele accesibile fr restricii.n bara cu instrumente TV pot fi incluse cinci dintre canalele preferate pentru a avea acces rapid la ele. n Program Guide pot fi incluse signete care s semnalizeze urmtoarele tipuri de emisiuni: o emisiune special, o emisiune zilnic, o emisiune din zilele de lucru sau o emisiune

79

Capitolul 5 - Windows sptmnal. Signetul poate fi stabilit s apar pe ecran cu 5 sau 10 minute nainte de ora de ncepere a emisiunii. Dac utilizatorul are probleme la rularea aplicaiei TV Viewer, poate consulta seciunea Troubleshooting din sistemul de asisten on line. 5.3. Windows 2000 Windows 95/98 i NT desprite n ultimii ani, sunt combinate n noul produs universal Windows 2000, dotat pentru aplicaii profesionale, multimedia, jocuri cu o mare amprent asupra securitii datelor. Windows este considerat cel puin ncepnd cu versiunea 98, ca un sistem de operare destul de stabil. La Windows NT, acest lucru a stat n fruntea prioritilor dezvoltatorilor, chiar ncepnd cu versiunea 5.1. Productorii au ncercat s elimine din Windows 2000, ecranul albastru la declanarea unor erori vitale (suprnumit i Blue Screen of Death) folosind verificarea automat a registrelor, realiznd automat un backup al celor mai importante DLL-uri, afectnd domenii strict delimitate pentru aplicaiile ncrcate i implementnd noile sisteme de fiiere FAT 32 i NTFS 5. Din experiena ctigat cu Windows 95/98 i NT, una dintre prioritile din Windows 2000 a fost interzicerea suprascrierii fiierelor de sistem. Aplicaiile i driverele de la teri productori, i vor stoca fiierele de sistem n directori proprii, de unde vor putea fi terse ulterior. Microsoft a prevzut toate fiierele de pe CD-ul Windows 2000 cu o semntura digital pe care o verific sistemul de operare la instalare. n cazul n care se folosesc drivere suplimentare care nu dein aceasta semntura, va aprea un mesaj de avertisment; se poate dezactiva verificarea semnturii fiierelor, sau se poate seta n aa fel nct Windows s nu accepte driverele nesemnate. Ideea este de a minimiza pericolul blocrilor ca urmare a driverelor care nu funcioneaz. Aceasta este o problem major n Windows 95/98, unde blocarea sistemului de operare se datora uneori, driverelor provenite de la diveri furnizori. n timp ce Windows NT ofer pentru un start sigur modul VGA i revenirea la ultima configuraie funcional recunoscut, n Windows 2000 exist un meniu de boot extins care apare la start dup ce se apas tasta F8. Aceasta const n principal din aceleai nregistrri ca i n meniul din Windows 95/98: Safe Mode (ncarc Windows cu o configuraie minimal a driverelor); Safe Mode cu drivere de reea (ncarc n plus suportul de reea pentru Windows 2000); Safe Mode cu solicitare de introducere a datelor (pornete Windows 2000 cu o configuraie minimal a driverelor i renun la ncrcarea interfeei grafice, ajungndu-se n modul linie de comand); activare protocol de start (lansarea i executarea serviciilor i a driverelor); activarea modului VGA (lanseaz Windows cu driverul standard VGA); ultima configuraie funcional cunoscut (folosete setrile ultimului proces de boot reuit); restaurarea serviciului de directoare (controller de domeniu Windows 2000 care activeaz noile servicii directoare din Windows 2000 e posibil astfel accesarea sistemului prin intermediul unei reele); lansarea normal (Windows booteaz cu toate driverele i uneltele de sistem). Dei Windows 2000 ofer posibilitatea crerii unei dischete de boot, se pot accesa datele de pe o partiie NTFS i cu ajutorul unei dischete DOS i al unui program suplimentar precum NTFS Dos. Pentru a mpiedica un acces neautorizat, a fost integrat funcia de criptare n timp real a directoarelor i fiierelor. Aceasta este asemntoare cu funcia de comprimare existent n NT 4. Se activeaz atributul corespunztor din Properties din meniul contextual al unui fiier sau director, iar n final toate fiierele din directorul respectiv vor fi criptate automat. Windows 2000 folosete un generator de cod aleator. Utilizatorul autorizat va putea accesa apoi fiierele la fel ca nainte. Dac se copiaz ulterior i alte fiiere in acest director, Windows le va codifica i pe acestea. Criptarea funcioneaz numai cu cel mai nou sistem de fiiere NTFS 5, nu i cu FAT si 80

Sisteme operaionale FAT 32. Sistemul creeaz automat un certificat de securitate pentru utilizatorul actual, cu ajutorul cruia va putea cripta fiierele sale. n cazul n care este permis accesul mai multor utilizatori la acelai fiier criptat, respectivul certificat poate fi transmis i acestora. Microsoft a integrat NTFS 5 n Windows 2000 incompatibil cu predecesorul sau NTFS din Windows NT 4. Cu Windows 2000, administratorul are posibilitatea de a acorda fiecrui utilizator un anumit spaiu de stocare pe partiie. nainte de epuizarea acestui spaiu, utilizatorul este avertizat. Dup aceea, sistemul nu mai accept stocarea datelor utilizatorului respectiv. De asemenea, este posibil codificarea directoarelor i fiierelor automat si in timp real. Sistemul de operare poate atribui o unitate de disc oarecare unui director vid dintr-o partiie NTFS. n acest fel se poate atribui, de exemplu unitatea CD-ROM directorului C:\CDROM. Este anulata astfel limitarea la cele 26 litere ale alfabetului pentru unitile de disc. Un alt lucru important introdus de noul sistem de fiiere este USN-Journal (Update Sequence Number) ce reprezint un cod care preia modificrile fiecrui fiier i director; codurile sunt stocate n Windows 2000 ntr-o baza de date i anume USN-Journal, care este utilizabil pentru orice program. Cu ajutorul acestui jurnal pot fi realizate de exemplu, programe de backup eficiente. Un utilizator obinuit, cu drepturi limitate n Windows 2000, nu va simi o prea mare diferen fa de Windows 95/98. Exista n continuare obinuitul taskbar (bara de lucru) i butonul de start. Nici n ceea ce privete desktop-ul nu sunt modificri, fcnd abstracie de pictogramele care au suferit unele modificri. n schimb, un administrator va trebui sa se adapteze cu noua configurare a sistemului, mai clar dect Windows NT i cu mai multe posibiliti; funciile ns, nu se mai gsesc n acelai loc. Nucleul administrrii Windows 2000 l reprezint Microsoft Management Console(MMC) care se gsete sub denumirea de Computer Management, apelabil din Control Panel/Administrative Tools, ori prin intermediul meniului contextual din My Computer. MMC reunete sub o singur interfa Device Manager , informaiile de sistem din Windows 95/98 i programele de configurare care se afl n Windows NT, directorul Administrative Tools(Common). MMC este mprit n trei domenii: System Tools Storage Services and Aplications Exist ns posibilitatea adugrii de snap-in-uri. Din System Tools fac parte: Event Viewer System Information un nou director Performance Logs and Alerts directorul Shared Folders(permite controlul partajrii resurselor pe fiecare disc) Device Manager Local Users and Groups, corespunztor utilizatorilor din NT. n Storage se gsete: managerul de hard disc programul de defragmentare nou ataat privirea de ansamblu asupra unitilor logice (Logical Drives) i directorul Removable Storage care permite gestionarea comun a unitilor CD-ROM, DAT, ZIP i a celorlalte unitti de acest fel. Services and Aplications conine alturi de o privire de ansamblu asupra serviciilor i a noii funcii de indexare, instrumentaia de administrare Windows(Windows Management Instrumentation-WMI), care se refer la achiziia on-line de date despre dispozitive i posibilitatea monitorizrii funcionrii acestora. O serie de programe incluse n MMC apar i separat, n meniuri contextuale pe desktop, n meniul de Start i n Control Panel. 81

Capitolul 5 - Windows Windows 2000 este optimizat pentru utilizarea n reea, incluznd noi funcii, n idea de a securiza conexiunile de reea cu utilizatorii aflai la distan mare. Astfel, este integrat protocolul PPTP (Point-to-Point Tunneling Protocol) i L2TP (Layer 2 Tunneling Protocol), ceea ce permite crearea reelelor private virtuale(VPN). Conexiunea on-line comun ncepnd de la grupuri de lucru mai mici este permis deja n Windows 98 SE prin Internet Connection Sharing, ea gsindu-se i n Windows 2000. Cu ajutorul acestei funcii este posibil realizarea de conexiuni la Internet printr-un modem utilizat n comun. Pentru administrarea reelelor mari sunt importante Active Directory i IntelliMirror: Active Directory permite n cutarea de calculatoare, imprimante sau persoane n ntreaga reea sau n imediata apropiere; IntelliMirror permite att deservirea de la distan a workstation-urilor, ct i stocarea pe server de profiluri detaliate de utilizatori. Reeaua poate fi configurat n aa fel nct fiecare utilizator poate gsi pe orice calculator setrile personale. n momentul n care se conecteaz n reea, Windows 2000 configureaz att desktop-ul personalizat ct i aplicaiile (Microsoft a unificat setrile de reea Dial-up Networking i accesul RAS care pot fi accesate prin Properties din meniul contextual al Network Neighborhood), astfel nct configurarea reelei cu adaptor, protocoale, etc., nu mai poate fi accesat direct prin meniul contextual din Network Neighborhood, ci numai prin Local Area Connection/Properties din acest meniu. Astfel, la conectarea cu alte calculatoare din reea, este posibil alegerea unui alt nume de utilizator i a parolei; nu este necesar conectarea la propriul calculator cu numele de utilizator corespunztor care s fie acceptat i de ctre calculatorul respectiv. Microsoft a extins grupul de accesorii n Windows 2000; sistemul este dotat i cu Internet Explorer 5, Outlook Express 2000, un nou program de fax (care ns conine numai funciile de baz), Media Player versiunea 6.4 care poate rula majoritatea formatelor video i audio rspndite, printre care se numr i fiierele MP5. O noutate este Audio-CD-Player-Deluxe, care ofer numeroase setri pentru redare (cum ar fi modul Shuffle), susinnd chiar i anumite opiuni precum identificarea CD-urilor prin baze de date din Internet i cutarea recenziilor pe site-urile revistelor Rolling Stone i Billboard. O alt noutate este programul de defragmentare. El se bazeaz pe shareware-ul Diskkeeper Lite i lucreaz cu fiiere att de pe partiii NTFS, ct i pe uniti FAT i FAT32. Programul de backup din NT este nlocuit printr-un program cu facilitatea de control a discurilor de stocare ce pot fi scoase din sistem i posibilitatea de verificare a fiierelor mai rar folosite; acesta permite un control programat n timp al backup-urilor. Programul creeaz opional i o dischet de recuperare a informaiilor vitale prezente n sistem. Funcia de cutare ruleaz printr-o interfa HTML i utilizeaz opional pentru accelerare, un index care preia coninutul fiierelor pe unitatea local. Acest lucru funcioneaz ns numai pe partiii NTFS. n funcie de sistemul Windows rulat pe calculator resursele vor fi urmtoarele: [ Windows 2000 Professional: procesor Pentium la 133 MHz, 64 M RAM, 650 M spaiu liber de stocare pe un hard disc de minim 2 G; [ Windows 2000 Server: procesor Pentium la 133 MHz, 256 M RAM, 1 G spaiu liber de stocare pe un hard disc de 2 G; [ Windows 2000 Advanced Server: procesor la 133 MHz, 256 M RAM, 1 G spaiu liber de stocare pe un hard disc de cel puin 2 G. Windows 2000 este un sistem de operare multiprocesor, suportnd 2,4 i 8 procesoare pe acelai calculator; Windows 2000 conine n versiunea complet drivere pentru hardware obinuit, ceea ce nseamn chip-uri grafice 3D moderne, uniti DVD, plci de sunet sau diferite chipseturi de plci de baz. n plus, exist posibilitatea de a verifica produsele care sunt compatibile cu Windows 2000. Driverele pentru hardware-ul nou urmeaz modelul WDM (Win32 Driver Model), care permite utilizarea software-ului i sub Windows 98. n afar de 82

Sisteme operaionale driverele WMD, Windows 2000 suport i drivere scrise pentru Windows NT 4, dar pentru acest hardware nu ofer suport Plug&Play. Dintre facilitile multimedia, Windows 2000 poate configura redarea digital a CDurilor audio. Astfel, datele de sunet nu mai ajung prin cablul analogic la placa de sunet, ci prin bus-ul PCI sau ISA. Cablul audio nu mai este necesar, dar este nevoie ca i unitatea CD-ROM s suporte aceast facilitate. Sunt recunoscute fr probleme o mulime de componente care apoi sunt integrate n sistem. n plus, fa de Windows NT, exist i suport pentru joystick. Pentru instalarea scanerelor i a camerelor digitale, exist o nregistrare n Control Panel de unde poate fi apelat o list cu aparate suportate (circa 50 de modele). Integrarea unui nou hardware se efectueaz mult mai rapid comparativ cu Windows 98. Numai n cteva cazuri este necesar o repornire a sistemului. Aceasta nu este solicitat nici la adugarea unui protocol sau la modificarea unui driver pentru placa de reea. Funciile din Windows 95/98 i NT pentru sincronizarea fiierelor cu un Notebook au fost extinse i n Windows 2000. Nu mai exist Briefcase, n schimb la accesarea directorului Network Neighborhood n meniul contextual al Explorer-ului se gsete comanda Make Available Offline. Prin intermediul comenzii Synchronize din meniul Start poate fi reglementat sincronizarea datelor i actualizarea de pagini Web. Pentru utilizarea pe notebook-uri, Windows 2000 pune la dispoziie standardul ACPI. Setrile corespund n mare celor din Windows 98, dar au fost extinse cu alte scheme de energie pentru un consum minim al bateriei; o noutate o constituie modul Hibernate care salveaz stadiul actual al aplicaiilor deschise, restaurndu-l automat la repornirea Windows-ului. Pentru cei care cltoresc n SUA exist posibilitatea de tiprire prin Internet. Acolo exist mai multe hoteluri care ofer clienilor o imprimant de reea care poate fi controlat printr-un URL. n ceea ce privete aplicaiile multimedia i jocurile, Windows 2000 are cea mai nou versiune de Direct X, lucreaz cu plci de sunet noi i recunoate un numr nsemnat de joystick-uri. Singurul impediment l constituie jocurile DOS care nu mai pot rula i n Windows 2000, pentru c acesta nu mai accept compatibilitatea cu programele DOS (amnunte despre facilitile Direct X pentru Windows 2000 poate apela programul DxDiag.exe din directorul WINNT/System32). Cu toate c Windows 2000 ruleaz bine pe calculatoare cu mai mult de 300 MHz, software-ul de player DVD integrat poate fi instalat numai dac sistemul recunoate o plac MPEG. Help-ul din Windows recomand pentru DVD instalarea unei plci MPEG sau trecerea la un decodor software, lucru care nu este necesar n cazul procesoarelor Pentium III. Windows 2000 reunete securitatea i stabilitatea din Windows NT cu facilitile multimedia i confortul din Windows 98. Comenzile i funciile care se leag din punct de vedere tematic, se gsesc n acelai director. Cutarea unui dialog pentru instalarea unui nou driver a fost eliminat. Device Manager din Windows NT a fost nlocuit cu cel din 98 mult mai intuitiv. n Windows 2000, Microsoft a unificat elemente din sistemele de operare Windows 95/98 i NT. Dac programele pentru Windows 95/98 erau destinate n special utilizatorilor particulari, NT este dedicat n primul rnd profesionitilor care au nevoie de o securitate crescut a datelor i care lucreaz ntr-o reea. Avantajele oferite de Windows 2000 pentru utilizatorii Windows 95/98 se pot rezuma astfel: [ Sistemul de operare va rula fr probleme pe un calculator cu dotare modern i toate componentele vor fi recunoscute i integrate n sistem. Nu sunt necesare alte investiii pentru hardware; [ Setup-ul i instalarea altor componente se va desfura mai simplu dect n Windows 98, datorit facilitilor Plug&Play mbuntite; exist o serie de asisteni care ofer ajutor n caz de nevoie; 83

Capitolul 5 - Windows [ Conexiunea la Internet sau chiar la o mic reea este simplificat; [ Windows 2000 ofer faciliti multimedia mbuntite fa de Windows 98; [ Interfaa nu presupune o perioada de acomodare, fiind asemntoare cu cea din Windows 98 cu Internet Explorer 5; [ Blocrile sunt rare datorit mecanismului de protecie, sistemul rezistnd la instalarea unor programe obscure, care puneau n pericol versiunile anterioare; [ Datorit profilurilor de utilizatori departajate, Windows 2000 este mai bine protejat mpotriva comenzilor eronate, iar datele importante pot fi bine protejate mpotriva tergerii lor; totodat, accesul la Internet poate fi limitat pentru anumite persoane. Dezavantajele folosirii Windows 2000 n cazul utilizatorilor Windows 95/98 va fi: [ Windows 2000 cost mult mai mult ca Windows 98; [ Noile funcii de administrator sunt mai greu de neles de ctre neiniiai; [ Windows 2000 lucreaz mai lent dect 98 innd cont de cerinele hardware mai ridicate; [ Jocurile DOS nu ruleaz sub Windows 2000, iar pentru jocurile 3D nu exist nc drivere Direct3D pentru toate plcile grafice. Avantajele aduse pentru utilizatorii care au folosit anterior Windows NT: [ Interfaa cu utilizatorul nu s-a prea modificat, ceea ce elimin o nou colarizare a personalului; [ Windows 2000 se instaleaz mai rapid i mai simplu ca Windows NT; [ Configurarea i ntreinerea calculatoarelor Windows 2000 este mai simpl i mai uor de urmrit; [ Windows 2000 ofer posibiliti mbuntite de administrare n reea. O serie ntreag de sarcini pot fi rezolvate central, economisindu-se astfel timp; [ Funciile pentru utilizarea pe un notebook au fost mbuntite, sincronizarea datelor fiind mai simpl i mai confortabil; [ Power Managementul din Windows 2000 este mult mbuntit fa de cel din NT, crescnd astfel timpul de lucru al unui notebook ce nu este conectat la o reea; [ Legturile cu celelalte calculatoare, prin reea sau Dial-up Networking, sunt concepute astfel nct datele confideniale sunt mai bine protejate; [ Datele confideniale pot fi protejate foarte uor prin noul sistem de fiiere NTFS5 i prin funcia sa de criptare; [ Programul de back-up integrat, permite salvarea automat a datelor de pe workstation-uri pe server, fr s fie nevoie de programe suplimentare; [ Conexiunile n reea a diferitelor staii de lucru ntre ele sau cu serverul, sunt mai flexibile dect n Windows NT; [ Va exista o versiune n mai multe limbi a lui Windows 2000, destinat utilizrii n ntreprinderi mixte, permind apelarea meniurilor i a funciei de help n orice limb. Dezavantajele regsite de utilizatorii Windows NT pentru trecerea la Windows 2000, const n: [ Dotarea actual a calculatoarelor, insuficiena staiile de lucru avnd nevoie de mai mult memorie. Achiziionarea de calculatoare Pentium II/III sau Athlon este costisitoare. Pentru lucrul mobil, este nevoie de notebook-uri noi sau de upgrade-uri la cele vechi, iar sistemele server au nevoie de mai mult memorie. [ Funciile de administrare extinse presupun o colarizare a personalului de ntreinere pentru suportul de reea.

84

SISTEMUL DE OPERARE UNIX

UNIX este un sistem de operare time -sharing universal. Principala sa caracteristic este portabilitatea - disponibilitatea sa pentru majoritatea sistemelor de calcul (supercalculatoare, mainframes, minicalculatoare, sisteme de birotic, microcalculatoare). Oportunitatea apariiei acestui sistem de operare a constat din: necesitatea standardizrii i unificrii sistemelor de operare, n special a interfeei cu utilizatorul; pstrarea n condiiile transferului pe alte sisteme de calcul, a structurii volumelor i fiierelor; asigurarea unor niveluri superioare de portabilitate a produselor - program; posibilitatea interconectrii de sisteme cu arhitecturi, tipuri i puteri diferite, sub acelai sistem de operare. independena software-ului de aplicaii, fa de evoluia hardware.

6.1. CARACTERISTICI I COMPONENTE MAJORE 6.1.1. Evoluie i caracteristici n anul 1969 apare prima versiune experimental scris n limbaj de asamblare pentru minicalculatoarele PDP-11, al firmei DEC (Digital Equipment Corporation) pentru un singur utilizator (monouser); odat cu primul compilator pentru limbajul C (1972), UNIX a fost rescris n acest limbaj cu scopul asigurrii portabilitii. n 1978 s-a realizat prima implementare comercial IS/1 (Interactive System One), urmat la scurt timp de versiunea XENIX a firmei Microsoft. n 1980, UNIX s-a impus ca principal soluie de standardizare in domeniul sistemelor de operare, reprezentnd o modalitate de realizare a sistemelor deschise pentru toate categoriile de sisteme de calcul. Dup 1981, firma AT&T elaboreaz versiunile UNIX System III i V, iar firma Berkeley Software Distribuitors (BSD) realizeaz standardele BSD 1,2,3 urmate de BSD 4.2, 4.3 i din 1993 BSD 4.4 Companiile SUN i AT&T au dezvoltat versiunea System V.4 n 1988, iar IBM, DEC i Hewlett Packard au format Open Software Foundation (OSF) independent de AT&T (fig. 6.1.).

86

Sisteme operaionale
AT & T Bell Laboratories Versiunea 6 1975

BSD Xenix

Versiunea 6

1979

System III

1982

1984

BSD 4.2

System V.2

1984 AT&T + SUN

1985

BSD 4.3

System V.3

1986

BSD 4.4 1993 influene descendeni direci

OSF /1 1992

System V.4

1988

Fig. 6.1. Evoluia sistemelor de operare UNIX Dintre principalele raiuni de utilizare se pot specifica: - existena unui limbaj de comand simplu, logic i consistent, prin care utilizatorul comunic cu sistemul de calcul, indiferent din ce categorie de sisteme de calcul face parte; - oferirea de servicii pentru dezvoltarea interactiv de programe scrise n majoritatea limbajelor de programe de nivel nalt, pentru baze de date, reele locale (LAN) i generale (WANG), inteligen artificial, statistic, simulare, etc.; - portabilitatea pe toat gama sistemelor de calcul ce lucreaz sub UNIX, deci independena de hardware; - posibilitatea de a executa mai multe sarcini simultan, pentru mai muli utilizatori concomitent, asigurnd exploatarea eficient a capacitii de prelucrare puse la dispoziie. Caracteristicile de baz se pot sintetiza astfel: - este un sistem de operare time - sharing, multiuser i multitasking; - asigur protecia fiierelor i execuiei, prin existena unor parole i drepturi de acces; - dispune de intrri/ieiri generalizate prin care operaiile de intrare/ieire sunt integrate n sistemul de fiiere; - existena unui sistem de ntreruperi logice pentru sincronizarea proceselor reentrante i asincrone multiple; - managementul spaiului afectat execuiei proceselor i controlul timpului de acces la procesele n ateptare, se face prin transferul de pagini ntre memoria RAM i cea extern; - existena unei interfee simple i interactive (SHELL) prin care se asigur dialogul utilizatorului cu sistemul de operare; - caracterul de sistem deschis este conferit de asigurarea att a portabilitii sistemului de operare, ct i a software-ului de aplicaie; - acoperirea unei vaste game de aplicaii: compilatoare, sisteme de gestiune a bazelor de date 87

Capitolul 6 Sistemul de operare UNIX (Oracle, Gupta), reele de calculatoare, inteligen artificial, simulare, gestiune, statistic, instruire asistat de calculator, etc.; - permite execuia aplicaiilor n MS-DOS, n paralel cu execuia de procese sub UNIX (submeniu pentru MS-DOS); - ntreinere i dezvoltare facil. 6.1.2. Arhitectura sistemelor de calcul ce lucreaz cu UNIX Arhitectura unui sistem de calcul din punct de vedere al funcionalitii, se prezint sub form stratificat pe trei niveluri (fig.6.2.).
Software de aplicaii Aplicaie Aplicaie utilizator utilizator Proc. tab SGBD Proc. texte CAD/CAM GAMES

Software de aplicaii Compilatoare Linkeditoare Sistem de operare NUCLEU (KERNEL) Interpreter comenzi Utilitare

Nivel fizic

Hardware Dispozitive fizice

Microprograme - microcod

Limbaj main

Fig. 6.2. Arhitectura sistemelor ce lucreaz sub Unix Cel mai inferior nivel este nivelul fizic -nivelul la care opereaz hardware-ul, acesta incluznd dispozitivele fizice, microcodul i limbajul de asamblare. Urmtorul nivel -software-ul de baz sau software-ul de sistem are ca principal component sistemul de operare avnd la baz nucleul (Kernel) alturi de editoare de texte, compilatoare, interpretere de comenzi i utilitare. Nivelul superior materializat prin software-ul aplicativ, cuprinde practic, o gam infinit de aplicaii. Este de remarcat faptul c orice nivel comunic numai cu nivelul imediat inferior sau superior, furniznd servicii pentru nivelul imediat superior. Scopul principal al sistemului de operare fiind acela de a controla resursele hardware ale sistemului, se poate aprecia c sistemul de operare acioneaz ca o interfa ntre utilizator reprezentat prin programele de aplicaie pe care acesta le lanseaz n execuie i componenta hardware (fig. 6.3.).
Software de aplicaie Utilizator Interpretor de comenzi Utilitare Nucleu Nucleu

Fig. 6.3. Sistemul de operare UNIX - interfa ntre hardware i utilizator

88

Sisteme operaionale

Interpretorul de comenzi Shell Programe aplicative Utilitare

Utilizator

Dispozitive periferice de intrare/ieire

Programe gestiune operaii de intrare/ieire

Fig. 6.4. Componentele majore ale sistemului de operare UNIX Nucleul (Kernel) este componenta care asigur servicii de sistem pentru programele de aplicaii asigurnd gestiunii proceselor, a memoriei, a intrrilor / ieirilor i a timpului; Shell - interpreterul de comenzi, reprezint mecanismul prin care sistemul de operare realizeaz interfaa ntre utilizator i sistemul de calcul; interpreterele de comenzi existente pe sistemele de operare Unix sunt: * Bourne Shell (bsh) i Bourne Again Shell (bash) al crui productor este firma AT&T; bsh a fost prima variant a interpreterelor de comenzi; * C Shell (csh) elaborat de firma Sun Microsystem; interpreterul are o sintax a comenzilor similar cu cea a limbajului C; * Korn Shell (ksh) ce se constituie ca o mbinare a variantelor anterioare. Sistemul de fiiere cuprinde programe utilitare, aplicative i de gestiune a operaiilor de intrare/ieire. Interfeele disponibile utilizatorului sunt organizate pe trei niveluri: * nivelul exterior nucleului, care poate fi accesat de ctre utilizator prin intermediul utilitarelor; * nivelul intermediar, accesat prin funcii din biblioteca limbajului C; * nivelul inferior, a crui accesare se realizeaz prin funciile de sistem (System Calls). Asemntor MS-DOS-ului care n cursul dezvoltrii sale a fost dotat cu interfeele grafice Windows, UNIX-ul a ncorporat ca principale interfee grafice: * X/Windows al firmei MIT, folosit i de SCO n versiunile Open DeskTop (ODT); * Open Look al crei productor a fost firmele AT&T i SUN; * DEC Windows a firmei DEC. Prin urmare, exist o ierarhizare a straturilor ce se interpun ntre utilizator i nucleul sistemului de operare redat n fig. 6.5.

89

Capitolul 6 Sistemul de operare UNIX

Kernel Drivere periferice Comenzi i utilitare Shell Ferestre i interfee grafice Utilizator

Fig. 6.5. Straturile interpuse ntre utilizator i nucleul sistemului de operare UNIX 6.1.4. Tipuri de sisteme de operare UNIX Principalele variante de sisteme de operare UNIX existente astzi n domeniul software-ului de sistem precum i sistemul de baz pe care sunt fundamentate sunt redate n fig. 6.6.
BSD OSF/1 System V.4 System V.3

Sun OS

SCO

Linux DEC OSF/1

AIX

HP-UX

Solaris

Irix

Fig. 6.6. Principalele variante de sisteme de operare UNIX UNIX SYSTEM V RELEASE 4 UNIX SYSTEM V RELEASE 4 cuprinde: - linia AT&T System V.3; - linia Berkeley BSD 4.3 i Sun OS 4.0; - linia Xenix - Xenix V a lui Microsoft; - interfeele grafice cuprind principalele funciile din interfeele X/Windows i Open Look; - Shell-urile: Bourne, Korn, C; - suport pentru conectare la reea: * protocolul TCP/IP; * interfa pentru comunicarea ntre procese; * gestiunea fiierelor distribuite (NFS); 90

Sisteme operaionale - interfa binar de aplicaii (ABI). SCO Santa Cruz Corporation dispune de dou variante: - ODT - Open DeskTop; - Open Server Release 3. Sistemul de operare UNIX varianta SCO Open DeskTop 2.0, este bazat pe Unix System V Release 3.2. cu interfa grafic X-DeskTop; elemente mai semnificative care-l caracterizeaz: - dispune de un instrument grafic de pot electronic, protocol TCP/IP i NFS; - suport MS-DOS; - este emulat interfaa grafic Windows; - poate accesa partiii DOS multiple mai mari de 32 Mb. SUN OS Sistemul de operare Unix SUN OS este destinat pentru staiile de lucru SUN, inclusiv pentru SUN 386; a fost proiectat avnd la baz UNIX V Release 3 i BSD 4.2 i 4.3. Cuprinde: - sistemul de fiiere al reelei (NFS); - interfa grafic utilizator SunView; - suport pentru operare fr disc pe reea (Diskless Operation); - nucleul are circa 200 funcii sistem, biblioteci cu rutine pentru programe de aplicaie (rutine matematice i aplicaii reea); - Shell Bourne i C; - poate rula simultan i aplicaii DOS care au acces la fiierele din reeaua Sun Os. SOLARIS Sistemul de operare UNIX varianta Solaris al firmei SUN, cuprinde urmtoarele componente semnificative: - Sun Os 5.0 bazat pe Unix System V Release 4; - ONC Distributed Computing Platform -colecie de protocoale de intercomunicare i servicii distribuite; - sistemul de vizualizare OpenWindows V 3; - interfaa grafic OpenLook; - Deskset V3- set de instrumente pentru activitatea de desktop. ncepnd cu versiunea Solaris 2.6, sistemul de operare are ca principale nouti, un set de baz pentru servicii de reea, inclusiv propriul server Web i browser. mbuntirile noii versiuni au condus la urmtoarele constatri: - cel mai rapid mediu Java; - suport pentru fiiere mari; - creterea cu cca 35 % a performanelor pentru baze de date; - creterea cu 350 % a performanelor pentru Web. HP - UX HP - UX Hewlett Packard Unix este versiunea Unix System V care ncorporeaz o serie de caracteristici ale OSF/1: - HP - UX 9 poate fi asimilat cu Unix System V.3, dispunnd suplimentar de cteva extensii; - HP - UX 10 este un Unix System V.4. DEC - OSF/1 DEC - OSF/1 Digital Equipment Corporation este versiunea OSF/1 a firmei DEC implementat pe DEC ALPHA STATION 600.

91

Capitolul 6 Sistemul de operare UNIX IRIX IRIX include majoritatea caracteristicilor de la BSD, av avnd la baz Unix System V.4. AIX Sistemul de operare UNIX varianta AIX a fost proiectat de corporaia IBM, fiind bazat pe versiunea UNIX System V BSD i OSF/1; este disponibil pe calculatoare IBM PS/2 (modelul Power PC- versiunea AIX 3.x i AIX 4.1.1) i compatibile, respectiv pe mainframe avnd implementate microprocesoare RISC-6000 versiunea AIX 4.1.3. UNIX WARE Unix Ware este o variant avnd la baz versiunea UNIX System V Release 4, rezultat dintr-o colaborare UNIX i Novell. Componente eseniale: - nucleul din Unix System V Release 4.2; - sistemul de operare de reea local Netware; - interfee grafice utilizator disponibile sunt: Openlook i OSF/Motif. LINUX Linux este sistemul de operare Unix pentru procesoarele Intel, care a oferit software gratuit. Linux include esenialul variantei BSD, fiind destinat utilizrii individuale de ctre profesioniti Unix. Este o soluie acceptabilpentru conectarea la Internet i poate fi utilizat ca X terminal n siteurile Unix. 6.2. Sistemul de fiiere UNIX SYSTEM V Fiierele reprezint din punct de vedere logic, unitatea elementar de memorare pe suportul magnetic. 6.2.1. Tipuri de fiiere Sistemul de operare UNIX System V lucreaz cu urmtoarele tipuri de fiiere: - fiiere obinuite Aceste fiiere sunt constituite dintr-un ir de bytes (memorai de obicei pe disc) terminat cu un marker de sfrit de fiier (EOF). irul este divizat n linii de text terminate cu caracterul "new line" (CR). Restriciile de lungime, format, utilizat; - fiiere speciale Fiiere speciale se constituie ca o interfa ntre programele utilizator i rutinele nucleului sistemului de operare, ce lucreaz direct cu dispozitivele periferice de intrare/ieire. Astfel, utilizatorul va trata perifericele de intrare/ieire ca fiiere, activarea unui astfel de fiier coinciznd cu activarea driverului dispozitivului periferic asociat. La rndul lor, fiiere speciale sunt de 3 categorii: * fiiere speciale de tip caracter sunt fiierele care transfer un byte printr-o operaie de intrare/ieire; * fiiere speciale de tip bloc sunt fiierele care transfer un bloc printr-o operaie de intrare/ieire; * fiiere speciale de tip pipe sunt fiiere ce constituie canale de comunicaie ntre 2 procese; comunicaia ntre dou procese se poate realiza n memorie prin fiiere pipe obinuite, sau pe disc prin aa zisele fiiere pipe (named pipe). -cataloage de fiiere (directori) Directorii sunt cataloage de fiiere ce conin numele fiierelor componente i adresa fizic pe unitate simbolizat prin: . (un singur punct) identific numele directorului propriu, numit Home directory (2 bytes); .. (dou puncte) identific numele directorului printe n care fiierul cu un anumit index

92

Sisteme operaionale (inod) apare ca subdirector (14 bytes). Aceste fiiere nu se pot citi/scrie direct de utilizator, operaiile efectundu-se prin directive de sistem. 6.2.2. Structura arborescent a sistemului de fiiere Sistemul de fiiere UNIX System V este organizat ntr-o structur arborescent sub form de directori i subdirectori conectai la directorul rdcin (/root). Restricia de parcurgere este ca un director s nu fie legat la nivelul superior dect printr-o singur legtur. Pentru fiecare utilizator, administratorul de sistem creeaz cte un director propriu ce poate conine subdirectori sau fiiere obinuite. Identificarea n cadrul structurii arborescente se realizeaz prin numele fiierului precedat de calea n care se afl; specificarea cii se poate realiza n dou moduri: - absolut, pornind din directorul rdcin /root; - relativ, pornind de la directorul curent. Schimbarea directorului curent se realizeaz prin intermediul comenzii: $cd cale unde cale poate fi specificat: - spre extremitile arborelui, prin specificarea subdirectorului dorit; - spre baza arborelui, ceea ce presupune specificarea complet a cii; Spre deosebire de MS-DOS, la UNIX nu apare la prompter calea curent; determinarea cii curente se face prin comanda: $pwd (print work directory) care va afia calea complet; Prin comanda $cd se revine n directorul utilizatorului atribuit la nceputul sesiunii de lucru de ctre administratorul de sistem (Home directory). Crearea unui director (este permis numai n directorul propriu atribuit de administratorul sistemului) se va specifica prin comanda: $mkdir nume_director tergerea unui director se efectueaz prin comanda: $rmdir nume_director Operaia este validat numai dac directorul este vid i utilizatorul are acest drept la calea respectiv. Listarea coninutului unui director se realizeaz prin comanda: $ls [-opiuni] [nume_director] unde nume_director este numele directorului al crui coninut se va afia pe monitor; implicit este listat coninutul din directorul curent; opiuni prin intermediul opiunilor se pot solicita informaii suplimentare cu privire la coninutul directorului respectiv; opiunile vor fi precedate de caracterul "-"; dintre opiunile mai semnificative: -l ofer informaii de detaliu ce privesc: tipul fiierului, protecie, proprietar, dimensiune, data ultimei modificri, nume; -a solicit specificarea tuturor intrrilor n director; fiecare intrare va fi precedat de unul din urmtoarele caractere avnd semnificaia: d subdirector; - fiier obinuit; b,c fiiere speciale de tip bloc (b) sau caracter (c); . directorul curent; .. directorul printe; -i numrul de inod; -t afiarea coninutului sortat dup timpul ultimei modificri; 93

Capitolul 6 Sistemul de operare UNIX 6.2.3. Structura standard a sistemului de fiiere O structur standard a unui sistem de fiiere UNIX conine urmtorii directori avnd n componen: / 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; / bin utilitare nefolosite frecvent; / tmp fiiere temporare mai puin utilizate; / lib fiiere de bibliotec utilizate mai rar; / dict lista de cuvinte, desprirea n silabe; / man directori de fiiere text coninnd manualul complet de utilizare. / spool -at timpul la care se prelucreaz; -lpd director imprimant; / user_1 / ... structuri de directori / ... / ... ai utilizatorilor / user_n 6.2.4. Protecia fiierelor i drepturi de acces Sistemul de operare UNIX dispune de 3 drepturi de acces la fiiere: - dreptul de citire read (r); - dreptul de scriere write (w); - dreptul de execuie execute (x); De asemenea, recunoate urmtoarele categorii de utilizatori: - proprietarul (u); - grupul de utilizatori (g); - ceilali utilizatori (o). De aici decurg cele 3x3 posibilii pentru precizarea complet a drepturilor de acces. Vizualizarea drepturilor de acces se realizeaz prin operaia de listare a coninutului directorului. Exemplu Dac se va introduce comanda: $ls -al efectul va fi afiarea la monitor a coninutului directorului curent cu toate intrrile i informaii de detaliu: total 24 reprezint numrul de blocuri de 512 bytes ocupate drwxrwxr-x 6 ase info 687 Apr 28 17:13 . directorul curent 94

Sisteme operaionale drwxrwxr-x 9 ase infocib 212 Ian 12 10:22 .. directorul printe drwxrwxr-x 1 ase stud1 43 Mar 11 15:50 fisier1 -r-wxr-x--- 2 ase stud3 8822 Feb 14 12:09 fiier2 (1)(2) (3) (4) (5) (6) (7) (8) (9) unde (1) tipul de fiier; (2) drepturile de acces ale proprietarului (u); (3) drepturile de acces ale membrilor grupului (g); (4) drepturile de acces ale altor utilizatori (o); (5) numrul de directori n care apar fiierele (numrul de legturi); (6) numele proprietarului i grupului; (7) numrul de caractere din fiier; (8) data ultimei modificri; (9) numele directorilor i fiierelor existente n directorul curent. 6.2.5. Modificarea drepturilor de acces La crearea unui fiier, se asociaz att un identificator de proprietar (uid) ct i un identificator de grup (gid), ambele atribuite de ctre administratorul de sistem. Cuvntul care pstreaz fiierele i drepturile de acces are urmtorul format: 15 13 12 10 9 7 6 5 4 3 0 xwr o xwr xwr sticky sgid suid tip fiier g u Fiierele executabile preiau la execuie uid-u//gid-ul celui care le lanseaz; dac biii sunt setai pe 1, se preia uid-ul/gid-ul proprietarului fiierului respectiv, iar la comanda ls apare opiunea s n loc de x la dreptul de execuie al proprietarului Setarea bitului sticky produce rmnerea n memoria intern a fiierului executabil - n zona de evacuare (swapping); este utilizat pentru fiiere de comenzi sau comenzi apelate frecvent (TSR). Schimbarea proprietarului (owner-ului) anumitor fiiere se face prin intermediul comenzii: $chown nume_nou_proprietar fis_1 fis_2 ... fis_n unde nume_nou_proprietar devine noul proprietar al fiierelor fis_1 fis_2 ... fis_n specificate. Exemplu Prin comanda: $chown radu fis1.x fis2.x radu devine noul proprietar al fiierelor fis1.x i fis2.x. Schimbarea grupului care deine anumite fiiere se realizeaz cu ajutorul comenzii: $chgrp nume_nou_grup fis_1 fis_2 ... fis_n prin care nume_nou_grup devine deintorul fiierelor fis_1 fis_2 ... fis_n. Adugarea unui nou grup la sistemul de fiiere UNIX se efectueaz prin comanda: $newgrp nume_grup_adaug n urma creia nume_grup_adaug este ataat la sistemul de fiiere existent. Schimbarea drepturilor de acces la un fiier se poate realiza numai de ctre proprietarul acestuia (eventual, de ctre administratorul sistemului-superuser) cu comanda: $chmod {cine} {permis}{drept_acces} fis_1 fis_2 ... fis_n unde cine poate fi: u user login (proprietarul); g group (grupul); o others (ali utilizatori); a all (toi utilizatorii). permis stbilete accesul sau neautorizarea acestuia prin: + permisiune; - neautorizarea accesului; = permisiune absolut. 95

Capitolul 6 Sistemul de operare UNIX drept_acces sunt drepturile de citire (r), scriere(w) sau execuie (x); fis_1 fis_2 ... fis_n fiierele asupra crora se aplic modificarea. Exemple: 1) Comanda: $chmod a+rx prog permite tuturor utilizatorilor (a) s citeasc (r) i s execute (x) fiierul prog. 2) Comanda: $chmod u-w prog nu permite proprietarului fiierului prog s fac modificri n coninutul acestuia. 3) Prin comanda: $chmod o-r mail nu se permite altor utilizatori (o) s citeasc (r) fiierul mail. Observaie: modificarea drepturilor de acces se poate realiza i absolut prin nsumarea urmtoarelor valori: 4000 setare uid 2000 setare gid 1000 setare bit sticky 400 drept de citire pentru proprietar; 200 drept de scriere pentru proprietar; 100 drept de execuie pentru proprietar; 40 drept de citire pentru grup; 20 drept de scriere pentru grup; 10 drept de execuie pentru grup; 4 drept de citire pentru ali utilizatori; 2 drept de scriere pentru ali utilizatori; 1 drept de execuie pentru ali utilizatori; Exemplu Comanda: $chmod 755 prof modific drepturile de acces pentru permisiune la citire, scriere, execuie proprietar 700 (400+200+100), citire, execuie pentru grup 50 (40+0+10), i citire, execuie pentru ali utilizatori 5(4+0+1). Informaiile despre utilizatori i grupurile de utilizatori sunt cuprinse n fiierele /etc/passwd, /etc/shadow i /etc/group. Utilizatorii au acces la comenzile generale situate de regul n cile /bin i /usr/bin, acetia avnd posibilitatea s-i modifice propria parol cu comanda: $passwd parola care va solicita introducerea noii parole de dou ori. Orice utilizator are acces la fiierul /etc/passwd, n timp ce la fiierul ce conine parolele (/etc/shadow), nu are acces dect numai utilizatorul cu drept deplin la root (administratorul sistemului). Fiierul /etc/passwd conine cte o linie pentru fiecare utilizator, avnd urmtoarea structur: - numele de conectare (login); - X parola invizibil; - numrul de identificare al utilizatorului uid (user identification); - numrul de identificare al grupului gid (group identification); - numele proprietarului (name owner); - directorul atribuit la conectare (home directory); - numele interpreterului de comenzi (shell).

96

Sisteme operaionale La execuia oricrui program, acestuia i se atribuie patru identificatori: 1.uid-ul real din /etc/passwd; 2.gid-ul real din /etc/passwd; 3.uid-ul efectiv al programului; 4.gid-ul efectiv al programului. Accesul programului la un fiier va fi determinat de uid-ul i gid-ul efective astfel: - programul are aceleai drepturi de acces la un fiier ca i proprietarul fiierului dac uid-ul efectiv este identic cu uid-ul fiierului; - dac uid-ul efectiv al programului nu este identic cu uid-ul fiierului, dar gid-ul acestuia coincide cu gid-ul fiierului, programul are aceleai drepturi de acces ca i grupul asociat fiierului; - dac uid-urile i gid-urile efective ale programului i fiierului sunt diferite, programul va avea aceleai drepturi de acces la fiier ca i ceilali utilizatori. Pentru un fiier, pot fi poziionate (setate) dou drepturi speciale de acces: suid (set uid) i sgid (set gid) care, la fiierele executabile au atribuite implicit drepturile pe care le are utilizatorul atunci cnd le lanseaz: - dac suid a fost setat, atunci programul care acceseaz un fiier va avea uid-ul efectiv cu cel al proprietarului, dar numai pe durata execuiei programului. Exemplu Prin comanda: $chmod u+s fis se stabilesc drepturile proprietarului asupra fiierului fis, cnd acesta este accesat; efectul comenzii este: -rws-x proprietar grup fis deci, orice membru al grupului poate accesa fiierul specificat prin fis. Informaii despre numerele i numele de identificare ale utilizatorilor i a grupurilor se pot obine cu comanda $id, iar numele utilizatorului curent prin comanda $logname. 6.2.6. Montarea volumelor n structura arborescent a sistemului de fiiere Dispozitivele periferice de intrare/ieire se pot ataa sistemului de fiiere n UNIX, sub forma unor fiiere speciale ce trebuie constituite ca o structur arborescent de root, director, subdirector, simpla montare fizic nefiind suficient; montarea semnific n acest caz accesul la dispozitivul periferic. Comenzile specifice vor fi menionate cu scopul cunoaterii manierei de abordare a dispozitivelor periferice de ctre sistemul de operare UNIX, dar ele nu pot fi executate dect dac sunt date de ctre superuser (comenzi privilegiate). Un sistem de fiiere poate fi nregistrat pe diferite volume logice materializate pe variate suporturi fizice, dar pentru a opera sub sistemul UNIX, toate trebuie s se gseasc ntr-un volum unic denumit root, volum ce conine programul de ncrcare a sistemului de operare. Sistemul de fiiere poate fi utilizat doar dac este ncorporat n structura de fiiere accesibil la pornirea sistemului; operaia se poate realiza prin legarea sistemului de fiiere respectiv, la un director al sistemului de fiiere accesibile- operaia se numete montare. n momentul montrii celelalte fiiere devin transparente pentru sistem pn la realizarea comenzii inverse (demontare). Montarea unui volum se realizeaz cu comanda: $/etc/mount [-r] /dev/tip_dispozitiv /nume_director unde tip_dispozitiv reprezint numele fiierului special asociat dispozitivului fizic care se afl n directorul /dev; -r protejat la scriere; nume_director este numele directorului ce va fi substituit de directorul rdcin al volumului; acesta trebuie s fie creat n prealabil ca director vid); /etc este directorul n care se afl comanda mount. Demontarea unui volum se realizeaz cu comanda: 97

Capitolul 6 Sistemul de operare UNIX $/etc/umount /dev/tip_dispozitiv /nume_director De remarcat c att montarea ct i demontarea volumelor se poate realiza i prin directive de sistem ce pot fi apelate din programele utilizatorilor. Pentru crearea unei structuri arborescente de director pentru volum se folosete comanda: $/etc/mkfs /dev/nume_fis_special dimensiune_fis care terge tot coninutul volumului, crend o structur de director pentru volumul ce se va indica prin numele asociat (nume_fis_special); dimensiunea fiierului (dimensiune_fis) se specific prin numrul de blocuri ocupate de fiier; /etc directorul n care se gsete comanda mkfs; /dev directorul n care se afl numele fiierului special. Exemple 1) Prin comanda: $/etc/mkfs /dev/dsk1 2000 se creaz un sistem de fiiere UNIX pe floppy-disk-ul montat n unitatea 1, cu un singur director, i cu 2000 sectoare, iar prin: $/etc/mount /dev/fd1 /user se monteaz sistemul de fiiere UNIX de pe floppy-disk-ul din unitatea 1, n directorul /user/ al sistemului de fiiere de pe discul principal (fig.6.7.).

/ dev

/ bin

/ ctc . . .

/ user

/ bin

/ tmp

...

/ user 1

/ fd 1 ...

Fig. 6.7. 2) Comanda: $/etc/mount -r /dev/rz4c /radu monteaz un disc optic prin intermediul interfeei de disc SCSI, n directorul /radu protejat la scriere. 3) Crearea unui fiier special asociat unui dispozitiv periferic se face prin comanda: $/etc/mknod /dev/nume_fis_special {c/b} nr_maj nr_min unde c/b tipul fiierului special: - fiier special de tip caracter (c); - fiier special de tip bloc (b); nr_major, nr_minor reprezint tipul dispozitivului (nr_major), respectiv numrul acestuia (nr_minor) ambele specificate n octal, numerele depinznd esenial de sistemul de operare UNIX.

98

Sisteme operaionale Exemplu Comanda: $/etc/mknod /dev/tty4 c 3 4 creaz fiierul asociat terminalului tty4 de tip caracter (c) n calea /dev, tipul dispozitivului fiind 3 (nr_major) iar numrul dispozitivului este 4 (nr_minor). Iniializarea unui disc se efectueaz prin comanda: $diskformat /dev/tipdisc [-size s] [-dens d] [-il i] unde s numrul de bytes/sector; d densitate de nregistrare; f factorul de ntreesere; Exemplu: Comanda: $diskformat /dev/fd0 -dens 1 -size 128 il 3 formateaz floppy-disk-ul fd0 simpl densitate, cu 128 bytes pe sector, factor de ntreesere 3. Pentru a converti un fiier pe un floppy disk se utilizeaz comanda: $tar nume_fiier /dev/fd1 135 ds 120 nume_nou_fiier 6.2.7. Implementarea sistemului de fiiere UNIX pe disc Orice volum de disc este iniializat ca un sistem de fiiere, coninnd un numr de blocuri adresabile (de la 0 la valoarea maxim dat la iniializare) organizate astfel: Bloc 0: Boot Bloc 1: Superbloc Bloc 2: Zona de inod-uri Bloc 3: . . Blocuri de date . . Bloc n: Zona de evacuare temporar (swapping). Blocul Boot conine codul ncrctorului prii rezidente a sistemului de operare (n general primul sector care este rezervat pentru programul de boot-are i pentru informaii despre partiionarea discului). Superblocul conine informaii generale despre sistemul de fiiere: - dimensiunea sistemului de fiiere mpreun cu numrul de blocuri libere, tabloul ce conine blocurile libere, indexul urmtorului bloc liber din tablou; - dimensiunea zonei de inod-uri, numrul de inod-uri libere, tabloul ce conine inod-urile libere, indexul urmtorului inod liber din tablou; - cmpurile neautorizate la scriere pentru tablourile ce conin blocuri i inod-uri libere. Superblocul este copiat n memoria intern, iar nucleul actualizeaz permanent superblocul, pentru a asigura corespondena real cu sistemul de fiiere (exist un flag care este setat la fiecare modificare a superblocului). Zona de inod-uri conine cte un inod pentru fiecare fiier de pe disc (eticheta de fiier). Reprezentarea intern a unui fiier este specificat prin inod-ul asociat; acesta reprezint o intrare n lista de indeci a unui volum, care conine: - poziia pe disc a datelor din fiier (adresa); - proprietarul fiierului; - momentul ultimei accesri a fiierului sau ultima modificare a fiierului sau inod-ului. Un fiier are asociat un singur inod, dar poate avea mai multe nume, fiecare dintre acestea fiind n relaie cu acelai inod. Relaiile dintre nume i inod se numesc legturi. Fiecare inod are asociat un numr de ordine i-number care desemneaz n mod unic numele interne 99

Capitolul 6 Sistemul de operare UNIX ale fiierelor, iar directorii conin tocmai tabela de traducere a numelui extern al fiierului, n numrul de ordine asociat. Coninutul unui inod este modificat n momentul schimbrii proprietarului, a drepturilor de acces sau a numrului de legturi; astfel, modificarea coninutului unui fiier implicnd automat modificarea inod-ului asociat. Modificarea inod-ului ns, nu implic neaprat i o modificare a coninutului fiierului. tergerea unui inod se realizeaz cu comanda: $clri /dev/nume_fis_special i_number care terge din sistemul de fiiere asociat unui dispozitiv periferic (nume_fis_special), inodul specificat prin numr (i_number). Exemplu Prin comanda: $clri /dev/fd0 5 se va terge inod-ul 5 din sistemul de fiiere asociat floppy-disk-ului fd0. Structura zonei de inod-uri cuprinde: - numrul de identificare proprietar i grup; - tipul fiierului i atributele de acces; - lista blocurilor fizice ale fiierului compus din 13 intrri: 10 constituie adresele primelor 10 blocuri de date; 11 bloc de simpl adresare indirect; 12 bloc de dubl indirectare; 13 blocul de tripla indirectare; - numrul de legturi la fiier, indicnd numrul directorilor care au referine la acest fiier; - data ultimei accesri, a ultimei modificri i data crerii. La deschiderea fiierului, inod-ul este copiat n memoria intern de ctre nucleu, adugndu-i-se i alte informaii. Blocurile de date conin informaia util a fiierelor organizate n blocuri: - fiecare bloc are mrimea de 512 sau 1024 bytes; - alocarea se face dinamic, pe baza listei blocurilor libere din superbloc. Zona de evacuare temporar (swapping) conine imaginile proceselor utilizator, atunci cnd acestea sunt temporar eliminate din memoria intern. Prin comanda: $fsck [-sX][-D][nume_fis_special] el poate testa i repara sistemul de fiiere specificat prin nume_fis_special; maniera de testare i reparare este interactiv. Testarea const n verificarea consisten ntre valorile parametrilor memorai n tabelele Superblocului i Zona de inod-uri. Dac nu sunt depistate erori, atunci se va afia: - numrul de fiiere; - numrul de blocuri utilizate; - numrul de blocuri libere. -s ignor lista de blocuri libere existent i reconstituie o nou list, prin rescrierea Superblocului sistemului; -D realizeaz verificarea directorilor n vederea depistrii eventualelor blocuri defecte. Comenzile de afiare a informaiilor de pe disc: $du [-ar][f1 f2 ...fn] afieaz numrul de blocuri coninute n fiecare fiier f1 f2 ...fn; implicit, se afieaz directorul curent; -a afieaz i numrul de blocuri coninute n fiiere; implicit, se afieaz numai directori; -r afieaz mesaje de eroare pentru directorii care nu pot fi citii.

100

Sisteme operaionale Exemplu $du -a /usr/radu afieaz directorii inclusiv fiierele coninute cu numrul de blocuri ocupate din directorul /usr/radu; $df [nume_fis_special] afieaz numrul de blocuri i inod-urile libere pentru sistemul de fiiere specificat prin nume_fis_special; implicit, se afieaz pentru toate sistemele de fiiere montate. 6.3. Interpretorul de comenzi shell Dintre principalele componente ale sistemului de operare UNIX, o poziie privilegiat o au componentele Kernel i Shell; Kernel este sistemul supervizor care ncarc toate procesele i le execut n manier proprie la un moment dat iar Shell este singura cale prin care utilizatorul poate comunica cu Kernel-ul cu privire la: - care programe s le execute; - cine s le execute; - ce s fac cu ieirea; - alte servicii utilizator; - comunicarea dorinelor utilizatorului ctre Kernel. Shell primete comenzile de la utilizator, le decodific i comunic dorinele acestuia la Kernel, deci toate comunicaiile dintre utilizator i Kernel sunt conduse prin Shell. 6.3.1. Comenzi Shell Dup conectarea utilizatorului la o sesiune de lucru, este invocat automat Shell-ul (prin apariia prompter-ului $), care informeaz utilizatorul c ateapt comenzi ce se vor introduce de la tastatur. n continuare interpreterul de comenzi Shell execut urmtoarele activiti: - decodific linia de comand (caut programul); - anun Kernell s execute programul i ateapt (sau nu) terminarea execuiei; - primete rspunsul Kernell i afieaz rspunsul i prompterul $; - reia ciclic secvena, pn la introducerea CTRL/D pe care o interpreteaz ca "sfrit transmisie de la tastatur"; - anun Kernell s deconecteze utilizatorul. Comenzile practic, sunt programe executabile pe care Shell le caut n ordinea: directorul curent, /bin, /usr/bin unde acestea se regsesc ca fiiere normale. Linia de comand are forma: $comand argumente unde argumente pot fi: - nume de fiiere, eventual calea n care se gsesc; - opiuni urmate imediat dup comand i precedate de - (specifice fiecrei comenzi). De exemplu: $comp -s nf1 nf2 compar f1 cu f2 i suprim imprimarea (care este implicit). Se puteau folosi i alte opiuni ca: -l indic forma lung a unui serviciu efectuat de comand; -sl serviciu lung, fr imprimare. 6.3.2. Fiiere standard. Redirectare i extensii Shell deschide implicit trei fiiere standard: - tastatura, ca fiier de intrare standard avnd atribuit descriptorul asociat 0 (stdin); - monitorul, ca fiier standard de ieire avnd asociat numrul 1 (stdout); 101

Capitolul 6 Sistemul de operare UNIX - fiierul de afiare a erorilor cu descriptorul asociat 2 (stderr). Pentru a redirecta intrarea/ieirea standard se pot folosi caracterele: < pentru redirectare intrare standard; > pentru redirectare ieire standard; >> pentru redirectare ieire i adugare la fiierul existent. De exemplu $ls -l > nf1 listare directori forma lung n nf1 care pierde coninutul iniial; $ls -l >> nf1 idem, dar coninutul iniial nu se pierde. Caracterele speciale (wildcards) "*" i "?" au aceeai semnificaie ca la MS-DOS, operatorul de negare fiind "!". [..] specific o list de caractere ordonate sau identificate individual (separate prin virgul). De exemplu $rm stud. [!a-m][2,4,9] terge fiierele cu numele stud ce nu conin la extensie una din literele de la a la m urmate de 2, 4, 9 (exemplu: stud.x9) Toate intrrile de la tastatur sunt intorduse ntr-o zon de buffer (arie de memorie rezervat pentru stocarea caracterelor recepionate) pn cnd sunt solicitate de Shell, deci Shell nu prelucreaz imediat intrrile; la un moment dat Shell va decodifica aceste intrri, pe parcursul creia nu va desfura alte activiti; se poate astfel imagina c Shell execut dou activiti distincte conectate printr-o conduct avnd rolul de: - preluarea caracterelor de la tastatur i memorarea lor ntr-un buffer; - citirea caracterelor din buffer i decodificarea lor. Observaie: Shell nu poate primi i decodifica mai puin de o linie de comand complet. Bufferul accept maxim 256 de caractere de la tastatur i prin acionarea tastei Enter se indic terminarea liniei de comand; n acel moment primul program are ieirea gata, iar al doilea program are intrrile n ateptare (sunt astfel satisfcute cerinele conductelor); cnd ncepe decodificarea, pn la terminarea acestuia (marcat prin $ la monitor), utilizatorul poate introduce caractere de la tastatur n continuare, ele intrnd n buffer; dac se depesc 256 de caractere, se vor ignora fr nici un avertisment. Efectuarea coreciilor pentru caracterele introduse, se poate realiza prin operaii de: - tergere a unui caracter (prin "#" sau backspace introduse imediat dup caracterele ce se vor terge); - tergerea unei linii (prin "@" sau CTRL/X dup linia introdus). Prin comanda: $stty erase % kill & se pot nlocui caracterele de tergere "#" cu "%" i "@" cu "&". Dac se va introduce comanda: $stty n urma execuiei, se va afia: - viteza terminalului exprimat n bauds (bytes/s) care poate fi modificat; - caracterele de tergere erase='#', kill='@'; - verificarea imparitii, a terminatorului de linie i a ecoului caracterelor introduse. 6.3.3. Multitasking i ateptare Comanda $who arat care utilizator este conectat, pe ce terminal i la ce moment. UNIX permite multitasking (mai multe task-uri ce se execut concomitent) ceea ce implic apariia prompter-ului $ fr a atepta execuia complet a task-ului lansat n execuie i posibilitatea lansrii altei comenzi; pentru a specifica execuia (fr ateptarea terminrii) unui task 102

Sisteme operaionale se folosete caracterul & astfel: $comanda1 & 31 $comanda2 la care Kernel arat numrul de identificare al procesului (pid-process identification), de exemplu 31; fr a atepta terminarea execuiei comand1 Shell furnizeaz prompterul $ pentru a introduce alt comand, comenzile 1 i 2 executndu-se concomitent. Dac prima comand este un task n execuie iar comanda2 este un program interactiv (de exemplu, editorul vi), comanda2 se va ncheia de ctre utilizator cnd va termina editarea, iar task-ul lansat prin comanda11 este neinteractiv (se mai numete proces background deoarece execuia sa este invizibil n timpul ct utilizatorul este ocupat cu editorul vi). Dac utilizatorul dorete oprirea task-ului background va specifica acest lucru prin comanda: $kill 31 unde 31 este numrul de identificare al procesului (pid-ul). Observaie: pot fi lansate n execuie mai multe procese background. Comanda $ps (process status) arat ce procese au fost lansate n execuie, prin ce comand i ct timp au fost executate, care sunt n execuie, pentru care utilizator, etc. 6.3.4. Conducte i linii de conducte Shell permite comunicarea ntre procese prin conducte (pipes). Conductele sunt canale de date ce conduc ieirea unui program ctre intrarea altui program, fr crearea unor fiiere intermediare; se utilizeaz n acest scop caracterul "". De exemplu $wholpr ieirea la imprimant (prin spooler-ul imprimantei -lpr) a utilizatorilor conectai, echivaleaz cu secvena: $who > fis $lpr < fis $rm fis Atunci cnd se specific o conduct (dou sau mai multe procese), Kernell starteaz execuia ambelor procese ca i cum ar fi procese background, cele 2 procese executndu-se sincronizat, ateptnd ieirile pentru intrri. De exemplu $whosortlpr reprezint o linie de conducte (pipeline) unde: who va produce la ieire toi utilizatorii conectai; sort sorteaz alfabetic; lpr scrie la imprimant prin spooler. 6.3.5. Limbajul de programare Shell O secven de comenzi Shell poate fi constituit ca program (numit procedur Shell) care poate fi memorat n fiiere asemntor programelor scrise n diverse limbaje i executate la cerere. Prin comanda: $sh [nf] este apelat o procedur Shell ce conine intrrile n fiierul specificat prin numele nf; - dac nf lipsete, implicit se consider fiierul standard de intrare (tastatura); Aceast comand implic dou copii Shell: una la pornirea sistemului, iar cealalt la solicitarea execuiei procedurii (prima procedur Shell preia intrri de la tastatur, iar a doua procedur preia intrrile din fiierul nf). 103

Capitolul 6 Sistemul de operare UNIX O variabil Shell se poate declara prin: $variabila=valoare iar referirea variabilei se face prin includerea naintea numelui ei, a caracterului "$". De exemplu: $ruta=/usr/user1 $cd $ruta unde $ruta este o variabil ce substituie calea /usr/user1. Utilizarea Shell-ului ca limbaj de programare permite execuia condiionat a unor comenzi, ce se realizeaz prin testarea indicatorilor de stare poziionai dup execuia unei comenzi n funcie de care (True, False) se execut o aciune. Structura alternativ if: if grup_condiii then grup_comenzi_1 [elif grup_comenzi_2] else grup_comenzi_3 fi ude fi este identificatorul de ncheiere a structurii alternative; Structura alternativ case: case variabil in varianta 1)grup_comenzi_1;; varianta 2)grup_comenzi_2;; . . . varianta n)grup_comenzi_n;; esac Structura repetitiv for: for variabil [in valoare1 valoare2 ... valoaren] do grup_comenzi done unde variabil ia valori din lista specificat prin valoare1 valoare2 ... valoaren; dac valoare1 valoare2 ... valoaren lipsesc, variabil va lua pe rnd valorile specificate n procedur ca parametrii; done este terminator de bucl. Structura repetitiv while: while grup_condiii do grup_comenzi done unde done este terminator while; Structura repetitiv until: until grup_condiii do grup_comenzi done 6.3.6. Fiiere de comenzi indirecte Una dintre cele mai importante funcii ale Shell-ului o constituie executarea fiierelor de comenzi indirecte (numite i script-uri). Un fiier de comenzi indirecte este o procedur Shell constituit ca un fiier text, care conine comenzi similare ce pot fi introduse interactiv. Avantajul utilizrii unui astfel de fiier const n execuia unui set complex de comenzi prin 104

Sisteme operaionale simpla introducere a numelui fiierului care se comport ca orice fiier executabil, fr a avea cele trei forme (surs, obiect, executabil). Puterea limbajului de comand const n posibilitatea de a utiliza diferite programe -tratate ca instruciuni, mpreun cu mecanismele de interconectare puse la dispoziie de ctre Shell. Un program lansat n execuie primete anumite iruri de caractere ce formeaz mediul asociat; prin Shell, se pot introduce i alte iruri de caractere n mediu. Mediul curent ce aparine interpreterului de comenzi se afieaz cu comanda: $env (environment-echipament) ce conine urmtoarele valori mai semnificative: - $HOME= refer catalogul alocat utilizatorului (home directory); - $SHELL= interpreterul de comenzi utilizat; - $LOGNAME= numele utilizatorului n sistem; - $PATH= definete lista directorilor ce sunt parcuri de Shell n cutarea fiierelor executabile corespunztor comenzii introduse; - $MAIL= numele fiierului ce conine mesajele primite de utilizator prin e-mail; - $TERM= tipul terminalului; - $PS1= definete prompter1 asociat interpreterului (implicit este caracterul "$"); - $PS2= stabilete al doilea prompter de continuare a unei comenzi (implicit este caracterul ">"). ntr-o linie de comand construciile prefixate cu $, sunt nlocuite cu valorile variabilelor de mediu sau variabile Shell; interpreterul Shell conine i anumite variabile predefinite, avnd urmtoarea semnificaie: - $0 este numele Shell-ului sau fiierului de comenzi indirecte, ca procese curente n curs de execuie; - $1, $2, ... , $9 sunt parametrii transmii procedurilor Shell pe linia de comand; - $# numrul de parametri poziionali ai unei proceduri Shell; - $? codul de stare al ultimei comenzi executate; - $$ identificator de proces al Shell; - $! identificatorul ultimului proces lansat n background; Exemplu $PS1="$LOGNAME@`hostname`>" va avea ca efect afiarea prompter-ului: userlogin@hostname> $PS1="`pwd`>" va seta prompter-ul la afiarea cii curente asemntor cu MS-DOS. Observaii: - cuvintele precedate de $ sunt nlocuite cu valoarea variabilei respective (substituirea variabilelor) incluzndu-le i pe cele ncadrate de ` `(substituirea comenzilor); - rezultatul oricrei comenzi seteaz variabila de mediu $? prin: 0 - execuie normal; =0 - eroare de execuie. Este posibil a se solicita execuia unei liste de comenzi ca un proces separat prin: (list_comenzi) De exemplu: $pwd;(cd /usr/user1;pwd);pwd prin care efectul comenzii cd este anulat de ntlnirea parantezei nchise, deoarece cd a schimbat 105

Capitolul 6 Sistemul de operare UNIX calea numai pentru subprocesul lansat pentru executarea acelei liste de comenzi. Dac se dorete execuia listei de comenzi n cadrul unui proces curent, atunci se va specifica acest lucru prin: {list_comenzi} Exemplu: $pwd;{cd /usr/user1;pwd);pwd prin careefectul comenzii cd se pstreaz i dup terminarea listei de comenzi cuprinse ntre acolade. Prin: nume () {list_comenzi} se poate defini o funcie Shell compus dintr-o list de comenzi inclus ntre acolade; apelul funciei n acest caz se face prin nume [parametru] cnd parametrii poziionali $1, $2, ... , $9 sunt iniializai cu valorile parametrilor actuali din linia de comand. Exemple 1) Pentru afiarea coninutului unui director al crui nume este transmis ca parametru, unscript posibil ar putea fi: $dir (){ >if [ $1 ==] then >echo "Apel incorect" >return 1 >else >(cd $1;pwd) >ls -al $1 >return 0 >fi >} care se va utiliza prin: $dir /usr/user1 2) Secvena urmtoare ncearc s lanseze n execuie prog1.x; dac nu-l gsete, se va afia mesajul "Nu exista fisierul prog1.x" if [-x $HOME/prog1.x] then $HOME/prog1.x else echo "Nu exista fisierul prog1.x" fi [-x] afieaz comenzile i argumentele rezultatelor execuiei, prin substituiri efectuate naintea execuiei. 3) Secvena: case $1 in a)x=alfa;; b)x=beta;; g)x=gamma;; *)x=$1;; esac echo $x va afia ce se va afla n parametrul specificat prin execuia procedurii ($0 procedura, $1 primul parametru): alfa dac parametrul conine a; beta dac parametrul conine b; 106

Sisteme operaionale gamma dac parametrul conine g; coninut $1 dac parametrul nu conine a, b sau g; 4) O secven pentru anumit opiune: $echo "introduceti Da sau Nu ?:\c" read raspuns rest case raspuns in [Dd] *) echo "Ati raspuns cu Da";; [Nn] *) echo "Ati raspuns cu Nu";; *) echo "Nu ati raspuns nici Da nici Nu";; esac read a1 [a2...] citete o linie de la fiierul standard de intrare, a1 primind valoarea primului cuvnt din linia de comand, a2 pe al doilea, ultimul argument primind restul liniei (rest). 5) Copierea a 3 fiiere specificate n apelul procedurii se poate realiza pe baza secvenei: for i in 1 2 3 do cp fis$1 /tmp done 6) Afiarea parametrilor poziionali: while [ $1 != ] echo $1 shift done 7) Exemplu de comand vid ca argument al buclei while care va returna codul 0 de eroare: while: do if whogrep $1 /dev/null then echo "$1 este prezent" exit else sleep 120 fi done Se va executa bucla al crei nume este dat de primul argument al procedurii Prezentarea interpreterului de comenzi Shell a avut la baz varianta clasic: Bourne Shell n care sunt scrise majoritatea fiierelor de comenzi. CShell (csh) are o sintax mai apropiat de limbajul C oferind fa se Bourne Shell (sh) posibilitatea de a lucra cu variabile structurate, capacitatea de a memora i reutiliza ultimele comenzi introduse, precum i posibilitatea de a defini i utiliza pseudonime pentru facilitarea introducerii unor comenzi mai complexe. De exemplu comanda: %alias lista ' ls -aFx \!*' introduce pseudonimul lista n locul comenzii ls -aFx, pseudonim ce poate fi utilizat ulterior ca o comand. O alt facilitate important o constituie posibilitatea trecerii unui proces din foreground la background prin utilizarea comenzilor fg (foreground) respectiv bg (background). KornShell (ksh) derivat din sh, a preluat o serie de caracteristici ale csh; printre faciliti se pot meniona: - editarea liniilor de comand similar cu editarea textelor la vi sau emacs; - utilizeaz pseudonimelor din csh, extinznd sfera de cuprindere i la subprograme constituite din funcii Shell; - grad nalt de portabilitate; 107

Capitolul 6 Sistemul de operare UNIX - posibilitatea utilizrii de variabile structurate asemntor csh.

6.4. Nucleul sistemului de operare UNIX (KERNEL) Aa cum s-a menionat n acest capitol, o parte a programelor de comand i control sunt rezidente n RAM alctuind nucleul sistemului de operare (Kernel) ncrcat odat cu pornirea sistemului de calcul. Nucleul sistemului se operare UNIX este acea parte a programelor de comand i control care activeaz i controleaz: - alocarea timpului main; - spaiul de memorie; - canalele de comunicaie ctre diverse taskuri executate de utilizator la un moment dat. 6.4.1. Structur i funcii Nucleul sistemului de operare este alctuit din urmtoarele componente: - programul supervizor central; - rutine de serviciu pentru o serie de activiti cum ar fi de exemplu, scrierea n memorie, gestiunea ceasului sistem, etc. n mod normal, utilizatorul folosete comenzile Shell care dirijeaz execuia programelor dorite sub supervizorul Kernel, acesta fiind astfel invizibil utilizatorului. Pentru utilizator, sistemul de operare UNIX apare ca fiind alctuit din: - un set de programe, fiecare corespunznd unei anumite comenzi; - Shell-ul care dirijeaz comenzile i coordoneaz execuia programelor utilizatorului. Practic ns, sistemul de operare UNIX este compus din : - un set de programe de servicii care execut funciile legate de sarcinile hardware i software; - Kernel-ul care coordoneaz execuia programelor de servicii, specificate sub forma unor comenzi adresate ctre Shell. Programele de servicii sunt apelate atunci cnd sunt necesare (zona de tranziente), n timp ce supervizorul este rezident n RAM, constituind mediul software de baz pentru orice evenimente din sistem. Principalele funcii ndeplinite de nucleul sistemului de operare: - planificarea, coordonarea i gestionarea execuiei proceselor; - furnizarea de servicii de sistem cum sunt: tratarea operaiilor de intrare/ieire i gestiunea fiierelor; - manipularea operaiilor dependente de hardware, ntreruperile i funciile de sistem; - gestiunea memoriei. Nucleul UNIX este alctuit din aproximativ 10000 de linii ce constituie codul programului care, n funcie de sistem, se transform ntr-un numr mai mare sau mai mic de cuvinte main (sau bytes); dintre acestea, 5 - 10% din totalul codului programelor (Shell, utilitare, KERNEL i celelalte) este variabil funcie de sistemul de calcul i de setul de utilitare (fig. 6.8.). Aa cum rezult din fig. 6.8, o mare parte din aceste programe este destinat gestiunii memoriei i gestiunii proceselor, aceast parte evideniind: - coninutul stivei; - coninutul registrelor sistemului; - detalii de mediu, cnd procesele sunt introduse n memorie i rspund la ntreruperile procesorului. Aceast parte conine 7 - 8000 linii codul programelor scrise n limbajul C (deci portabil pe orice sistem de calcul). Includerea acestei pri n nucleu se justific prin necesitatea unui 108

Sisteme operaionale rspuns foarte rapid.


Programe utilizator Limbaj de asamblare Limbajul C

Biblioteci Interfaa cu funciile de sistem (apeluri)

Sistem de gestiune a fiierelor (SGF) Sistem de gestiune a proceselor

Gestiunea tampoanelor cache

Module de control periferice Bloc Caracter Module de control hardware

Gestiunea memoriei

Programe utilizator

Fig. 6.8. Structur Kernel Alt parte a Kernel-ului conine driverele dispozitivelor periferice de intrare/ieire constituite din programe ce realizeaz: - controlul adreselor de citire/scriere, adresarea registrelor de date ale perifericelor de intrare/ieire; - manipularea ntreruperilor generate de aceste dispozitive; - efectuarea recuperrii erorilor. Conine aproximativ 1000 linii codul programelor scrise tot n limbajul C, dar acest numr este variabil n funcie de numrul perifericelor de intrare/ieire. Primitivele de sistem sunt specifice fiecrui sistem de calcul (scrise n limbaj de asamblareaproximativ 1000 linii codul programului), ele coninnd: - operaii de intrare/ieire de baz; - comutarea execuiei ntre procese; - permiterea sau inhibarea ntreruperilor hardware; - resetarea prioritilor ntreruperilor; - alte operaii. Accesarea primitivelor de sistem se realizeaz prin apeluri (directive) de sistem (system calls) din programe n C sau n limbaj de asamblare. 6.4.2. Procese i stri Un sistem de calcul poate s lucreze la un moment dat n dou moduri: 109

Capitolul 6 Sistemul de operare UNIX - utilizator, cnd execut un program sau proces; - sistem (Kernel), cnd execut un cod sistem. Comutarea ntre modul utilizator i KERNEL se realizeaz prin urmtoarele mecanisme: - ceasul- care ntrerupe orice alt program cu frecvena de 60 Hz, rutina de ceas permind reevaluarea prioritilor proceselor i implicit schimbarea procesului; n absena altor ntreruperi, ceasul realizeaz divizarea timpului, ceea ce permite ca sistemul s fie mprit ntre mai muli utilizatori; - apeluri de sistem prin care utilizatorul solicit diverse servicii oferite de sistemul de operare; cele care realizeaz operaii de intrare/ieire conducnd la suspendarea procesului apelator pe durata transmiterii datelor; - cereri de serviciu ale perifericelor de intrare/ieire. Procesul este conceput fundamental de organizare a sistemului de operare UNIX. n esena, un proces reprezint un program n execuie. Pentru un program activ, pot exista mai multe procese active- numite instane: - din punct de vedere al procesului, operaiile nucleului sunt prioritare; - din punct de vedere al nucleului, procesele sunt structuri de date catalogate. Informaiile necesare procesului sunt memorate n: a) tabela proceselor constituit n memorie, ce conine o intrare pentru fiecare proces detaliind starea acestuia: - localizarea procesului; - adresa de memorie i adresa de evacuare; - mrimea procesului; - numrul de identificare; - identificatorul utilizat; b) tabela utilizator, care este ataat fiecrui proces activ la rutinele nucleului lui (fig.6.9). Crearea unui proces implic astfel iniializarea unei intrri n tabela procesului, care iniializeaz o tabel a utilizatorului crend totodat textul real i datele pentru proces.

Proces activ

Zona de date a procesului Spaiul de adres al Kernel-ului

Zona de date i instruciuni a utilizatorului Spaiul de adres al utilizatorului

110

Sisteme operaionale Fig. 6.9. Iniializarea tabelei utilizator Schimbarea strii unui proces (se execut, ateapt, este evacuat, este ncrcat, primete un semnal) este o activitate ce se focalizeaz pe tabela procesului (fig. 6.10.):
RUN mod utilizator apel sistem ntrerupere Execuie ntreinere RUN mod utilizator

peemptiv planificare proces

READY preemptiv

EXIT

WAIT

READY

RAM suficient swap in

swap out Memorie intern RAM Memorie extern ca suport de evacuare (swapping) WAIT suspendat

CREAT

fork

READY suspendat

RAM insuficient

Fig. 6.10. Tranziia strilor unui proces - terminarea unui proces implic eliberarea intrrii sale n tabela proceselor, putnd fi folosit pentru alte procese; - cnd procesul este activ, au loc alte evenimente, de exemplu ateptarea terminrii unei operaii de intrare/ieire; - pe durata suspendrii unui proces, tabela utilizatorilor nu este accesat sau modificat; - dac procesul este evacuat pe disc, este evacuat i tabela utilizator n cadrul imaginii procesului; tabela utilizator (structur a utlizatorului) conine n acel moment: - numele de identificare al utilizatorului i al grupului din care face parte, pentru stabilirea drepturilor de acces; - pointerii din tabela de fiiere existente n sistem, pentru toate fiierele deschise; - un pointer ctre inod-ul directorului curent n tabela de inod-uri; - o list a rspunsurilor pentru diverse semnale. Informaia curent despre un proces se schimb prin execuia directivei chdir cnd este schimbat valoarea pointerului ctre inod-ul directorului curent. 6.4.3. Coordonarea i gestiunea proceselor ntr-un sistem de operare multiutilizator, se pot executa mai multe programe simultan. Existnd o singur CPU, n realitate un singur program se execut efectiv la un moment dat, iar celelalte se vor executa atunci cnd CPU le va acorda cuante de timp. n timpul execuiei unui program, celelalte programe sunt rezidente n RAM, cu condiia ca nici unui s nu solicite toat memoria. De aici decurg 2 sarcini ale nucleului: - planificarea proceselor - mprirea de cuante de timp ntre procese; - gestiunea memoriei - atribuirea de zone de memorie liber la procese i eventuala evacuare 111

Capitolul 6 Sistemul de operare UNIX sau ncrcare a unui proces n/din disc. Planificarea proceselor Iniierea unui proces poate fi efectuat numai de ctre un alt proces activ. Cnd este conectat primul utilizator, Kernel-ul asigur o copie a Shell-ului ce se ruleaz doar pentru el, ivindu-se existena unei alte structuri ierarhice de procese create printr-un mecanism numit bifurcaie (fork) prin care Kernel nlocuiete un proces existent, prin dou procese: - procesul iniial (printe); - procesul iniiat de procesul iniial (fiu), care mparte (partajeaz) toate fiierele cu procesul printe. Dup bifurcaie, ambele procese se execut independent; excepie: cnd se solicit explicit ca procesul printe s atepte terminarea procesului fiu prin directiva WAIT; n continuare, procesul fiu poate genera la rul lui, o nou bifurcaie (fig.6.11.).
fork 0 shell fork 0 shell

fork 1 proces 1 fork 2

proces 1

proces 2

proces 3

Fig. 6.11. Mecanismul fork De remarcat ca proces3 are acces la toate fiierele deschise de procesele anterioare, n timp ce invers nu se permite accesul. Prin urmare, fiierele sunt accesibile de pe nivelurile situate la periferia ierarhiei. Cnd Shell iniiaz un proces, bifurcaia este aranjat astfel nct Shell s atepte terminarea procesului (procesul este executat n foreground). Dac nu ateapt, nseamn c Shell a dat natere altor procese mai puin prioritare (procese executate n background) adugnd dup comanda corespunztoare semnul &. Alocarea memoriei Fiind un sistem de operare multitasking, UNIX ine evidena taskurilor concurente i menine controlul diverselor programe care sunt rezidente n RAM la un moment dat, furniznd i informaii privind suficiena spaiului de memorie: - n mod normal, fiecare program este ncrca n diverse zone de memorie RAM; - n modul de operare cu divizarea timpului (time-sharing), poate opera fr evacuarea coninutului memoriei pe disc; fiecare program se execut n cuanta de timp alocat rmnnd n memorie numai programele a cror execuie nu s-a ncheiat (practic, numai registrele sistemului sunt divizate ntre programe, astfel c evacuarea programelor implic de fapt, numai evacuarea coninutului registrelor); - pe durata execuiei proceselor, UNIX aloc poriuni distincte de RAM pentru: * segmentul de cod (instruciunile programului) protejat la scriere; * segmentul de date ce conine toate datele definite de utilizator: valori, variabile, etc.; * segmentul de stiv care conine toate informaiile de sistem necesare meninerii intacte a unui proces, atunci cnd este evacuat din RAM pe disc sau cnd este ncrcat n RAM de pe disc. Aceast divizare este realizat din dou motive: - evacuarea segmentului de cod implic reducerea cantitii de informaii necesar a fi evacuate; 112

Sisteme operaionale fiind de tip read-only, acesta este identic cu imaginea sa din disc, deci nu trebuie rescris cnd se evacueaz; - Shell este ncrcat pentru fiecare utilizator, deci exist attea copii Shell, ci utilizatori sunt conectai; dac mai muli utilizatori solicit un program (segment de cod), nu este necesar copierea acestuia deoarece el poate fi folosit simultan; este suficient s se creeze i cnd este necesar, s se evacueze un segment de date i un segment de stiv pentru fiecare utilizator. Divizarea timpului i resurselor n sisteme de operare multitasking, procesele individuale nu sunt executate pn la terminare, avnd alocate cuante de timp de ctre procesor ntr-o planificare de tip Round- Robin; cuantele de timp nu sunt egale, lungimea depinznd de prioritatea taskului, de accesibilitatea datelor de intrare solicitate i a perifericelor de ieire. Alocarea se face avnd n vedere maximizarea utilizrii resurselor hardware, cu respectarea prioritii taskurilor critice. Prioritile sunt periodic rennoite astfel: - taskurile cu timp de execuie mai mare, vor avea prioritate mai sczut; - taskurile de tip ntrebare-rspuns vor avea rspuns instantaneu; - taskurile ce const n schimbarea de caractere au cea mai sczut prioritate. Dup expirarea timpului alocat, taskul este evacuat ntr-un fiier de evacuare pe disc unde va rmnea pn i se d din nou controlul; n acel moment, imaginea salvat anterior se rencarc n RAM; ea va cuprinde: - coninutul prii de memorie inscriptibil; - coninutul registrelor; - numele directorului curent; - lista fiierelor deschise de procesul considerat. n acest sens, sunt utile prezentarea apelurilor de sistem: i=fork() care permite crearea unui nou proces fiu, avnd active procesele printe i fiu. Practic, se introduce un nou proces n tabela de procese a sistemului UNIX, dar nu se lanseaz n execuie nici un program. Se creaz astfel o bifurcaie n care procesul fiu este realizat ca o copie a procesului printe, nefiind necesar evacuarea programului din memorie ci doar copierea zonelor de date. j=execl(nume,arg1,arg2,...,argn,o) solicit execuia unui alt program; nume,arg1,arg2,...,argn sunt pointeri ctre iruri de caractere care specific numele programului i numele argumentelor sale; o - pointer ctre o zon de pointeri, fiecare din ei punctnd cte un ir din mediu. Prin acest apel, nucleul va determina ce program original s fie nlocuit cu alt program. Secvena fork-execl creaz o copie a procesului printe, apoi nlocuiete procesul fiu cu programul care dorete s-l execute (procesul fiu nu este alterat de execl). k=wait(status) determin procesul printe s atepte terminarea execuiei procesului fiu; status este pointer la o valoare ntreag, iar k - valoarea returnat ca numr de identificare al procesului fiu terminat. O aplicaie frecvent a lui execl se ntlnete la nlnuirea programelor; de exemplu, o compilare n mai muli pai implic ncrcarea programului i datelor pentru execuie la primul pas; n continuare, se procedeaz asemntor i la al doilea pas; o dat ce primul pas a fost executat complet, nu exist nici un motiv de a se ntoarce la el, deci a se suprascrie memoria ocupat la prima trecere cu programul i zona de date. nlnuirea ne este totdeauna practic pentru secvene n care pri din program solicitate sunt dependente de date; astfel, procesul printe creaz un proces fiu (prin fork) cu cerere de ateptare (wait); procesul fiu va exista ca proces evacuabil i va avea acces la acelai spaiu de memorie ca i procesul printe; prin execl, procesul fiu poate executa urmtorul program, putnd 113

Capitolul 6 Sistemul de operare UNIX el nsui s fie rescris; deci, cnd procesul fiu modificat i suprascris va fi ncheiat, controlul va reveni procesului printe. Deoarece numrul de procese concurente nu este limitat, aceast schem permite execuia unui mare numr de programe cu condiia s fie posibil a se divide n programe i date astfel nct fiecare execuie s ncap n RAM. 6.4.4. Sincronizarea proceselor Sincronizarea proceselor poate fi sub controlul sistemului de operare prin intermediul conductelor de comunicaie (pipe) sau al utilizatorului, prin intermediul evenimentelor care reprezint modul de determinare al momentului n care un proces devine gata pentru execuie (READY). La un moment dat un proces se afl n execuie; blocarea procesului se poate realiza prin funcia sleep, moment n care nucleul trece toate procesele care ndeplinesc condiii stabilite, n starea gata de execuie; dintre acestea, numai un singur proces se va lansa n execuie, celelalte fiind trecute din nou n starea de blocare. Mecanismele de sincronizare prin intermediul evenimentelor privesc sincronizarea prin intermediul semnalelor sau al semafoarelor, respectiv al directivelor de sistem. Sincronizarea prin intermediul semnalelor Aa cum s-a menionat anterior, la ndeplinirea condiiilor prestabilite pentru lansarea n execuie, nucleul trece procesele n starea gata de execuie prin intermediul funciei wakeup. O alt modalitate de sesizare a unor evenimente aprute n sistem o constituie plasarea unor bii de atenie (lock-bit) n tabela de procese, nucleul efectund verificarea activrii bitului corespunztor care se asimileaz cu emiterea unui semnal la trecerea din modul sistem n modul utilizator nainte, respectiv dup blocarea fiecrui proces. La apariia unui semnal se pot ivi urmtoarele aciuni ce se execut n continuare: - terminarea procesului, cnd se afieaz de regul, i imaginea procesului n memorie n fiierul core; - aciuni specifice care sunt desemnate prin funcia: signal(nr_semnal,nr_rutin_tratare_semnal) De remarcat c dup tratarea semnalului, se revine la valorile standard ale aciunilor ce se vor executa ulterior. Un caz particular l constituie utilizarea funciei de sistem wait, care permite blocarea unui proces pn la terminarea unuia dintre fiii acestuia sau pn la recepionarea unui semnal: p=wait(&stare) unde p reprezint valoarea returnat a funciei (identificatorul de proces al fiului): -1 dac s-a recepionat un semnal, o eroare sau s-a terminat deja execuia fiilor procesului; -numrul de identificare al fiului a crui execuie s-a terminat; stare adresa unde se specific modul de terminare al execuiei iniiate de fiu. Pentru sincronizarea procesului cu un anumit fiu se poate folosi: while(wait(&stare)!=pid) care reia ciclic testarea terminrii execuiei aciunii fiului cu identificatorul pid, ceea ce evident implic blocarea procesului apelant (tatl). Sincronizarea prin semafoare Particularitatea sincronizrii prin intermediul semafoarelor const n aceea c se pot executa operaii pe o mulime de semafoare print-un singur apel de funcie. Structurile de date asociate semafoarelor sunt constituite din: - identificatorul mulimii de semafoare; - descrierea mulimii de semafoare care include: * utilizatorii care au acces la mulimea de semafoare; * numrul de semafoare al mulimii; 114

Sisteme operaionale * momentul ultimei accesri i al ultimei actualizri al mulimii semafoarelor; - descrierea semaforului care cuprinde: * valoarea semaforului; * identificatorul ultimului proces care a accesat semaforul; * numrul proceselor care ateapt ca valoarea semaforului s devin mai mare dect valoarea sa curent; * numrul proceselor care ateapt ca valoarea semaforului s devin zero. Algoritmul de execuie al unei operaii pe semafoare se desfoar astfel: a) dac semaforul operaiei este mai mare ca zero, atunci acesta se va aduna la valoarea semaforului; b) dac semaforul operaiei este zero atunci: - dac valoarea semaforului este zero, funcia se termin imediat; - dac valoarea semaforului este zero i indicatorii de condiie (flags) arat NOWAIT, funcia se termin imediat; n caz contrar: * se incrementeaz numrul de procese care ateapt ca valoarea semaforului s fie zero; * se suspend procesul curent pn cnd valoarea semaforului devine zero (prin decrementarea numrului de procese ce ateapt ca valoarea semaforului s fie zero) sau se primete un semnal prin care se efectueaz aceeai decrementare i se reia procesul. c) dac semaforul operaiei este mai mic dect zero i: - dac valoarea semaforului este mai mare sau egal cu modulul semaforului operaiei, atunci din valoarea semaforului se va scdea valoarea absolut a semaforului; - dac valoarea semaforului este mai mic dect modulul semaforului operaiei i indicatorii de condiie specific NOWAIT, funcia se va termina imediat; n caz contrar: * se incrementeaz numrul proceselor care ateapt ca valoarea semaforului s devin mai mare ca valoarea sa curent, suspendndu-se procesul curent pn cnd valoarea semaforului devine mai mare sau egal cu valoarea absolut a semaforului operaiei (cnd numrul de procese ce ateapt ca valoarea s devin mai mare ca valoarea curent se decrementeaz, iar din valoarea semaforului se va scdea valoarea absolut a semaforului operaiei sau se primete un semnal (cnd numrul de procese care ateapt ca valoarea semaforului s devin mai mare dect valoarea curent se decrementeaz, iar procesul suspendat se reia). Sincronizarea prin directive de sistem Sincronizarea se poate realiza i printr-o serie de funcii disponibile utilizatorului cum sunt: kill(identificator_proces,numr_semnal); care realizeaz trimiterea unui semnal pentru un proces; pause(); realizeaz blocarea procesului curent pn la primirea unui semnal; allarm (numr_secunde); trimite un anumit semnal (ntrerupere de ceas) dup intervalul de timp specificat n numr de secunde. 6.4.5. Comunicaia ntre procese La sistemele de operare UNIX este necesar realizarea unor modaliti practice de comunicaie ntre procese; mecanismele actuale permit alternativele prezentate n continuare. Comunicaia prin fiiere Comunicaia prin intermediul fiierelor ofer avantajul simplitii de realizare i o modalitate direct prin care se poate efectua comunicarea. Dezavantajul const n aceea c este sarcina programatorului s controleze accesul concurent, prin testarea ciclic a momentului eliberrii zonei critice. Exemplu while ((f=creat("fiier",0111))<0) sleep(2); < zona critic > 115

Capitolul 6 Sistemul de operare UNIX unlink("fiier"); prin care primul proces care reuete s creeze fiierul, va trece la execuia instruciunilor din regiunea critic; pn ce nu va executa funcia unlink, orice alt apel al funciei de creare a unui fiier (creat), va bloca procesul prin apelul funciei sleep. Comunicaia prin fiiere de tip pipe Fiierele de tip pipe sunt fiiere obinuite la care ns operaiile de citire/scriere se realizeaz ntr-o ordine prestabilit FIFO (First Input First Output); aceste fiiere sunt tranzitorii, datele citite ntr-o manier stricta a ordinii n care au fost scrise respectnd regula de sincronizare productor/consumator (o dat citit dintr-un fiier nu mai poate fi reluat, iar memorarea se face ca la orice fiier utiliznd ns numai blocuri adresate direct). La UNIX exist dou tipuri de fiiere pipe, fiecare genernd anumite particulariti ale modului n care se realizeaz comunicaia: 1) fiiere fr nume care se creaz cu directiva pipe(p) unde p reprezint descriptorul de fiier astfel: p[0] pentru citire p[1] pentru scriere. De remarcat c n blocurile alocate fiierelor (de regul numai primele 10 blocuri de disc) alocarea se realizeaz conform algoritmului Round-Robin. Scrierea mrete dimensiunea fiierului iar citirea o micoreaz; dac un proces ncearc s scrie un articol ce depete capacitatea fiierului, nucleul execut transferul pn la umplerea acestuia, apoi blocheaz procesul; cnd se citete din acest fiier se poate scrie din nou, dar s-ar putea s existe mai multe procese care ateptau scrierea n fiier ducnd la apariia competiiei. Comunicaia prin fiier pipe fr nume se poate realiza numai ntre un proces i fiii si, deoarece fiierul pipe nu se identific dect prin descriptorul su i intrrile n tabela cu fiiere deschise n zona de procese ale utilizatorului, aceasta fiind motenit de ctre fiii si; astfel, zonele de date ale proceselor nu pot fi partajate n mod normal. 2) Fiierele pipe cu nume ofer cteva faciliti comparativ cu fiierele pipe fr nume: - se creaz ntr-un director ca orice fiier obinuit prin directiva mknod cu tipul fiierului 010000; - la deschiderea sa prin directiva open, se poate specifica blocarea procesului ce ncearc s deschid pentru citire un fiier pipe nedeschis anterior pentru scriere; - se va terge explicit prin directiva unlink; - datorit unui nume de identificare este permis accesarea lui de ctre orice procese independente. Comunicarea prin zone de memorie comune Zonele de memorie comune permit proceselor s utilizeze n comun, o zon de memorie prin transferul unei zone din spaiul virtual al proceselor; accesul este controlat integral de programator. O zon de memorie comun este definit prin: - identificator; - segment de memorie; - o structur de date ce include: * numrul de identificare al utilizatorului care a creat zona, al utilizatorului curent i al grupului; * dimensiunea segmentului; * identificatorul procesului care a accesat zona de memorie; * numrul de procese care partajeaz aceast zon; * alte informaii. Comunicarea prin cozi de mesaje Principiul de comunicaie prin intermediul cozilor de mesaje const n comunicarea prin intermediul unei cozi circulare de mesaje gestionat de nucleul sistemului de operare. Transmiterea se realizeaz cu sincronizare, deci procesele ce solicit primiri de mesaje se 116

Sisteme operaionale vor bloca pn ce recepioneaz mesajul solicitat, iar cele ce doresc s emit, se vor bloca dac nu exist nici un proces care s recepioneze iar coada de mesaje este plin. Mesajele ce se transmit sunt caracterizate printr-un tip (reprezentat printr-un numr la alegere), iar recepia se poate face prin specificarea tipului. 6.4.6. Gestiunea fiierelor speciale Toate operaiile de intrare/ieire sunt privite ca operaii cu fiiere, Shell nerecunoscnd existena unitilor periferice, deci Kernel ascunde unitile fizice reale sub forma unor fiiere aparente. Fiecare unitate fizic este nzestrat cu un program special (driver) care translateaz aciunile solicitate de unitile virtuale astfel nct utilizatorul poate comunica cu orice unitate ataat sistemului fr nici o deosebire, dac aceasta dispune de driverul corespunztor. Deoarece aceste fiiere sunt deosebite de fiierele utilizator, ele sunt referite ca fiiere speciale de tip caracter sau bloc, fiind recunoscute dou tipuri de uniti periferice (disc i terminal) a cror inod-uri conin: - numrul major- indic tipul dispozitivului; - numrul minor- indic numrul unitii. Fiierele disc sunt organizate fizic n blocuri de 512 bytes, fiecare fiier avnd alocat un numr ntreg de blocuri. Blocurile nu trebuie s fie neaprat contigue pe disc, spre deosebite de alte sisteme ce impun acest lucru. Atribuirile standard pentru fiiere implicit sunt: 0 fiier standard de intrare - tastatur; 1 fiier standard de ieire - ecranul terminalului; 2 ecranul de intrare al terminalului, ce servete gestionrii mesajelor de eroare i a informaiilor de diagnostic. Identificarea fiierelor se realizeaz prin: - intrrile din directori care identific fiierele printr-un numr de index asociat fiecrui fiier; numrul de index pentru orice volum fizic, este punctator ntr-o alt tabel rezident pe volum (index-list); - intrrile n lista de indeci ale fiecrui volum, conin un numr de intrri numite inod-uri, motiv pentru care lista de indeci se mai numete tabel de inod-uri; - un inod conine o serie de informaii cu privire la fiecare fiier: * numrul de identificare al user care a creat fiierul; * starea de protecie a fiierului (ReadOnly,Open,etc); * 13 cuvinte ce arat blocurile unitii ocupate de fiier; * dimensiunea fiierului; * data la care a avut loc ultima modificare; * de cte ori a fost referit n directori; * biii de identificare a directorilor, fiierelor speciale i a fiierelor mari.
I - list Director Nume Numr fiier index Tabela fiierelor inod } 64 bytes

64 bytes

Fig. 6.12. Identificarea unui fiier pe disc Corespondena nume fiier-index este disponibil prin comanda ls-i i se numete legtur (link), aceasta servind drept mijloc de identificare i gestiune a fiierului; alte comenzi ce afecteaz legturile: mv - mut legtura; 117

Capitolul 6 Sistemul de operare UNIX ln - creaz o legtur; rm - terge o legtur; Cnd se lucreaz cu un fiier n program, n RAM exist o alt structur ce aparine nucleului (File Table) unde se copiaz un inod din i-LIST, dar zona alocat n memorie va avea 64 B ai inod-ului plus o zon ce conine informaii necesare n timpul lucrului (pointeri de citire/scriere, contor pentru procesele ce folosesc fiierul, etc.). Ca i n MS-DOS, fiierele se identific n program printr-un FD (File Descriptor). Fiecare proces are o zon de informaii n care se pstreaz toate FD - urile pentru fiierele deschise n timpul lucrului i o zon de cod a procesului neaparinnd nucleului ci n UOF (User's Open File). Accesul la sistemul de fiiere se face la trei nivele: 1) prin utilitare - nivelul 1; 2) prin funcii de bibliotec <stdio.h> - nivelul 2 care apeleaz 3); 3) prin apeluri de sistem - nivelul 3: open, close, read, write prin care se gestioneaz fiierele la cel mai sczut nivel. Pentru reducerea numrului operaiilor de intrare/ieire la periferice ce lucreaz la nivel de bloc, nucleul organizeaz n memoria intern o zon de tampone cache (structuri de date software) diferite de memoria cache. Tampoanele cache sunt organizate n dou liste dublu nlnuite (unele putnd face parte din ambele); lista tampoanelor n uz este organizat conform unei funcii de dispersie (hashing) ce ine seama de numrul logic al dispozitivului periferic i numrul blocului al crui coninut se ncarc n zona de date ataat tamponului. Funciile sunt apelate de nivelul inferior al sistemului de gestiune al fiierelor (SGF).

118

Sisteme operaionale

EXERCIII 1. Care sunt principalele aspecte ce justific oportunitatea sistemului de operare UNIX ? 2. S se efectueze o comparaie ntre MS-DOS i UNIX la nivelul caracteristicilor generale. 3. S se identifice principalele componente ale sistemelor de operare MS-DOS i UNIX prin analogie. 4. Ce tipuri de fiiere recunoate UNIX spre deosebire de MS-DOS ? 5. Care sunt componentele nucleului la UNIX ? Se regsesc acestea i la MS-DOS ? Motivai rspunsul. 6. Identificai strile unui proces la UNIX i a modului prin care un proces trece dintr-o stare n alta. 7. Cum se execut planificarea proceselor la UNIX ? 8. Specificai mecanismele de sincronizare a proceselor la UNIX; n ce const fiecare dintre acestea ? 9. Prin ce modaliti practice se asigur comunicaia dintre procese la UNIX ? 10. n ce const gestiunea fiierelor speciale la UNIX ?

119