HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 26. mai 25 Varighet: 3 timer ( 9: 2: ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: BADR. ING FU Studiepoeng: 6 studiepoeng Faglærere: Tomas Holt (73 55 95 7) Svend Andreas Horgen (73 55 92 69) Geir Maribu (73 55 95 53) Kursassistent Siri Wæhre Lien (73 55 9 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 sider (medregnet denne forsiden) VIKTIG: Husk å levere arket merket med Vedlegg A sammen med resten av besvarelsen din. Tallet i prosent bak hver deloppgave angir hvor mye oppgaven teller totalt sett. Side av
Oppgave Prosesser (6%) Forklar kort: a (4%) Hvorfor har man prosesser? b (4%) Hva er poenget med prosessdeskriptoren? c (4%) Hvordan holder operativsystemet styr på prosessdeskriptorene og når skjer oppdatering i disse. d (4%) Hva er fordelen til tråder i forhold til prosesser? Oppgave 2 Prosesskommunikasjon (8%) I Figur ser du to prosesser P og P2. Disse har instruksjoner som er kalt setning, setning 2 og så videre. Den store boksen i midten representerer minneområdet i en datamaskin. Pil mot minnet indikerer skriving til minnet, og pil fra minnet indikerer lesing. a (5%) Hva vil du si er kritisk region i Figur? Begrunn svaret. Figur : Prosesser som leser til og skriver fra maskinens minne Side 2 av
b (4%) Et viktig mål i moderne operativsystemer er å sikre gjensidig utelukkelse. Hvis semaforer brukes, hva må da gjøres i koden til prosessene P og P2 i Figur for å oppnå dette målet? Gitt to binære semaforer med initialverdi. Den ene heter norgesemaforen og den andre heter danmarksemaforen. Koden for tre prosesser kalt Norge, Sverige og Danmark er vist i Figur 2. Figur 2: Tre prosesser med kode c (9%) Hva blir skrevet ut for hver av de tre situasjonene i Figur 3? Du skal også forklare hvorfor resultatet blir som det blir og si noe om hvilket fenomen vi har her. Figur 3: Tre situasjoner med ulik rekkefølge på elementene i CPU-køen Side 3 av
Oppgave 3 Minneadministrasjon (36%) a (6%) Minneadministrasjon dreier seg mye om at prosesser må kunne relokeres (dvs flyttes på) i minnet. Hvorfor er det ønskelig å kunne flytte på prosesser? b (6%) I virtuell minneadministrasjon opererer en både med begrepet side (page) og segment. Hva er forskjellen på side og segment innen minneadministrasjon og hva er fordeler og ulemper med disse? c (6%) Tenk deg et sidedelt system med følgende parametere: 2 2 bytes fysisk minne, sidestørrelse på 2 bytes og 2 6 bytes virtuelt minne. (2 2 = 48576, 2 = 24, 2 6 = 65536). Svar på nedenstående spørsmål. Husk å begrunne svarene. i) Hvor mange bits er det i den virtuelle adressen? ii) Hvor mange bytes er det i en fysisk minneblokk (frame)? iii) Hvor mange bits i den fysiske adressen brukes for å angi fysisk minneblokk? iv) Hvor mange innslag er det i sidetabellen? v) Hvor mange bits brukes i hvert innslag i sidetabellen? Anta at hvert innslag i sidetabellen inkluderer en tilstede-bit. Har du husket å begrunne svarene? d (6%) Gitt nedenstående sidetabell for en prosess som er under kjøring. Sidestørrelsen er 24 bytes. sidenr blokknr Tilstede-bit Referanse-bit Modifisert-bit 4 7 2-3 2 4-5 Hvilke fysiske adresser vil hver av følgende virtuelle adresser tilsvare? Forklar hvordan du kom fram til svaret. i) 6 ii) 223 iii) 54 e (6%) I sidetabellen i punkt d) ovenfor er det gitt to kolonner kalt Referanse-bit og Modifisert-bit (også kalt dirty-bit). Forklar hva disse to bit-ene brukes til i forbindelse med minneadministrasjon. f (6%) I segmentdelt minneadministrasjon ønsker vi noen ganger at et gitt segment skal kunne tilhøre flere prosesser. Hvorfor? Side 4 av
Oppgave 4 Diverse flervalgsspørsmål (3%) Her er 8 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 poeng, altså - poeng. Dersom du ikke svarer får du poeng på spørsmålet.. 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. 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 Side 5 av
. Hvilken av følgende sikkerhetsmekanismer brukes i Linux? a. Kontroll matrise b. Kontrollaksess-liste c. Kontrollaksess-liste og capability -liste. Inode er: a. En fildeskriptor b. En hard lenke c. En symbolsk lenke 2. 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. 3. 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. M c. 8M 4. 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 5. Vedlegg C viser et systemet hvor Bankers algoritme brukes. Hvilken tilstand er dette systemet i? a. Sikker tilstand. b. Usikker tilstand c. Vranglås 6. Vedlegg D viser utskrift fra et konsollvindu i Linux. Hva blir inode-numrene for test og test2 når siste kommando (i utskriften) er kjørt? a. test får nummer og test2 et vilkårlig nummer. b. test får nummer 4923 og test2 nummer. c. test får nummer 4923 og test2 får et vilkårlig nummer. 7. Hva blir utskriften ved kjøring av programmet i vedlegg E? a. startslutt b. startsluttslutt c. startsluttsluttsluttslutt 8. 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 6 av
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 2 3 4 5 6 7 8 9 Ditt svar 2 3 4 5 6 7 8 Side 7 av
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 2 3 Ditt svar 4 5 6 7 8 9 2 3 4 5 6 7 8 Side 8 av
Vedlegg C R R2 R3 R R2 R3 P 3 2 2 P 2 2 R R2 R3 P2 6 3 P2 4 3 3 3 5 P3 3 4 P3 3 P4 P4 Krav tabell Allokert tabell Tilgjengelig tabell Side 9 av
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 53 drwxrwxr-x 2 tomash tomash 496 mai 5:26./ 56784 drwxr-xr-x 55 tomash tomash 496 mai 5:6../ 4923 -rw-r--r-- tomash tomash mai 5:9 startfil ln startfil test ln -s startfil test2 Side av
Vedlegg E #include <stdio.h> int main(){ printf("start"); fork(); fork(); printf("slutt"); } Side av