HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 21. desember 2005 Varighet: 3 timer ( 9:00 12:00 ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: FU (1. ING) (BADR) Studiepoeng: 6 studiepoeng Faglærere: Walter Keim (73 55 95 74) Kursassistent Siri Wæhre Lien (73 55 91 54) Hjelpemidler: Ingen hjelpemidler. Oppgavesettet består av: 4 oppgaver og 5 vedlegg merket Vedlegg A, Vedlegg B, Vedlegg C, Vedlegg D og Vedlegg E Oppgave 4 har flervalgsspørsmål. Disse skal besvares i et eget skjema som du finner i Vedlegg A. Vedlegg B er en kopi av Vedlegg A som du kan fylle ut dersom du vil ta med deg svarene dine hjem. Totalt består oppgavesettet av 10 sider (medregnet denne forsiden) VIKTIG: Husk å levere arket merket med Vedlegg A sammen med resten av besvarelsen din. Tallet i prosent bak hver oppgave angir hvor mye oppgaven teller totalt sett. Side 1 av 10
Oppgave 1 Generelt om operativsystemer (vekt: 30%) a) Operativsystemet har bestemte oppgaver i et datamaskinsystem. Gjør kort rede for operativsystemets plassering i systemet og oppgavene den utfører. b) Et viktig begrep innen operativsystemer er multiprogrammering (multitasking). Hva menes med multiprogrammering? Hva er bakgrunnen for innføring av multiprogrammering i datamaskinsystemer, eller sagt på en annen måte - hvorfor har det noen hensikt? Hvilke fordeler gir multiprogrammering? c) Minneadministrasjon dreier seg mye om at prosesser må kunne relokeres (dvs flyttes på) i minnet. Hvorfor er det ønskelig å kunne flytte på prosesser? d) Tenk deg følgende eksempel: På en bestemt UNIX-maskin er 15 brukere innlogget, og disse kjører til sammen ca 60 programmer. Hvordan er dette mulig når en tross alt har bare en CPU og et begrenset primærlager? Gi en kort redegjørelse for dette! e) I et flerbrukersystem er kravene til sikkerhet større enn det var i et system av typen MS-DOS. Hvorfor? Oppgave 2 Prosesser (20%) a) Aktiviteter i datamaskinsystemer er organisert som prosesser. Gjør rede for hva prosesser er og hvorfor de er så viktige i datamaskinsystemer. b) Prosesser opprettes i Linux med fork- og exec-systemkallet. Forklar kort hvordan disse systemkallene virker. Gi et kort eksempel som demonstrerer virkemåten. c) Tråder er etter hvert blitt et viktig begrep. Sammenlign en prosess og tråd. Hva er forskjellen og hva er likhetene? Hvorfor brukes tråder? Gi eksempler på bruk av tråder. d) Prosesser kan kjøre i bruker-modus og i kjerne-modus. Hva er forskjellen på brukermodus og kjernemodus? Hvorfor må prosessene kjøre i kjernemodus? Side 2 av 10
Oppgave 3 Prosesskommunikasjon (20%) a) Prosesser kommuniserer med hverandre. I den forbindelse er det laget forskjellige mekanismer for at kommunikasjonen skal gå problemfritt. Hva slags problemer er det som kan oppstå når prosesser kommuniserer med hverandre? b) Hva menes med et kritisk område (region) for en prosess, og hvorfor er dette viktig å ta hensyn til? c) Tenk deg at en prosess utfører en wait-operasjon på en semafor. Kan vi da regne med at prosessen da går inn i en vente-tilstand ("blocked")? Forklar! d) Tre prosesser, p1, p2 og p3, er i ventetilstand ("blocked") på den samme semaforen. En annen prosess,, p4, utfører en signal-operasjon på denne semaforen. Hva skjer? Tegn og forklar! Oppgave 4 Diverse flervalgsspørsmål (30%) Her er 18 spørsmål. Bruk tabellen i Vedlegg A til å svare hvilket alternativ som passer best til de ulike spørsmålene. Du kan ikke velge flere alternativer på et spørsmål. For hvert riktige svar får du 2 poeng. For hvert galt svar får du minus 1 poeng, altså -1 poeng. Dersom du ikke svarer får du 0 poeng på spørsmålet. 1. Hva er ressursabstraksjon? a. Å allokere ressurser til prosesser. b. Å skjule forskjeller mellom ulik type maskinvare. c. Å abstrahere ressurser til prosesser. 2. Hva er hovedbegrunnelsen for å innføre multitasking i et operativsystem? a. Fordi det tar lang tid å utføre I/O. b. Når prosessoren kan motta instruksjoner fra flere prosesser samtidig og utføre disse parallelt, blir alt mye mer effektivt. c. Dette er en minneteknikk som tilsier at flere oppgaver kan lastes inn i minnet samtidig. 3. Hva skjer når en prosess går over i kjernemodus? a. Operativsystemet overtar kontrollen. b. Prosessen jobber mot lokale variabler. c. Prosessen får lov å foreta så mange systemkall den vil. 4. Hva er riktig? a. Det trengs et driverprogram for hver utstyrsenhet som er tilkoblet maskinen. b. Dersom en prosess finner at en I/O-ressurs er i bruk i et avbruddsstyrt system, vil prosessen sjekke igjen helt til ressursen er ledig. c. Både a og b er riktig 5. Hva er riktig? a. Bruk av en kanal (engelsk pipe ) gjør at en Linux-kommando kan brukes i stedet for en annen. Side 3 av 10
b. Hvis en prosess skal skrive til fil i stedet for til skjerm, brukes en kanal. c. En kanal åpner for direkte kommunikasjon av data mellom prosesser. 6. Race conditions er når: a. gjensidig utelukkelse er oppnådd. b. flere prosesser aksesserer samme dataområde samtidig og resultatet ikke kan forutsies. c. felles dataområde aksesseres av en og en prosess. 7. Påstand: Operasjonene wait() og signal() må være atomiske. a. Feil. De må ikke være atomiske. b. Riktig. Hvis avbrudd skjer under kjøring av disse operasjonene, vil systemet gå i stå. c. Delvis riktig. Påstanden er sann for binære semaforer, men ikke for tellende semaforer. 8. Hva er sant om preemtiv scheduling? a. Det blir alltid lav responstid for I/O-intensive prosesser. b. Kjørende prosess kan bli avbrutt som konsekvens av at nye prosesser ankommer CPU-køen. c. Ingen av alternativene over. 9. Ordet subjekt brukes i forbindelse med sikkerhet. Hva betyr det? a. Ressurs b. Bruker/prosess c. At ressursfordelingen er subjektiv 10. Hvilken av følgende sikkerhetsmekanismer brukes i Linux? a. Kontroll matrise b. Kontrollaksess-liste c. Kontrollaksess-liste og capability -liste 11. Inode er: a. En fildeskriptor b. En hard lenke c. En symbolsk lenke 12. Systemkallet write(id, buffer, antall-byte) skriver et angitt antall byte (data) til en fil. Hvilket utsagn er mest riktig? a. Dataene skrives direkte ut på permanent lager. b. Det er bestandig systemkallet close(id) som sørger for lagring til permanent lager. c. Dataene skrives til permanent lager først når bufferet er fullt. 13. I Linux adresseres datablokker via indeksblokker. Man opererer her med direkte, indirekte, dobbel indirekte og trippel indirekte indeksering. Hvor stor kan en fil være om vi forutsetter indirekte indeksering? Hver adresse er på 8 byte og datablokkene er på 8K a. 8K b. 1M c. 8M 14. En metode for å unngå vranglås er kalt sirkulær venting. Denne metoden er: a. En type vranglås, hvor prosessene venter på ressurser som allerede er opptatt av andre prosesser. b. En måte å unngå vranglås ved at ressursene må allokeres i en bestemt rekkefølge (for eksempel stigende nummerrekkefølge). c. At alle prosesser får lit tid i CPU 15. Vedlegg C viser et systemet hvor Bankers algoritme brukes. Hvilken tilstand er dette systemet i? a. Sikker tilstand. b. Usikker tilstand c. Vranglås 16. Vedlegg D viser utskrift fra et konsollvindu i Linux. Hva blir inode-numrene for test og test2 når Side 4 av 10
siste kommando (i utskriften) er kjørt? a. test får nummer 1 og test2 et vilkårlig nummer. b. test får nummer 49203 og test2 nummer 1. c. test får nummer 49203 og test2 får et vilkårlig nummer. 17. Hva blir utskriften ved kjøring av programmet i vedlegg E? a. startslutt b. startsluttslutt c. startsluttsluttsluttslutt 18. Hvordan opprettes en ny prosess i Linux? a. Via systemkallet fork() b. Via systemkallet exec() c. Det er ikke mulig for brukerprogrammer å opprette nye prosesser. Side 5 av 10
Vedlegg A Svar på flervalgsspørsmålene (leveres) Her skal du skrive inn dine svar på flervalgsspørsmålene fra Oppgave 4. Merk at du kan la feltet stå blankt, i henhold til reglene for beregning som ble forklart i Oppgave 4. Det er brukt tykke linjer etter hver tredje rad for å gjøre det lettere å plassere svarene i riktig rute. Ditt studentnummer: Spørsmålsnummer 1 2 3 Ditt svar 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Side 6 av 10
Vedlegg B Svar på flervalgsspørsmålene (kopi til deg) Her skal du skrive inn dine svar på flervalgsspørsmålene fra Oppgave 4. Merk at du kan la feltet stå blankt, i henhold til reglene for beregning som ble forklart i Oppgave 4. Det er brukt tykke linjer etter hver tredje rad for å gjøre det lettere å plassere svarene i riktig rute. Denne tabellen er nøyaktig lik den i Vedlegg A. Her kan du føre over svarene dine dersom du vil ta disse med deg hjem etter eksamen. Ditt studentnummer: Spørsmålsnummer 1 2 3 Ditt svar 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Side 7 av 10
Vedlegg C R1 R2 R3 R1 R2 R3 P1 3 2 2 P1 2 0 2 R1 R2 R3 P2 6 1 3 P2 4 1 3 3 3 5 P3 3 1 4 P3 3 1 0 P4 1 1 1 P4 1 1 1 Krav tabell Allokert tabell Tilgjengelig tabell Side 8 av 10
Vedlegg D Under vises utskrift fra et konsollvindu (i Linux). Kommandoer er skrevet med fet skrift, men utskrift som resultat av kommandoen finner du med vanlig skrift. ls -ial 51311 drwxrwxr-x 2 tomash tomash 4096 mai 10 15:26./ 567841 drwxr-xr-x 55 tomash tomash 4096 mai 10 15:16../ 49203 -rw-r--r-- 1 tomash tomash 0 mai 10 15:19 startfil ln startfil test ln -s startfil test2 Side 9 av 10
Vedlegg E #include <stdio.h> int main(){ printf("start"); fork(); fork(); printf("slutt"); } Side 10 av 10