OS-9 systemu OS 9 moduł kernel Podstawowe funkcje j adra systemu: zarz adzanie zasobami zarz adzanie prac a procesów zarz adzanie obsług a zdarzeń specjalnych i przerwań Realizowane i koordynowane usługi: usługi systemowe (np. F$Link): zarz adzanie pami eci a inicjalizacja systemu tworzenie procesów i zarz adzanie ich prac a obsługa zdarzeń specjalnych i przerwań usługi wejściowo wyjściowe (np. I$Open - odczyt, zapis,...) MW-ZPCiR-ICT-PWr 1
OS-9 Tryby pracy procesora Tryb użytkownika (user state) normalny tryb wykonywania kodu realizujacego proces: ograniczony dost ep do zasobów sprz etowych, zabezpieczenie przed uszkodzeniem danych systemowych (ochrona pami eci), łatwość przenoszenia aplikacji (niezależność od sprz etu). Tryb systemowy (system state) obsługa usług systemowych, przerwań, zasobów sprz etowych: pełny dost ep do zasobów (maskowanie przerwań, brak ochrony pami eci, uprzywilejowane rozkazy procesora), dost epność wyróżnionych usług systemowych, możliwość rekonfiguracji systemu. MW-ZPCiR-ICT-PWr 2
Metody instalowania procedur trybu SYSTEM (dost epne tylko dla użytkowników z grupy 0 ) 1. Przez umieszczenie modułu OS9P2 w obrazie ładowanym przy starcie, lub w ROM. Przy restarcie systemu, kernel uruchamia ten moduł od M$Exec, co pozwala zainstalować nowe procedury poprzez usług e F$SSvc. 2. Przez system wejścia wyjścia (za pomoc a własnego, pozornego driver-a, z którego można wykorzystać np. I$GetStt. 3. Przez moduł obsługi przerwań programowych TRAP #1..14 (Trap Handler). 4. Przez ustawienie bitu supervisor w M$Attr modułu programowego, który jest własności a grupy 0. MW-ZPCiR-ICT-PWr 3
Wybrane usługi trybu USER moduły pami eć procesy inne F$CRC F$AllBit F$Alarm F$Icpt F$DatMod F$CpyMem F$Chain F$RTE F$GModDir F$DelBit F$Event F$SetSys F$link F$Mem F$Fork F$TLink F$Load F$SchBit F$GPrDBT F$CmpNam F$SetCRC F$SRqCMem F$GPrDsc F$PrsNam F$UnLink F$SRqMem F$ID F$PErr F$UnLoad F$SRtMem F$Send F$Gregor F$Trans F$Sigmask F$Julian F$Sleep F$STime F$SPrior F$Time F$SSpol F$SUser F$UAcct F$Wait MW-ZPCiR-ICT-PWr 4
Wybrane usługi trybu SYSTEM moduły pami eć procesy inne F$ VModul F$Move F$Alarm F$IRQ F$AllPD F$SSvc F$AllPrc F$AProc F$DelPrc F$FindPD F$IOQn F$NProc F$Panic F$RetPD MW-ZPCiR-ICT-PWr 5
Dost ep do usług systemu OS 9 W asemblerze: przez makro: OS9 <kod> realizowane jako: TRAP #0 ;przerwanie programowe DC.W F$Link ;kod uslugi d0.w = kod typu/j ezyka (0 = dowolny) (a0) = wskaźnik nazwy modułu Wyniki poprawne: d0.w = kod typu/j ezyka d1.w = atrybuty/wersja modułu (a1) = adres punktu startowego modułu (a2) = adres pocz atku nagłówka modułu Wyniki przy bł edzie: cc = ustawiony bit Carry d1.w = kod bł edu W j ezyku C: przez funkcje biblioteczne: #include <module.h> mh_com *modlink(char *modname, int typelang); MW-ZPCiR-ICT-PWr 6
OS-9 (a6)! #"$ %#& (' )"$ * " * ' & +,"$ -.#/.10325467!89 : * " * &!;: *=< ' 1+>"$ @?A"3: BDC3BDEGFIH POQ?R' * " S?T)'POL:U? VWX)Y[Z]\)^L_3` + *)a b3 a OU #"$ VWX)Y[Z]\)^L_3` a 3Oc: *=< : d efgqhi.7j89 kmlonmprqts kmlontuwvyx zwzwz {wl} ~ yq kmlonmprqts kmlontuwvyx zwzwz {wl} ~ yq : * " * &!;: *=< ' 1+>"$ @?A"3: JKBLFNM POQ?R' * " S?T)'POL:U? VWX)Y[Z]\)^L_3` + *)a b3 a OU #"$ VWX)Y[Z]\)^L_3` a 3Oc: *=< : d efgqhi.7j89 kmlonmprqts kmlontuwvyx zwzwz {wl} ~ yq kmlonmprqts kmlontuwvyx zwzwz {wl} ~ yq MW-ZPCiR-ICT-PWr 7
Instalowanie usług systemowych OS9 F$SSvc Parametry: (a1) = adres tablicy inicjalizacji usługi (a3) = globalny wskaznik danych dla usługi Wynik bł edny: cc = ustawiony bit Carry d1.w = kod bł edu (errno) Struktura tablicy: SvcTbl dc.w F$Service ;kod uslugi (U+S) dc.w Routine-*-2 ;adres procedury dc.w F$Service+SysTrap ;kod uslugi (tylko S) dc.w SysRoutn-*-2 ;adres procedury... dc.w -1 ;koniec tablicy MW-ZPCiR-ICT-PWr 8
Zasady konstrukcji procedury usługowej Interpretacja rejestrów na wejściu: (a3) = wskaznik danych dla usługi (ustawiony przez F$SSvc) (a4) = adres deskryptora bież acego procesu (a5) = adres obrazu rejestrów użytkownika (a6) = adres systemowych danych globalnych Wyjście poprawne: cc = ustawiony bit Carry Wyjście przy bł edzie: cc = zerowy bit Carry d1.w = kod bł edu (errno) MW-ZPCiR-ICT-PWr 9
OS-9 Pamieć Zarz adzanie pami eci a w OS 9 uwzgl ednienie konfiguracji pami eci: pami eć kolorowana (colored memory) atrybuty obszarów pami eci priorytety obszarów pami eci dynamiczne przydzielanie ( srqmem(), F$SRqMem) i zwalnianie ( srtmem(), F$SRtMem) pami eci - algorytm First Fit z uwzgl ednieniem priorytetu fizyczne adresowanie pami eci w trybach rejestrowych (brak pami eci wirtualnej i mechanizmu scalania obszarów) możliwość ochrony pami eci przed dost epem z innego procesu (ssm - System Security Module) MW-ZPCiR-ICT-PWr 10
Pamieć Š Œ Ž Œ! # Ž( ) # Š 1 > š #œ1 1 ž Ÿ 3 j Š Œ Ž Œ T Ž( P Ž L T [ tª «R PŠ L! tª Ž( P Ž ƒ ) U ˆ»U»U» ¼ 1ƒQ Q ¼ ±²U² ¼ 1ƒ ½U =ˆ ¼ 1ƒ¾²½U =ˆ»U»U»»U»U» ¼ 1ƒQ Q ¼ ¼ 1ƒ ¼ ¼ 1ƒ ½U =ˆ ¼ 1ƒ¾²½U =ˆ»U»U» =ˆƒQ Q =ˆ ±²U² =ˆƒ ³Uµ =ˆƒQ Q =ˆ =ˆƒ Ļ =ˆ =ˆƒ ³Uµ»U»U» ±²U² ¼ 1ƒ ¼ ¼ 1ƒ ½U =ˆ ¼ 1ƒ¾²½U =ˆ»U»U» ¹º¹º¹ ±²U² =ˆƒ Ļ =ˆ =ˆƒ ³Uµ MW-ZPCiR-ICT-PWr 11
Pamieć Deskryptor obszaru pami eci kolorowanej adr. skrót znaczenie 00 CN Start Adres pocz atku obszaru 04 CN End Adres końca obszaru + 1 08 CN NxtCN Wskaźnik na nast epny deskryptor 0C CN PrvCN Wskaźnik na poprzedni deskryptor 10 CN FstFM Adres pierwszego fragmentu wolnej pami eci w obszarze 14 CN LstFM Adres ostatniego fragmentu wolnej pami eci w obszarze 18 Zarezerwowane 1C CN TStart Adres pocz atku obszaru po translacji 20 CN TotFre Ł aczna ilość wolnej pami eci w obszarze 24 CN Attr Atrybuty obszaru 26 CN Color Kod koloru obszaru 28 CN Prio Priorytet obszaru MW-ZPCiR-ICT-PWr 12
Pamieć Atrybuty obszaru (sysglob.a) * memory type access bit definitions B_USER: equ 1<<0 memory allocatable by user procs B_PARITY: equ 1<<1 parity memory; must be initialized B_ROM: equ 1<<2 read-only memory; searched for modu B_NVRAM: equ 1<<3 non-volatile RAM; searched for modu B_SHARE: equ 1<<4 shared memory Kody koloru obszaru (sysglob.a) * Memory color definitions SYSRAM: equ $01 generic system ram VIDEO1: equ $80 CD-I video bank 1 VIDEO2: equ $81 CD-I video bank 2 Nagłówek listy fragmentów wolnej pami eci adr. skrót znaczenie 00 FM NxtFM Wskaźnik na nast epny fragment wolnej pami eci w obszarze 04 FM PrvFM Wskaźnik na poprzedni fragment wolnej pami eci w obszarze 08 FM Size Wielkość fragmentu (w bajtach) MW-ZPCiR-ICT-PWr 13
Pamieć Algorytm przydzielania pami eci 1. poszukiwanie w tablicy obszaru o dostatecznym rozmiarze (CN TotFre) 2. poszukiwanie w liście wolnych fragmentów tego obszaru (od CN FstFM do CN LstFM) fragmentu o dostatecznym rozmiarze (FM Size) 3. przydzielenie końcowej cz eści fragmentu i zmniejszenie FM Size (jeśli FM Size = 0, to usuni ecie elementu listy) Uwaga: W przypadku ż adania przydziału pami eci o dowolnym kolorze ( srqmem(), F$SRqMem) poszukiwanie obszaru w tablicy kończy si e po napotkaniu CN Prio=0 (pami eć o priorytecie zerowym może być przydzielona TYLKO na ż adanie z zadanym kolorem ( srqcmem(), F$SRqCMem)). MW-ZPCiR-ICT-PWr 14
Pamieć Usługi systemowe zwi azane z pami eci a: Nazwa funkcja w C Opis F$CpyMem cpymem() kopiowanie obszaru pami eci do bufora użytkownika F$Mem zmiana wielkości obszaru danych procesu F$SRqCMem srqcmem() przydzielenie bloku pami eci o zadanym kolorze F$SRqMem srqmem() przydzielenie bloku pami eci F$SRtMem srtmem() zwrot bloku pami eci F$Trans translacja adresu pomi edzy magistral a lokaln a (CPU), a systemow a (np. dla DMA) F$Move szybkie przesuni ecie zawartości bloku pami eci z uwzgl ednieniem nakładania si e obszarów (tylko w trybie SYSTEM) MW-ZPCiR-ICT-PWr 15
Pamieć Ochrona pami eci (inter task memory protection) MMU (Memory management Unit) układ do zarz adzania pami eci a i translacji adresów (w OS 9 używany do sprz etowej ochrony pami eci w trybie USER przez generowanie BusError przy próbie dost epu do obszaru nie wpisanego do tablicy). ssm (System Security Module) moduł rozszerzaj acy usługi systemowe o ochron e pami eci: F$Permit zezwolenie na dost ep do podanego obszaru pami eci (d0.l - wielkość obszaru, d1.w - tryb dost epu -ewr, a2.l - adres obszaru) F$Protect odebranie zezwoleń na dost ep do podanego obszaru pami eci (d0.l - wielkość obszaru, a2.l - adres obszaru) Uwaga: Usługi te s a dost epne tylko dla użytkowników z grupy 0. MW-ZPCiR-ICT-PWr 16