Fakultet for informasjonsteknologi,



Like dokumenter
Fakultet for informasjonsteknologi, Kontinuasjonsløsning på TDT4155 Datamaskiner og operativsystemer

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4186 Operativsystemer August 2005,

Løsningsforslag for TDT4186 Operativsystemer

Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi,

Eksamensoppgave i TDT4186 Operativsystemer

Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi,

Løsningsforslag for TDT4186 Operativsystemer

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4186 Operativsystemer 14. august 2006,

Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi, Løsning på kontinuasjonseksamen i TDT4190 Distribuerte systemer 19. august 2006,

Fakultet for informasjonsteknologi, Kontinuasjonsløsning på SIF8037 Distribuerte systemer og ytelsesvurdering (Distribuerte systemer kun)

Løsningsforslag for TDT4186 Operativsystemer

Fakultet for informasjonsteknologi, Løsning på eksamen i TDT4190 Distribuerte systemer Torsdag 9. juni 2005,

Løsningsforslag for TDT4186 Operativsystemer

Fakultet for informasjonsteknologi, Løsning på SIF8042 Distribuerte systemer Tirsdag 27. mai 2003,

Fakultet for informasjonsteknologi, Løsning på kontinuasjonseksamen i TDT4190 / SIF8042 Distribuerte systemer August 2005,

Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4190 Distribuerte systemer Onsdag 4. august 2004,

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Tildeling av minne til prosesser

TDT4258 Eksamen vår 2013

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki Hukommelseshierarki-2 1

Scheduling og prosesshåndtering

Tildeling av minne til prosesser

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs Løsningsforslag. Torsdag 29. November 2007 Kl

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Ikke pensum! Plan for dagen. Resource Management Kontekst: Bloom (1979) Kap. 11: Resource control (utvalg)

Generelt om operativsystemer

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

Løsningsforslag for Eksamen i TDT4190 Distribuerte systemer. Onsdag 23. mai

TDT4110 IT Grunnkurs Høst 2014

Oppsummering av digitalteknikkdelen

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

UNIVERSITETET I OSLO

Tildeling av minne til prosesser

Faglig kontakt under eksamen: Orestis Gkorgkas

Lykke til! Eksamen i fag TDT4140 Systemutvikling NTNU Norges teknisk-naturvitenskapelige universitet

Eksempler på ikke-blokkerende systemkall:

Oppgave 2: Gå til roten (/) av systemet. Finn minst tre forskjellige måter å gå tilbake til hjemmekatalogen din på.

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17

HØGSKOLEN I SØR-TRØNDELAG

INF2270. Minnehierarki

Dagens tema. Flere teknikker for å øke hastigheten

ALGORITMER OG DATASTRUKTURER

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Samtidige prosesser. Prosessor modus. Hvordan kan OS effektivt kontrollere brukerprosesser? Hvordan kan OS. kontrollere brukerprosesser?

ALGORITMER OG DATASTRUKTURER

KONTINUASJONSEKSAMEN I EMNE TDT4195 BILDETEKNIKK ONSDAG 13. AUGUST 2008 KL

INF2270. Input / Output (I/O)

Eksamen i tdt4120 Algoritmer og datastrukturer

Eksamen i TTK4145 Sanntidsprogrammering 12. august

Fakultet for informasjonsteknologi, Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

HØGSKOLEN I SØR-TRØNDELAG

Forelesning ISA-nivået Kap 5.1

DAT kandidatnummer: 142

Kort notat om parallellstyring IN147

UNIVERSITETET I OSLO

En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

ALGORITMER OG DATASTRUKTURER

EKSAMEN I FAG TDT4100 Objekt-orientert programmering. Fredag 3. juni 2005 KL

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon.

Forelesning Instruksjonstyper Kap 5.5

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

EKSAMEN I EMNE TDT4195/SIF8043 BILDETEKNIKK ONSDAG 19. MAI 2004 KL

Løsningsforslag til Eksamensoppgave i TDT4190 Distribuerte systemer

Minnehåndtering. Lars Vidar Magnusson. October 4, Lars Vidar Magnusson () Forelesning i Operativsystemer October 4, / 20

Operativsystemer og grensesnitt

STE6221 Sanntidssystemer Løsningsforslag

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Oppgave 1 - Linux kommandolinje (%)

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

TELE2010A Digital Systemkonstruksjon

TDT4100 Objektorientert programmering

Cache (repetisjon) Cache (repetisjon) Cache (repetisjon) Dagens temaer. CPU Cache RAM. om cache-hukommelse (kapittel 6.5 i Computer Organisation

Litt om Javas class-filer og byte-kode

Introduksjon til kurset og dets innhold

Eksamen DAT 103. Oppgave 2. Kandidatnr.: 145 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

TDT Prosedyre- og objektorientert programmering

bruksområder og oppbygging om cache-hukommelse (kapittel 6.5 i Computer Organisation Dagens temaer and Architecture ) ROM RAM

IN1020. Minnehierarki

Front page. OS - Memory management. INF Introduksjon til operativsystemer og datakommunikasjon Digital eksamen

Plan. Oppgaver og repetisjon Eksempler med fikspunkt og induksjon: 1. sortering 2. divisjon 3. Heis? IN 315: Foilsett 9: Unity: Arkitekturer

ALGORITMER OG DATASTRUKTURER

Utfordringer til mellomvare: Multimedia

CORBA Component Model (CCM)

Dagens temaer. Cache (repetisjon) Cache (repetisjon) Cache (repetisjon)

Real-time Operativsystem

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

Transkript:

Side 1 av 8 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Løsning på TDT4186 Operativsystemer Tirsdag 14. desember 2004, kl. 09.00-13.00 Det ønskes korte og konsise svar på hver av oppgavene. Les oppgaveteksten meget nøye, og vurder hva det spørres etter i hver enkelt oppgave. Dersom du mener at opplysninger mangler i oppgaveformuleringene, beskriv de antagelsene du gjør.

Side 2 av 8 Oppgave 1: Bruk av CPU og I/O (CPU & I/O Management) 20 % a) Forklar i hvilke tilfeller en bør bruke henholdsvis prosesser (Processes) og tråder (Threads). Tråder kan brukes når en trenger mer samhørende delaktiviteter (med mye intern kommunikasjon), mens prosesser kan brukes når man trenger mer isolerte delaktiviteter (med mindre intern kommunikasjon). b) Diskuter hvordan modusskifter (Mode Switching) utføres. Adresserom og instruksjonssett skiftes slik at aktiviteter først kan gis tilgang til og deretter kan nektes tilgang til hele maskinens lager og alle maskinens muligheter. c) Diskuter hvordan I/O-bufring (I/O Buffering) utføres. Et mellomlager i OS-et brukes ved innlesing / utskrift til å unngå kjøreblokkering / swappblokkering (enkel bufring), og til å utjevne mindre / større hastighetsvariasjoner (multippel bufring). d) Angi detaljert - med formell kode eller uformell beskrivelse - hvordan Frekvensbasert stakk (Frequency Based Stack)-metoden for I/O-caching virker. Kombinerer det beste fra LRU og LFU ved å betrakte Caching-området som en Stakk med tre Deler hver med Fast størrelse: * Ny = Kan ikke øke tilsvarende tellere Kan ikke fjernes fra * Middels = Kan øke tilsvarende tellere Kan ikke fjernes fra * Gammel = Kan øke tilsvarende tellere Kan fjernes fra Sider sklir mellom Ny, Middels & Gammel basert på LRU-prinsippet Sider velges fra Gammel basert på LFU-prinsippet Oppgave 2: Kontroll av prosesser (Process Synchronization) 20 %

a) Forklar i hvilke tilfeller en bør bruke henholdsvis programvarebasert (Software Based) prosesstyring og maskinvarebasert (Hardware Based) prosesstyring. Side 3 av 8

Side 4 av 8 Maskinvarebasert prosesstyring må brukes på laveste kodenivå (som for svært korte kritiske regioner), mens programvarebasert prosesstyring må brukes på høyere kodenivå (som for lange kritiske regioner eller generell tidsordning). b) Diskuter hvordan prosesser (Processes) kan kommunisere trygt og effektivt med hverandre. Det opprettes et felles lagerområde som alle har adgang til. Det kontrolleres ved gjensidig utelukkelse at prosessenes aktiviteter hverken kan ødelegge for hverandre ved innlegging eller rote for hverandre ved uthenting. Det kontrolleres også at området hverken er helt fullt ved innlegging eller helt tomt ved uthenting. c) Angi detaljert - med formell kode eller uformell beskrivelse - hvordan Oppdage og opprette (Deadlock Detection)-metoden for vranglåshåndtering virker. Symboler som benyttes: Qij: Forespørsels-matrise Aij: Allokerings-matrise Pi: Prosess-vektor Vj: Tilgjengelighets-vektor Wj: Uttestings-vektor Prosedyre for å finne syklus: A: Initier Wj = Vj; j = 1..m B: Marker Pi: Aij = 0; j = 1..m C: Alle markert: OK (Ferdig) D: Marker Pi: Wj > Qij; j = 1..m E: Minst en markert; i = 1..#: Wj := Wj + Aij; j = 1..m Fortsett i Ledd C F: Ingen markert: Ikke OK (Ferdig) Alternativer for å fjerne syklus: * Omstart alle vranglåste * Delvis omstart alle vranglåste * Aborter en etter en

Side 5 av 8 * Delvis aborter en etter en Oppgave 3: Bruk av lager (Memory Management) 20 % a) Forklar i hvilke tilfeller en bør bruke henholdsvis fast partisjonering (Fixed Partitioning), enkel sidedeling (Simple Paging) og virtuelt lager med sidedeling (Virtual Memory with Paging). Alle tre bør brukes når en ikke ønsker ekstern fragmentering, men aksepterer intern fragmentering. Virtuelt lager med sidedeling passer når en har svært mange eller svært store programmer. Enkel sidedeling passer når en har mange - men ikke for mange, eller store - men ikke for store programmer. Fast partisjonering passer når en har et mindre antall ganske små programmer. b) Diskuter hvordan side- og segmenttabeller (Page & Segment Tables) kan struktureres slik at de kan aksesseres effektivt og riktig. For å unngå oppslag i komplette, men tynne tabeller med kun implisitte sidenr / segmentnr ved et innslags plass i tabellen, bruker en tabeller som utvides med eksplisitte sidenr / segmentnr. Aksess av slike tabeller kan da skje lineært uten noe hjelp, hashet med programvarehjelp, eller assosiativt ved maskinvarehjelp. c) Angi detaljert - med formell kode eller uformell beskrivelse - hvordan 4 sjansers klokke (UM- Clock)-algoritmen virker. U-bit settes hver gang en side refereres av en prosess M-bit settes hver gang en side endres av en prosess Ved ettersøking av en side for utbytting sjekkes alle residerende sider sirkulært, startende etter forrige utbytting, og etter følgende fire sekvensielt ordnete kriterier: 1. (U, M) = (0, 0) 2. (U, M) = (0, 1) 3. (U, M) = (1, 0) 4. (U, M) = (1, 1) U-bit resettes i runde 2 når en side påtreffes, og ikke utvelges ved ettersøking for utbytting Således finnes alltid en side hvor (U, M) = (0, 0) / (0, 1) senest i runde 4

Side 6 av 8

Side 7 av 8 Oppgave 4: Kjøring av prosesser (Process Scheduling) 20 % a) Forklar i hvilke tilfeller en bør bruke henholdsvis prosessavbryting (Process Preemption) og prosessprioritering (Process Prioritization). Prosessavbryting må brukes når en ikke kan risikere at en prosess monopoliserer CPU-kraft for lenge, og prosessprioritering må brukes når en kan oppleve at prosesser har veldig ulik betydning i et system. b) Diskuter hvordan prosesser og tråder kan tidsstyres annerledes på multiprosessorer (Multi CPUs) enn på singelprosessorer (Single CPUs). På multiprosessorer blir det ikke så viktig å unngå at en enkelt prosess monopoliserer en CPU, men det blir derimot viktig at en gruppe av tråder kan kjøre på et sett av CPUer samtidig. c) Angi detaljert - med formell kode eller uformell beskrivelse - hvordan Høyeste responsforhold først (Highest Response Ratio Next)-algoritmen virker. Neste prosess velges ut fra: * Maks (W+S) / S Med følgende størrelser: * W = Kun ventetid * S = Total eksekveringstid Med følgende kategoriseringer: * Avbrytbarhet: Nei * Prioritering: Tja korte og lange Oppgave 5: Distribuerte systemer (Distributed Systems) 20 % a) Forklar i hvilke tilfeller en bør bruke henholdsvis multiprosessorer (Multi CPUs) og distribuerte systemer (Distributed Systems).

Side 8 av 8 Multiprosessorer kan brukes når en har et lite antall prosessorer og med aktiviteter som trenger å samarbeide forholdsvis tett, mens distribuerte systemer kan brukes når en har et større antall systemer og med aktiviteter som ikke trenger å samarbeide så tett. b) Diskuter hovedprinsippene i gruppekommunikasjon (Group Communication). En må kunne sende meldinger til en utvalgt mengde prosesser / tråder uten at noen som ikke er medlem i denne gruppen får slike meldinger. En må videre kunne sikre seg at en melding enten når fram til alle medlemmer eller ingen medlemmer av gruppen. En må endelig kunne sikre seg at ett sett av meldinger når fram til medlemmene av gruppen i samme rekkefølge. c) Diskuter hovedkomponentene i CORBA (Common Object Request Broker Architecture). CORBA er en mellomvarearkitektur. Den baserer seg på applikasjonsobjekter som aksesserer objekttjenester og felles fasiliteter via en ORB (Object Request Broker). ORBen inkluderer en kjerne som implementerer basismekanismene, og aksesskomponenter som enten effektivt håndterer ferdig oppsatte forbindeler eller endog tillater uforutsette forbindelser. Arkitekturen inkluderer også grensesnittlager for beskrevne klasser og implementasjonslager for registrerte klasser. d) Angi detaljert - med formell kode eller uformell beskrivelse - hvordan den helt distribuerte algoritmen (altså ikke ringalgoritmen) for gjensidig utelukkelse (Mutual Exclusion) virker. Eget Inn-ønske: Send N-1 * Inn-meldinger m/ Lokalt tidsmerke Vent på N-1 * OK-meldinger Andres Inn-meldinger: Ikke ventende: Send OK Ventende, høyere tidsmerke: Send OK Ventende, lavere tidsmerke: Sett i Kø (Like tidsmerker: Identifikator avgjør) Eget Ut-ønske: Send < N-1 * OK ut fra Kø