Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE

  • Upload
    gen

  • View
    55

  • Download
    1

Embed Size (px)

DESCRIPTION

Wieloprocesowy system operacyjny dla komputerów ATARI XL/XE. Maciej Grzeszczuk. Platforma XL/XE. Linia komputerow XL/XE zapoczątkowana w 1982. Architektura zgodna z Atari 400/800 z roku 1978. - PowerPoint PPT Presentation

Citation preview

  • Wieloprocesowy system operacyjny dla komputerwATARI XL/XE Maciej Grzeszczuk

  • Platforma XL/XELinia komputerow XL/XE zapocztkowana w 1982.Architektura zgodna z Atari 400/800 z roku 1978.Omiobitowy procesor 6502 taktowany z czstotliwoci 1.77MHz, 64KB RAM.

    Najczciej spotykana w Polsce pami masowa magnetofonNajpopularniejsze zastosowanie gry.

  • UNIX na mae AtariWspbiena praca wielu proceswNad podziaem czasu procesora pomidzy poszczeglne procesy czuwa jdro systemuWieloprocesowo kooperatywna oraz wywaszczanie proceswLiniowy przydzia pamici RAMKomunikacja midzyprocesowaSystem niezaleny od przerbek sprztowychWspdzielenie zasobw komputeraW peni funkcjonalny dla standardowego komputera Atari XL/XE (64KB RAM, CPU 6502)

  • Dostpne mechanizmyNiemaskowalne przerwanie VBLwystpuje 50 razy na sekund (PAL)na stos systemowy odkadane s rejestry procesora (A,X,Y), flagi procesora oraz adres powrotu do programuDostp do pamici rozszerzonej (XMS) wedug standardu zdefiniowanego przez Atari dla modelu 130XE16KB banki pamici w obszarze 0x4000-0x7FFFmoliwo zaadresowania do 64 bankw (6 bitw PORTB) Rejestr PORTB umoliwia rwnie odczenie ROMu z Atari OS Procedury bootowania zaszyte w Atari OS moliwo zabootowania si z Cartridgea rozmiar Cartridgea dowolny (bankowanie), np. 8Mbit dostpne Cartridge programowane z poziomu Atari OS (pami flash) standardowa procedura bootowania po magistrali szeregowej (SIO)

  • Ograniczenia i niedogodnociBrak protekcji pamiciWielko pojedynczego segmentu kodu ograniczona do 15KB (16KB wielko banku XMS)Przeczanie kontekstu angauje istotn cz czasu procesora:konieczno zachowania stosu procesukonieczno zachowania strony zerowej procesuCao systemu pisana w asemblerze due ryzyko przemycenia bdw do tworzonego koduKomunikacja midzyprocesowa wymaga bufora wymiany danych, ze wzgldu na bankowanie pamici.

    Wikszo niedogodnoci mona zlikwidowa przy zastosowaniu procesora 65C816.

  • Gotowy produktJednoczesna praca do 32 niezalenych proceswStworzone rodowisko programisty umoliwiajce tworzenie nowych aplikacji w relokowalnym formacie XXProces jest wczytywany z pamici masowej przez rodzica oraz relokowany do zarezerwowanego miejsca w pamiciProces rodzic moe przekaza procesowi potomnemu parametry poprzez stos lokalny potomkaKady proces moe zarejestrowa w systemie wasne procedury obsugi sygnaw (z wyczeniem sygnaw systemowych SIGKILL, SIGSTOP, SIGCONT)

  • Gotowy produkt cd.Proces oczekujcy na rezultat operacji wejcia/wyjcia oddaje zasoby planicie krtkoterminowemuKontekst procesu dla ktrego pojawi si rezultat I/O przywracany jest poza kolejnociDostp do zasobw wspdzielonych chroniony semaforamiProces ktry przekroczy przydzielony mu czas zostanie wywaszczony przy najbliszym uruchomieniu planisty (50 razy na sekund)Wszystko dziaa na niezmodyfikowanym, fabrycznym Atari XL/XE

  • Wspistnienie wielu procesw:

  • Prezentacja gotowego systemu

    Atari XL/XE komputer domowy w Polsce dystrybuowany przez sie Pewex najczciej spotykany w konfiguracji z magnetofonem uywany w wikszoci do gier

    Bardziej zaawansowana wersja komputera Atari 400/800 z roku 1978.

    Sprzt: Procesor 6502, taktowany z czstotliwoci 1.77MHz Trzy, omiobitowe rejestry procesora Moliwo liniowego zaadresowania 64KB pamici Pami ROM zawiera si we wsplnej z RAM przestrzeni adresowej

    Przydzia pamici z dokadnoci do strony pamici. Strona 256 bajtw.

    Komunikacja midzyprocesowa: Sygnay Przekazywanie parametrw Zwrot rezultatu pracy procesu

    Zunifikowany sposb obsugi rozszerze pamici powoduje, e system odwouje si do poszczeglnych bankw przez tworzon podczas startu systemu tablic, zawierajc wykryte informacje o obecnych rozszerzeniach.

    Podczas wystpienia przerwania odkadane s na stos rejestry procesora, flagi oraz adres powrotu to programu. To wszystkie informacje jakie pozwol na zachowanie biecego stanu procesu w odpowiednich strukturach i przywrcenie ich w pniejszym czasie.

    Przerwanie mona wygenerowa rwnie programowo, za pomoc specjalnego rozkazu BRK.

    Procedura bootowania umoliwia w przyszoci podczanie do systemu niezmodyfikowanych, fabrycznych komputerw Atari, ktre stan si terminalami systemu bez adnego dodatkowego oprogramowania.

    System mona wczytywa z pamici masowych (twarde dyski, dyskietki), umieci w pamici ROM wewntrz komputera, bd te na podczanej przez standardowe zcze Cartridgea pamici flash.

    Dowolny proces moe celowo bd na skutek bdu nadpisa istotne obszary pamici systemu bd innego procesu. W krytycznym przypadku moe spowodowa zawieszenie bd destabilizacj systemu.

    Segment kodu oraz danych dostpnych za pomoc naturalnych trybw adresowania ograniczony jest do 15kB (ze wzgldu na 16KB wielko banku pamici XMS). Program moe mie wiele segmentw, jednake komunikacja pomidzy nimi odbywa si za pomoc funkcji systemowych.

    Procesor 65816: 16 bitowe rejestry procesora moliwo liniowego zaadresowania do 16MB pamici przeczenie stosu oraz strony zerowej za pomoc zmiany pojedynczego rejestru dodatkowe rozkazy i tryby adresowania pomog zoptymalizowa kodMaksymalna liczba aktywnych procesw w systemie jest tylko ograniczeniem przyjtym podczas projektowania systemu od tej liczby zale wielkoci struktur danych przechowujcych informacje o procesie (strona bazowa).

    rodowisko programisty umoliwia tworzenie aplikacji w formacie relokowalnym. Nagwek pliku zawiera informacje niezbdne sytemowej funkcji wczytujcej proces do pamici komputera, informacje takie jak: Dugo kodu (ilo miejsca w pamici na segment kodu) Indeksy miejsc w kodzie wymagajce relokacji Informacja o dodatkowych przestrzeniach pamici do zaalokowania

    Wszystkie skoki do funkcji systemowych odbywaj si poprzez tablice skokw. Dziki temu modyfikacje i przebudowy systemu nie wpywaj na dziaanie aplikacji stworzonych dla starszych jego wersji.

    Przedterminowe wywoanie planisty krtkoterminowego przez proces oczekujcy na rezultat I/O odbywa si na skutek wywoania programowego przerwania BRK.

    W obecnej wersji systemu semaforami chroniony dostp do podsystemu wejcia/wyjcia Atari OS (CIO), ktry przejciowo wykorzystywany w systemowych procedurach dostpu do pamici masowych.

    Procesor moe wykonywa w danym momencie tylko jeden program kod systemowy kod planisty krtkoterminowego kod procedur obsugi przerwa systemowych kod odpowiedzialny za obsug urzdze wywoania planisty kod procesu

    Wykonywanie kodu systemowego odbywa si po wystpieniu przerwania. Jeeli przerwanie wywoaa operacja I/O, system obsuguje operacj zachowujc wynik w odpowiednim buforze, po czym wraca do obsugi kodu procesu.Przerwania VBLANK i BRK powoduj wywoanie kodu planisty.Jeeli I/O wymaga interakcji procesu, przy najbliszym wywoaniu planisty kontrola zostanie przekazana do odpowiedniego procesu poza kolejnoci.Proces, ktry rozpoczyna oczekiwanie na rezultat operacji I/O sam wywouje planist krtkoterminowego za pomoc programowego przerwania BRK.Proces, ktry przekroczy przydzielony czas jest wywaszczany przez planist wywoywanego na skutek przerwania VBLANK.Prezentacja konsol wirtualnych (dwie zajte, dwie wolne)Output z PS wida dziaajce procesy. Wszystkie, poza PS i IDLE sa w stanie WAITING.Wida liniowy przydzia pamici.Wiatraczek IDLE, pokazuje, ze czasu ma wiele.Uruchomienie dwch dodatkowych konsol na pozostaych TTY.Uruchomienie PROC10 na jednej z konsol.Wiatraczek krci si wolniej. Output z PS pokazuje, e dodatkowy proces jest w stanie READY.Uruchomienie dodatkowego PROC10.Wiatraczek kreci si jeszcze wolniej. Output z PS pokazuje kolejny proces.Wysyamy sygna SIGSTOP do jednego z PROC10. Wiatraczek przyspiesza, PS pokazuje, ze proces jest zatrzymany.Wysyamy sygna SIGKILL do nastpnego PROC10, wiatraczek rusza z kopyta.Po przesaniu SIGCONT do zatrzymanego, wiatrak znowu zwalnia.SIGKILL przywraca radosc.Nastpnie uruchamiamy PROC4, pokazujemy, e dziaa.Zczytujemy PSem numer procesu dla PROC4 i wysylamy mu sygna SIGHUP.