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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

D. • o unitate de control UCDP partajează mai multe canale. în cazul sistemelor de calcul exploatate în multiprelucrare. Funcţiile care trebuie să le asigure gestiunea dispozitivelor periferice sunt: • alocarea dispozitivului periferic. ca în fig. 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. 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. • dezalocarea dispozitivului la terminarea operaţiei de intrare/ieşire. iar două UC-uri partajează aceeaşi unitate de control. a unităţii sale de control şi a canalului pentru procesul 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.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. • decide cu privire la care.5. 2. 54 . cât timp şi modul de acordare al dispozitivului periferic. • evidenţa stării tuturor DP-urilor prin blocuri de control asociate fiecărui dispozitiv periferic (DP).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sisteme de operare 104 .

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

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

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

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

.pdf (Portable Document Format) în vederea vizualizării/tipăririi cu xpdf (dvipdf teza.vizualizează conţinutul fişierelor grafice.oferă duplicarea conţinutului unor fişiere .*). .g. . . zip ).decupează diverse informaţii din fiecare linie a unui fişier.dvi -o teza.editează la nivel de linie conţinutul unui fişier.transformă fişiere . . .modifică interpretorul de comenzi implicit al unui utilizator.reprezintă un editor de texte configurabil. cgi ). .creează copii de siguranţă pentru o scrie de fişiere. discuri etc. deosebit de flexibil şi puternic.demontează şi eliberează un mediu de stocare (e. .Sisteme de operare Nr.afişează data şi timpul curent. pe coloane sau conform unor delimitatori (cut /etc/passwd -d: -fi. . . . . .dispozitive.modifică permisiunile de acces la fişiere/directoare (chmod +or script.evaluează o expresie în cadrul interpretorului de 109 .afişează la terminal (ieşirea standard.dvi în fişiere . . . implicit) un şir de caractere (echo " S a l u t a r e ! " ) . . .5).copie un fişier la o altă locaţie sau sub alt nume (cp /bin/ls ~/tmp).compară (la nivel de linie) conţinutul unor fişiere.compară (la nivel de octet) conţinutul unor fişiere. disponibil în GNOME.şterge ecranul (terminalul). 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 Denumire chmod chown chsh clear cmp cp cut date dd df diff dir du dvipdf dvips dump echo ed eject emacs eog eval Funcieţie ruleze serviciile de sistem.dvi în fişiere .schimbă proprietarul fişierelor şi grupul din care face parte proprie tarul ( chown horea:profs *.afişează spaţiul liber rămas (df /dev/hdal).. se preferă utilizarea comenzii ls.dvi -o teza.crt.ps (PostScript) în vederea vizualizării/tipăririi cu gv (dvips teza.ps). . .pdf).afişează spaţiul ocupat de un director (du /tmp). . CD sau DVD). . .afişează informaţii privitoare la numele fişierelor dintrun director (dir .transformă fişiere .

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful