Käyttöjärjestelmät (6 op), oppimistavoitteet 2012-2014
Pääteemat | Esitiedot | Lähestyy oppimistavoitetta | Saavuttaa oppimistavoitteet | Syventää oppimistavoitteita |
---|---|---|---|---|
Käyttöjärjestelmän rakenne ja toimintaperiaate |
Tuntee tietokoneen toimintaperiaatteen ja suorittimen perusrakenteen (TiTo) |
Osaa kuvata käyttöjärjestelmien tarjoamat palvelut ja niiden toiminnan. Osaa kuvata käyttöjärjestelmän yleiset rakenneratkaisut rajapintoineen. Osaa selittää käyttöjärjestelmän aseman nykyaikaisessa tietojenkäsittely-ympäristössä. |
Osaa kuvata käyttöjärjestelmän tehtävät ja rakenteen sekä yhden koneen että hajautetun järjestelmän kannalta. Osaa kuvata tietyn (esim. Linux, Windows) käyttöjärjestelmän rakenneratkaisut ja rajapinnat. |
Osaa arvioida erilaisten käyttöjärjestelmien soveltuvuutta annettuun tehtävään tai laiteympäristöön. Osaa analysoiden perustella eri ratkaisujen hyvät ja huonot puolet. |
Prosessien ja säikeiden hallinta |
Osaa selittää ohjelman suorittamisen konekielen tasolla. Osaa kuvata käskysyklin. (TiTo) |
Osaa kuvata prosessien ja säikeiden hallintarakenteet ja käyttöjärjestelmän tehtävät niihin liittyen. Osaa kuvata yleisimmät prosessien vuoronantotekniikat. Osaa kuvata prosessien suojausmekanismit ja erilaisten suoritustilojen (käyttäjä/etuoikeutettu) käyttämisen. Osaa kuvata erilaiset tavat suorittaa säikeitä eri tasoilla. |
Osaa algoritmitasolla kuvata tietyn käyttöjärjestelmän käyttämän ratkaisun. Osaa vertailla vuoronantomenetelmien soveltuvuutta erilaisilla työkuormilla. Osaa valita ja perustella tarkoituksenmukaisen säikeiden suoritustavan ohjelmiston toiminnan kannalta. |
Osaa suunnitella ja toteuttaa annetun tehtävän kannalta käyttökelpoisen prosessi- ja/tai säieratkaisun, joka kyseisessä käyttöjärjestelmässä on sekä muistin että suorittimen käytön kannalta tehokas ja jonka aiheuttama yleisrasite on kohtuullinen. |
Rinnakkaisuus ja rinnakkaisuudesta aiheutuvat ongelmat Osaa selittää, missä rinnakkaisuutta esiintyy ohjelmissa ja järjestelmissä, miten rinnakkaisohjelmien suorituksia kuvataan ja mitä ongelmia rinnakkaisuudesta voi seurata. |
Osaa selittää prosessorin toiminnan konekäskyjen suorittajana. Osaa selittää, miten prosessien rinnakkainen eteneminen konekäskyjen tasolla perustuu laitteistokeskeytyksiin ja käyttöjärjestelmän (TiTo) |
Osaa selittää säikeiden ja prosessien yhteiskäyttöisen muistialueen käytön ja sanomanvälityksen (IPC). Osaa selittää rinnakkaisuuden tarpeen sovelluksessa. Osaa selittää esimerkkien avulla, mitkä tekijät johtavat rinnakkaisiin toimintoihin laitteisto- ja ohjelmistotasolla. Osaa selittää erilaisten suoritusskenaarioiden merkityksen rinnakkaisohjelmien suoritusta tutkittaessa. Osaa antaa esimerkkejä yleisistä ongelmista, joihin virheellinen rinnakkaisratkaisu voi johtaa. |
Osaa selittää prosessien suorituksen etenemisen epädeterministisen luonteen ja sen vaikutukset. Osaa selittää rinnakkaisuuden edut, haitat, toteutustasot ja toteutusmenetelmät. Osaa selittää rinnakkaisuusongelmien ratkaisuille asetettavat vaatimukset (esim. oikeellisuuden määrittely ja oikeellisuus kaikissa skenaarioissa) ja osaa löytää virheelliseen lopputulokseen johtavan skenaarion. |
Osaa selittää rinnakkaisuuden erilaisen luonteen laitteisto-, ohjelmisto- ja verkkotasojen toiminnoissa. Osaa arvioida sovelluksen rinnakkaistettavuuden. Osaa maksimoida rinnakkaistettavuuden määrän sovelluksessa. |
Rinnakkaisohjelmoinnin peruskäsitteistö ja perusmallit Osaa selittää rinnakkaisen suorituksen ongelma-alueet, yleiset ratkaisumallit sekä usein käytetyt malliesimerkit. |
Osaa ohjelmoida yksisäikeisiä ohjelmia. (Ohjelmoinnin perusteet)
Osaa selittää käyttöjärjestelmän toiminnan prosessien vuoronannossa ja resurssien jakelijana. (TiTo) |
Osaa selittää rinnakkaisen suorituksen peruskäsitteet: atomisuus, kriittinen vaihe, synkronointi, kommunikointi, lukkiutuminen. Osaa selittää rinnakkaisohjelmoinnin perusmallit: kriittisen vaiheen ongelma, vuorolappu, lukijat-kirjoittajat, tuottaja-kuluttaja, asiakas-palvelin ja puomisynkronointi. Osaa kuvata lukkiutumistilanteen synnyn ja selittää välttämättömät ja riittävät ehdot lukkiutumiselle. |
Osaa suunnitella kriittisen vaiheen ongelman ratkaisun laitteistotukea hyödyntäen tilanteeseen parhaiten sopivalla menetelmällä: keskeytysten esto, busy-wait, semafori, monitori, viestit. Osaa selittää semaforin ja monitorin rakenteet, ja käyttää niitä oikein ongelmien ratkaisuissa. Osaa soveltaa perusmalleja todellisissa ongelmanratkaisuissa. Osaa selittää, kuinka lukkiutumistilanne voidaan havaita DDA-algoritmilla, kuinka havaitusta lukkiutumisesta voidaan toipua ja kuinka lukkiutumistilanne voidaan ennakolta estää joko pankkiirin algoritmilla tai muilla tavoin. |
Osaa arvioida perusmallien käyttökelpoisuutta erilaisilla laitteisto- ja ohjelmistoalustoilla. Osaa suunnitella kriittisen vaiheen ongelman ratkaisun ilman laitteistotukea: Dekkerin ja Petersonin algoritmit. Osaa ohjelmoida semaforin ja monitorin lukkomuuttujia käyttäen. Osaa ohjelmoida monitorin semaforeja käyttäen. Osaa todistaa monimutkaisten rinnakkaisalgoritmien toimivuuden. |
Muistinhallinta ja virtuaalimuisti (VM) |
Osaa kuvata miten tiedonsiirto muistin ja suorittimen välillä yksinkertaisimmillaan tapahtuu. Osaa selittää kanta- ja rajarekisterien käytön osoitteenmuunnoksessa. (TiTo) |
Osaa kuvata VM-toteutuksen yleisperiaatteen ja keskeiset käsitteet (sivutus, sivutaulu, osoitteenmuunnos ja TLB, sivunpuutos) Osaa kuvata monitasoisen sivuttavan VM:n toiminnan. Osaa algoritmitasolla simuloida osoitteenmuunnoksen sivuttavaa VM:ää käyttävässä järjestelmässä. |
Osaa analysoida sivukoon vaikutuksia sekä prosessin toimintaan että sivutaulun kokoon. Osaa perustella tietyn sivukoon valinnan. Osaa kuvata (monitasoisten) sivutus- ja segmentointimenetelmien hyödyt ja haitat. Osaa algoritmitasolla selittää VM-toteutuksen: sivujen korvaus-, nouto- ja poistomenetelmät. |
Osaa analysoida ja valita sovellukselle parhaiten sopivan muistinhallintamekanismin ja konfiguroida käyttöjärjestelmän muistinhallinnan tukemaan sovelluksen toimintaa. Osaa käytännössä toteuttaa sivuttavan VM:n. |
Tiedostojärjestelmä ja oheislaitteiden hallinta |
Tuntee hakemistojen ja tiedostojen käsitteet. Tuntee laiteajurin toimintaperiaatteen. Hallitsee keskeytysmekanismin. (TiTo) |
Osaa kuvata tiedosto-järjestelmän perusrakenteen ja sen osien yhteistoiminnan. Osaa selittää, miten kommunikointi oheislaitteiden ja käyttöjärjestelmän välillä toimii. Osaa selittää RAID-toteutusten perusidean. |
Osaa verrata Windowsin ja Linuxin tiedostojärjestelmiä toisiinsa. Osaa selittää hajautetun tiedostojärjestelmän (esim. NFS) toimintaperiaatteen. Osaa selittää erilaisten RAID-toteutusten piirteet ja vertailla niiden ominaisuuksia. |
Osaa selittää usea tiedostojärjestelmä toiminnan yhteiskäytössä. Osaa valita erikoistarkoitukseen soveltuvat menetelmät. Osaa tarvittaessa muokata käyttöjärjestelmän ja oheislaitteiden yhteistoimintaa järjestelmän toiminnan parantamiseksi. |
Sulautetut ja hajautetut järjestelmät |
Osaa selittää käyttöjärjestelmän tehtävän osana järjestelmää. Osaa selittää, kuinka käyttöjärjestelmä välittää sanomia prosessilta toiselle. (TiTo) |
Osaa selittää sulautettujen käyttöjärjestelmien erityisvaatimukset. Osaa selittää rinnakkaisohjelmoinnin peruskäsitteet hajautetussa järjestelmässä: synkroninen ja epäsynkroninen kommunikointi, sanoman-välitys, RPC, asiakas-palvelin Osaa selittää etäproseduurikutsun ja asiakas-palvelin mallin toimintaperiaatteet. |
Osaa selittää sulautettujen käyttöjärjestelmien ominaisuudet. Osaa selittää, miten viestien välitys ja RPC on toteutettu hajautetussa järjestelmässä. Osaa selittää klusterilaskennan erikoisvaatimukset ja –piirteet käyttöjärjestelmälle. |
Osaa selittää todellisten sulautettujen käyttöjärjestelmien täsmällisen toiminnan. Osaa selittää prosessien migraation toteutuksen. Osaa selittää poissulkemis- ja lukkiutumisongelmien erityispiirteet ja ratkaisumenetelmät hajautetussa järjestelmässä. |