76 Zrozumieć Asembler
Co to jest DOS? Niektórzy ludzie patrzą na DOS jak na jakiegoś pana, inni patrzą na niego jak na sługę. W rzeczywistości DOS ma cechy obu z nich. To, co musisz odrzucić, to przekonanie, że DOS jest częścią komputera i przechowywany jest gdzieś w jego wnętrzu pomiędzy układami scalonymi. A właśnie nie! DOS jest bardzo specyficznym programem nazywanym systemem operacyjnym.
W części system operacyjny jest zbiorem procedur, które nie robią nic poza wzajemnym udostępnianiem poszczególnym częściom komputera innych z nich (napędów dysków, drukarek itd...). DOS jest jakby sługą przekazującym Twoje rozkazy napędom dyskietek itd... iMówisz mu, co ma zrobić i on to robi, ale robi na swój sposób. Koszty jego postępowania oczywiście ponosisz Ty.
Możesz oczywiście napisać program, który będzie kontrolował każdy drobny aspekt dowolnej operacji, np. odczytu z dysku, ale byłoby to bardziej kłopotliwe niż jest to warte. Nieważne, jak nieposłuszny jest sługa, ważne jest, by wykonywał każde swoje zadanie prawidłowo (oczywiście o ile stacje dysków się nie zepsują).
Inną (i znacznie bardziej interesującą) funkcją DOS jest uruchamianie programów. W tym właśnie momencie DOS staje się panem. To, co do Ciebie należy, to wpisanie nazwy programu w linii komend DOS-u. Gdy tylko to uczynisz, system operacyjny odnajduje ten program na dysku, ładuje go do odpowiedniego obszaru pamięci, ustawia wskaźnik instrukcji na miejsce, gdzie program się zaczyna i wreszcie każe jednostce centralnej wykonać ten program. Przez czas wykonywania programu DOS cierpliwie czeka na jego koniec i jest gotów przyjąć następne TWojc polecenia.
Jako programiści będziemy wykorzystywali DOS na dwa sposoby. Z jednej strony jako rodzaj narzędzia - taką armię sług czekających na rozkazy pochodzące z Twojego programu. Z drugiej strony DOS właśnie przejmie trud załadowania Twojego programu do pamięci, i usunięcia go z niej, kiedy skończy swe działanie.
Pliki DOS są fragmentami pamięci, przechowywanymi w specyficznym porządku na nośnikach magnetycznych, a nic wewnątrz ukła-
dów scalonych. W odróżnieniu od pamięci KAM, do danych przechowywanych na dysku mamy dostęp sekwencyjny.
Dysk (dyskietka, czy dysk twardy) jest okrągłym talerzem pokrytym materiałem mającym specjalne właściwości magnetyczne. W dyskietce talerz len wykonany z miękkiego tworzywa sztucznego, w dysku twardym natomiast, talerze wykonane są z aluminium. Wywołując różne zakłócenia magnetycznych właściwości takich talerzy, możemy na ich powierzchni przechowywać różne dane (podobnie jak na kasetach audio czy video). Tuż tuż nad obracającym dyskiem unosi się specjalny czujnik, głowica czytająco - zapisująca (ang. readjwrite head), która to właśnie odczytuje znajdujące się pod nią dane.
Na rysunku 31 przedstawiony jest uproszczony obraz dysku i głowicy. Powierzchnia dysku podzielona jest na koncentryczne pierścienie, zwane ścieżkami. Ścieżki podzielone są radialne na sektory. To właśnie sektory są najmniejszą ilością danych, która może być w jednej operacji odczytana czy zapisana. Sektory mają małe rozmiary np. 512 bajtów, tak więc każdy plik DOS umieszczany jest przeważnie w wielu sektorach.
Głowica czytająco/zapisująca przesuwana jest nad dyskiem magnetycznym przy pomocy specjalnego machanizmu napędzanego przez specjalny silnik. Mechanizm ten przemieszcza głowicę tak, aby znalazła się nad jedną ze ścieżek (nie pomiędzy). Na rysunku 3.1 głowica znajduje się nad ścieżką numer 2 (ścieżki, jak wszystko w kompute-
Układ napędu głowicy czytająco-zapisującej przesuwa ją do żądanej ścieżki
}
Następnie głowica czeka, aż znajdzie się pod nią właściwy sektor
Rysunek 31 • Pamięć dyskowa