Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

8. Ohjelman toteutus järjestelmässä

Samankaltaiset esitykset


Esitys aiheesta: "8. Ohjelman toteutus järjestelmässä"— Esityksen transkriptio:

1 8. Ohjelman toteutus järjestelmässä
8.1 Käyttöjärjestelmän tehtävät 8.2 Prosessi ja prosessin esitysmuoto järjestelmässä 8.3 Prosessien elinkaari 8.4 Keskeytysten käsittely 31/12/2018 Liisa Marttinen kevät 2005

2 8.1 Yleistä käyttöjärjestelmästä
tietokoneen tärkein ohjelmisto liittymä laitteiston ja ohjelmiston välillä tehostaa ja helpottaa tietokoneen käyttöä KJ hoitaa oheislaitteiden ohjauksen siirräntä- ja tiedostokäskyt => palvelupyyntö KJ:lle resurssien jakelu ja yhteiskäyttö prosessori, muisti, oheislaitteet ohjelmat, tiedostot 31/12/2018 Liisa Marttinen kevät 2005

3 Käyttöjärjestelmä tarjoaa kullekin käyttäjälle
Käyttäjä Käyttäjä Käyttäjä 3 Virtuaalikone 3 Virtuaalikone 1 Virtuaalikone 2 Sovellus Sovellus Sovellus Käyttöjärjestelmä Laitteisto Käyttöjärjestelmä tarjoaa kullekin käyttäjälle illuusion omasta virtuaalikoneesta 31/12/2018 Liisa Marttinen kevät 2005

4 Käyttöjärjestelmän tehtäviä
Käyttöliittymä, komentotulkki Prosessien ohjaus Resurssien hallinta ja jakelu Palvelutoiminnot prosesseille Suojaus Muita vaatimuksia 31/12/2018 Liisa Marttinen kevät 2005

5 Käyttäjä Komentotulkki Komentotulkki Varusohjelmat Sovellusohjelmat
PALVELUPYYNNÖT PROSESSIEN HALLINTA RESURSSIEN JAKELU SUOJAUS TIEDOSTOJÄRJESTELMÄ MUISTINHALLINTA lohkot SIIRRÄNTÄJÄRJESTELMÄ laiteajurit Laiteohjaimet ja laitteisto

6 Prosessien ohjaus työjonot ja töiden suoritus prosessijonot
töiden käynnistys ja lopetus resurssien varaus ja vapautus prosessijonot prosessiajan jako prosesseille rinnakkaisuus => ratkaistavia ongelmia työn /prosessin vaihtaminen prosessien yhteiselo synkronointi poissulkeminen 31/12/2018 Liisa Marttinen kevät 2005

7 Resurssien hallinta ja jakelu
jaettavat resurssit prosessori(t) keskusmuisti tukimuistit oheislaitteet yksittäiskäyttöiset, esim. piirturit, kirjoittimet yhteiskäyttöiset, esim. levyt, tiedostot jakelupolitiikka kuka saa mitä saa (allokointi) milloin saa (skedulointi) 31/12/2018 Liisa Marttinen kevät 2005

8 paljon kirjanpidollisia tietorakenteita
kuvaajia resurssikuvaaja: resurssin ominaisuudet, tila prosessikuvaaja: mitä resursseja hallussa jonoja resurssia odottavat prosessit (tieto)resurssien yhteiskäyttö datatiedostot, ohjelmakoodi, käyttöjärjestelmän rutiinit, ohjelmakirjastot, ... kustannussäästö; yhteistyö yhteisten resurssien jakaminen ja käyttö yksittäiskäyttöisten resurssien jakelu yhteiskäyttöisten käyttö

9 Palvelutoiminnot prosesseille
siirräntä (I/O) ohjausrutiinit saantimenetelmärutiinit laitejuriohjelmat (driver) tiedostojärjestelmä tiedostojen ja hakemistojen luonti tiedostojen ja hakemistojen poisto tiedostojen avaaminen, käyttö ja sulkeminen tiedostojen suojausjärjestelmä prosessin luonti ja lopettaminen keskusmuistitilan varaaminen ja vapauttaminen 31/12/2018 Liisa Marttinen kevät 2005

10 Suojaus ohjelmien suojaus toisiltaan
erityisesti KJ:n suojaus sovelluksilta prosessori suorittaa ohjelmia kahdessa eri suojaustilassa: etuoikeutetussa tilassa KJ:n keskeisimmät osat pysyvästi => kaikki oikeudet: muistinsuojausrekisterien asetukset laiteohjainrekistereihin viittaaminen koko muisti käytettävissä keskeytysten asettaminen ja esto siirtyminen hallitusti palvelupyyntöjen kautta käyttäjätilassa 31/12/2018 Liisa Marttinen kevät 2005

11 keskusmuistin suojaus
laitteistotasolla MMU tarkistaa osoitemuutoksen yhteydessä jokaisen ajonaikaisen muistiviittauksen oheismuistilaitteiden suojaus tiedostoja saavat käyttää vain ne, joilla siihen oikeus käyttö aina KJ:n palvelupyynnöillä, joilloin KJ voi tarkistaa käyttöoikeudet tiedostoissa tieto, kuka saa käyttää ja miten sovellukset eivät saa käyttää suoria levyosoitteita

12 Muita vaatimuksia KJ:lle
yhteiskäytössäkin aina samat tulokset samoilla syötteillä prosessien suoritusjärjestys ei saa vaikuttaa tuloksiin tehokkuus, luotettavuus, ylläpidettävyys pienuus, virheettömyys, ‘huomaamattomuus’ 31/12/2018 Liisa Marttinen kevät 2005

13 Prosessien hallinta Käyttöjärjestelmän ydin
KJ:n keskeisimmät ja laiteläheisimmät osat prosessien vuorottaminen keskeytysten käsittely prosessien synkronointi prosessien keskinäinen poissulkeminen Toteutetaan osin laitteistolla ja mikrokoodilla, osin ohjelmistolla => turvallinen elinympäristö prosesseille syntyä, toimia ja kuolla! 31/12/2018 Liisa Marttinen kevät 2005

14 Etuoikeutetut käskyt laitteistotasolla
keskeytysten kieltäminen ja salliminen prosessorin vaihto prosessilta toiselle muistin suojausrekisterien asetukset alimman tason siirräntä vain KJ voi käyttää etuoikeutettuja käskyjä ja vain jos prosessori on etuoikeutetussa tilassa SR:n etuoikeutetun tilan bitti asetettu KJ:n ydin ja siirrännän käynnistys aina etuoikeutetussa tilassa sovellusohjelmat ja monet KJ:n rutiinit käyttäjätilassa 31/12/2018 Liisa Marttinen kevät 2005

15 virhetilanteissa ja keskeytyksissä
laitteistotasolla on myös huomattava viittaukset oman alueen ulkopuolelle muistin suojaus osoitemuunnos virhetilanteissa ja keskeytyksissä keskeytyssyy tilarekisteriin SR entinen tila talteen ainakin PC:n arvo muistiin rekisterit siirtyminen keskeytyskäsittelijään uudeksi osoitteeksi keskeytyskäsittelijärutiinin osoite

16 prosessien vuorottaminen
aikaviipalekelloa tuottaa säännöllisin välein kellokeskeytyksiä, jolloin KJ voi vaihtaa suoritettavan prosessin reaaliaikakelloa josta nähdään esim. prosessin kuluttama kokonaisaika 31/12/2018 Liisa Marttinen kevät 2005

17 Käyttöjärjestelmän ytimen osat
Poissulkeminen Synkronointi Prosessi- en vuorot- taminen Keskey-tyskäsittely 31/12/2018 Liisa Marttinen kevät 2005

18 8.2 Prosessi ja prosessikuvaaja
prosessi = suoritettavaksi otettu ohjelma KJ:n kannalta prosessi on tietorakenne keskusmuistissa oleva ohjelmakoodi data hallinnollista tietoa KJ:n prosessitaulu prosessikuvaaja (PCB) kullekin prosessille prosessin tunniste prosessin käsittelyssä tarvittavaa tietoa 31/12/2018 Liisa Marttinen kevät 2005

19 Prosessin tunniste yksikäsitteinen numero
juokseva numerointi omistajan käyttäjä- ja ryhmätunnus (uid, gid) saadaan omistajan kirjoittautuessa järjestelmään esim . käyttöoikeuksien tarkistamiseen tunnisteen avulla omistaja voi esim. tappaa prosessinsa (esim. KILL <tunniste>) 31/12/2018 Liisa Marttinen kevät 2005

20 Prosessin tilasiirtymäkaavio
1. Initiated READY to Run 2. 5. 3. WAITING RUNNING 4. 6. Prosessin tilasiirtymäkaavio Terminated 31/12/2018 Liisa Marttinen kevät 2005

21 READY to Run-jono RUN WAIT ajokelpoisten prosessien kuvaajat
prosessin kuvaajassa on tieto prosessin tilasta prosessi odottaa pääsyä suoritukseen RUN prosessi on suorituksessa sillä on prosessori käytössään WAIT prosessi odottaa jotain tapahtumaa esim. I/O-toiminnon päättymistä

22 INITIATED TERMINATED prosessi luotu, mutta ei vielä valmis ajettavaksi
prosessi suorittanut tehtävänsä suoritus keskeytynyt virheeseen

23 Siirtymien merkitys: 1. Kaikki, mitä prosessi tarvitsee ajoa varten, on valmista 2. Prosessi saa CPU:n 3. Aikaviipale on täyttynyt 4. Prosessi käynnistää I/O-operaation (tai muun odottamista vaativan toiminnon) 5. I/O-operaatio päättyy 6. Prosesi on suoritettu (tai fataali virhe on tapahtunut) 31/12/2018 Liisa Marttinen kevät 2005

24 Kun prosessi menettää suoritusvuoron
eli sen aikaviipale loppuu tai se jää odottamaan jotain tapahtumaa sen rekistereihin tekemät muutokset on talletettava keskusmuistiin talletetaan prosessorin kuvaajaan kun prosessori saa uudelleen suoritusvuoron KJ palauttaa arvot ennalleen ja prosessori jatkaa siitä, mihin viimeksi jäi

25 prosessin kiireellisyysaste eli prioriteetti
yleensä kokonaisluku mitä pienempi arvo sitä suurempi prioriteetti määrää, kuinka pian prosessi saa prosessorin käytöönsä käyttäjän prosesseilla pienempi prioriteetti kuin KJ:n prosesseilla 31/12/2018 Liisa Marttinen kevät 2005

26 Prosessin kuvaaja prosessin koodin ja datan sijainti
KJ kirjaa, kun prosessi tuodaan muistiin alkuosoite (BASE) ja pituus (LIMIT) (virtuaalimuistia käytettäessä sivutaulun sijainti) prosessin avaamat tiedostot prosessin työhakemiston polku siirräntään liittyvää tietoa laskutukseen liittyviä tietoja kulutettu prosessoriaika käytetty I/O-aika ym.

27 Myös käyttöjärjestelmä on joukko prosesseja
vastuussa kaikista muista prosesseista luo ja tuhoaa prosesseja käynnistää ja pysäyttää niiden suoritusta jakaa prosessoriaikaa aikaviipaleina oheislaitteiden ja tiedostojen käyttö prosessi voi generoida uusia prosesseja monissa järjestelmissä mahdollista generointi kuvataan ohjelmakoodissa KJ tarjoaa luontipalvelun uusilla prosesseilla omat koodit ja tietorakenteet

28 8.3 Keskeytyskäsittely Esim. oheislaitteiden käsittely
käynnistys laiteajurilla sen jälkeen laiteohjain itsenäisesti huolehtii laitteesta ja prosessori voi tehdä muuta siirrännän päättyminen tai virhetilanne => laitekeskeytys prosessorille prosessori tutkii tilanteen ja mahdollisesti käynnistää KJ:n käsittelemään tilannetta 31/12/2018 Liisa Marttinen kevät 2005

29 Keskeytyksiä aikaviipalekeskeytys poikeustilanteet palvelupyyntö
aikaviipaleen päätyttyä kello aikeuttaa keskeytyksen prosessin suoritus keskeytetään, toinen prosessi otetaan suoritukseen poikeustilanteet aritmetiikan ylivuoto, nollalla jako, tuntematon tai luvaton käskykoodi, luvaton muistiosoite prosessin suoritus päättyy palvelupyyntö I/O-pyyntö KJ huolehtii siirrännästä 31/12/2018 Liisa Marttinen kevät 2005

30 Keskeytyksen jälkeen prosessori siirtyy suorittamaan KJ:n koodia
keskeytyspyyntö= tilarekisterin SR lipun (bitti) asettaminen laiteohjain, kello ohjelman suoritusvirhe tai ohjelman palvelupyyntö prosessori tutkii SR:n liput aina jokaisen konekäskyn suorituksen jälkeen havaitsee tällöin suorituksen aikana tulleet keskeytykset

31 Siirtyminen käyttöjärjestelmään
rekistereiden SR, PC ja FP arvot prosessin omaan pinoon kuvaajaa ei voida tallettaa, koska prosessori ei tiedä sen sijaintia prosessori etuoikeutettuun tilaan ja keskeytykset estetään (ainakin vähäksi aikaa) asetaan tilarekisterin tätä varten varatut bitit TTK-91:ssä bitit P ja D etuoikeutetussa tilassa prosessori suostuu suorittamaan etuoikeutettuja käskyjä keskeytyksen esto: keskeytysbittejä ei tutkita 31/12/2018 Liisa Marttinen kevät 2005

32 keskeytyksen syy poikkeukset ja palvelupyynnöt
tutkimalla SR-rekisteriä O-bitti: luvun ylivuoto/alivuoto Z-bitti: nollalla jako U-bitti: tuntematon tai kielletty käsky M-bitti: kielletty muistiviittaus S-bitti: palvelupyyntö, palvelun numero TR:ssä (HALT, READ, WRITE, TIME, DATE) Entä laitekeskeytykset? asynkronisia ohjelman suorituksen kanssa eli voivat sattua milloin tahansa laiteohjainten pollaus

33 keskeytyksen käsittely
erilaisilla keskeytyksillä omat käsittelyrutiinit keskeytysvektoritaulussa rutiinien alkuosoitteet vektoritaulu sijaitsee yleensä ohjelman alussa ‘keskeytystyyppi’ = käsittelijännumero on TR:ssä PC:n arvoksi ko. keskeytysrutiinin ensimmäisen käskyn osoite PC = MEM[keskeytysnro] Seuraavaksi suoritetaan keskeytyskäsittelijän koodia 31/12/2018 Liisa Marttinen kevät 2005

34 Takaisin sovellukseen jatketaan samaa prosessin suorittamista
valitaan suoritukseen jokin toinen prosessi prosessi joutui WAIT-tilaan suuremman prioriteetin prosessi tullut suoritukseen prosessin vaihto edellisen prosessin tiedot prosessorista ja pinosta prosessin kuvaajaan vuorottaja valitsee seuraavaksi suoritettavan prosessin READY-jonosta suoritettavan prosessin rekisterien arvot ladataan kuvaajasta 31/12/2018 Liisa Marttinen kevät 2005

35 keskeytysmekanismi on sopiva myös käyttöjärjestelmän palvelujen käynnistämiseen
palvelupyyntö ~ normaali aliohjelman kutsu parametrit pinoon ympäristön talletus paluu kutsukohtaan käsittely käyttöjärjestelmässä prosessi voi joutua WAIT-tilaan, jolloin prosessori suorittaa muita käskyjä aikanaan prosessi pääsee taas suoritukseen ja jatkaa siitä, mihin viimeksi jäi

36 sisäkkäiset keskeytykset
keskeyksillä eri prioriteetit konevirhe korkein prioriteetti siirräntävirhe kellolaite palvelupyyntö alin prioriteetti korkeamman prioriteetin keskeytys voi keskeyttää alemman prioriteetin keskeytyksen käsittelyn keskeytysten esto keskeytyksen käsittelyn ajan saman kiireellisyysluokan ja sitä alemman prioriteetin keskeytykset on automaattisesti estetty

37 keskeytyksen käsittelyrutiinin tulee sisältää vain todella välttämättömät toiminnat
etuoikeutettu tila keskeytykset estetty muu toiminta käyttöjärjestelmän käyttäjätilassa pyörivälle palvelurutiinille 31/12/2018 Liisa Marttinen kevät 2005

38 Käyttöjärjestelmän toteutus
joukko prosesseja ja/tai aliohjelmia prosessit ovat koko ajan toiminnassa, osa etuoikeutetussa tilassa laiteajurit aliohjelmat suoritetaan niitä kutsuvan prosessin ympäristössä keskeytyskäsittelijät saavat ’kontrollin’ aina tarvittaessa SVC, aliohjelmakutsut kellokeskeytys, laitekeskeytykset 31/12/2018 Liisa Marttinen kevät 2005


Lataa ppt "8. Ohjelman toteutus järjestelmässä"

Samankaltaiset esitykset


Iklan oleh Google