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 perus­raken­teen

(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ärjes­telmän aseman nyky­aikaisessa 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 soveltu­vuutta annettuun tehtävään tai laite­ympäristöön.

Osaa analysoiden perustella eri ratkaisujen hyvät ja huonot puolet.

Prosessien ja säikeiden hallinta

Osaa selittää ohjel­man 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 vuoronanto­menetel­mien soveltuvuutta erilaisilla työ­kuormilla.

Osaa valita ja perustella tarkoituk­sen­mukaisen säikeiden suoritus­tavan 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 aiheut­tama yleisrasite on kohtuullinen.

Rinnakkaisuus ja rinnakkaisuudesta aiheutuvat ongel­mat

Osaa selittää, missä rinnak­kaisuutta esiintyy ohjelmissa ja järjestelmissä, miten rinnakkais­ohjelmien suori­tuksia kuvataan ja mitä ongelmia rinnakkaisuudesta voi seurata.

Osaa selittää proses­sorin toiminnan kone­käskyjen suorittajana.

Osaa selittää, miten prosessien rinnak­kainen eteneminen konekäskyjen tasolla perustuu  laitteisto­keskeytyksiin ja käyttöjärjestelmän
vuoronantopäätöksiin.

(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ää esimerk­kien avulla, mitkä tekijät johtavat rinnakkaisiin toimintoihin laitteisto- ja ohjelmistotasolla.

Osaa selittää erilaisten suoritus­skenaarioiden merkityksen rinnak­kaisohjelmien suoritusta tutkittaessa.

Osaa antaa esimerkkejä yleisistä ongelmista, joihin virheellinen rinnakkaisratkaisu voi johtaa.

Osaa selittää prosessien suorituk­sen etenemisen epädeter­ministisen luonteen ja sen vaikutukset.

Osaa selittää rinnakkaisuuden edut, haitat, toteutustasot ja toteutusmenetelmät.

Osaa selittää rinnakkaisuus­ongelmien 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 rinnak­kaistettavuuden.

Osaa maksimoida rinnak­kais­tettavuuden määrän sovelluksessa.

Rinnakkaisohjel­moinnin perus­kä­sitteistö ja perus­mallit

Osaa selittää rin­nakkaisen suori­tuk­sen ongelma-alueet, yleiset ratkaisu­mallit sekä usein käytetyt malli­esimerkit.

Osaa ohjelmoida yksisäikeisiä ohjelmia.

(Ohjelmoinnin perusteet)

 

Osaa selittää käyttö­järjestelmän toimin­nan prosessien vuo­ron­annossa ja resurs­sien 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 puomi­synkronointi.

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 me­­ne­telmä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 lukkiutumis­tilanne 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 toimi­vuuden.

Muistinhallinta ja virtuaalimuisti (VM)

Osaa kuvata miten tiedonsiirto muistin ja suorittimen välillä yksinkertaisimmillaan tapahtuu.

Osaa selittää kanta- ja rajarekisterien käytön osoitteenmuunnok­ses­­sa.

(TiTo)

Osaa kuvata VM-toteutuksen yleis­periaatteen ja keskeiset käsitteet (sivutus, sivutaulu, osoitteenmuunnos ja TLB, sivunpuutos)

Osaa kuvata monitasoisen sivuttavan VM:n toiminnan.

Osaa algoritmitasolla simuloida osoit­teen­muunnoksen sivuttavaa VM:ää käyttävässä järjestelmässä.

Osaa analysoida sivukoon vaikutu­ksia sekä prosessin toimintaan että sivutaulun kokoon. Osaa perustella tietyn sivukoon valinnan.

Osaa kuvata (monitasoisten) sivu­tus- ja segmentointi­menetel­mien hyödyt ja haitat.

Osaa algoritmitasolla selittää VM-toteutuksen: sivujen kor­vaus-, nouto- ja poistomene­telmä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äsit­teet.

Tuntee laiteajurin toimintaperiaatteen.

Hallitsee keskeytys­me­kanismin.

(TiTo)

Osaa kuvata tiedosto-järjestelmän perus­­rakenteen ja sen osien yhteis­toiminnan.

Osaa selittää, miten kommunikointi oheis­laitteiden 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 tiedosto­järjestelmän (esim. NFS) toiminta­periaatteen.

Osaa selittää erilaisten RAID-toteutus­ten piirteet ja vertailla niiden ominai­suuksia.

Osaa selittää usea tiedosto­jär­jes­telmä toiminnan yhteis­käy­tössä.

Osaa valita erikois­tarkoitukseen soveltuvat menetelmät.

Osaa tarvittaessa muokata käyt­töjärjestelmän ja oheis­lait­teiden yhteistoimintaa järjes­tel­mä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ärjes­telmässä: synkroninen ja epäsyn­kro­ninen kommunikointi, sanoman-välitys, RPC, asiakas-palvelin

Osaa selittää etäproseduurikutsun ja asiakas-palvelin mallin toimintaperi­aatteet.

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ärjes­telmien täsmällisen toiminnan.

Osaa selittää prosessien migraation toteutuksen.

Osaa selittää poissulkemis- ja lukkiutumisongelmien erityis­piirteet ja ratkaisumenetelmät hajautetussa järjestelmässä.

 

24.10.2012 - 12:39 Teemu Kerola
22.10.2012 - 14:02 Teemu Kerola