Sa invatam MS-DOS
Crearea fisierelor BAT cu ajutorul MS-DOS
Test de Evaluare
Contact
 

Sistemul de operare MS-DOS

    
Exemple:c:\files\fisier1.txt numele fisierului este precedat de litera unitatii de disc si de calea de directoare\files\fisier1.txt se precizeaza o cale pe unitatea de disc curent a fisier1.txt fisierul este cautat in directorul curent al unitatii curented:fisier2.doc fisierul este cautat in directorul curent al unitatii d:, deoarece calea care urmeaza dupa litera de disc nu incepe cu simbolul "\", deci nu se porneste din radacina.
Cum realizeaza sistemul de operare gestiunea sistemelor de fisiere, altfel spus, cum este regasit pe disc un fisier despre care in prima instanta se cunoaste doar numele?
Pentru a raspunde la aceasta intrebare trebuie sa urmarim cum isi organizeaza sistemul de operare informatia pe disc. Mai intai se impun cateva consideratii sumare legate de organizarea fizica a discului. Intr-un mod destul de asemanator memoriei, fiecare octet de pe disc este identificat printr-o adresa.
Practic insa, discul este impartit in zone de date de dimensiuni mai mari, numite sectoare (care au in cele mai multe cazuri 512 octeti). Din motive tehnologice, cautarea unui octet pe disc consta din doua etape distincte:- cautarea sectorului din care face parte octetul dorit- cautarea octetului respectiv in sectorul din care face parte In general, prima etapa are o durata mult mai mare. Daca tinem cont ca, in orice
program, cel mai adesea se acceseaza in mod repetat datele invecinate, rezulta ca este mult mai rapid sa citim printr-o singura operatie un grup mai mare de octeti decat sa realizam cate o operatie de citire pentru fiecare dintre acei octeti (desigur, la fel se intampla si la scriere).Din acest motiv, citirile si crierile de date pe disc nu se fac la nivel de octet, ci la nivel de bloc de octeti. Dimensiunea unui asemenea bloc variaza in functie de mai multi factori. Primul sector al uni disc hard contine tabela de partitii. Asa cum am aratat anterior, un disc hard poate contine mai multe zone independente una de alta, numite partitii. Numarul maxim de paritii care pot fi create pe disc este 4 (desi poate fi marit prin anumite mijloace, care nu intereseaza aici), deci tabela are 4 elemente. Fiecare element poate contine informatii despre una dintre partitii, in principal adresele primului si ultimului sector din partitia respectiva (evident, pentru a nu complica prea mult structura, partitiile sunt zone continui de date pe disc). In plus, deoarece la pornirea calculatorului sistemul de operare este incarcat de obicei de pe disc, este marcata partitia care contine sistemul de operare, numita partitie activa. Deoarece dischetele nu pot avea decat o singura partitie, ele nu au tabela de partitii, iar structura unei dischete este identica cu a unei partitii de pe discul hard.Structura unei partitii este urmatoarea:
FAT 1 FAT 2
Sectorul de boot Tabelele de alocare a fisierelor Directorul radacina
Zona de date
Sectorul de boot (sau de autoincarcare) contine un mic program care realizeaza incarcarea in memorie a fisierelor care formeaza sistemul de operare. Acest sector nu este utilizat decat in cazul partitiei active.
Tabelele de alocare a fisierelor (FAT - File Allocation Table) memoreaza modul de ocupare cu informatie a zonei de date a partitiei si sunt identice nu numai in structura, ci si in continut. Sistemul DOS mentine doua copii tocmai pentru a putea restabili informatia in cazul cand una dintre tabele este alterata din diverse motive. Asa cum am vazut, informatia este transferata inspre si dinspre disc in blocuri. La randul sau, sistemul de operare stocheaza fisierele pe disc utilizand ca unitate elementara clusterul, care reprezinta o zona continua formata din unul sau mai multe sectoare, in functie de caracteristicile discului. In acest fel, un fisier va ocupa pe disc mai mult decat dimensiunea sa reala. De exemplu, pentru un disc
la care un cluster are 4 sectoare (deci 2048 octeti), un fisier de 9473 octeti va ocupa pe disc 5 clustere, adica 10240 octeti. Tabela de alocare a fisierelor contine, pentru fiecare cluster de pe partitie, o valoare
care indica una din urmatoarele situatii:
- clusterul nu este alocat (nu contine nici un fel de informatie utila)
- clusterul este defect (eroare fizica pe disc)
- cluster rezervat pentru uzul sistemului de operare
- clusterul contine date ale unui fisier; in acest caz, valoarea din FAT
fie va reprezenta numarul clusterului care contine urmatoarele date ale aceluiasi fisier, fie va marca (printr-o valoare speciala) faptul ca acest cluster contine finalul fisierului.Deci, pentru fiecare fisier exista un lant de clustere care contin datele respectivului fisier. Practic, pentru a putea accesa un fisier in intregime, trebuie cunoscuta numai adresa primului sau cluster si, utilizand informatiile din FAT, se pot determina si clusterele urmatoare. Acest mod de memorare elimina necesitatea ca fisierele sa ocupe zone continui de date pe disc, deoarece datele pot fi regasite si cand fisierul ocupa clustere aflate
in pozitii neinvecinate.
Urmatoarea zona o reprezinta directorul radacina. Acesta, ca si oricare alt director, este de fapt un tabel ale carui elemente, numite si intrari in director, contin informatii despre cate un fisier sau subdirector.
Aceste informatii sunt:
- numele fisierului
- numarul primului cluster ocupat de catre fisier
- dimensiunea fisierului
- data si ora cand a fost creat fisierul etc.
Pornind de la numele unui fisier, sistemul de operare il poate regasi pe disc. Sa luam ca exemplu urmatorul nume (complet) de fisier:
c:\programe\bc\bin\bc.exe
In primul rand se identifica unitatea de disc pe care se face cautarea, in cazul de fata unitatea c:. Daca unitatea de disc nu este precizata, sistemul cauta pe unitatea implicita. In continuare se observa ca, deoarece calea incepe cu simbolul "\", autarea va porni din directorul radacina. In caz contrar, cautarea ar porni din directorul curent al unitatii respective. Evident, este necesar sa fie cunoscuta pozitia pe disc a directorului din care incepe cautarea. Asa cum am aratat, directorul radacina incepe de la o adresa fixa pe disc, cunoscuta de sistem. In ceea ce priveste directorul curent, adresa de inceput a acestuia este retinuta in permanenta de catre sistemul de operare. Deci, in oricare din cazuri, sistemul stie de unde sa inceapa cautarea. Urmeaza inspectarea intrarilor din directorul radacina, pentru a gasi elementul corespunzator subdirectorului programe. Daca nu exista un subdirector cu acest nume in directorul radacina, cautarea este abandonata si sistemul de operare semnalizeaza esecul. Daca s-a gasit subdirectorul, se citeste adresa primului sau cluster si, de la acea adresa, se incepe inspectarea
intrarilor sale pentru a gasi subdirectorul bc. Cautarea continua in acest fel pana cand se intalneste un caz de eroare sau pana cand este gasit fisierul bc.exe. Din acest moment, folosind adresa primului cluster ocupat de fisier si informatiile din FAT, fisierul poate fi accesat dupa dorinta.
Comenzi uzuale ale sistemului MS-DOS
Ca orice sistem ajuns la o anumita vechime, MS-DOS a cunoscut o serie de imbunatatiri de-a lungul timpului, inclusiv adaugarea de noi instructiuni, practic fiecare versiune aducand ceva in plus in acest sens. Totusi, numai cateva dintre aceste instructiuni sunt folosite cu adevarat frecvent. Datorita importantei pe care o are sistemul de fisiere, majoritatea acestor comenzi uzuale se refera la manipularea structurii de directoare si a continutului fisierelor. Iata o scurta prezentare a acestor comenzi:
litera_disc:
Schimba unitatea de disc curenta. Noua unitate curenta este cea a carei litera este inclusa in comanda.
Exemplu:
c: noua unitate de disc curenta este c:
dir
Afiseaza numele si eventual alte informatii despre fisierele si subdirectoarele din directorul curent de pe unitatea curenta de disc sau dintr-un director precizat ca argument al comenzii. Daca se doreste precizarea mai multor nume de fisiere simultan, se pot utiliza in construirea numelor de fisiere
si directoare asa-numitii specificatori de fisier, care sunt simboluri cu semnificatii speciale. Astfel, simbolul "*" poate inlocui 0 sau mai multe caractere din numele unui fisier, iar simbolul "?" (mai rar utilizat) poate inlocui 0 sau 1 caractere dintr-un nume. De asemenea, se pot folosi doua denumiri speciale pentru directoare: "." reprezinta directorul curent al unitatii curente, iar ".." desemneaza directorul parinte al directorului curent (adica directorul care il contine). Se observa ca aceste nume speciale nu pot fi folosite in caile care pronesc din directorul radacina.

prev next