1 Tentamen 1992-08-26 1. Fyra processer ska synkroniseras så att A går före B och B och C går före D. Realisera denna ordning genom att använda (potentiellt blockerande) send- och receive- operationer på brevlådor (mailboxes). 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras. Namn Ankomst- Total CPU- Prioritet (process- tid tid (större tal ==> id.) (sek) (sek) snabbare process) anita 0 4 24 camilla 1 3 13 jessica 2 2 16 kitty 3 3 23 Vilka värden på talet (sluttid - ankomsttid)/totaltid får de fyra processerna om algoritmen för schemaläggning är a. HPFS b. RR med tidskvantum = 1 (sek). c. FCFS. Tentamen 1993-01-12 1. Bastillstånden exekverande (executing, running), redo (ready) att exekvera och blockerad (blocked) i väntan på någon resurs kompletteras i vissa system. Anledningar kan vara att en användare temporärt vill låta en process vila för att undersöka processens tillstånd, att operativsystemet låter en process vila under det att möjliga baklåstillstånd undersöks eller att en 'skenande' process måste tas bort. Genom att införa tillstånden redo-vilande och blockeradvilande måste tillståndsövergångs- maskinen/grafen utökas. Visa och motivera hur transitionerna kommer att se ut givet de fem tillstånden exekverande, redo-aktiv, redo-vilande, blockerad-aktiv och blockerad-vilande. 3. Realtidsystem karakteriseras bl a av att processerna pr i är cykliska: De avses exekvera ex i tidsenheter en gång per intervall om int i tidsenheter. Processerna åsätts prioriteter p i och 'the scheduling algorithm' antas alltid vara 'pre-emptive'. I 'rate monotonic scheduling' (RMS) åsätts processerna prioritet p i proportionellt mot 1/int i (kortare processer har högre prioritet än längre). a. Visa på ett tidsdiagram hur processerna exekveras med RMS då ex i = 1, i = 1,2,3, och int 1 = 3, int 2 = 4 och int 3 = 5 och de tre proceserna scheduleras vid tiden 0 för första gången. b. Vilka nackdelar finns med metoden RMS? Tentamen 1991-12-19 1. Följande instruktioner är normalt privilegierade. - Gå över till användartillstånd (user state) - Gå över till "supervisor state" - Läs från OS-arean i minnet - Skriv i OS-arean i minnet - Så på "timer interrupt" - Slå ifrån "timer interrupt" - Slå på minnesskyddet - Slå ifrån minneskyddet - Utför i/o Vilka av dessa instruktioner måste vara privilegierade för att rimliga operativsystem ska kunna implementeras? Kort motivering krävs för varje instruktion.
2 2. Agneta, Karin och Ulrika är tre cigarr-rökande processer. Alla tre vill röka kontinuerligt. Problemet är att för att göra detta behövs tre ingredienser: cigarr, cigarrsnoppare och tändare. Agneta har alltid cigarrer, Karin alltid en snoppare och Ulrika alltid en tändare. För att gå till verket förtröstar alla tre på Bob Slocum som har ett outsinligt (oändligt) förråd av alla ingredienser. Bob placerar cykliskt och slumpmässigt ut två ingredienser, så att kvinnan som har en matchande tredje kan röka. Hon gör så och talar om för Bob när hon är klar. Skriv ett parallellt system av fyra processer som med hjälp av semaforer simulerar de fyra aktiviteterna. 4. Betrakta algoritmen "Round Robin" (RR). Antag att färdiglistan (ready list) består av (länkade) pekare till PCB-er (processbeskrivningar). a. Vad blir effekten av att låta flera pekare gå till samma PCB? b. Vad blir för- och nackdelar med ett sådant arrangemang? c. Beskriv något annat sätt att modifiera RR så att samma effekt som i fråga a. uppnås. Tentamen 1992-10-21 1. Betrakta ett parallellt sytem av processer {a, b, c, d, e, f}. Precedensvillkoren är att a och b går före c, c går före d och e och att d och e går före f. Vidare uppdaterar d och e en gemensam begränsad buffert. Implementera de nödvändiga operationerna för synkronisering och ömsesidigt uteslutande i de sex processerna med hjälp av semaforoperationer. Ange begynnelsevärden för alla semaforer. 2. En brevlåda (mailbox) kan användas för meddelandeutbyte mellan processer. Beskriv, tex med pseudokod, hur operationerna send och receive inplementeras. Ange struktur på alla nödvändiga data. Brevlådan ska ha ändlig kapacitet och operationerna vara asynkrona och potentiellt suspenderande. 3. Räkna ut medelgenomloppstiden T (avarage turn around time) för tre jobb (processer) 1, 2 och 3: Jobb Ankomsttid cpu-tid ---------------------------------------------------- 1 0.0 8 2 0.4 4 3 1.0 1 Använd genomgående icke 'preemptive' algoritmer och ange svar för a. FCFS (first come first served). b. SJF (shortest job first). c. FKS (future knowledge system): SJF antas ju ge bättre prestande men observera att vi väljer att köra jobb 1 vid tiden 0 eftersom vi inte vet att två kortare jobb snart anländer. Beräkna T om vi låter cpu-n vara oanvänd under den första tidsenheten och sedan använder SJF. Kommentera resultaten i a., b. och c. Tentamen 1992-12-19 1. Betrakta ett parallellt system bestående av fem processer S = {a, b, c, d, e}. Precendensvillkoren består i att - a måste gå klar innan b får börja. - b måste gå klar före d och e. - c och d måste gå klara innan e får börja. Realisera ordningen med hjälp av semaforoperationer. Ange semaforernas startvärden. 2. Eftersom inte samtliga av följande påståenden är sanna blir din uppgift att avgöra och motivera sanningshalten i följande. Om du inte tycker att svaret är entydigt, så ange noga de förutsättningar du använder. a. Brevlådor (mail boxes) kan implementeras med hjälp av semaforer men ej omvänt. b. Kritiska avsnitt uppstår på grund av semaforoperationer. c. Baklåsrisken minskas med hjälp av monitorer. d. 'Shortest job first'- algoritmen minimerar svarstiden.
3 e. Test-and-set-instruktionens funktionalitet kan uppnås med instruktionen add mem,#1 som ökar innehållet i minnescell mem (initial = 0) med 1 och sätter 'non zero' flaggan i statusregistret. f. 'Dispatchern' måste exekvera med deaktiverat avbrottsystem. 3. Round robin har en variant som kallas cyklisk round robin. Metoden innebär att tidskvantum avpassas dynamiskt till antalet (n) processer i redolistan; fler processer ger kortare tidskvantum (q). Hur ska q väljas för att varje process ska få köra var t:te sekund samtidigt som totalt 'overhead' som orsakas av processbyten minimeras. Antag att ett processbyte tar tiden s. 8. Baklås kan förhindras (deadlock prevention) genom att tillse att något av de nödvändiga villkoren inte är uppfyllt. a. Vilka är de nödvändiga (och tillräckliga) baklåsvillkoren? b. Vilket/vilka villkor lämpar sig bäst att utesluta för baklåshantering för följande resurser -- 'swap'- utrymme. -- primärminne. -- i/o kanaler. Motivera svaren. Tentamen 1993-03-13 3. Process-schemaläggningsalgoritmen x minimerar medelväntetiden. a. Vilken algoritm är x? Beskriv den noga. b. Bevisa påståendet. Ange alla förutsättningar. c. Varför används andra algoritmer än x? Tentamen 1993-12-17 1. Betrakta ett parallellt och slutet ('closed') system av processer P = {p 1,..., p n }. Begreppet slutet innebär att systemet har exakt en startprocess (= en process som inte har några föregångare) och exakt en slutprocess (= en process som inte har några efterföljare). Ange ett konstruktivt sätt att med hjälp av exakt n-1 semaforer realisera en godtycklig precendensordning i ett sådant system. (Negativa semaforvärden är tillåtna.) 2. Ett alternativ till instruktionen test-and-set är swap (eller exchange) som atomärt byter ut innehållet i två minnesceller eller register mot varandra. a. Visa hur ömsesidigt uteslutande (LOCK/UNLOCK) kan åstadkommas med hjälp av en slinga repeat... until... ; som innehåller instruktionen swap (a,b). Ange typ och initialvärde på a och b. b. Vilka nackdelar/begränsningar har din lösning för att åstadkomma LOCK jämfört med semaforer? 3. a. Redogör för följande metoder för processplanering ('scheduling'): Högsta prioritet först (HPF) och 'round robin' (RR). b. Antag att tre processer är givna enligt följande: Namn Ankomsttid Längd Prioritet A 0 10 hög B 1 2 medium C 2 6 låg Bestäm medelväntetiden givet algoritmerna HPF och RR med tidskvantum q = 1.
4 Tentamen 1994-08-16 3. Antag att pr1, pr2 och pr3 är tre processer med hög, medel respektive låg prioritet. Antag vidare att pr1 och pr3 innehåller kritiska avsnitt med avseende på samma kritiska resurs som "vaktas" av en semafor s. Om pr3 exekverar i sitt kritiska avsnitt och blir uppehållen ('pre-emption') pga pr1 blir redo så kommer pr1 att bli blockerad när pr1 önskar gå in i sitt kritiska avsnitt. Eftersom pr1 har högst prioritet skulle vi vilja att pr1 bleve blockerad högst så länge det krävs för pr3 att göra klart sitt kritiska avsnitt. Nu kan fördröjningen emellertid bli oförutsägbart lång pga att pr3 kan uppehållas ('pre-empt') av pr2. Den högst prioriterade processen kommer då att föbli blockerad till dess pr2 och eventuellt andra processer av mellanliggande prioriteter är klara. Detta fenomen som kallas prioritetsinversion är oftast inte önskvärt. Konstruera ett sätt att komma ifrån detta problem. Lösningen ska innebära tillägg i konventionella processchemaläggare (schedulers) och semaforoperationer och den ska inte förvärra båklåsproblemet. Tentamen 1994-12-19 1. Ett funktionellt ekvivalent alternativ till test-and-set utgörs av den odelbara (!) instruktionen atomic-swap (var lock, key: boolean) som odelbart byter innehållet i minnescellen lock mot innehållet i key och vice versa. Visa hur operationerna LOCK (...) och UNLOCK (...) för ömsesidigt uteslutande av kritsika avsnitt kan realiseras med hjälp av atomic-swap. Ledning: För test-and-set används vanligen en while-slinga. För atomic-swap är det enklare att använda konstruktionen repeat... until.... Förväxla inte atomic-swap med compare-and-swap! 2. Antag givet ett meddelandebaserat system med brevlådor. Om givna operationer send och receive är asynkrona kan inte en sändande process "veta" att ett meddelande verkligen blivit mottaget vid en viss punkt i processen. Visa hur man kan programmera processerna så att sändaren "vet" när mottagaren fått meddelandet. 3. En fil delas mellan n stycken processer vardera identifierade med ett nummer i {1,..., n}. Filen kan refereras (läsas) samtidigt av flera processer med följande inskränkning: Summan av alla processnummer som samtidigt refererar filer måste vara mindre än eller lika med n. Skriv en monitor (i pseudo-kod) som koordinerar filereferenserna enligt denna policy. Tentamen 1995-01-12 1. a. Beskriv instruktionen test-and-set och hur den kan användas för att realisera ömsesidigt uteslutande med avseende på kritiska avsnitt. b. Vilka begränsningar/nackdelar kommer denna lösning att få (i relation till tex semaforer)? 2. Antag givet ett meddelandebaserat system med brevlådor. Om givna operationer send och receive är asynkrona kan inte en sändande process "veta" att ett meddelande verkligen blivit mottaget vid en viss punkt i processen. Visa hur man kan programmera processerna så att sändaren "vet" när mottagaren fått meddelandet. 3. Använd semaforer för att synkronisera processerna p1, p2,..., p7 efter följande precedensgraf. Systemet startar med process p1 och fortsätter i en oändlig slinga, där p7 ska signalera till p1, etc. p1 p2 p4 p5 p7 p3 p6
5 Andra tentamina 1. Algoritmer för schemaläggning av processer kan konstrueras på följande vis. Åsätt varje process en variabel prioritet. Stort positivt värde ger hög prioritet. Antag att algoritmerna är 'preemptive'. När processerna befinner sig i färdiglistan ändras prioriteterna med a enheter per tidsenhet. När de exekverar ändras de med b enheter per tidsenhet. Startprioriteten är 0. Vilket beteende erhålls för fallen a < b < 0 och b > a > 0. Motivera. Kan a och b sättas så att ett 'round robin' liknande beteende uppnås? 2. I ett system finns en inmatningsprocess I, en beräkningsprocess P och en utmatningsprocess O. Processerna kommunicerar via två buffertar ip respektive po lagrade på disk. Processerna utbyter data i lika stora block. De är synkroniserade så att ip + po max. Dessutom vet man att - Så länge det finns data att läsa in (tex från en terminal) kommer I att skriva dessa på ip (om det går). - Förutsatt att ip inte är tom kommer P att förbruka block och producera ändligt många block på po. - Så länge det finns block på po kommer O att förbruka dessa. a. Visa att detta system kan gå i baklås. b. Hur kan man undvika eller förhindra baklås i detta system? 5. Rutinerna i en monitor exekveras på basis av ömsesidigt uteslutande. Varför måste de likväl vara reentranta? 7. Antag att ett system av n oberoende sekventiella processer ska köras på m identiska processorer. Antag vidare att 'preemptive' schemaläggning används. Man kan då visa att den bästa schemaläggningen ger totaltiden T = max { max (t i ), (Σ i [1..n] t i )/m }, där t i är exekveringstiden för process nummer i. Motivera detta T. En fullständigt bevis är naturligtvis non plus ultra.