Fakultet for informasjonsteknologi,

Like dokumenter
Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi,

Løsningsforslag for TDT4186 Operativsystemer

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

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

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

Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi,

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

Eksamensoppgave i TDT4186 Operativsystemer

Løsningsforslag for TDT4186 Operativsystemer

Fakultet for informasjonsteknologi,

Løsningsforslag for TDT4186 Operativsystemer

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

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

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)

Fakultet for informasjonsteknologi,

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

Fakultet for informasjonsteknologi, Løsning på eksamen i TDT4190 Distribuerte systemer Fredag 28. mai 2004,

Løsningsforslag for TDT4186 Operativsystemer

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

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

Tildeling av minne til prosesser

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

Tildeling av minne til prosesser

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

Innhold. Om denne boka 1. Kapittel 1 Operativsystemer og mellomvare 5

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

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

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

Scheduling og prosesshåndtering

TDT4258 Eksamen vår 2013

UNIVERSITETET I OSLO

INF2270. Input / Output (I/O)

Tid og koordinering. Foreleser: Olav Lysne

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Bakgrunn. Tid og koordinering. Foreleser: Olav Lysne

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

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

EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Arvid Staupe

Forelesning Instruksjonstyper Kap 5.5

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

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

Operativsystemer og grensesnitt

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

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

Oppgave 8.1 fra COD2e

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.

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

Tildeling av minne til prosesser

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

Oppsummering av digitalteknikkdelen

Minnehåndtering i operativsystemer

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

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

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG

INF2270. Minnehierarki

kan adressere et større område som RAM enn det som faktisk er tilgjengelig. Siden data kan plasseres i RAM og/eller på harddisken brukes begrepet

4/5 store parallelle maskiner /4 felles hukommelse in 147, våren 1999 parallelle datamaskiner 1. når tema pensum.

Definisjon av prosess

Det matematisk-naturvitenskapelige fakultet

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

Løsningsforslag for Eksamensoppgave i TDT4190 Distribuerte systemer

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

Løsningsforslag til kontinuasjonseksamen i TDT4105 Informasjonsteknologi, grunnkurs Mandag 13. august

Innhold. Innledning til Input/Output. Ulike typer Input/Output. Input/Output internt i datamaskinen. Input/Output mellom datamaskiner

Vranglås (Deadlocks) Fag: Operativsystemer

alternativer til felles hukommelse store parallelle datamaskiner Tema for denne forelesningen: in 147, våren 1999 parallelle datamaskiner 1 9

TDT4110 IT Grunnkurs Høst 2014

HØGSKOLEN I SØR-TRØNDELAG

Real-time Operativsystem

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

INF2270. Input / Output (I/O)

Faglig kontakt under eksamen: Orestis Gkorgkas

DAT kandidatnummer: 142

Hva består Internett av?

ALGORITMER OG DATASTRUKTURER

KONTINUASJONSEKSAMEN I EMNE TDT4195 BILDETEKNIKK ONSDAG 13. AUGUST 2008 KL

Introduksjon til kurset og dets innhold

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

CPU-Scheduling. Fag: Operativsystemer

Input/Output. når tema pensum. 13/4 busser, sammenkobling av maskiner /4 PIO, DMA, avbrudd/polling

ALGORITMER OG DATASTRUKTURER

Kapittel 7, Minne RAM DIMM, SIMM ROM, PROM, EPROM, EEPROM FLASH DIM SUM. Cache Virtuelt minne

Deadlocks og mer om concurrencymekanismer

Generelt om operativsystemer

Kort notat om parallellstyring IN147

Løsningsforslag til Eksamensoppgave i TDT4190 Distribuerte systemer

Oppgave 1 Oversettelse (vekt 16%)

hukommelse (kapittel 9.9 i læreboken) Dagens temaer Input-Output INF 1070

Generelt om operativsystemer

IN1020. Minnehierarki

Presentasjon av: Erling Ringen Elvsrud Nils Fredrik Gjerull Håkon Torjus Bommen

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

Transkript:

Side 1 av 11 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Løsning på TDT4186 Operativsystemer Onsdag 30. november 2005, kl. 15.00-19.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 11 Oppgave 1: Synkronisering av prosesser / tråder (Process / Thread Synchronization) 20 % a) Angi kort forskjeller mellom tråder (Threads) og prosesser (Processes) Prosesser: Tilsvarer mer isolerte aktiviteter Har mer kontekst knyttet til seg Kan deles i tråder Tråder: Tilsvarer mer samhørende aktiviteter Har mindre kontekst knyttet til seg Kan samles i prosesser b) Beskriv og diskuter noen konkrete tilfeller hvor tråder er mer anvendelig enn prosesser Ved naturlig parallellitet innen program / applikasjon Eks: Med vektor/matrise orientering Ved flere parallelle inn-enheter Eks: I.f.m. tastatur og mus c) Angi kort hva meldingsutveksling (Message Passing) er og hvordan meldingsutveksling brukes i synkroniserings sammenheng (Process / Thread Synchronization) Meldingsutveksling er en kommunikasjonsform. Den kan brukes både i sentraliserte og distribuerte systemer. Basiskonseptene er et dataobjekt, melding, med to tilhørende dataoperasjoner, send og receive. Innhold Hode Boks / Port I synkroniserings sammenheng brukes en gitt melding som et token. Denne meldingen sendes fram og tilbake mellom prosesser / tråder. En gitt prosess / tråd har tillatelse til å utføre visse aktiviteter kun når den er i besittelse av token meldingen.

Side 3 av 11 d) Beskriv og diskuter helt konkret hvordan meldingsutveksling kan implementeres med semaforer (Semaphores) Datastrukturer inkludert initialisering Var For Slot: Semaphore := N; Buffer: Semaphore := 1; Port: Array [1..M] of Semaphore := M*0; BufferQ: List of Item; PortQ: Array [1..M] of List of Item; I := 1 To N <Link Item into BufferQ> Dataoperasjoner Send (Message, Destination): Wait (Slot); Wait (Buffer); <Unlink Item from BufferQ>; <Copy Message into Item >; <Link Item into PortQ[Destination]>; Signal (Port[Destination]); Signal (Buffer) Receive (Message, Source): Wait (Port[This]); Wait (Buffer); <Unlink Item from PortQ[This]>; <Copy Message from Item >; <Link Item into BufferQ >; Signal (Slot); Signal (Buffer) Oppgave 2: Bruk av lager (Memory Management) 20 % a) Angi kort hvilke aspekter av virtuelt lager (Virtual Memory) som kan håndteres i programvare (Software) og hvilke aspekter som må håndteres i maskinvare (Hardware) Programvare: Innhenting - når? (ved aksess) Tilbakeføring - når? (ved endring) Plassering - hvor? (hvis ikke fullt) Utbytting - hvor? (hvis fullt) Mengde - hvor mye til hver enkelt? (responstidsfokusert) Antall - hvor mange totalt sett? (gjennomstrømningsfokusert) Maskinvare: Avbildning: Oversette adresser Sjekking: Kontrollere adresser Reagere med avbrudd: På manglende info Hjelpe via caching: Med viktig info

Side 4 av 11 b) Illustrer og beskriv hvordan adresseberegning (Address Mapping) skjer ved segmentering (Segmentation) Segmentering SegNo SegRel + SegBas + SegRel PM - - PM SegLen SegLen SegBas SegBas Seg. Programkode Segmentering Prim.lager Sek.lager Obs1: Hvis sjekken på grenseoverholdelse (SegLen) tilsier at stedet er utenfor segmentet, blir det generert avbrudd Obs2: Hvis sjekken på tilstedeværelse (P) tilsier at segmentet ikke er i primærlageret, blir det først overført fra sekundærlageret c) Illustrer og beskriv hvordan adresseberegning (Address Mapping) skjer ved sidedeling (Paging) Sidedeleing SidNo SidRel SidRel PM - - PM Side Programkode Sidedeling Prim.lager Sek.lager Obs1: Hvis sjekken på tilstedeværelse (P) tilsier at siden ikke er i primærlageret, blir den først overført fra sekundærlageret

Side 5 av 11 d) Diskuter kort bruk av nærlagring (Caching) av ulike data/info i denne sammenheng Caching av side/segment tabeller samt program-kode/data (illustrert med sidedeling) SidNo SidRel TabCache SidNo SidNo SidNo PM - - PM SideTab PM TC-bom - - - - - - ST-bom PM TC-treff ST-treff SidRel SC-treff SideCache SC-bom PrimLag SekLag Obs1: Ved treff i et gitt søk fortsettes til neste nivå Obs2: Ved bom i et gitt søk fortsettes til alternativ variant Obs3: ST-treff gir en ekstra overføring mellom SideTab og TabCache Obs4: SC-bom gir en ekstra overføring mellom PrimLag og SideCache Obs5: ST-bom gir en ekstra overføring inn i SideTab, samt en ekstra overføring mellom SekLag og PrimLag Oppgave 3: Tidsstyring av prosesser / tråder (Process / Thread Scheduling) 20 % a) Angi kort relevante mål (Objectives) for tidsstyring (Process / Thread Scheduling) Ytelsesorientering Ikke ytelsesorientering Resultatfokus Lav responstid Lav gjennomløpstid Overholdelse av tidsfrister Unngåelse av utsulting Høy forutsigbarhet Sikring av ressursbibehold Systemfokus Høy gjennomstrømning Høy ressursutnyttelse Lav overhead Høy rettferdighet Oppnåelse av ressursbalansering Sikring av prosessprioritering

Side 6 av 11 b) Beskriv spesifikt hvorfor andre tidsstyrings algoritmer blir nødvendige for multiprosessorer (Multi CPUs) enn for singleprosessorer (Single CPUs) Med # Prosessorer > 2: Det å unngå at en prosess / tråd legger beslag på en prosessor blir mindre viktig Det å oppnå at gitte tråder / prosesser kjører samtidig på flere prosessorer blir mer viktig c) Beskriv likheter og ulikheter mellom noen slike multiprosessor algoritmer Lastdeling: Selvtilordning av prosessorer Sikrer utnyttelse av prosessorer Vanlige algoritmer via felleskø Mulig flaskehals med felleskø Ikke tråd på samme prosessor (ref. caching) Ikke tråder sammen på prosessorer (ref. ytelse) Samkjøring: Flere/alle tråder innen en prosess får en prosessor Sikrer samkjøring av tråder Færre trådskifter ved koordinering Mer ytelse - mindre utnyttelse Multiprogrammering: CPU-tildeling tilpassbar til trådantall i applikasjon Prosessorholding: Flere/alle tråder innen en prosess får og beholder en prosessor Sikrer samkjøring og ferdigkjøring av tråder Ingen trådskifter ved koordinering Maks ytelse - min utnyttelse Singleprogrammering: CPU-tildeling tilpassbar til arbeidssett av prosessorer Antallsvariasjon: Antall tråder innen en prosess kan variere dynamisk Antall prosessorer til en prosess kan variere tilsvarende Program og system kan og bør samhandle om tilordning tråder-prosessorer Singleprogrammering: CPU-tildeling tilpassbar til treskemulighet for prosessorer d) Diskuter kort noen ytterligere konsekvenser av å gå fra singleprosessorer til multiprosessorer i operativsystem sammenheng Synkronisering: Avbruddsblokkering (som for enkeltprosessorer) blir ikke mulig lenger Lagerhåndtering: Hastighetsbegrensningen (sammenlignet med prosessorkapasiteten) blir økt ytterligere

Side 7 av 11 Oppgave 4: Bruk av I/O (I/O Management) 20 % a) Angi kort hvorfor vi trenger henholdsvis mellomlagring (Buffering) og nærlagring (Caching) i forbindelse med innlesing/utskrift (I/O Input/Output) Buffering: Unngå blokkering i.f.m. I/O-bruk m.h.t. kjøring / swapping av prosesser Utjevne variasjon i I/O-bruk innen / mellom prosesser Caching: Utnytte lokalitetsprinsipp for data som for program b) Diskuter kort ulike varianter av mellomlagring i denne sammenheng Uten bufring: Gir kjøre-blokkering Gir swapp-blokkering Single bufring: Unngår kjøre-blokkering Unngår swapp-blokkering Dobbel bufring: Utjevner mindre hastighetsvariasjoner Sirkulær bufring: Utjevner større hastighetsvariasjoner c) Diskuter kort ulike algoritmer for håndtering av nærlagring i denne sammenheng LRU - Minst nylig referert: Krav: Tidsmerke til hver side til en prosess Utbytting: Lengst ureferert LFU - Minst ofte referert: Krav: Ref.teller for hver side til en prosess Utbytting: Sjeldnest referert FBS II Frekvensbasert stakk: Krav: Todelt stakk for hver prosess Utbytting: LRU+LFU på 1/2 av stakken FBS III - Frekvensbasert stakk: Krav: Tredelt stakk for hver prosess Utbytting: LRU+LFU på 1/3 av stakken

Side 8 av 11 d) Beskriv algoritmen for Frekvensbasert stakk (FBS Frequency Based Stack) og sammenlign den med algoritmene for Minst nylig referert (LRU Least Recently Used) og Minst ofte referert (LFU Least Frequently Used) Todelt stakk: LRU ordning av sider over de to deler fra kortest til lengst tid siden ref. Referanseteller økes kun ved treff i gammel seksjon Utkastelse på LFU skille innen gammel seksjon kun LRU ved likhet igjen Ny sek. Gammel sek. Innhenting: Ref := 1 Gjenbruk: (Ref := Ref) Utbytting: (Trygg) Gjenbruk: Ref := Ref + 1 Utbytting: Mulig Tredelt stakk: LRU ordning av sider over alle tre deler fra kortest til lengst tid siden ref. Referanseteller økes kun ved treff i midlere eller gammel seksjon Utkastelse på LFU skille innen gammel seksjon kun LRU ved likhet igjen Innhenting: Ref := 1 Ny sek. Midlere sek. Gammel sek. Gjenbruk: (Ref := Ref) Utbytting: (Trygg) Gjenbruk: Ref := Ref + 1 Utbytting: (Trygg) Gjenbruk: Ref := Ref + 1 Utbytting: Mulig Sammenligning: Todelt FBS Tilnærmet likeverdig med LRU / LFU hver for seg Tredelt FBS Vesentlig bedre enn LRU / LFU hver for seg

Side 9 av 11 Oppgave 5: Distribuerte systemer (Distributed Systems) 20 % a) Angi kort hva et distribuert system er Et distribuert system er en samling av sammenkoplete, selvgående systemer. Flere fysisk adskilte systemer fremstår som étt logisk samhørende system. Delsystemene mangler felles klokke og felles lager. En felles oppfatning av tid, tilstand og verdier må således implementeres. Totalresultatet blir et partnerskap mellom delvis samvirkende, delvis uavhengige systemer. b) Angi kort fordeler og utfordringer med distribuerte system Fordeler: Deling av ressurser - Aksesserbarhet (En applikasjon mot flere ressurser og flere applikasjoner mot en ressurs) Ytelse på applikasjoner - Parallellitetsutnyttelse (Innen en applikasjon og mellom flere applikasjoner) Feiltoleranse - Pålitelighet (Fragmentering av applikasjoner og ressurser) - Tilgjengelighet (Replisering av applikasjoner og ressurser) Systemfokus - Større kapasitet - Bedre økonomi - Stegvis utvidelse - Ressurstilpasning i.h.t. organisasjonsforhold - Applikasjonstilpasning i.h.t. utførelsesforhold Utfordringer: Levende systemer - Trenger justerbarhet over lang tid - Trenger utvidbarhet i stor skala Åpne systemer - Behov for portabilitet av ulike applikasjoner - Behov for interoperabilitet mellom ulike systemer c) Diskuter kort noen eksisterende modeller (Models) for distribuerte system Her forventes det ikke mer enn anslagsvis to av for eksempel de fire nedenforstående aspektene, som ofte kombineres med mellomvare til en modell.

Side 10 av 11 Mellomvare lag En konstruerer et programvare lag (med et generelt API) mellom globale applikasjoner og lokale ressurser slik at en gitt applikasjon kan nå en vilkårlig lokal ressurs, og en gitt ressurs kan nås av en vilkårlig applikasjon hvor mellomvare laget står for ruting av forespørslene til riktig node og oversetting av forespørslene til riktig språk Klient-tjener aspektet Noen komponenter forespør aktiviteter, og noen komponenter utfører aktiviteter En vilkårlig komponent kan spille begge rollene rekursivt Hver komponent kan allokeres til den node som passer best Gruppe-kommunikasjons aspektet Forespørsler skal ofte gå til en gruppe av komponenter Ulike former for atomiskhet innen en slik forespørsel kan kreves Ulike former for ordnethet mellom flere slike forespørsler kan kreves Objekt-orienterings aspektet Aktiviteter knyttes ofte til metoder i objekter Fjerne objekter tilknyttes ofte lokale stand-in objekter Strøm-orienterings aspektet Aktiviteter er ofte kontinuerlige, og ikke bare diskret, aktiviteter Aktiviteter er ofte langvarige, og ikke bare kortvarige, aktiviteter d) Diskuter kort noen eksisterende standarder (Standards) for distribuerte system Her forventes det ikke mer enn anslagsvis tre av for eksempel de syv nedenforstående standarder. ISO/RM-ODP * OO-type, rammeverk-nivå + Omfatter det meste som trengs - Enormt begrepsmessig apparat OMG/CORBA * ORB-type, arkitektur-nivå + OO-basert - Mye å sette seg inn i

Side 11 av 11 OSF/DCE * RPC-type, arkitektur-nivå + Enkel å ta i bruk - Ikke OO-basert MS DCOM/OLE * RPC/OO-mellomting, blanding av alt + MS støtter det - MS bestemmer alt X/OPEN TX/XA * DTP-fokus, blankt på mye + Tidlig fokus på transaksjoner, således litt oppdragende på andre - Inkludert i andre etter hvert, såldes litt overflødig i seg selv TINA * Telekom-rettet, spesialisering av RM-ODP + Effektivt verktøy i sin valgte nisje - RM-ODP++, for mye av det gode! MSS * Multimedia-rettet, spesialisering av CORBA + Effektivt verktøy i sin valgte nisje - CORBA++, for mye av det gode?