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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

protectia informatiilor si ale utilizatorilor.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 .. pag. Bucureşti 1995.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. Mai trebuie retinut ca aceste sisteme de operare cu divizarea timpului ridica probleme deosebite privind alocarea resurselor hardware ale sistemului....... Sistem de operare Time-Sharing Sursa: R. motiv pentru 27 .. Mârşanu – Sistemele de operare MS-DOS şi UNIX. Tehnică... Ed. timpul de raspuns are tendinta evidenta de crestere.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.3. Cuvântul selectat are q biţi şi reprezintă • • • 50 . procesorul va introduce în registrul de adrese virtuale RV: adresa virtuală a segmentului (în S). Prin intermediul valorii din S se caută în tabela MTS dacă se găseşte încărcată în memorie zona având adresa tabelei de pagini (în R) şi dimensiunea segmentului (exprimată în pagini) în D. Organizarea la nivel de segment B.4.Sisteme de operare PROCESOR UC ai RV C S Comparator MTS R D D R Registru buffer RM C R bi MEMORIA INTERNA Rezident Acces Depasire DISPOZITIV DE TRANSLATARE Canale de transfer MEMORIA EXTERNA Figura 22. Pentru fiecare adresă virtuală ai solicitată de programul aflat în execuţie. RA registrul buffer de acces în tabela MTP. CP care conţine adresa virtuală a paginii în segment şi CC care conţine adresa virtuală a cuvântului în cadrul paginii. Noile notaţii care apar aici sunt: registrul de adrese virtuale este format din trei subregiştrii: S care conţine adresa virtuală a segmentului. 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. adresa virtuală a paginii în cadrul segmentului (în CP) şi adresa virtuală a cuvântului în cadrul paginii (în CC). 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. în care subregistrul R conţine adresa tabelei de pagini şi CP cu semnificaţia deja cunoscută.

• după găsirea segmentului se trece la determinarea paginii prin intermediul tabelei MTS. actualizându-se tabela de segmente şi punându-se REZIDENT pe valoarea 1. • dacă valoarea adresei virtuale a paginii în segment (aflat în CP) este mai mare decât dimensiunea segmentului (exprimată în număr de pagini) din registrul D. atunci înseamnă că segmentul virtual solicitat nu se află în memoria internă. Gestiunea dispozitivelor periferice 51 . • 5. Organizarea la nivel segment-pagina Se vor întâlni următoarele situaţii: dacă adresa virtuală a segmentului (cunoscută în S) nu se găseşte în nici o intrare în MTS.3. atunci există o depăşire semnalizată prin punerea pe 1 a valorii din registrul DEPĂŞIRE SEGMENT. plasare şi reamplasare în memoria internă ai segmentului solicitat. sunt declanşaţi algoritmii de transfer.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. cuvânt care va fi introdus în registrul adreselor reale RM.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

;

APELAREA FUNCTIEI 2AH

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

72

Sisteme de operare
endm

;

APELAREA FUNCTIEI 2BH

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

;

APELAREA FUNCTIEI 2CH

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

;
; ; ; ; ; ; ; ; ;

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

73

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

;

APELAREA FUNCTIEI 2EH

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

;

APELAREA FUNCTIEI 2FH

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

;

APELAREA FUNCTIEI 30H

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

;

APELAREA FUNCTIEI 31H

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

74

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sisteme de operare 104 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful