O dyskach - wszystko, a nawet trochę więcej...

Pamięć na dyskach magnetycznych od początku miała trzy wady: za mała pojemność, za długi czas dostępu i za wysoka cena. Dziś, gdy cena gigabajta oscyluje wokół jednego złotego, trudno już podkreślać tę trzecią, pozostałe dwie, jednak, ciągle mają się dobrze.

Z wadami tymi próbowano radzić sobie na różne sposoby, zgodnym wysiłkiem konstruktorów i programistów. Najgorzej było z samymi głowicami do pisania i czytania, bo ciężki ich mechanizm trzeba było przemieszczać z lotnością piórka i jeszcze trafiać w ścieżkę zapisu. Już konstruktorzy wpadli na to, że dysk działa szybciej, gdy zespól głowic się nie rusza, a tylko elektronicznie włącza się kolejne głowice. Tak powstała koncepcja cylindra, czyli zestawu ścieżek leżących jedna nad drugą na poszczególnych talerzach dysku.

Zapisywane na ścieżkach sektory danych poprzedzono osobnymi sektorami kluczy, co - już na poziomie samego kontrolera dysków - umożliwiło odnajdywanie sektorów poprzedzonych określonym kluczem. I to do woli - na pojedynczej ścieżce, albo od razu w całym cylindrze.

Gdy jeszcze (sięgając już po środki programistyczne), dodano w programach tabele największych w każdym cylindrze kluczy, trafianie we właściwe miejsce na dysku stało się zajęciem niemal banalnym. Pewnym problemem pozostawało tylko dopisywanie danych z nowymi kluczami, bo na to trzeba było zostawiać rezerwy (obszary przepełnień) na ścieżkach i w cylindrach. Tu zaś nierównomierny rozkład nowych zapisów wyczerpywał to miejsce i powodował konieczność okresowych reorganizacji przez przepisywanie całości w nowe miejsce.

Opisana metoda dostępu, nazwana indeksowo-sekwencyjną, angażując liczne czynności sprzętowe i programowe, nie należała do szczególnie szybkich w działaniu. Z tej przyczyny niektórzy twórcy programów podejmowali próby organizowania wszystkiego we własnym zakresie, co było pracochłonne, ale poprawnie przeprowadzone dawało, spore nawet, przyspieszenia.

Były tu dwie szkoły: pierwsza stosowała względną, umowną numerację sektorów w ramach pliku, druga - szybsza w dostępie - odwoływała się do konkretnych (zwanych fizycznymi) adresów sektorów. Nic jednak za darmo: pierwsza pozwalała przenosić pliki dowolnie między dyskami o różnej geometrii, druga przywiązywała się niewolniczo do określonego typu i miejsca na dysku.

Gdy w latach 80-tych pojawiły się małe dyski do komputerów osobistych, działały ono stosunkowo wolno, bo... ich elektronika nie nadążała za wirowaniem talerzy i mechaniką głowic. Nadal jednak obowiązywała koncepcja ścieżek i cylindrów, która z czasem stała się "wielkim oszustwem kontrolerów", które elektronicznie mnożyły talerze dysku.

Niska cena oraz rosnące pojemności i szybkości powodowały, że nikt nie zawracał sobie dłużej głowy geometrią dysków w celach wydajnościowych, a konstruktorzy macierzy dyskowych szastali całymi dyskami w celu zapewnienia nadmiarowości pozwalającej odzyskiwać pozornie utracone dane.

Aż tu, dość nagle, skończyły się możliwości ekstensywnego rozwoju i co nam zostało? Ano, przypomnieliśmy sobie, że można przecież indeksować cylindry. Można również - czego kiedyś nie robiono - zagęszczać zapisy proporcjonalnie do długości ścieżek, uzyskując w ten sposób dodatkowe pojemności. Można też (wczesne lata 80-te!) ponownie nauczyć kontrolery przeszukiwania dysków i tylko patrzeć, jak wrócą multi-głowice, obejmujące naraz kilka cylindrów.

Kolejny więc raz wracamy do rozwiązań, które kiedyś z nonszalancją odrzuciliśmy. Jest jednak między nimi jedna drobna różnica: jednostką transferu między dyskiem a pamięcią komputera bywa obecnie 8 MB. Tyle, ile pojemności pod koniec lat 60-tych miał cały dysk.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200