ITKA2030 Käyttöjärjestelmien ja pilvipalveluiden perusteet (5 op)
Kuvaus
Käyttöjärjestelmän rakenne ja periaatteet, rinnakkaisuus, ajoitus, muistin hallinta, oheislaitteiden hallinta, tiedostojärjestelmä. Konekielisen ohjelmoinnin perusteita. Unix-tyyppisen kuoren käyttöä. Pilvipalvelut ja kontit.
Osaamistavoitteet
Kurssin asiat omaksuttuaan opiskelija tuntee käyttöjärjestelmän tarkoituksen ja perustoiminnot (mm. prosessien hallinta, resurssien ja ajastuksen koordinointi, muistinhallinta, oheislaitteiden ohjaus, keskeytysten ja käyttöjärjestelmäkutsujen käsittely, tiedostojärjestelmä, kuori). Hän ymmärtää prosessorin suoritussyklin, konekielisen ohjelman perusohjausrakenteet, käyttöjärjestelmän kutsurajapinnan periaatteen, keskeytyskäsittelyn sekä pinomuistia käyttävän aliohjelma-aktivaation tapahtumisen natiivissa ohjelmassa prosessorin toimenpiteenä. Hän tuntee virtualisoinnin perusperiaatteet ja osaa toimittaa ohjelmaosion konttina pilvipalvelimella ajettavaksi. Hän tunnistaa tarpeen ja hyödyt palveluiden, prosessien ja säikeiden samanaikaisesta (concurrent) suorittamisesta sekä osaa varautua tähän liittyviin synkronointitarpeisiin.
Esitietojen kuvaus
Ohjelmointi 1 ja Ohjelmointi 2 -kurssien hyvä hallinta on välttämätön esitieto. Tietokoneen rakenne ja arkkitehtuuri sekä Algoritmit 1 auttavat, vaikka tarvittavat osat mainituista voidaan hahmottaa kurssilla myös ensimmäistä kertaa. Esitietojen puuttuessa opiskelijan tulee varautua käyttämään aikaa niiden opiskeluun varsinaisen sisällön lisäksi.
Oppimateriaalit
Paikallinen avoin kurssimateriaali. Lisäksi reaalimaailman dokumentaatiota, esim. POSIX-standardi, C99-kielen standardi, AMD64-prosessorimanuaali, Docker-dokumentaatio, tieteelliset artikkelit.