------------------------------------------------------------------------- Käyttöjärjestelmät I, erilliskoe 22.3.2002 Tehtävä 1 ------------------------------------------------------------------------- - kirjan luku 2 sekä vastaavat luentokalvot Tässä yhteydessä toimii keskeytysmekanismi, prosessienhallinta, tdstojenhallinta, siirräntäjärjestelmä sekä muistinhallinta. - 3 p per selvästi mainuttu ja tehtävien osalta oikein selitetty osa-alue Komentotulkki suorittaa palvelypyynnön LUO-PROSESSI, jolle se antaa parametrina käynnistettävän ohjelman nimen (tai UNIX-tyyliin ensin fork() ja sitten lapsi itse vaihtaa suoritettavaa koodia..). Tässä yhteydessä tarvitaan KJ:n keskeytysmekanismia, ja suoritus siirtyy KJ:n puolelle. Keskeytysmekamismia tarvitaan myös alla mainittujen levyltä lukemisien yhteydessä. Aluksi KJ tietenkin tarkistaa, onko annettu komento todellakin jokin suoritettava ohjelma eli koodi (ja onko edes olemassa). Tähän tarvitaan tiedosto- ja siirräntäjärjestelmiä. Hakemistoalkio on haettava levyltä muistiin tutkimista varten (ellei se jo ole muistissa). Äitiprosessin PCB:stä löytyy uid/gid, joita käytetään oikeuksien tarkistamisessa. Sitten tarkistetaan onko käyttäjällä oikeudet ko. ohjelman suorittamiseksi (Tiedostojärjestelmän palvelu). Tapahtuu vertaamalla PCB:ssä olevia tietoja (uid, gid) tiedostoattribuuteissa oleviin tietoihin (uid, gid + oikeudet). Sitten luodaan ja alustetaan PCB (Muistinhallintaa & prosessinhallintaa apuna käyttäen). Alustuksessa kopioidaan aika paljon tietoa suoraan äitiprosessista. Jos yksinkertainen muistinhallinta (ks. kirja), niin prosessille varataan muistitilaa (koodille, datalle, pinolle) ja ohjelman koodi luetaan sisään. Tähän tarvitaan siirräntä- ja muistinhallintajärjestelmiä. Jos KJ:n toteutus perustuu sivutukseen ja tarvenoutoon, muistia varataan vasta sivupuutosten yhteydessä, ei etukäteen. Lopuksi prosessin PCB pistetään jonoon odottamaan READY-jonoon vuoroaan prosessorille. Tähän tarvitaan prosessinhallintajärjestelmää. Kun edellisen prosessin aikaviipale loppuu tai CPU:lla olevan prosessin suoritus muuten keskeytyy, talletaan (mahdollisesti) vanhan prosessin rekisterit PCB:hen ja pistetään PCB BLOCKED- ja tai READY-jonoon. Sitten haetaan prosessilistasta uuden prosessin PCB. Tämän jälkeen prosessimme tiedot ladataan PCB:stä rekistereihin (PSW, PC ja muut). Myös MMU täytyy alustaa: jos yksinkertainen muistinhallinta, niin BASE ja LIMIT rekistereille arvot. Jos sivuttava virtuaalimuisti, niin PTR:n arvoksi sivutaulun fyys.alkuosoite ja TLB on tyhjennettävä, koska se sisälsi edellisen prosessin viittauksia, jotka olisivat vääriä uuden prosessin muistialueen suhteen. Vasta tämän jälkeen CPU jatkaa suoritustaan tämän luodun prosessin koodista. Jso sivuttava virtuaalimuisti, niin ensimmäinen viite aiheutata sivupuutoksen, ja koodisivu tuodaan keskusmuistiin. ------------------------------------------------------------------------- Käyttöjärjestelmät I, erilliskoe 22.3.2002 Tehtävä 2 ------------------------------------------------------------------------- a) kirja luku 1.4 ja taulukko 1.1. Tärkeimmät: rinnakkainen suoritus (I/O-laite osaa keskeyttää!), palvelupyynnöllä prosessi saa käyttöjärjestelmän palvelua (ja KJ:lla mahd. tarkistaa suojaukset, käyttöoikeudet), virhetilanteiden/laitevirheiden hallittu käsittely KJ:ssä (nollallajako, ylivuoto tms.), kellokeskeytys mahdollistaa moniajon myös interaktiivisissa ympäristöissä (kukaan ei voi yksin valloittaa CPU:ta) 3 pistettä mainitsemisista, 3 pistettä perusteluista b) kirja kuva 1.7. Keskeytys huomataan pystyyn nostetusta bitistä tilarekisterissä PSW tai erillisessä keskeytysrekisterissä. Tutkitaan jokaisen käskysyklin lopuksi (ellei keskeytykset ole juuri sillä hetkellä estettyinä). 1 milloin, 1 miten c) mode switch (2 p): kirja kuva 1.10 (se oikeanpuoleinen reuna). Prosessin vaihto (4p): kopio CPU:lta poistuvan prosessin kuvaajaan CPU:n tila (=rekistereiden arvot) pinosta ja CPU:sta, vuorottaja valitsee uuden READY-jonon alusta, kopioi sen PCB:stä rekistereiden arvot prosessoriin (muista myös MMU) ------------------------------------------------------------------------- Käyttöjärjestelmät I, erilliskoe 22.3.2002 Tehtävä 3 ------------------------------------------------------------------------- a) BASE ja LIMIT selitetty (2p), rajatarkistus + mahdollinen poikkeus (3p), fyysisen osoitteen muodostus (1p) (ks. kirja s 317) b) PTR ja TLB selitetty (3p), miten sivunro/siirtymä saadaan (1p), TLB:n käyttö (3p), läsnäolobitti ja sivupuutos (2p), fyysisen osoitteen muodostus (1p) Ks. kirja s 344. ------------------------------------------------------------------------- Käyttöjärjestelmät I, erilliskoe 22.3.2002 Tehtävä 4 ------------------------------------------------------------------------- ks. kirja kuva 3.8b selityksineen. New/Exit tilat smuakan ja tarve selitetty (3p), Suspend-tilat ja siirtymät selitetty (5p), Ready/Blocked/Run tilat (3p) ja siirtymät selitetty (4p) -------------------------------------------------------------------------