LYCKA TILL MED TENTAMENSLÄSNINGEN! 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras.

Storlek: px
Starta visningen från sidan:

Download "LYCKA TILL MED TENTAMENSLÄSNINGEN! 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras."

Transkript

1 219 A. Detta appendix består av fyra delar. Först kommer ett antal frågor som tagits från några av de många tentamensskrivningar som givits i kurser om Operativsystem sedan tidigt 70-tal. Andra delen innehåller några lösningsskisser till senare tentamina, som bifogas i det tredje avsnittet. I det fjärde avsnittet återfinns frågor och tentamina som avser innehållet [även] i kapitel 11. Dessa moment faller utanför DoCSs operativsystemkurser, men ingår i kursen Datorsystem DV1. LYCKA TILL MED TENTAMENSLÄSNINGEN! A.1. Blandade tentamensfrågor A.1.1. Från tentamen 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 camilla jessica kitty 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. 5. I ett virtuellt minne med skiva är primärminnets accesstid 1 mikrosekund, sidstorleken 1 K, skivans rotationstid 10 millisekunder, inställningstiden för skivans arm 5 millisekunder och antalet ord per spår 16 K. Hur stor sidfelsfrekvens kan tolereras om vi vill ha en upplevd (eng. effective) accesstid på 1.15 mikrosekunder? 7. I ett sidindelat system har uppmätts att CPU-utnyttjandet är 20%, "swap"- disken används till 97% och andra i/o-enheter till 5%. Vilka av följande åtgärder skulle (sannolikt) förbättra CPU-utnyttjandet? Förklara noga! a. Installera mera primärminne. b. Installera en större disk. c. Öka graden av multiprogrammering. d. Minska graden av multiprogrammering. e. Installera mera cacheminne. f. Installera en snabbare disk. 8. Ett system består av tre (ändligt långa) processer och fyra identiskt lika (seriellt återanvändbara) resursenheter. Varje process behöver högst två resursenheter. Visa att detta system är baklåsfritt.

2 220 A.1.2. Från tentamen 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? 4. I ett system byggt på sidindelning är det fysiska adressrummet 4 M, det logiska (virtuella) adressrummet 4 G (2 32, 32 bitars virtuell adress) och sidstorleken 1 K. a. Redogör allmänt för sidindelning (paging) som ett sätt att åstadkomma virtuellt minne. b. Ange innehåll i, storlek på och representation av de tabeller som är lämpliga givet dessa data. c. Hur översätts en logisk adress till en fysisk adress. 5. Tillämpning av olika utbytesalgoritmer kan påverka sidfelfrekvensen under i övrigt identiska förutsättningar. Antag givet referernssträngen w = , att primärminnet rymmer 4 sidplatser och att minnet initialt är tomt. Bestäm och kommentera antalet sidfel för a. FIFO b. LRU c. Den optimala 'algoritmen' OPT (B o ). 7. Informationsflödeskontroll via klassning (labeling) ( c(.) ) av subjekt och objekt kan tillämpas två grundfunktioner i programmerade system: -- Aritmetisk/logiska operationer och tilldelningar: a := expression (b, c,...); -- Villkorliga hopp: if predicate (d) then e :=...; f :=...;... enf if; a. Under förutsättningen att klasserna är element i ett lattice, ange vilka relationer mellan c(a), c(b),..., c(f) som måste kontrolleras för att upprätthålla säkert informationsflöde för dessa satser. b. Härled de villkor som måste vara uppfyllda för kunstruktionen while B do S; där B är ett (Booleskt) uttryck och S är en sekvens av satser uppbyggda (rekursivt) via uttryck, tilldelningar, sammansättning, if-satser och while-satser. A.1.3. Från tentamen 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

3 221 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. 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. 5. I ett sidindelat system består den logiska adressen av 22 bitar varav 12 anger sidnummer. Minnesstorleken är 64K. a. Hur stort är det virtuella minnet? b. Hur många sidoramar ryms i det fysiska minnet? c. Beskriv i text och figur hur adressöversättningen från logisk till fysisk adress går till. d. Vilken är den virtuella adress som avbildas på den fysiska adressen 2700 (hexadecimalt) då den aktuella sidtabellen innehåller följande sidoramsnummer: [6, 7, 2, 5, 9, 1, 8]? 6. Visa att det för FIFO algoritmen kan gälla att ett utökat antal sidramar kan ge en STÖRRE sidfelsfrekvens (FIFO-anomalin, Beladys anomali) för given programreferenssträng. Kan motsvarande anomali förekomma för LRU-algoritmen? Motivera noga! 9. Betrakta en öppnad fil. Logiska block och fysiska sektorer är 512 bytes. Antag att det senast använda blocket var nummer 9 och att block nummer 3 står närmast att användas. (Blocken numreras från 0.) Hur många sektorer behöver läsas från skivminnet om följande allokeringsmetod används? a. Kontinuerlig (contiguous). b. Ren länkning (via pekare i datablocken). c. Indexerad. A.1.4. Från 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.

4 222 a. Visa att detta system kan gå i baklås. b. Hur kan man undvika eller förhindra baklås i detta system? 3. I ett visst operativsystem (taget från en historisk verklighet) beskrivs datafiler med sk 'disc directoty entries'; ett per fil. Dessa innehåller följande information (och inte mer). - filnamn = en kort sekvens ascii-tecken. - spår- och sektornummer. - filstorlek = antal sektorer. - filtyp: ascii- eller binärdata. Vilka begränsningar har ett filsystem byggt på dessa kataloger? Vilken övrig information behövs för att undvika dessa begränsningar? 4. I sidindelade system säger man ju att relokeringen sker dynamiskt. Varför behövs i sådana system likväl en 'relocationg loader' som utför statisk relokering/länkning? 5. Rutinerna i en monitor exekveras på basis av ömsesidigt uteslutande. Varför måste de likväl vara reentranta? 6. I ett sidindelat system är det möjligt att låta flera olika processer dela på samma program (sidor) genmom att de olika processernas sidtabeller pekar ut samma sida. Antag följande situation: En process p1 kräver programmen q1 och q2, en temporör lagringsarea t1 och en dataarea d1. Dessa länkas ihop till ett sammanhängande block med storlek q1 + q2 + t1 + d1 i det virtuella minnet. Medan p1 fortfarande är aktiv begär en annan process p2 laddning av q1', q2, t1' och d1 där q1' < q1 och t1' > t1 och där q2 och d1 ska delas mellan p1 och p2. a. Skissera ett möjligt utseende på sidtabellerna för p1 och p2. b. Vilka problem uppstår om en ny process p3 aktiveras och vill dela q1' och q1? 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. A.2. Lösningsskisser till frågor på tentamina OBS! Svaren och lösningarna är (oftast) så kortfattade att de knappast skulle ha renderat full poäng på en skrivning. Se dem bara som en liten vink om framkomliga vägar till fullfjädrade lösningar. A oktober Vi inför en semafor för varje del av precedensordningen - a går före c: ac (= 0 initialt) - b går före c: bc (= 0 initialt) - c går före d: cd (= 0 initialt) - c går före e: ce (= 0 initialt) - d går före f: df (= 0 initialt) - e går före f: ef (= 0 initialt) Vidare har d och e kritiska avsnitt som måste kontrolleras: m (= 1 initialt). Processerna a, b, c och f har kodavsnitt sa, sb, sc och sf. Processerna d och e har interna kritsika avsnitt csd och cse och övriga avsnitt sd' och sd'' respektive se' och se''.

5 223 Programmeringen blir: parbegin a: sa; signal (ac); b: sb; signal (bc); c: wait (ac); wait (bc); sc; signal (cd); signal (ce); d: wait (cd); sd'; wait (m); csd; signal (m); sd''; signal (df); e: wait (ce); se'; wait (m); cse; signal (m); se''; signal (ef); f: wait( df); wait (ef); sf parend Om man ska vara noggrann bör man också synkronisera med avseende på full/tom buffert i processerna d och e. Om man då antar att d är producenten och e är konsumenten bör man programmera d:... wait (nonfull); wait (m); csd; signal (m); signal (nonempty);... e:... wait (nonempty); wait (m); csd; signal (m); signal (nonfull);... med nonfull = buffertlängden och nonempty = 0 initialt. 2. En brevlåda (mbox) kan ha följande struktur - n stycken poster av typ <addr, len> som beskriver plats och längd på n meddelanden (mess). - en (eller två) listpekare på vilken blockerade processer köas. - en 'låsvariabel' (lock). Operationen send (mbox, mess) utför följande: 0. När vi kommer till koden har vi passerat FLIH som hanterat motsvarande 'trap'-instruktion och som har sparat anroparens 'kontext'. 1. Tillförsäkra ömsesidigt uteslutande mha lock. 2. Om brevådan är fylld så blockera anroparen: Motsv pcb köas (fifo) via listpekaren. 3. Annars: fyll i nästa post <addr, len> i mbox-strukturen. 4. Om det finns väntande mottagare så gör en sådan redo. 5. Släpp låset. 6. Gå till 'dispatcher'n. Operationen receive (mbox, mess) utför följande: 0., 1., 5. och 6. som i send 2. Om brevlådan är tom så blockera anroparen: Motsv pcb köas (fifo) via listpekaren. 3. Annars: hämta första post <addr, len> i mbox-strukturen och leverera via parametern mess. 4. Om det finns väntande sändande process så gör en sådan redo. 3. a. FCFS: Jobb1 kör under tiden [0, 8], jobb 2 under tiden [8, 12] och jobb 3 under [12, 13]. Medelgenomloppstiden blir alltså [ (8-0) + (12-0.4) + (13-1) ]/ 3 = b. SJF: Jobb 1 kör under tiden [0, 8], jobb 3 under tiden [8, 9] och jobb 2 under tiden [9, 13]. Medelgenomloppstiden blir alltså [ (8-0) + (13-0.4) + (9-1) ]/3 = c. FKS: Jobb 3 kör under tiden [1, 2], jobb 2 undet tiden [2, 6] och jobb 1 under tiden [6, 14]. Medelgenomloppstiden blir alltså [ (14-0) + (6-0.4) + (2-1) ]/3 = I den logiska adressen LA = <s, w> är s = 24 och w = 20. Segmenten sidindelas i 1 K block så att w kan skrivas w = <p, d> med p = 10 och d = 10. Eftersom (den globala) segmenttabellen blir så stor sidindelas också denna så att s kan skrivas s = <s1, s2> där s2 = 10 och alltså s1 = 14. I frågan sägs inget om adresseringsenhet: Vi kan anta att maskinen har ordadressering, där varje ord (32 bitar) är tillräclkigt stort för att rymma alla tabellelement. En sidtabell kommer därför att rymmas (precis) i en sida. Segmenttabellens sidtabell (2**14) behöver däremot 16 sidor så att s1 bör uppfattas som s1 = <s11, s12> där s12 = 10 och s11 = 4.

6 224 Adressöversättning 1: - s11 väljer ut en av de 16 sidtabellerna för segmenttabellen. - s12 indexerar vald sidtabell för segmenttabellen. - s2 använs som index i en sida i segmenttabellen. Motsvarande element pekar ut en sidtabell. - p använs som index i denna sidtabell. Motsvarande element anges sidoramsplats. - d är offset inom sidan (och sidoramen). Om vi, tex, antar att primärminnets storlek är 64M (2**26) så behövs för att hitta varje sida 16 bitar, förutsatt (det rimliga antagandet) att varje sida placeras på en 1K-skarv. Det betyder att adressfältet i varje tabellelement är 16 bitar. Längdfältet i segmenttabellen behöver vara 10 bitar (vi räknar längden i antal sidor). Sidtabellelement: Adressfält 16 bitar, närvarobit, statistkbitar (ändrad, använd); totalt ca 20 bitar 32 bitar Segmenttabellelement: Adressfält 16 bitar, längdangivelse 10 bitar, skyddsbitar (RWE, ringnr) = 32 bitar. Adressöversättning 2: Vid varje referens kontrolleras - Närvarobit(ar): kan ge page fault trap. - Skyddsbitar: RWE kontrolleras mot pågående operation, ring-nr kontolleras mot psw.ringnr. - 'Offset'värdet w/1k kontolleras mot längdanvigelse i segmenttabellen. Anmärkning: Segmenttabellens sidtabell (2*14 ord, 16K) måste hållas resident; gärna på fast plats i minnet. Övriga tabeller behöver bara delvis finnas i minnet. Logiska adressen. LA framställs via exekverande instruktion. Eftersom en process endast kan referera 64 segment åt gången, används en 'segment tag' på 6 bitar. Offsetvärdet (1 M segment) bör vara 20 bitar. De flesta instruktioner kommer därför att rymmas i ett ord. Sexbitars fältet väljer ut ett av 64 stycken adresseringsregister som vardra innehåller segmentnumret s (24 bitar). Vi placerar accesskoden här i stället för i segmenttabellen och har därför nu 64 capabilities som definierar vårt 'execution/protection domain'. Vi låter processerna själva admininstrera (ladda) dessa register dock bara med innehåll taget från certifierade sk cap. segment. Adressöversättning 3: För att snabba upp översättningen går vi via associativt cacheminne. Detta administreas tex mha LRU algoritmen i maskinvara. Minneselementen bör innehålla: Nyckel: <s, p>; 34 bitar Data: Sidoramsnummer, närvarobit och accesskontrollbitar; (?) = 26 bitar Ju fler element desto bättre; men missfrekvensen i detta cache bör inte överstiga några %. Figuren sammanfattar dessa överväganden.

7 225 Figur. Lösning till tentamenstal :4 Instruktion op.kod 'tag' segmentoffset Associativt 'cache'minne s p diverse f cap-register 0 rwe segment-nummer s Logisk adress s w s1 s2 p d Fysisk adress f d s = <s1, s2>, där s1 = 14 och s2] = 10 s1 = <s11, s12>, där s11] = 4 och [s12 = 10 w = <p, d>, där p = 10 och d] = 10 f för 64 M primärminne har f = 16 Segmenttabellens 16 sidtabeller a 1K element Segmenttabellens sidor Sidtabell (per segment) Sidor 0 s11 s12.. s p d K stycken sidor Tabellelement övrigt l f 6 10 resp 16 bitar 5. Eftersom man reserverar 9 sidor per process och dessa adminisreras LRU kommer efter nio initiala referenser alla kommande referenser att ge 'page fault'. Varje process får felfrekvensen 100%. 6. Del 1: Eftersom inget hål av storlek 1 finns ledigt, väjer man ut fösta lediga block av storlek 2. Det är a. Blocket a delas i två delar; vi allokerar första halvan och låter andra halvan ingå i fria listan av storlek 1. Kartan blir bara ändrad i 'toppen'. Adress Innehåll a' 1 upptaget a'' 1 ledigt b 2 upptaget I övrigt som i initialtillståndet.

8 226 Del 2: Blocket d frigörs med sin buddy e till ett ledigt block d' av storlek 4. Blocken d' och c är inte 'buddies' trots att de ligger bredvid varandra och är lika stora. De ska alltså inte slås i hop. Kartan blir. Adress Innehåll a' 1 upptaget a'' 1 ledigt b 2 upptaget c 4 ledigt d' 4 ledigt f 4 upptaget... I övrigt som i initialtillståndet. 7. Följande punkter är de viktigaste. - Varje process tilldelas en cap-lista CL(d) för varje domän d. - Pecis en sådan lista är aktiv åt gången och använs vis adressöversättning och accesskontroll. - Listan innehåller element cap = <c, x>, där c är accessrättigheterna och x ett globalt objekt (segment) namn. - Listan idexeras med ett lokal segmentnamn j från det refererande instruktionssegementet. - x elementet översätts via en global segmenttabell till en fysisk segmentplats (se uppgigft 4) - Listan svarar mot en rad i matrisen i den allmänna modellen för åtkomstskydd. 'Enforcement' implementeras så att varje process och varje segment har ett unikt namn, att alla referenser kontrolleras felfritt genom att det till varje objekttyp associeras en 'reference monitor': i fallet med segment utgörs denna av adresseringslogiken. 'Rights movement'. För att kontrollera att rättigheter flyttas på rätt sätt behövs speciella rättigheter; owner, control och *. Dessa kodas in i c-fältet i caps. Eftersom CL i sig är segment (objekt) betyder det att om CL(d) innehåller ett element <owner, xx>, där xx är den unika identifieraren för att cap-segment så kan processen i domän d via systemanrop flytta en rättighet till CL(xx). 'Domain switching'. För detta behövs en rättighet som anges att en process i domän d kan byta till domän d'. CL(d) innehåller ett element <ent, d'>. I detta nya domän börjar som en konsekvens av en instruktion "enter d', j, k" instruktionen på plats k i segmentet j i den anropade domänen d' att exekvera. Intruktionen enter bör (som andra proceduranrop) spara åtminstone återhoppsadressen och set gamla domän-värdet d (på en stack), så att status vid anropstället kan återställas vid retur. 8. a. I detta fall kan man tänka sig att läsning sker kontinuerligt från 0. I detta fall måste alltså block 0, 1, 2, 3 och 4 läsas (5 block). b. Om vi enkel-länkar listorna traverserar vi blocken cirkulärt: Block 10, 11,..., max och därefter 0, 1, 2, 4 och 4 måste läsas. c. I detta fall läser vi indexblocket och sedan sökt block: 2 block. Sammanhängande allokering går bra om filerna är små och av (relativt) fix längd. Länkad allokering löser svårigheterna med sammanhängande allokering om vi har långa sekventiella filer. Indexerad allikering underlättar dessutom 'random access'. 9. a. Baklås uppstår under följande tre villkor - Exklusivt kontrollerade resurser ('mutual exclusion'). - Endast resursinnehavaren kan frisläppa resurserna ('no preemption'). - Cirkuär resursväntan har uppstått.

9 227 och manifesteras i att ingen av de inblandade processerna kan fortsätta någonsin. Kan hanteras på tre sätt - Tillse att minst ett av de nödvändiga villkoren ej är uppfyllt ('prevention'). - Allokera aldrig så att vi får olämpliga ('infeasible') tillstånd ('avoidance'). - Representera resursallokeringssituationerna så att baklås kan upptäckas. och åtgärda vid fullbordat faktum ('detect and recover'). b. 'open/close'. Syftet med open är att 'förbereda' en fil för användning (läs eller skriv eller annat). Tre åtgärder vidtas: - Kontrollera åtkomsträttigheterna. - Tillse att vi löser 'readers/writers problem'. - Kopiera lämpliga delar av katalogstrukturen till primärminnet. c. test-and-set. Används som det grunläggande primitivet för att åstadkomma ömsesidigt uteslutande för tex semafor- eller brevlåde-operatioer per se. test-and-set måste göra minst två saker odelbart. - Läsa innehållet i en minnescell och sätta en statusindikator - Ändra samma minnescellinnehåll (till 'busy'). Kombineras alltid med en 'busy wait' slinga på statusindikatorn. test-and-set duger inte för allmänna kritiska avsntt, ty - busy wait är orimligt för godtyckligt långa kritska avsnitt. - starvation kan uppträda eftersom instruktioen inte 'minns' i vilken ordning processerna efterfrågande den kritiska resursen. - måste kompletteras med disable interrupt, ty om CS avbryts finns ingen garanti att vi någonsin återvänder dit. d. PCB. En struktur som används för att beskriva en process. Innehåller (bland annat) följande information - processens namn - registerspararea; inkl pc - lista över allokerade resurser - (beskrivning av) processens domän - processens prioritet - övriga processattribut - pekare e. Dynamisk länkning. Se anteckningarna "Namnhantering". Länkningen sker under exekveringen via anrop till filsystemet. Kräver segmenterad minnesadministration. Ett segment införs i det vitruella adressrummet först då det refereras för första gången i en exekvering genom att en symbolisk adress [segmentnamn, variabelnamn] ersätts av en numerisk [s, w]. Denna kan efter trap och åtföljande länkning översättas av adresseringslogiken. Vad jag känner till är det endast Multics och OS/2 som erbjuder denna facilitet. Fördel: Vanligt filsystem behövs inte. f. BLP-modellen. Underlag för implementering av mandatory access control (MAC), via labels l (clearance, classification) som associeras till varje subjekt och objekt. Vi har följande regler. Simple security, ss: Ett subjekt s får läsa ett objekt o bara om l(s) l(o) ('no read up'). *-property: Ett subjekt s får skriva till ett objekt o bara om l(s) l(o) ('no write down'). Reglerna kombineras med följande primitiva operationer. - get/release (access right). - create/delete (object). - change (security level). - give (access right). - rescind (access right).

10 228 A december Vi inför en semafor för varje del av precedensordningen: - a går före b: ab (= 0 initialt) - b går före d: bd (= 0 initialt) - b går före e: be (= 0 initialt) - c går före e: ce (= 0 initialt) - d går före e: de (= 0 initialt) Programmeringen blir: Vi förkortar wait = w och siganl = s. parbegin a: satser-a; s(ab); b: w(ab); sataser-b; s(bd); s(be); c: satser-c; s(ce); d: w(bd); satser-d; s(de); e: w(be); w(ce); w(de); satser-d; parend 2. a. Fel. Brevlådor och semaforer är teoretiskt sett ekvivalenta och kan därför implementeras med hjälp av varandra. I praktiken väljer man dock nog att implementera båda med hjälp av test-and-set och/eller disable/enable interrupt. b. Fel. Begreppen är i grunden oberoende. Semaforoperationer används dock för att åstadkomma ömsesidigt uteslutande med avseende på kritiska avsnitt. Fast det är ju sant att implementeringen av wait och signal i sig innehåller kritiska avsnitt. c. Fel. Snarare finns risk för baklås om tex monitorer inkapslas i monitorer. d. Fel. Inte alls säkert. SJF är dock den algoritm som minimerar medelväntetiden för processer. e. Fel. add-instruktionen är av effektivitetsskäl normalt inte odelbar i ett flerprocessorsystem. f. Sant, i praktiken. 'Dispatcher' måste vara odelbar och eftersom den är kort deaktiveras avbrottsystemet. 3. Under ett intervall av längd t ska n processer kunna exekveras tiden q och göra processbyte med tiden s. Allstså måste gälla att n * (q + s) t, dvs q t/n - s. Om vi samtidigt vill minska 'overhead' ska tidsskivan väljas så stor som möjligt. Alltså: q = t/n -s. 4. a. Sidtabellen skulle annars bli alltför stor. Här kan man säga att sidtabellen sidindelas. Då kan vi också 'swap'-a denna. Att det är två nivåer (extra) är mer en smaksak än en nödvändighet. b. Via denna tabell får varje process ett eget virtuellt adressrum och vid processbyte behöver inte sidtabellen sparas och återställas. c. 'Offset'värdet om 12 bitar säger oss att sidstorleken är 4 K. d. Ett associativt cacheminne för adressöversättningen finns. Att slå upp en adress i så många nivåer skulle, även om mmu:n var snabb, vara alltför ineffektivt. e. Tja kanske i begräansad omfattning: Varje process' namnrum kan ju sägas definiera ett segment. f. 32 bitars adress säger oss att det virtuella adressrummet är 4 G. Lägger vi till att det kan finnas 2 12 sådana blir det totala virtuella adressrummet 2 44 = 16 T. 5. a. Om sidoreferensmönstret w vore likformigt fördelat skulle sidfelfrekvensen bli proportionell mot förhållandet mellan storlekarna på det virtuella och det fysiska minnet. Detta skulle ge en oacceptabelt lång (medel)accesstid för det virtuella minnet. I praktiken "klumpar sig" sidnummren mycket så att om de sidor (sk 'working set') processen under ett tidsintervall hålls i primärminnet så kan sidfel undvikas (nästan) helt med resultat att det virtuella minnets accesstid blir (nära) det fysiska minnets. b. OPT, LRU och NRU är algoritmer som tar hänsyn till en process' w, medan FIFO inte gör det. Den optimala agoritmen är naturligtvis bäst men orealiserbar. LRU är bättre än de övriga två, men mycket dyr att implementera. Ordningen blir alltså: NRU, FIFO, LRU, OPT (Bäst = ger minst antal sidfel). c. Möjligen en smula, men 'thrashing' kan uppstå även om lokaliteten är perfekt.

11 a. Se tex sid i Milenkovic, sid i Bic-Shaw. b. Se tex sid c. Se tex sid i Milenkovic, sid i Bic-Shaw. 7. Se sid respektive sid BLP innehåller både 'discretionary' och 'mandatory' åtkomstkontroll och RP är därför en delmängd av BLP. Discretionary access control, tex RP, klarar inte att garantera att icke-auktoriserde flöden spärras. 8.a. De tre nödvändiga villkoren är -- resurserna är föremål för ömsesidigt uteslutande; de är odelbara. -- resurserna är 'non pre-emptive'; de kan bara frigöras av den som äger dem. -- en cirkulär resursväntan har uppstått. b. Eftersom vi angriper dessa villkor så talar vi om att förhindra baklås. -- swap-utrymme: Detta är ju odelbart och 'non-preemptive' så enda chansen till förhindrande ligger att preallokera disk-sektorer i en bestämd ordning så att den cirkulära väntan inte kan uppstå. (Avoidance är också möjligt, men inte detect and recover; inget att göra recover ifrån.) -- primärminne: Pre-emption är ju vanligen precis det man gör. (Både avoidance och detect and recover är principiellt möjliga men för ineffektiva.) c. --i/o-kanaler:, Allokera i 'nummerordning'. Då förhindras cirkulär väntan. ( --- som i b. -- ) A mars ('Sleeping barber'). Lösningen finns (numera) i avsnitt i detta kompendium 2. Avsnitt 3.5 visar hur inträde i och utträde ur monitorer samt hur wait.xx och signal.xx implementeras med semaforer. Följande monitor visar hur en monitor kan simulera P och V operationerna. monitor semaphore; begin count: integer = 1; s: queue; procedure P; begin count := count - 1; if count < 0 then wait.s end if; end; procedure V; begin count := count + 1; if count 0 then signal.s end if ; end; end semaphore; 3. a. Algoritmen är SJF ('shortest job first'). Den innebär att den process som har kortaste (kvarvarande) exekveringstid körs. Algoritmen används 'non-preemptive'. b. Om man kör en kortare process efter en längre i st f tvärtom så minskar detta väntetiden mindre för den längre processen än den ökar väntetiden för den kortare. Alltså ökar medelväntetiden. c. Algoritmen är helt olämplig i både tiddelnings- och realtidssytem. Den är en kvarleva från den satsorienterade tiden. 4. i. Delning. Delade sidor måste ha samma sidnummer i alla processer och de sidor som delade sidor refererar också. Detta är inget problem vid segmentering om capability list eller andra processlokalt administrerbara kontext utnyttjas och vars identifierare avbildas via ett globalt kontext. ii. Minnesskydd. Vid sidindelning hamnar (oftast) oilka objekt över sidskarvar, varvid åtkomsträttigheterna måste sättas för 'liberalt'. Vid segmentering är alla element i ett segment av samma typ. Om tex capabilities används kan samma segment åsättas olika rättigheter i olika processer.

12 230 iii. Dynamiska datastrukturer. Segments storlek kan ju tillåtas förändras dynamiskt. Att hantera dynamiska strukturer i den virtuella adressrummet vid 'paging' är helt analogt med att hantera dynamiska strukturer direkt i primärminnet. iv. Dynamisk länkning. Vid 'paging' länkas alla moduler statiskt i det virtuella adressrummet. Länksegment som används för dynamisk länkning i segmenterade system blir mycket krånligt att simulera. 5. Den upplevda accesstiden kan skrivas Teff = Tpm + f*tsm, där Tsm = Tarm + Trot/2 + Trot/16. Aktuella siffrorna ger 110 = f*(4 + 8/2 + 8/16)* , dvs f Med halverad sidstorlek fås 110 = f'*( )* och alltså (f' - f)/f = 8.5/ = 0.2, dvs cirka 20% 6. 'Thrashing'. Se läroboken. 7. a. Vid 'open' utförs följande funktioner i. Åtkomsträttigheter kontrolleras. ii. 'Concurrency control' utförs ('readers/writers problem'). iii. Fildeskriptorer i minnet byggs upp. iv. Sektorbuffring ('file caching') sker. b. Implicit open kan ge mer 'overhead' (utförs fler gånger). Å andra sidan hålls filer inte öppna i onödan. Explicit 'open' ger större frihetsgrader för användaren och risk för att återkallande eller tillägg av rättigheter får fördröjd effekt. 8. a. (Inget svar här.) b. I pcb-n, i filkatalogelement, i mbox-strukturen och i symboltabellen (vid 'parsing' eller interpretering). (Var annars?) c. För if a then S ska kontrolleras att a S och för b := c + d ska kontolleras att c d b. I vårt exempel (if a then b := c + d;) blir kontrollen alltså 1. a b -- b är enda variabel som tilldelas värde i then-grenen. 2. c d b -- maximum av 'högerledsklasserna' får inte överstiga klass för vl. A.3. Tentamina Här följer några relativt färska tentamina för teknisk fysiklinjen, datavetenskapliga linjen och för matematisk naturvetenskapliga linjen. Jag är helt övertygad om att lärare, mig inklusive, har gett, skulle ha givit och kommer att ge tentamina med helt andra typer av frågor.

13 231 TENTAMEN Operativsystem, tfl, Skrivtid: (Polacksbacken) Hjälpmedel: Miniräknare Maximalt tre poäng per uppgift Betygsgränser cirka 40% (3), 60% (4) resp 80% (5) Lycka till! 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 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. 4. I ett segmenterat system får finnas maximalt 2 24 segment. Ett segment kan vara maximalt 1 M varför segmenten sidindelas i sidor om 1 K. Konstruktörerna har gjort den kompromissen att en process bara tillåts referera 64 stycken segment åt gången (dvs utan att byta domän). Visa med hjälp av kommenterade figurer hur adressöversättningen går till i detta system från exekverande minnesrefererande instruktion till sökt ord i primärminnet. Ange storlekar på alla tabeller. Glöm inte att beskriva referenskontroller, 'page faults' och missar i det tillhörande (nödvändiga!) associativa cacheminnet. 5. Thrashing kan uppstå i sidindelade system. Antag att ett primärminne rymmer 90 sidoramar för nio processer som alla har referenssträngen w = där denna sidföljd återupprepas godtyckligt antal gånger. Eftersom alla sidor ryms i minnet kommer sidfelfrekvensen att vara 0 och cpu-utnyttjandet 100%. Beräkna sidfelfrekvensen då en tioende process med samma w som de tidigare aktiveras. Förutsätt att varje process får 9 sidoramar och att utbyteslgoritmen är LRU (least recently used). V. G. VÄND!

14 232 forts., 6. I ett visst läge då buddy-metoden används som placeringsalgoritm ser allokeringen ut som följer. Adress Innehåll Blocknamn Storlek Status a 2 ledigt b 2 upptaget c 4 ledigt d 2 upptaget e 2 ledigt f 4 upptaget g 4 ledigt h 4 upptaget i 8 ledigt Visa med två figurer hur 'kartan' ser ut dels då ett block av storlek 1 allokerats, dels då därefter block d frigjorts. 7. Matrismodellen för objektskydd innefattar principer för upprätthållande (enforcement) av åtkomstkontroll, för domänbyte och för att flytta rättigheter. Ange med text och figur(er) hur dessa principer implementeras i ett capability- orienterat/baserat system. 8. I ett filsystem omfattar logiska block vardera en sektor a 0.5 K. Antag att det senast använda blocket var nummer 9 och att nummer 4 står närmast i tur att användas. (Blocken numreras från 0.) Hur många sektorer måste läsas från skivminnet om följande allokeringsmetod används? a. Sammanhängande (contiguous). b. Ren länkning (via pekare i datablocken). c. Indexerad. Motivera dina svar. 9. Beskriv och exemplifiera (användningen av) följande begrepp. a. Baklås (dead lock, deadly embrace) och sätt att bemästra sådana. b. Operationerna open och close i filsystem. c. Test-and-set instruktionen. d. Processbeskrivning (PCB). e. Dynamisk länkning. f. Bells och LaPadulas modell för informationsflödeskontroll.

15 233 TENTAMEN Operativsystem dvl, Betygsgränser: Cirka 50% för G och 85% för VG. Examinator: Hans Flack, tel (arb), (bost). Räknedosa tillåten. Inte fler än 3 poäng per uppgift ges. Tid: 6 timmar (14:30-20:30). Lycka till! 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. 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. 4. I den maskin som de flesta på DoCS använder finns en mmu (memory management unit) för översättning av logiska linjära 32-bitars adresser till fysiska platser. Tillsammans med SPARC arkitekturen fungerar denna mmu på följande sätt. I varje ögonblick anges ett aktuellt kontext med ett 12 bitars register. Registerinnehållet används som index i en kontexttabell. Den adress som genereras av processorn omfattar 32 bitar. MMU-logiken delar upp denna som bestående av fyra delar: -- index1; 8 bitar -- index2; 6 bitar -- index3; 6 bitar -- offset; 12 bitar -- Givet ett kontextvärde (mellan 0 och 4095) pekar motsvarande kontexttabellelement ut en 'first level' tabell (FLT). Index1 används som index i denna. Detta FLT-element pekar ut en 'second level' tabell (SLT) som i sin tur indexeras via index2 för att finna en 'third level' tabell (TLT). Värdet på index3 anger ett element i TLT som pekar ut avsedd sidoram i primärminnet (eller anger sidfel). a. Varför finns tre nivåers tabeller i stället för bara en (sid)tabell? b. Vilket syfte har kontexttabellen? c. Vad är sidstorleken? d. Vilken ytterligare maskinvara måste systemet ha för att minnesaccesstiden ska bli rimlig? e. Är det möjligt att implementera segmentering under de givna förutsättningarna? f. Hur stort är det virtuella adressrummet? Ge noggranna motiveringar för alla svar! V. G. VÄND!

16 234 forts., 5. Tids- (temporal) eller rums- (spatial) lokalitet (locality) är grundförutsättningar för att ett system med virtuellt minne baserat på 'paging' ska bli attraktivt. a. Förklara hur denna egenskap påverkar sidfelfrekvensen (page fault frequency). b. Relatera till och förklara innebörden av utbytesalgoritmerna FIFO, LRU, den optimala OPT och NRU (eller clock). Ranka, med motivering, metoderna efter den ordning de föredras att användas i ett operativsystems minneshanterare. c. Påverkar lokaliteten risken för 'thrashing' och i så fall hur? 6. Lämna utförliga beskrivningar av följande begrepp. a. Capability (för adressering och skydd). b. Buddy-metoden (för dynamisk minneshantering). c. Filkatalog (file directory). 7. Både ringskydd (RP) (ring protection) och skydd enligt Bells och LaPadulas (BLP) modell bygger på att subjekt och objekt klassificeras med ringnummer respektive etiketter (labels, classes). Redogör för dessa metoder och förklara också noga vari skillnaderna (trots sagda likheter) mellan metoderna ligger. Påvisa, genom ett konkret exempel, ett skyddsproblem som BLP men inte RP löser och omvänt. 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 Med en tillönskan om en god jul och ett givande nytt år tackar jag varmast för er uppmärksamhet. /h

17 235 TENTAMEN Operativsystem, EXAM Operating Systems, March 13, 1993 Betygsgränser: Cirka 50% respektive 85%./ Grading: Pass 50%, Pass with distinction 85% (approx). Examinator: Hans Flack, tel /Examiner: Hans Flack, telephone Räknedosa tillåten (men behövs inte)./calculator (not really needed), and dictionary allowed. Inte fler än tre poäng per uppgift ges./no more than three points per question. Tid: 5 timmar (9:00-14:00)./Duration: 5 hours (9:00 am - 2:00 pm). Lycka till!/ Good Luck! 1. En frisersalong består av ett väntrum med n stolar och mottagningsrummet med frisörstolen. Om inga kunder finns så går frisören och sover. Om en kund kommer in i salongen och alla stolar i väntrummet är upptagna så lämnar kunden salongen. Om frisören är upptagen men väntrumsstolar är lediga så sätter sig kunden i en av de lediga stolarna. Om frisören sover så väcker kunden honom. Skriv processer som koordinerar frisören och kunderna. För att gå in i och för att gå ur proceduren 'klipp eller raka' så ska synkroniseringsoperationer som använder semaforer användas i processerna. (Anm. Detta är ett klassiskt 'client/server'-problem med ändlig kö på efterfrågesidan, formulerat av Dijkstra 1965 sådär 20 år innan 'client/server' blev ett begrepp inom branschen (distribuerade) operativsystem.) A barber shop consists of a waiting room with n chairs, and the barber room containing the barber chair. If there are no customers to be served, the barber goes to sleep. If a customer enters the barber shop and all chairs are occupied, then the customer leaves the shop. It the barber is busy, but chairs are available, then the customer sits in one of the free chairs. If the barber is asleep, the customer wakes up the barber. Write processes to coordinate the barber and the customers. In order to enter and leave the procedure 'shave or cut' synchronizing operations using semaphores should be used in the processes. (Note. This is a classical client/server problem stated by Dijkstra 1965 some 20 years before client/server became a concept of (distributed) operating systems.) 2. Visa hur semaforer kan implementeras med hjälp av monitorer och omvänt. P- och V- operationerna ska implementeras via monitorrutiner och monitorkonstruktionerna ska implementeras med semaforoperationer. Show how to implement semaphores with monitors and vice versa. The P and V operations should be coded as monitor routines, and the functionality of a monitor should be implemented vith semaphore operations. 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? The scheduling algorithm x minimizes the average waiting time. a. Who is x? Describe the algorithm carefully. b. Prove the assertion. State the assumptions. c. Why are other algorithms than x used? 4. Vid minneshantering fästes ibland avseende vid bra understöd för i. Delning av kod och data mellan processer ii. Minnesskydd iii. Dynamiska datastrukturer iv. Dynamisk länkning Visa hur dessa önskemål är 'svåra' att hantera vid ett sidindelat system och hur segmentering kan användas för att understödja i., ii., iii. och iv. V G VÄND!/ Con't.

18 236 forts., Certain applications require memory management with good support for i. Sharing of code and data between processes ii. Memory protection iii. Dynamic data structures iv. Dynamic linking Show that it is 'hard' to achieve these goals in a paging system, and how segmentation can be used to support i., ii., iii., and iv.. 5. I ett virtuellt minne baserat på sidindelning är primärminnets accesstid 100 ns, sidstorleken 4K, diskens rotationstid 8 ms, inställningstiden för armen 4 ms och antalet sidor per spår 16. Vilken sidfelsfrekvens f krävs för att den från processorn upplevda accesstiden ska vara högst 110 ns och hur mycket (i %) kan f tillåtas öka om sidstorleken halveras? Tid för adressöversättning kan försummas då en sida finns i primärminnet. A virtual memory based on paging is implemented as follows. The access time for the primary memory is 100 ns, the page size is 4 K, the rotational time of the disk is 8 ms, the seek time is 4 ms, and the number of pages per track is 16. What page fault frequency is needed to get an effective access time of at most 110 ns, and how much (%) can f be allowed to increase if page size is halved? Address translation time for pages in memory can be neglected. 6. Beskriv fenoment 'thrashing', dess orsaker och motåtgärder. Describe thrashing, its causes, and prevention. 7. En fil kan öppnas endera explicit via ett anrop open (<params>) eller implicit vid anrop read/write. a. Vilka åtgärder vidtar filsystemet när en fil öppnas? b. Ange för- och nackdelar med explicit/implicit open. A file could be opened explicitly by calling open (<params>) or implicitly at each read/write. a. Which operations are performed by the file system at open? b. State advantages and disadvantages for explicit and implicit open respectively. 8. Säkerhetsklasser (labels) o för objekt o för MAC kan associeras med resurser som tex processer, filer, brevlådor och variabler och klasserna ingå i ett lattice (partiell ordning, glb och lub definierade). a. Vilka skyddsproblem löser detta jämfört med 'vanlig' åtkomstkontroll (DAC)? b. Vilka datastrukturer bör användas för att beskriva klasserna för nämnda resurser? c. Vilka kontroller avseende klasser bör kontrolleras för att tillförsäkra auktoriserade flöden för konfidentialitet vid satsen if a then b := c + d; uttyckt i a, b, c, d, och? Förklara. Security classes (labels) o for objects o for MAC can be used for resources eg processes, files, mail boxes, and variables, and the classes contained in a lattice (partial order, glb, and lub defined). a. Which protection problems does this solve in comparison to discretionary access control (DAC)? b. Which data structures should be used to hold the classes for the above resources? c. Which class relations are to be checked to assure authorized flows with respect to confidentiality for the statement if a then b := c + d; in tems of a, b, c, d, and? Explain.

19 237 TENTAMEN Operativsystem, dvp, den 17 december, 1993 Betygsgränser: Cirka 50% (G) och cirka 80% (VG). Examinator: Hans Flack, tel Räknedosa tillåten (men behövs knappast). Inte fler än tre poäng per uppgift ges. Tid: 6 timmar (03:00 pm - 09:00 pm). Lycka till! 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 = I ett sidindelat system med 32 bitars virtuella/logiska adresser L uppdelar adressöversättaren L i fyra fält L = <a, b, c, d> för att därigenom åstadkomma ett tre-nivås sidtabellsystem. a. Varför uppdelas sidnumret p i tre delar p = (a, b, c)? b. Hur sker adressöversättningen till fysisk adress (plats) och hur ser sidtabellelementen ut? c. Vilka av fälten a, b, c, eller d påverkar det maximala antalet sidor varje process kan ha? 5. Tillämpa LRU och FIFO på process-referenssträngen w = och bestäm antalet sidfel då minnet rymmer fyra sidoramar och är tomt initialt. V. G. VÄND!

20 238 forts., 6. Länkning och delning kan göras dynamiskt som i tex Multics. Antag att två processer p1 och p2 exekverar samma procedur P som i sin tur refererar ett datasegment D. Efter det att alla länkar till P lösts upp är minnet allokerat som följande figur visar. Segmenttabeller Procedursegment för P Datasegment D Symboltabell 9000 X Y Symboltabell D, X Data D, Y Ren kod Länkavsnittsmall (evt) add* 0, lp Länksegment för p1 och P add* 5, lp Upptagna tabellelement , 10, trap trap tag tag , 20, trap trap tag tag Länksegment för p2 Länkavsnittsmall Segmenttabeller: för p1 startar den vid adress 1000 och nästa lediga element finns vid adress för p2 startar den vid adress 2000 och nästa lediga element finns vid adress Segmentet P: Symboltabellen börjar vid adress Kodavsnittet börjar vid adress Länkavsnittmallen börjar vid adress Segmentet D: Symboltabellen börjar vid adress Data som sådana börjar vid adress a. Gör ovanstående figur fullständig genom att rita ut länksegmenten för p1 och p2 innan det att instruktionerna add utförts. Dessa börjar vid adesser respektive b. Hur har länksegmenten ändrats när add instruktionerna utförts? 7. Beskriv innebörden av operationen j := open-file ( parametrar), dvs vilka är parametrarna och vilka operationer utförs av funktionen open? 8. a. Redogör för accessmatrismodellen (AMM) för skyddssystem. b. Förklara minst två frågeställningar som avser datasäkerhet som AMM inte klarar.

Några gamla tentamensuppgifter: Minneshantering

Några gamla tentamensuppgifter: Minneshantering 1 Tentamen 1992-08-26 5. I ett virtuellt minne med skiva är primärminnets accesstid 1 mikrosekund, sidstorleken 1 K, skivans rotationstid 10 millisekunder, inställningstiden för skivans arm 5 millisekunder

Läs mer

Några gamla tentamensuppgifter: Processer. 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras.

Några gamla tentamensuppgifter: Processer. 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras. 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

Läs mer

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne. Fö 8: Operativsystem II Minneshantering och Virtuelltminne. Virtuella I/O enheter och Filsystemet. Flerprocessorsystem. Minneshantering Uniprogrammering: Minnet delas mellan operativsystem och användarprogrammet.

Läs mer

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör. Tentamen Inst. för Informationsteknologi Avdelningen för Datorteknik Herbert P Sander Tel: 070 376 06 87 Ämne: Operativsystem Lokal: Post Scriptum, sal 2 Datum: Måndagen den 13 maj 2002 Tid: Kl 09.00-14.00

Läs mer

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel Uppgift 3 Till en process som kräver 8 sidor allokeras 4 sidoramar. Antag följande referenssträng: 1,2,8,3,4,3,8,2,1,4 Hur många sidofel kommer att genereras (demand paging) med en a) FIFO-algoritm (2

Läs mer

4 grundregler. Minneshantering. Problemet. Windows minkrav

4 grundregler. Minneshantering. Problemet. Windows minkrav 4 grundregler 1. Man kan aldrig få för mycket minne 2. Minnet kan aldrig bli för snabbt Minneshantering 3. Minne kan aldrig bli för billigt 4. Programmens storlek ökar fortare än minnet i datorerna (känns

Läs mer

Minnet från processorns sida Datorteknik

Minnet från processorns sida Datorteknik Minnet från processorns sida Datorteknik ERIK LARSSON Processorn ger kommandon/instruktioner med en adress och förväntar sig data. Exempel: READ(ADR) -> DATA Fysisk adress Logisk adress READ 00001000 READ

Läs mer

Minneshantering segmentering och virtuellminne. Föreläsning 3

Minneshantering segmentering och virtuellminne. Föreläsning 3 Minneshantering segmentering och virtuellminne Föreläsning 3 Minneshantering forts. Hur kan man köra processer som är större än primärminnet? Hur kan man undvika att stack och heap växer ihop? Virtuellminne

Läs mer

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00 Operativsystem ID2200 Tentamen TEN1 3.8 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa

Läs mer

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00 Operativsystem ID2206 Tentamen TEN1 4.5 hp 2018-04-03 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa

Läs mer

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt

Läs mer

syftar till att förbättra prestanda. Den kan avse något eller flera av följande mått.

syftar till att förbättra prestanda. Den kan avse något eller flera av följande mått. 71 4. 4.1. Allmänt Vid multiprogrammering kan det vara önskvärt att anpassa systemets beteende till olika tillämpningars behov. En anledning till multiprogrammering var att man önskade öka genomströmningen.

Läs mer

Operativsystem (ID2200/06) XX XX:00-XX:00

Operativsystem (ID2200/06) XX XX:00-XX:00 Operativsystem (ID2200/06) 2017-01-XX XX:00-XX:00 Namn: Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4-sida med anteckningar. Mobiler etc skall lämnas till

Läs mer

Tentamen den 17 mars 2016 Datorteknik, EIT070

Tentamen den 17 mars 2016 Datorteknik, EIT070 Lunds Universitet LTH Tentamen den 17 mars 2016 Datorteknik, EIT070 Skrivtid: 14.00-19.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30 poäng

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Inledning Ken Thompson och Dennis M. Ritchie utvecklade C Turingpriset( Nobelpris i datavetenskap ), 1983 Alan Turing (1912-1954) För deras utveckling av generell OS teori och

Läs mer

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram? Föreläsning 15: Parallella subrutiner Parallellitet Processer och trådar Semaforer, monitorer och synkroniseringsmeddelanden Parallellitet Ofta är det nödvändigt eller önskvärt att programdelar exekveras

Läs mer

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00 Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-04-16 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas

Läs mer

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Institutionen för elektro- och informationsteknik Campus Helsingborg, LTH 2018-01-09 8.00-13.00 (förlängd 14.00) Uppgifterna i tentamen

Läs mer

Operativsystem (IS1350) :00-12:00

Operativsystem (IS1350) :00-12:00 Operativsystem (IS1350) 2017-03-15 08:00-12:00 Namn: Instruktioner Betyg Du får endast ha med dig skrivmateriel. Mobiler etc skall lämnas till tentamensvakterna. Svaren skall lämnas på dessa sidor, använd

Läs mer

Synkronisering. Föreläsning 8

Synkronisering. Föreläsning 8 Synkronisering Föreläsning 8 Synkronisering Så stort, intrikat och viktigt att det finns hela kurser om det i parallellprogrammering. Vi fuskar lite med några av de viktigaste bitarna! Synkronisering Vad

Läs mer

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn. 1 2 En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn. Instruk=onerna =ll programmet som exekveras finns

Läs mer

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Lunds Universitet LTH Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621 Skrivtid: 8.00-13.00 Inga tillåtna hjälpmedel Uppgifterna i tentamen ger maximalt 60 poäng. Uppgifterna är

Läs mer

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation. Vad är viktigast? Sammanfattning Processer och trådar Avbrottshantering Vad det är och hur det fungerar (på låg nivå) Vilka problem finns Schemaläggning Flerprocessorsystem Varianter, problem Interprocesskommunikation

Läs mer

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer Dagens OS En översikt av dagens OS Titt på hur de gör Unix, Linux och Windows Unix Många varianter Mycket gemensamt Unix En del som skiljer Vanliga program, shell, etc System calls Interupts and traps

Läs mer

Operativsystem ID1200/06 Tentamen :00-18:00

Operativsystem ID1200/06 Tentamen :00-18:00 Operativsystem ID1200/06 Tentamen 2018-01-12 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Svaren skall lämnas på dessa sidor,

Läs mer

Digitalteknik och Datorarkitektur 5hp

Digitalteknik och Datorarkitektur 5hp Digitalteknik och Datorarkitektur 5hp Minnes-hierarkier och Cache 12 maj 2008 karl.marklund@it.uu.se issa saker använder vi ofta Dessa saker vill vi ha nära till hands Storleken har betydelse Litet är

Läs mer

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl TDDIU81 Processer och trådar Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl Sammanfattning Den här rapporten innehåller en kort genomgång av allmän process och trådhantering

Läs mer

Deadlocks. detektera och undvik

Deadlocks. detektera och undvik Deadlocks detektera och undvik Enkla exempel Smal bro med en fil En fyrvägskorsning Fyra vägkorsningar Två lås P: Lock A, Lock B.. Rel. A, Rel. B Q: Lock B, Lock A.. Rel. B, Rel. A Vad motsvarar Resurser?

Läs mer

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Fö 5+6 TSEA81. Real-time kernel + Real-time OS Fö 5+6 TSEA81 Real-time kernel + Real-time OS Stackens användningsområde * JSR / RTS : returadress * Temporärdata (push / pop) void myfunc(void) { int i; // hamnar nog i register int test[10]; // hamnar

Läs mer

Tentamen den 18 mars svar Datorteknik, EIT070

Tentamen den 18 mars svar Datorteknik, EIT070 Lunds Universitet LTH Tentamen den 18 mars 2015 - svar Datorteknik, EIT070 Skrivtid: 14.00-19.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30

Läs mer

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60) Lunds Universitet LTH Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60) Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng

Läs mer

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON Datorteknik ERIK LARSSON Laborationer Gå bara på tillfällen där du är anmäld. Moment svarar mot 1.5hp, dvs 40 timmar arbete Schemalagd tid: 4*2 (lektioner)+4*4(laborationer)=20 timmar Material: Finns på

Läs mer

Institutionen för elektro- och informationsteknologi, LTH

Institutionen för elektro- och informationsteknologi, LTH Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd

Läs mer

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH. Datorteknik Föreläsning 5 Realtidssystem och realtidsprogrammering Mål Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av flera processer Att du ska förstå begreppet tråd

Läs mer

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00 Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen 2019-04-16 14:00-18:00 Instruktioner Du får, förutom skrivmateriel, endast ha med dig en egenhändigt handskriven A4 med anteckningar. Anteckningarna lämnas

Läs mer

Digitala System: Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON Digitala System: Datorteknik ERIK LARSSON Översikt Minnets komponenter Minneshierarkin Cacheminne Paging Virtuellt minne Minnets komponenter Enhet för indata Primärminne (CPU) Enhet för utdata Sekundärminne

Läs mer

Exam Concurrent and Real-Time Programming

Exam Concurrent and Real-Time Programming LUNDS TEKNISKA HÖGSKOLA 1(5) Institutionen för datavetenskap Exam Concurrent and Real-Time Programming 2018 08 23, 14.00 19.00 1. Vad är prioritetsinversion? Illustrera med ett enkelt exempel. Redogör

Läs mer

Tentamen PC-teknik 5 p

Tentamen PC-teknik 5 p Tentamen PC-teknik 5 p Namn:. Klass:... Program: Di2, Em3, Et3 Datum: 03-08-15 Tid: 13:30-18:30 Lokal: E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific C

Läs mer

Realtidsprogrammering Ordinarie tentamen

Realtidsprogrammering Ordinarie tentamen Tentamen i Realtidsprogrammering Ordinarie tentamen Datum: 2006-10-20 Tid: 08:00 13:00 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 7 uppgifter.

Läs mer

Omtentamen i Realtidsprogrammering för Au3, D3, E3

Omtentamen i Realtidsprogrammering för Au3, D3, E3 Omtentamen i Realtidsprogrammering för Au3, D3, E3 Datum: 2004-01-14 Tid: 0800-1300 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Inga särskilda hjälpmedel är tillåtna. Poäng: Tentamen omfattar 40

Läs mer

Operativsystem - input/output, skydd, virtualisering

Operativsystem - input/output, skydd, virtualisering Operativsystem - input/output, skydd, virtualisering Mats Björkman 2015-03-12 Lärandemål, I/O n Typer av I/O-enheter n Character, Block & Special n Minnesmappad I/O n Typer av I/O-programmering n Programmerad,

Läs mer

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt Flera processer Minneshantering Operativsystem lektion 6 Potentiellt problem: Den sida som plockas bort behöver inte vara den sida som används minst!! Det kan finnas andra processer som inte körs eller

Läs mer

CE_O5. Cacheminne. Hemlaboration 2.

CE_O5. Cacheminne. Hemlaboration 2. IS1500 Exempelsamling till övning CE_O5, 2014 CE_O5. Cacheminne. Hemlaboration 2. 5.1. Medeltidshistoria Diskutera förloppet då CPU:n gör en läsreferens i huvudminnet dvs information kopieras från huvudminne

Läs mer

Snapdragon 810: Cacheminnet

Snapdragon 810: Cacheminnet Snapdragon 810: Cacheminnet Daniel Eckerström dat14dec@student.lu.se Sammanfattnig Snapdragon 810 innehåller två olika processor arkitekturer, ARM Cortex-A53 samt Cortex-A57. Detta för att kunna på ett

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University Datum för tentamen Date of exam Sal Room Tid Time Kurskod Course code Provkod LADOK code

Läs mer

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.) Outline för D2, ICT2, E3 och Mek3 Nicholas Wickström Högskolan i Halmstad Sverige p.1/18 Förra föreläsningen Specifikation -Kravspecifikation -Funktionsspecifikation -Blockdiagram Operativsystem -Grunder,

Läs mer

Mekanismer. (implementation)

Mekanismer. (implementation) Mekanismer (implementation) Repetition Semafor Räknar tillgängliga resurser Initieras med startvärde Vid förbrukning: väntar tills resurs finns Användning: invänta händelse Lås Markerar att en variabel/datastruktur

Läs mer

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum: Datorsystem Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3 Student: Lärare: Underskrift: Underskrift: Datum: Datorsystem Laboration 3 1 Innehåll 1 Inledning 2 1.1 Introduktion...........................................

Läs mer

Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5

Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5 Realtidssystem - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 5 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad på: Föreläsningsmaterial

Läs mer

Lösningsförslag till tentamen i IS1350 Operativsystem

Lösningsförslag till tentamen i IS1350 Operativsystem sförslag till tentamen i IS1350 Operativsystem Måndagen 2015-03-16 kl 09:00-13:00 Examinator: IS1350 Jim Dowling Hjälpmedel: Inga Tentamensfrågorna behöver inte återlämnas efter avslutad tentamen. Ange

Läs mer

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem Tentamen i ID2206, ID2200 samt IS1350 Operativsystem Tisdagen 2014-03-18 kl 09:00-13:00 Examinator: ID2206, ID2200 Robert Rönngren, IS1350 Jim Dowling Hjälpmedel: Inga Tentamensfrågorna behöver inte återlämnas

Läs mer

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn? Fö 7: Operativsystem Introduktion. Klassificering. Vad är ett operativsystem? Program som kontrollerar andra andra program. Gränssnitt mellan användare och hårdvaran. Kärnan. Historisk översikt. Typeset

Läs mer

Datorarkitekturer med Operativsystem

Datorarkitekturer med Operativsystem Lunds Tekniska Högskola Campus Helsingborg Datorarkitekturer med Operativsystem EDT621 Rapport Cacheminneshantering för ARM3-processorer 7 december 2015 Pierre Aupeix dat11pau@student.lu.se 1 Abstract

Läs mer

Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer

Olika OS. Unix, Linux och Windows. Unix. Unix. En översikt av ett par OS. Titt på hur de gör. Många varianter. Mycket gemensamt. En del som skiljer Olika OS En översikt av ett par OS Titt på hur de gör Unix, Linux och Windows Unix Många varianter Mycket gemensamt Unix En del som skiljer Begrepp Hur skapas en process Deamon rocess Föräldrar & barn

Läs mer

Exempeltentamen Datorteknik, EIT070,

Exempeltentamen Datorteknik, EIT070, Lunds Universitet LTH Exempeltentamen Datorteknik, EIT070, Skrivtid: xx.00-xx.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng För betyg 4 krävs 30 poäng För betyg

Läs mer

Öppna filer och filsystem i PintOS Hemuppgift TDDI81, 21/

Öppna filer och filsystem i PintOS Hemuppgift TDDI81, 21/ Öppna filer och filsystem i PintOS Hemuppgift TDDI8, /0-03 Almquist Mathias (matal09) Nguyen Johan (johng86) Hamzic Mirza (mirha348) Timliden Erik (eriti930) INLEDNING PintOS är ett operativsystem utvecklat

Läs mer

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang) Tentamen i Programmeringsteori Institutionen for datorteknik Uppsala universitet 1996{08{14 Larare: Parosh A. A., M. Kindahl Plats: Polacksbacken Skrivtid: 9 15 Hjalpmedel: Inga Anvisningar: 1. Varje bevissteg

Läs mer

Föreläsningsanteckningar 5. Cacheminnen

Föreläsningsanteckningar 5. Cacheminnen Föreläsningsanteckningar 5. Cacheminnen Olle Seger 2012 Anders Nilsson 2016 1 Inledning Bakgrunden till att cacheminnen behövs för nästan alla datorer är enkel. Vi kan kallt räkna med att processorn är

Läs mer

Synkronisering. Ordning och reda

Synkronisering. Ordning och reda Synkronisering Ordning och reda Banköverföring struct account { int balance; char* owner; }; struct account account[ NUM_ACCOUNTS ]; bool transfer( int amount, unsigned from, unsigned to ); 2 Banköverföring

Läs mer

Beijer Electronics AB 2000, MA00336A, 2000-12

Beijer Electronics AB 2000, MA00336A, 2000-12 Demonstration driver English Svenska Beijer Electronics AB 2000, MA00336A, 2000-12 Beijer Electronics AB reserves the right to change information in this manual without prior notice. All examples in this

Läs mer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Abstrakta datatyper Listor Stackar

Läs mer

Närliggande allokering Datorteknik

Närliggande allokering Datorteknik Närliggande allokering Datorteknik ERIK LARSSON TID Problem: Minnet blir fragmenterat Paging Demand paging Sida (S) Dela upp primärminnet i ramar (frames) och program i sidor (pages) Program 0 RD.0 1 RD.1

Läs mer

Aktivitetsschemaläggning för flerkärninga processorer

Aktivitetsschemaläggning för flerkärninga processorer Lunds Tekniska Högskola Datorarkitekturer med Operativsystem EDT621 Aktivitetsschemaläggning för flerkärninga processorer Tobias Lilja 5 december 2016 Innehåll 1 Inledning 3 1.1 Syfte................................

Läs mer

Öka prestanda i Shared-Cache multi-core processorer

Öka prestanda i Shared-Cache multi-core processorer Öka prestanda i Shared-Cache multi-core processorer 1. Abstract Många processorer har nuförtiden flera kärnor. Det är även vanligt att dessa kärnor delar på högsta nivås cachen för att förbättra prestandan.

Läs mer

MESI i Intel Core 2 Duo

MESI i Intel Core 2 Duo MESI i Intel Core 2 Duo Sammanfattning Denna rapport beskriver en processor (Intel Core 2 Duo) vars cache coherence protokoll är MESI. Rapporten beskriver hur processorn är uppbyggd, hur många kärnor den

Läs mer

Deluppgift 17 Processhantering: exec, sleep, exit, plist

Deluppgift 17 Processhantering: exec, sleep, exit, plist Linköpings Tekniska Högskola Institutionen för Datavetanskap (IDA), Software and Systems (SaS) (c) Klas Arvidsson Deluppgift 17 Processhantering: exec, sleep, exit, plist Inledning För att få ett praktiskt

Läs mer

OBS!! Detta är DEL 2 av tentan. För att få ut denna måste du ha lämnat in del 1. Om du inte fått ut del 1 bör du meddela skrivningsvakten. OBS!!

OBS!! Detta är DEL 2 av tentan. För att få ut denna måste du ha lämnat in del 1. Om du inte fått ut del 1 bör du meddela skrivningsvakten. OBS!! Sid 1 av 8 Datavetenskap Tentamen för DVG A03 Datorsystemteknik, 7,5 hp, del 2 fredag 2009-01-09 kl. 08.15-13.15 Tentamen del 2 består av 4 sidor. Ansvariga lärare: Tillåtna hjälpmedel: Kerstin Andersson

Läs mer

119 Minnesallokering. Detta kapitel behandlar kort, som vanligt, dessa 'policies' och avslutas med ett avsnitt om 'caches'.

119 Minnesallokering. Detta kapitel behandlar kort, som vanligt, dessa 'policies' och avslutas med ett avsnitt om 'caches'. 119 7. 7.1. Allmänt För att realisera ett virtuellt minne behövs minst två nivåer i minneshierarkin och dessutom 1. En virtuell adressrymd som är större än den fysiska,. En adressavbildningsmekanism och

Läs mer

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen 68000 Arkitektur F2: Motorola 68000 I/O signaler Processor arkitektur Programmeringsmodell Assembler vs. Maskinkod Exekvering av instruktioner i 68000 Instruktionsformat MOVE instruktionen Adresseringsmoder

Läs mer

Operativsystem. Hierarkin för hårdvara läses nerifrån

Operativsystem. Hierarkin för hårdvara läses nerifrån Operativsystem DOS DiskOperatingSystem - ett jobb i taget. Dagens Operativsystem - prioriterar olika jobb. Om ett jobb pausas körs ett annat. Operativsystems viktigaste funktion är att bilda gränssnitt

Läs mer

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering

Fö 2: Minnen. Introduktion. Primärminnet. Interna och externa minnen. Introduktion, Klassificiering Fö 2: Minnen Introduktion, Klassificiering Primärminne Sekundärminne Minneshiearki Cache-minne Introduktion Primärminnet används för att lagra program och data som är aktuella att använda. Sekundärminnet

Läs mer

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad 1 Datatyper Tobias Wrigstad Det finns flera olika typer av (slags) data Olika datatyper har olika egenskaper. T.ex. är ett personnummer inte ett tal. (Den sista siffran skall stämma enligt den s.k. Luhnalgoritmen

Läs mer

Operativsystem - Processkedulering

Operativsystem - Processkedulering Operativsystem - Processkedulering Mats Björkman 2015-02-02 Innehåll n Processer (föreläsning 2) n n n Processmodell Processtillstånd Trådar n Processkommunikation (föreläsning 3) n n n Semaforer Monitorer

Läs mer

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p) UMEÅ UNIVERSITY Department of Mathematics and Mathematical Statistics Pre-exam in mathematics Linear algebra 2012-02-07 1. Compute the following matrix: (2 p 3 1 2 3 2 2 7 ( 4 3 5 2 2. Compute the determinant

Läs mer

Pipelining i Intel Pentium II

Pipelining i Intel Pentium II Pipelining i Intel Pentium II John Abdulnoor Lund Universitet 04/12/2017 Abstract För att en processor ska fungera måste alla komponenter inuti den samarbeta för att nå en acceptabel nivå av prestanda.

Läs mer

Tentamen PC-teknik 5 p Lösningar och kommentarer

Tentamen PC-teknik 5 p Lösningar och kommentarer Tentamen PC-teknik 5 p Lösningar och kommentarer Program: Di2, Em3, Et3 Datum: 04-08-10 Tid: 13:30-18:30 Lokal E171 Hjälpmedel: Linjal, miniräknare, Instruktionsrepertoar för 8086 (utdelas), Lathund, Pacific

Läs mer

Tentamen i Realtidsprogrammering

Tentamen i Realtidsprogrammering Tentamen i Realtidsprogrammering Omtentamen Datum: 2008-12-13 Tid: 14:00 17:00 Ansvarig lärare: Telefon: 301438 Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng fördelade på 5 uppgifter. 20 poäng

Läs mer

Realtidssystem. - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 2

Realtidssystem. - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 2 Realtidssystem - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp Föreläsning 2 Kursens innehåll motsvarar tidigare omgångar under beteckning EDA698 Stora delar baserad

Läs mer

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Rahim Rahmani (rahim@dsv.su.se) Division of ACT Department of Computer and Systems Sciences Stockholm University SVAR TILL TENTAMEN I DATORSYSTEM, VT2013 Tentamensdatum: 2013-03-21 Tentamen består av totalt

Läs mer

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University Datum för tentamen Date of exam Sal Room Tid Time Kurskod Course code Provkod LADOK code

Läs mer

F5: Högnivåprogrammering

F5: Högnivåprogrammering 1 F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data

Läs mer

Operativsystem - Filsystem

Operativsystem - Filsystem Operativsystem - Filsystem Mats Björkman 2015-03-09 Administrativt n Extraföreläsning istället för den inställda: torsdag 12/3 kl 8-10 i Pi n Seminarier preliminärt schema ute n 15 minuter per grupp lämna

Läs mer

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp

Tentamen i Digitala system - EITA15 15hp varav denna tentamen 4,5hp Tentamen i Digitala system EITA5 5hp varav denna tentamen 4,5hp Institutionen för elektro och informationsteknik Campus Helsingborg, LTH 289 8. 3. (förlängd 4.) Uppgifterna i tentamen ger totalt 6 poäng.

Läs mer

Datorsystemteknik för E/D

Datorsystemteknik för E/D Tentamen i kursen Datorsystemteknik (EDA330 för D och EDA370 för E) 19/8 2000 1(8) Tentamen i kursen Datorsystemteknik (EDA330 för D och EDA370 för E) Datorsystemteknik för E/D 19/8 2000 Tentamensdatum:

Läs mer

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A Mål Datorteknik Föreläsning 5 Att du ska förstå hur avbrott används för - Mätning - Styrning - Stöd för körning av fle processer Att du ska förstå begreppet tråd Att du ska veta hur odelba resurser kan

Läs mer

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList. Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar

Läs mer

Cacheminne Intel Core i7

Cacheminne Intel Core i7 EDT621 Datorarkitekturer med operativsystem 7,5 hp 2015-12-07 Cacheminne i Intel Core i7 Författare: Adnan Karahmetovic Handledare: Erik Larsson Innehåll 1. Inledning... 1 1.1 Syfte... 1 1.2 Frågeställning...

Läs mer

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7 Schemaläggning Unix 20 priority = CPU_usage + nice + base Minneshantering etc Operativsystem - Lektion 7-20 Linux Schemaläggning av trådar (kernel threads) Real-time FIFO Real-time round robin Timesharing

Läs mer

Tentamen i Realtidsprogrammering för Au3, D3, E3

Tentamen i Realtidsprogrammering för Au3, D3, E3 Tentamen i Realtidsprogrammering för Au3, D3, E3 Ordinarie Tentamen Datum: 2005-10-21 Tid: 14:00-19:00 Ansvarig lärare: Telefon: 1438 (kontor) Hjälpmedel: Miniräknare Poäng: Tentamen omfattar 40 poäng

Läs mer

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621 Lunds Universitet LTH Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621 Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal poäng: 50 poäng För betyg 3 krävs 20 poäng

Läs mer

F5: Högnivåprogrammering

F5: Högnivåprogrammering F5: Högnivåprogrammering Parameteröverföring Koppling mellan låg- och högnivåprogrammering Lokala variabler Heapen Datatyper 1 Subrutin, parameteröverföring: 1(3) Via register genom värde Skicka data via

Läs mer

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik Lösningar till tentamen i EIT070 Datorteknik Institutionen för Elektro- och informationsteknik, LTH Onsdagen den 13 mars 2013, klockan 14:00 19:00 i Vic 2 A-D, 3 A-C. Tillåtna hjälpmedel: på tentan utdelad

Läs mer

Grunderna i stegkodsprogrammering

Grunderna i stegkodsprogrammering Kapitel 1 Grunderna i stegkodsprogrammering Följande bilaga innehåller grunderna i stegkodsprogrammering i den form som används under kursen. Vi kommer att kort diskutera olika datatyper, villkor, operationer

Läs mer

Operativsystem. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Operativsystem. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 7. Exempel på operativsystem. Operativsystem Informationsteknologi sommarkurs 5p, 2004 Mattias Wiggberg Dept. of Information Technology Box 337 SE751 05 Uppsala +46 18471 31 76 Collaboration Jakob Carlström Slideset 7 Agenda Exempel på operativsystem

Läs mer

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman Operativsystem Lektion 1 1 Lärare jem@cs.umu.se, B449 Lektioner etc Set Norman set@cs.umu.se, NAdv105 Labbar, labhandledning 2 Schema Notera att det finns ändringar i schemat!! Under perioden 1-8 mars

Läs mer

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Lunds Universitet LTH Ingenjörshögskolan, Helsingborg Tentamen den 14 januari 2015 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng Skrivtid: 08.00-13.00 Tillåtna hjälpmedel: Inga. Maximalt antal

Läs mer

Datorarkitekturer med operativsystem ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON Datorarkitekturer med operativsystem ERIK LARSSON Pipelining Tid SSA P Pipelining FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO FI DI CO FO EI WO Superscalar pipelining FI DI CO FO EI WO FI DI

Läs mer

Trådar. Aktiva objekt

Trådar. Aktiva objekt Föreläsning 11 Trådar 1 Aktiva objekt Det är välkänt från vardagslivet att saker händer samtidigt. Aktiva objekt gör saker på eget initiativ, medan passiva objekt endast gör saker när de blir ombedda.

Läs mer

Tentamen i TDIU16 Process- och operativsystemprogrammering

Tentamen i TDIU16 Process- och operativsystemprogrammering Linköpings universitet Institutionen för datavetenskap 2017-06-03 Tentamen i TDIU16 Process- och operativsystemprogrammering Datum 2017-06-03 Tid 14-18 Institution IDA Kurskod TDIU16 Provkod TEN1 Examinator

Läs mer