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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. . . UCn Figura 13. . 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. ca în figura 15. . ca în figura 16. Sisteme cu memorie unica si UC-uri identice UC1 MEMORIE INTERN UNIC UC2 . UCn 33 . ...Sisteme de operare . . . ..sisteme cu multiprelucrare având unitati centrale diferite.. .sisteme cu memorie proprie si UC-uri Master-Slave.

. lucru realizat de controlul direct efectuat de UC-urile componente.pipe (tip conducta) care permite procesarea directa asupra unui sir de vectori de mari dimensiuni. . . Sisteme cu memorie proprie si UC-uri identice UC1 SLAVE UC1 UC1 UC MASTER MEMORIE INTERN INTERN UNIC UC2 SLAVE UC1 . .arie de procesoare care presupune împartirea unui program în activitati absolut independente si care se pot executa în mod simultan pe UC-urile existente într-o configuratie. .. 34 .. Ssisteme cu memorie proprie si UC-uri Master-Slave .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. Sisteme cu memorie unica si UC-uri Master-Slave MEMORIE INTERN UC MASTER UC1 UC SLAVE UC1 MEMORIE INTERN Figura 16. UC1 UCn SLAVE Figura 15. .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. • controlerul traficului de intrare/ieşire (input/output Traffic Controller) are menirea de evidenţia informaţiile de stare ale fiecărui dispozitiv periferic. 55 . prin construirea unei tabele ce conţine un bloc de control pentru fiecare dispozitiv periferic. existenţa unui buffer proproiu în DP. • utilizarea sistemului Spooling pentru gestiunea perifericelor virtuale. executând fizic operaţia de intrare/ieşire. unităţii de control UCDP şi a dispozitivelor periferice propriu-zise. 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". • manipulatorul dispozitivelor de intrare/ieşire (input/output Device Handler) are rolul de a crea programul de canal.Sisteme de operare Gestriunea DP prin metode hardware: operarea independentă a dispozitivului periferic. • interfaţarea cererilor din partea proceselor. • planificatorul de intrare/ieşire este similar cu planificatorul proceselor în sensul că o operaţie de intrare/ieşire odată lansată în execuţie nu poate fi întreruptă înainte de execuţia ei completă. Această partajare impune: • protecţia împotriva acceselor neaturizate.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sisteme de operare 104 .

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

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

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

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

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

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

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

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

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

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

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

configurează în mod grafic serviciile de sistem: niveluri de execuţie.oferă o vedere arborescentă a proceselor din sistem. rularea/oprirea unor servicii etc.şterge un director (rmdir temporar). PATH. în regim securizat (variantă sigură a programului ftp). 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 Denumire pstree pwd python reboot redhatconfigprinter redhatconfig-users restore rm rmdir rpm rpmdrakeremove rpmdrake scp script sed serviceconf set sh shutdown sleep Funcieţie .desemnează un utilitar de management al pachetelor .reprezintă un instrument de management al utilizatorilor. .py). utilizat în special la instalarea/actualizarea pachetelor.rpm.Sisteme de operare Nr.crt. mai ales al celor de sistem: MAIL.realizează managementul variabilelor unei sesiuni de lucru. 116 .rpm. . .configurează imprimantele ataşate. . . oferit de Mandrake. . disponibil în Fedora/RedHat. .reprezintă interpretorul de Python. un limbaj puternic pentru realizarea diverselor sarcini de sistem şi nu nu-mai (python demontare.realizează managementul pachetelor soft. disponibil în Fedora/RedHat.afişează directorul curent.reprezintă interpretorul de comenzi „clasic" al sistemului (implicit este bash). .rpm (RedHat Package Manager).restaurează copiile de siguranţă create cu dump.are scop „adormirea" unui proces pentru o durată de timp (sleep 30 ). . .lansează un interpretor de comenzi astfel încât dialogul între utilizator şi calculator să fie stocat întrun fişier ' typescript '. PS1. .reprezintă un utilitar pentru copierea de fişiere aflate la distanţă. . . . oferit de Mandrake.şterge fişiere (rm -/temporar/* -Rf). TERM etc. .desemnează un utilitar de eliminare a unor pachete .reprezintă un editor în linie de comandă. .realizează oprirea sistemului. posibil cu restartarea lui (shutdown -h now). . .restartează sistemul de operare. .

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

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

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

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

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

Sign up to vote on this title
UsefulNot useful