Struktura talerzy dyskowych

Z MERA 400 wiki
Skocz do: nawigacja, szukaj

Talerze dyskowe obsługiwane przez sytem mają z góry narzuconą strukturę. Odpowiednie ich uformowanie można otrzymać w wyniku wykonania zlecenia CFA programu BOSS. Na nowo kreowanym talerzu utworzonych jest wstępnie dwóch użytkowników: LIBRAR i BOSS. Użytkownik LIBRAR jest pniem drzewa skorowidzów. U niego też powinny znajdować się wszystkie zbiory zawierające programy biblioteczne. Drugi z nich, BOSS ma pod swoją kontrolą zbiory zawierające słowniki i metryki dysków oraz zbiór zawierający system operacyjny. Zbiory te mają na talerzu dyskowym ustalone położenie i w związku z tym nie mogą być rozszerzane ani przenoszone w inne miejsce.

Poniżej podano podstawowe zbiory użytkownika BOSS (w lewej kolumnie podane są adresy dyskowe początku i końca zbioru).

Adres dyskowy Obszar Zawartość
0-1 LABEL Metryka dysku. W kolejnych słowach znajdują się następujące informacje (wszystkie adresy są adresami dyskowymi):
  • 0 - nazwa obszaru dyskowego;
  • 1 - adres początku zbioru DICDIC (A0)
  • 2 - adres początku zbioru FILDIC (A1)
  • 3 - adres początku zbioru MAPA (A2)
  • 4 - adres końca zbioru MAPA (A3)
  • 5 - długość obszaru dyskowego (AK) (adres końca dysku)
  • 6-7 - nazwa wpisana przez użytkownika (komentarz)
  • 8-10 - data inicjalizacji talerza dyskowego
  • 11-16 - data i godzina ostatniej aktualizacji czasu
1-0140 SYSTEM system operacyjny CROOK-5
0140-A0 obszar (na talerzu systemowym) używany do kopiowania obrazu pamięci systemu po upadku
A0-A1 DICDIC słownik skorowidzów i użytkowników mogących pracować na danym talerzu dyskowym
A1-A2 FILDIC słownik zbiorów przechowywanych na obszarze dyskowym
A2-A3 MAPA mapa zajętości dysku. Mapa utworzona jest w ten sposób, że każdemu sektorowi dyskowemu odpowiada jeden bit mapy. Bit ustawiony na 0 oznacza, że odpowiadający mu sektor nie wchodzi w skład żadngo zbioru dyskowego.
0-AK GLOBAL zbiór obejmujący cały obszar dyskowy.

A0-A3 oraz AK oznaczają adresy dyskowe ustalane w czasieinicjalizacji talerza dyskowego.

Zbiór SYSTEM nie jest tworzony na obszarze dyskowym dla którego zadeklarowano A0<0140, ponadto jeśli A0=0 to nie jest tworzony zbiór LABEL.

Ze względu na przyjęty w systemie sposób kodowania położenia etykiety zbioru wymagane jest, aby różnica A2-A1 była mniejsza od 192. Daje to możliwość zarezerwowania miejsca w słownikach na utworzenie etykiet ponad 4000 zbiorów.

Słownik skorowidzów DICDIC

Pierwszych osiem słów zbioru zawiera powtórzenie metryki dysku. Niezgodność tych ośmiu słów z metryką dysku w chwili startu systemu może być powodem uznania talerza jako obcy. Gdy A0=0 wtedy początek zbioru DICDIC spełnia rolę metryki talerza.

Następne słowa zbioru zawierają opisy użytkowników i skorowidzów. Opisy uporządkowane są w pozycje takie, że:

  • każda pozycja zajmuje 12 słów, zawiera opis jednego skorowidza i rozmieszczona jest na trzech sektorach, po 4 słowa na każdym;
  • cztery kolejne słowa jednego sektora wchodzą w skład jednej pozycji;
  • dalsze słowa pozycji umieszczone są na następnych dwóch sektorach. Początek czterosłowowego przedłużenia pozycji jest w takim samym położeniu względem początku sektora, co początek pozycji;
  • po zapełnieniu trzech sektorów początek następnej pozycji znajduje się na następnym wolnym sektorze tzn. o trzy sektory dalej.

Dla łatwiejszego zrozumienia budowy słownika można się przyjrzeć wydrukowi otrzymanemu przy realizacji zlecenia LUA DIR programu BOSS. W lewej kolumnie wyprowadzany jest adres etykiety skorowidza. Jest to adres początku pozycji opisującej skorowidz (dla pierwszego skorowidza wynosi on 010, gdyż osiem pierwszych słów zajmuje kopia metryki dysku - patrz wyżej). Kolejne cztery słowa należą do tej samej pozycji. Dalsze dwie części rozpoczynają się od adresów powiększonych odpowiednio o 0400 i 01000. Po zapełnieniu opisami pierwszego (i dwóch następnych) sektora (ostatni adres 0374) następna pozycja rozpoczyna się od adresu 01400.

Liczba 0 występująca w pierwszym słowie pozycji oznacza pozycję pustą, natomiast 1 - koniec słownika. Brak pozycji "koniec słownika" sygnalizowany jest alarmem "ERROR IN DIRECTORY".

Poszczególne słowa pozycji opisu skorowidza zawierają:

Słowo Opis
0, 1 nazwa skorowidza lub użytkownika
2 kod skorowidza nadrzędnego
3 liczba skorowidzów podległych
4 hasło użytkownika
5 budżet do utrwalania zbiorów
6 kod skorowidza nadrzędnego
7 uprawnienia użytkownika
8, 9 nazwa programu obsługi (zlecenie OSL)
10, 11 nazwa pierwszego zlecenia (drugi parametr zlecenia OSL

Ponadto bit 1=1 w słowie siódmym oznacza użytkownika, bit 0=1 - użytkownika czasowo zawieszonego (zlecenie CLU). Występujący w opisie kod użytkownika równy jest adresowi etykiety pomnożonemu przez 4.

Słownik zbiorów FILDIC

Słownik zbiorów jest zbiorem zawierającym etykiety zbiorów danego obszaru. W celu zapewnienia szybkiego przeszukiwania słownika zastosowano do poszukiwania według klucza (nazwy zbioru) kodowanie mieszające. Wartością funkcji mieszającej jest kilka ostatnich bitów sumy wszystkich czterech byte sześcioznakowej nazwy w kodzie R40. Wartość funkcji mieszającej określa numer sektora (względem początku słownika), na którym powinna znależć się etykieta zbioru.

Poszczególne sektory zawierają opisy zbiorów (po dwanaście słów na zbiór). Cztery ostatnie słowa w każdym sektorze związane są z funkcją mieszającą. W kolejnych słowach opisu zbioru znajdują się następujące informacje:

Słowo Opis
0, 1 nazwa zbioru
2 kod skorowidza do którego zbiór należy
3 typ zbioru
4 parametr 1 zbioru
5 parametr 2 zbioru
6 słowo zawierające kod ochrony, atrybuty i parametr MEM
7 kod użytkownika
8 słowo rezerwowe
9 dyskowy adres początku zbioru
10 dyskowy adres końca zbioru
11 długość informacji (w sektorach) zapisanej do zbioru

Kod użytkownika i skorowidza jest interpretowany tak samo jak w słowniku DICDIC (tzn. jest to względny adres etykiety w słowniku skorowidzów pomnożony przez cztery).

Słowo szóste zawiera informacje o zezwoleniach dostępu, atrybutach i parametrze MEM:

Bity Opis
0-5 zawierają informację o zezwoleniach na dostęp do zbioru
6-11 zawierają atrybut zbioru
12-15 określają rozmiar bloku pamięci (w jednostkach po 4 Ksłowa) przydzielanej programowi wywoływanemu ze zbioru

Słowo siódme zawiera kod użytkownika, który utworzył zbiór. Długość zbioru jest po jego utrwaleniu odliczana od budżetu użytkownika (od budżetu użytkownika odejmowane są długości zbiorów przez niego utworzonych - mogą być one umieszczone w różnych skorowidzach).

Cztery najmłodsze bity tego słowa określają pewne dodatkowe cechy zbioru. I tak:

Bit Opis
12 zbiór uznany za błędny - ustawiany przez zlecenie GOF
13 zbiór rezydujący (ustawiany przez zlecenie RES programu MTC)
14 zbiór, którego aktualna kopia jest na taśmie magnetycznej (ustawiany przez zlecenie WR programu MTC)
15 zbiór, który zostanie skopiowany na taśmę magnetyczną i usunięty w wyniku działania zlecenia WO programu MTC

Źródło: SYSTEM OPERACYJNY CROOK-5 dla minikomputera MERA-400 (wersja 7), Zbigniew Czerniak, Marek Nikodemski, Gdańsk 1988