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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

... protectia informatiilor si ale utilizatorilor.. Bucureşti 1995. Mârşanu – Sistemele de operare MS-DOS şi UNIX. Tehnică.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. Ed. Procesor de comunica ie Nucleul sistemului de operare (monitor de time-sharing) Cn n Memoria extern de instan  P5 P6 Figura 10.40 Este lesne de înteles ca în momentele de vârf ale utilizarii... motiv pentru 27 .... Sistem de operare Time-Sharing Sursa: R. Mai trebuie retinut ca aceste sisteme de operare cu divizarea timpului ridica probleme deosebite privind alocarea resurselor hardware ale sistemului. pag.

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

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

care va juca rol de UC-Slave. Paralelismul executiei mai multor sarcini definite la nivelul unui program poate fi controlat explicit. a proteja datele utilizate de o sarcina în raport cu alte sarcini aflate în curs de executie. î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. limbaj care permite specificarea lucrarilor paralele. Vazut în ansamblul lui. 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. prin instructiuni speciale care se folosesc pentru: a initia executia paralela a sarcinilor. Trebuie remarcat faptul ca în sistemele electronice care sunt exploatate în multiprelucrare. daca se utilizeaza un limbaj de programare corespunzator multiprelucrarii. Acest lucru poate fi cel mai elegant rezolvat prin cuplarea la UC-ul obisnuit. A. a testa starea unei sarcini etc. întretinerea fisierelor si întretinerea bazelor de date. un sistem Master-Slave trebuie privit ca un ansamblu format din doua entitati de procesare în care Masterul are rol de interfata. Multiprogramarea presupune existenta în memoria interna a n programe si care partajeaza resursele unui singur UC. a astepta terminarea executiei lor. a uni nou UC numit UC-Master si care are rolul de a gestiona absolut toate intrarile/iesirile în sistem. 30 . UC-urile pot executa instructiuni în favoarea unui singur program sau pot executa simultan instructiuni din cadrul unor programe diferite. Un sistem de calcul electronic se considera ca lucreaza în multiprelucrare. daca dispune de cel putin doua UC-uri care lucreaza în parallel. multiprelucrarea este un concept hardware.

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

41 B. . Modul de funcţionare Back-end processor Sursa: R. ca în figura 13. Bucureşti 1995. Mârşanu – Sistemele de operare MS-DOS şi UNIX. ca în figura 14. COMUNICA II CONTROL Alte dispozitive periferice de intrare/ie ire Figura 12. Tehnică. pag.sisteme cu memorie proprie si UC-uri identice. la care difera doar modul de partajare a memoriei interme si pentru care exista patru tipuri distincte de sisteme Master-Slave: .sisteme cu memorie unica si UC-uri identice.sisteme cu multiprelucrare care dispun de unitati centrale identice. 32 . 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: .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. 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. Organizarea la nivel de segment B. 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. 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).3. 2. RA registrul buffer de acces în tabela MTP. Cu componenta CP de acces RA şi cu R din registrul buffer se extrage din tabela de pagini MTP cuvântul exprimat prin CP şi R. registrele ACCES PAGINĂ şi ACCES SEGMENT dacă conţin valoarea 1 permit accesul la pagina sau ia segmentul specificat. Cuvântul selectat are q biţi şi reprezintă • • • 50 . în care subregistrul R conţine adresa tabelei de pagini şi CP cu semnificaţia deja cunoscută. Pentru fiecare adresă virtuală ai solicitată de programul aflat în execuţie.4. adresa virtuală a paginii în cadrul segmentului (în CP) şi adresa virtuală a cuvântului în cadrul paginii (în CC).

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

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

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

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

existenţa unui buffer proproiu în DP. • manipulatorul dispozitivelor de intrare/ieşire (input/output Device Handler) are rolul de a crea programul de canal. 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. executând fizic operaţia de intrare/ieşire. • interfaţarea cererilor din partea proceselor. • 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ă. Există sisteme în care dispozitivele periferice se utilizează partajat "Shared Devices". 55 . prin construirea unei tabele ce conţine un bloc de control pentru fiecare dispozitiv periferic. căi multiple de acces la DP şi multiplexarea canalului de transfer a datelor. unităţii de control UCDP şi a dispozitivelor periferice propriu-zise.Sisteme de operare Gestriunea DP prin metode hardware: operarea independentă a dispozitivului periferic. • utilizarea sistemului Spooling pentru gestiunea perifericelor virtuale. • controlerul traficului de intrare/ieşire (input/output Traffic Controller) are menirea de evidenţia informaţiile de stare ale fiecărui dispozitiv periferic. Această partajare impune: • protecţia împotriva acceselor neaturizate.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

;

APELAREA FUNCTIEI 2AH

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

72

Sisteme de operare
endm

;

APELAREA FUNCTIEI 2BH

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

;

APELAREA FUNCTIEI 2CH

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

;
; ; ; ; ; ; ; ; ;

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

73

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

;

APELAREA FUNCTIEI 2EH

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

;

APELAREA FUNCTIEI 2FH

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

;

APELAREA FUNCTIEI 30H

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

;

APELAREA FUNCTIEI 31H

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

74

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sisteme de operare 104 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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