Kyttjrjestelmt ja laitteistot Tietotekniikan perusteet 3 11 1998

  • Slides: 17
Download presentation
Käyttöjärjestelmät ja laitteistot Tietotekniikan perusteet 3. 11. 1998 Pekka Orponen

Käyttöjärjestelmät ja laitteistot Tietotekniikan perusteet 3. 11. 1998 Pekka Orponen

Käyttöjärjestelmä • Käyttöjärjestelmä on tietokoneen varusohjelmisto, joka: – yksinkertaistaa ja yhtenäistää laitteiston osien (muistijärjestelmä,

Käyttöjärjestelmä • Käyttöjärjestelmä on tietokoneen varusohjelmisto, joka: – yksinkertaistaa ja yhtenäistää laitteiston osien (muistijärjestelmä, oheislaitteet jne. ) käyttöä sovellusohjelmissa – jakaa laitteistoresursseja (prosessoriaika, työtila jne. ) samanaikaisesti suoritettaville töille – tarjoaa yleispalvelut sovellusohjelmien ja datan hallintaan (tiedostojärjestelmä, ohjelmien käynnistäminen jne. ) • Ilman käyttöjärjestelmää: – tietokoneella voisi suorittaa vain yksi käyttäjä yhtä ohjelmaa kerrallaan – jokaisen ohjelman pitäisi huolehtia itse kaikista laitteiden ohjauksen yksityiskohdista – tietokoneresurssien yhteiskäyttö (levytilan jakaminen, tietoliikenne jne. ) olisi jokseenkin mahdotonta

Käyttöjärjestelmien historiaa konekohtaisia ”monitoriohjelmia” (1950 -luku) CTSS (1962) IBM S/360 (1964) ITS MULTICS (1965)

Käyttöjärjestelmien historiaa konekohtaisia ”monitoriohjelmia” (1950 -luku) CTSS (1962) IBM S/360 (1964) ITS MULTICS (1965) UNIX (1969) DEC TOPS-10 Xerox Alto (1973) CP/M (1974) VAX VMS Apple II (1976) MS-DOS (1981) Macintosh (1984) Linux (1991) MS-Windows 3. 1 (1992) MS-Windows NT (1995)

”Virtuaalikone” • Nykyaikaisia tietokoneohjelmia ei laadita suoraan peruslaitteistolle, vaan käyttöjärjestelmän luomalle korkeamman tason ”virtuaalikoneelle”

”Virtuaalikone” • Nykyaikaisia tietokoneohjelmia ei laadita suoraan peruslaitteistolle, vaan käyttöjärjestelmän luomalle korkeamman tason ”virtuaalikoneelle” • Sama virtuaalikone (esim. Unix-ympäristö) voi myös olla toteutettuna erilaisilla laitteistoilla • Yleisemminkin ohjelmistotyön voi ajatella olevan uusien virtuaalikoneiden rakentamista olemassaolevien pohjalle. Esim. Emacs-editori: käyttäjä EMACS LISP C UNIX Prosessori + oheislaitteet

Prosessi • Abstraktisti: Ohjelman suoritus (prosessorissa) • Konkreettisesti: Ohjelman suorittamiseen tarvittava koodi ja data

Prosessi • Abstraktisti: Ohjelman suoritus (prosessorissa) • Konkreettisesti: Ohjelman suorittamiseen tarvittava koodi ja data sekä kirjanpitotietoa (suorituskohdan osoitin, sijainti muistissa jne. ) (Prosessin ympäristö, engl. context) • Tietokoneessa voi olla suoritettavana samanaikaisesti useita prosesseja, joista kuitenkin (yksiprosessorikoneessa) vain yksi on aktiivinen, muut ovat joko valmiina (suoritukseen) tai odottavat (esim. IO-operaation päättymistä) • Käyttöjärjestelmän suoritus on myös yksi prosessi. Se luo ja tuhoaa sovellusprosesseja, käynnistää ja pysäyttää niiden suorituksen, sekä jakaa niille systeemin resursseja (suoritusaikaa, muistitilaa, oheislaitteiden käyttövuoroja). • Usein myös sovellusprosessit voivat luoda avukseen uusia ”lapsiprosesseja”.

Prosessien tilanvaihto • Tilanvaihtokaavio: RUN 1 4 3 WAIT READY 2 • Tilasiirtymät: 1

Prosessien tilanvaihto • Tilanvaihtokaavio: RUN 1 4 3 WAIT READY 2 • Tilasiirtymät: 1 Aktiivinen prosessi siirtyy odotustilaan jonkin ulkoisen syyn takia (esim. IO-järjestelmältä tai toiselta prosessilta tarvittavan datan odotus); käyttöjärjestelmä (ajoittaja, engl. scheduler) valitsee uuden aktiivisen prosessin) 2 Odotuksen syy poistuu (esim. IO valmistuu); prosessi siirtyy valmiustilaan 3 Valmiustilassa oleva prosessi saa ajoittajalta suoritusvuoron 4 Aktiivinen prosessi siirty valmiustilaan sille annetun aikaviipaleen loppumisen takia

Prosessien tilanvaihto (jatkuu) • Esimerkki (HT k-98): Oletetaan, että tietokoneen suoritettavana on kolme prosessia,

Prosessien tilanvaihto (jatkuu) • Esimerkki (HT k-98): Oletetaan, että tietokoneen suoritettavana on kolme prosessia, jotka kukin ensin suoríttavat jotain laskutehtävää 1 ms ajan, sitten lukevat syötelaitteelta 2 ms ajan, ja taas laskevat 1 ms ajan. Kauanko prosessien suorittamiseen yhteensä kuluu aikaa (a) ilman moniajoa (prosessien vaihtoa), (b) moniajojärjestelmässä? Entä jos laitteistossa olisi kaksi prosessoria? Entä kaksi prosessoria ja kaksi syöttölaitetta?

Keskeytykset • Useimmat prosessien tilasiirtymät liittyvät keskeytyksiin (engl. interrupt): jokin oheislaite, kello tai prosessi

Keskeytykset • Useimmat prosessien tilasiirtymät liittyvät keskeytyksiin (engl. interrupt): jokin oheislaite, kello tai prosessi ilmoittaa vaativansa toimenpiteitä • Keskeytysten käsittely: – laite tai ohjelma tekee keskeytyspyynnön merkitsemällä syyn johonkin lipukkeeseen (engl. flag) – prosessori tutkii jokaisen suorittamansa konekäskyn jälkeen lipukkeet ja huomaa keskeytyksen – uudet keskeytykset estetään käsittelyn ajaksi – prosessori tallettaa keskeytyneen prosessin ympäristön keskeytyskäsittelijän muistialueelle, jotta suoritusta voidaan jatkaa myöhemmin – prosessori suorittaa erityisen keskeytyskäsittelyrutiinin, joka tunnistaa keskeytyssignaalin lähteen ja käynnistää vastaavan palvelun – keskeytyskäsittelyn päätteeksi prosessori palauttaa keskeytyneen prosessin ympäristön ja jatkaa sen suoritusta -- tai mahdollisesti siirtää prosessin valmiustilaan ja vaihtaa aktiivista prosessia – keskeytykset sallitaan taas

Muistinhallinta • Ohjelmaa kirjoitettaessa/käännettäessä sen sijaintia muistissa ei vielä tiedetä; muistialue varataan vasta kun

Muistinhallinta • Ohjelmaa kirjoitettaessa/käännettäessä sen sijaintia muistissa ei vielä tiedetä; muistialue varataan vasta kun ohjelman suorittava prosessi luodaan • Prosesseja voidaan myös suorituksen aikana siirtää muistialueelta toiselle, mahdollisesti jopa keskus- ja tukimuistin välillä • Ohjelman käyttämä ”looginen” osoiteavaruus voi olla suurempi kuin koneessa olevan fyysisen keskusmuistin määrä • Kustannussyistä tietokoneen muistilaitteet muodostavat hierarkian nopeista mutta kalliista muistiyksiköistä halpoihin mutta hitaisiin: rekisterit välimuisti keskusmuisti levypuskuri kiintolevy • Käyttöjärjestelmä piilottaa muistinhallinnan yksityiskohdat sovellusohjelmilta: sovellusten kannalta muisti on yksi suuri yhtenäinen alue.

Virtuaalimuisti • Ratkaisu muistinhallinnan ongelmiin: ohjelman osoiteavaruus ja fyysinen muistiavaruus erotetaan täysin toisistaan. Loogiset

Virtuaalimuisti • Ratkaisu muistinhallinnan ongelmiin: ohjelman osoiteavaruus ja fyysinen muistiavaruus erotetaan täysin toisistaan. Loogiset osoitteet ja fyysiset muistipaikat yhdistetään toisiinsa prosessikohtaisilla sivutauluilla (engl. page tables) • Osoiteavaruus jaetaan 2 r tavun sivuihin (r = 9. . 13), jotka fyysisesti voidaan sijoittaa aivan eri paikkoihin (tyhjiä sivuja ei tarvitse edes luoda) • Ohjelman viitatessa osoitteeseen m = a*2 r + b järjestelmä hakee ensin sivutaulusta indeksillä a vastaavan fyysisen sivun alkuosoitteen; b on tällöin halutun paikan suhteellinen muistiosoite ao. sivulla • Sivu voi olla joko valmiiksi keskusmuistissa tai se voidaan joutua noutamaan tukimuistista. Jälkimmäisessä tapauksessa viittaus sivutauluun aiheuttaa sivunvaihtokeskeytyksen (engl. page fault) • Uuden sivun tuonti keskusmuistiin merkitsee yleensä jonkin vanhan sivun poistamista levylle. Poistettava sivu voidaan valita eri tavoin.

Virtuaalimuisti (kaavio): käsky osoitteenmuod. a b a’ virtuaaliosoite M? levyosoite X sivutaulu b todellinen

Virtuaalimuisti (kaavio): käsky osoitteenmuod. a b a’ virtuaaliosoite M? levyosoite X sivutaulu b todellinen os. muistiosoite

Virtuaalimuisti (jatkuu) • Esimerkki (HT k-98): Yksi virtuaalimuistin sivunvaihtoperiaate on palauttaa tukimuistiin se sivu,

Virtuaalimuisti (jatkuu) • Esimerkki (HT k-98): Yksi virtuaalimuistin sivunvaihtoperiaate on palauttaa tukimuistiin se sivu, jonka edellisestä käytöstä on kulunut mahdollisimman kauan (LRU = least recently used). Oletetaan, että LRU-periaatetta käyttävä järjestelmä suorittaa prosessia, jonka osoiteviittausten jono on 51, 1076, 52, 3974, 2342, 53, 1511, 3975, 54, 2782, 3976, 3123. Montako sivunvaihtoa prosessin suoritus aiheuttaa, kun järjestelmän sivunkoko on 1000, ja prosessin käyttöön on annettu kaksi fyysistä keskusmuistisivua? Entä jos prosessille annettaisiin kolme fyysistä keskusmuistisivua?

Tietokoneverkot • Tietokoneet liitetään nykyisin yleensä yhteen verkoiksi. – Samaan organisaatioon kuuluvat, tiiviisti kytketyt

Tietokoneverkot • Tietokoneet liitetään nykyisin yleensä yhteen verkoiksi. – Samaan organisaatioon kuuluvat, tiiviisti kytketyt koneet muodostavat lähiverkon (LAN = local area network, esim. JY: n mikroverkko) – Joukko yhteen kuuluvia lähiverkkoja muodostaa alueverkon (WAN = wide area network, esim. Suomen korkeakouluverkko FUNET) – Kaikki (? ) maailman alueverkot kuuluvat yhteiseen kansainväliseen Internet-verkkoon • Lähiverkoissa on yleensä käyttäjien omien työasemakoneiden lisäksi myös yhteiskäyttöisiä palvelimia: tiedostopalvelimia, oheislaitepalvelimia, tietoliikennepalvelimia jne. • Tieto siirretään tietokoneverkoissa paketteina, jotka sisältävät varsinaisen siirrettävän datan lisäksi tiedon siitä, mihin koneeseen paketti on kuljetettava • Lähiverkkojen tavallisimmat kytkentäratkaisut ovat Ethernet-väylä ja valtuusrengas (”Token Ring”). Yleistymässä ovat tähtikytkentäiset ATM-verkot. Internet-verkossa noudatetaan TCP/IP- yhteyskäytäntöä.

Lähiverkkojen yhteyskäytännöt • Ethernet-väylä P 1 P 2 P 3 • Valtuusrengas (Token Ring

Lähiverkkojen yhteyskäytännöt • Ethernet-väylä P 1 P 2 P 3 • Valtuusrengas (Token Ring network) P 2 P 1 P 3 • ATM-verkko P 2 P 3 ATMkytkin P 1

ISO: n OSI-malli • Tietoliikennejärjestelmien suunnittelustandardi • Virtuaalikone-idean sovellus tietoliikenteeseen: 7 kerrosta, joista kussakin

ISO: n OSI-malli • Tietoliikennejärjestelmien suunnittelustandardi • Virtuaalikone-idean sovellus tietoliikenteeseen: 7 kerrosta, joista kussakin voidaan rakentaa tietoliikenneratkaisuja alemman kerroksen ”virtuaaliverkon” tarjoamien palvelujen pohjalle Sovelluskerros Esitystapakerros Yhteysjaksokerros Kuljetuskerros Verkkokerros Siirtokerros Fyysinen kerros

Rinnakkaiskoneet • Tietokoneiden laskentatehoa on pyritty lisäämään kytkemällä useita prosessoreita toimimaan synkronisesti (”tasatahtisesti”) rinnakkain.

Rinnakkaiskoneet • Tietokoneiden laskentatehoa on pyritty lisäämään kytkemällä useita prosessoreita toimimaan synkronisesti (”tasatahtisesti”) rinnakkain. Tällaisissa rinnakkaiskoneissa prosessorit on kytketty toisiinsa ja (yleensä) yhteiseen keskusmuistiin erittäin nopeilla väylillä. • Prosessoreita voi olla esim. 8 (SUN UE 4000, JYTIE), 224 (Cray T 3 E, CSC) tai 65536 (TMC/CM 2). • Prosessorit voidaan kytkeä yhteen eri tavoin; kaksi suorittua topologiaa ovat hila ja hyperkuutio:

Rinnakkaiskoneiden luokittelua ja arviontia • Rinnakkaiskoneet luokitellaan prosessorien itsenäisyyden mukaan seuraavasti: – tehtävärinnakkaiset koneet

Rinnakkaiskoneiden luokittelua ja arviontia • Rinnakkaiskoneet luokitellaan prosessorien itsenäisyyden mukaan seuraavasti: – tehtävärinnakkaiset koneet (engl. MIMD = multiple instruction streams, multiple data streams): varsinaiset rinnakkaiskoneet (kuten ed. ), täysin itsenäiset prosessorit – datarinnakkaiset koneet engl. SIMD = single instruction stream, multiple data streams): erikoiskoneita, joissa kaikki prosessorit suorittavat samaa ohjelmaa, mutta eri data-alkioille • Rinnakkaiskoneiden arviointia: – Etu: laskennan nopeutuminen – Ongelmia: • algoritmien rinnakkaistaminen vaikeaa • kalliita erikoislaitteita, vanhenevat nopeasti • Mielenkiintoinen idea: työasemaverkon käyttö rinnakkaislaskentaan – Etu: standardilaitteita, hankitaan muutenkin, päivitetään jatkuvasti – Ongelmia: hidas kommunikointi, asynkronisen rinnakkaisuuden hallinta vaikeaa