Sisteme de operare

SISTEMUL DE OPERARE
Orice sistem de calcul electronic nu poate sa asigure prelucrarea automata fara existenta unui sistem de operare. Sistemul de operare este partea de software de baza care asigura gestiunea tuturor resurselor unui sistem de calcul. Evolutia starilor unui sistem de calcul se face pe baza execuţiei unui program aflat în memoria internă a calculatorului. Un program este o succesiune de instructiuni care materializeaza un algoritm si care converg catre solutia problemei ce se cere rezolvata. Lansarea în executia a oricarui program este făcută de catre sistemul de operare. Dupa lansare, sistemul de operare preda controlul programului utilizator. La sfârsitul executiei programul reda obligatoriu controlul sistemului de operare. Sistemul de operare este si el o colectie de programe (rutine si subrutine) care asigura functionarea eficienta a sistemului de calcul. O secvenţă de instrucţiuni posedă controlul atâta timp cât microprocesorul execută instrucţiuni din secvenţa respectivă. Exista trei categorii importante de programe: A. Programe de aplicatie care asigura rezolvarea unor probleme specifice si care se numesc si programe utilizator; aceste programe asigura efectuarea calculelor si prelucrarea datelor în concordanta cu algoritmii de rezolvare a problemelor practice. Ele fac parte din software-ul aplicativ. B. Programe de sistem care au rolul de a coordona întreaga activitate a sistemului de calcul, asigurând comanda electronica a tuturor circuitelor hardware care compun sistemul. Ele constituie software-ul de baza si sunt elementele care “dau viata” unui sistem de calcul. Totalitatea acestor programe alcatuiesc sistemul de operare al calculatorului. Fara sistem de operare calculatorul nu este decât un “instrument mort”, inutilizabil. Sistemul de operare este proiectat sa faciliteze utilizarea eficienta a calculatorului si sa asigure dezvoltarea si executia programelor de aplicatie. C. Programe utilitare care au rolul de a asigura servicii rapide de exploatare si gestiune a unor resurse fizice ale calculatorului. Ele se situeaza undeva între programele de aplicatie si cele de sistem. Pe măsură ce aceste programe se dovedesc a fi extrem de utile, ele pot fi introduse în software-ul de bază. Sistemul de operare este scris pentru un anumit tip de calculator, prin urmare ele nu pot fi folosite pe orice sistem, ci numai pe platforma hardware pentru care a fost proiectat.

3

Sisteme de operare

Orice sistem de operare este constituit dintr-o colectie integrata si unitara de programe de sistem care ofera utilizatorului toate facilitatile de dezvoltare a programelor de aplicatie, precum si facilitati de folosire eficienta a întregului arsenal hardware a calculatorului. Sistemul de operare este interfata dintre hardware-ul calculatorului si utilizatorul reprezentat de programele sale de aplicatie. Sistemele de operare sunt organizate pe doua niveluri: a. Nivelul fizic care asigura comanda electronica, fizica, a tuturor compunentelor sistemului de calcul electronic. Acest nivel este cel mai apropiat de partea electronica si se realizeaza printr-un sistem de întreruperi (o întrerupere este materializata de un semnal electronic) care semnalizeaza aparitia anumitor evenimente în sistemul de calcul si care da controlul automat unor rutine de tratare a întreruperilor situate pe nivelul logic. Rutinele de tratare a întreruperilor proceseaza întreruperile prin analiza, semnalarea si diagnosticarea lor. Utilizatorul are acces direct la acest nivel doar prin intermediul limbajului de asamblare (la PC cu ajutorul instrucţiunii int nh, unde n este numărul întreruperii exprimată în hexazecimal), sau prin intermediul limbajelor care permit prelucrarea secventelor de asamblare.
MEMORIA INTERNA HARDWARE
SISTEM DE OPERARE PROGRAME APLICATIE

UTILIZATOR

Intreruperi

Comenzi Macroinstructiuni Limbaje de programare Mesaje

Program de aplicatie 1 ............ ............ Program de aplicatie n

Figura 1. Nivelurile la care lucrează Sistemul de operare Sursa: R. Mârşanu – Sistemele de operare MS-DOS şi UNIX, Ed. Tehnică, Bucureşti 1995, pag.18 b. Nivelul logic este cel mai apropiat de utilizatorul sistemului de calcul si interfateaza cu acesta prin:

4

Sisteme de operare

- comenzi adresate sistemului de operare, comenzi care specifica executia imperativa a anumitor functii sau subfunctii ale sistemului de operare; - macroinstructiuni care sub controlul sistemului de operare se expandeaza în programe de aplicatie sau a unor macrodefinitii care au functii speciale; - limbaje de programare; - mesaje destinate utilizatorului. Utilizatorul reprezentat de programele de aplicaţie aflate în memoria internă, poate introduce comenzi, da macroinstrucţiuni de executat, fie prin intermediul unor limbaje de programare, primind eventuale mesaj de răspuns (sau de eroare) de la sistemul de operare, care face ca partea de hardware a sistemului de calcul să răspundă nevoilor proprii (aceste lucruri pot fi observate în sinteza oferita de figura 1).

5

Asigurarea si acordarea unor facilitati de interes general cum sunt: . . . Planificarea executiei programelor dupa criterii de deservire care sa duca la utilizarea eficienta a unitatii centrale de prelucrare a datelor. 4. . Gestionarea resurselor calculatorului si alocarea resurselor necesare executiei programelor de aplicatie si a programelor utilitare prin: . Multitasking adica executia simultana a mai multor programe. . 3. Funcτ iile sistemului de operare Un sistem de operare de foarte bună calitate trebuie sa asigure simultan îndeplinirea urmatoarelor functii.capturi de imagini şi sunet etc.catalogarea şi întreţinerea bibliotecilor. Depistarea. pentru a-şi îndeplini rolul său de interfaţă între hardware şi utilizatori: 1. . Lansarea în executie.compresia si decompresia automata a memoriei externe. a operatiilor de intrare/iesire si de-pistarea erorilor în lucrul cu periferia. acordând timpul unitatii centrale în functie de politica de deservire proprie sistemului de operare. .identificarea programelor ce urmeaza a fi executate. asigurarea condiţiilor de securitate şi confidenţialitate a datelor. la nivel fizic.Sisteme de operare 1. 2. 6 . Gestiunea executiei mai multor programe se face prin urmarirea modului de executie a instructiunilor care compun programele.conversii de suporturi de informatii. 5.identificarea datelor si protectia colectiilor de date necesare executiei programelor. .interclasarea datelor.alocarea statica sau dinamica a memoriei interne si a dispozitivelor periferice necesare executiei.sortarea datelor. 6. Asistarea executiei programelor de aplicatie prin asigurarea comunicatiei calculator-utilizator atât la nivel hardware cât si software. 7. diagnosticarea si traterea erorilor prin utilizarea unor rutine specializate specifice sistemului de operare respectiv. identificarea resurselor necesare executiei corecte a acestor programe.

9. lansare si executie a programelor de aplicatie prin oferirea unui: . . . Asigurarea posibilitatilor de pregatire. 7 .Sisteme de operare 8. 10.editor de legaturi pentru legarea modulelor obiect (provenite din compilarea în diverse limbaje) si obtinerea formatului executabil.editor de texte pentru introducerea si modificarea comenzilor sau programelor sursa. .bibliotecar care sa permita retinerea în biblioteci specializate de diferite formate a modulelor obiect sau executabile.limbaj de programare pentru obtinerea modulelor obiect. Protectia informatiilor şi securitatea datelor pe toate tipurile de suporti de informatii. Adaptarea din mers a configuratiei hardware a sistemului de calcul în functie de posibilitatile financiare de care dispune utilizatorul.încarcator care sa asigure încarcarea programului în memoria interna si lansarea lui în executie. Aceasta ultima functie este prezentata în figura 2. .

Sisteme de operare ALTE DISPOZITIVE PERIFERICE DE INTRARE EDITOR TEXTE PROGRAM SURSA COMPILATOR/ TRANSLATOR CORECTII ERORI? PROGRAM OBIECT EDITOR DE LEGATURI BIBLIOTECI UTILIZATOR BIBLIOTECI SISTEM PROGRAM EXECUTABIL INCARCATOR LANSARE IN EXECUTIE Figura 2. pag. Mârşanu – Sistemele de operare MS-DOS şi UNIX.19 8 . Ed. Bucureşti 1995. Tehnică. Dezvoltarea programelor Sursa: R.

Sistemele de operare permit utilizatorului sa-si realizeze propriile programe care pot fi rezidente.Sisteme de operare 2. Componentele unui Sistem de operare Un sistem de operare este constituit din doua componente importante: 1. iar restul sunt componente tranzitorii. Încărcarea componentelor din memoria externă în memoria internă Functiile care revin rutinelor de comanda si control RCC sunt: a.TSR Alte programe de aplicatie Figura 3. 2. Componentele care se afla în permanenta în memoria interna se numesc componente rezidente. lansarea si urmarirea executiei lucrarilor. diagnosticarea si tratarea evenimentelor deosebite (întreruperi si semnale de eroare) care pot apare în timpul executiei programelor. MEM ORIA EXTERNA MEM ORIA INTERNA NUCLEUL (Componenta rezidenta) COMPONENTE TRANZITORII ALE SO Program de aplicatie (Tranzitoriu) Program de aplicatie (Rezident) . O parte din componentele sistemului de operare sunt pastrate în memoria interna pe toata durata sesiunii de lucru. 9 . La aceste componente unii autori mai adauga si programele utilitare pe care le numesc programe de serviciu. Planificarea. Rutinele de comanda si control (RCC) care îndeplinesc celelalte functii ale sistemului de operare. Nucleul sistemului de operare care îndeplineste principalele functii curente . iar o altă parte sunt încarcate dupa necesitatile curente dictate de evolutia sistemului în spatiul starilor. c. Administrarea resurselor fizice hardware ale sistemului de calcul. Depistarea. b. în rest toate programele utilizator sunt programe tranzitorii (vezi figura3).

Sisteme de operare Toate aceste functii sunt supervizate si controlate de nucleul (rezident) al sistemului de operare. Acesta este motivul pentru care nucleul mai este numit supervizor sau monitor. 10 .

oferirea de facilitati pentru lucrul cu dispozitivele periferice ale sistemului.încarcarea.Sisteme de operare 3.gestiunea alocarii resurselor hardware si software ale sistemului de calcul etc. Un astfel de sistem de operare are ca principale functii: .asigurarea posibilitatii de dialog cu utilizatorul prin intermediul interpretorului de comenzi (subcomponenta a nucleului). lansarea si executia programelor. permite lucrul cu memorie virtuala. care permit lucru în regim multitasking si memorie virtuala. . B. lansarea si executia programelor. Monotasking – sisteme de operare care sunt capabile sa execute la un anumit moment doar un singur task (sarcina sau program). este portabil pe toata gama de sisteme de calcul. Sisteme de operare pentru microcalculatoarele PC Din punct de vedere al numărului de programe simultan aflate în execuţie. . . M MacIntosh DOS proiectat pentru PC-uri de tip Apple MacIntosh implementate cu microprocesoare MOTOROLA din seria 68XXX. M OS/2 Operating System 2 fiind o colaborare a firmelor IBM si MicroSoft (momentan intrat în con de umbra). pentru microcalculatoarele PC exista doua tipuri principale de sisteme de operare: A.asigurarea posibilitatii de dialog cu utilizatorul prin intermediul interpretorului de comenzi (subcomponenta a nucleului). Multitasking – sisteme de operare care asigura partajarea resurselor între mai multe task-uri (programe) care se executa simultan. M UNIX creat initial pentru minicalculatoare. . M DR-DOS Digital Research Disk Operating System utilizat pe calculatoare având microprocesoare INTEL. . M Apple DOS utilizat pe calculatoare Apple.încarcarea. este mono user monotasking. multitasking si 11 . Un astfel de sistem de operare are ca principale functii: .oferirea de facilitati pentru lucrul cu dispozitivele periferice ale sistemului. Cele mai cunoscute sisteme de operare pentru calculatoarele PC sunt: M MS-DOS MicroSoft Disk Operating System este cel mai vechi si mai raspândit sistem de operare pe platformele INTEL.

.compatibilitati hardware. existent la dispozitia tuturor utilizatorilor. M WINDOWS NT este cel mai complet sistem de operare cu larga utilizare.multitasking si multiuser.poate lucra cu 650 de imprimante. 50 de dispozirive periferice pe statie. la fel si aplicatiile existente pe piata proiectate pentru el. îl ridica la rangul de cel mai deschis. a cariu caracteristici semnificative sunt: .viteza de operare. Exista mai multe implementari pe PC dar nu dintre cele mai facile pentru utilizatorii obisnuiti.facilitatile oferite utilizatorului si programatorului. ‘98 si 2000) sunt cele mai raspândite sisteme de operare la ora actuala. . . . adaptoare video VGA.existenta aplicatiilor software compatibile.lucreaza la fel de bine si pe platforme INTEL obisnuite (de la 80386 pâna la Pentium III) si pe platforme RISC. Pentru alegerea unui sistem de operare adecvat. .posibilitatea extensieu si acceptarii de echipamente specifice. Versiunile care lucreaza cu interfata XWINDOWS sunt foarte utilizate. utilizatorul trebuie sa se orienteze dupa îndeplinirea urmatoarelor criterii: . . . M WINDOWS ‘9X (‘95. XVGA. 12 . cel mai puternic si cel mai fiabil sistem client-server.lucreaza si cu mono procesor si cu multiprocesor. mai multe adaptoare de retea.sistemul de operare WINDOWS NT precum si serverul WINDOWS NT. Sunt sisteme multitasking si multiuser. .Sisteme de operare multiuser. ‘97. SVGA.

Între aceste limite este nevoit proiectantul sa-si stabileasca strategia de proiectare. . Proiectantii sistemelor de operare se straduie sa le realizeze astfel încât sa utilizeze cat mai eficient fiecare resursa a sistemului de calcul: timpul unitatii centrale.executia unui numar mare de lucrari în unitatea de timp prin lansarea în executie a lucrarilorcu timp redus de executie.fiabilitatea si stabilitatea sistemului cât mai mare. periferia de intrare si de iesire etc. Aprecierea eficientei se face prin analizarea costului sistemului de calcul si a software-ului.reducerea timpilor de asteptare a unitatii centrale (“timpi morti”) prin ececutia unor lucrari cu volum mare de calcule (care utilizeaza UC-ul) si cu un numar mic de operatii de intrare/iesire (care pun în asteptare UCul). care trebuie sa fie cât mai redus. cu o configuratie hardware minima.volumul de lucrari si date intrate în sistem sa fie cât mai mare. în directa concordanta cu obtinerea rapida a rezultatelor. . . . socotit ca perioada de timp scursa între momentul lansarii cererii si momentul obtinerii raspunsului. Pentru optimizarea încarcarii la maximum a unitatii centrale si a procesoarelor de intrare/iesire. . .protectie si securitate sporita a informatiilor.accesibilitatea ridicata si interfata prietenoasa cu utilizatorul.timpul de raspuns.încarcarea la capacitate maxima a dispozitivelor de intrare/iesire prin rularea unor lucrari având volum mare de operatii de intrare/iesire si calcule mai putine. spatiul de memorie externa.raportul cost/performanta cât mai redus. Pentru a complica si mai mult 13 . La alegerea strategiilor de planificare a lucrarilor trebuie cunoscute foarte exact obiectivele de realizare simultana: . Prin utilizarea eficienta a unui sistem de calcul întelegem executarea unui volum cât mai mare de lucrari.conectivitate marita atât la nivel local cât si la distanta.Sisteme de operare 4. lucru extrem de greu de facut. Indicatorii utilizati pentru aprecierea performantelor unui sistem de calcul electronic sunt: . . Tehnici de exploatare a sistemelor de calcul electronic Rolul principal al unui sistem de operare este de a utiliza eficient fiecare resursa hardware oferita de sistemul de calcul electronic. fiecare sistem de operare foloseste o politica de planificare riguroasa specifica lui. spatiul de memorie interna. ceea ce explica si plaja extrem de variata de tipuri si versiuni de sisteme de operare. .

Sistemul de operare are în evidenta la un moment dat un singur program.1. Aceste resurse constau în: memoria disponibila pentru executia programelor utilizator. 4. La întâlnirea unei operatii de intrare/iesire UC-ul da controlul procesorului specializat în astfel de intrari/iesiri care efectueaza transferul în/din memoria interna.33 Într-un sistem de operare cu monoprogramare. multiprogramarea. time-sharing-ul si multiprelucrarea. Mârşanu – Sistemele de operare MS-DOS şi UNIX. caruia-i sunt alocate toate resursele hardware ale sistemului de calcul electronic. La terminarea operatiei de intrare/iesire. pag. spooling-ul. timp în care UC-ul asteapta finalizarea operatiilor cu perifericele. toate echipamentele periferice din configuratia calculatorului. Ed.Sisteme de operare lucrurile factorul “concurenta” este extrem de important. Pentru timpilor de asteptare a unitatii centrale. UC t1 Canal t2 t3 t4 t1 t2 t3 t4 Figura 4. un program solicita pe parcursul executiei sale diferite operatii de intrare/iesire. procesorul specializat va transmite o întrerupere catre UC pentru a-l anunta de terminarea operatiei si pentru ca UC-ul sa continue executia secventei de instructiuni a programului aflat în executie curenta. supravegheate de catre procesorul de comunicatii (controller). Monoprogramarea Monoprogramarea este o tehnica folosita de unele sisteme de calcul care presupune executia secventiala (seriala) a unor lucrari pe un anumit sistem de calcul. Singurele procese care pot exista simultan înstrun sistem de operare bazat pe monoprogramare sunt:procesul curent de calcul si unul sau mai multe procese de intrare/iesire. Tehnică. unitatea centrala etc. unde se poate vedea sincronizarea UC-ului cu canalul în cazul 14 . sistemele de operare folosesc: monoprogramare. Proiectantii care au stiut sa tina seama cel mai bine de aspectele anterioare sunt astazi lideri mondiali în materie de sisteme de operare. Acest lucru se poate vedea în figura 4. Bucureşti 1995. Monoprogramare Sursa: R.

4. dar mai multe alte programe se afla în curs de executie. Acest tip de sisteme de operare gestioneaza un singur UC si asigura executia întretesuta a doua sau mai multe programe (task-uri. un singur program poate fi executat. ele aflându-se într-o continua competitie sau concurenta. lucru agravat si de faptul ca UCul este cea mai costisitoare componenta a unul calculator electronic. Sistemele de operare din aceasta categorie (în care se încadreaza DOS-ul) sunt cele mai putin eficiente. adica. respectiv a canalului. cu t3 momentul în care UC-ul va relua executia programului (având de data aceasta datele necesare) si cu t4 momentul în care se încheie programul. cu t2 momentul în care UC-ul are nevoie de datele solicitate dispozitivului periferic (operatia efectiva de intrare/iesire nefiind înca terminata). Executia întretesuta trebuie înteleasa astfel: în fiecare moment al prelucrarii în regim de multiprogramare. În acest fel task-urile folosesc partajat UC-ul.2. În astfel de cazuri UC-ul “someaza” nejustificat de mult. Cu toate acestea monoprogramarea impune o utilizare ineficienta a resurselor calculatorului si se apreciaza ca aproximativ 80% din timpul total de prelucrare. iar în momentul respectiv asteapta sa fie relansate în executie sau sunt în asteptarea producerii unor evenimente externe. lucru care ameloireaza partial productivitatea. t − ( t 3 − t 2) * 100 η UC = 4 t4 t − [ t1 + ( t 4 − t 3)] * 100 η Canal = 4 t4 (1) Se constata o simultaneitate a activitatii UC-ului si a canalului. pentru a desemna prelucrarea într-un sistem de calcul electronic care dispune de un singur procesor central (UC). în mod uzual. o parte dintre instructiunile lor au fost executate. În realitate. Ineficienta monoprogramarii este mai accentuata în cazul programelor de aplicatie care lucreaza cu date multe (memorate în memoria externa) dar cu calcule foarte putine. Daca notam cu t1 momentul în care UC-ul initiaza o operatie de intrare/iesire. Termenul de multiprogramare este utilizat. putem calcula randamentele de utilizare ale UC-ului. procese). unitatea centrala nu este utilizata. La astfel de aplicatii timpul de utilizare al UC-ului este sub 5% sau chiar mai putin. Multiprogramarea Sistemele de operare care lucreaza în multiprogramare se numesc si sisteme multitasking. cu formulele (1). partajarea UC-ului se realizeaza pe 15 . asa cum este cazul aplicatiilor financiar-contabile.Sisteme de operare monoprogramarii.

Bucureşti 1995. în cazul existentei unui singur procesor (UC).Sisteme de operare intervale de timp distincte. Tehnica aceasta presupune existenta simultana în memorie a n programe. Mârşanu – Sistemele de operare MS-DOS şi UNIX. Initierea operatiei I/O pentru Task1 UC Task1 Intrerupere terminare I/O Task1 Terminarea executiei celor 3 task.uri t Initierea operatiei I/O pentru Task2 UC Task2 Intrerupere terminare I/O Task2 Initierea operatiei I/O pentru Task3 UC Task3 Inactivitate a UC-ului Inactivitate canal Intrerupere terminare I/O Task 3 t t Inactivitate canal Canal Inactivitate canal Inactivitate canal t Operatie I/O pt. fara perturbarea celorlalte n-1 programe coexistente simultan în memoria interna.existenta unu imecanism de protectie între cele n programe care sa permita executia unui program. Conceptual. . numite cuante de timp. Tehnică. Task2 pt. Ed. . distribuirea timpului-procesor mai multor task-uri asa cum se observa în figura 5. multiprogramarea este o tehnica de exploatare a unui sistem de calcul electronic care simuleaza existenta a n procesoare virtuale pe un singur procesor fizic. Task1 t2 t3 t1 Operatie I/O Operatie I/O pt.36 Notam cu: t1 . Sincronizarea UC-ului cu activitatea Canalului pentru 3 Task-uri Sursa: R. motiv pentru care controlul UC-ului se da lui Task2).existenta unui mecanism de gestiune a resurselor. . pe care le solicita programele aflate în executie. Task3 t10 t11 t4 t5 t6 t7t8 t9 t12 t13 t14 t15 t16 t17 t18 Figura 5. atât fizice cât si logice.existenta simultana a n programe încarcate în memoria interna.existenta unui mecanism trecere a controlului de la un program la altul. Simultaneitatea executiei presupune. Întreteserea executiei task-urilor creaza ilizia simultaneitatii. Multiprogramarea este caracterizata de: .momentul în care se solicita initierea unei operatii de intrare/iesire (canalului) de catre unitatea centrala în favoarea lui Task1. pag. t3 16 . t2 momentul în care Task1 ar avea nevoie de datele solicitate Canalului (dar înca nu le are disponibile. pentru a se putea executa toate cele n programe.

momentul în care se termina operatia de intrare iesire initiata de Task2 (Canalul devine disponibil si se poate lansa operatia de intrare/iesire initiata de Task3 si aflata în coada de asteptare a Canalului) finalizarea operatiei se va manifesta printr-o întrerupere adresata UC-ului. operatia se trece în coada de asteptare). t10 .momentul terminarii executiei tuturor task-urilor si predarea controlului UC în favoarea executiei rutinei din nucleul sistemului de operare care este capabila sa lanseze alte tascuri în executie. t5 . Aceste randamente sunt exprimate în procente. motiv pentru care controlul UCului se da lui Task3).se va relua executia instructiunilor din Task1. t6 .Sisteme de operare momentul în care se termina operatia de intrare/iesire (datele ar putea fi folosite de Task1.alocarea resurselor hardware care utilizeaza respectiva prioritate. t7 .momentul în care se solicita initierea unei operatii de intrare/iesire canalului de catre unitatea centrala în favoarea lui Task3 (canalul fiind ocupat. t11 . t9 .momentul în care UC se elibereaza de Task3 (care ar avea nevoie de datele operatiei de intrare/iesire care tocmai este în curs) în acest caz Task1 având deja datele solicitate înca de la momentul t3 . t4 momentul în care se solicita initierea unei operatii de intrare/iesire canalului de catre unitatea centrala în favoarea lui Task2 (Canalul fiind disponibil sa execute operatia de intrare/iesire). dar controlul se afla la Task2 din care se executa secvential instructiuni) finalizarea operatiei se va manifesta printr-o întrerupere adresata UC-ului. t8 . Procesul de planificare a predarii controlului UC-ului este facut de catre nucleul sistemului de operare care dispune de doua funtii importante: . t12 . i în cazul multiprogramarii se pot calcula randamentele pentru UC si Canal dupa expresiile (2).momentul în care se încheie executia lui Task2 (UC-ul devine diaponibil dar trebuie sa “someze” deoarece operatia de intrare/iesire initiata de Task3 nu este finalizata). dupa o politica de deservire proprie sistemului de operare.momentul în care se lanseaza operatia aflata în coada de asteptere (în favoarea lui Task3).momentul în care se încheie operatia de intrare/iesire initiata de Task3 (se reda controlul UC-ului lui Task3 continuându-se secventa de instructiuni a acestuia) finalizarea operatiei se va manifesta printr-o întrerupere adresata UC-ului si t13 . 17 .asigurarea unei ordini de prioritati.momentul în care Task2 ar avea nevoie de datele solicitate Canalului (dar înca nu le are disponibile.momentul în care se încheie executia lui Task1 si controlul este predat lui Task 2 (care are dej datele solicitate Canalului). .

a lucrararii care necesita cel mai mic spatiu de memorie. First Output).se aplica politica primul sosit primul servit sau FIFO (First Input.LCFS .Round Robin . Last Served .Largest Memory requirment First .FCFS . pentru lansarea prioritara în executie.Sisteme de operare t − ( t12 − t11) * 100 η UC = 13 t13 t − [ t + ( t 4 − t 3) + ( t13 − t12)] * 100 η Canal = 13 1 t13 (2) Algoritmii de planificare a task-urilor presupun ordonarea acestora pe baza de prioritate. Last Served . a lucrararii care necesita cel mai lung timp de prelucrare. .LMF . .First Come.se aplica politica de deservire.se aplica politica primul sosit ultimul servit sau FILO (First Input. . pentru lansarea prioritara în executie. urmarindu-se minimizarea timpului total.se aplica politica ultimul sosit primul servit sau LIFO (Last Input.se aplica politica de deservire.Shortest processing Time First .LTF . O astfel de abordare ar duce la 18 . pentru lansarea prioritara în executie. . Last Output).Last Come. First Served .Longest processing Time First .SFT . La ora actuala exista sisteme multiprogramare care inplementeaza unul din algoritmii (politicile) de deservire: . First Served .FCLS . Last Output). pentru lansarea prioritara în executie.SMF .Smallest Memory requirment First . .se aplica politica de deservire circulara acordându-se câte o cuanta de timp fiecarui task aflat în executie. a lucrararii care necesita cel mai mic spatiu de memorie.se aplica politica de deservire.se aplica politica de deservire.LCLS . First Output). .First Come. . . a lucrararii care necesita cel mai scurt timp de prelucrare.Last Come. sub forma unor fire de asteptare (din acest punct de vedere acestea sunt considerate procese de nastere si moarte). O simultaneitate a executiei lor presupune existenta mai multor procesoare care ar executa 1/1 (un task executat pe un procesor) aceste lucrari.se aplica politica ultimul sosit ultimul servit sau LILO (Last Input. Precizam înca o data ca în sistemele de operare multiprocesor este vorba de executia mai multor task-uri si nu de executia lor simultana. urmarindu-se minimizarea timpului de trecere prin sistemul ce calcul electronic.

în asteptarea viitoarelor progrese tehnologice care. când editorul de texte este ocupat cu asteptarea tastarii continutului textului. terminarea unei operatii de intrare/iesire. sa speram. Acest lucru presupune neaparat cunoasterea de catre sistemul de operare a demararii fiecarei operatii de itrare/iesire si carui proces îi este destinat. Multiprogramarea este usor de observat de catre utilizator îndeosebi la prelucrarea textelor. constituite ca task-uri distincte. numele task-ului. orice om oricât de rapid (fie chiar si celebrul personaj din Mask) va crea între doua tastari succesive niste “mici vesnicii” care ar crea o risipa inutila a timpului de procesare. Un TCB contine: un pointer de înlantuire la task-ul urmator. asteptarea producerii evenimentelor externe este sesizata de rutina de tip SHELL. Fiecarui task îi este asociat câte un TCB (Task Control Block) care tine evidenta evolutiei task-ului. programele de aplicatie. din partea operatorului uman. vor interoga totdeauna sistemul de operare cu privire la producerea unui eveniment extern. Diagrama de tranzitie a task-urilor este data în figura 6. Din acaest motiv se are grija ca unui task sa-i fie alocat un timp de procesor numai atunci când task-ul nu asteapta producerea unui eveniment extern (de exemplu. Având în vedere timpii de comutare între task-uri.). vor fi pe masura buzunarului nostru. de ordinul milisecundelor. prioritatea taskului. apasarea unei taste. Procesarea paralela nefacând obiectul actual al interesului nostru.Sisteme de operare existenta unul sistem de calcul complex. multiprocesor care presupune executia paralela a task-urilor si care efectueaza calcul paralel (procesare paralela) si care introduce în sfera calculatoarelor paralele. De exemplu. pentru a se astepta la evenimente externe care sa consemneze terminarea operatiilor de transfer. 19 . sa ne concentram asupra conceptului de multiprogramare vazut (asa cum am precizat) ca o dulce “iluzie”. starea task-ului si un pointer la zona de date asociate task-ului respectiv. numarul de identificare al task-ului. În cadrul acestui sistem de operare. la sistemul de operare WINDOWS. miscarea mouse-ului etc.

este task-ul care tocmai are acces la resursa oferita de UC.Sisteme de operare NUCLEUL SISTEMULUI DE OPERARE TASK1 Pointer TASK2 Nume TASK1 Nr.TASKi Prioritate TASKi Stare TASKi Pointer DATEi TCBi TASKn NIL Nume TASKn Nr.program în asteptare . . task-ul a carui secventa de instructiuni se executa în momentul curent (programul su tascul activ). Asupra modulului distribuitor revine sarcina ca.Idetific.este task-ul care “doreste” sa obtina resursa de UC. dar care nu o poate obtina pentru ca este mai putin prioritar decât task-ul activ. . care-i va influenta evolutia executiei ulterioare.TASK1 Prioritate TASK1 Stare TASK1 Pointer DATE1 TCB1 TASKi Pointer TASKi+1 Nume TASKi Nr. Aceasta operatie se numeste salvarea contextului de reluare.program pregatit . sa salveze în zona de memorie a TCB-ului respectiv toate informatiile necesare reluarii în orice moment a tascului în cauza. a indicatorilor de conditii (registrul stare program) precum si adresa viitoarei instructiuni ce urmeaza a fi executata dupa reactivarea task-ului. Pentru realizarea comutarii task-urilor dintr-o starea în alta. orice SHELL a sistemului de operare care lucreaza în regim de multiprogramare dispune de un modul software specializat numit modul distribuitor sau modul dispecer. adica. Datele salvate individualizeaza (personalizeaza) task-ul deoarece printre infirmatiile salvate se afla si continutul registrilor generali.program în executie . Înlănţuirea TCB-urilor Orice program (task) care se executa sub un sistem cu multiprogramare se afla în una din starile: .Idetific.este task-ul care se afla în starea de asteptare a terminarii unui eveniment extern. care aplica politica de deservire a sistemului de operare.Idetific. în cazul opririi executiei unui task. În felul acesta se obtine o 20 .TASKn Prioritate TASKn Stare TASKn Pointer DATEn TCBn Figura 6.

Dupa efectuarea salvarilor pentru task-ul oprit.Sisteme de operare “fotografie” din momentul opririi task-ului. .elibereaza .cand se cere restartarea unui program aflat în depanare. în momentul lansarii în executie a unui program si includerea acestui TCB în firul de executie gestionat de sistemul de operare.blocheaza . astfel încat executia instructiunilor sa se faca exact din locul în care a fost oprit anterior.ordoneaza .se blocheaza programul aflat în executie si se trece în asteptare daca se executa o operatie de intrare/iesire. . Stările unui task Pentru tranzitia de la o satare la alta.preda . Prin restaurarea informatiilor din TCB-ul curent se reface contextul de activare a task-ului curent. Daca la un anumit moment este în executie task-ul i si a expirat cuanta de timp afectata 21 . . Pentru asi asigura o viziune de ansamblu asupra tuturor task-urilor. scheduler lucreaza de odicei cu liste ordonate ordinea unor prioritati. .demareaza activitatile de creare a TCB-ului asociat task-ului. sau daca a aparut un program mai prioritar si care respecta politica de deservire a sistemului de operare.porneste . functie care este da fapt un planificator. . Schema cu starile de existenta ale unui task sunt prezentate în figura 7. nucleul (din care face parte si distribuitorul) sistemului de operare realizeaza urmatoarele operatiuni: . Planificatorul decide care dintre task-urile aflate în gestiunea lui urmeaza sa fie lansat în executie si câte câte coante de timp sa-i fie alocate. Momentul în care intervine dispecerul sistemului de operare este stabilit ca urmare a deciziei unei functii apartinând sistemului de operare numita scheduler. Elibereaz PROGRAM ÎN A TEPTARE Pred Porne te Ordoneaz Termin Blocheaz PROGRAM PREG TIT PROGRAM ÎN EXECU IE Figura 7. se va face restaurarea informatiilor din TCB-ul nominalizat de modulul distribuitor pentru a fi activat.aranjarea în ordinea prioritatilor de deservire.termina . pentru lansarea task-ului cel mai prioritar aflat în starea pregatit.se preda controlul controlul unui program pregatit daca politica de deservire este LIFO.scoate din firul de executie TCB-ul asociat tascului care tocmai si-a finalizat executia.

adica task-ul activ este lasat sa se execute. atunci scheduler-ul testeaza daca nu cumva task-ul i+1se afla în asteptare si în caz afirmativ se trece la testarea starii task-ului i+2. “în pregatire” si “în executie”.înlocuire la aparitia unui task nou cu prioritate mai mare decât a task-ului în curs de executie. pâna la gasirea primului primului task aflat în starea pregatit. de pilda în defavoarea task-ului i-1 pe care-l aduce în starea pregatit. Aceeasi pierdere de timp apare si când s-a produs un eveniment extern.sistem cu interogare periodica pentru depistarea task-urilor noi si alcatiurea unei statistici care sa duca la redistribuirea dinamica a prioritatilor. Un mecanism complementar celui “Round Robin” este mecanismul “strategiei de urgenta”. Acest mecanism se poate observa în figura 8. În cadrul acestui mecanism. Acest mecanism este cunoscut sub numele de “Round Robin”..d. s.Sisteme de operare lui. urmând ca urmatorul task prioritar sa fie executat doar în momentul în care task-ul curent s-a terminat. al carui timp atribuit s-a epuizat. lista de task-uri este sortata în ordinea prioritatilor de executie. acest lucru fiind justificat prin faptul ca un task fiind mereu “în asteptare” în mod natural nu se grabeste prea mult si deci poate sa-si reduca prioritatea . Lista task-urilor aflate “în executie” prezentând interes practic doar în cazul calculatoarelor paralele (multiprocesor). dupa care se parcurge lista de TCB-uri executându-se task-ul cel mai prioritar aflat în starea pregatit. iar nucleul acestui sistem de operare poarta numele de “preemption” (dislocare sau înlocuire) si asigura de fapt înlocuirea unui task. Pentru acest tip de mecanism sunt specifice doua tipuri preemption: . urmând sa fie înlocuit de un alt task cu prioritate mai mare. Este usor de înteles ca sistemul de operare trebuie sa împiedice accesul simultan a doua task-uri la o resursa unica. atunci noul task va înlocui task-ul curent. pe care-l trece în stare de asteptare (pâna la terminarea evenimentului extern) si preda controlul urmatorului task aflat în starea pregatit din lista de prioritati. În acest fel se produce o baleere circulara a listei de task-uri. ceea ce divedeste ca aceasta solutie nu este cea mai eficienta.m. unele sisteme de operare gestioneaza liste separate pentru task-urile “în asteptare”. . cu un alt task caruia I se va atribui o cuanta de timp.a. Nu este greu sa ne închipuim ce 22 . Daca în timpul executiei task-ului i se ajunge la exectia unei operatii de intrare/iesire. atunci scheduler-ul blocheaza task-ul salvându-i contextul în TCBi. Este de la sine înteles ca aceste testari sunt consumatoare de timp de UC. Pentru evitarea pierderilor de timp datorate salvarilor/restaurarilor separate ale contextului curent de executie.

care se face prin asa-numitele “mesaje”.strategia exluderii reciproce (mutual exclusion) caz în care sistemul de operare asigura distribuirea drepturilor de acces la respectiva resursa.TASK3 Prioritate TASK3 Stare TASK3 Pointer DATE3 TCB3 TASK1 Pointer TASK2 Nume TASK1 Nr. rol extrem de complicat.Idetific. dreprul de acces la resursa unica. Pentru rezolvarea acestei probleme . pot aparea scurtcircuite (deadlock) de forma: task-ul i asteapta un mesaj de la task-ul i+1.Idetific.TASK4 Prioritate TASK4 Stare TASK4 Pointer DATE4 TCB4 TASKn Pointer TASK1 Nume TASKn Nr. imprimand fiecarea câte o lirera sau un grup de litere. motiv pentru care anumite rutine si/sau subrutine trebuie vazute de catre programator ca taskuri cooperante.TASKn Prioritate TASKn Stare TASKn Pointer DATEn TCBn TASKi Pointer TASKi+1 Nume TASKi Nr. De exemplu.Sisteme de operare “splendida babilonie” ar rezulta daca doua task-uri ar tipari la aceeasi imprimanta doua texte diferite (eventual în limbi deosebite). Mecanismul Round Robin Aceste solicitari trebuie sa constituie una din componentele de baza ale comunicarii inter-task-uri. respectiv sa predea. iar 23 .Idetific. în general. Tot sistemul de operare asigura rolul de coordonator în comunicarea mesajelor.Idetific. se folosesc doua strategii: .Idetific.TASKi Prioritate TASKi Stare TASKi Pointer DATEi TCBi Figura 8. TASK2 Pointer TASK3 Nume TASK2 Nr.TASK2 Prioritate TASK2 Stare TASK2 Pointer DATE2 TCB2 TASK3 Pointer TASK4 Nume TASK3 Nr. .strategia accesului exclusiv (exclusive access) caz în care task-ul este nevoit sa solicite.Idetific.TASK1 Prioritate TASK1 Stare TASK1 Pointer DATE1 TCB1 TASK4 NUCLEUL SIS TEMULUI DE OPERARE Pointer TASK5 Nume TASK4 Nr.

Sistemele de operare de tip spooling au urmatoarele caracteristici esentiale: . 24 .3. Lucrurile se pot simplifica daca utilizam functia “In Send Message()” care semnaleaza existenta mesajelor neachitate. în acest fel se realizeaza dispozitive virtuale de intrare/iesire care perimit urmatoarele facilitati: . .sunt sisteme care dispun de memorie externa (auxiliara) de foarte mare capacitate. .introducerea si încadrarea într-o coada de asteptare a lucrarilor înainte ca ele sa fie efectiv executate. Rezultatul este un blocaj “ilustru”. 4. procesare a datelor si iesire prin intermediul tehnicii spooling (Simultaneus Peripherial Operations On-Line). . lucru greu de rezolvat mai ales în cazul utilizarii functiei Yield() (“cedeaza trecerea”). daca nu se achita mesajul prin intermediul functiei “Reply Message()”. Multe din blocajele “neexplicabile” ale WINDOWS-ului se datoreaza nerezolvarii corecte a deadlockurilor. functie care opreste tascul curent si-l porneste pe urmatorul aflat “în asteptare”.au implementate tehnica multiprogramarii (multitasking) care permite efectuerea independenta si gestiunea automata a operatiilor de intrare/iesire si procesarea multitaskig a proceselor.gestioneaza la întreaga capacitate a dispozitivelor periferice de intrare /iesire. pe care sistemul de operare trebuie sa-l rezolve prin criterii suplimantare de comunicatie. evitându-se astfel blocajele. Prin intermediul acestui tip de sistem de operare se poat suprapune operatiile de intrare. Sistemul Spooling Activitatea acestui tip de sistem de operare este ilustrata în figura 9. pe discuri magnetice organizate în acces direct. largirea benzii de facilitati oferite utilizatorilor si executia dinamica a programelor aflate într-un sir de asteptare. se poate ajunge la un blocaj. Trebuie însa retinut ca daca un task “cedeaza trecerea” în timpul preluariii unui mesaj transmis de un alt task. Din pacate sub WINDOWS problema deadlock-urilor trebuie rezolvata de catre programator. Spooling-ul are principala sarcina eficientizarea sistemului de calcul electronic prin îmbunatatirea substantiala a randamentului de rulare. pe care apoi cu functia “Reply Message()” le poate achita.Sisteme de operare task-ul i+1 asteapta un mesaj de la task-ul i.sistemul de operare gestioneaza mai multe buffere (zone tampon) pentru intrarile si pentru iesirile asociate task-urilor.

pag. P3 si P4 asteapta sa fie încarcate în memoria interna a sistemului de calcul.37 25 . MEMORIA EXTERN CON1 Buffere pentru intr ri P1 ... Tehnică.... Mârşanu – Sistemele de operare MS-DOS şi UNIX.. si P8 se afla în executie concurentiala de tip multitasking în memoria interna a calculatorului . P5 . Ed. . Figura 9 prezinta situatia în care: lucrarile P1 si P2 tocmai se introduc de la terminalele CON1 si CON2... .schimbarea ordinii de executie a task-urilor în functie de criteriul de optimizare a resurselor hardware... . Organizarea unui sistem Spooling Sursa: R.. P4 Buffere pentru ie iri .gestiunea planificarii executiei lucrarilor. P3 P2 . în ordinea politicii de deservire implementate de sistemul de operare.. aflate în firul de asteptare la executie.. P9 . rezultatele programelor deja terminate P9 si P10 se afla în coada de listare.. P10 LPT1 P11 P1 CON2 Canal P2 MEMORIA INTERN Canal P5 P6 P7 P8 Canal LPT2 P12 Nucleul sistemului de operare UC Unitatea Central Figura 9. .Sisteme de operare .gestionarea rezultatelor în fire de asteptare la imprimare... Bucureşti 1995. în timpul executiei altor lucrari de procesat. P7. rezultatele programelor P11 si P12 sunt în plina operatiune de listare... fara a tine seama de disciplina de sosire. P6 .

în asa fel încât fiecare utilizator are impresia ca este singurul utilizator al sistemului.4. la care sute sau chiar mii de utilizatori pot folosi simultan sistemul. fara a-si da seama ca si altii o fac în acelasi timp. Tehnica consta în a împarti resursele unui calculator . 4. Sistemul de operare TimeSharing se utilizeaza la cele mai mari calculatoare electronice de tip mainframe. având mai multi utilizatori.Sisteme de operare Un astfel de sistem presupune neaparat exiatenta mai multor terminale de intrare si mai multe dispozitive periferice de iesire. Sisteme Time-Sharing Principiul Time-Sharing trebuie interpretat ca o partajare a timpului între utilizatorii sistemului de calcul electronic. 26 . legate la canale de mare capacitate de transfer.

. pag...40 Este lesne de înteles ca în momentele de vârf ale utilizarii. timpul de raspuns are tendinta evidenta de crestere.... protectia informatiilor si ale utilizatorilor. Mai trebuie retinut ca aceste sisteme de operare cu divizarea timpului ridica probleme deosebite privind alocarea resurselor hardware ale sistemului. Mârşanu – Sistemele de operare MS-DOS şi UNIX.. Tehnică... motiv pentru 27 .. Procesor de comunica ie Nucleul sistemului de operare (monitor de time-sharing) Cn n Memoria extern de instan  P5 P6 Figura 10. Sistem de operare Time-Sharing Sursa: R.. Bucureşti 1995. Ed.Sisteme de operare Dispozitive periferice de intrare/ie locale ire CON1 Disc utilizatori Canale de intrare/ie ire Disc sistem MEMORIA INTERN C1 1 P1 P2 P3 P4 .

d. . . precizam urmatoarele trasaturi esentiale: .partajarea unitatii centrale se face pe baza de cerere. pentru fiecare utilizator în parte. deoarece ele nu au o prioritate prestabilita. iar planificarea executiei lucrarii se face urmarindu-se un raspuns în timp minim.lucrarile trebuie executate în mod dinamic. lucrând programe diferite.m. iar în cazul în care lucrarea nu s-a finalizat se returneaza programul pe memoria externa si este plasat în sirul de asteptare a programelor în executie. aloca resursele de imprimare etc. . Din punct de vedere al cerintelor de ordin tehnic care se impun asupra unui sistem de operare de acest tip.alocarea resurselor programelor utilizatorului este efectuata de catre nucleul sistemului de operare numit monitor Time-Sharing si care este rezident permanent în memoria interna. . intrând si iesind din sistem în deplina independenta unii fata de altii. tot monitorul este cel care aloca spatiul de memorie interna. 28 .independenta utilizatorilor este sigurata prin alocarea unei cuante de timp pentru fiecare utilizator. Caracteristicile principale ale sistemelor time-sharing sunt urmatoarele: .a.protectia memoriei este asigurata prin atribuirea unui spatiu de memorie unic. Modul de lucru al unui sistem de operare de tip Time-Sharing este ilustrat în figura 10.utilizatorii sunt aleatori. .memoriei este efectuata printr-un mecanism de swaping al paginilor de memorie externa si interna si control acestor pagini. fara interconectare la alte retele. . timpul de Unitate Centrala.Sisteme de operare care sunt utilizate doar în institute mari de cercetare sau în aplicatii speciale.memoria interna de foarte mare capacitate (de ordinul sutelor TO) si UC-uri ultra-rapide pentru obtinerea unui timp de raspuns minim posibil. pe durata executiei lucrarii. Caracteristicile hardware ale unui sistem de calcul care sa lucreze cu un sistem operare Time-Sharing sunt urmatoarele: .programele de comanda si control sunt capabile sa trateze o multitudine de întreruperi care apar în procesul de multiplexare a rerurselor care trebuie alocate lucrarilor. încarcându-se în memoria interna (din memoria externa) un alt program care va fi lansat imediat în executie s. tratarea întreruperilor sosite de la terminale.

reducerea timpului de raspuns al sistemului pentru realizarea lucrarilor în timp minim. în functie de prioritatea acordata. . . lucru care implica transferul de informatii între memoria externa si perifericele de intrare/iesire independent de UC-ul sistemului de calcul electronic. locul de memorare si adresa pentru regasirea rapida în acces direct a datelor necesare. multiplexoare de date si linii de comunicatii de mare viteza.încarcarea echilibrata a sistemului hardware.terminale si unitati centrale specializate.asigurarea tratarii întreruperilor prin detectarea.Sisteme de operare . . . 4. în firul de asteptare.ceas de timp real care genereaza întreruperi pentru comanda comutarii UC-ului de la un program la altul.sistem de comunicatie pentru transferul informatiilor între UC-ul sistemului de calcul si perifericele de intrare/iesire. diagnosticarea si tratarea lor si stabilirea modului de continuare a lucrului.lansarea în executie a lucrarilor în functie de prioritatile fiecarui proces aflat în firul de asteptare la executie. .gestiunea bazelor de date individualizate prin parola de protectie asociata fiecareia.alocarea si comutarea UC-ului se face de catre planificatorul de lucrari pe baza unui algoritm care trebuie sa asigure simultan: . . .memoria externa cu acces direct. Sistemele de operare de tip Time-Sharing au avantajul folosirii procesarii de mare putere on-line. Multiprelucrarea De la început trebuie precizat ca exista o diferenta conceptuala între multiprogramare si multiprelucrare (sau multiprocesare). Caracteristicile software ale unui sistem de operare de tip Time-Sharing sunt urmatoarele: .minimizarea timpului de comutare între procese. . concentratoare de date. utilizarea concurenta a resurselor hardware de foarte multi utilizatori aflati local sau la distanta. .alocarea dinamica a spatiului de memorie cu precizarea zonei de memorie si a adresei de lansare a programului.5. solutia ideala obtinându-se prin cuplarea în parallel a memoriei externe la UC si perifericele de intrare/iesire.ordonarea fiecarei lucrari. În timp ce 29 . . modemuri.

prin instructiuni speciale care se folosesc pentru: a initia executia paralela a sarcinilor. întretinerea fisierelor si întretinerea bazelor de date. Acest lucru poate fi cel mai elegant rezolvat prin cuplarea la UC-ul obisnuit. a uni nou UC numit UC-Master si care are rolul de a gestiona absolut toate intrarile/iesirile în sistem. daca dispune de cel putin doua UC-uri care lucreaza în parallel. Trebuie remarcat faptul ca în sistemele electronice care sunt exploatate în multiprelucrare. Paralelismul executiei mai multor sarcini definite la nivelul unui program poate fi controlat explicit. în schimb în multiprelucrare cele n programe beneficiaza de aportul a m procesoare în parallel. multiprelucrarea este un concept hardware. daca se utilizeaza un limbaj de programare corespunzator multiprelucrarii. Vazut în ansamblul lui. Un sistem de calcul electronic se considera ca lucreaza în multiprelucrare. Sisteme MASTER-SLAVE Cel mai important obiectiv al multiprelucrarii este acela al eliberarii UCului de sarcini precum: editari de texte. A. a proteja datele utilizate de o sarcina în raport cu alte sarcini aflate în curs de executie. care va juca rol de UC-Slave. 30 . Multiprogramarea presupune existenta în memoria interna a n programe si care partajeaza resursele unui singur UC. a testa starea unei sarcini etc. UC-urile pot executa instructiuni în favoarea unui singur program sau pot executa simultan instructiuni din cadrul unor programe diferite. limbaj care permite specificarea lucrarilor paralele. un sistem Master-Slave trebuie privit ca un ansamblu format din doua entitati de procesare în care Masterul are rol de interfata. a astepta terminarea executiei lor.Sisteme de operare multiprogramarea este un concept software. Rolul UC-ului Slave este acela de a efectua calculele complexe impuse de algoritmul pe care îl implementeaza programul.

pag. Tehnică. cu implementarea unui algoritm mai complex si care presupune utilizarea alternativa celor doua procesoare. . Ed. asigurând accesul Slave-ului la aceste colectii voluminoase (vezi figura 12). Bucureşti 1995. COMUNICA II CONTROL UCP -SLAVE Prelucr ri complexe Memoria extern Figura 11. specifica.41 Din punt de vedere functional Master-ul poate fi privit ca: . Mârşanu – Sistemele de operare MS-DOS şi UNIX. în acest caz Master-ul jucând rolul de interfata între didpozitivele de intrare/iesire si Slave (vezi figura 11).front-end-processor în care Master-ul se ocupa de operatiile de intrare/iesire iar Slave-ul se ocupa de operatii complexe. Fiecare UC poate fi dedicat unor task-uri cu destinatie speciala. existente în memoria externa. 31 . sau pot fi utilizate “în bascula”. alternativ. Sistem Master-Slave (Front-end processor) Sursa: R.Sisteme de operare UCP -MASTER DATE.back-end processor în care Master-ul are ca sarcina întretinerea bazelor de date. pentru a executa un singur task.

Tehnică.sisteme cu multiprelucrare care dispun de unitati centrale identice. ca în figura 13. Ed.Sisteme de operare Memoria extern UCP -SLAVE MAINFRAME UCP1 UCP2 UCP -MASTER DATE.sisteme cu memorie proprie si UC-uri identice.41 B. Bucureşti 1995. Modul de funcţionare Back-end processor Sursa: R. Mârşanu – Sistemele de operare MS-DOS şi UNIX. COMUNICA II CONTROL Alte dispozitive periferice de intrare/ie ire Figura 12. la care difera doar modul de partajare a memoriei interme si pentru care exista patru tipuri distincte de sisteme Master-Slave: . .sisteme cu memorie unica si UC-uri identice. ca în figura 14. Clase de sisteme cu multiprelucrare Din punct de vedere al modului de planificare a task-urilor si a modului de comunicatie exista doua clase mari de sisteme cu multiprelucrare: . 32 . pag.

. . UCn 33 ... ca în figura 15. . Sisteme cu memorie unica si UC-uri identice UC1 MEMORIE INTERN UNIC UC2 . . ca în figura 16. UCn Figura 13.sisteme cu multiprelucrare având unitati centrale diferite. ...sisteme cu memorie proprie si UC-uri Master-Slave. .sisteme cu memorie unica si UC-uri Master-Slave. . . care impun existenta unui numar de UC-uri periferice care proceseaza în paralel si care pot exista ca: UC1 MEMORIE INTERN UNIC UC2 . . .Sisteme de operare .

arie de procesoare care presupune împartirea unui program în activitati absolut independente si care se pot executa în mod simultan pe UC-urile existente într-o configuratie. . Ssisteme cu memorie proprie si UC-uri Master-Slave . lucru realizat de controlul direct efectuat de UC-urile componente. 34 . .. Sisteme cu memorie unica si UC-uri Master-Slave MEMORIE INTERN UC MASTER UC1 UC SLAVE UC1 MEMORIE INTERN Figura 16.pipe (tip conducta) care permite procesarea directa asupra unui sir de vectori de mari dimensiuni. . UC1 UCn SLAVE Figura 15. Sisteme cu memorie proprie si UC-uri identice UC1 SLAVE UC1 UC1 UC MASTER MEMORIE INTERN INTERN UNIC UC2 SLAVE UC1 . .. .puternic conectate care sunt individualizate de un volum crescut al lucrarilor executate de sistem. .Sisteme de operare MEMORIE INTERN UC UCn UC UCn MEMORIE INTERN Figura 14.

partajarea tuturor UC-urilor Slave în cazul sistemelor MasterSlave. . sistemul de comunicatii. .sisteme duale.în cazul sistemelor cu UC-uri de tip diferit.în cazul sistemelor cu UC-uri de acelasi tip. Cea mai importanta activitate dintr-un sistem de operare cu multiprelucrare este planificarea executiei task-urilor aflate în firul de executie.slab conectate care sunt caracterizate de faptul ca partajeaza între ele: programele de serviciu. planificarea executiei lucrarilor se face considerându-se toate procesoarele de tip Slave si planificarea facându-se descentralizat.manual fara o planificare. prin controlul direct al unui alt procesor. .separarea diverselor functii ale sistemului prin alocarea câte unui program pentru fiecare functie. Se creaza o lista interna care contine numele UC-urilor si starea lor.duplexarea sistemelor sau sisteme mirror. separare care trebuie înteleasa inclusiv geografic. situatie în care una sau mai multe componente hardware ale sistemului sunt dublate din punct de vedere fizic. . existând doar comutarea de la un UC la altul. Sintetizând. memoria cu acces direct etc. planificarea lucrarilor în executie se realizeaza în urmatoarele moduri: . planificarea executiei lucrarilor se pot realiza: .Sisteme de operare .cresterea fiabilitatii sistemului prin: . situatie în care doua UC-uri prelucreaza simultan acelasi task si în mod periodic se verifica corectitudinea rezultatelor.încarcarea partajata a task-urilor spre ececutie de asa maniera încât fiecare procesor sa aibe acces la firul unic de asteptare a lucrarilor în executie. .încarcarea echilibrata a sistemului în sensul ca se acorda câte un UC la fiecare task în cazul sistemelor slab conectate. iar în momentul întreruperii unui task aflat în executie UC-ul care-i este 35 . astfel încât o componenta este activa iar dublura ei fiind activata doar în cazul ca prima este defecta. În functie de tipurile de UC-uri folosite. oportunitatea si necesitatea folosirii multiprelucrarii se realizeaza prin: .

în conformitate cu acelasi algoritm de planificare. 36 .Sisteme de operare atribuit cauta în lista de UC-uri pentru a gasi un alt task pentru a fi lansat în executie.

manager eficient”. grupate în patru categorii: a.daca programul s-a terminat sau s-a depasit timpul de UC alocat. canalele de comunicatie si dispozitivele periferice de intrare/iesire. memoria externa.sa evidentieze fiecare resursa hardware disponibila în sistem. . unitatea centrala. Prin resurse hardware se întelege: memoria interna. în conformitate cu politica de deservire a lucrarilor. . când si pentru cât timp se utilizeaza UC-ul prin processor scheduler. Functia de gestiune a dispozitivelor periferice se realizeaza prin urmatoarele activitati: 37 .evidenta UC-urilor si a starilor acestora numita si traffic controller. Pentru asigurarea acestor activitati. sistemul de operare trebuie sa realizeze simultan urmatoarele activitati: . b.cât si de cine este folosita memoria interna? .asigura decizia pentru cine.ce task. Sistemul de operare are rolul de a facilita utilizarea eficienta a resurselor hardware si de a solutiona eventualele conflicte care apar în “concurenta” pentru obtinerea respectivei resurse de catre programe.la terminarea executiei sa dealoce resursele hardware alocate anterior. lansarii si executiei programului sau. . . Functia de gestiune a UC-ului care se manifesta prin: . când si câta memorie trebuie sa-i alocam? .aloca memoria interna asigurându-i metoda de acces si protectia zonelor de memorie alocate.Sisteme de operare 5. sistemul de operare trebuie sa dispuna de componente software care sa gestioneze resursele hardware pe cale le ofera. .sa determine cui. Functia de gestiune a memoriei interne care se manifesta prin: . sistemul de operare a unui calculator trebuie sa îndeplineasca urmatoarele functii. Ca sa poata sa-si îndeplineasa misiunea de “arbitru . . cât si când sa aloce fiecare resursa hardware.coordonator .eliberarea memoriei interne la terminarea executiei programului. c.aloca resursa de timp a UC-ului la un proces prin încarcare registrelor UC-ului. se retrage alocarea resursei. sumultan cu asistarea permanenta a utilizatorului pe toata durata pregatirii. Gestiunea resurselor unui sistem de calcul electronic Pentru fiecare componenta hardware a unui sistem de calcul electronic.

5. 38 . a adaptoarelor si a canalelor prin I/O Traffic Controller.aloca resursa periferica si initiaza operatia de I/O. se poate ajunge la insuficienta resurselor procesor. . .lucrarea este o colectie de activitati sau task-uri care se executa de sistemul de calcul electronic. pentru doua sau mai multe programe aflate în executie. prin definitie.asigura resursele informationale necesare deschiderii structurii de date (fisier sau baza de date) prin utilizarea componentei Open.asigura protectia necesara si ofera rutine de acces.dezaloca resursele informationale prin utilizarea lui Close pentru a închide structurile de date anterior deschise. . un program de aplicatie sau o rutina a sistemului de operare.programul este secventa logica de instructiuni care implementeaza un anumit algoritm de calcul. . lucrarea sau programul) ca fiind unitatea interna de lucru creata de sistemul de operare în momentul în care accepta spre executie un executabil. .daca este necesara utilizarea simultana a acelorasi resurse I/O. Gestiunea proceselor σ i procesoarelor Atunci când se utilizeaza în mod partajat resursele unui sistem de calcul electronic.1. prin intermediul lui Schedulering I/O. d.evidenta resursei informatie. . Functia de gestiune a informatiilor organizate în fisiere si/sau baze de date se realizeaza prin urmatoarele activitati: .procesul este reprezentat de de un program în curs de executie si care poate fi un program de serviciu. decide cine si cât timp foloseste resursa. caz în care trebuie sa existe o componenta sistem care sa asigure timp de UC pentru procesele create. .task-ul (activitatea. Pentru lamurirea acestei probleme sa introducem.la terminarea operatiei de intrare/iesire dezaloca resursa periferica. care se considera a fi compus din mai multe procese. urmatoarele notiuni: . . individualizarea si localizarea ei. .Sisteme de operare . utilizarea si consemnarea starii acesteia prin File System. decide cine are acces la resursele de informatii.evidenta dispozitivelor periferice.

Aceasta concurenta se face în doua moduri: . el fiind încarcat în memorie si luat în considerare de sistemul de operare în vederea lansarii efective în executie imediat ce conditiile o vor permite. Programele existente în executie la un moment dat vor concura la resursele hardware ale sistemului de calcul.inactiv-nelansat în executie. A.direct prin utilizarea simultana a acelorasi resurse hardware ale sistemului de calcul. printr-unul din urmatoarele stari de existenta a unui proces: . INACTIV NELANSAT Lansare PREGATIT INTRERUPT Activare ACTIV Dezactivare BLOCAT IN ASTEPTARE Figura 17. Bucureşti 1995. . Tehnică.indirect prin concurarea la aceiasi resursa hardware a sistemului de calcul. 39 . Ele presupun existenta urmaririi de catre sistemul de operare a executiei mai multor programe simultan. întelegem prin procesor UC-ul sau controller-ul de canal.activ este starea în care se gaseste un proces a carui instructiuni se executa în momentul de fata. Diagrama de tranziţie a unui proces Sursa: R. Mârşanu – Sistemele de operare MS-DOS şi UNIX.Sisteme de operare .46 Gestiunea proceselor concurente este rezolvata de sistemul de operare prin trecerea fiecarui proces.procesorul este acea componenta electronica care este capabila sa execute instrictiunile unui program. aflat în executie. este starea în care se afla un proces în firul de lansare în executie. pag. Procesele concurente (paralele) si coordonarea proceselor Procesele concurente se numesc si procese paralele. . Ed.

Sisteme de operare

- pregatit-întrerupt este starea în care se afla un proces care momentan întrerupt de catre un eveniment extern prioritar, dar care este pregatit pentru lansare în executie în orice moment în care vor fi îndeplinite conditiile de relansare; - blocat în asteptare este starea în care procesul asteapta terminarea unei operatii de intrare-iesire care se desfasoara în favoarea sa. Între aceste patru stari exista un graf de tranzitie care este acelasi pentru orice proces, tranzitie reprezentata în figura 17. Gestiune proceselor concurente implica din partea sistemului de operare urmatoarele doua activitati majore: - determinarea proceselor care asigură independenta sistemului de vitezele relative de executie a componentelor, care trebuie sa conduca la un rezultat unic, altfel sistemul este nedeterminat si în acest caz trebuie introduse resptictii de prioritate prin stabilirea unor grade de precedenta; - interblocarea proceselor care apare atunci cand i procese asteapta un timp nedefinit într-un fir de asteptare circular ca un proces sa renunte la aspiratiile de a utiliza o resursa hardware; aceasta problema se rezolva în urmatoarele modalitati: - alocarea controlului în avans de executie; - alocarea în avans a resurselor partajate; - aranjarea cererilor de resurse într-o lista secventiala si ierarhizarea resuselor concurentiale pe niveluri, în scopul acordarii resursei doar la nivelele ierarhic superioare; - excluderea mutuala a proceselor care solicita în acelasi timp resurse critice, în sensul de a nu se executa simultan ci în decalaj de timp. B. Sincronizarea procesele Exista situatii când un anumit proces trebuie sa fie continuat doar dupa ce un alt proces a ajuns într-o anumita faza de executie sau pana ce s-au petrecut anumite evenimente care se afla sub controlul altui proces. Sincronizare între procese este impusa si de necesitatea comunicarii între aceste procese. Pentru realizarea mecanismelor de sincronizare a proceselor exista urmatoarele facilitati: - biti de atentie, în care fiecarei resurse partajate de i procese îi este atasat un bit numit lock-bit care poate avea valoarea 0 pentru resursa partajata disponibila, sau 1 pentru resursa indisponibila (deoarece este

40

Sisteme de operare

utilizata de un alt proces si care la terminare va pune bitul pe 0), timpii de testare a bitului sunt ineficienti; - mecanisme de asteptare si semnalizare care presupune plasarea procesului, solicitant al resursei partajabile, într-o lista de procese blocate în asteptarea resursei; - calculul semafoarelor prin operatii P si V în care primitivele P si V modifica semafoarele S (semafor de setare care poate lua valorile 0 sau 1) dupa urmatoare logica: P(S) - decrementeaza valoarea lui S cu 1 si daca S# 0 atunci asteapta; V(S) - incrementeaza valoarea lui S cu 1 si daca S# 0 atunci emite semnal; - comunicarea directa de tip SEND/RECEIVE în care sincronizarea se realizeaza direct prin intermediul primitivelor SEND(Proces1, mesaj) si RECEIVE(Proces2, mesaj); - tehnica cutii postale în care se transmit mesaje prin intermediul unor zone tampon dinamice numite cutii postale si în care fiecare proces creaza câte o cutie postala care va contine informatii (mesaje) care pot fi exploatate de celelalte procese; C. Gestiunea procesoarelor Prin gestiunea procesoarelor întelegem asigurarea procesoarelor la fiecare din procesele create de sistemul de operare la încarcarea în memorie a acestora. Gestiunea procesoarelor se desfasoara la: nivelul planificarii lucrarilor, cand sistemul de operare decide care proces devine activ si la nivel de alocare efectiva a procesorului la procesele create de sistemul de operare. Gestiunea procesoarelor se realizeaza prin intermediul urmatoarelor module: modulul de planificare a lucrarilor si modulul de alocare a procesorului. - Modulul de planificare a lucrarilor executa urmatoarele activitati: - evidentiaza starea lucrarilor si gestioneaza cererile de servicii; - alegerea politicii de deservire a lucrarilor dupa prioritati, necesarul resurselor solicitate, încarcare echilibrata a procesorului, durata estimata de executie; - alocarea resurselor necesare procesului planificat, din punct de vedere al: memoriei interne, memoriei externe, timp de unitate centrala, dispozitive periferice; - eliberarea resurselor prin dezalocarea resursei la terminarea executiei procesului. - Modulul de alocare a procesorului executa urmatoarele activitati: 41

Sisteme de operare

- traffic controller care evidentiaza starea proceselor la un moment dat; - processor scheduler stabileste care proces si pentru cât timp dispune de procesor; - aloca procesorul unui proces efectuând si actualizarea continutului registrilor pentru executia procesului care a câstigat competitia; - dezaloca procesorul daca-i expira cuanta de timp acordata, daca a aparut o întrerupere prioritara sau daca s-a terminat executia procesului. Exista si modele probabilistice pentru planificarea lucrarilor la nivelul procesorului astfel încât exista urmatoarele doua tipiri de sisteme de operare: - sisteme nepreemptive sunt sistemele în care fiecare proces se executa de la cap la coada, prin executia de catre procesor a cererii cele mai prioritare pâna la terminarea executiei, chiar daca apar pe parcursul executiei cereri mai prioritare; - sisteme preemptive sunt sistemele în care cererile din diverse etape de executie se adreseaza nucleului care va aloca resursa cererii cele mai prioritare, iar executia procesului curent este întrerupta si trecuta în asteptare. 5.2. Gestiunea memoriei Prelucrarea informaţiilor în sistemele de calcul electronic, presupune păstrarea (stocarea, memorarea) datelor şi programelor pe dispozitive de memorare. Acestea sunt organizate pe două niveluri: memoria internă (RAM sau ROM) şi memoria externă (discuri magnetice sau benzi magnetice, CD-uri, streamere etc). Pentru memoria internă se foloseşte şi noţiunea de memorie principală, iar pentru memoria externă cea de memorie auxiliară. Fiind o resursă importantă a sistemului de calcul electronic, memoria (fie ea internă sau externă) trebuie gestionată corect şi raţional de sistemul de operare. Componenta sistemului de operare care face gestiunea memoriei se numeşte manager de memorie şi are rolul de a asigura decizia organizării memoriei la cele două niveluri (internă şi externă) şi de a stabili şi mijloci transferul corect între aceste niveluri. Tehnicile de exploatare cum sunt: multiprogramarea, time-sharing, multiproprocesarea etc, impun existenţa unor implementări de gestiune a memoriei (în sistemul de operare) ca: tehnica alocării dinamice a necesarului de memorie şi

42

restul modulelor fiind încărcate în memoria internă (din memoria externă) după necesităţile algoritmilor implementaţi de programe. Obiectivul primordial al activităţii de gestiune este acela de a oferi o viteză de execuţie maxim posibilă (în contextul configuraţiei hardware existente) pentru programele ce urmează a fi executate sub controlul sistemului de operare. coexistă datele şi programele. de asemenea. Sarcina gestiunii corecte a zonelor de memorie revine managementului de memorie asigurat de sistemul de operare. Pentru aceasta sistemul de operare trebuie să cunoască în fiecare moment geografia alocării spaţiului fizic de memorie. Întreaga alocare a spaţiului de memorie disponibil se face după politica de deservire (statică sau dinamică) implementată în sistemul de operare. Ca regulă generală. translatare care se numeşte relocarea adreselor. baze de date sau bănci de date. Programele sunt gestionate de sistemul de operare sub formă de fişiere executabile. astfel încât accesul neautorizat ale unor programe în spaţiul unui anumit program să fie blocat. Trebuie reţinut că în faza de punere la punct şi de obţinere a programului executabil. Orice activitate de gestiune a memoriei interne se bazează pe trei algoritmi de bază: 43 . consemnăm menţinerea în memoria internă RAM doar a unor părţi (sau funcţii modulare) cele mai des utilizate de către unitatea centrală. În memoria internă coexistă atât date cât şi programe. Gestiunea propriuzisă a programelor şi datelor din memoria externă este asigurată de sistemul de operare prin componenta sa numită subsistemul de gestiune al fişierelor (tipic fiecărui sistem de operare în parte). cu funcţionalitate mai mult sau mai puţin independentă. se stabilesc valorile cu care vor fi încărcate registrele de control a execuţiei. protecţia programelor încărcate în memoria internă a calculatorului. la fel şi în ceea ce priveşte accesul la fişierele altor programe. se face translatarea adreselor logice în adrese fizice.Sisteme de operare tehnica memoriei virtuale. Referitor la memoria internă unde pot exista simultan încărcate mai multe programe. se asigură recalcularea adreselor de lansare în execuţie a programului. În memoria externă. exprimate în general prin adrese relative la începutul segmentelor). se recalculează adresele relocabile etc. se lucrează cu adrese de memorie logice (adrese de memorie simbolice. în faza de încărcare în memoria internă (din memoria externă) a programului. când se evaluează necesarul de resurse (în cazul nostru de memorie internă). iar datele sub formă de fişiere de date. dar la încărcarea programlui în memorie (care poate fi oriunde în spaţiul de memorie) trebuie să se precizeze adresa fizică (adresa reală) de încărcare şi lansare în execuţie. trebuie fiecare în parte să se supună următoaerlor operaţii: încărcarea în memoria internă. de gestiune a memoriei interne.

în funcţie de politica de alocare a sistemului de operare. Alocarea memoriei interne se poate realiza în două moduri: alocare statică. în care programul este înărcat în prima zonă de memorie liberă. La alocarea dinamică adresele relative (logice) sunt păstrate pentru a se putea realiza deplasarea programului dintr-o zonă a memoriei interne într-alta. A. care stabileşte care zonă momentan liberă va fi locul în care se plasează blocul adus. în care adresele logice nu sunt relocate la încărcarea programului în memorie.Sisteme de operare algoritmul de transfer. 18. Activitatea de gestiune a memoriei interne este ilustrată schematic în fig. Activitatea de gestiune a memoriei interne B. • PROCESOR UC Adrese MEMORIA INTERNA Canale de transfer Comenzi de deplasare MEMORIA EXTERNA Figura 18. pe care o va ocupa până la terminarea execuţiei sale. Memoria virtuala 44 . care va determina care blocuri şi în ce moment trebuie reamplasate în memoria internă. alocare dinamică. • algoritmul de reamplasare. Alocarea dinamică a memoriei Alocare memoriei este operaţia prin care se atribuie unui program o anumită zonă din memoria internă. pentru a elibera anumite zone care vor fi utilizate în alte scopuri. care trebuie să determine (în avans) când trebuie transferat (din memoria externă în cea internă) un bloc. • algoritmul de plasare. ci în momentul execuţiei instrucţiunilor.

Conceptul de memorie virtuală oferă iluzia pentru utilizator.bj. 20. Dispozitivul de translatare a memoriei Pentru a înţelege mecanismul memoriei virtuale să facem următoarele notaţii: . ft(ai)=0. şi invers. 1.Sisteme de operare Există sisteme de operare care privesc memoria internă şi cea externă ca una unică. .. În cadrul acestui concept. 45 ... sunt adrese virtuale. dacă informaţia de la adresa virtuală nu se află în momentul curent în memoria internă. Funcţia de transfer. programatorul lucrează cu adrese de memorie virtuale.. unde j= 0. numită memorie virtuală. 1.ft: A(ai)→B(bj) este funcţia de translaţie a adreselor virtuale în adrese reale. sunt adrese reale. .ai. MEMORIE PROCESOR UC ai Tabela functie de translatare bi MEMORIA INTERNA Canale de transfer Comenzi de deplasare MEMORIA EXTERNA Figura 19. iar adresa reală (numită adresă fizică) este calculată de o funcţie de translatare a adreselor virtuale. un asemenea "calup" de transfer se numeşte pagină. se poate defini ca: 1.. la nivel de multiplu de sector de disc (n*1024 bytes). m. Aceste notaţii corespund cu figurile 19. că dispune de o memorie teoretic infinită. .. unde i= 0. . 21. 2. n. Acest lucru poate fi realizat prin efectuarea unui transfer al informaţiei din memoria externă în cea internă. 2. 22 şi 23.

Pentru înţelegerea variantelor de memorie virtuală să luăm pe rând fiecare dintre acestea şi să le comentăm. După terminarea tratării întreruperii. a zonei referite prin ai. plasare şi reamplasare. funcţia ft(ai) devine nenulă.Sisteme de operare ft(ai)=bj. următoarele variante de memorie virtuală: • memorie virtuală organizată la nivel de adresă. Mecanismul de translatare (numit şi dispozitiv de translatare) a memoriei este reprezentat în figura 19.l. În cazul în care ft(ai)=0 se emite un semnal electronic cu semnificaţia nonrezidenţei adresei virtuale. • memorie virtuală organizată la nivel de pagină. Memoria virtuală organizată la nivel de adresă Această memorie virtuală este prezentată schematic în figura 20. Organizarea la nivel de adresa 46 . şi relându-se execuţia programului întrerupt care necesita zona de memorie translatată. B. • memorie virtuală organizată la nivel de segment-pagină. PROCESOR UC RV ai Tabela FT RM b bi MEMORIA INTERNA Rezident Acces Depasire DISPOZITIV DE TRANSLATARE Canale de transfer MEMORIA EXTERNA Figura 20. din punct de vedere al modului de organizare. adică ft(ai)=bj. au implementate. Sistemele de operare existente până în prezent. care a executat algoritmi de transfer. se generează o întrerupere de plasare din memoria externă în cea internă. dacă adresa virtuală ai este încărcată în memoria internă. 2. • memorie virtuală organizată la nivel de segment.

registrul de stare a rezidenţei. Să presupunem că procesorul execută instrucţiunile unui program oarecare. După iniţierea operaţiunii de translatare. atunci RM va conţine valoarea 0.Sisteme de operare În această figură sunt utilizată următoarele notaţii: • RV . se află în memoria internă. atunci conţinutul care se află în FT se introduce în registrul memoriei interne RM şi se va extrage din memoria internă informaţia conţinută la adresa reală bj şi solicitată de procesor. faptul că tabela FT ocupă un spaţiu de memorie destul de mare. • DEPĂŞIRE . • REZIDENT . plasare şi reamplasare care vor aduce din memoria externă în cea internă informaţia solicitată de procesor şi actualizează tabela de definire şi descriere a funcţiei de translatare ft. Dacă acest program are nevoie de nişte date aflate într-o zonă de memorie virtuală definită prin ai . • RM . din a căror conţinut se extrage informaţia solicitată de procesor. registrul ACCES conţine valoarea 1 şi prin urmare procesul de translatare se poate iniţia şi desfăşura. iar dacă va conţine valoarea 0 înseamnă că blocul de memorie referit prin ai. • ACCES . în care se introduc adresele virtuale ai de care are nevoie procesorul (care execută secvenţa de instrucţiuni a programului în lucru şi care are nevoia de zona de memorie specificată prin ai). Dacă se notează prin b adresa de bază a blocului de memorie internă şi cu d deplasarea în cadrul blocului. care dacă conţine valoarea 1 se iniţiază procesul de translatare. În acest caz registrul REZIDENT conţine valoarea 0. pot apărea următoarele situaţii: • dacă adresa virtuală ai se află în domeniul care este definit de intrarea curentă în tabela FT.registrul de acces.registrul de adresă virtuală. conţinând adresele fizice (adresele reale) indicate prin bj. iar dacă este pe 0 nu se face translatare. atunci adresa reală bj se determină prin formula: bj = ft(b) + d Consemnăm ca dezavantaj al acestui tip de organizare.registrul de semnalare (valoarea 1) a erorilor de depăşire a spaţiului de memorie. nu este rezident în memoria internă. 47 .rergistrul de adresă al memoriei interne. Să presupunem că zona de memorie referită prin ai nu se află în memoria internă. registrul REZIDENT se pune pe 1 şi se iniţiază algoritmii de transfer. care conţine valoarea 1 dacă blocul de memorie referit prin adresa virtuală ai. procesorul va introduce adresa ai în registrul de adrese virtuale RV. • dacă adresa virtuală nu se găseşte într-o intrare a tabelei FT.

În general.21.dispozitivul (mecanismul) de translatare a paginilor. lucru care duce la netranslatarea adresei cuvântului de pagină. Cu notaţiile folosite anterior şi cu altele noi se poate prezenta şi acest mod de organizare. Memorie virtuală organizată la nivel de pagină Această memorie virtuală este prezentată în fig. ci pe măsură ce prelucrarea o cere. dimensiunea unei pagini este egală cu dimensiunea unei pagini din memoria internă. avem: • registrul de adrese virtuale devine mai complex prin asocierea perechii de semiregiştrii C şi P. • MPT . Organizarea la nivel de pagina 48 . unde C are semnificaţia deja definită iar Q conţine o dimensiune de bazare. Acest tip de memorie virtuală are avantajul că reduce memoria conţinută în tabela ft.Sisteme de operare B. Cel mai important avantaj este că un program poate fi executat fără a avea toate paginile încărcate dintr-o data în memoria RAM. iar P va conţine numărul de cuvinte din pagină. Astfel. PROCESOR UC ai RV C P MTP Q RM C bi Q MEMORIA INTERNA Canale de Rezident Acces Depasire DISPOZITIV DE TRANSLATARE transfer MEMORIA EXTERNA Figura 21.2. Această situaţie duce la o protecţie sporită a accesului şi la o utilizare eficientă a memoriei interne. în care C va conţine numărul cuvântului din P. • registrul de adrese reale RM devine şi el mai complex prin asocierea lui C şi Q. pentru că spaţiul de adrese este divizat în pagini de dimensiune constantă.

3. Memorie virtuală organizată la nivel de segment Această memorie virtuală este prezentată în fig. • registrul de adrese virtuale RV conţine: semiregistrul S care conţine numele segmentului şi semiregistrul C care conţine numele cuvântului din segment. D) va reprezenta o intrare în tabela de translaţie MTS. B. adresa solicitată prin ai nu este într-o pagină rezidentă în memorie şi se va declanşa execuţia algoritmilor de transfer. Registrul comparator efectuează comparaţia dintre C şi D. procesorul va asocia perechea (P. plasare şi reamplasare. atunci se va declanşa execuţia algoritmilor de transfer.. O pagină conţine 0. 2. atunci adresa solicitată prin ai se află într-o pagina rezidentă în memoria internă. însă apar câteva noi: • registru buffer. Pentru fiecare adresă virtuală ai solicitată de programul aflat în execuţie. Notaţiile anterioare rămân valabile.C) în care P va conţine numărul cuvintelor din pagină şi C numărul de cuvânt referit din P. Perechea (R. Adresa de memorie unde începe segmentul S se precizează ca bază în semiregistrul R.. 49 . plasare şi reamplasare. conţine adresa extrasă din tabela de segmente MTS.2P cuvinte. Din cadrul paginii se extrage o componentă Q de o anumită dimensiune (solicitată de procesor) în următoarele două variante: • dacă RM(Q) ≠ 0. ca urmare se face punerea lui REZIDENT pe 1 şi se actualizează MTP pentru referirea noii adrese. cu reactualizarea tabelei MTS şi cu punerea la dispoziţia procesorului a informaţiilor solicitate. • registrul comparator care efectuează comparaţia între C şi D. Această tabelă conţine informaţii utilizate în translatarea adreselor. • registrul de adrese reale RM conţine: semiregistrul C (numele cuvântului din segment) şi semiregistrul R (baza segmentului). procesorul va introduce în registrul de adrese virtuale: numele segmentului în S şi numele cuvântului din cadrul segmentului în C. • dacă RM(Q) = 0. iar în D se va specifica dimensiunea segmentului.Sisteme de operare Dispozitivul de translatare implementează o tabelă a paginilor (MTP) în memoria internă RAM.2. obţinânduse în final adresa reală în registrul RM. iar semiregistrul R specifică baza segmentului şi semiregistrul D specifică dimensiunea segmentului. Dacă R = 0. Pentru fiecare adresă virtuală ai solicitată de programul aflat în execuţie.

Organizarea la nivel de segment B. procesorul va introduce în registrul de adrese virtuale RV: adresa virtuală a segmentului (în S). Prin intermediul valorii din S se caută în tabela MTS dacă se găseşte încărcată în memorie zona având adresa tabelei de pagini (în R) şi dimensiunea segmentului (exprimată în pagini) în D. 2.Sisteme de operare PROCESOR UC ai RV C S Comparator MTS R D D R Registru buffer RM C R bi MEMORIA INTERNA Rezident Acces Depasire DISPOZITIV DE TRANSLATARE Canale de transfer MEMORIA EXTERNA Figura 22. Pentru fiecare adresă virtuală ai solicitată de programul aflat în execuţie. adresa virtuală a paginii în cadrul segmentului (în CP) şi adresa virtuală a cuvântului în cadrul paginii (în CC). în care subregistrul R conţine adresa tabelei de pagini şi CP cu semnificaţia deja cunoscută. Cuvântul selectat are q biţi şi reprezintă • • • 50 .4. Memorie virtuală organizată la nivel de segment-pagină Această memorie virtuală este reprezentată în fig. Noile notaţii care apar aici sunt: registrul de adrese virtuale este format din trei subregiştrii: S care conţine adresa virtuală a segmentului. Cu componenta CP de acces RA şi cu R din registrul buffer se extrage din tabela de pagini MTP cuvântul exprimat prin CP şi R. registrele ACCES PAGINĂ şi ACCES SEGMENT dacă conţin valoarea 1 permit accesul la pagina sau ia segmentul specificat. RA registrul buffer de acces în tabela MTP.3. CP care conţine adresa virtuală a paginii în segment şi CC care conţine adresa virtuală a cuvântului în cadrul paginii.

plasare şi reamplasare în memoria internă ai segmentului solicitat. atunci înseamnă că segmentul virtual solicitat nu se află în memoria internă. Organizarea la nivel segment-pagina Se vor întâlni următoarele situaţii: dacă adresa virtuală a segmentului (cunoscută în S) nu se găseşte în nici o intrare în MTS. actualizându-se tabela de segmente şi punându-se REZIDENT pe valoarea 1. cuvânt care va fi introdus în registrul adreselor reale RM.Sisteme de operare una din paginile reale din memoria internă. sunt declanşaţi algoritmii de transfer. Gestiunea dispozitivelor periferice 51 . • 5. • după găsirea segmentului se trece la determinarea paginii prin intermediul tabelei MTS. RM PROCESOR UC ai RV CC CP S MTS R D D R Buffer Acces pagina Q RA CP Buffer R MTP CC Q bi MEMORIA INTERNA Canale de transfer MEMORIA EXTERNA Depasire segment Rezident Acces segment DISPOZITIV DE TRANSLATARE Figura 23. atunci există o depăşire semnalizată prin punerea pe 1 a valorii din registrul DEPĂŞIRE SEGMENT. • dacă valoarea adresei virtuale a paginii în segment (aflat în CP) este mai mare decât dimensiunea segmentului (exprimată în număr de pagini) din registrul D.3.

adaptoare.Sisteme de operare Dispozitivele periferice reprezintă o importantă resursă hardware. se pot găsi o multitudine de elemente comune caracteristice dispozitivelor periferice. A. resursă care este gestionată tot de sistemul de operare. • conversia comenzilor primite. sau de tipuri diferite). numite microcontrolere) care sunt destinate controlului automat al citirii. de la unitatea de canal.UCDP UCDP-urile sunt prevăzute cu circuite integrate specializate (microprocesoare specializate pe operaţii de intrare/ieşire. privind evoluţia operaţiilor de intrare/ieşire lansate. Canale de transfer 52 . • efectuarea controalelor (în general de paritate) asupra datelor transmise şi a informaţiilor de control care însoţesc transferul de date. • generarea informaţiilor de stare ale dispozitivelor periferice şi ale unităţilor de control. • urmărirea îndeplinirii condiţiilor de execuţie a comenzii. UCDP-urile îndeplinesc următoarele funcţii: • recunoaşterea adreselor fizice ale perifericelor pe care le controlează. pe mediile fizice de stocare a datelor. Reţinem că există UCDP-uri care asigură conectarea la canal a unui singur periferic sau a mai multor dispozitive periferice (de acelaşi tip. diverselor viteze de acces şi diverselor tipuri de transfer a datelor. B. atât la iniţierea cât şi la terminarea transferului de date. numărul acestora este limitat de debitul de transfer al canalului şi numărului de periferice admis de UCDP-ul în cauză. Există în general. • conversia formatului datelor din codul perifericului comandat în codul acceptat de unitatea centrală de prelucrare şi invers. În cazul UCDP-urilor care conectează mai multe dispozitive periferice. • transmiterea către canal a semnalelor electronice standard. Problematica ridicată de gestionarea dispozitivelor periferice care bineînţeles trebuie privită prin prisma unei diversităţi tipo-funcţionale. controlere sau interfeţe hardware specifice fiecărui tip de dispozitiv periferic (DP) în parte. în semnale electronice acceptate de mecatronica perifericului comandat. Totuşi. respectiv scrierii. Unităţi de control ale dispozitivelor periferice .

sau execută o altă secvenţă de program). Comunicarea dintre canalul de intrare/ieşire şi UC se realizează. C. fără a permite altui periferic să mai comunice cu canalul până la terminarea operaţiei respective de intrare/ieşire. Canalele de transfer execută următoarele funcţii: • transformarea comenzii primite de la UC în semnale acceptate de UCDP-ul perifericului în cauză. adresa dispozitivului periferic şi adresa de memorie internă la care. • dezansamblarea sau ansamblarea datelor transferate între dispozitivele periferice şi memoria internă. Unitatea centrală UC şi canalele de intrare/ieşire sunt în general. Descrierea desfăşurării proceselor de intrare/ieşire Orice operaţie de intrare/ieşire este iniţiată de UC prin execuţia unei instrucţiuni care specifică canalul. • generarea şi gestionarea informaţiei de stare a canalului. sau de la care. De aceea. proiectate pentru a opera în mod concurent dar ierarhizat (vezi fig. • eliberarea UC-ului şi preluarea controlului în totalitate de UCDP pentru transferul de date. când mai multe dispozitive periferice vor transmite simultan prin canal. se face transferul de date. eliberând unitatea centrală de procesore a calculatorului de sarcina tratării operaţiilor de intrare/ieşire. 53 . pe care o pune la dispoziţia UC-ului. • controlul adresei sursă sau destinaţie (adresă de memorie internă) inclusiv verificarea protecţiei de memorie. în general. • asigurarea sincronizării transferului de date cu activitatea UC-ului. unitatea de procesare transmite o comandă UCDP-ului care gestionează perifericul implicat. prin intermediul întreruperilor. care reprezintă "fotografia" dinamică a evoluţiei canalului. când un dispozitiv periferic se conectează logic la canalul de transfer şi rămâne conectat la acesta până termină operaţia de transfer de date (scriere sau citire). pentru a deservi el operaţia (timp în care UC-ul "şomează". Canalele de transfer asigură dirijarea fluxului de date şi de informaţii între memoria internă şi dispozitivele periferice.Sisteme de operare Transferul de informaţii între memoria internă şi dispozitivele periferice se poate realiza în următoarele două moduri: • continuu. 24). în momentul în care UC-ul ajunge să decodifice o instrucţiune care cere efectuarea unei operaţii de intrare/ieşire. • multiplex. respectând anumite reguli impuse de multiplexorul electronic implementat.

D. • decide cu privire la care. ca în fig. 54 . cât timp şi modul de acordare al dispozitivului periferic. Funcţiile care trebuie să le asigure gestiunea dispozitivelor periferice sunt: • alocarea dispozitivului periferic. sistemele de operare dispun de programe specializate pentru controloarele de intrare/ieşire. 2. • dezalocarea dispozitivului la terminarea operaţiei de intrare/ieşire.5. a unităţii sale de control şi a canalului pentru procesul de intrare/ieşire. • o unitate de control UCDP partajează mai multe canale. în cazul sistemelor de calcul exploatate în multiprelucrare. Gestiunea dispozitivelor periferice de către sistemul de operare Pentru a degreva utilizatorii de scrierea programelor de canal pentru operaţiile de intrare/ieşire. • DP-ul poate fi partajat între mai multe UCDP-uri ataşate la diferite canale ale aceluiaşi UC sau mai multe UC-uri. iar două UC-uri partajează aceeaşi unitate de control. • evidenţa stării tuturor DP-urilor prin blocuri de control asociate fiecărui dispozitiv periferic (DP). este cazul în care acelaşi dispozitiv de intrare/ieşire este conectat la mai multe căi de acces.Sisteme de operare Modurile de organizare a sistemelor de intrare/ieşire sunt: • un canal de intrare/ieşire poate fi partajat de două UC-uri folosind un controler unic pentru canalul de intrare/ieşire.

căi multiple de acces la DP şi multiplexarea canalului de transfer a datelor. unităţii de control UCDP şi a dispozitivelor periferice propriu-zise. prin construirea unei tabele ce conţine un bloc de control pentru fiecare dispozitiv periferic. 55 . Există sisteme în care dispozitivele periferice se utilizează partajat "Shared Devices". existenţa unui buffer proproiu în DP.Sisteme de operare Gestriunea DP prin metode hardware: operarea independentă a dispozitivului periferic. • interfaţarea cererilor din partea proceselor. Această partajare impune: • protecţia împotriva acceselor neaturizate. executând fizic operaţia de intrare/ieşire. Sistemul de operare realizează gestiunea dispozitivelor periferice prin următoarele module specializate: • planificatorul de intrare/ieşire (input/output Scheduller) implementează algoritmul strategic pentru alocarea canalului. • controlerul traficului de intrare/ieşire (input/output Traffic Controller) are menirea de evidenţia informaţiile de stare ale fiecărui dispozitiv periferic. • manipulatorul dispozitivelor de intrare/ieşire (input/output Device Handler) are rolul de a crea programul de canal. • utilizarea sistemului Spooling pentru gestiunea perifericelor virtuale. • planificatorul de intrare/ieşire este similar cu planificatorul proceselor în sensul că o operaţie de intrare/ieşire odată lansată în execuţie nu poate fi întreruptă înainte de execuţia ei completă.

ele se pot executa în mod automat prin simpla invocare a numelui de fişier. Astfel de fişiere de comenzi trebuie să aibe obligatoriu extensia .com. fără a fi obligatorie precizarea extensiei. SISTEMUL DE OPERARE DOS A. Dacă în acelaşi director se află trei fişiere care au numele nume. în cuvântul stare-program. Conceptul de întrerupere Unitatea centrală de prelucrare asigură următoarele funcţii. o analizează din punct de vedere sintactic şi semantic. Lansarea în execuţie a unui fişier executabil (program) se face prin simpla invocare a numelui fişierului.1. B.com.com.bat.atunci când execută secvenţele de instrucţiuni în favoarea unui program. • evidenţa şi execuţia înlănţuirii automate a instrucţiunilor. Orice eroare existentă în sintaxa comenzii este semnalată printr-un mesaj de eroare. iar dacă totul este corect execută comanda. fiind o interfaţă simplă de tip text. • prin sistemul de întreruperi. în procesul de execuţie a unui program: • generarea comenzilor electronice necesare execuţiei unei instrucţiuni.MS-DOS Sistemul de operare MS-DOS este un sistem care lucrează în regim monouser (monoutilizator) şi mono programare.exe şi nume. Utilizatorul introduce secvenţial comenzi pe care sistemul de operare le execută. Evidenţa evoluţiei stării de execuţie a instrucţiunilor se poate realiza în două moduri: • prin memorarea dinamică a informaţiilor de stare a execuţiei instrucţiunii. Programele executabile sunt de format binar având extensiile . sau ale unei rutine a sistemului de operare.Sisteme de operare 6. şi dacă se introduce prin tastare numai nume. Interfaţa UTILIZATOR . exe şi . Din punct de vedere funcţional UC-ul se poate afla într-una din următoarele două stări funcţionale majore: • operaţională . Utilizatorul introduce o comandă (cu eventuali parametrii) pe care sistemul de operare (prin intermediul interpretatorului de comenzi) o preia.bat. • evidenţa evoluţiei stării de execuţie a instrucţiunilor printr-un mecansim de evidenţiere stare-program. Interfaţa acestui sistem de operare este adaptată regimului de lucru prezentat la paragraful 4. numit fişier de comenzi. atunci ordinea în care se face execuţia este . In cazul când comenzile sunt introduse printr-un fişier. nume.exe sau . 56 .bat. Orice program executabil este privit ca o comandă externă (comandă care se află pe suport magnetic în memoria externă).

• starea utilizator (în care controlul este deţinut de programul utilizator). • măştile de întreruperi (pentru mascarea întreruperilor neîntreruptibile). Starea operaţională se manifestă prin următoarele substări generate de procesele la care participă: • starea activă. • starea întreruptibilă (stare în care procesul poate fi întrerupt). Tratarea întreruperilor Există două niveluri de procesare a întreruperilor: hardware şi software. • starea unităţii centrale. Cuvântul stare-program are o evoluţie dinamică şi arată în orice moment funcţionarea Unităţii Centrale (UC). rutine care aparţin sistemului de operare. • nivelul de prioritate aflat în execuţie. • cheia de acces asociată zonei de memorie ocupată de program. Întreruperile pot fi generate de: 57 . • starea neîntreruptibilă (stare mascată special pentru a nu fi întrerupt procesul). ele reflectându-se în indicatorii de condiţie.Sisteme de operare • neoperatională . 26. registrul stare-program ar trebui să conţină următoarele informaţii: • informaţii despre modul în care s-a încheiat execuţia instrucţiunii precedente. În cazul cel mai general. În cazul multiprogramării întreruperile au un rol esenţial pentru comutarea controlului de la un program la altul. Acest cuvânt este memorat într-un registru al UC-ului numit registrul stareprogram. • starea sistem (în care controlul este deţinut de sistemul de operare). Întreruperile sunt de două tipuri: interne şi externe. Din punct de vedere hardware întreruperile sunt procesate de o componentă a UCului care crează un şir de aşteptare (întreruperi în aşteptarea tratării). În starea operaţională UC comută între substări prin întreruperi.în situaţie de defect sau scos de sub tensiune. iar din punct de vedere software întreruperile sunt procesate de rutinele de tratare a întreruperilor (specifice fiecărei întreruperi). • starea în aşteptare. Fig. • adresa următoarei instrucţiuni ce urmează a fi executată.

first_sector int 26H popf endm 58 .disk mov bx.first_sector mov al.first_sector int 25H popf endm • 2.buffer. • analizarea tipului întreruperii şi salvarea cuvântului stare-program al programului curent într-o zonă prestabilită din memoria internă. Citire sectoare de la adresa absoluta disc ABS_DISK_READ macro disk.num_sectors. • lansarea în execuţie a rutinei de tratare a întreruperii prin încărcarea cuvântului stare-program a rutinei. • alte sisteme şi echipamente de calcul cu care este cuplat sistemul de calcul.first_sector mov al.num_sectors mov dx. Procesarea unei întreruperi se face în următoarele etape: • la apariţia cererii de întrerupere. • execuţia rutinei de tratare a întreruperii. ea va fi luată în considerare dacă are cea mai mare prioritate din şirul de aşteptare. Prezentăm câteva macrouri pentru apelarea unor întreruperi: 1.buffer. • o interfaţă de dispozitiv periferic care semnalează terminarea unei operaţii de intrare/ieşire sau apariţia unei erori de transfer cu perifericul.offset buffer mov cx.offset buffer mov cx. • relansarea în execuţie a programului întrerupt. Scriere sectoare la adresa absoluta disc ABS_DISK_WRITE macro disk.Sisteme de operare programul aflat în execuţie. Întreruperea 25H . printr-o instrucţiune specială de generare a unei întreruperi (de un anumit nivel).num_sectors.disk mov bx.num_sectors mov dx. prin reîncărcarea cuvântului stare-program salvat anterior în memorie. Întreruperea 26H .

.COM Fi ierul sistem IBMDOS.d controlul COMMAND.COM Fi utilizator ierul Partea rezident COMMAND.COM .citire HD .ului Mesaje de ini ializare C:\> .JMP BIO/DOS JMP RESET   P Execut instruc iunea de la adresa (FFFF0)H  (caracteristic familiei de  a P) Figura .buton RESET de pe panou .A TEPTARE C OMENZI MONITOR (ini ializare sistem terminat ) PSP Zon utilizator Zona tranzitorie a COMMAND.COM ..BAT.COM ..  . . stivbuffere disc .verific existenpe HD a lui IBMBIO IBMDOS a i .HD Adr.afi prompter (a are teapt comenzi DOS) !!!....CALL Rut.COM Fi ierul sistem COMMAND..încarc driverele instalabile .Adr.punere sub tensiune . ...RETUR  D E ializareF Rutina de ini Programe sistem(ROM)  1M 16 M HD  .ului a ...d controlul execu la IBMBIO iei IBMBIO.citirea execu fi i ia ierului AUTOEXEC.scriere în MEM ..COM .MEM (BIO/DOS) .....garnisire memorie video.COM -ului 20 ÷ 30 K 640 K 1 2 3 4 5 6  A Extensie memorie video B Memoria video C Extensie ROM hard-disc Rutina de R/W pe hard-disc -  . Încrcarea sistemului de operare DOS 59 .. IBMDOS.dac exist încarcîn zona IBMBIO IBMDOS le i .. .ini ializ interne.R/W ..încarc COMMAND.Sisteme de operare 0 Tabela vectorului de întreruperi Zona de informa BIO/DOS ii BOOT _.. ri .tastatur [CTRL+ALT+DEL] .COM   Drivere instalabile 11 BOOT FAT ROOT Fi ierul sistem IBMBIO....

INTRERUPEREA 26H .offset buffer mov cx. .offset buffer mov cx.num_sectors. .num_sectors mov dx.buffer.disk mov bx.Sisteme de operare .disk mov bx.******************* . Intreruperi .num_sectors. INTRERUPEREA 25H . Citire sectoare de la adresa absoluta disc ABS_DISK_READ macro disk.num_sectors mov dx. Retinere in statut de rezident STAY_RESIDENT macro last_instruc mov dx. INTRERUPEREA 27H .first_sector mov al.first_sector int 25h popf endm . Macrodefiniii pentru apelul funciilor MS-DOS . Scriere sectoare la adresa absoluta disc ABS_DISK_WRITE macro disk.first_sector mov al.buffer.********************************** ***** 60 . .offset last_instruc inc dx int 27h endm .******************* .first_sector int 26h popf endm .

Afisarea unui caracter pe monitor DISPLAY_CHAR macro character mov dl. APELAREA FUNCTIEI 01H . daca se detecteaza CTRL+BREAK 61 . INT 23h. AUX_INPUT macro mov ah. APELAREA FUNCTIEI 03H . APELAREA FUNCTIEI 00H . daca se detecteaza .********************************** ***** . APELAREA FUNCTIEI 02H . sistemului DOS avem: v=2400 . READ_KBD_AND_ECHO macro mov ah. .02h int 21h endm . APELAREA FUNCTIEI 04H .character mov ah. daca se detecteaza CTRL+BREAK sau . fara bit de paritate.03h int 21h endm . CTRL+C se genereaza intreruperea . Citire cu ecou de la tastatura. Apelarea functiilor MS_DOS . Iesire auxiliara. INT 23h. dispozitivul standard auxiliar (AUX = COM1). .ah int 21h endm . bauds. In AL se returneaza caracterul citit. Terminarea programului TERMINATE_PROGRAM macro xor ah. In AL se returneaza caracterul citit. un bit de stop. 8 biti de date. Asteapta introducerea unui caracter de la . se transmite caracterul aflat in registrul DL la AUX=COM1 . La initializarea .Sisteme de operare .01h int 21h endm . CTRL+BREAK sau CTRL+C se genereaza intreruperea .

switch mov ah. este direct afisat pe ecran. Tiparirea unui caracter.character mov ah. APELAREA FUNCTIEI 06H . la LPT1. APELAREA FUNCTIEI 08H .05h int 21h endm . al carui cod ASCII se .08h int 21h 62 . in registrul AL. . APELAREA FUNCTIEI 07H . sau CTRL+C se genereaza intreruperea INT 23h. Daca in registrul DL se incarca un caracter ASCII el . consola in registrul AL (ZF=0). afla in registrul DL. READ_KBD macro mov ah. sau CTRL+C. Citire directa fara ecou de la consola. CTRL+C la intrare si genereaza INT 23h. . . PRINT_CHAR macro character mov dl. atunci se citeste un . . caracter de la . Daca registrul DL contine FFh.06h int 21h endm . APELAREA FUNCTIEI 05H . . DIR_CONSOLE_INPUT macro mov ah. se genereaza intreruperea INT 23h. DIR_CONSOLE_IO macro switch mov dl. sau nimic (ZF=1). Daca se detecteaza CTRL+BREAK . Citire directa fara ecou de la consola. in registrul AL. Nu verifica aparitia CTRL+BREAK sau CTRL+C.07h int 21h endm .04h int 21h endm .Sisteme de operare . AUX_OUTPUT macro mov ah. Aceasta functie verifica aparitia CTRL+BREAK sau . Intrare/iesire directa la consola fara ecou.

offset string mov ah. Se citesc maxin 255 caractere inclusiv CR. 0. . Functia returneaza FFh in AL . APELAREA FUNCTIEI 0BH . . numai 40h afiseaza si $) pe ecranul sistemului. AL se poate incarca cu valorile 01h.Sisteme de operare endm . Afiseaza un sir terminat prin $ ($ nu se afiseaza. DISPLAY macro string mov dx. 63 . Se recomanda folosirea acestei functii inainte de . Adresa zonei tampon se da in DS:DX. Citeste de la tastatura (cu ecou) un sir de caractere .string mov dx. 06h. se genereaza INT 23h. Orice alta valoare duce doar la stergerea zonei tampon de intrare.limit mov ah.09h int 21h endm . GET_STRING macro limit.offset string mov string. standard. . APELAREA FUNCTIEI 0AH . 07h si 08h. in caz contrar returneaza . . (octetul 3) al zonei tampon definite de utilizator. APELAREA FUNCTIEI 09H . In DS:DX se . . 08h sau 0Ah. este citit si memorat incepand de la deplasamentul 2 . functiile 01h. Daca se detecteaza CTRL+BREAK sau CTRL+C se genereaza . INT 23h.0BH int 21H endm . . . Sirul (inclusiv CR) . 07h. Verifica daca exista un caracter pregatit la intrarea . pana la intalnirea caracterului CR. da sirul de afisat. daca exista un caracter pregatit.0Ah int 21h endm . CHECK_KBD_STATUS macro mov ah. . APELAREA FUNCTIEI 0CH Sterge toate caracterele din zona tampon de intrare si apeleaza functia DOS specificata in AL. Daca se detecteaza CTRL+BREAK sau CTRL+C .

APELAREA FUNCTIEI 0DH . In intrare se incarca in DS:DX pointerul la FCB_ul deschis.0Ch int 21h endm switch . curenta. SELECT_DISK macro disk mov dl.0Fh int 21h endm . CACHE sunt marcate ca fiind libere (le elibereaza). utilizand FCB (File Control . modificate sunt scrise si toate zonele tampon ale memoriei . 0h daca s-a gasit . APELAREA FUNCTIEI 10H Inchiderea unui fisier utilizand FCB. fara a inchide fisierele. . Block). . Goleste toate zonele tampon de fisiere. Aceasta functie se poate utiliza pentru . sau valoarea FFh in AL daca nu s_a gasit fisierul. . daca s_a gasit o intrare in directorul specificat.switch mov ah. fisierul sau FFh daca nu s_a gasit.). . Toate zonele tampon . Selectarea unitatii de disc implicite prin specificarea ei . . nedeschis. APELAREA FUNCTIEI 0FH .disk[-65] mov ah. Resetarea discului. tratarea lui CTRL+BREAK. APELAREA FUNCTIEI 0EH . Functia returneaza valoarea 0 in AL. DS:DX trebuie sa contina un pointer la un FCB . . Functia returneaza in AL. .Sisteme de operare FLUSH_AND_READ_KBD macro mov al. in registrul DL (0=A.0Eh int 21h endm ..0Dh int 21h endm . Deschiderea unui fisier. ca fiind unitate logica . . RESET_DISK macro mov ah.offset fcb mov ah. OPEN macro fcb mov dx. 64 .. 1=B.

DX obligatoriu trebuie . potriveste cu cel specificat in FCB.offset fcb mov ah. APELAREA FUNCTIEI 13H . SEARCH_FIRST macro fcb mov dx. se . valoarea FFh daca nu s-a gasit un astfel de fisier. Numele fisierului 65 . creeaza un FCB nedeschis de acelasi tip la adresa DTA (Disk . . intrare in director pentru fisierul specificat. DS:DX cu un pointer la FCB-ul nedeschis. Numele fisierului .offset fcb ah.12h int 21h endm . sa pointeze primul octet al FCB-ului extins . incarca DS:DX cu un pointer la FCB-ul nedeschis.11h int 21h endm . Daca . fisierului din FCB poate contine caracterele "?" sau . In intrare se incarca . "*". sau . DX obligatoriu . (deplasament -07h).offset fcb mov ah. Sterge din directorul curent fisierul al carui nume se . Cauta in directorul curent urmatorul fisier al carui nume . intrare in director pentru fisierul specificat. s-a gasit intrarea pentru numele de fisier din FCB. SEARCH_NEXT macro fcb mov dx. Pentru fisierele ascunse sau sistem. APELAREA FUNCTIEI 11H . (deplasament -07h). valoarea FFh daca nu s-a gasit un astfel de fisier. In intrare se incarca . Transfer Address) curenta. DS:DX cu un pointer la FCB-ul nedeschis. Numele . AL contine valoarea 0 daca s-a gasit o . din FCB poate contine caracterele "?" sau "*".Sisteme de operare CLOSE mov mov int endm macro fcb dx.10h 21h . potriveste cu cel specificat in FCB. trebuie sa pointeze primul octet al FCB-ului extins . sau . Pentru fisierele ascunse sau sistem. Cauta in directorul curent primul fisier al carui nume se . APELAREA FUNCTIEI 12H . se potriveste cu cel specificat in FCB. AL contine valoarea 0 daca s-a gasit o . In intrare se .

Campul cu . astfel de fisier.offset fcb mov ah. 0Eh. care are .pentru DTA prea mic anulandu-se citirea. .pentru citirea unui EOF inaintea citirii unui . campul de dimensiune a articolului din FCB. sunt incarcate in DTA. . articol intreg. care are deplasamentul . 00h .Sisteme de operare . incrementate. de dimensiune a articolului din FCB. WRITE_SEQ macro fcb 66 .14h int 21h endm . utilizand un FCB pointat de DS:DX. deplasamentul 0Ch si articolul curent precizat de . . incrementate. DOS 0Fh nu-l zerorizeaza. curent (deplasament 20h in FCB). cele doua campuri sunt actualizate. Lungimea articolului se va lua din . Se returneaza in AL valorile: . . 03h . 00h . Este recomandabila punerea pe zero a campului articol . completandu-se articolul cu zerouri. fisierul specificat. Citeste secvential un articol din fisier in zona DTA. deplasamentul 0Eh. 01h . READ_SEQ macro fcb mov dx. AL contine . trebuie inchise. DELETE macro fcb mov dx. in sensul ca sunt . .pentru DTA prea mic anulandu-se scrierea. . Inainte de stergere fisierele .offset fcb mov ah. care cele doua campuri sunt actualizate. Scrierea secventiala a unui articol in fisier din zona DTA. din FCB poate contine caracterul "?" . deoarece functia . .pentru disc plin cu anularea scrierii. deplasamentul 0Ch si articolul curent precizat de .13h int 21h endm . 01h . utilizand un FCB pointat de DS:DX. Se returneaza in AL valorile: . 02h .pentru citirea unui EOF fara a se citi date. sau valoarea FFh daca nu s-a gasit un .pentru citire cu succes. APELAREA FUNCTIEI 14H . Campul cu . . valoarea 0 daca s-a gasit o intrare in director pentru . in sensul ca sunt . dupa . Lungimea articolului se va lua din campul . sunt incarcate in DTA. deplasamentul 20h din FCB. APELAREA FUNCTIEI 15H . dupa care .pentru scriere cu succes. deplasamentul 20h din FCB. 02h .

creat. sau valoarea FFh daca nu a fost . Schimba numele unui fisier existent. functia 0Fh. vechiul . fisier nedeschis.15h 21h . nume. majoritatea functiilor adica: 0=A. numarul unitatii implicite cu unu mai mic ca la . . La lansarea programului in executie.offset fcb mov ah. urmate la deplasamentul 11h de noul nume si noua . implicit pentru DTA sunt folositi 128 de octeti.offset fcb ah. APELAREA FUNCTIEI 16H . APELAREA FUNCTIEI 17H . Creaza un fisier utilizand un FCB pointat de DS:DX pe un . de la deplasamentul 80h din PSP 67 .Sisteme de operare mov mov int endm dx.offset fcb mov ah. la valoarea avand adresa in DS:DX. La revenire. 1=B. de DS:DX.16h int 21h endm ..17h int 21H endm .. fisierul a fost creat. care contine numarul unitatii. . La revenire AL contine valoarea 00h daca .19h int 21H endm . RENAME macro fcb. extensie. 2=C. utilizand FCB pointat . APELAREA FUNCTIEI 19H . valoarea 00h pentru redenumire reusita sau FFh daca . in registrul AL se returneaza . redenumirea este nereusita sau un fisier cu noul nume . . Obtinerea unitatii curente implicite. . Returneaza in AL . . FCB-ul se completeaza ca la . CURRENT_DISK macro mov ah. exista deja.newname mov dx. APELAREA FUNCTIEI 1AH Modificarea adresei zonei de transfer a discului DTA. CREATE macro fcb mov dx.

. iar dimensiunea se afla la deplasamentul 0Eh din FCB. APELAREA FUNCTIEI 21H Citirerea in acces direct a unui articol dintr_un fisier. sectoare pe cluster. tipul unitatii. in DS:BX returneaza pointer_ul la . rezerve o zona proprie DTA care trebuie modificata cu . 12h. SET_DTA macro buffer mov dx. . . Citirea se face in zona de memorie a DTA_ului curent. in DS:BX . . iar functiile de . unitatea curenta.offset buffer mov ah. . care . functia 1Ah.1Ah int 21H endm . Functia returneaza in AL numarul de sectoare pe cluster. Retinem ca toate accesele la fisiere .1Bh int 21h endm . de aceea utilizatorul trebuie sa_si . Aflarea informatiilor FAT (File Allocation Table) pentru . este insuficient. DS:DX fiind incarcat cu un pointer la FCB_ul deja deschis. in DX numarul de .drive mov ah. octetul de identificare FAT. cluster_e pe unitate. in . care identifica de fapt . cautare 11h. DRIVE_DATA macro drive mov dl. in CX numarul de octeti pe sector. 4Eh si 4Fh isi plaseaza datele in DTA. identifica de fapt tipul unitatii. utilizand FCB_ul se fac prin DTA. Functia returneaza in AL numarul de . DX numarul de cluster_e pe unitate. . Articolul se va citi la adresa specificata la deplasamentul 21h din FCB. DEF_DRIVE_DATA macro mov ah. returneaza pointer_ul la octetul de identificare FAT. . APELAREA FUNCTIEI 1CH . APELAREA FUNCTIEI 1BH .Sisteme de operare . (Program Segment Prefix). Spatiul rezervat in mod implicit . .1Ch int 21h endm . Functia returneaza in AL 68 . Aflarea informatiilor FAT pentru unitatea specificata. in CX numarul de octeti pe sector.

APELAREA FUNCTIEI 22H . In AL se . APELAREA FUNCTIEI 23H .pentru scriere incheiata cu succes. 02h . 01h . AL valorile: . pentru DTA prea mic si anularea citirii. .offset fcb mov ah. 00h . nedeschis specificat prin DS:DX. deplasamentul 0Eh din FCB. precizeaza la deplasamentul 21h din FCB. returneaza valoarea: . macro fcb dx. APELAREA FUNCTIEI 24H . valorile: .22h int 21h endm .Sisteme de operare . DTA. intr_un fisier . . Dimensiunea fisierului . in cazul citirii unui EOF fara a se citi date.21h 21h . 00h . sau .daca s_a gasit fisierul specificat.offset fcb ah.pentru disc plin.daca fisierul este inexistent. exprimata in numar de articole (cu rotunjire superioara) se . utilizand un FCB deschis a carui adresa este este data .23h int 21h endm . 03h . de la adresa DTA. Articolul scris este specificat la deplasamentul . utilizand FCB . 01h . 21h din FCB iar dimensiunea articolului la . scriere abandonata. Pozitionarea campului "Articol in acces direct" de la 69 . Scrierea in acces direct.nu este nici un articol de scris in . READ_RAN mov mov int endm pentru citire cu succes. WRITE_RAN macro fcb mov dx. Ontinerea dimensiunilor unui fisier. pentru gasirea unui EOF inaintea citirii unui articol intreg. de DS:DX. 02h . 00h .offset fcb mov ah. Functia returneaza in . FFh . FILE_SIZE macro fcb mov dx.

Sisteme de operare . . APELAREA FUNCTIEI 26H . . de apel a vectorului de intrerupere.interrupt mov dx. . data de DS:DX.offset seg_addr mov ah.handler_start mov al. despre memorie.25h int 21h endm . . ca adresele rutinelor de tratare a intreruperilor INT . SET_RELATIVE_RECORD macro fcb mov dx. La intrare DX trebuie incarcat cu adresa . Citirea incepe de la articolul specificat la deplasamentul 21h din FCB. . iar noul PSP va fi actualizat. adresa DX:0000. de tratare a intreruperii. iar DS:DX este incarcat cu un pointer la rutina utilizator . SET_VECTOR macro interrupt. iar in CX se va preciza numarul de articole de citit. PSP_ul . segmentului ce contine noul PSP. de intreruperi. In AL se incarca numarul intreruperii. in sensul . CREATE_PSP macro seg_addr mov dx. INT 23h si INT 24h sunt plasate in PSP si este . in memorie la adresa DTA curenta. rutina utilizator. . Se recomanda salvarea inainte . deplasamentul 21h din FCB deschis al carui adresa este . APELAREA FUNCTIEI 27H Citeste unul sau mai multe articole dintr_un fisier. folosind functia 35h.offset handler_start mov ah. current avand dimensiunea de 256 octeti este copiat la . 22h.24h int 21h endm . utilizand un FCB al carui adresa este precizata de DS:DX.26h int 21h endm . Crearea unui nou PSP in programul utilizator. astfel incat programul sa poata reincarca la iesirea din .offset fcb mov ah. actualizata si locatia 06h din noul PSP cu informatii . Pozitioneaza adresa unei intreruperi in tabela vectorilor . adresa rutinei originale a vectorului . . APELAREA FUNCTIEI 25H . Pentru 70 . de intrerupere.

scrierea se face de la . . articolul specificat la deplasamentul 21h din FCB. FCB. In registrul CX se returneaza numarul de articole citite. . .27h int 21h endm . in registrul AL urmatoarele velori: . numarul de articole de scris. atunci va fi creat un FCB nedeschis. 01h _ pentru EOF scris. dimensiunea articolului aflat la deplasamentul 0Eh din . Functia returneaza . . memoria la adresa DTA curenta. calcularea numarului de octeti de scris. . se inmulteste . APELAREA FUNCTIEI 29H Analizeaza un sir de caractere al carui deplasament fata de adresa segment specificata in DS.rec_size mov dx. intreg.rec_size mov ah. intr_o zona de memorie avand deplasamentul fata de adresa 71 . iar in CX se va preciza . RAN_BLOCK_WRITE macro fcb. Functia returneaza . APELAREA FUNCTIEI 28H . care va fi completat cu zerouri.rec_size mov dx. .Sisteme de operare . din . adresa este precizata de DS:DX. . .count mov word ptr fcb[14]. FCB. se afla in registrul SI. . . RAN_BLOCK_READ macro fcb. cu valoarea specificata in CX.offset fcb mov cx.count mov word ptr fcb[14]. Daca sirul specifica un nume de fisier (cu eventuala extensie).28h int 21h endm . in registrul AL urmatoarele velori: . utilizand un FCB al carui . 00h _ pentru citire cu succes.rec_size mov ah. Scrie unul sau mai multe articole intr_un fisier. cu valoarea specificata in CX. dimensiunea articolului aflat la deplasamentul 0Eh din . 01h _ pentru EOF gasit fara citire de date.offset fcb mov cx. . Pentru . 03h _ pentru citirea unui EOF inaintea unui articol .count. 00h _ pentru scriere cu succes. 02h _ pentru DTA prea mic si anularea citirii. calcularea numarului de octeti de citit. In registrul CX se returneaza numarul de articole scrise. se inmulteste .count.

Sisteme de operare
; ES:DI. Tot aceasta functie mai permite ; selectarea unui dispozitiv. La intrare se perecizeaza in AL ; bitii de control care au semnificatia: ; -bitul 0: 0 - se opreste analiza la intalnirea unui ; separator de fisier, ; 1 - se ignora separatorii, ; -bitul 1: 0 - pozitioneaza la 0 numarul dispozitivului, ; 1 - lasa neschimbat numarul dispozitivului, ; -bitul 2: 0 - pozitioneaza numele fisierului pe 8 spatii, ; 1 - lasa neschimbat numele fisierului, ; -bitul 3: 0 - pozitioneaza extensia pe trei spatii, ; 1 - lasa neschimbata extensia. ; In DS:SI se da un pointer la sirul de analizat. Functia returneaza in registrul AL: 00h _ pentru succes fara ; intalnirea caracterelor "*" sau "?", 01h _ pentru succes si ; intalnirea caracterelor "*" sau "?", FFh _ pentru ; insucces. In registrul DS:SI se returneaza un pointer la ; octetul imediat urmator sirului curent analizat, iar in ; ES:DI va contine in caz de succes un pointer la un FCB ; nedeschis si in caz de insucces contine al doilea octet ; de la adresa pointata (adica ES:DI+1). PARSE macro string,fcb mov si,offset string mov di,offset fcb push es push ds pop es mov al,0Fh mov ah,29h int 21h pop es endm

;

APELAREA FUNCTIEI 2AH

; Asigura returnarea date curente din sistem, inclusiv ziua ; din saptamana. Functia returneaza in AL ziua din ; saptamana astfel: 0=duminica, 1=luni, ... , 6=sambata. In ; registrul CX se da anul curent, a carui valoare este ; cuprinsa intre 1980 si 2098. In registrul DH se da luna ; curenta ca o valoare numerica cuprinsa intre 1 si 12, ; unde 1=Ianuarie, 2=Februarie, ... , 12=Decembrie. In ; registrul DL se da ziua curenta care are valori numerice ; cuprinse intre 1 si 31. GET_DATE macro mov ah,2Ah int 21h

72

Sisteme de operare
endm

;

APELAREA FUNCTIEI 2BH

; Setarea datei curente a sistemului. Pentru apelarea ; functiei se incarca in registrul CX anul curent, al carui ; valoare este cuprinsa intre 1980 si 2098. In registrul DH ; se introduce luna curenta ca o valoare numerica ; cuprinsa intre 1 si 12, unde 1=Ianuarie, 2=Februarie, ... , ; 12=Decembrie. In registrul DL se introduce ziua ; curenta care are valori numerice cuprinse intre 1 si 31. ; Functia returneaza in AH valoarea 00h daca s-a ; specificat o data valida si valoarea FFh daca s-a ; specificat o data invalida, abandonandu_se setarea. SET_DATE macro year,month,day mov cx,year mov dh,month mov dl,day mov ah,2Bh int 21h endm

;

APELAREA FUNCTIEI 2CH

; Returneaza ora curenta a sistemului de calcul. Functia ; returneaza in registrul CH ora curenta printr_o valoare ; numerica cuprinsa intre 0 si 23. In registrul CL se ; returneaza minutul curent printr-o val. numerica cuprinsa ; intre 0 si 59. In registrul DH se returneaza secunda ; curenta printr-o valoare cuprinsa intre 0 si 59, iar in ; DL se returneaza sutimile de secunda printr-o valoare ; cuprinsa intre 0 si 99. GET_TIME macro mov ah,2Ch int 21h endm

;
; ; ; ; ; ; ; ; ;

APELAREA FUNCTIEI 2DH
Seteaza ora curenta a sistemului de calcul. Functia are nevoie in registrul CH de ora curenta, specificata printr_o valoare numerica cuprinsa intre 0 si 23, iar in registrul CL de minutul curent specificat printr_o valoare numerica cuprinsa intre 0 si 59, in registrul DH de secunda curenta specificata printr_o valoare cuprinsa intre 0 si 59, iar in registrul DL se specifica sutimele de secunda printr_o valoare cuprinsa intre 0 si 99. Functia returneaza in AH valoarea 00h daca s_a specificat o ora

73

Sisteme de operare
; valida si valoarea FFh daca s_a specificat o ora ; invalida, abandonandu_se setarea. SET_TIME macro hour,minutes,seconds,hundredths mov ch,hour mov cl,minutes mov dh,seconds mov dl,hundredths mov ah,2Dh int 21h endm

;

APELAREA FUNCTIEI 2EH

; Verifica prin citire inapoi, fiecare sector, dupa ce a fost ; scris. Registrul AL este incarcat valoarea 00h pentru ; setarea VERIFY OFF. Registrul AL este incarcat valoarea 01h ; pentru setarea VERIFY ON, asigurandu_se ; maximum de integritate a datelor prin verificare. VERIFY macro switch mov al,switch mov ah,2Eh int 21h endm

;

APELAREA FUNCTIEI 2FH

; Asigura obtinerea adresei DTA curenta in ES:BX. Trebuie ; mare atentie deoarece se modifica registrul de ; segment ES. GET_DTA macro mov ah,2Fh int 21h endm

;

APELAREA FUNCTIEI 30H

; Asigura obtinerea versiunii DOS active in momentul ; apelului. Functia returneaza: numarul versiunii de baza in ; registrul AL si numarul versiunii secundare in reg. AH. GET_VERSION macro mov ah,30h int 21h endm

;

APELAREA FUNCTIEI 31H

; Functia realizeaza iesirea (reintoarcerea) in procesul ; parinte, astfel incat programul din care se revine sa ; ramana rezident dupa terminare (TSR). Functia necesita in

74

Pozitionarea/Obtinerea starii indicatorului CTRL+C sau .pentru setarea pe ON. 0Ch. Functia nu .pentru ON. CTRL+C sau CTRL+BREAK doar in timpul operatiilor de . este pe OFF. (functiile 01h. Functia returneaza in ES:BX un pointer la 75 . fiecare paragraf avand 16 octeti..cl inc dx mov ah.offset last_byte mov cl. verificarea introducerii caracterelului CTRL+BREAK . (pentru sistemele compatibile IBM_PC). . paragrafe.Sisteme de operare . APELAREA FUNCTIEI 33H .action mov dl. intrare. 00h .state mov ah.last_byte mov al. inchide fisierele ramase deschise. Atunci cand starea . iar in BX deplasamentul acestei rutine. FFh in registrul AL in caz de eroare. incarcarea unui cod de retur (sau cod de . eroare) in registrul AL. . si valoarea .pentru setarea pe OFF sau ..33h int 21h endm .31h int 21h endm .return_code mov dx. La apelarea functiei registrul AL se incarca cu numarul intreruperii. . La apelul functiei trebuie . APELAREA FUNCTIEI 35H Returnarea din tabela de intreruperi vectorul specificat. se verifica introducerea caractelelor . . . 00h . dimensiunea memoriei rezidente.4 shr dx. 02h. obtinerea starii sau 01h _ pentru pozitionarea starii . iar in acest ultim caz (AL=01h) DL trebuie incarcat cu .pentru OFF sau . intrare/iesire de la echipamentul standard de intrare . KEEP_PROCESS macro return_code. . exprimata in . 01h . valoarea numerica: . ca registrul AL sa fie incarcat cu valoarea: 00h _ pentru . . Functia returneaza in DL valorile: . Registrul DX trebuie incarcat cu . punandu_se in ES adresa segmentului rutinei de tratare a intreruperii. . CTRL_C_CK macro action.state mov al. 01h .

Cu aceste informatii utilizatorul poate calcula: .numarul de sectoare pe unitatea de alocare .. 01h . .numarul unitatilor de alocare disponibile pe disc. valori mai mari de 255). sau . AX . Functia returneaza in caz de eroare CF=1 .buffer local gc_01 76 . . avea maximum 34 octeti.. memorie specificata in DS:DX. . tarii iar in DS:DX se dau informatii dependente de tara.pentru discul A.36h int 21h endm . Obtinerea spatiului liber pe un disc magnetic. Zona specificata in DS:DX va .35h int 21h endm .. . CX . specificat printr_un numar de unitate incarcat in . FFh daca codul se va specifica in registrul BX (avand .pentru discul B. (FFFFh . GET_DISK_SPACE macro drive mov dl. iar in registrul AH se da valoarea 02h pentru cod de tara . . FFFFh. registrul DL. .numarul de unitati de alocare de pe disc. in zona de . Obtinerea informatiilor dependente de tara. invalid. Spatiul total in octeti al discului = (AX * CX * DX). 00h . DX . . . disc . Valorile admise pentru numarul de unitate sunt: .Sisteme de operare . 02h . rutina de tratare a intreruperii. Functia returneaza urmatoarele informatii. . GET_COUNTRY macro country. GET_VECTOR macro interrupt mov al.numarul de octeti pe sector. La apelul functiei in AL . 01h . FEh _ pentru codul tarii dorite. 00h _ pentru tara curenta . APELAREA FUNCTIEI 36H . in urmatoarele registre: .pentru discul magnetic implicit. Daca nu este eroare CF=0 in BX se da codul .. iar DX va fi incarcat cu valoarea .unitate de disc invalida). . APELAREA FUNCTIEI 37H . Spatiul liber in octeti de pe disc = (AX * BX * CX). se incarca urmatoarele valori numerice: . .interrupt mov ah.drive mov ah. BX .

iar DX va fi incarcat cu . Functia returneaza in caz de eroare ..0FFH jl sc_01 mov al.pentru cazul cand nu s-a gasit calea specificata. sau .offset buffer ax. . 01h . . Pozitionarea informatiilor dependente de tara.country ax.pentru tara curenta.country ah.country sc_01: mov ah. codul tarii iar in DS:DX se dau informatii . . prin utilizarea unei cai de acces de maximum 64 caractere ASCII.Sisteme de operare mov mov cmp jl mov mov mov int endm dx. La apelul functiei . valori mai mari de 255). . Daca nu este eroare CF=0 in BX se da .pentru codul tarii dorite. FEh . . in AL se incarca urmatoarele valori numerice: .0ffh mov bx.38h int 21h endm . .0FFH gc_01 al. . directorul nu s_a creat si se precizeaza un cod de eroare in AL cu urmatoarea semnificatie: 03h . FFh daca codul se va specifica in registrul BX (avand . Zona specificata in DS:DX . . CF=1 iar in registrul AH se da valoarea 02h pentru cod de . daca CF=1. . . valoarea FFFFh. va avea maximum 34 octeti.0ffh bx. existentei unui subdirector cu alelasi nume sau specificarea unui nume de unitate eronata. dependente de tara. APELAREA FUNCTIEI 38H .37h 21h gc_01: . La retur. dintr-o zona .. de memorie specificata in DS:DX. 05h _ pentru accesul interzis din cauza lipsei de spatiu. 00h .country cmp ax. SET_COUNTRY macro country local sc_01 mov dx. a cerei adresa se specifica in DS:DX. APELAREA FUNCTIEI 39H Crearea unui nou subdirector (MKDIR). tara invalid. 77 .0FFFFH mov ax.

returnarea in registrul AX a urmatoarelor coduri de eroare: . . .offset path mov ah. APELAREA FUNCTIEI 3CH Crearea unui fisier al carui nume se da prin specificarea unui sir de caractere ASCII. . DS:DX.pentru cazul in care nu s-a gasit calea specificata. La retur.calea specifica directorul curent. . .39h 21h .offset path ah.3Bh int 21h endm . . La intrarea in functie utilizatorul trebuie sa specifice in registrul CX atributele fisierului ce urmeaza a fi creat prin indicarea valorilor: 00h _ pentru fisier obisnuit. Schimbarea directorului curent (CHDIR) prin specificarea . calea specificata. APELAREA FUNCTIEI 3BH .3Ah int 21h endm . care reprezinta calea de acces la subdirectorul . daca CF=1 s-a depistat o eroare. 03h in AX si care semnifica faptul ca nu a fost gasita . 03h . CHANGE_DIR macro path mov dx. APELAREA FUNCTIEI 3AH . respectiv. unui sir de maximum 64 caractere ASCII. care este explicitata prin pozitionarea codului de eroare . . sir a carui adresa se da in DS:DX. reprezentand calea de acces. de maximum 64 caractere ASCII aflate la adresa . DS:DX. . .Sisteme de operare MAKE_DIR mov mov int endm macro path dx. REM_DIR macro path mov dx. Stergerea unui subdirector (RMDIR) prin utilizarea unui sir . . reprezentand numele si calea de acces. care nu va duce la stergerea subdirectorului ci la . sir a carui adresa se da in . sau calea specificata nu este valida. 78 . 06h . 05h . Daca la retur CF=1 atunci s_a produs o eroare . .pentru acces interzis adica directorul nu este gol .offset path mov ah.

001 . .offset path mov cx. CREATE_HANDLE macro path. . APELAREA FUNCTIEI 3DH Deschiderea unui fisier al carui nume se da prin specificarea unui sir de caractere ASCII. grupat pe biti in felul urmator: 7 6 5 4 3 2 1 0 M P P P R A A A unde: M este indicator de mostenire (are valoarea 0 daca fisierul este mostenit de catre un process fiu creat cu functia 4Bh si valoarea 1 in caz contrar). . AAA este un indicator pentru modul de acces: 79 .attrib mov dx. . semnifica faptul ca accesul este interzis. R reprezinta un bit rezervat. . . . adica mai . 01h _ pentru fisier de tip "read only". . . . 100 . . 02h _ pentru fisier de tip "headen" (ascuns). . .Sisteme de operare . 010 .attrib mov ah. AX care semnifica negasirea caii ce acces. si are valorile: 000 .3Ch int 21h endm .interzis orice: pentru esuare in acces R/W daca a fost deschis inmod compatibilitate. .compatibilitate: pentru deschiderea de catre orice proces. . . . . 04h in cazul . . 011 . . . La intrarea in functie utilizatorul trebuie sa precizeze in AL codul de acces la fisierul respectiv. Daca la retur CF=1 atunci s_a produs o eroare care este . . restrictive decat cel specificat. . .citire interzisa: pentru esuare in citire de orice alt proces. sir a carui adresa se da in DS:DX. . 04h _ pentru fisier de tip "system". exista un fisier cu acelasi nume dar cu atribute mai . . . cand sunt deschise prea multe fisiere si 05h care . PPP este un indicator de partajare a fisierului intre procese. . . .scriere interzisa: pentru esuare in scriere de orice alt proces. . reprezentand numele si calea de acces. explicitata prin pozitionarea codului de eroare 03h in .nimic interzis: pentru esuare in caz ca fisierul a fost deschis in mod compatibilitate de orice alt proces.

reprezinta identificator logic invalid. DS:DX. zonei tampon in care se efectueaza citirea se da in .access mov dx. 03h . directorul. CF=1. iar daca CF=1 in AX se . fisierului.pentru numar de functie invalid.bytes 80 . Identificatorul logic este precizat la intrare . 0Ch .3Eh int 21h endm . . .daca sunt prea multe fisiere deschise. Citirea dintr-un fisier sau de la un dispozitiv al carui . . 05h .pentru mod de deschidere invalid. 06h .3Dh int 21h endm . 3Ch sau 3Dh. numarului de octeti de citit in registrul CX iar adresa . . de eroare: .pentru acces interzis. sau .pentru identificator logic . 001 _ scriere permisa. daca indicatorul . 01h .offset path mov al. in registrul AX se da codul de eroare 06h – care . OPEN_HANDLE macro path. CLOSE_HANDLE macro handle mov bx. eliberand identificatorul logic si actualizand . . Functia goleste toate buffer_ele atasate fisierului. utilizand identificatorul logic. . Inchiderea unui fisier. APELAREA FUNCTIEI 3FH . in registrul BX. inchide fisierul care a fost deschis cu una din functiile . identificator logic se da in registrul BX. READ_HANDLE macro handle.daca nu s_a gasit fisierul. 010 _ scriere/citire permisa. La iesirea din functie.handle mov ah. iar daca CF=1 se returneaza in AL codul . 000 _ citire permisa.Sisteme de operare . 04h . APELAREA FUNCTIEI 3EH .buffer. nedeschis sau invalid. 02h . de octeti efectivi cititi. returneaza un cod de eroare cu urmatoarea semnificatie: .pentru acces interzis si . . . cu precizarea .daca nu s_a gasit calea.access mov ah. . 05h . La retur daca indicatorul CF=0 in AX se da numarul . La retur daca CF=0 in AX se returneaza indicatorul logic al .

identificator logic se da in registrul BX. cu precizarea .pentru fisier negasit. 81 . stergerea unui fisier "read only". Stergerea unui fisier prin invalidarea intrarii din . 06h . un cod de eroare cu urmatoarea semnificatie: .bytes mov ah. cum este de exemplu . fisier asociat identificatorului logic precizat in . APELAREA FUNCTIEI 42H .pentru acces interzis. director (UNLINK).pentru identificator logic nedeschis sau invalid.offset path mov ah. registrul BX. sau . WRITE_HANDLE macro handle. APELAREA FUNCTIEI 41H . Scrierea intr_un fisier sau de la un dispozitiv al carul . . Pozitionarea pointer_ului de citire/scriere (LSEEK) al unui .offset buffer mov cx.bytes ah. .handle dx. DELETE_ENTRY macro path mov dx.handle mov dx. 05h . 05h .Sisteme de operare mov mov mov mov int endm bx. DS:DX. APELAREA FUNCTIEI 40H . in sir pot sa apara si caracterele "*" sau "?". dat de un sir ASCII precizat in DS:DX. La iesire daca CF=1 atunci in AX se . pentru fisierul al carui nume este .bytes mov bx.41h int 21h endm .buffer. La retur daca indicatorul CF=1 in AX se returneaza . 02h .pentru acces interzis.40h int 21h endm . zonei tampon din care se efectueaza scrierea se da in . . precizeaza un cod de eroare: .offset buffer cx.pentru cale de acces invalida sau .3Fh 21h . numarului de octeti de scris in registrul CX iar adresa . 03h .

01h .pentru pozitionarea atributelor. In registrul CX se precizeaza atributele fisierului: . fata de pozitia data in registrul AL. adresa se afla in DS:DX. . La retur.handle mov cx.pentru fisier de tip obisnuit. iar daca CF=1 . subfunctiei: .pentru fisier de sistem si . de eroare: .43h int 21h 82 . In CX:DX se incarca deplasamentul. in DX:AX se da noua locatie a pointer_ului.method mov ah.action mov cx. CHANGE_MODE macro path. 00h . 00h _ fata de inceputul fisierului. . . exprimat in octeti. 06h _ pentru identificator logic invalid. . . Registrul AL este incarcat cu codul de pozitionare: . iar daca CF=1 in AX se da codul .method mov bx.pentru functie invalida (diferita de 00h sau 01h). In AL se precizeaza codul .high. 20h . 00h . 02h . 01h _ fata de pozitia curenta si .pentru fisier de tip "read only". 01h .offset path mov al. daca CF=0 functia returneaza in CX octetul de . MOVE_PTR macro handle. . adica AL nu contine o .pentru acces interzis. APELAREA FUNCTIEI 43H .pentru fisier negasit. 03h _ fata de sfarsitul fisierului. atribute ale fisierului.attrib mov ah. 01h . Obtinerea/Pozitionarea atributelor unui fisier (CHMOD). 03h .action. 02h .high mov dx. fisier specificat printr-un sir de caractere ASCII al carui . .Sisteme de operare .low.functie invalida. 05h .42h int 21h endm . 01h .pentru obtinerea atributelor si .pentru cale negasita sau . in AX se da codul de eroare: .low mov al.pentru fisier de tip arhiva. .pentru fisier ascuns.attrib mov dx. valoare cuprinsa intre 0 si 2 (inclusiv) sau . . Daca la retur CF=0. . 04h . . .

. .suporta iesirea pana cand devine ocupat 14 =1 daca disp. . pentru obtinerea/ pozitionarea informatiilor despre dispozitiv.Sisteme de operare endm . . . . . Daca bitul 7 din DX este 0.(CLOCK$) 4 rezervat 5 =1 pentru modul binar si = 0 pentru modul ASCII 6 =0 daca_i un EOF la intrare 7 =1 pentru dispozitiv de tip caracter 8-10 rezervati 11 =1 daca disp. . . . . . . dupa cum bitul 7 are valoarea 0 sau 1: 1. . . atunci in DX se precizeaza starea unui fisier pe disc magnetic: DX: Descriere: bitul 0_5 numarul dispoz. . . . . APELAREA FUNCTIEI 4400H. BX. . . . standard de iesire (consola) 2 =1 daca este dispozitivul NULL 3 =1 daca dispozitivul este ceasul calc. . . . . iar daca AL se incarca cu 01h se pozitioneaza informatiile referitoare la dispozitivul periferic atasat identificatorului logic specificat in BX. . . .01H Control intrare/iesire pentru dispozitivele periferice (IOCTRL _ Input/Output Control).. de tip bloc. DH fiind incarcat cu 00h si DL incarcat cu informatiile ce trebuie setate. In cazul in care AL=01h se pozitioneaza informatiile despre dispozitiv in felul urmator: DX: Descriere: 83 . . in cazul AL=00h se returneaza in DX unul din urmatoarele doua formate. . . . 0 = A. atunci in DX se reprezinta starea unui dispozitiv de tip caracter: DX: Descriere: bitul 0 =1 daca este dispozitivul stand. Daca bitul 7 din DX este 1. 6 =1 daca fisierul a fost scris 7 =0 pentru a indica un dispozitiv de tip bloc (disc) 8_15 rezervati La retur daca CF=1 atunci in AX se da un cod de eroare avand valoarea 06h semnificand un identificator logic invalid sau nedeschis. 1 = B. intelege instructiuni open/close 12 rezervat 13 =1 disp. . .intrare (consola) 1 =1 daca este disp. La retur. . . . . . poate prelucra siruri de control 15 rezervat 2. Daca AL se incarca cu 00h se returneaza informatii despre dispozitivul sau fisierul atasat identificatorului logic specificat in reg.. . . . .

7 =1 pentru dispozitiv de tip caracter sau .44h int 21h endm .code mov ah. 01h pentru functie invalida.code mov ah. care poate avea valorile: . La retur . IOCTL_CHAR macro code.pentru a indica faptul ca indicatorul logic este . standard de iesire (consola) . APELAREA FUNCTIEI 4402H. nedeschis. nu permite siruri de control sau . IOCTL_DATA macro code. invalid sau nedeschis.buffer mov bx. 8_15 =00h . 5 =1 pentru modul binar si = 0 pentru modul ASCII .44h int 21h endm . CX trebuie incarcat numarul de octeti de citit/scris .03H . =0 pentru un fisier .Sisteme de operare . 02h pentru citire sau 03h pentru scriere. in/din zona de memorie tampon precizata in DS:DX. 1 =1 daca este disp. daca CF=0 in AX se da numarul de octeti efectiv .handle mov al. identificatorului logic precizat in BX. 6 =0 daca-i un EOF la intrare .handle. La intrarea in . transferati. iar daca CF=1 in AX se da un cod de eroare .handle mov dx. bitul 0 =1 daca este disp. functie trebuie ca in registrul AL sa se incarce valorile: .05H 84 . 3 =1 daca disp. 06h . 01h . 4 rezervat . Citirea/Scrierea de la un dispozitiv de tip caracter atasat . sau valoarea . standard de intrare (consola) . avand valoarea: . 06h semnificand un identificator logic invalid sau .handle mov bx. In registrul . La retur daca CF=1 atunci in AX se da un cod de eroare .offset buffer mov al. 2 =1 daca este dispozitivul NULL . APELAREA FUNCTIEI 4404H. este ceasul calculatorului (CLOCK$) .pentru a indica faptul ca dispozitivul periferic .

drive mov dx.code 85 . discul A. precizat in CX.44h int 21h endm . este un EOF pentru fisier. 05h _ pentru acces interzis sau .handle mov al. BL. IOCTL_BLOCK macro code. .handle mov bx. . iar . .. 01h .pentru discul A.Sisteme de operare . Daca CF=0 in AL se returneaza starea intrarii/iesirii prin . . Daca AL=06h se solicita ontinerea starii intrarii. .pentru discul implicit..code mov ah. Identificatorul logic al . sau a unui fisier al carui indicator logic este specificat . transferul facandu_se dintr_o zona tampon specificata in DS:DX. dispozitivului se specifica prin introducerea in registrul BL a valorilor: 00h _ pentru discul implicit. La retur daca CF=1 in AX se da un cod de eroare care . .07H . La retur daca CF=0 in AX se dau numarul de octeti efectiv transferati. 00h . IOCTL_STATUS macro code.buffer mov bl.pentru discul B. . 01h _ pentru . Identificatorul logic al dispozitivului sau al fisierului . . daca AL=07h se solicita obtinerea starii iesirii.. 02h _ pentru discul B. de pe disc se specifica prin introducerea in registrul BX a . valorilor: . 06h _ pentru identificator logic invalid sau nedeschis. Obtinerea starii intrarii/iesirii unui dispozitiv periferic . APELAREA FUNCTIEI 4406H. de eroare care poate lua valorile: 01h _ pentru a specifica faptul ca dispozitivul nu permite siruri de control sau . FFh _ pentru dispozitiv pregatit sau nu . poate lua valorile: . in BX. 02h . 05h _ pentru driver invalid in BL. transferandu_se un numar de octeti . Daca AL=04h se face o citire. indicarea valorilor: . iar daca AL=05h se face o scriere. 00h _ pentru dispozitiv nepregatit sau EOF la fisier si . iar daca CF=1 in AX se da un cod . Citire/Scriere de la un dispozitiv periferic de tip bloc (disc magnetic) al carui indicator logic este specificat in .offset buffer mov al.drive.. .

.44h int 21h endm 86 . . iar in . . un dispozitiv care nu poate fi schimbat. . dispozitiv care poate fi schimbat. APELAREA FUNCTIEI 4408H .. . . schimbat (disc flexibil ori sreamer) sau nu (disc fix). 01h _ pentru functie invalida. iar in BL se .08h mov ah.drive mov al. atribuit din rutina de tratare a dispozitivului.44h int 21h endm .. incarca numarul unitatii: 00h _ pentru unitatea implicita.. Daca CF=1 in AX . sau valoarea 0Fh .44h 21h .Sisteme de operare mov int endm ah.pentru discul implicit. IOCTL_RBLOCK macro drive mov bl. La apelul functiei se incarca 08h in AL.drive mov al. indica faptul ca dispozitivul se afla la distanta.09h mov ah. Daca CF=1 in AX se da un cod de eroare care are valoarea: . . Verifica daca dispozitivul logic se afla intr-o retea . La retur daca CF=0 in DX se dau urmatoarele informatii: . iar daca dispozitivul este local in DX se da cuvantul de . bitul 12 pus pe valoarea 1 si restul bitilor pusi . APELAREA FUNCTIEI 4409H . BL se va incarca una din valorile: . . . (local) sau este redirectat unui server (la distanta). IOCTL_CHANGE macro drive mov bl. La apelul functiei se incarca valoarea 09h in AL. se da un cod de eroare care poate lua valorile: .pentru B. dispozitiv invalid.pentru unitatea A. 00h . 01h _ pentru unitatea A. La retur daca CF=0 in AX se ontine: 00h _ pentru un . 01h _ pentru functie invalida sau 02h _ pentru . 02h . pe 0. 02h _ pentru B. . . ori 01h _ pentru .pentru . unitate invalida. . 01h . Verifica daca o unitate contine un dispozitiv care poate fi .

specificat in BX. dispozitivului asociat. . . Modificarea numarului de intoarceri. inainte de a semnala "Device Busy". .0Ah mov ah. APELAREA FUNCTIEI 440BH .44h int 21h endm .0Bh mov ah. valoarea implicita fiind 3. APELAREA FUNCTIEI 440AH . bitul 15 pus pe valoarea 1 si restul bitilor pusi . in sensul ca se . IOCTL_RETRY macro retries.Sisteme de operare . . Acest contor arata de cate ori driver-ul dispozitivului periferic va astepta semnalul "ready". operatia cu discul care a esuat datorita unei violari a .wait mov al. La apelul functiei pe langa incarcarea valorii 0Ch in AL.44h int 21h endm . Verifica daca identificatorul logic. IOCTL_RHANDLE macro handle mov bx. La retur daca CF=0 in DX se dau urmatoarele informatii: . La apelarea functiei in CX se va incarca timpul de . La retur daca CF=1 in AX se pune valoarea 01h care . . 01h . partajarii fisierelor. sau valoarea .pentru functie invalida. iar daca identificatorul logic este local in DX .retries mov cx. 06h . asociat unui dispozitiv local (retea locala) sau unui . . asteptere maxim dorit de utilizator.pentru identificator logic invalid. pentru o imprimanta care permite "Print til busy". incarca valoarea 0Bh. server aflat la distanta. este .wait mov dx. semnifica functie invalida. specifica in DX de cate ori DOS va trebui sa reincerce . APELAREA FUNCTIEI 440CH Cerere generica IOCTL pentru identificator logic. . . distanta. pe 0. se incarca 87 . . indica faptul ca identificatorul logic se afla la . iar in AL se va . Daca CF=1 in AX se da un cod de eroare care are valoarea: . . . se da cuvantul de atribuit din handler-ul . realizata prin pozitionarea sau returnarea contorului de iteratii la iesire.handle mov al.

Function. 1=A. iar in . DS:DX se incarca un pointer la zona tampon de date care . La retur daca CF=1 in AX se da codul de eroare 01h care . de categorie care are valoarea 08h (pentru disc).0Ch int 21h endm .Drive_Num mov ah. valoarea 45h iar pentru returnare valoarea 65h. Obtinerea dispozitivului logic la anumite dispozitive bloc . (disc). . La apelul functiei se incarca AL cu valoarea .Sisteme de operare . 40h .offset Buffer mov bx. GENERIC_IOCTL_BLOCK macro Drive_Num. in CH se incarca codul major . APELAREA FUNCTIEI 440EH .Function. (disc) care admit mai mult decat o litera de driver 88 . se incarca codul de categorie pentru imprimanta avand .handle mov ah. 61h _ pentru citirea unei piste de pe dispozitivul logic. Cerere generica IOCTL pentru dispozitive periferice bloc . logic. 0Dh. . . .08H mov cl. iar in CL .. . identificatorul logic al dispozitivului periferic in BX. se incarca codul minor corespunzator unei anumite .. 62h _ pentru verificarea unei piste de pe dispozitivul . 2=B. APELAREA FUNCTIEI 440DH . .Parm_Blk mov ch.Function mov dx.Buffer mov ch.0Dh int 21h endm .44h mov al.05H mov cl. valoarea 05h in CH. GENERIC_IOCTL_HANDLES macro handle. (0=implicit. subfunctii: .offset Parm_Blk _ 1 mov bx.44h mov al. in CL se incarca pentru pozitionare . periferic.). in BL se incarca numarul dispozitivului periferic .. va contine noua valoare a contorului.pentru pozitionarea parametrilor dispozitivului .Function mov dx. 60h _ pentru returnarea parametrilor dispozitivului. semnifica functie invalida. 41h _ pentru scrierea unei piste pe dispozitivul logic. 42h _ pentru formatarea unei piste pe dispozitivul logic si .

iar BX se incarca cu numarul driver_ului care poate lua .). . 1=A. La retur daca CF=1 in AX se da un cod de eroare care . de eroare care poate avea valorile: .. Selectarea dispozitivului logic. valorile: 00h _ pentru driver_ul implicit.0Fh int 21h endm . pentru a referi acelasi dispozitiv periferic. APELAREA FUNCTIEI 45H . La apelul functiei se . invalida sau 05h _ pentru driver invalid. si in BX se incarca numarul . poate lua valorile: 01h _ pentru cod functie .handle 89 . dispozitiv periferic care poate fi specificat prin mai mult . iar daca CF=1 in AL se da un cod ..44h mov al. .. prin schimbarea literei de . Daca CF=1 in . 02 _ pentru B. . 01 _ pentru A. XDUP macro handle mov bx. incarca in AL valoarea 0Eh. se poate utiliza atat A: cat si B:. APELAREA FUNCTIEI 440FH .pentru identificator logic . . driver cel mai recent utilizata pentru a referi un . La retur daca CF=0 se ataseaza dispozitivlui bloc cea . . care este precizat in BX. Asa de .Logical_drv mov ah. de fisier nedeschis ori invalid..0Eh int 21h endm . exemplu pe sistemele care au numai o unitate flexibila. invalid.Logical_drv mov ah. mai "inalta" litera: 1=A. La apelare AL se incarca cu 0Fh. La retur daca CF=0 in AX se da noul identificator logic . driver_ului (0=implicit. IOCTL_SET_DRIVE_MAP macro Logical_drv mov bx. 04h . .pentru cod functie invalid sau 05h _ pentru driver .. 2=B.44h mov al. 06h . IOCTL_GET_DRIVE_MAP macro Logical_drv mov bx. de o litera de driver. al unui fisier.Sisteme de operare . AX se da un cod de eroare care poate lua valoarea: .pentru prea multe fisiere deschise sau . Duplicarea identificatorului logic al unui fisier (DUP) . . 2=B etc. 01h .

. prin specificarea numarului de paragrafe. sir terminat cu 0.46h int 21h endm . 04h _ pentru prea multe fisiere deschise si . numar precizat in registrul BX.Sisteme de operare mov int endm ah. . sa refaca acelasi fisier ca si un al doilea identificator . La retur daca CF=1 in AX se da un cod de eroare care are urmatoarele valori: 07h .45h 21h .handle1 mov cx. directorului curent. GET_DIR macro drive. in care se . Redirectarea unui identificator logic de fisier (FORCDUP) .drive mov si. AX se afla un cod de eroare care poate avea valorile: . ambele identificatoare logice . prin incarcarea in DL a . Obtinerea directorului curent. APELAREA FUNCTIEI 46H . APELAREA FUNCTIEI 47H . .buffer mov dl. .pentru deteriorarea blocului de control al memoriei de catre un utilizator care a modificat memoria care nu_i apartine si 90 .47h int 21h endm . de cate 16 octeti fiecare paragraf.handle2 mov ah. semnifica un numar de dispozitiv periferic invalid. specificat in registrul BX. APELAREA FUNCTIEI 48H Alocarea dinamica a memoriei pentru procesul curent. numarului dispozitivului periferic si precizarea in DS:SI . . . ori invalid.offset buffer mov ah. La retur daca CF=1 in AX se da codul de eroare 0Fh care . . a adresei unei zone de memorie de 64 octeti. . prin fortarea identificatorului precizat in registrul CX . . XDUP2 macro handle1. trebuie sa existe si sa fie deschise. va returna un sir ASCII cu calea integrala a .handle2 mov bx. La retur daca CF=1 in . 06h _ pentru identificator logic de fisier nedeschis .

pentru indicarea deteriorarii blocului de control . adresa segment a zonei de memorie. fiind dedusa de sistem din blocul de control din fata .48h int 21h endm . noii dimensiuni. ALLOCATE_MEMORY macro bytes mov bx. Elibereaza memoria alocata anterior prin functia 48h. exprimata in paragrafe de 16 . apartinea zona de memorie.seg_addr mov es.pentru memorie insuficienta. iar in AX un cod de eroare . 08h . poate avea valorile: . 09h . FREE_MEMORY macro seg_addr mov ax. La retur daca CF=1 in AX se da un cod de eroare care . iar in ES se precizeaza . blocul de memorie .ax mov ah. 09h _ pentru adresa in ES eronata. . La retur daca CF=1 in BX se precizeaza numarul maxim de . prin precizarea .Sisteme de operare .offset last_byte 91 . octeti fiecare. Modificarea alocarii memoriei (SET BLOCK).cl inc bx mov ah. zonei de memorie. .bytes mov cl. APELAREA FUNCTIEI 49H .4 shr bx. neputand fi modificat. 07h . lungimea .pentru adresa segment incorecta. . 08h _ pentru memorie insuficienta si . utilizator a memoriei care nu-i apartine. memoriei de un program utilizator caruia nu-i . SET_BLOCK macro last_byte mov bx. 07h .pentru deteriorarea blocului de control al . adica memoria pointata de ES nu a fost alocata cu functia 48h.49h int 21h endm . APELAREA FUNCTIEI 4AH . al memoriei prin modificarea de catre un . incarca adresa segment a memoriei de eliberat. . In ES se va . care poate avea una din valorile: . facand_o disponibila sistemului de operare. precizata in BX. paragrafe disponibile. .

mediu eronat (peste 32 KO). .Sisteme de operare mov shr add mov int mov shl mov mov endm cl. 00h 2 . sir a carui . terminat cu 0. se va plasa la noul PSP+5Ch. 0Bh . . 0Ah . 01h .format eronat. de-al doilea FCB implicit. 05h . se va plasa la . se va plasa . In AL se incarca valoarea 00h. se va plasa la noul PSP+2Ch. La retur daca CF=1 in AX se afla un cod de eroare care . poate avea valorile: .offset command mov word ptr parms[04h].acces interzis. 08h . informatii inconsistente.offset path mov bx.nu s-a gasit fisierul. . .cl sp. . 06h 4 .adresa de segment si deplasamentul primului .command. Incarcarea si executia unui program (EXEC) al carui nume . . 04h . . 03h . 02h .ax bp.cs mov word ptr parms[06h].adresa segment a sirului de mediu (max 34 . 02h 4 .5ch mov word ptr parms[08h].cl bx. .EXE cu .4Ah 21h ax.adresa de segment si deplasament a liniei de . EXEC macro path. sau .4 bx.offset parms mov word ptr parms[02h]. 0Ah 4 . adresa se afla in DS:DX.bx ax.prea multe fisiere deschise. APELAREA FUNCTIEI 4B00H .memorie insuficienta.adresa de segment si deplasamentul celui . este dat printr_un sir ASCII.nu s-a gasit calea.es 92 .parms mov dx. . noul PSP+6Ch. adresa lungime .sp . Incarcarea si executia se face sub controlul unui bloc . octeti).17 ah. comanda (max 128 octeti).pentru functie invalida in AL. de parametri care are adresa data in ES:BX si are formatul: . . FCB implicit. exista un fisier . la noul PSP+80h. .

Terminarea procesului (EXIT) si predarea controlului la . APELAREA FUNCTIEI 4B03H .memorie insuficienta.es al. END_PROCESS macro return_code 93 . Incarcarea si executia se face sub controlul unui bloc .pentru functie invalida in AL. . .mediu eronat (peste 32 KO).4Bh int 21h endm . 0Bh . PSP_ul parinte. EXEC_OVL macro path.seg_addr mov parms[02H]. . 00h 2 .3 mov ah.0 ah. APELAREA FUNCTIEI 4CH .nu s-a gasit fisierul.parms. de parametri care are adresa data in ES:BX si are formatul: . 03h .seg_addr mov dx.EXE.EXE cu . 02h . in AX se afla un cod de eroare care . La retur daca CF=1. Incarcarea fara executie a unui program al carui nume . pozitionand un cod de retur. programul .acces interzis. inchide .adresa segment la care va fi incarcat . adresa se afla in DS:DX. 0Ah .format eronat.nu s-a gasit calea. este dat printr_un sir ASCII. Eroare critica (i nt 24H) sunt reincarcati la adresa din . Adresa Lungime . terminat cu 0. . sir a carui .offset parms mov parms. 02h 2 . . procesorul parinte.offset path mov bx. In AL se incarca valoarea 03h. . doar fisierele . Functia nu returneaza nimic. 04h _ prea multe fisiere deschise. exista un fisier . . . . 08h . toate fisierele iar vectorii CTRL+BREAK (Int 23h) si . informatii inconsistente. 01h .4Bh 21h .seg_addr mov al.Sisteme de operare mov mov mov mov int endm word ptr parms[0ah]. . poate avea valorile: .factorul de relocare al programului.6ch word ptr parms[0ch]. 05h .

02h . 01h . 00h . . .pentru terminare cu CTRL+C sau CTRL+BREAK. .pentru fisier de tip arhiva. . erori critice la dispozitivul periferic.pentru fisier de tip obisnuit.attrib mov dx. . fisierului: .daca nu mai exista fisiere.pentru terminarea de catre DOS datorata unei . 00h .4Eh int 21h endm 94 .pentru cale negasita si . 02h . 12h . Obtinerea codului de retur al procesului fiu (WAIT). cod de . infotmatiile astfel: . APELAREA FUNCTIEI 4DH . Functia returneaza in AX . APELAREA FUNCTIEI 4EH .pentru fisier de sistem si .4Dh int 21h endm .in AL codul returnat de catre insusi procesul terminat. 04h . 20h . functiile 4Ch sau 31H. care poate avea valorile: . 03h .attrib mov ah. . . si . are valoarea: . forma unui sir. sub . precizate in CX. . 02h . Gasirea primului fisier potrivit cu fisierul specificat .pentru terminarea prin functia 31h. 01h .pentru terminare normala. 03h . .return_code ah. WAIT macro mov ah.4Ch 21h . . daca CF=1 se da un cod de eroare in AX care .pentru fisier de tip "read only". procesului. FIND_FIRST_FILE macro path. terminat cu 0.Sisteme de operare mov mov int endm al.pentru fisier negasit. La retur.in AH un cod care specifica modul de terminare al . In registrul CX se precizeaza atributele . retur pozitionat la iesirea din proces prin una din . intr-o zona de memorie data de DS:DX (FIND FIRST).offset path mov cx. a carui atribute sunt .pentru fisier ascuns.

pentru VERIFY OFF si . . indicand faptul ca nu mai . GET_VERIFY macro mov ah. Redenumeste un fisier . 02h _ pentru fisier negasit.4Fh int 21h endm . iar daca CF=1 se da un cod de eroare in AX . care are valoarea 12h. Schimbarea intrarii intr-un director. La retur in caz de eroare se . specificat printr-un sir ASCII terminat cu car. Verificarea starii indicatorului VERIFY in operatiile de . .pentru VERIFY ON. existent. retur daca CF=0 informatia este depusa in zona DTA curenta. exista fisiere. APELAREA FUNCTIEI 54H . caracterele "*" sau "?". registrul AL valorile: . Nu se admit in siruri si . 03h _ pentru cale negasita.offset old_path push ds pop es mov di.56h int 21h endm 95 . 05h _ pentru acces interzis sau . . adresa se afla in ES:DI.new_path mov dx. 00h . intr_un apel precedent al functiei 4Eh (FIND NEXT). eroare care are urmatoarele valori: . RENAME_FILE macro old_path. pozitioneaza indicatorul CF=1 iar in AX se pune un cod de . APELAREA FUNCTIEI 4FH . 01h . 11h _ pentru dispozitiv periferic diferit de cel . alt director specificat printr_un al doilea sir. APELAREA FUNCTIEI 56H . FIND_NEXT_FILE macro mov ah. specificat. a carui . . 0 a carui adresa se afla in DS:DX si/sau il muta intr-un .Sisteme de operare . scriere in fisierele aflate pe disc. La . Gasirea urmatorului fisier potrivit cu fisierul specificat . Functia returneaza in .offset new_path mov ah.54h int 21h endm .

..1980)*512 + Luna*32 + Zi . Reprezentati pe biti: . O O O O O M M M M M M S S S S S .date mov bx. CX = Ora*2048 + Minut*32 + Secunda . .. unui fisier descris printr-un identificator logic dat .57h int 21h endm . unde: OOOOO=Ora (0.pentru identificator logic invalid sau nedeschis. . atunci trebuie incarcat registrul CX cu ora de . GET_SET_DATE_TIME macro handle. SSSSS=Secunda (0. pozitionat.. atunci BX se incarca cu tipul strategiei.. pozitionat si registrul DX trebuie incarcat cu data de . Obtinerea/Pozitionarea datei si orei ultimei modificari a . Daca AL=00h atunci functia returneaza in CX . LLLL=Luna (0. ZZZZZ=Zi (0.action.handle mov al. DX: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 . . Daca AL=01h . 01h .. . 06h . CX: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 . .pentru functie invalida sau valoarea . La retur daca CF=1 functia returneaza si . . .Sisteme de operare . . . Daca AL este incarcat cu 01h. . In registrul AL se poate incarca valoarea . DX = (An .time.59).12). 00h pentru obtinerea datei si orei sau valoarea 01h .31).. pentru setarea (pozitionarea) datei si orei..word ptr time mov dx... APELAREA FUNCTIEI 57H . in registrul BX. APELAREA FUNCTIEI 58H Obtinerea sau selectarea strategiei de alocare a memoriei interne.pentru strategia First Fit (alocarea primului bloc disponibil cu adresa cea mai mica). MMMMMM=Minutul (0. 96 .word ptr date mov ah.30). . care poate fi: 00h . AAAAAAA=Anul dupa 1980 (0. un cod de eroare in AX care poate avea valoarea: .23). A A A A A A A L L L L Z Z Z Z Z . . La intrare AL se poate incarca cu una din valorile: 00h _ pentru obtinerea strategiei de alocare sau 01h _ pentru selectarea strategiei de alocare...action mov cx. ora si in DX data. .199). . Data si ora se calculeaza in felul urmator: .

de cea mai inalta adresa). BH . . .data invalida 0Fh . . 00h . . APELAREA FUNCTIEI 59H Obtinerea informatiilor suplimentare despre o eroare. .pentru Best Fit si .cod de acces invalid 0Dh .pentru Last Fit.pentru First Fit. . la apel mai fiind necesar sa se incarce 00h in BX.blocurile de control ale memoriei sunt distruse 08h . . ALLOC_STRAT macro code.acces interzis 06h .unitate necunoscuta 97 .58h int 21h endm . . .cale negasita 04h . 01h . .incercare de stergere a directorului curent 11h . Codul extins al erorii dat in AX are valorile: 01h .nu mai exista fisiere 13h . .pentru codul extins al erorii.Sisteme de operare . . 01h . care a aparut la apelul anterior al unei functii. . . . In patru registre se returneaza codurile de eroare si sursa lor: AX . . .pentru Best Fit (alocarea celui mai mic bloc .pentru Last Fit (alocarea blocului disponibil . .disc protejat la scriere 14h . 02h .strategy mov al. La retur daca CF=1. . specifica o functie invalida. .prea multe fisiere deschise 05h . .format invalid 0Ch . care satisface cererea). .memorie insuficienta 09h . .pentru sursa erorii.mediu invalid 0Bh . . .dispozitive periferice diferite 12h .fisier negasit 03h .driver de disc invalid 10h .code mov ah. iar daca CF=0 in AL se : returneaza tipul strategiei de alocare utilizata: . .identificator logic de fisier invalid 07h . . BL .adresa de bloc de memorie invalida 0Ah .pentru actiune sugerata utilizatorului si CH . . . . .strategy mov bx. 02h . in AX se afla valoarea 01h care .numar functie invalid 02h .pentru clasa erorii.

1Dh .eroare generala . 07h .problema cu tipul de disc . dupa o pauza .eroare in scriere . 0Dh . 04h . 18h . de permisiune . 17h .eroare de sistem care nu se datoreaza .eroare a programului aplicativ . 16h . 05h . 0Bh .eroare interna a sistemului de operare .tip unitate necunoscut . 53h _ eroare critica. 1Ch . programului curent . 1Bh . 22h .driver nepregatit . 23h . 09h . 15h . 02h . 02h . 06h . In registrul BL se sugereaza urmatoarele actiuni: . 1Eh .eroare la citire . urmeaza a se termina .fisier sau orice alt obiect interblocat .legata de dispozitivul periferic 98 .se cere o manevra din partea utilizatorului. . 06h .reluare. eroare de sistem . 20h .eroare de cautare . 50h .FCB indisponibil . 0Ah .eroare hard .este doar o problema temporara care .schimbare de disc invalida .fisier sau orice alt obiect negasit . 01h . 08h .lipsa de resurse .sector negasit .eroare de data (CRC) .fisier sau orice alt obiect in format invalid .eroare informationala. 19h . apoi se reia. se ignora .necunoscuta . In registrul CH se indica urmatoarele surse ale erorii: . 01h .cerere pentru utilizator de reintroducere data .nu se poate crea directorul . 04h .contradictie cu un obiect existent . .terminare cu curatire .fisier deja existent .cerere gresita pentru lungimea structurii . 21h . 05h .lipsa hartiei la imprimanta . 07h .alta eroare.Sisteme de operare . 1Fh . .reluare . 52h . 03h . .comanda necunoscuta .problema de autorizare. In registrul BH se dau urmatoarele clase de eroare: .terminare imediata. 02h . 1Ah .violarea partajarii fisierelor . 01h . 0Ch .violarea unui blocaj . 03h .

.attrib mov dx. codul de eroare: .5Ah int 21h endm . .Sisteme de operare . . 04h . . APELAREA FUNCTIEI 5AH . La retur. 02h .attrib mov cx. SI. CREATE_TEMP macro pathname. Functia distruge continutul registrilor: . adresa se da in DS:DX.legata de memoria interna RAM. iar daca CF=1 in AX see da .pentru acces interzis. . specificat printr_un sir de caractere ASCII. sir a carui adresa se precizeaza in DS:DX. . terminat prin .legata de retea . . . 05h . 01h . La retur. .pentru fisier de tip "read only". 04h .pentru fisier de tip arhiva. daca CF=0 functia returneaza in AX 99 .pentru fisier ascuns.pentru fisier de sistem si . daca CF=0 functia returneaza in AX identifi. 04h . . al carui nume este . 20h .pentru cale negasita. sir a carui . Crearea unui fisier temporar unic. 03h . APELAREA FUNCTIEI 5BH Creaza un nou fisier al carui nume si cale de acces se da printr-un sir de caractere ASCII. 01h . . 04h . . GET_ERROR macro mov ah. 03h . DI. atributele fisierului care urmeaza a fi creat: . In registrul CX se precizeaza atributele fisierului care urmeaza a fi creat: 00h .pentru fisier de tip obisnuit. DS si ES.pentru prea multe fisiere deschise sau .pentru fisier de tip arhiva. 00h .pentru fisier de sistem si 20h .pentru fisier de tip "read only". . .pentru fisier de tip obisnuit.legata de un dispozitiv periferic serial .59h int 21h endm . catorul logic al fisierului. 05h .pentru fisier ascuns.offset pathname mov ah. 02h . CL. caracterul \ si urmat de 13 octeti rezervati. In registrul CX se precizeaza . . DX. . .

CX:DX va contine deplasamentul regiunii in fisier care va fi 100 . 04h . 01h .5Bh int 21h endm .pentru fisier deja existent. fisier nedeschis. Explicitarea erorii se deduce din valorile numerice . . . 05h .pentru zona tampon cu intrari de blocaj depasita.pentru bolcaj violat adica regiune deja .pentru acces interzis sau .pentru cod functie invalid. . La apelarea functiei registrul BX se va incarca cu identificatorul logic al fisierului. . LOCK macro handle. . CX:DX va . care este utilizat intr-un mediu multitasking sau retea . . APELAREA FUNCTIEI 5C00H .word ptr bytes mov di. CREATE_NEW macro pathname. iar daca . continute de registrul AL: . .word ptr bytes+2 mov al. care este utilizat intr_un mediu multitasking sau retea de calculatoare. .pentru cale negasita. de calculatoare.attrib mov cx. 03h .attrib mov dx. La apelarea functiei registrul BX se va .handle mov cx.offset pathname mov ah.pentru identificator logic invalid sau . 50h . CF=1 in AX se da codul de eroare: .5Ch int 21h endm . .pentru prea multe fisiere deschise.word ptr start mov dx.Sisteme de operare .word ptr start+2 mov si. iar SI:DI va fi incarcat cu lungimea acestei regiuni.0 mov ah. Blocheaza accesul la o regiune specificata a unui fisier. 21h . identificatorul logic al fisierului. incarca cu identificatorul logic al fisierului. si . . 24h . blocata. . 06h .start. Dupa executia functiei CF = 1 in caz de eroare. APELAREA FUNCTIEI 5C01H Deblocheaza accesul la o regiune specificata a unui fisier. contine deplasamentul regiunii in fisier care va fi blocata .bytes mov bx. .

handle mov cx. 24h . pe care-l depune intr-o zona . deblocata iar SI:DI va fi incarcat cu lungimea acestei .word ptr bytes mov di. Functia . continute de registrul AL: .word ptr start mov dx. CH = 00h _ daca numele nu a fost definit. nedeschis. 21h . APELAREA FUNCTIEI 5E02H .5Ch int 21h endm .0 mov ah. forma unui sir ASCII. indicand faptul ca . UNLOCK macro handle. va fi pus la inceputul fiecarui fisier destinat unei . Explicitarea erorii se deduce din valorile numerice .word ptr bytes+2 mov al. tampon de 16 octeti aflata la adresa DS:DX. GET_MACHINE_NAME macro buffer mov dx. regiuni.start. . returneaza: . 06h . si . poate contine valoarea 01h. deblocata.pentru cod functie invalid. .word ptr start+2 mov si. Asigura pozitionarea antetului imprimantei de retea care .offset buffer mov al. .Sisteme de operare .1 mov ah. La intrarea in functie BX este 101 . CL = va da numarul numelui NETBIOS.pentru debolcaj violat adica regiune deja . AX = are semnificatie numai daca CF = 1 (eroare) si el . APELAREA FUNCTIEI 5E00H . nu a fost incarcat programul de retea. imprimante aflate in retea. Obtinerea numelui masinii (numele calculatorului local) sub .bytes mov bx.pentru zona tampon cu intrari de deblocaj . Dupa executia functiei CF = 1 in caz de eroare. depasita. .pentru identificator logic invalid sau fisier .5Eh int 21h endm . daca CH nu este 0 . 01h .

2 mov ah.local. APELAREA FUNCTIEI 5F02H Obtinerea informatiilor despre lista de intrare in lista de redirectari care a fost creata cu functia 5F03h. la o zona tampon care contine in ASCII antetul propriu-zis . dispozitivului: . APELAREA FUNCTIEI 5F03H . urmatoarele specificatii: .lgth. . Functia returneaza indicatorul CF=1 pentru . . si numele de . BX . . precizeaza (la intrare in functie) in DS:SI. care semnifica .offset string mov al. . .offset remote mov al.2 mov ah. de eroare CF=1 si in AX codul de eroare 01h.pentru dispozitiv invalid. .offset local mov di.imprimanta.va contine un flag (fanion) de stare al .5Eh int 21h endm . Functia returneaza in caz . Functia altereaza registrii DX si BP. bitul 0 = 0 . 03h . Redirectarea unei imprimante sau a unui driver de disc 102 . Aceste informatii vor fi plasate in zona tampon rezervata de utilizator pentru numele local al carui pointer se .va da tipul dispozitivului: .index mov si.string mov bx. GET_LIST macro I ndex. incarcat cu indexul listei de redirectare. retea al dispozitivului precizat (tot la intrare) in . 64 de octeti iar DS:SI este incarcat cu un pointer . .pentru dispozitiv valid. ES:DI. bitul 0 = 1 . incarcat cu lungimea sirului de antet care este de maximum . BL . iar in acest caz se dau .lgth mov dx. terminarea cu incident a operatiei. 04h . . faptul ca programul de retea nu a fost incarcat. PRINTER_SETUP macro index. CX este .index mov cx. sub forma unui sir.5Fh int 21h endm .Sisteme de operare .remote mov bx.driver de disc.

3 mov ah.offset local mov di. APELAREA FUNCTIEI 62H . daca este vorba . reprezentat . 08h . retea sau valoarea din BL este eronata.pentru semnalarea unui acces interzis. DS:SI trebuie sa contina .5Fh int 21h endm . CANCEL_REDIR macro local mov si. printr-un sir ASCII.remote. 01h . . La intrare in . .pentru indicarea unui director de retea invalid.offset remote mov al.device. daca este vorba . Anularea unei redirectera care a fost realizata cu functia 5F03h. dispozitivul periferic specificat. tot printr-un sir ASCII. . de un driver de disc. Obtinerea adresei de segment pentru PSP-ul procesului . pe care-l vom numi dispozitivul destinatie.5Fh int 21h endm . realizandu_se semnificatia fizica initiala.62h int 21h endm 103 .value mov si. codul de eroare care se gaseste in registrul AX si care . curent. . in registrul BX. 03h . pointer la numele dispozitivului destinatie.value mov bl. BL se incarca valoarea numerica 3. 05h . Daca CF=1. pentru . poate lua nalorile numerice: .offset local mov al. un pointer la numele dispozitivului sursa. GET_PSP macro mov ah.device mov cx.Sisteme de operare . reprezentat . APELAREA FUNCTIEI 5F04H . de o imprimanta sau valoarea numerica 4. (denumit dispozitivul sursa) spre un director de retea . REDIR macro local. iar ES:DI va fi incarcat cu un .4 mov ah. Functia returneaza indicatorul CF pozitionat.pentru cazul in care nu s-a incarcat programul de . .pentru semnalarea memoriei insuficiente. atunci operatia s-a terminat incorect si trebuie testat .

Sisteme de operare 104 .

MOVE_STRING macro source.0 display_char 0DH display_char 0AH endm .count rep movs es:destination. . . MUTAREA UNUI NUMAR DE CARACTERE DINTR-UN SIR SURSA IN ."$" display asciiz_string mov byte ptr [bx].source assume es:nothing pop es endm . AFISEAZA UN SIR ASCII.*********************** .count push es push ds pop es assume es:code mov si. MACRO_URI GENERALE . TERMINAT PRIN $.*********************** . UNUL DESTINATIE. .found_it mov bx.offset asciiz_string search: cmp byte ptr [bx].start 105 . .base.destination local table. CONVERSIA UNUI NUMAR INTREG INTR-O BAZA PRECIZATA DE . .offset destination mov cx.destination.Sisteme de operare .0 je found_it inc bx jmp short search found_it: mov byte ptr [bx].offset source mov di. CONVERT macro value. UTILIZATOR. DISPLAY_ASCIIZ macro asciiz_string local search.

cs:table[bx] destination.al dx bx ax .value local ten. CONVERSIA IN BINAR A UNUI NUMAR.Sisteme de operare table start: jmp db push push push mov xor xor div mov mov mov mov mov mov pop pop pop endm start "0123456789ABCDEF" ax bx dx al.number.ah bx.bx base bl.ah al.cx cl.al al.value ah.48 cx.no_mult jmp start ten db 10 start: mov xor mov xor calc: xor mov sub cmp jl push dec mul loop ax.si mult: 106 .start.mult.ax al.cs:table[bx] destination[1]. .0 cx.string[si] al.2 no_mult cx cx cs:ten mult value. CONVERT_TO_BINARY macro string.number si.calc.al bl.

PACK_DATE macro date local set_bit .dl rol cl.1 cx. .cl pop cx jnc set_bit or cl.dir_entry[25] cl. CONVERT_DATE mov mov shr mov and xor mov shr add endm macro dir_entry dx. DL=luna.5 dl.1980 push cx mov date. .cl endm 107 .1980 .Sisteme de operare pop no_mult: add inc loop endm cx value. sub cx.5 shl dl.ax si calc .cx cl.1FH cx. In intrare: DH=ziua.80h set_bit: or date.word ptr dir_entry[24] cl.dir_entry[24] dh.cl dh. CONVERSIA UNEI DATE CALENDARISTICE. CX=(anul_1980) .1 mov date[1].dh mov cl.

ISBN 973-681-542-0.u.Utilizare LINUX. .dezarhivează fişiere . .inscripţionează CD-uri (cdrecord -eject speed=4 dev=0.realizează redarea CD-urilor audio .txt). . .reprezintă compilatorul de C . .oferă posibilităţi de calcul (asemănător calculatorului de buzunar).1 . . 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 1 Denumire alias apropos at aumix bash bc bg bunzip2 bzip2 cal cat cc cd cdplay cdrecord change chfn chgrp chkconfig Funcieţie . . . .reprezintă interpretorul de comenzi implicit. 108 . . fără interacţiune directă cu utilizatorul. .este echivalent cu gcc. dar lentă (bzip2 documentaţii.permite configurarea nivelurilor de execuţie în care să Tabel adaptat după Dragoş Acostăchioaie şi Sabin Buraga . .bz2).Editura Polirom Bucureşti.schimbă directorul curent (cd /bin). 0 thewall.afişează paginile de manual referitoare la un termen (apropos chmod). img). .modifică grupul din care face parte un utilizator.ps).l ' ) .realizează managementul activităţilor executate la momente periodice.arhivează fişiere folosind o metodă de compresie foarte bună.bz2 *. b z 2 comprimate cu utilitarul bzip2 (bunzip2 documentaţii.afişează sau defineşte pseudonimele (alias-urile) unor comenzi (alias l l = ' l s .afişează un calendar (cal 06 2009).modifică atributele de securitate ale utilizatorilor. . Noţiuni de bază şi practică . pag.crt.pdf *. . 359 ş.Sisteme de operare MEMENTO Comenzi şi programme utilitare LINUX1 Nr.concatenează conţinutul mai multor fişiere (cat * .trimite un proces pentru a fi executat în fundal. . .modifică informaţii afişate de finger (adică cele privitoare la utilizator).controlează automat sunetul.

modifică interpretorul de comenzi implicit al unui utilizator. .decupează diverse informaţii din fiecare linie a unui fişier.modifică permisiunile de acces la fişiere/directoare (chmod +or script. 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Denumire chmod chown chsh clear cmp cp cut date dd df diff dir du dvipdf dvips dump echo ed eject emacs eog eval Funcieţie ruleze serviciile de sistem. .dvi -o teza.copie un fişier la o altă locaţie sau sub alt nume (cp /bin/ls ~/tmp).afişează spaţiul ocupat de un director (du /tmp). zip )..transformă fişiere .vizualizează conţinutul fişierelor grafice.dvi în fişiere .dvi în fişiere .pdf).demontează şi eliberează un mediu de stocare (e.editează la nivel de linie conţinutul unui fişier.reprezintă un editor de texte configurabil.pdf (Portable Document Format) în vederea vizualizării/tipăririi cu xpdf (dvipdf teza. . se preferă utilizarea comenzii ls.5). cgi ). disponibil în GNOME. .dvi -o teza.ps).dispozitive. .crt. discuri etc.*). .afişează la terminal (ieşirea standard.afişează spaţiul liber rămas (df /dev/hdal).compară (la nivel de linie) conţinutul unor fişiere. .schimbă proprietarul fişierelor şi grupul din care face parte proprie tarul ( chown horea:profs *. .g. . . . .evaluează o expresie în cadrul interpretorului de 109 .oferă duplicarea conţinutului unor fişiere . deosebit de flexibil şi puternic. . CD sau DVD). . . implicit) un şir de caractere (echo " S a l u t a r e ! " ) . . .compară (la nivel de octet) conţinutul unor fişiere. pe coloane sau conform unor delimitatori (cut /etc/passwd -d: -fi. .Sisteme de operare Nr. . . .şterge ecranul (terminalul).ps (PostScript) în vederea vizualizării/tipăririi cu gv (dvips teza.creează copii de siguranţă pentru o scrie de fişiere.afişează data şi timpul curent. .afişează informaţii privitoare la numele fişierelor dintrun director (dir .transformă fişiere .

interacţionând direct cu utilizatorul.găseşte fişiere.Sisteme de operare Nr. . . . 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 Denumire ex expr fc fdisk fg file find finger fortune fsck ftp galeon gcc gdm gfloppy giftrans gimp gnome-cd gnorpm gnozip grecord grep groupadd groupdel groupmod grub Funcieţie comenzi. în vederea transferului de fişiere la distanţă. -reprezintă varianta GNU a compilatorului de C (gcc program.uab.compară fişiere. . . . .reprezintă managerul de ferestre oferit de GNOME.partiţionează discul şi modifică informaţii privitoare la partiţiile existente. . oferind multe facilităţi de prelucrare şi filtrare. c -o executabil).determină tipul unor fişiere (file ~/Documents/*).ro). conform unor criterii sofisticate (find / -name „k*” –print).şterge un grup de utilizatori (groupdel mate).reprezintă un utilitar grafic pentru managementul arhivelor. .editează la nivel de linie conţinutul unui fişier.trimite un proces pentru a fi executat în prim-plan. .caută în cadrul fişierelor (la nivel de linie) diverse şiruri de caractere (grep "config" *. . .desemnează un utilitar pentru managementul grafic al pachetelor . .evaluează o expresie (echo ‘expr 10 * 3’). .adaugă un grup de utilizatori (groupadd catedra).permite încărcarea unui sistem de operare dintr-o listă de 110 .realizează redarea CD-urilor audio în GNOME.realizează o conexiune cu un server FTP.reprezintă un program de realizat grafică raster (bitmap).reprezintă un utilitar grafic oferit de GNOME pentru formatarea dischetelor.conf).modifică diverşi parametri asociaţi unui grup de utilizatori (groupmod catedra). . . .furnizează informaţii despre utilizatori.reprezintă un program de înregistrat conţinut audio. .afişează aleatoriu o maximă. . .controlează transparenţa imaginilor stocate în format GIF. . un aforism sau un citat celebru. .rpm. . .este un navigator Web furnizat de GNOME. . eventual pe alte maşini (finger bunu@remy.crt.verifică sistemele de fişiere ale dispozitivelor (fsck /dev/hda5).

. .afişează informaţii privitoare la adresa maşinii curente.Sisteme de operare Nr. formatat corespunzător.realizează managementul istoricului comenzilor introduse.este un program de inscripţionare de CD-uri.oferă informaţii privitoare la mediile de stocare respectând standardul ISO 9660 (CD-uri şi DVD-uri).tar . . în formă de hipertext (info mtools).oferă informaţii privitoare la diverse comenzi şi utilitare.afişează procesele lansate în fundal. codul sursă al programelor C sau C++.crt.configurează interfeţele (echipamentele) de reţea. .reprezintă un utilitar de configurare oferit de KDE. ro).afişează. .gz (gzip copie. .reprezintă un editor de texte oferit de mediul KDE. .reprezintă un editor de texte oferind diverse facilităţi. 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 Denumire gtkam Funcieţie sisteme instalate. . .afişează informaţii privitoare la adresa (simbolică ori IP) a unei gazde (host www . disponibil în KDE. . creând în locul lui o arhivă .tar). . . . . .reprezintă un program de calcul tabelar. -arhivează un fişier.ps (PostScript).afişează primele linii ale conţinutului unui fişier (head -3 /etc/ group).configurează firewall-ul. .preia fotografii realizate cu camera digitală. parte a suitei de birou KOffice. bazat pe combinaţii de taste WordStar/TurboPascal.realizează vizualizarea/tipărirea de fişiere .uab. .oferă posibilităţi de detectare/corecţie a erorilor de gramatică. . utilizat în regim grafic.gz compresat cu gzip (gunzip copie .reprezintă un editor de texte oferind diverse facilităţi (joe cu combinaţiile de taste ale editorului de texte pico). . .afişează informaţii de ajutor privitoare la interpretorul de comenzi (help exit). .opreşte sistemul de operare.oferă informaţii privitoare la identitatea unui utilizator.gz). .dezarhivează un fişier . . gunzip gv gzip halt head help history host hostname id ifconfig indent info iptables isoinfo ispell jobs joe jpico k3b kate kcalc kde-config 111 .

reprezintă navigatorul Web şi managerul de fişiere oferit de KDE.este un program KDE care realizează managementul pachetelor RPM. . . . parte a suitei KOffice.reprezintă un utilitar KDE pentru managementul utilizatorilor.reprezintă un utilitar KDE pentru controlul sunetului. . .realizează redarea CD-urilor audio în KDE.este un utilitar grafic similar cu df şi du.reprezintă sistemul de asistenţă oferit de KDE.desemnează managerul de ferestre KDE (The KDesktop Environment).reprezintă un utilitar KDE pentru managemenul notiţelor. oferit de KDE.reprezintă un program KDE pentru managementul poştei electronice.Sisteme de operare Nr. un mediu grafic oferind multe facilităţi. .reprezintă consola KDE (lansează diverse interpretoare de comenzi). . . . .reprezintă un program simplu de grafică raster. parte a sistemului KDE. . . 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 Denumire kde kdf kedit kfloppy kformula khelpcenter kill killall klipper kmail kmix knotes konqueror konsole kpackage kpaint kpersonalizer kppp kscd ksnapshot kuickshow kuser Funcieţie . . .reprezintă un utilitar de editare de formule matematice.trimite un semnal (implicit de terminare) proceselor existente în sistem (kill -9 -1).reprezintă clipboard-ul KDE. . oferit de KDE.reprezintă un utilitar de personalizare a interfeţei KDE. disponibil în KDE.reprezintă un utilitar grafic oferit de KDE pentru formatarea dischetelor. . 112 .crt. .este un program de capturare a ecranului (desktopului).desemnează un editor de texte simplu. . .configurează legătura cu un furnizor de servicii Internet (client PPP). .trimite un semnal (implicit de terminare) tuturor proceselor deţinute de un utilizator (killall mc). .vizualizează conţinutul fişierelor grafice.

.reprezintă un procesor de texte avansat.listează coada de sarcini de tipărire. 113 . oferit de suita de birou KOffîce. .afişează în diverse formate lista fişierelor dintr-un director ( ls –alf ~/mail ).ps ).permite încărcarea unui sistem de operare dintr-o listă de sisteme instalate.ro ). -realizează deconectarea unui utilizator (părăsirea sesiunii de lucru).reprezintă o interfaţă pentru administrarea siste-mului de tipărire.ro -sSalutari ).realizează legături (scurtături) între două fişiere ( ln -s /trap /usr /trap). conform unor reguli care satisfac diverse dependenţe.trimite un fişier pentru tipărire. disponibil în mod text sau grafic. 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 Denumire kview kword kwrite last latex less lilo links linuxconf ln logout lpc lpq lpr lprm ls lynx mail make Funcieţie . . . . . . parte a sistemului KDE.reprezintă un utilitar pentru managementul poştei electronice în regim linie de comandă ( mail jhorea@uab. -şterge o sarcină din coada de sarcini de tipărire ( lprm -Plaser 210 ). . . .reprezintă un editor de texte.oferă lista ultimelor conectări ale utilizatorilor în sistem (last bunu).reprezintă un navigator Web rapid.reprezintă un utilitar pentru execuţia de programe.reprezintă un navigator Web rapid.dvi (latex articol. disponibil în mod text (lynx http://www. adaugându-1 la coada de sarcini (lpr curs. .crt.afişează paginat conţinutul unui fişier. . cu suport pentru CSS şi JavaScript (îmbunătăţire a programului lynx). . cu posibilitatea derulării acestui conţinut. bazat pe marcatori şi folosit la generarea de fişiere indepen-dente de dispozitiv . .reprezintă un utilitar complex utilizat la configurarea unui sistem Linux.Sisteme de operare Nr.tex ).reprezintă un utilitar KDE de previzualizare a conţinutului fişierelor.reprezintă un procesor sofisticat de texte.uab. . .

ps /tmp/de_copiat ). . memorie USB etc. mformat etc.transformă fişiere folosite de man în format hipertext. mren.html .reprezintă un utilitar de administrare a serverului MySQL. med a:/copie.mp3 ).desemnează un set de utilitare pentru realizarea de operaţii uzuale cu dischete formatate DOS: mdir.oferă un comutator pentru inhibarea trimiterii cu write de mesaje către un anumit terminal ( mesg n). . . . mformat a : ).afişează paginat conţinutul unui fişier. . . .pdf a : . CD/DVD.creează un fişier special FIFO (conductă -pipe). . mcopy.creează un director ( mkdir copia ). (mount -tvf at /dev/hda1 /mntwin_c ). .reprezintă un editor de texte simplu. .creează un sistem de fişiere ISO 9660 . ( man last). med. componentă (opţională) a navigatorului Mozilla. parte compo-nentă a Midnight Commander. în vederea realizării unui dialog prin comenzi SQL (mysql -u busaco -p ). 143 144 145 146 mozillacomposer mozilla mpg123 mtools 147 148 149 mv mysql mysqladmin 114 . rulând în medii grafice. formate de fişiere etc.reprezintă un utilitar pentru ascultarea de fişiere MPG în linie de comandă ( mpgl23 /mnt/cdrom/pink_f loyd/*. . . apeluri de sistem. mcopy teza. .reprezintă managerul de fişiere Midnight Commander .crt. .standardul utilizat pentru stocarea informaţiilor pe CD. (mdir a:. oferind diverse facilităţi (cu o interfaţă inspirată de Norton Commander pentru DOS).montează în cadrul unui director structura sistemului de fişiere stocat de un dispozitiv: disc.Sisteme de operare Nr.reprezintă clientul utilizat la conectarea la un server MySQL. 133 134 135 136 137 138 139 140 141 142 Denumire man2html man mc mcedit mesg mkdir mkfifo mkisofs more mount Funcieţie .este un editor vizual de pagini Web. .reprezintă principalul program de afişare de pagini de manual privind diverse aspecte ale sistemului: comenzi. funcţii.mută/redenumeşte un fişier ( mv teza.desemnează un navigator Web performant. disponibil în mod text. .

uab.inhibă tratarea semnalului HOHUP. . .2.reprezintă un utilitar pentru verificarea conexiunii cu o altă maşină (ping horea. .configurează imprimantele ataşate.oferă informaţii privind adresele simbolice ale unor calculatoare. .desemnează un utilitar care converteşte fişiere . .Sisteme de operare Nr. . .ps. un limbaj puternic pentru administrare de sistem şi nu numai ( perl admin.reprezintă un editor de texte simplu. disponibil în Mandrake. porturi deschise etc. . .converteşte un fişier . .afişează informaţii privitoare la procesele din sistem: identificatori.pdf. ( netstat -t ).reprezintă complexa suită de birou OpenOffice .oferă informaţii privitoare la starea reţelei: tipuri de conexiuni. .desemnează un utilitar care oferă acces la documentaţiile Perl (perldoc -f print).pdf în format . . .reprezintă un program pentru managementul mesajelor de e-mail.ua b. .formatează un fişier text în vederea tipăririi. oferind aceleaşi combinaţii de taste ca utilitarul pine. . .ps în fişiere . p s.reprezintă managerul de fişiere oferit de GNOME.reprezintă clientul utilizat la conectarea la un server PostgreSQL în vederea realizării unui dialog prin comenzi SQL.desemnează o versiune simplificată a utilitarului finger.ro/pub /li nux/ mdk9.realizează schimbarea parolei unui utilizator ( passwd horea).pl ).extrage informaţiile text dintr-un fişier .modifică prioritatea relativă a proceselor. 150 151 152 153 Denumire nautilus netstat nice nohup Funcieţie .ro).crt. stare. . . oferind informaţii privitoare la utilizatorii locali (pinky horea). (ps ux). proprietar etc. i so & ).reprezintă interpretorul de Perl. 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 nslookup oofice passwd pdf2ps perl perldoc pgsql pico ping pinky pr printerdrake procmail ps2ascii ps2pdf ps 115 . . astfel încât procesele să poată rula în fundal şi după deconec-tarea utilizatorului ( nohup wget ftp:// f tp .

reprezintă un utilitar pentru copierea de fişiere aflate la distanţă. .desemnează un utilitar de management al pachetelor . .lansează un interpretor de comenzi astfel încât dialogul între utilizator şi calculator să fie stocat întrun fişier ' typescript '. posibil cu restartarea lui (shutdown -h now).desemnează un utilitar de eliminare a unor pachete . . . .rpm. utilizat în special la instalarea/actualizarea pachetelor. . PS1.are scop „adormirea" unui proces pentru o durată de timp (sleep 30 ). PATH. .py).realizează managementul variabilelor unei sesiuni de lucru. mai ales al celor de sistem: MAIL.şterge fişiere (rm -/temporar/* -Rf).configurează imprimantele ataşate. .realizează managementul pachetelor soft.rpm (RedHat Package Manager).afişează directorul curent. TERM etc.restaurează copiile de siguranţă create cu dump.realizează oprirea sistemului.şterge un director (rmdir temporar).crt.Sisteme de operare Nr.oferă o vedere arborescentă a proceselor din sistem. .configurează în mod grafic serviciile de sistem: niveluri de execuţie. . un limbaj puternic pentru realizarea diverselor sarcini de sistem şi nu nu-mai (python demontare.rpm. . rularea/oprirea unor servicii etc. .reprezintă interpretorul de comenzi „clasic" al sistemului (implicit este bash). 116 . . . . oferit de Mandrake. . . disponibil în Fedora/RedHat. disponibil în Fedora/RedHat. în regim securizat (variantă sigură a programului ftp).reprezintă un instrument de management al utilizatorilor.restartează sistemul de operare.reprezintă un editor în linie de comandă. oferit de Mandrake. .reprezintă interpretorul de Python. . 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 Denumire pstree pwd python reboot redhatconfigprinter redhatconfig-users restore rm rmdir rpm rpmdrakeremove rpmdrake scp script sed serviceconf set sh shutdown sleep Funcieţie .

testează diverse condiţii: existenţa unui fişier.schimbă managerul de ferestre (mediul desktop ) al unui utilizator ( switchdesk KDE ).tar * .sincronizează conţinutul buffer-elor de memorie.Sisteme de operare Nr. (test -d /tmp && echo "Exista"). 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 Denumire sort spell split ssh startx stat stty su switchdesk sync sysctl tac tail talk tar Funcieţie .lansează sistemul de ferestre XWindow care va oferi suport pentru un manager de ferestre precum KDE sau GNOME . tipul unui fişier.arhivează conţinutul unui grup de fişiere.modifică diverşi parametri ai nucleului sistemului de operare.permite realizarea de conversaţii locale sau la dis-tanţă între perechi de utilizatori. .desemnează un program similar cu comanda cat. data creării etc. . dezar-hivare: tar -xf copie. data accesării etc. .afişează ultimele linii ale conţinutului unui fişier (tail -4 /etc/ mtab). .terminal virtual (telnet localhost 3000).reprezintă un program eare realizează conectarea la distanţă .horea ). . . .reprezintă un client securizat pentru accesul la distanţă la un interpretor de comenzi (variantă sigură a pro-gramului telnet).crt. .tar). . . . însă concatenează liniile de la sfârşitul fişierului către început ( tac /etc/httpd/logs/ error_log ).procesor sofisticat de texte.divizează conţinutul unui fişier în fişiere de dimensiuni mai mici.oferă informaţii privitoare la un fişier: permisiuni. proprietar. pe baza căruia ope-rează 205 206 207 telnet test tex 117 . valoarea unei variabile de sistem etc. ( stat /bin/bash ). (creare: tar -cf copie. .sortează conţinutul unui fişier ( sort /etc/passwd ). . dimensiune. scrieind informaţiile pe disc. pro prietar.oferă posibilităţi de detectare/corecţie a erorilor de gramatică. . .ps. .substituie un utilizator ( su . .oferă posibilităţi de setare a terminalului. prezervându-le informaţiile legate de permisiuni.

oferă diverse informaţii privitoare la un utili-zator. oferind diverse posibilităţi de formatare a textului.dezarhivează fişiere .stabileşte permisiunile implicite care vor fi setate la crearea fişierelor şi directoarelor (umask 700). dacă nu există(touch /etc/issue). . .elimină o variabilă din cadrul unei sesiuni de lucru. în Mandrake . .modifică data/timpul de sistem.şterge un utilizator ( userdel ionela ). . . . .oferă informaţii privitoare la maşina curentă. .Sisteme de operare Nr.transformă şiruri de caractere. disponibil în Mandrake .afişează directoarele sub forma unei structuri arborescente (tree / -d -L 1). .modifică diverşi parametri asociaţi unui utilizator ( usermod ionela ).reprezintă un utilitar pentru vizualizarea de conţinut video. .crt.oferă informaţii referitoare la dispozitivele conectate la porturile USB .zip comprimate cu zip (unzip documente. . . .realizează un top al execuţiei proceselor de pe o maşină. . 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 Denumire tidy time top totem touch tr traceroute tree troff umask umount unalias uname uniq unset unzip usbview useradd userdel userdrake userinfo usermod users vi Funcieţie latex. . .reprezintă un editor de texte clasic al sistemu-lui 118 .afişează liniile unice ale unui fişier sortat.ro).determină ruta de la maşina curentă la un calculator din reţea (traceroute www. . operaţie inversă celei de montare cu mount (umount /dev/cdrom). .lug.zip). .demontează un dispozitiv.reprezintă un procesor de texte.desemnează un utilitar pentru afişarea utilizatorilor conectaţi. . . .modifică timpul unui fişier la timpul curent sau creează fişierul.html).adaugă un utilizator ( useradd horea ).şterge un alias al unei comenzi (unalias 11).este un utilitar de validare (verificare sintactică) a documentelor HTML (tidy index. disponibil în Mandrake. .reprezintă un instrument de management al utilizatorilor. .

html ). 232 233 234 235 236 237 238 Denumire viewres vim vimtutor w wall wc wget Funcieţie UNIX . .afişează un mesaj tuturor utilizatorilor din sistem. .uab. . . disponibil pentru XWindow .numără linii.reprezintă un utilitar care afişează locul un-de este stocat un program ( whereis traceroute ). . oferind diverse facilităţi.inscripţionează CD-uri. .reprezintă un program de realizare de grafică 239 240 241 242 243 244 245 246 247 248 249 250 whereis which who whoami write xcalc xcdroast xclock xdvi xedit xemacs xeyes xf86config xfig 251 252 119 .dvi ).afişează paginile de manual desemnând un anumit cuvânt-cheie (which chmod ).desemnează un utilitar pentru învăţarea editorului vim.reprezintă un utilitar pentru vizualizarea resurselor sistemului. . . cuvinte şi caractere ale conţinutu-lui unor fişiere ( wc -l /etc/group ). . fragmente de situri sau şiruri Web complete ( wget http:// www. . . .afişează informaţii privitoare la utilizatorul curent.reprezintă un ceas afişat de sistemul XWindo w. .reprezintă o îmbunătăţire a editorului vi.reprezintă un utilitar folosit la salvarea locală a unor resurse Web : pagini.vizualizează fişierele independente de dispozitiv . oferind o interfaţă grafică. . .dvi (xdvi teza. disponibil pentru XWindow. .Sisteme de operare Nr. care afişează nişte ochişori urmărind cursorul mouse-ului.configurează sistemul X.reprezintă un editor de texte. . . .crt.scrie un mesaj la terminalul unui utilizator.ro/-horea/books. disponibil pentru sistemul XWindow . .oferă lista utilizatorilor conectaţi în sistem şi a sesiunilor lor de lucru.este varianta XWindow a editorului de texte configurabil emacs .reprezintă un utilitar de divertisment.oferă lista sesiunilor de lucru existente în sistem. .reprezintă un calculator de buzunar.

. . în vederea eliminării acesteia. .zip.arhivează fişiere stocându-le în formatul . în acest caz în XWindow. specializat în generarea de scheme şi diagrame. .reprezintă un program care lansează diverse screensaver-e.blochează sesiunea de lucru XWindow a unui utilizator.reprezintă un utilitar pentru vizualizarea de conţinut video. Denumire Funcieţie vectorială.trimite un semnal unei ferestre XWindow. .reprezintă terminalul XWindow.pdf).pdf (xpdf document. . . .crt.zip). similar Winamp-ului.reprezintă un utilitar pentru vizualizarea de conţinut video. .reprezintă sistemul de asistenţă folosit de GNOME. . .reprezintă un program pentru vizualizarea de fişiere .reprezintă un utilitar de tip „lupă" pentru mărirea conţinutului grafic dintr-o sesiune XWindow.desemnează un program pentru derularea de conţinut multimedia.Sisteme de operare Nr. .desemnează echivalentul comenzii man. compatibil cu PKZIP din DOS sau WinZIP din Windows (zip -9 document. 253 254 255 256 257 258 259 260 261 262 263 264 xine xkill xlock xmag xman xmms xmovie xpdf xscreensaver xterm yelp zip 120 .

Sistemul de operare DOS * Ghidul programatorului.Arhitectura calculatoarelor. ISBN 97897714-1-2. Bucuresti 2004.263. Microinformatica. Abraham Silberchats. 12. Tanenbaum .R. 6. Programare în limbaj de asamblare. Editura POLIROM. . 3. 174-234. pag 17-118. ISBN 978-0-471-69466-3. Caprariu s. 4.Programarea în Limbaj de asamblare. II.Procesoare INTEL Programare în limbaj de asamblare . 10. Editura Teora. Ediţia a II-a.c. Seventh Edition. Ediţia a II-a. Radu Mârsanu . Bucuresti 1995. 8. Laurenţiu Vornicu . John Wiley & Sons. Bucuresti 2007. Instrucţiunile familiei INTEL 80X86. Peter Baer Galvin. pag. ISBN 973-20-0099-6. Cluj-Napoca 1991. Editura Teora.L. 9. ISBN 973-601-480-0. Alba Iulia 2008. Gabriel Rădulescu .Limbajul de asamblare prin exemple. Greg Garne . Îndrumător. 7. Alba Iulia 2006. 5. Bucuresti 2007. ISBN 978-973-755-1788. 119-135. Andrew S. Mirela Petrea. Editura MATRIX ROM. Editura MATRIX ROM. 121 . Seria Didactica. Bucuresti 2006. 105. Cezar Unguraşu.Operating Szstem Concepts. Bucuresti 2004. Tulbure Adrian şi Colectivul . Bacău 2006. ISBN 978-9390-25-0.Învăţaţi rapid LIMBAJUL DE ASAMBLARE pentru procesoare X86 . Seria Didactica. Vasile Lungu . Bucuresti 1997. Editura Byblos S. Dragoş Acostăchioaie. Gheorghe Muscă .SISTEME DE OPERARE MODERNE. Joldeş Remus şi Olteanu Emil .Sistemele de operare MS-DOS si UNIX .Elemente de arhitectură a sistemelor de calcul.Utilizare LINUX * Noţiuni de bază şi practică. Joldeş Remus.Sisteme de operare BIBLIOGRAFIE 1. INC 2005. vol. Mihai Ceapâru . Editura EduSoft. ISBN 978-681-542-0. 11. V. ISBN 973-86699-2-8. Editura Tehnica.PROGRAMMATION EN LANGUAGE D ASSAMBLAGE. Sabin Buraga . 2.