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

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

limbaj de programare pentru obtinerea modulelor obiect. 10. . . . Aceasta ultima functie este prezentata în figura 2.Sisteme de operare 8. Adaptarea din mers a configuratiei hardware a sistemului de calcul în functie de posibilitatile financiare de care dispune utilizatorul.editor de legaturi pentru legarea modulelor obiect (provenite din compilarea în diverse limbaje) si obtinerea formatului executabil. Protectia informatiilor şi securitatea datelor pe toate tipurile de suporti de informatii. 9.încarcator care sa asigure încarcarea programului în memoria interna si lansarea lui în executie.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. . Asigurarea posibilitatilor de pregatire. lansare si executie a programelor de aplicatie prin oferirea unui: . 7 .

Mârşanu – Sistemele de operare MS-DOS şi UNIX.19 8 . Bucureşti 1995. pag.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. Tehnică. Dezvoltarea programelor Sursa: R. Ed.

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

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

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

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

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. Prin utilizarea eficienta a unui sistem de calcul întelegem executarea unui volum cât mai mare de lucrari. Pentru optimizarea încarcarii la maximum a unitatii centrale si a procesoarelor de intrare/iesire. . . Indicatorii utilizati pentru aprecierea performantelor unui sistem de calcul electronic sunt: .fiabilitatea si stabilitatea sistemului cât mai mare.Sisteme de operare 4. Aprecierea eficientei se face prin analizarea costului sistemului de calcul si a software-ului. spatiul de memorie externa. . lucru extrem de greu de facut.timpul de raspuns. . Între aceste limite este nevoit proiectantul sa-si stabileasca strategia de proiectare.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. socotit ca perioada de timp scursa între momentul lansarii cererii si momentul obtinerii raspunsului. în directa concordanta cu obtinerea rapida a rezultatelor. .volumul de lucrari si date intrate în sistem sa fie cât mai mare.conectivitate marita atât la nivel local cât si la distanta. 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.raportul cost/performanta cât mai redus. fiecare sistem de operare foloseste o politica de planificare riguroasa specifica lui. . . cu o configuratie hardware minima.î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 interna. Pentru a complica si mai mult 13 .protectie si securitate sporita a informatiilor. ceea ce explica si plaja extrem de variata de tipuri si versiuni de sisteme de operare.executia unui numar mare de lucrari în unitatea de timp prin lansarea în executie a lucrarilorcu timp redus de executie. periferia de intrare si de iesire etc. La alegerea strategiilor de planificare a lucrarilor trebuie cunoscute foarte exact obiectivele de realizare simultana: .accesibilitatea ridicata si interfata prietenoasa cu utilizatorul. .

Pentru timpilor de asteptare a unitatii centrale. 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. caruia-i sunt alocate toate resursele hardware ale sistemului de calcul electronic. multiprogramarea. 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.Sisteme de operare lucrurile factorul “concurenta” este extrem de important. 4. 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. spooling-ul. Acest lucru se poate vedea în figura 4. unitatea centrala etc. un program solicita pe parcursul executiei sale diferite operatii de intrare/iesire. Mârşanu – Sistemele de operare MS-DOS şi UNIX. Bucureşti 1995. Proiectantii care au stiut sa tina seama cel mai bine de aspectele anterioare sunt astazi lideri mondiali în materie de sisteme de operare. Aceste resurse constau în: memoria disponibila pentru executia programelor utilizator. time-sharing-ul si multiprelucrarea. Monoprogramare Sursa: R. La terminarea operatiei de intrare/iesire. 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.1. Sistemul de operare are în evidenta la un moment dat un singur program. toate echipamentele periferice din configuratia calculatorului. Tehnică. unde se poate vedea sincronizarea UC-ului cu canalul în cazul 14 . timp în care UC-ul asteapta finalizarea operatiilor cu perifericele. sistemele de operare folosesc: monoprogramare.33 Într-un sistem de operare cu monoprogramare. UC t1 Canal t2 t3 t4 t1 t2 t3 t4 Figura 4. Ed. supravegheate de catre procesorul de comunicatii (controller). pag.

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

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

motiv pentru care controlul UCului se da lui Task3). t11 . dupa o politica de deservire proprie sistemului de operare.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 .momentul în care se lanseaza operatia aflata în coada de asteptere (în favoarea lui Task3).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.momentul în care se încheie executia lui Task1 si controlul este predat lui Task 2 (care are dej datele solicitate Canalului). t10 . Procesul de planificare a predarii controlului UC-ului este facut de catre nucleul sistemului de operare care dispune de doua funtii importante: .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 .alocarea resurselor hardware care utilizeaza respectiva prioritate. operatia se trece în coada de asteptare). t9 . . t12 .se va relua executia instructiunilor din Task1.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. Aceste randamente sunt exprimate în procente. 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).Sisteme de operare momentul în care se termina operatia de intrare/iesire (datele ar putea fi folosite de Task1. i în cazul multiprogramarii se pot calcula randamentele pentru UC si Canal dupa expresiile (2).momentul în care se solicita initierea unei operatii de intrare/iesire canalului de catre unitatea centrala în favoarea lui Task3 (canalul fiind ocupat. 17 . t6 . dar controlul se afla la Task2 din care se executa secvential instructiuni) finalizarea operatiei se va manifesta printr-o întrerupere adresata UC-ului.asigurarea unei ordini de prioritati. t8 . t5 .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). t7 .momentul în care Task2 ar avea nevoie de datele solicitate Canalului (dar înca nu le are disponibile.

Largest Memory requirment First .Last Come.LCLS . .se aplica politica primul sosit primul servit sau FIFO (First Input.se aplica politica primul sosit ultimul servit sau FILO (First Input.Shortest processing Time First .se aplica politica de deservire.SMF . . sub forma unor fire de asteptare (din acest punct de vedere acestea sunt considerate procese de nastere si moarte). urmarindu-se minimizarea timpului total.Longest processing Time First . Last Output).First Come. a lucrararii care necesita cel mai mic spatiu de memorie. Last Served . . .se aplica politica de deservire. La ora actuala exista sisteme multiprogramare care inplementeaza unul din algoritmii (politicile) de deservire: .FCFS .se aplica politica ultimul sosit ultimul servit sau LILO (Last Input. a lucrararii care necesita cel mai lung timp de prelucrare.LMF .LCFS . First Served . pentru lansarea prioritara în executie.Last Come. O astfel de abordare ar duce la 18 .se aplica politica de deservire. urmarindu-se minimizarea timpului de trecere prin sistemul ce calcul electronic. . pentru lansarea prioritara în executie. Last Served .LTF . pentru lansarea prioritara în executie. First Output).FCLS .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 Output).First Come. . a lucrararii care necesita cel mai mic spatiu de memorie. 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 primul servit sau LIFO (Last Input.SFT . Precizam înca o data ca în sistemele de operare multiprocesor este vorba de executia mai multor task-uri si nu de executia lor simultana. a lucrararii care necesita cel mai scurt timp de prelucrare.Round Robin . . First Output).se aplica politica de deservire. First Served .Smallest Memory requirment First . pentru lansarea prioritara în executie.se aplica politica de deservire circulara acordându-se câte o cuanta de timp fiecarui task aflat în executie. .

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

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

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

Pentru acest tip de mecanism sunt specifice doua tipuri preemption: .Sisteme de operare lui. urmând ca urmatorul task prioritar sa fie executat doar în momentul în care task-ul curent s-a terminat. urmând sa fie înlocuit de un alt task cu prioritate mai mare.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”. În cadrul acestui mecanism. Daca în timpul executiei task-ului i se ajunge la exectia unei operatii de intrare/iesire.d. pâna la gasirea primului primului task aflat în starea pregatit. dupa care se parcurge lista de TCB-uri executându-se task-ul cel mai prioritar aflat în starea pregatit. Acest mecanism se poate observa în figura 8. Este de la sine înteles ca aceste testari sunt consumatoare de timp de UC. ceea ce divedeste ca aceasta solutie nu este cea mai eficienta. atunci scheduler-ul blocheaza task-ul salvându-i contextul în TCBi. unele sisteme de operare gestioneaza liste separate pentru task-urile “în asteptare”. Aceeasi pierdere de timp apare si când s-a produs un eveniment extern. cu un alt task caruia I se va atribui o cuanta de timp.m. “în pregatire” si “în executie”. Nu este greu sa ne închipuim ce 22 . s.a. Este usor de înteles ca sistemul de operare trebuie sa împiedice accesul simultan a doua task-uri la o resursa unica. adica task-ul activ este lasat sa se execute. Acest mecanism este cunoscut sub numele de “Round Robin”. al carui timp atribuit s-a epuizat. de pilda în defavoarea task-ului i-1 pe care-l aduce în starea pregatit. lista de task-uri este sortata în ordinea prioritatilor de executie. Pentru evitarea pierderilor de timp datorate salvarilor/restaurarilor separate ale contextului curent de executie. iar nucleul acestui sistem de operare poarta numele de “preemption” (dislocare sau înlocuire) si asigura de fapt înlocuirea unui task. 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 .înlocuire la aparitia unui task nou cu prioritate mai mare decât a task-ului în curs de executie. În acest fel se produce o baleere circulara a listei de task-uri. 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. Lista task-urilor aflate “în executie” prezentând interes practic doar în cazul calculatoarelor paralele (multiprocesor). 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. atunci noul task va înlocui task-ul curent.

Idetific. imprimand fiecarea câte o lirera sau un grup de litere. De exemplu.strategia accesului exclusiv (exclusive access) caz în care task-ul este nevoit sa solicite. în general.TASKn Prioritate TASKn Stare TASKn Pointer DATEn TCBn TASKi Pointer TASKi+1 Nume TASKi Nr. respectiv sa predea.Idetific. pot aparea scurtcircuite (deadlock) de forma: task-ul i asteapta un mesaj de la task-ul i+1. motiv pentru care anumite rutine si/sau subrutine trebuie vazute de catre programator ca taskuri cooperante.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. iar 23 .TASK1 Prioritate TASK1 Stare TASK1 Pointer DATE1 TCB1 TASK4 NUCLEUL SIS TEMULUI DE OPERARE Pointer TASK5 Nume TASK4 Nr.Idetific.TASK3 Prioritate TASK3 Stare TASK3 Pointer DATE3 TCB3 TASK1 Pointer TASK2 Nume TASK1 Nr. dreprul de acces la resursa unica. se folosesc doua strategii: .TASKi Prioritate TASKi Stare TASKi Pointer DATEi TCBi Figura 8.strategia exluderii reciproce (mutual exclusion) caz în care sistemul de operare asigura distribuirea drepturilor de acces la respectiva resursa. care se face prin asa-numitele “mesaje”. TASK2 Pointer TASK3 Nume TASK2 Nr. Tot sistemul de operare asigura rolul de coordonator în comunicarea mesajelor.Idetific. Pentru rezolvarea acestei probleme .Idetific.TASK2 Prioritate TASK2 Stare TASK2 Pointer DATE2 TCB2 TASK3 Pointer TASK4 Nume TASK3 Nr.Idetific.TASK4 Prioritate TASK4 Stare TASK4 Pointer DATE4 TCB4 TASKn Pointer TASK1 Nume TASKn Nr. rol extrem de complicat. .

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

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

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. 26 . la care sute sau chiar mii de utilizatori pot folosi simultan sistemul. Tehnica consta în a împarti resursele unui calculator . în asa fel încât fiecare utilizator are impresia ca este singurul utilizator al sistemului. legate la canale de mare capacitate de transfer. 4. Sisteme Time-Sharing Principiul Time-Sharing trebuie interpretat ca o partajare a timpului între utilizatorii sistemului de calcul electronic. fara a-si da seama ca si altii o fac în acelasi timp.4. Sistemul de operare TimeSharing se utilizeaza la cele mai mari calculatoare electronice de tip mainframe.

Bucureşti 1995... pag.. 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 . timpul de raspuns are tendinta evidenta de crestere....40 Este lesne de înteles ca în momentele de vârf ale utilizarii.. Sistem de operare Time-Sharing Sursa: R. Procesor de comunica ie Nucleul sistemului de operare (monitor de time-sharing) Cn n Memoria extern de instan  P5 P6 Figura 10... 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. motiv pentru 27 . Tehnică.. protectia informatiilor si ale utilizatorilor.

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

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

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

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

sisteme cu multiprelucrare care dispun de unitati centrale identice.41 B. pag. ca în figura 14. Mârşanu – Sistemele de operare MS-DOS şi UNIX. 32 . Modul de funcţionare Back-end processor Sursa: R. Bucureşti 1995. 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: . Ed. .Sisteme de operare Memoria extern UCP -SLAVE MAINFRAME UCP1 UCP2 UCP -MASTER DATE. 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: .sisteme cu memorie unica si UC-uri identice.sisteme cu memorie proprie si UC-uri identice. Tehnică. ca în figura 13.

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

. Ssisteme cu memorie proprie si UC-uri Master-Slave . lucru realizat de controlul direct efectuat de UC-urile componente. . ..puternic conectate care sunt individualizate de un volum crescut al lucrarilor executate de sistem. Sisteme cu memorie proprie si UC-uri identice UC1 SLAVE UC1 UC1 UC MASTER MEMORIE INTERN INTERN UNIC UC2 SLAVE UC1 .Sisteme de operare MEMORIE INTERN UC UCn UC UCn MEMORIE INTERN Figura 14. . . UC1 UCn SLAVE Figura 15. 34 . . Sisteme cu memorie unica si UC-uri Master-Slave MEMORIE INTERN UC MASTER UC1 UC SLAVE UC1 MEMORIE INTERN Figura 16..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.pipe (tip conducta) care permite procesarea directa asupra unui sir de vectori de mari dimensiuni.

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

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

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

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

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

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

se stabilesc valorile cu care vor fi încărcate registrele de control a execuţiei. În memoria internă coexistă atât date cât şi programe. În memoria externă. la fel şi în ceea ce priveşte accesul la fişierele altor programe. Ca regulă generală.Sisteme de operare tehnica memoriei virtuale. 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. Programele sunt gestionate de sistemul de operare sub formă de fişiere executabile. se recalculează adresele relocabile etc. restul modulelor fiind încărcate în memoria internă (din memoria externă) după necesităţile algoritmilor implementaţi de programe. exprimate în general prin adrese relative la începutul segmentelor). când se evaluează necesarul de resurse (în cazul nostru de memorie internă). cu funcţionalitate mai mult sau mai puţin independentă. 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). în faza de încărcare în memoria internă (din memoria externă) a programului. iar datele sub formă de fişiere de date. 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. translatare care se numeşte relocarea adreselor. de asemenea. coexistă datele şi programele. trebuie fiecare în parte să se supună următoaerlor operaţii: încărcarea în memoria internă. Întreaga alocare a spaţiului de memorie disponibil se face după politica de deservire (statică sau dinamică) implementată în sistemul de operare. se asigură recalcularea adreselor de lansare în execuţie a programului. astfel încât accesul neautorizat ale unor programe în spaţiul unui anumit program să fie blocat. Referitor la memoria internă unde pot exista simultan încărcate mai multe programe. se lucrează cu adrese de memorie logice (adrese de memorie simbolice. Trebuie reţinut că în faza de punere la punct şi de obţinere a programului executabil. baze de date sau bănci de date. de gestiune a memoriei interne. 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ă. Orice activitate de gestiune a memoriei interne se bazează pe trei algoritmi de bază: 43 . se face translatarea adreselor logice în adrese fizice. 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. protecţia programelor încărcate în memoria internă a calculatorului.

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

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

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

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

avem: • registrul de adrese virtuale devine mai complex prin asocierea perechii de semiregiştrii C şi P. • MPT . Organizarea la nivel de pagina 48 . 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.2. dimensiunea unei pagini este egală cu dimensiunea unei pagini din memoria internă. Această situaţie duce la o protecţie sporită a accesului şi la o utilizare eficientă a memoriei interne. ci pe măsură ce prelucrarea o cere. unde C are semnificaţia deja definită iar Q conţine o dimensiune de bazare. În general.21. Memorie virtuală organizată la nivel de pagină Această memorie virtuală este prezentată în fig. Cu notaţiile folosite anterior şi cu altele noi se poate prezenta şi acest mod de organizare. iar P va conţine numărul de cuvinte din pagină. • registrul de adrese reale RM devine şi el mai complex prin asocierea lui C şi Q.dispozitivul (mecanismul) de translatare a paginilor. Astfel.Sisteme de operare B. Acest tip de memorie virtuală are avantajul că reduce memoria conţinută în tabela ft. în care C va conţine numărul cuvântului din P. 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. lucru care duce la netranslatarea adresei cuvântului de pagină. pentru că spaţiul de adrese este divizat în pagini de dimensiune constantă.

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

2. Pentru fiecare adresă virtuală ai solicitată de programul aflat în execuţie.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. CP care conţine adresa virtuală a paginii în segment şi CC care conţine adresa virtuală a cuvântului în cadrul paginii. 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. Cuvântul selectat are q biţi şi reprezintă • • • 50 . 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. în care subregistrul R conţine adresa tabelei de pagini şi CP cu semnificaţia deja cunoscută. RA registrul buffer de acces în tabela MTP. registrele ACCES PAGINĂ şi ACCES SEGMENT dacă conţin valoarea 1 permit accesul la pagina sau ia segmentul specificat. 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. Memorie virtuală organizată la nivel de segment-pagină Această memorie virtuală este reprezentată în fig. procesorul va introduce în registrul de adrese virtuale RV: adresa virtuală a segmentului (în S). adresa virtuală a paginii în cadrul segmentului (în CP) şi adresa virtuală a cuvântului în cadrul paginii (în CC).4. Organizarea la nivel de segment B.3.

atunci înseamnă că segmentul virtual solicitat nu se află în memoria internă. 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. • 5. Gestiunea dispozitivelor periferice 51 . plasare şi reamplasare în memoria internă ai segmentului solicitat. 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.3. • după găsirea segmentului se trece la determinarea paginii prin intermediul tabelei MTS. cuvânt care va fi introdus în registrul adreselor reale RM. actualizându-se tabela de segmente şi punându-se REZIDENT pe valoarea 1. sunt declanşaţi algoritmii de transfer.Sisteme de operare una din paginile reale din memoria internă.

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

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

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. • dezalocarea dispozitivului la terminarea operaţiei de intrare/ieşire. • 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. 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. în cazul sistemelor de calcul exploatate în multiprelucrare. D. • o unitate de control UCDP partajează mai multe canale. a unităţii sale de control şi a canalului pentru procesul de intrare/ieşire.5. 54 . • 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. sistemele de operare dispun de programe specializate pentru controloarele de intrare/ieşire. cât timp şi modul de acordare al dispozitivului periferic. 2. ca în fig. Funcţiile care trebuie să le asigure gestiunea dispozitivelor periferice sunt: • alocarea dispozitivului periferic. • decide cu privire la care.

prin construirea unei tabele ce conţine un bloc de control pentru fiecare dispozitiv periferic. 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.Sisteme de operare Gestriunea DP prin metode hardware: operarea independentă a dispozitivului periferic. unităţii de control UCDP şi a dispozitivelor periferice propriu-zise. Există sisteme în care dispozitivele periferice se utilizează partajat "Shared Devices". căi multiple de acces la DP şi multiplexarea canalului de transfer a datelor. 55 . existenţa unui buffer proproiu în DP. • interfaţarea cererilor din partea proceselor. executând fizic operaţia de intrare/ieşire. • 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. Această partajare impune: • protecţia împotriva acceselor neaturizate. • 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ă.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. . de tip bloc. La retur. . . . . . . . .01H Control intrare/iesire pentru dispozitivele periferice (IOCTRL _ Input/Output Control). atunci in DX se reprezinta starea unui dispozitiv de tip caracter: DX: Descriere: bitul 0 =1 daca este dispozitivul stand. . . 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. .. .intrare (consola) 1 =1 daca este disp. . . . standard de iesire (consola) 2 =1 daca este dispozitivul NULL 3 =1 daca dispozitivul este ceasul calc. . . . dupa cum bitul 7 are valoarea 0 sau 1: 1.. . . .suporta iesirea pana cand devine ocupat 14 =1 daca disp. poate prelucra siruri de control 15 rezervat 2. 1 = B. . . . BX.(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. iar daca AL se incarca cu 01h se pozitioneaza informatiile referitoare la dispozitivul periferic atasat identificatorului logic specificat in BX. . In cazul in care AL=01h se pozitioneaza informatiile despre dispozitiv in felul urmator: DX: Descriere: 83 . intelege instructiuni open/close 12 rezervat 13 =1 disp. 0 = A. .Sisteme de operare endm . DH fiind incarcat cu 00h si DL incarcat cu informatiile ce trebuie setate. . . . . . atunci in DX se precizeaza starea unui fisier pe disc magnetic: DX: Descriere: bitul 0_5 numarul dispoz. APELAREA FUNCTIEI 4400H. . . Daca bitul 7 din DX este 1. . . pentru obtinerea/ pozitionarea informatiilor despre dispozitiv. . . . Daca AL se incarca cu 00h se returneaza informatii despre dispozitivul sau fisierul atasat identificatorului logic specificat in reg. Daca bitul 7 din DX este 0. . . . . in cazul AL=00h se returneaza in DX unul din urmatoarele doua formate.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sisteme de operare 104 .

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

mult.ax al.ah bx.cx cl.48 cx.bx base bl.start.value local ten.cs:table[bx] destination[1]. CONVERT_TO_BINARY macro string.string[si] al. CONVERSIA IN BINAR A UNUI NUMAR.al bl.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.ah al.2 no_mult cx cx cs:ten mult value.no_mult jmp start ten db 10 start: mov xor mov xor calc: xor mov sub cmp jl push dec mul loop ax.cs:table[bx] destination. .value ah.0 cx.al al.number si.si mult: 106 .al dx bx ax .number.calc.

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

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

modifică interpretorul de comenzi implicit al unui utilizator. .dispozitive.oferă duplicarea conţinutului unor fişiere .afişează la terminal (ieşirea standard. .dvi în fişiere .compară (la nivel de octet) conţinutul unor fişiere. deosebit de flexibil şi puternic. .5). 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.vizualizează conţinutul fişierelor grafice. . .dvi în fişiere .evaluează o expresie în cadrul interpretorului de 109 . . se preferă utilizarea comenzii ls. .modifică permisiunile de acces la fişiere/directoare (chmod +or script. .afişează spaţiul ocupat de un director (du /tmp).pdf (Portable Document Format) în vederea vizualizării/tipăririi cu xpdf (dvipdf teza. implicit) un şir de caractere (echo " S a l u t a r e ! " ) .afişează data şi timpul curent.dvi -o teza. . CD sau DVD). pe coloane sau conform unor delimitatori (cut /etc/passwd -d: -fi.afişează informaţii privitoare la numele fişierelor dintrun director (dir . .crt. .*).transformă fişiere . disponibil în GNOME. cgi ). .şterge ecranul (terminalul). .copie un fişier la o altă locaţie sau sub alt nume (cp /bin/ls ~/tmp).ps (PostScript) în vederea vizualizării/tipăririi cu gv (dvips teza.afişează spaţiul liber rămas (df /dev/hdal). . . . . . . .schimbă proprietarul fişierelor şi grupul din care face parte proprie tarul ( chown horea:profs *.g.ps).Sisteme de operare Nr.editează la nivel de linie conţinutul unui fişier.pdf).creează copii de siguranţă pentru o scrie de fişiere. zip ).. .compară (la nivel de linie) conţinutul unor fişiere.reprezintă un editor de texte configurabil.transformă fişiere .demontează şi eliberează un mediu de stocare (e. . discuri etc.decupează diverse informaţii din fiecare linie a unui fişier.

reprezintă un utilitar grafic oferit de GNOME pentru formatarea dischetelor.rpm. .uab. .reprezintă managerul de ferestre oferit de GNOME. . .compară fişiere. . . -reprezintă varianta GNU a compilatorului de C (gcc program.furnizează informaţii despre utilizatori.partiţionează discul şi modifică informaţii privitoare la partiţiile existente.afişează aleatoriu o maximă.crt. . . . . oferind multe facilităţi de prelucrare şi filtrare.verifică sistemele de fişiere ale dispozitivelor (fsck /dev/hda5). . un aforism sau un citat celebru.realizează o conexiune cu un server FTP. interacţionând direct cu utilizatorul. c -o executabil). . . .permite încărcarea unui sistem de operare dintr-o listă de 110 .evaluează o expresie (echo ‘expr 10 * 3’). conform unor criterii sofisticate (find / -name „k*” –print). . eventual pe alte maşini (finger bunu@remy.caută în cadrul fişierelor (la nivel de linie) diverse şiruri de caractere (grep "config" *. . 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.găseşte fişiere. . . .adaugă un grup de utilizatori (groupadd catedra).realizează redarea CD-urilor audio în GNOME. .modifică diverşi parametri asociaţi unui grup de utilizatori (groupmod catedra).reprezintă un utilitar grafic pentru managementul arhivelor. .reprezintă un program de realizat grafică raster (bitmap).este un navigator Web furnizat de GNOME.controlează transparenţa imaginilor stocate în format GIF. .ro).Sisteme de operare Nr. .şterge un grup de utilizatori (groupdel mate).editează la nivel de linie conţinutul unui fişier. .trimite un proces pentru a fi executat în prim-plan.conf). .determină tipul unor fişiere (file ~/Documents/*).reprezintă un program de înregistrat conţinut audio.desemnează un utilitar pentru managementul grafic al pachetelor . în vederea transferului de fişiere la distanţă.

este un program de inscripţionare de CD-uri. .crt.oferă informaţii privitoare la identitatea unui utilizator.ps (PostScript).reprezintă un editor de texte oferind diverse facilităţi (joe cu combinaţiile de taste ale editorului de texte pico).reprezintă un editor de texte oferit de mediul KDE.afişează procesele lansate în fundal. .realizează vizualizarea/tipărirea de fişiere . . utilizat în regim grafic. .preia fotografii realizate cu camera digitală. .afişează informaţii privitoare la adresa maşinii curente.oferă informaţii privitoare la mediile de stocare respectând standardul ISO 9660 (CD-uri şi DVD-uri). parte a suitei de birou KOffice.Sisteme de operare Nr.afişează primele linii ale conţinutului unui fişier (head -3 /etc/ group).uab. .configurează firewall-ul.dezarhivează un fişier .configurează interfeţele (echipamentele) de reţea. disponibil în KDE. . . -arhivează un fişier.afişează informaţii privitoare la adresa (simbolică ori IP) a unei gazde (host www . în formă de hipertext (info mtools). . . 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. .oferă informaţii privitoare la diverse comenzi şi utilitare. .afişează. . codul sursă al programelor C sau C++.tar .gz (gzip copie.gz compresat cu gzip (gunzip copie . . . . .opreşte sistemul de operare.reprezintă un utilitar de configurare oferit de KDE. bazat pe combinaţii de taste WordStar/TurboPascal. .afişează informaţii de ajutor privitoare la interpretorul de comenzi (help exit). . . creând în locul lui o arhivă . . .reprezintă un editor de texte oferind diverse facilităţi.tar).reprezintă un program de calcul tabelar.gz).oferă posibilităţi de detectare/corecţie a erorilor de gramatică. 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 . ro).realizează managementul istoricului comenzilor introduse. formatat corespunzător. .

. disponibil în KDE.Sisteme de operare Nr.configurează legătura cu un furnizor de servicii Internet (client PPP). .reprezintă clipboard-ul KDE.trimite un semnal (implicit de terminare) tuturor proceselor deţinute de un utilizator (killall mc).este un program KDE care realizează managementul pachetelor RPM.realizează redarea CD-urilor audio în KDE. parte a sistemului KDE.reprezintă un utilitar de personalizare a interfeţei KDE. parte a suitei KOffice. .reprezintă un utilitar KDE pentru managemenul notiţelor. . oferit de KDE.reprezintă un utilitar de editare de formule matematice. . .reprezintă navigatorul Web şi managerul de fişiere oferit de KDE. .reprezintă consola KDE (lansează diverse interpretoare de comenzi).reprezintă un utilitar KDE pentru controlul sunetului.este un utilitar grafic similar cu df şi du. . . .reprezintă un program KDE pentru managementul poştei electronice.vizualizează conţinutul fişierelor grafice.trimite un semnal (implicit de terminare) proceselor existente în sistem (kill -9 -1). un mediu grafic oferind multe facilităţi. .crt. .reprezintă un program simplu de grafică raster. oferit de KDE.desemnează un editor de texte simplu. . . 112 . .desemnează managerul de ferestre KDE (The KDesktop Environment). . 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ă sistemul de asistenţă oferit de KDE. . .reprezintă un utilitar KDE pentru managementul utilizatorilor. .este un program de capturare a ecranului (desktopului). .reprezintă un utilitar grafic oferit de KDE pentru formatarea dischetelor. .

. 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 . 113 .reprezintă un utilitar complex utilizat la configurarea unui sistem Linux. . . . . .reprezintă un navigator Web rapid.realizează legături (scurtături) între două fişiere ( ln -s /trap /usr /trap). parte a sistemului KDE. cu posibilitatea derulării acestui conţinut. disponibil în mod text (lynx http://www. .trimite un fişier pentru tipărire.reprezintă un utilitar KDE de previzualizare a conţinutului fişierelor.reprezintă un utilitar pentru execuţia de programe.listează coada de sarcini de tipărire. . disponibil în mod text sau grafic. cu suport pentru CSS şi JavaScript (îmbunătăţire a programului lynx). adaugându-1 la coada de sarcini (lpr curs.permite încărcarea unui sistem de operare dintr-o listă de sisteme instalate.reprezintă un utilitar pentru managementul poştei electronice în regim linie de comandă ( mail jhorea@uab. bazat pe marcatori şi folosit la generarea de fişiere indepen-dente de dispozitiv .ro ).crt.uab.afişează paginat conţinutul unui fişier. . .Sisteme de operare Nr. . . .dvi (latex articol.reprezintă un navigator Web rapid. conform unor reguli care satisfac diverse dependenţe. -ş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).ps ). . -realizează deconectarea unui utilizator (părăsirea sesiunii de lucru).afişează în diverse formate lista fişierelor dintr-un director ( ls –alf ~/mail ). .reprezintă un procesor sofisticat de texte.reprezintă o interfaţă pentru administrarea siste-mului de tipărire.reprezintă un procesor de texte avansat.tex ). oferit de suita de birou KOffîce.ro -sSalutari ). .

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

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

Sisteme de operare Nr. . . .configurează în mod grafic serviciile de sistem: niveluri de execuţie. mai ales al celor de sistem: MAIL. . TERM etc.lansează un interpretor de comenzi astfel încât dialogul între utilizator şi calculator să fie stocat întrun fişier ' typescript '.restaurează copiile de siguranţă create cu dump.realizează managementul variabilelor unei sesiuni de lucru.oferă o vedere arborescentă a proceselor din sistem.realizează oprirea sistemului.configurează imprimantele ataşate.desemnează un utilitar de management al pachetelor .are scop „adormirea" unui proces pentru o durată de timp (sleep 30 ). . . . .reprezintă un editor în linie de comandă. .py).rpm.şterge un director (rmdir temporar). . .reprezintă interpretorul de Python. . .rpm. PS1.reprezintă un utilitar pentru copierea de fişiere aflate la distanţă. . 116 .rpm (RedHat Package Manager). posibil cu restartarea lui (shutdown -h now). .şterge fişiere (rm -/temporar/* -Rf). . oferit de Mandrake.realizează managementul pachetelor soft.reprezintă interpretorul de comenzi „clasic" al sistemului (implicit este bash). disponibil în Fedora/RedHat.crt.afişează directorul curent. în regim securizat (variantă sigură a programului ftp). un limbaj puternic pentru realizarea diverselor sarcini de sistem şi nu nu-mai (python demontare.reprezintă un instrument de management al utilizatorilor. . . disponibil în Fedora/RedHat. utilizat în special la instalarea/actualizarea pachetelor. PATH.desemnează un utilitar de eliminare a unor pachete . 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 .restartează sistemul de operare. . oferit de Mandrake. rularea/oprirea unor servicii etc.

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

desemnează un utilitar pentru afişarea utilizatorilor conectaţi.demontează un dispozitiv. . . .modifică timpul unui fişier la timpul curent sau creează fişierul.Sisteme de operare Nr. .dezarhivează fişiere . . .reprezintă un procesor de texte. . . . .oferă informaţii referitoare la dispozitivele conectate la porturile USB . . . . disponibil în Mandrake .determină ruta de la maşina curentă la un calculator din reţea (traceroute www.reprezintă un editor de texte clasic al sistemu-lui 118 .html).realizează un top al execuţiei proceselor de pe o maşină. . operaţie inversă celei de montare cu mount (umount /dev/cdrom). .este un utilitar de validare (verificare sintactică) a documentelor HTML (tidy index. .oferă diverse informaţii privitoare la un utili-zator.modifică diverşi parametri asociaţi unui utilizator ( usermod ionela ). .afişează liniile unice ale unui fişier sortat.transformă şiruri de caractere.afişează directoarele sub forma unei structuri arborescente (tree / -d -L 1). .zip comprimate cu zip (unzip documente.zip).adaugă un utilizator ( useradd horea ).lug. .crt. disponibil în Mandrake.reprezintă un utilitar pentru vizualizarea de conţinut video.şterge un utilizator ( userdel ionela ).şterge un alias al unei comenzi (unalias 11). .modifică data/timpul de sistem.oferă informaţii privitoare la maşina curentă. . .ro).stabileşte permisiunile implicite care vor fi setate la crearea fişierelor şi directoarelor (umask 700). . 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 instrument de management al utilizatorilor.elimină o variabilă din cadrul unei sesiuni de lucru. în Mandrake . oferind diverse posibilităţi de formatare a textului. dacă nu există(touch /etc/issue).

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

reprezintă un utilitar de tip „lupă" pentru mărirea conţinutului grafic dintr-o sesiune XWindow. . . .crt.desemnează echivalentul comenzii man. . specializat în generarea de scheme şi diagrame. compatibil cu PKZIP din DOS sau WinZIP din Windows (zip -9 document. în vederea eliminării acesteia.zip. .reprezintă un program pentru vizualizarea de fişiere . în acest caz în XWindow.zip). . . .reprezintă terminalul XWindow.reprezintă sistemul de asistenţă folosit de GNOME.trimite un semnal unei ferestre XWindow. Denumire Funcieţie vectorială.pdf (xpdf document.pdf).reprezintă un utilitar pentru vizualizarea de conţinut video. . .Sisteme de operare Nr. .reprezintă un utilitar pentru vizualizarea de conţinut video.arhivează fişiere stocându-le în formatul . .reprezintă un program care lansează diverse screensaver-e.desemnează un program pentru derularea de conţinut multimedia.blochează sesiunea de lucru XWindow a unui utilizator. 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 . similar Winamp-ului.

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

Sign up to vote on this title
UsefulNot useful