Struktura talerzy dyskowych: Różnice pomiędzy wersjami

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
Nie podano opisu zmian
 
(Nie pokazano 5 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 1: Linia 1:
Talerze dyskowe podzielone są logicznie na sektory, z których każdy zawiera 256 słów 16-bitowych (512 bajtów). Najmniejszą adresowalną jednostką powierzchni dysku jest sektor. 16-bitowy adres pozwala na zaadresowanie 16M słów, czyli 32MB przestrzeni dyskowej. Dyski mogą być dzielone na obszary, co dla dysków o rozmiarze powyżej 32MB pozwala użyć całej ich pojemności (patrz: [[Tablica konfiguracji MERY-400]] i [[Tablica opisu dysków WINCHESTER]]).
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.


= Podstawowe zbiory =
Poniżej podano podstawowe zbiory użytkownika BOSS (w lewej kolumnie podane są adresy dyskowe początku i końca zbioru).
 
Talerze dyskowe obsługiwane przez system 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 zkorowidzó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.
 
Podstawowe zbiory użytkownika BOSS:


{| class="wikitable"
{| class="wikitable"
! Adres dyskowy !! Zbiór || Słowo !! Opis
! Adres dyskowy !! Obszar !! Zawartość
|-
| bgcolor="floralwhite" valign="top" rowspan="10" | '''0÷1''' ||  bgcolor="floralwhite" valign="top" rowspan="10" | '''LABEL''' || colspan="2" bgcolor="floralwhite" | Metryka dysku
|-
| 0 || nazwa obszaru dyskowego
|-
| 1 || '''A0''' - adres początku zbioru DICDIC
|-
| 2 || '''A1''' - adres początku zbioru FILDIC
|-
| 3 || '''A2''' - adres początku zbioru MAPA
|-
| 4 || '''A3''' - adres końca zbioru MAPA
|-
| 5 || '''AK''' - długość obszaru dyskowego (adres końca dysku)
|-
| 6, 7 || nazwa wpisana przez użytkownika (komentarz)
|-
|-
| 8÷10 || data inicjalizacji talerza dyskowego
| valign="top" | 0-1 || valign="top" | 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
|-
|-
| 11÷16 || data i godzina ostatniej aktualizacji czasu
| 1-0140 || SYSTEM || system operacyjny CROOK-5
|-
|-
| bgcolor="floralwhite" valign="top" | '''1÷0140''' || bgcolor="floralwhite" valign="top" | '''SYSTEM''' || colspan="2" bgcolor="floralwhite" | System operacyjny CROOK-5
| 0140-''A0'' || || obszar (na talerzu systemowym) używany do kopiowania obrazu pamięci systemu po upadku
|-
|-
| bgcolor="floralwhite" valign="top" | '''0140÷A0''' || bgcolor="floralwhite" valign="top" |  || colspan="2" bgcolor="floralwhite" | Obszar (na talerzu systemowym) używany do kopiowania obszaru pamięci systemu po upadku
| ''A0''-''A1'' || DICDIC || słownik skorowidzów i użytkowników mogących pracować na danym talerzu dyskowym
|-
|-
| bgcolor="floralwhite" valign="top" | '''A0÷A1''' || bgcolor="floralwhite" valign="top" | '''DICDIC''' || colspan="2" bgcolor="floralwhite" | 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
|-
|-
| bgcolor="floralwhite" valign="top" | '''A1÷A2''' || bgcolor="floralwhite" valign="top" | '''FILDIC''' || colspan="2" bgcolor="floralwhite" | 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.
|-
| bgcolor="floralwhite" valign="top" | '''A2÷A3''' || bgcolor="floralwhite" valign="top" | '''MAPA''' || colspan="2" bgcolor="floralwhite" | 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 żadnego zbioru dyskowego.
|-
| bgcolor="floralwhite" valign="top" | '''0÷AK''' || bgcolor="floralwhite" valign="top" | '''GLOBAL''' || colspan="2" bgcolor="floralwhite" | Zbiór obejmujący cały obszar dyskowy
|-
|-
| 0-''AK'' || GLOBAL || zbiór obejmujący cały obszar dyskowy.
|}
|}


Uwagi:
A0-A3 oraz AK oznaczają adresy dyskowe ustalane w czasieinicjalizacji talerza dyskowego.
* A0, A1, A2, A3 oraz AK oznaczają adresy dyskowe ustalane w czasie inicjalizacji talerza dyskowego.
 
* Zbiór SYSTEM nie jest tworzony na obszarze dyskowym dla którego zadeklarowano A0<0140.
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.
* 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.
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 =
= Słownik skorowidzów DICDIC =


Pierwszych osiem słów zbioru DICDIC 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.
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ą opis użytkowników i skorowidzów. Opisy uporządkowane są w pozycje takie, że:
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;
* 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;
* 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;
* 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.
* 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".
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".
Linia 67: Linia 56:
! Słowo !! Opis
! Słowo !! Opis
|-
|-
| 0, 1 || Nazwa skorowidza lub użytkownika
| 0, 1 || nazwa skorowidza lub użytkownika
|-
|-
| 2 || kod skorowidza
| 2 || kod skorowidza nadrzędnego
|-
|-
| 3 || liczba sektorów podległych
| 3 || liczba skorowidzów podległych
|-
|-
| 4 || hasło użytkownika
| 4 || hasło użytkownika
Linia 87: Linia 76:
|}
|}


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.
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 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:
{| class="wikitable"
! 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:
{| class="wikitable"
! 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:
{| class="wikitable"
! 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
|-
|}
{{source|title=SYSTEM OPERACYJNY CROOK-5 dla minikomputera MERA-400 (wersja 7)|author=Zbigniew Czerniak, Marek Nikodemski|date=Gdańsk 1988}}

Aktualna wersja na dzień 09:26, 18 sie 2013

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