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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ssisteme cu memorie proprie si UC-uri Master-Slave . Sisteme cu memorie unica si UC-uri Master-Slave MEMORIE INTERN UC MASTER UC1 UC SLAVE UC1 MEMORIE INTERN Figura 16. Sisteme cu memorie proprie si UC-uri identice UC1 SLAVE UC1 UC1 UC MASTER MEMORIE INTERN INTERN UNIC UC2 SLAVE UC1 . UC1 UCn SLAVE Figura 15. . 34 .. . lucru realizat de controlul direct efectuat de UC-urile componente. . . .arie de procesoare care presupune împartirea unui program în activitati absolut independente si care se pot executa în mod simultan pe UC-urile existente într-o configuratie.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.puternic conectate care sunt individualizate de un volum crescut al lucrarilor executate de sistem.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sisteme de operare 104 .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful