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

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 70: Linia 70:
| JLOLEN || 54 || 1 || Dlugosc ladowania
| JLOLEN || 54 || 1 || Dlugosc ladowania
|}
|}
Struktura drzewa procesów opisana jest w następujący sposób:
* W polu PAPR znajduje się wskaźnik na kontekst procesu nadrzędnego. Dla procesu INI jest to -1.
* W polu CHLS znajduje się wskaźnik na pierwszy na liście proces potomny
** Pierwszy proces potomny wskazuje na kolejne procesy potomne polem NXCH
** Każdy proces potomny w polu CHLS wskazuje na początek własnej listy procesów potomnych
Oprócz tego, pole NEXT służy to zbudowania listy procesów w danej kolejce.


= Listy procesów =
= Listy procesów =

Wersja z 19:04, 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, procesy lokowane są od 0x3c0c w stronę malejących adresów). 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

Struktura drzewa procesów opisana jest w następujący sposób:

  • W polu PAPR znajduje się wskaźnik na kontekst procesu nadrzędnego. Dla procesu INI jest to -1.
  • W polu CHLS znajduje się wskaźnik na pierwszy na liście proces potomny
    • Pierwszy proces potomny wskazuje na kolejne procesy potomne polem NXCH
    • Każdy proces potomny w polu CHLS wskazuje na początek własnej listy procesów potomnych

Oprócz tego, pole NEXT służy to zbudowania listy procesów w danej kolejce.

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-bitowe słowo stanu procesu składa się z trzech części:

  • bity 0-8 określają stan procesu
  • bity 9-11 - ??
  • bity 12-15 opisują przyczynę wejścia procesu w dany stan
Bity 0 1 2 3 4 5 6 7 8 9-11 12-15
Zawartość HAST HAQJ HAJW HAQL HABA ALRS HADV HCAM
NCOW
?? Nr kolejki

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?