Struktury danych CROOK-5: Różnice pomiędzy wersjami

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 1: Linia 1:
= Opis procesu =
= Opis procesu =


CROOK-5, wersja 8 dla maszyny nieprzerobionej
Proces pierwotny INI tworzony jest w trakcie startu systemu, a adres jego kontekstu przechowywany jest pod adresem 0x2919 (ADINI - ADdres INI). Dla jądra nieprzerobionego w wersji 8 jest to 0x3c0c. Kolejne tworzone procesy umieszczane są w tablicy procesów na pozycjach będących wielokrotnościami -55 (rozmiar kontekstu procesu). Adres, pod którym należy umieścić kolejny, nowo tworzony proces, przechowywany jest pod adresem 0x291b (FREES - Free Slot).
 
Pełna struktura opisująca kontekst procesu CROOK-a 5 w wersji 8 dla maszyny nieprzerobionej wygląda następująco:


{| class="wikitable"
{| class="wikitable"
Linia 67: Linia 69:
|-
|-
| JLOLEN || 54 || 1 || Dlugosc ladowania
| JLOLEN || 54 || 1 || Dlugosc ladowania
|}
= Listy procesów =
System utrzymuje 16 głównych list procesów. Proces może znajdować się w jednej z nich, w zależności od tego, na jaki zasób bądź zdarzenie oczekuje. Początki list zajmują 16 (NOQ - Number Of Queues) kolejnych słów od adresu 0x2846 (QJW - Queue of Jobs Waiting):
{| class="wikitable"
|-
! Pozycja !! Nazwa !! Opis
|-
| 0 || ? || ?
|-
| 1 || ? || ?
|-
| 2 || ? || ?
|-
| 3 || WTRAM || Kolejka oczekujących po bufor RAM
|-
| 4 || WTTM || Kolejka oczekujacych na na czas procesora (gotowe do wykonania)
|-
| 5 || WTBU || czeka na wolny bufor
|-
| 6 || WTCOR || czeka na pamięć
|-
| 12 || WTCAT || czeka na wejście do obszaru działania na katalogu
|-
| 13 || WTSI || ??
|-
| 14 || WTSTR || czeka na strumień?
|-
| 15 || WTIEC || czeka na IEC?
|}
|}



Wersja z 18:17, 30 wrz 2013

Opis procesu

Proces pierwotny INI tworzony jest w trakcie startu systemu, a adres jego kontekstu przechowywany jest pod adresem 0x2919 (ADINI - ADdres INI). Dla jądra nieprzerobionego w wersji 8 jest to 0x3c0c. Kolejne tworzone procesy umieszczane są w tablicy procesów na pozycjach będących wielokrotnościami -55 (rozmiar kontekstu procesu). Adres, pod którym należy umieścić kolejny, nowo tworzony proces, przechowywany jest pod adresem 0x291b (FREES - Free Slot).

Pełna struktura opisująca kontekst procesu CROOK-a 5 w wersji 8 dla maszyny nieprzerobionej wygląda następująco:

Nazwa Indeks Rozmiar Opis
ICE 0 3 Wektor procesu: IC, R0, SR
REJE 3 7 Rejestry R1-R7
NEXT 10 1 Łącznik główny listy procesów
NXCH 11 1 Łącznik listy procesów potomnych
STATE 12 1 Stan procesu
PIOR 13 1 Priorytet procesu
PRNU 14 1 Numer procesu
PAPR 15 1 Proces nadrzędny
CHLS 16 1 Początek listy procesów potomnych
ALLS 17 1
CHTIM 18 1
DEVI 19 1 Aktualne wejście
DEVO 20 1 Aktualne wyjście
USAL 21 1
ROB 22 8 Obszar roboczy
STRLI 30 1 Początek listy strumieni?
BUFLI 31 1 Początek listy buforów?
LARUS 32 1 TABLICA KODOW DOSTEPU
LISMEM 33 1 POCZ LISTY BLOKOW PAO
CORSIZ 34 1 LICZBA BLOKOW PO 4K
NXTMEM 35 1 LISTA PROCESOW Z PAO DO ODEBRANIA
BAR 36 1
SZABME 37 1 SZABLON PRZYDZIALU PAO
BLPASC 38 1 blokada PASC
IC 39 1 IC, R0, SR
REJ 42 3 Rejestry R1-R7
JDAD 49 7 ADRES POCZ ZRODLA LADOWANIA
JPAD 50 1 ADRES POCZ PRG
JACN 51 1 POZYCJA PRG W FILDIC
JNAME 52 2 NAZWA PROGRAMU
JLOLEN 54 1 Dlugosc ladowania

Listy procesów

System utrzymuje 16 głównych list procesów. Proces może znajdować się w jednej z nich, w zależności od tego, na jaki zasób bądź zdarzenie oczekuje. Początki list zajmują 16 (NOQ - Number Of Queues) kolejnych słów od adresu 0x2846 (QJW - Queue of Jobs Waiting):

Pozycja Nazwa Opis
0 ? ?
1 ? ?
2 ? ?
3 WTRAM Kolejka oczekujących po bufor RAM
4 WTTM Kolejka oczekujacych na na czas procesora (gotowe do wykonania)
5 WTBU czeka na wolny bufor
6 WTCOR czeka na pamięć
12 WTCAT czeka na wejście do obszaru działania na katalogu
13 WTSI ??
14 WTSTR czeka na strumień?
15 WTIEC czeka na IEC?

Stan procesu

16-bit słowo stanu procesu składa się z dwóch części:

  • bity 0-8 określają stan procesu
  • bity 9-15 opisują przyczynę wejścia procesu w dany stan
Bit 0 1 2 3 4 5 6 7 8 9-15
Stan HAST HAQJ HAJW HAQL HABA ALRS HADV HCAM
NCOW
Przyczyna

Znaczenie stanów:

  • HAST - zatrzymany
  • HAQJ - czeka w kolejce
  • HAJW - czeka na inny proces?
  • HAQL
  • HABA
  • ALRS
  • HADV - czeka na urządzenie znakowe
  • HCAM - czeka na CAMAC
  • NCOW
  • HAPR HAQL+075
  • HATO HAQL+076
  • HATR HAQL+041 - czeka na zakończenie?
  • HADE 040 - czeka na usunięcie?

Przyczyna zatrzymania jest indeksem w tablicy list procesów oczekujących:

Nazwa Indeks Opis
???? 0 ?
WTTM 4 (=NMECH) czeka na czas
WTBU 5 czeka na wolny bufor
WTCOR 6 czeka na pamięć
WTCAT 12 (=WTCOR+NOCAM+2) czeka na wejście do obszaru działania na katalogu
WTSI 13
WTSTR 14 czeka na strumień?
WTIEC 15 czeka na IEC?
JWPI 72 (=MEMCH+NMECH+NOMT)
JWIEC 73
NOQ 16