170 likes | 264 Views
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ä, oheislaitteet jne.) käyttöä sovellusohjelmissa
E N D
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ä, 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 ”monitori- ohjelmia” (1950-luku) CTSS (1962) IBM S/360 (1964) ITS MULTICS (1965) DEC TOPS-10 UNIX (1969) 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” • Sama virtuaalikone (esim. Unix-ympäristö) voi myös olla toteutettuna erilaisilla laitteistoilla • Yleisemminkin ohjelmistotyön voi ajatella olevan uusien virtuaalikoneiden rakentamista olemassa-olevien 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 sekä kirjanpitotietoa (suorituskohdan osoitin, sijainti muistissa jne.) (Prosessin ympäristö, engl. context) • Tietokoneessa voi olla suoritettavana saman-aikaisesti 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: • Tilasiirtymät: • 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) • Odotuksen syy poistuu (esim. IO valmistuu); prosessi siirtyy valmiustilaan • Valmiustilassa oleva prosessi saa ajoittajalta suoritusvuoron • Aktiivinen prosessi siirty valmiustilaan sille annetun aikaviipaleen loppumisen takia RUN 1 4 3 WAIT READY 2
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 suoritta-miseen 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 ilmoittaa vaativansa toimenpiteitä • Keskeytysten käsittely: • laite tai ohjelma tekee keskeytyspyynnön merkit-semä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äsittely-rutiinin, 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 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: • Käyttöjärjestelmä piilottaa muistinhallinnan yksityiskohdat sovellusohjelmilta: sovellusten kannalta muisti on yksi suuri yhtenäinen alue. rekisterit välimuisti kiintolevy levypuskuri keskusmuisti
Virtuaalimuisti • Ratkaisu muistinhallinnan ongelmiin: ohjelman osoiteavaruus ja fyysinen muistiavaruus erotetaan täysin toisistaan. Loogiset osoitteet ja fyysiset muistipaikat yhdistetään toisiinsa prosessi-kohtaisilla sivutauluilla (engl. page tables) • Osoiteavaruus jaetaan 2r tavun sivuihin (r = 9..13), jotka fyysisesti voidaan sijoittaa aivan eri paik-koihin (tyhjiä sivuja ei tarvitse edes luoda) • Ohjelman viitatessa osoitteeseen m = a*2r + 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 osoitteen- muod. a b a’ b virtuaaliosoite todellinen os. M? levyosoite muistiosoite X sivutaulu
Virtuaalimuisti (jatkuu) • Esimerkki (HT k-98): Yksi virtuaalimuistin sivunvaihtoperiaate on palauttaa tukimuistiin se sivu, jonka edellisestä käytöstä on kulunut mahdol-lisimman kauan (LRU = least recently used). Oletetaan, että LRU-periaatetta käyttävä järjes-telmä 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ä keskusmuisti-sivua? Entä jos prosessille annettaisiin kolme fyysistä keskusmuistisivua?
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, oheislaite-palvelimia, 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- yhteys-käytäntöä.
Lähiverkkojen yhteyskäytännöt • Ethernet-väylä • Valtuusrengas (Token Ring network) • ATM-verkko P1 P2 P3 P2 P1 P3 P2 ATM- kytkin P1 P3
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. Tällaisissa rinnakkaiskoneissa prosessorit on kytketty toisiinsa ja (yleensä) yhteiseen keskusmuistiin erittäin nopeilla väylillä. • Prosessoreita voi olla esim. 8 (SUN UE4000, JYTIE), 224 (Cray T3E, CSC) tai 65536 (TMC/CM2). • 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 (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