Operativsystemet Internt

Like dokumenter
Singletasking OS. Operativsystemet Internt. MINOS et lite multitasking operativsystem. Multitasking OS. Kjell Åge Bringsrud INF 103

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

Tildeling av minne til prosesser

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

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

Scheduling og prosesshåndtering

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.

UNIVERSITETET I OSLO

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

CPU-Scheduling. Fag: Operativsystemer

Minnehåndtering i operativsystemer

Definisjon av prosess

Oppsummering av digitalteknikkdelen

Minnehåndtering i operativsystemer

TDT4258 Eksamen vår 2013

Operativsystemer og grensesnitt

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

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

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

Introduksjon til kurset og dets innhold

HØGSKOLEN I SØR-TRØNDELAG

INF2270. Input / Output (I/O)

UNIVERSITETET I OSLO

1. Introduksjon til operativsystemer

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

Hvorfor operativsystemer? Introduksjon til operativsystemer. Samtidighet. Praktiske hensyn. Kjell Åge Bringsrud INF103

Generelt om 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

Håndtering av minne i et OS

Generelt om operativsystemer

Litt om Javas class-filer og byte-kode

Faglig kontakt under eksamen: Orestis Gkorgkas

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

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

Eksamensoppgave i TDT4258 Energieffektive datamaskinsystemer

Det matematisk-naturvitenskapelige fakultet

INF2270. Input / Output (I/O)

Eksempler på ikke-blokkerende systemkall:

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

Operativsystemer To eksepmler

HØGSKOLEN I SØR-TRØNDELAG

Introduksjon til 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

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

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl

INF2270. Minnehierarki

Oversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models

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

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

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

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

Løsningsforslag for TDT4186 Operativsystemer

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

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

Oppgave 8.1 fra COD2e

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse

Løsningsforslag til eksamen i INF103

ytelsen til hukommelseshierarkier

UNIVERSITETET I OSLO

Programmeringsspråket C Del 3

Innhold. Oversikt over hukommelseshierakiet. Ulike typer minne. Innledning til cache. Konstruksjon av cache Hukommelseshierarki-1 1

Dagens tema. Flere teknikker for å øke hastigheten

Threads Threads (tråder) threads vs prosesser threads vs prosesser Definisjoner av

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode)

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

Programmeringsspråket C Del 3

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

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

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design.

dynamiske data dynamiske data statiske data program dynamiske data statiske data reservert program dynamiske data statiske data reservert program

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

UNIVERSITETET I OSLO

Dagens tema. Mer om cache-hukommelse Kapittel 6.5 i Computer Organisation and Architecture ) RAM. Typer, bruksområder og oppbygging 2008 ROM

Hukommelseshierarki. 16/3 cache /3 virtuell hukommelse in 147, våren 1999 hukommelseshierarki 1

HØGSKOLEN I SØR-TRØNDELAG

Eksamensoppgave i TDT4186 Operativsystemer

Kodegenerering del 3: Tilleggsnotat fra AHU Samt litt om class-filer og byte-kode INF5110 V2007. Stein Krogdahl, Ifi UiO

Generelt om permanent lagring og filsystemer

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

Internminne og Cache. RAM = Random Access Memory

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

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Fakultet for informasjonsteknologi,

TDT ITGK - Hardware. Kapittel 9: Følge Instruksjoner - Prinsipper for Datamaskinens Virkemåte. Terje Rydland - IDI/NTNU

Intel Core i7. Omid Mirmotahari 4

Kort notat om parallellstyring IN147

Fakultet for informasjonsteknologi,

Programmeringsspråket C Del 3

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren

IN1020. Datamaskinarkitektur

Operativsystemer og nettverk Løsningsforslag til eksamen Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram:

Løsningsforslag for TDT4186 Operativsystemer

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

Dagens temaer. Mer om cache-hukommelse (kapittel 6.5 i Computer Organisation and Architecture ) RAM ROM. Hukommelsesbusser

Programmeringsspråket C Del 3

Læringsmål og pensum. v=nkiu9yen5nc

Fakultet for informasjonsteknologi,

DAT kandidatnummer: 142

Transkript:

Operativsystemet Internt Kjell Åge Bringsrud INF 103 Opsys. internt 1 Singletasking OS Små og enkle Trenger Filhåndtering og device-drivere Trenge brukergrensesnitt Trenger ikke skedulering av I/O Trenger ikke skedulering av prosesser Begrenset behov for sikkerhet mot interference Enkel minneadministrasjon (fast lokasjon for det kjørende programmet) Trenger ikke interprosesskommunikasjon Opsys. internt 2 1

Multitasking OS Betydelig større Trenger ressurshåndtering av CPU-tid Minne I/O Enkelte moderne multitasking operativsystemer for PC er krever flere titalls megabyte memory. Opsys. internt 3 MINOS et lite multitasking operativsystem Opprinnelig laget for små maskiner som foretok målinger Forskjellige operasjoner har forskjellig prioritet Tre prioritetsnivåer høy, middels og lav Målinger har høy prioritet, intern systemsjekk har lav prioritet Opp til fem aktive prosesser av gangen. En høyprioritets, tre middelsprioritets, og en lavprioritetsjobb. Opsys. internt 4 2

Minnehåndtering i MINOS Hele operativsystemet er resident Et område per aktivt prosess P-1 reservert for høyprioritetsprosesser P-2 til P-4 til prosesser av middels prioritet P-5 til lavprioritets prosesser Opsys. internt 5 CPU-skedulering i MINOS En sanntidsklokke gir avbrudd hvert hundredels sekund Alle aktive prosesser blir gjennomgått i prioritetsrekkefølge Den prosessen som har høyest prioritet, og som ikke er blokkert fordi den venter på I/O, får tildelt neste CPU-tidsslot De tre prosessene som har middels prioritet blir valgt etter en round-robin rekkefølge ( prosess1 prosess2- prosess3-prosess1- ) Opsys. internt 6 3

Egenskaper til MINOS Kan bare håndtere et begrenset antall aktive prosesser (5) Den høyest prioriterte prosessen vil maksimalt måtte vente 10 millisekunder på å få tildelt CPU-tid Dersom en prosess med høy prioritet er grådig, vil ingen av de lavere prioriterte prosessene få tildelt tid i det hele tatt I det følgende skal vi studere andre, mer generelle, og i de fleste sammenhenger bedre måter å gjøre dette på. Opsys. internt 7 Prosesser og Program Vi skiller mellom prosess og program. Et program er en fil eller en utskrift En prosess er en eksekvering av et program En prosess er den minste arbeidsenheten et operativsystem forholder seg til I en maskin kan det være flere prosesser som eksekverer samme program Det behøver bare være ett Emacs program i maskinhukommelsen selv om det er flere brukere som er logget inn på samme maskin og kjører Emacs på forskjellige filer Opsys. internt 8 4

Opprettelse og fjerning av prosesser En prosess opprettes Av en bruker når han/hun taster en kommando Av en annen prosess som vil skille ut en del av prosesseringen i en separat prosess Prosesser deles grovt i to kategorier Systemprosesser som er en del av aktiviteten til operativsystemet Brukerprosesser alle andre prosesser. Opsys. internt 9 Prosesshierarki Opprettelse av en ny prosess kalles gjerne forking eller spawning. En prosess assosieres som regel med den prosessen som skapte den (foreldreprosess), og med de prosessene den selv har skapt (barneprosesser). Dette gir et hierarki av prosesser Fjerning av en foreldreprosess resulterer som regel i at barneprosessene også blir borte. Opsys. internt 10 5

Prosesstilstander Tre basale tilstander Ready, running og blocked. Kun en prosess kan være running Blocked betyr at den venter på I/O Ready betyr at den kan tildeles Cpu-tid Opsys. internt 11 Prosesstilstander Andre mulige tilstander er terminated, killed, destroyed, suspended Langt på vei er disse tilstandene forfininger av tilstander fra figuren på forrige slide. Ikke-preemptive systemer vil la en prosess som er running fortsette til den blokkert av venting på I/O eller til den er terminert. Preemptive systemer begrenser den sammenhengende tiden en prosess kan være running for å sikre at andre prosesser slipper til Opsys. internt 12 6

CPU-skedulering Husk fra forrige forelesning at CPUskedulering skjer i to nivåer Høy-nivå skedulering Velger programmer som skal få lov til å legges i prosesseringskøen. Mest aktuelt for Batch-jobber. Interaktive jobber blir skedulert med en gang. Dispatching Valg av prosess i prosesseringskøen som slipper til CPU en nå Opsys. internt 13 Mulige designmål for dispatching Rettferdighet Maksimalisere antall jobber ferdigstilt Minimalisere den tiden en prosess bruker fra skedulering til ferdigstillelse Maksimalisere utnyttelse av CPU Maksimalisere utnyttelse av de totale ressursene Naturlig ytelsesdegradering Minimalisere responstid Konsistent responstid Hindre sulting. Opsys. internt 14 7

Designmålene er konflikterende Det vil til ethvert bruksområde være enkelte av designmålene som fremtrer som viktigere enn andre. En batch-maskin krever? En maskin som kjører en WEB-server krever? En maskin som er en server for IPtelefoni En PC-på en kontorpult krever Opsys. internt 15 Fifo-dispatching (first in first out) Ikke-preemptiv Grunnleggende rettferdig Ingen sulting Negativt for jobber med mye IO Må ofte legge seg bakerst i køen igjen Kan gi urimelig lange ventetider for korte jobber. Opsys. internt 16 8

Korteste-jobb-først dispatching Ikke-preemptiv Gir korte ventetider på korte jobber Maksimaliserer antall ferdigstilte jobber (i det minste på kort sikt) Unngår ikke sulting Inkonsistent responstid tiden hver jobb tar er avhengig av hvilken miks av jobber den konkurrerer med (og ikke bare antallet). Opsys. internt 17 Ikke preemptiv prioritetsdispatcing Ikke-preemptiv (selvfølgelig) Hver jobb har en prioritet knyttet til seg Prioriteten er satt av bruker eller av systemet Når CPU-tid koster penger kan høy prioritet være dyrere Når systemet er begrenset av CPU-kapasitet, kan systemet gi I/O tunge jobber en høyere prioritet. Jobben med høyest prioritet får tilgang til CPU Opsys. internt 18 9

Round-robin Den enkleste preemptive algoritmen. Prosessene får tildelt tidsintervaller på CPU i en gitt rekkefølge. Kan gi dårlig ressursutnyttelse. Negativt for prosesser med mye I/O (får kortere tidsintervaller) Opsys. internt 19 Flernivåkøer Preemptiv Systemet har flere ready-køer Hver prosess starter i den første køen. Etter hver dispatching blir den lagt neste kø. Round robin i siste kø. Streng prioritet mellom køene. Prosesser fra en kø blir dispatched bare dersom alle køene over er tomme Sulting er mulig, men ikke sannsynlig. Korte prosesser fort ferdig, I/O-prosesser kommer fort til I/O-køen Opsys. internt 20 10

Flernivåkøer illustrasjon Opsys. internt 21 Dynamisk prioritet En preemptiv variant av prioritetsdispatcing. Systemet avbryter den kjørende jobben med jevne mellomrom, og gir den en lavere prioritet Gjør at jobber går fort til å begynne med Sørger for at korte jobber får prioritet, uten at noen behøver å legge inn informasjon om jobblengde. En variant av dynamisk prioritet benyttes i Windows 2000 og Linux. Opsys. internt 22 11

Minneadministrasjon Minneadministrasjon går ut på å organisere forbruket av internminne mellom prosesser. Tildeling av plass til prosesser Utnyttelse av minneområdet Håndtere fragmentering Er banalt for single-tasking systemer. Er beslektet med CPU-skedulering og dispatcing En prosess som ikke har fått tildelt plass i minnet kan ikke kjøres Opsys. internt 23 Enkel minnehåndtering Overlay-teknikk Programmene er delt opp i logiske deler som lastes oppå (overskriver) hverandre etter behov. Kan garantere at applikasjonen ikke benytter mer enn en fast mengde av hukommelse Gjøres ofte av applikasjonen og ikke av opsys Vanlig i tidlige tekstbehandling- og regnearkprogrammer Problem: Hindrer applikasjonen i å benytte mer memory når mer memory blir tilgjengelig. Partisjonering Fast partisjonering hukommelsen deles opp statisk (en gang for alle) Dynamisk partisjonering Best fit (prosesser lastes inn i den minste ledige partisjon som er stor nok) Largest fit ( største ledige partisjon) First fit ( første og beste partisjon som er stor nok) Problem: FRAGMENTERING Opsys. internt 24 12

Enkel minnehåndtering forts. Minne-relokering (adresse justering) Et kompilert program har adressereferanser inne i seg Disse adressereferansene ble generert uten kunnskap om hvor i hukommelsen programmet ble lastet vanligvis ut ifra en antakelse om at programmet ble lastet fra adresse 0 og oppover. Minne-relokering består i justering av disse adressene når programmet blir lastet inn i memory på en gitt fysisk plass som regel fra en adresse forskjellig fra 0. Opsys. internt 25 Virtuelt minne Virtuelt (logisk) minne er et sett av adresser som adresserer det fysiske minnet på en annen måte enn de fysiske adressene Opsys. internt 26 13

Virtuelt minne forts. Krever en tabell som oversetter mellom virtuelle adresser og fysiske adresser Side tabell (Vi kommer tilbake til hva en side er) Oversettelses prosessen (oppslaget i side tabellen) kalles dynamic address translation DAT Dette gjøres på en slik måte at problemer med overlay-teknikk, fragmentering og prosessisolering løses av seg selv Opsys. internt 27 sider og rammer Det fysiske minnet deles opp i rammer - alle av lik størrelse Et lastbart program (prosess) deles opp i sider alle av lik størrelse Ramme-størrelsen er lik side størrelsen, slik at en side passer akkurat inn i en ramme OBS: Boken bruker av og til ordene frame og page om hverandre. Dette virker noen ganger forvirrende!! Opsys. internt 28 14

sider og rammer Hver prosess har sin egen side-tabell Side-tabellen gir oversikt over hvilke sider som er lastet inn i hvilke rammer: Opsys. internt 29 Virtuelle adresser En virtuell adresse er todelt Side nummer Offset som angir en gitt posisjon i siden Da rammestørrelsen som regel er en potens av 2, blir offset bitene lik de siste bitene i den oversatte fysiske adressen Opsys. internt 30 15

Virtuelt minne løser Problemer med Overlay-teknikk Enkelt å laste en ny side fra prosessen over en gammel side fra samme prosess Fragmenteringsproblemer En prosess kan lastes i rammer som ikke er kontinuerlige, men likevel få et kontinuerlig sett av adresser Relokeringsproblemet Alle prosesser har sin egen sidetabell, og får da et virtuelt adresserom som starter på 0. Problemet med isolering av prosesser Siden hver prosess har sin egen side-tabell vil ingen prosess kunne skrive inn i en del av hukommelsen som er avsatt til en annen tabell. Opsys. internt 31 Side swapping og side- feil Virtuelt minne kan være større enn fysisk minne ved at noen sider er lagret på disken (swap space). Sidetabellen angir da det stedet på disken hvor siden ligger. Ved minneoppslag kan det da vise seg at den siden som etterspørres ikke er lastet inn. Dette kalles side-feil (page fault) Minneadministratoren må da finne en (helst ledig) ramme som siden kan lastes inn i. Dersom ingen er ledig må den sende en annen side ut til disk for å få lastet inn den nye. Dette kalles swapping. Swapping gir økt virtuelt minne, men SIDE-FEIL ER SVÆRT KOSTBARE - JFR THRASHING!! Opsys. internt 32 16

Antall rammer per prosess Minimum 3 Instruksjonen, side-tabellen og dataene. Det har vist seg at moderne modulær programmering fører til at programmer holder seg innenfor et lite antall sider i avgrensede tidsintervall (concept of locality). Det settet med sider som er i jevnlig bruk hos en prosess vil vi kalles working set. Det antall frames som settes av til en prosess er ideelt sett akkurat stor nok til enhver tid å huse prosessens working set. Dette tallet endrer seg noe fra program til program. Et operativsystem kan balansere dette: Mye swapping -> øk antallet frames per prosess Lite swapping, men trangt om plassen -> reduser antallet frames per prosess Opsys. internt 33 Swapping algoritmer Vi skiller mellom lokal og global swapping Lokal swapping tillater bare utswapping av sider som tilhører den samme prosessen. Global swapping er mer fleksibel, men gjør at andre prosesser blir påvirket av at en prosess trenger mer minne Noen sider må aldri swappes ut Deler av operativsystemet, spesielt disk driveren (ellers ville ingen ting kunne swappes inn igjen). Et eget bit i sidetabellen angir at disse sidene ikke kan swappes ut. Opsys. internt 34 17

Swapping algoritmer forts. First-In First-Out Regnes som dårlig Sider som har vært lenge i hukommelsen tenderer til å være hyppig i bruk. Lengst-siden-brukt Forholdsvis god til å hindre swapping, men kostbar i bruk (tidspunkt må oppdateres for hver aksess) Ikke brukt nylig Forenkling av Lengst-siden-brukt To bit som settes nå den brukes (referanse bit) hhv. Endres ( dirty bit) Referansebitene resettes periodisk Forsøk å swappe ut bare sider som ikke har noen bit satt. (ikke endret siden sist swappet, og ikke referert på en stund). Opsys. internt 35 Swapping algoritmer Second chance Kombinasjon av FiFo og Ikke-brukt-nylig Dersom den eldste siden har satt sitt referansebit, får den sin alder redusert til 0, og får en ny runde før den igjen blir eldst. Den eldste siden uten referansebit satt blir swappet. Kostnad: Enkelte sider blir beholdt for lenge. En variant holder et antall rammer ledige for å ta vare på sider som nylig har blitt swappet ut. Dette hindrer at sider som ikke burde bli swappet ut må lastes helt inn fra disk igjen. Kostnad: færre rammer tilgjengelig for aktive sider. Opsys. internt 36 18

Implementasjon av side-tabell Oppslag i sidetabellen skjer gjerne flere ganger i løpet av en fetch and execute sykel raske oppslag er derfor viktige. Mange systemer har spesial-hardware til dette formålet associative memory som er velegnet til ekstremt raske tabelloppslag. Associative memory er kostbart, og det er derfor bare en liten andel av sidetabellen som får plass. Translation lookaside buffer (TLB). Dersom de hyppigst refererte sidene er representert i TLB, får man maksimert antall TLB-hit. TLB-miss fører til at systemet må slå opp i resten av tabellen, som ligger i konvensjonelt minne. Opsys. internt 37 Segmentering Enkelte systemer deler programmene opp i segmenter i stedet for sider. Segmenter er av varierende størrelse, og inneholder derfor en logisk sammenhengene enhet av programmet - bestemt av kompilator eller programmerer. En segment-tabell må derfor inneholde informasjon om start og sluttadressen til segmentet, slik at man kan sjekke om offset i en adresse er innenfor segmentets ramme. Dette hindrer intern fragmentering (et segment kan være akkurat stort nok til å inneholde programmet) Segmenteringer langt mer komplisert å håndtere for operativsystemet, og er derfor sjelden i bruk. Opsys. internt 38 19

Diskhåndtering-skedulering Operativsystemet vedlikeholder en kø av diskforespørsler Effektueringen av disse forespørslene kaller vi disk-skedulering First-come first-served Rettferdig, men ineffektiv pga. bevegelsene til diskhodet Shortest distance first Effektiv, men har store problemer med rettferdighet. Scan-scheduling Beveg hodet først innover, så utover Områder ved midten av disken betjenes dobbelt så ofte som andre områder Forbedringer av Scan-scheduling Betjen i en retning, og la så hodet hoppe helt tilbake Betjen bare de forespørslene som var i køen da hodet sist skiftet retning. Opsys. internt 39 Disk skedulering - illustrasjon Opsys. internt 40 20

Disk skedulering illustrasjon Opsys. internt 41 Nettverkstjenester Protokollstack (beskrevet tidligere) Filtjenester filsystemet spenner flere maskiner Skrivertjenester tilgang til skriverressurser som er koblet til en annen maskin Meldingstjenester E-mail Application program interface (API) gir programmer tilgang til nettjeneste Annet denne delen av feltet er i rivende utvikling Opsys. internt 42 21

Vranglåsproblemer Et system kan gå i stå når flere prosesser gjensidig venter på hverandre før de kan fortsette: Prosess A har allokert printer P men venter på tilgang til fil F, samtidig som prosess B har allokert fil F men venter på tilgang til printer P. Vranglås unngåelse Legg til algoritmer som sørger for at vranglåssituasjoner ikke oppstår Dette har som regel en negativ effekt på utnyttelsen av systemet. Vranglås oppdagelse og reparasjon Reparasjon er kostbart det krever ofte at en prosess kastes ut, eller rulles tilbake til en tidligere tilstand. Opsys. internt 43 Annet støtte for samarbeidende prosesser Interprosess kommunikasjon. Samarbeidende prosesser må kunne kommunisere med hverandre Deling av variable, eller sending av meldinger Prosess synkronisering. Samarbeidende prosesser har behov for å styre eksekveringshastigheten i forhold til hverandre Prosess 1 Prosess 2 a = b+d; c = a*a; Opsys. internt 44 22

Virtuelle maskiner Et operativsystem gir en illusjon om at ethvert program har maskinen for seg selv. Denne illusjonen kan bygges på et lavere nivå, hvor man i software bygger illusjonen om flere enn en maskin Hver av disse maskinene kan så kjøre sitt eget (forskjellige) operativsystem. Java Virtual Machine (JVM) er et program som illuderer oppførselen til en tenkt maskin. Binærkoden til JVM ligner strukturelt på binærkoden til en vanlig fysisk maskin (og operativsystem) Nesten alle moderne plattformer inneholder en JVM Portabilitet - ny plattform krever ny JVM implementasjon, men ingen ny kompilator Effektivitetskostnad? Opsys. internt 45 Oppsummering Vi har nå gått igjennom Prosesser og prosesstilstander CPU-skedulering og dispatching Minneadministrasjon og virtuelt minne Diskhåndtering og i tillegg så vidt berørt Nettverkstjenester Vranglåsproblemer Støtte for samarbeidende prosesser Opsys. internt 46 23