1
|
- Prosessi
- Prosessin esitysmuoto järjestelmässä
- Käyttöjärjestelmä
- KJ-prosessit
|
2
|
- Järjestelmässä olevan ohjelman esitysmuoto
- Järjestelmässä voi olla ”samalla kertaa” monta prosessia joko samasta
tai eri ohjelmasta
- käyttäjän (ihmisen) näkökulma ja aikaskaala
(1 min, 1 sek?)
- Suorittimella suorituksessa on yksi prosessi kerrallaan
- laitteiston näkökulma ja aikaskaala
(1 ms, 1 µs, 1 ns?)
- Muut prosessit ovat odottamassa jotakin
- suoritinta? I/O:ta? viestiä toiselta prosessilta?
- vapaata muistitilaa?
|
3
|
|
4
|
- Suorittimella suoritusvuorossa olevan prosessin vaihtaminen
- Tapahtuu aika usein
- keskimäärin noin 2000-3000 konekäskyn välein?
- esim. 50-500 kertaa sekunnissa?
- Iso operaatio - paljon kopiointia
- montako konekäskyä tähän kuluu?
|
5
|
- Prosessin 5 suoritustilaa
- Milloin tilanvaihto tapahtuu?
- Mitä tilanvaihdossa tapahtuu?
|
6
|
- PCB - Prosessin kuvaaja eli kontrollilohko
(Process Control Block)
- isohko tietue, joka sisältää kaiken yhdestä prosessista
- muistialueet, tiedostot, tiedostojen käsittelykohdat
- ei suorituksessa oleville myös: suorittimen tila
(laiterekisterit, MMU:n rekisterit, kontrollirekisterit)
- joka prosessista oma PCB
- luodaan prosessin luonnin yhteydessä ja tuhotaan prosessin päättyessä
- käyttöjärjestelmärutiinit manipuloivat PCB:tä
|
7
|
- Prosessin tunniste
- Prioriteetti suorittimen vuoronantoa varten
- Prosessin tila ja/tai odottamisen syy
- Suoritinympäristö talletettuna odottamisen aikana
- rekisterit, PC, SP, FP, tilarekisterit
- Seuraavaksi suoritettavan käskyn osoite
- Poikkeuskäsittelijöiden osoitteet (ellei oletusarv.)
- Aikaviipale
- Käytössä olevat muistialueet, aukiolevat tiedostot
- KJ:n hallintotietoa (kokonaisaika, etc etc)
|
8
|
- Prosessin tilanvaihto tapahtuu siirtämällä prosessi (sen PCB) jonosta
toiseen
- ready-to-run jono (tai jonot)
- running jono
- ei oikeastaan ole olemassa
- waiting jono
- joka tyypille oma jononsa
- esim: laitteen Disk1 I/O:n valmistumista odottavat
- esim: näppäimistön painallusta odottavat
- esim: kellolaitekeskeytystä odottavat
- esim: prosessilta 1345 signaalia odottavat
|
9
|
|
10
|
|
11
|
|
12
|
- Vaihdon tekee KJ rutiini sillä hetkellä suorittavan prosessin
ympäristössä
- Talleta vanhan prosessin suoritinympäristö suorittimelta omalle
talletusalueelle muistiin
- talleta kaikki suorittimella olevat tiedot muistiin
- Kopio uuden prosessin suoritinympäristö omalta talletusalueeltaan
suorittimelle
- lataa kaikki suorittimen rekisterit (myös PC!)
- Uuden prosessin suoritus jatkuu täsmälleen siitä mihin viime kerralla
jäätiin
- sama konekäsky, käytännössä sama suoritusympäristö
- usein keskellä prosessin vaihtoa suorittavaa KJ rutiinia
|
13
|
- Prosessin tärkeysjärjestys suorittimella
- esim. pieni numero Þ iso (parempi) prioriteetti
- Joka prioriteetti(luokalle) oma R-to-R jononsa
- KJ prosesseilla parempi prioriteetti kuin käyttäjätason prosesseilla
- tosiaikasovelluksen prosesseilla parempi prioriteetti kuin KJ
prosesseilla
- muistakaa antaa KJ:lle aikaa aina joskus .... !
- Prioriteetti voi vaihdella prosessin elinaikana
- paljon suoritinaikaa Þ huonompi prioriteetti
- kauan R-to-R jonossa Þ parempi prioriteetti
(prosessi siirretään korkeamman prioriteetin
R-to-R jonoon)
|
14
|
- Miten järjestelmä toimii minun ohjelmani kanssa?
- Onko järjestelmä riittävän nopea pelaamaan suosikkipeliäni isolla
näytöllä?
- Onko minun helppo asentaa uusi ohjelma koneelle?
- Onko minun helppo muuntaa (portata) ohjelmani tähän käyttöjärjestelmään?
- Miten muistin lisääminen vaikuttaisi minun ohjelmani nopeuteen?
|
15
|
- Ovatko kaikki systeemin resurssit mahdollisimman hyvässä käytössä?
- Mikä on keskimääräinen jonon pituus (prosessien lukumäärä)
suorittimelle?
- Minkä osan ajasta suoritin odottaa järkevää työtä?
- Minkä osan ajasta kovalevyn hakuvarsi on liikkeessä?
- Miten usein datamuistiviitteet löytyivät välimuistista?
- Miten muistin lisääminen vaikuttaisi nopeuteen?
|
16
|
- Loppukäyttäjälle (ihmiselle)
- Sovellusohjelmille
- Piilottaa laitteiston erityispiirteet käyttäjiltä
- käskykanta
- konekäskyn rakenne
- suorittimen toteutus ja
suorittimien lukumäärä
- I/O:n toteutus
- I/O-laitteiden sijainti
|
17
|
- Laiteriippumaton (HW-riippumaton) käyttöliittymä laitteistoon
- järjestelmää on helppo
käyttää
- järjestelmä antaa reilua
palvelua kaikille
- sovellukset on helppo
tehdä
- sovellukset on helppo
siirtää muista järjestelmistä
|
18
|
- Järjestelmän resurssien tehokas hallinta
- kaikista resursseista saada maksimihyöty
- joustava resurssien yhteiskäyttö
- lue tiedosto levyltä vai verkkopalvelimelta?
- tiukka tietosuoja
- kuka muu kuin Pekka ja Maija luki tietojani?
|
19
|
- Suoritinaikaa reilusti kaikille
- kukaan ei odota suoritinta ikuisesti
- kriittiset prosessit saavat ajoissa suoritinaikaa
- Tiedostojen (koodi, data) tehokas käyttö
- laitteesta ja sijainnista riippumaton käyttö
- helppo yhteiskäyttö ja samalla tietojen suojaus
- Tietoliikenneverkkojen käyttö
- laiteriippumaton käyttö
- helppo yhteiskäyttö ja samalla tietojen suojaus
- Hallintokirjanpito
|
20
|
- Varauduttu kaikkiin mahdollisiin virheisiin
- Sovellusohjelmat eivät voi häiritä KJ:tä tai muita prosesseja
- tahallaan (esim. tietokonevirukset)
- vahingossa (yleisin tapaus)
- Järjestelmä ei lukkiudu tai ”kaadu”
- KJ:n omat tietorakenteet ovat aina eheitä
- sovellusohjelmat eivät voi koskea KJ:n tietorakenteisiin
- sovellusohjelmat aina lopulta antavat vuoron KJ:lle
|
21
|
- Prosessien hallinta
- prosessien luonti, tuhoaminen
- prosessien välinen viestintä (IPC, Inter-Process Comm)
- kenelle suoritinaikaa ja milloin?
- Muistin hallinta
- miten keskusmuistia varataan eri prosessien käyttöön?
- kunkin prosessin muistitilan hallinta
- yhteiskäyttö ja tiedon suojaus
- Tiedostojen ja laitteiden hallinta
- miten tiedostoja voidaan lukea/kirjoittaa?
- yhteiskäyttö ja tiedon suojaus
- Verkon hallinta
- miten kommunikoida muiden koneiden kanssa?
|
22
|
- Joukko prosesseja ja/tai aliohjelmia
- prosessit elävät omaa elämäänsä (etuoikeutetussa tilassa eli root’ina?)
- swapper (Unix) - muistinhallintaprosessi
- init prosessi (Unix) - kaikkien käyttäjätason prosessien ”äiti”
- laiteajurit
- aliohjelmat suoritetaan sen hetkisen prosessin ympäristössä
(etuoikeutetussa tilassa?)
- saavat kontrollin aina tarvittaessa
- aliohjelmakutsut, SVC, viestit
- ajastimet ja muut keskeytykset
|
23
|
- Aliohjelmakutsut
- SVC
- Viestit
- viesti → vastausviesti
(lähettäjä odottaa vastausta RECEIVE:ssä)
- Ajastimet ja muut keskeytykset
|
24
|
|
25
|
- Aliohjelmana (eli proseduurina)
- laiteajuri suoritetaan KJ-rutiinina tavallisen SVC-kutsun kautta
- vain yksi kutsu kerrallaan suorituksessa?
miksi? miten voidaan valvoa?
|
26
|
- Aliohjelmana (eli proseduurina)
- laiteajuri suoritetaan KJ-rutiinina tavallisen aliohjelmakutsun ja/tai SVC-kutsun
kautta
- osa tai kaikki koodista voi olla etuoikeutettua
- vain yksi kutsu kerrallaan suorituksessa?
miksi? miten voidaan valvoa?
|
27
|
- Prosessina
- proseduurina kutsuttu laiteajurin tynkä (stub) lähettää I/O-pyynnön viestinä
laiteajuriprosessille ja odottaa vastausta
- tynkä voi olla käyttäjätilainen
- ajuriprosessi voi olla (joskus) etuoikeutettu
- vaatii prosessien välistä viestintää
|
28
|
|