Real-time Operativsystem



Like dokumenter
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.

CPU-Scheduling. Fag: Operativsystemer

UNIVERSITETET I OSLO

Fakultet for informasjonsteknologi,

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

Scheduling og prosesshåndtering

Eksamensoppgave i TDT4186 Operativsystemer

Løsningsforslag for TDT4186 Operativsystemer

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

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

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

Det matematisk-naturvitenskapelige fakultet

Løsningsforslag for TDT4186 Operativsystemer

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

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

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

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Det matematisk-naturvitenskapelige fakultet

Løsningsforslag for TDT4186 Operativsystemer

Tildeling av minne til prosesser

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

Eksempler på ikke-blokkerende systemkall:

Tillatte hjelpemidler: ingen hjelpemidler er tillatt. Faglærer kommer til eksamenslokalet noe tid etter at eksamen har startet.

HØGSKOLEN I SØR-TRØNDELAG

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

Vranglås (Deadlocks) Fag: Operativsystemer

oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO

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

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

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

Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.

UNIVERSITETET I OSLO

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

1. Introduksjon til operativsystemer

TOD063 Datastrukturer og algoritmer

Tildeling av minne til prosesser

UNIVERSITETET I OSLO

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

Eksamen i TTK4145 Sanntidsprogrammering 12. august

in270 Datakommunikasjon, vår 03 forelesningsnotater kap og 7.1/7.2

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

Definisjon av prosess

Tinyclip eksempel. Dagsplan

4. Prøv om du kan finne en tastatur-snarvei for å komme til dette kontrollpanelet.

Kjenn din pc (Windows Vista)

DAT kandidatnummer: 142

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

Oppgave 1 - Linux kommandolinje (%)

INF2270. Input / Output (I/O)

HØGSKOLEN I SØR-TRØNDELAG

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

HØGSKOLEN I SØR-TRØNDELAG

Her velger dere først System and Security og deretter System.

Definisjon av prosess

Anskaffelse av bærbare PCer beregnet for bedriftsmarkedet.

Introduksjon...5. Systemkrav...7. For Windows...9

Oppgave 8.1 fra COD2e

Sikkerhet: Virus Sikkerhet i operativsystemet Maskinstøtte for sikkerhet Trojanske hester Ormer. IN 147 Program og maskinvare.

IN1010 våren Repetisjon av tråder. 15. mai 2018

Læringsmål og pensum. Oversikt. Systemprogramvare Operativsystemer Drivere og hjelpeprogrammer. To hovedtyper programvare

Våre tekniske konsulenter kan bistå slik at din bedrift får en best mulig tilpasset Handyman installasjon ut fra deres infrastruktur.

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

Kjenn din PC (Windows7)

EKSAMEN. Operativsystemer. Kontroller at oppgaven er komplett før du begynner å besvare spørsmålene.

INF2270. Input / Output (I/O)

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

Generelt om operativsystemer

Minnehåndtering i operativsystemer

Kommersiell Unix Linux og frie Unix kloner

Generelt om operativsystemer

Fakultet for informasjonsteknologi,

Fakultet for informasjonsteknologi,

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

STE6221 Sanntidssystemer LØSNINGSFORSLAG TIL EKSAMEN

Martin Olsen, Lars- Petter Ahlsen og Jon- Håkon Rabben

Tildeling av minne til prosesser

Kjenn din PC (Windows7)

Tråder Repetisjon. 9. og 13. mai Tråder

1)Gjør om desimal tallene til binære: a) 4 =0100. b) 17 = c) 34 = d) 128 = e) 255 =

STE6221 Sanntidssystemer Løsningsforslag

2. Hvor mye Internminne har den? Svar: 2GB

Operativsystemet Internt

Dagens program. Sanntidsprogrammering med Linux. Embedded Linux: Begrensninger. Hvorfor Linux?

Fakultet for informasjonsteknologi,

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

6105 Windows Server og datanett

Minnehåndtering i operativsystemer

Kjenn din PC (Windows7, Vista)

Transkript:

Real-time Operativsystem c Ketil Danielsen November 8, 2002 Oversikt hvilke behov har vi (kap. 1-2) hvordan organiseres arbeidet (kap. 3) CPU scheduling (kap. 6) Minnescheduling (kap. 10) Scheduling av I/O (kap. 12) Disk scheduling (kap. 13) Scheduling i nett (kap. 14) CPU scheduling i Windows 2000 (kap. 23) Organisering brukerprogram spesifiseres arbeid som skal gjøres. arbeidet utføres av maskinvaren (CPU, minne, disk, andre enheter) operativsystemet (kernel) bestemmer hvilke program som til enhver tid skal betjenes av maskinvaren Maskinvarebehov noe arbeid utføres av CPU (prosessor), prosessen kan ikke behandle programmet uten at programmets sider ligger i RAM (hurtigminnet) resten utføres av egne prosessorer i ytre enheter: disk, bus, kamera, skjerm, sensorer, tastatur, mikrofon, høyttaler 1

Beskyttelse programmets egne instruksjoner skjer i user mode trap: programmet ber kernel om arbeid mot maskinvare systemkall: det arbeid som kernel skal gjøre kernel utfører instruksjonene i systemkallet i protected mode Real-Time brukerprogram som trenger arbeid utført innen et visst tidsrom (fra, til) Robot for billakkering Scheduling sensor: leser armens tilstandsvariabel kontroller: setter armens kontrollvariabel eks. systemkall: Flytt-Arm (posisjon, fra, til) må ferdigstilles ldots før samlebandet driver bil og arm sammen i et krasj ressurser (CPU, disk, minne,...) deles av flere prosesser (oppgaver) som enten er prosess har en periode: P i (raten blir 1/P i ) og varighet: C i. periodisk prosess har fast periode, fast varighet (aperiodiske ikke) scheduling er utvalg av neste prosess Preemption scheduling både når en er ferdig (avgang), og når en ankommer og vil kjøre kan bety at en som er i gang må vike To filosofier Garantere at konflikter IKKE inntreffer ( hard realtime ) Forsøke å hindre konflikter ( soft realtime ) 2

Soft real-time sett i gang det som kommer, men juster hvis nødvendig jfr. deadlock avoidance, tilstander som var safe og unsafe begrens tilgangen av arbeid hvis nødvendig (d.v.s. graden av multiprogrammering, antallet oppgaver en har i gang) FIFO scheduling velger den som har ventet lengst den utvalgte kjører hele sin burstlengde gir uforutsigbar (kan bli lenge) venting Vranglås vranglås er mulig hvis vi tillater preemption den som viker holder på noe som den utvalgte trenger :-( løses med en midlertidig reaktivering av den/de som holder på ressursen kjedet reaktivering hvis den som HOLDER er flere ledd tilbake i vikeprosessen Shortest-Job First Scheduling, SJF velger den med kortest burstlengde vanskelig å forutsi burstlengde, men kan estimeres optimal (gir lavest gj.sn. ventetid) men gir uforutsigbar ventetid med preemption: Shortest-Remaining Job First (SRJF) Round-Robin Scheduling den utvalgte får kjøre et kvantum q (timeslice) når en er ferdig velges den som har ventet lengst samme som FIFO når q samme som Prosessordeling når q 0; hver prosess får 1/n av ressursen lav q god for interaktivitet høy q god for de med høye burstlengder 3

Priority Scheduling hver prosess har en prioritet lar den med høyest prioritet slippe til neste gang velger FIFO blant de med lik prioritet priority inversion: Vranglås (som beskrevet tidligere) priority-inheritance: En kjedet oppløsning av vranglås der en som HOLDER midlertidig låner prioritetsnivået til UTVALGT Utsultelse en prosess kan risikere å aldri bli utvalgt mulig i FIFO (hvis burstlengden er ubegrenset), SJF/SJRF og Priority, ikke i Round-Robin kan unngås ved aldring periodisk økning av prioritet for de som venter, evt. redusering av prioritet for de som faktisk slipper til Synkronisering kerneldata er delt mellom kernel og alle prosesser endel kernel vil ikke tillate preemption av systemkall systemkall har uforutsigbar varighet, uheldig for real-time et systemkall kan ha preemption points på trygge sted, der delte data ikke aksesseres andre kernel kan være preemptibel, noe som krever synkronisert tilgang (semaforer e.l.) Soft Real-Time En kan ikke garantere timing, men kan gjøre mye godt algoritmisk, samt overdimensjonere ressursene slik at konflikter ikke oppstår (ala Deadlock Prevention). Har en manglende ressurser kan istedet underveis foreta reservering per henvendelse (ala Deadlock Avoidance) 4

Reservering hvert systemkall skal gjennom admission control svar herfra blir ja eller nei program som får nei må revurdere henvendelsen eller gi opp ytelsesmessig fordel om en har en reservasjon oppsatt for lengre tid av gangen (f.eks. hele brukerens arbeidstid) Schedulability Hver oppgave er (C i, P i ) og vil i snitt bruker C i /P i av ressursen. For å først vite om oppgavesettet faktisk kan løses: u = m i=1 C i P i 1 der m er antall oppgaver (prosesser). En kan kalle u for ressursens utnyttelse, utilization. Til salen: Har vi schedulability? prosess periode burstlengde i P i C i A 30 ms 10 ms B 40 ms 15 ms C 50 ms 5 ms ja, har vi det? u = 10 30 + 15 40 + 5 50 =.808 Rate-Monotonic Scheduling (RMS) Preemptiv prioritets-scheduling der hver prosess gis prioritet lik 1/P i. periodiske aldri overstiger C i prosesser er uavhengige aperiodiske ikke har tidsfrister preempt/rescheduling tar ingen tid :-) 5

RMS virker garantert hvis u = m i=1 C i P i m(2 1/m 1) m m(2 1/m 1) 3.780 5.743 10.718 20.705 Til sal: Hvordan forholder u seg i eksemplet? ja, hvordan? u =.808 >.780 Vi har flaks hvis vi unngår konflikter (feiler på tidsfrister). Earliest Deadline First (EDF krever ikke periodisitet eller fast varighet sorterer etter tidsfrist preempt (som RMS) Kriterier reservering prioritering, preemption kan utføre RMS og EDF for alle ressurser; disk, CPU, minne, nett, I/O, etc. Virtuelt Minne prosess/tråd kan kjøres hvis dens pages ligger i minnet demand paging: henter ved behov (venting) pure demand paging: henter kun det som trengs pre-fetching: henter mer enn nødvendig page-replacement: dytte ut hvis fullt page locking: låste pages blir ikke dyttet ut (f.eks. kernelpages) 6

Page Replacement I/O Disk FCFS, FIFO: Den som ankom først Optimal: Den som vil bli sist etterspurt Least Recently Used, LRU: Den som har stått ikke-etterspurt lengst virtuelt minne er (som boken sier) the anti-thesis of real-time computing... ingen garantier kernel køer henvendelser ut til enhetene, kan reorganisere etter behov kan holde tilbake til fordel for realtime, f.eks. i køer mot forskjellige enheter, der noen har real-time scheduling mens andre ikke har varighet: diskarmens bevegelsestid EDF/RMS kan vurdere ankomsttid og varighet real-time data bør legges uavbrutt, hvilket minimerer armbevegelsen men øker ekstern fragmentering FCFS, FIFO (kan gi lang venting); SCAN heisalgoritme ingen garanti Shortest-Seek-Time First (ala SJF for CPU), kan gi utsultelse, men litt bedre for real-time Nettverk datalinklag: tilgang til lokalnett nettlag: ruting mellom lokalnett transportlag: kobling mellom prosessene Lokalnett CSMA/CD: Lytt, send hvis ledig ingen garanti for ventetid Token Passing: Vent på token ingen garanti for når token kommer Reservasjon: Garanti for minimum kapasitet (tidsdelt, frekvensdelt) som i telefonsystemet (ikke GPRS) OK for realtime EDF/RMS: Meldingers lengde og ankomsttid 7

Nettverkslag trenger ende-til-ende reservasjon for real-time Internettet er autonomt oppbygd, ingen kan bestemme hva andre skal tilby av reservasjon i dag nesten umulig å få ende-til-ende reservasjon telefonsystemet: ende-til-ende reservasjon Transportlag TCP sender tapte meldinger om igjen gir ingen tidsgaranti hvis en har nettreservasjon vil en ikke tape meldinger sålenge en ikke overgår minimum kapasitet TCP vil regulere senderaten etter kapasitet, men er ikke bygd for realtime Internettet er IKKE for real-time, telefonsystemet er! Derfor går videokonferanser via ISDN Faktiske schedulere Disse bruker prioriteter for schedulere og sier i sitt brosjyremateriell at de støtter real-time computing JVM: Javatråd viker preemptibelt Solaris 2 Windows NT/2000 I praksis vil real-time her kreve kraftig overdimensjonering for å bedre (men ikke garantere) timing. Windows 2000 (W2K) jobb prosess tråd fiber kernel foretar scheduling av tråd 1:1 mapping mellom brukertråd og kerneltråd bruker prioriteter og kvantum 8

Frigivelse scheduler kjøres skjer hvis aktiv tråd blokkerer (venter på hendelse; frigivelse av lås, semafor, I/O ferdig) signaliserer et objekt dette kan bety at en høyere prioritert tråd bør få kjøre har brukt sitt q (hver tråd har sitt eget kvantum q) scheduler kjøres også ved eksterne hendelser I/O er ferdig en tidsavgrenset venting (soving) er over Prioritering 32 prioritetsnivåer (0-15 for variabel og 16-31 for real-time) Microsoft sier real-time, men dette er soft real-time! scheduler velger alltid den med høyest CP Prioritetsreduksjon en tråd har en base og en current prioritet (BP og CP) de med BP mellom 0 og 15 kan ha CP variert mellom BP og 15 reduksjon kvantum er ferdig: CP=min(BP,CP-1) Prioritetsøkning CP=max(CP+boost, 15) for de som venter: I/O mot disk ferdig: boost=1 I/O mot seriell-linje (f.eks. modem) ferdig: boost=2 frigitt semafor/lås: boost=2 I/O mot tastatur/mus ferdig: boost=6 I/O mot lydkort ferdig: boost=8... gir bedre interaktivitet, CP reduseres gradvis for hvert kvantum 9

Vranglås i W2K priority inversion i W2K eks.: Tre tråder med BP=4, 8 og 12 den med BP=12 låser annen ressurs X (f.eks. semafor) den med BP=8 blir valgt (BP er blokkert) den med BP=4 vil aldri kunne få tilgang til X sålenge andre prosesser med 4<BP<12 kjører... vranglås hack en prosess boostes (CP=15) i to kvantum hvis den har ventet lenge fungerer fordi lang ventetid er symptom på at vranglås har inntruffet andre typer vranglås blir stort sett ignorert (strutsealgoritmen) Kvantemanipulasjon W2K Professional (der brukerne sitter) har q = 20 ms, hvilket er godt for interaktivitet W2K Server/Data Center (servere, databaser) har q = 120 ms når et vindu blir aktivt (for den bruker som sitter bak maskinen) får tråden en kortvarig boost av q, nok en gang for interaktivitetens skyld 10