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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tehnica consta în a împarti resursele unui calculator . 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. în asa fel încât fiecare utilizator are impresia ca este singurul utilizator al sistemului. 4. 26 . 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. la care sute sau chiar mii de utilizatori pot folosi simultan sistemul. Sistemul de operare TimeSharing se utilizeaza la cele mai mari calculatoare electronice de tip mainframe.4.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Gestiunea dispozitivelor periferice 51 . cuvânt care va fi introdus în registrul adreselor reale RM. sunt declanşaţi algoritmii de transfer. actualizându-se tabela de segmente şi punându-se REZIDENT pe valoarea 1.Sisteme de operare una din paginile reale din memoria internă. RM PROCESOR UC ai RV CC CP S MTS R D D R Buffer Acces pagina Q RA CP Buffer R MTP CC Q bi MEMORIA INTERNA Canale de transfer MEMORIA EXTERNA Depasire segment Rezident Acces segment DISPOZITIV DE TRANSLATARE Figura 23. plasare şi reamplasare în memoria internă ai segmentului solicitat. • 5. • 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. 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. • după găsirea segmentului se trece la determinarea paginii prin intermediul tabelei MTS.3.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sisteme de operare 104 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful