Operativsystem för civilingenjörer: Hemtentamen 2021-08-27

Det här är hemtentan som går fredag 28 augusti 2021 i kursen DT513G Operativsystem för civilingenjörer vid Örebro universitet, provkod A001. Ansvarig lärare är Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), telefon 070-73 47 013.

Tid: 08:15 - 13:15

Instruktioner

  1. Den här hemtentan ersätter den planerade salstentan.
  2. Tentatiden är utökad med en extra timme för att täcka in problem med e-post, inscanning eller fotografering av diagram, och liknande.
  3. Uppgifterna ska lösas enskilt, dvs inga grupper av två eller flera studenter.
  4. Du får använda dator, böcker och vilka andra hjälpmedel som helst, men du får inte samarbeta eller fråga någon (utom mig). Exempelvis är det tillåtet att söka och läsa på webbplatser som Stack Overflow, men inte att ställa egna frågor. Du kan alltså provköra kommandon och program, om du vill.
  5. Diskutera inte uppgifterna eller dela med dig av svar förrän tidigast dagen efter tentan.
  6. Lös de angivna uppgifterna och samla svaren på lämpligt sätt, till exempel i en PDF. Skicka sen in lösningarna till mig i Blackboard. Välj Kursmaterial i menyn till vänster på kursens Blackboard-sida, gå in i mappen Hemtentor, och välj den rätta tentan. Där kan man sedan välja att skicka in sin lösning. Då blir bedömningen anonym. Glöm inte att klicka på knappen Skicka längst ner till höger.
  7. Om det skulle bli problem med Blackboard, kan man i nödfall skicka in svaren antingen som ett kursmeddelande i Blackboard eller via vanlig e-post (thomas.padron-mccarthy@oru.se), senast vid tentatidens slut. Då blir bedömningen inte anonym.
  8. I Blackboard ser du att du skickat in din lösning. Om du i stället skickade in med e-post, och inte senast en timme efter tentatidens slut fått ett svar från mig med en bekräftelse på att du skickat in svaren, bör du kontakta mig, enklast genom att ringa eller SMS:a mig (ifall det är e-posten som inte fungerar). Tänk på att en del mailtjänster (särskilt Microsoft-tjänster som Hotmail.com, Outlook.com och Live.com) ibland kastar bort brev med bilagor, utan att meddela det.
  9. Skriv gärna svaren i ett ordbehandlingsprogram. Rita gärna eventuella diagram i ett ritprogram. Det är inte förbjudet att skriva och rita för hand, men då måste text och bilder scannas in eller fotograferas. Det finns scanner-appar till Android och iPhone, till exempel Adobe Scan, som ger bättre resultat än att bara ta vanliga kort med kameran.
  10. Om du behöver fråga något, så kontakta gärna mig. Ring eller skicka SMS, för jag kanske inte kommer att sitta vid datorn hela tiden.
  11. Oklara och tvetydiga formuleringar kommer att misstolkas. Lösningar som inte går att läsa eller förstå kan naturligtvis inte ge några poäng.
  12. Antaganden utöver de som står i uppgifterna måste anges. Gjorda antaganden får inte förändra den givna uppgiften.
  13. Skriv gärna förklaringar om hur du tänkt. Även ett svar som är fel kan ge poäng, om det finns med en förklaring som visar att huvudtankarna var rätt.
  14. Maximal poäng är 26. För godkänt betyg krävs minst 14 poäng.
  15. Resultat meddelas senast 15 arbetsdagar efter tentamensdatum. Eftersom svaren skickas in elektroniskt scannas tentorna inte för retur.

Information från institutionen angående fusk

Instruktioner inför digital hemtentamen/ examination

Jag vill undvika fusk - hur gör jag? / All form av fusk anmäls
Du ska följa instruktionerna för uppgiften. Om du är osäker, fråga ansvarig lärare om något i instruktionerna är oklart.
Du får inte samarbeta. Det här är en individuell examinationsuppgift. Du ska inte prata med någon, ställa frågor till eller ta hjälp av andra studenter eller kurskamrater. Att hjälpa andra under en individuell examination är också fusk.

Lägg undan mobilen. Stäng av sociala medier.

Du får inte använda hjälpmedel. Det vill säga att du får inte använda dig av något annat än det som står angivet i instruktionerna.
Du får inte använda andra formuleringar än dina egna. Dina svar ska vara självständigt formulerade och redovisa dina kunskaper. Det betyder att inga citat eller referat ska förekomma i dina svar om det inte står i instruktionerna att du får använda citat eller referat.
Dina svar kontrolleras via Urkund.
All misstanke om fusk anmäls till universitetets rektor och kan leda till en prövning i universitets disciplinnämnd.

Konsekvenser av fusk

Om du fuskar kan detta leda till en avstängning som kan få följder både för dina studier och privat:

  • Uteblivet studiemedel som t.ex. som kan påverka din möjlighet att behålla din bostad.
  • Ingen åtkomst till digitala plattformar.
  • Du kan behöva meddela dina kursare om att du är fälld för fusk, om du t.ex. ingår i ett grupparbete på en pågående kurs men blir avstängd.
  • Tillfällen för examination går förlorade vilket kan innebära att du inte kommer vidare i dina studier nästa läsperiod/termin och din studiegång blir därmed påverkad.
  • Beslutet är en offentlig handling som begärs regelbundet ut av en nyhetsbyrå. Och kan även begäras ut av framtida arbetsgivare eller andra.
  • Om du fuskar dig igenom din utbildning har du inte den kunskap som arbetsmarknaden förväntar av dig.
OBS: Tänk efter en gång till innan du påbörjar och genomför din tentamen!

Uppgift 1 (6 p)

Om man läser om x86-arkitekturen, ser man att x86-processorer kan köras på flera olika sätt, i olika "moder":

En student (som eventuellt kan ha slarvat lite när hen läste OS-kursen) behöver hjälp med några frågor. Svara på dessa frågor, och red ut eventuella missförstånd!

a) "Hur fungerar page-tabellen i real mode? Är det en för varje process fortfarande, eller vad?"

b) "I vanliga fall brukar den virtuella minnesrymden vara större än det fysiska minnet, och data i den virtuella minnesrymden som inte får plats i det fysiska minnet pagas ut till disk. Men när man använder Physical Address Extension är fysiska adresser 36 bitar, medan virtuella är 32 bitar, så man kan ha mer fysiskt minne än virtuellt minne. Hur fungerar det med paging? Gör man tvärtom mot vanligt, så de data som inte får plats på disken pagas till RAM-minnet, eller vad?"

c) "I long mode är virtuella adresser 48 bitar, så man kan ha 248 = 281474976710656 byte virtuellt minne, dvs mer än 200 terabyte, eller 200000 gigabyte. Men hur kan det fungera? Min dator har bara en disk på en enda terabyte, eller 1000 gigabyte, och även om man pagar ut data ur primärminnet till disken skulle det ju inte få plats!"

Uppgift 2 (4 p)

a) Den mjukvara som finns på en dator brukar delas in i operativsystemkärna, systemprogram och applikationsprogram. Förklara vad som menas med dessa tre olika typer.

b) I operativsystem med en mikrokärna ("microkernel" på engelska) tar man en del av de uppgifter som i en monolitisk eller modulär kärna skulle utföras av operativsystemkärnan, och flyttar dem till program som kör i "user space", dvs utan kärnans rättigheter. Vad händer då med de tre olika typerna av program från a-uppgiften? Har det uppstått en ny typ, eller vad? Diskutera!

Uppgift 3 (13 p)

Filen blaj.txt innehåller texten blaj, följt av ett radslut. Det är sammanlagt 5 byte. (På Unix och Linux i alla fall. Windows och en del andra system lagrar radslut med två byte.)

a) (3p) Skriv ett C-program för Unix eller Linux, som startar tre olika processer (med fork), som var och en läser innehållet i den filen med ett read-anrop. Efter read-anropet ska respektive process avslutas, så vi ska inte göra något med de data som vi läst in.

b) (3p) När en process körs på en dator kommer operativsystemet att flytta processen (eller egentligen dess process control block, även kallad task-struct) mellan olika köer. Visa hur de tre processerna kan komma att flyttas mellan köerna (dvs vilka köer varje process finns i, och hur den flyttas mellan dem, och när det händer) om vi kör programmet på en dator med en enda processorkärna.

c) (3p) Nu kör vi i stället programmet på en dator med många lediga processorkärnor. Visa hur processerna nu kan komma att flyttas mellan köerna!

d) (1p) Vad är egentligen skillnaden mellan en processorkärna och en operativsystemkärna?

e) (3p) Om vi hade skrivit ett program som skapade trådar i stället för processer, hade det blivit någon skillnad i hur trådarna då flyttas mellan köer, jämfört med hur processerna flyttades? Förklara!

Uppgift 4 (3 p)

När man installerar applikationsprogram ("appar") på en mobiltelefon, brukar man kunna ange för varje sådant program vad det får och inte får göra, till exempel om det får göra uppkopplingar via Internet.

På en vanlig Linux-dator (en server, eller en stationär eller bärbar dator) kan man normalt inte göra det, utan alla applikationsprogram som man installerar får alla rättigheter, och det går inte (särskilt lätt) att begränsa dem.

Varför är det gjort så?


Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se), 26 augusti 2021