Systemu plików CP/M

CP/M — informacje ogólne


Plik w systemie CP/M opisany jest przez blok kontrolny (FCB). Bloki FCB wszystkich plików znajdują się w katalogu, przy czym jest tylko jeden katalog dla danej partycji. W systemie CP/M nie ma więc hierarchicznej struktury katalogów. Implementacyjnie struktura ta jest jednopoziomowa, a logicznie dwupoziomowa, gdyż atrybutem każdego pliku jest kod użytkownika. Każdy użytkownik widzi więc tylko swoje pliki. Rozróżnienie plików poprzez kod użytkownika umożliwia zatem nadawanie im tych samych nazw.

System plików CP/M projektowany był na potrzeby obsługi dyskietek o stosunkowo niewielkich rozmiarach (180 KB). Dane (zawartość pliku) znajdują się w 128-bajtowych sektorach, jednostką alokacji jest jednak blok o rozmiarze 1KB (8 sektorów). Do zarządzania wolną przestrzenią używany jest wektor bitowy, przechowywany w pamięci, zajmujący 23 bajty, wyliczany każdorazowo po restarcie lub zmianie nośnika.

  • Katalog zawiera 32-bajtowe wpisy, tzw. bloki kontrolne plików (FCB). zawierające wartości atrybutów.
  • W katalogu znajdują się wpisy wszystkich plików w systemie.
  • Dane (zawartość pliku) znajdują się w 128-bajtowych sektorach, alokacji podlegają jednak bloki o rozmiarach 1KB
  • Z każdym wpisem związany jest jednobajtowy kod użytkownika.
  • Zarządzanie wolną przestrzenią przy użyciu wektora bitowego, przechowywanego w pamięci.

CP/M — format partycji


Katalog oraz obszar danych mają w strukturze partycji ustalony rozmiar. Oznacza to, że maksymalna liczba plików oraz ich łączny rozmiar definiowane są na etapie formatowania partycji.

slajd 6

CP/M — struktura wpisu katalogowego


Jak wynika ze struktury wpisu katalogowego, nazwa pliku składa się z 8 znaków, oraz 3 znaków rozszerzenia, kojarzonych z typem pliku. Jeden taki wpis identyfikuje 16 jednostek alokacji, czyli maksymalnie 16 KB. Rzeczywisty rozmiar obszaru danych, objętych wpisem, podany jest z dokładnością do 128 bajtów (liczba sektorów). Jeśli rozmiar pliku nie jest wielokrotnością 128 bajtów, wymagany jest jakiś specjalny bajt w zawartości pliku, sygnalizujący jego koniec.

slajd 7

CP/M — reprezentacja dużych plików


W przypadku plików większych niż 16 KB konieczne jest opisanie ich za pomocą większej liczby jednostek katalogowych. Dla tego samego pliku istnieje zatem kilka wpisów, w których jest ten sam kod użytkownika oraz nazwa wraz z rozszerzeniem. Każdy wpis identyfikuje inny zakres bloków z danymi, a właściwa kolejność wpisów określona jest przez wartość pola extent.

Koncepcje przydziału kilku pozycji do opisu jednego pliku wykorzystano również na potrzeby przechowywania długich nazw plików w systemach MS Windows 95/98 oraz na potrzeby pomieszczenia dużej liczby atrybutów w systemie plików NTFS.

slajd8