Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Operativsystemer.  Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.  Generelt kan en kritisk region defineres som et sted der.

Liknende presentasjoner


Presentasjon om: "Operativsystemer.  Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.  Generelt kan en kritisk region defineres som et sted der."— Utskrift av presentasjonen:

1 Operativsystemer

2  Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.  Generelt kan en kritisk region defineres som et sted der det kan oppstå kollisjoner. Operativsystemer

3  I trafikken vil et veikryss være en kritisk region fordi biler lett kan kollidere der.  Derfor er veikryss regulert enten av trafikklys, rundkjøringer eller regler for vikeplikt. Operativsystemer

4  En definisjon på kritisk region i et dataprogram  En kritisk region er et stykke programkode som forsøker å få tilgang til en ressurs som ikke kan deles. Operativsystemer

5  Om flere tråder får tilgang til samme ressurs kan det føre til kollisjoner.  Dette kan igjen føre til at programmet ikke fungerer på normal måte. Operativsystemer

6  Vi skal se på et eksempel på en kollisjon mellom to tråder.  Vi har to tråder som bruker en felles tallvariabel som heter sum.  Den ene tråden øker verdien til sum med 1.  Den andre tråden avtar verdien til sum med 1. Operativsystemer

7  Vi har følgende situasjon double sum= 0.0 ;// Felles variabel Tråd 1sum += 1; Tråd 2sum -= 1; Operativsystemer

8  I tråd 1 legges 1 til i sum. I tråd 2 trekkes 1 fra sum.  Dette vil som oftest fungere bra.  Men det kan gå galt hvis trådene forsøker å gjøre dette samtidig når det skjer en trådutskifting i prosessor. Operativsystemer

9  Det som kan skje er at tråd 1 er i prosessor og blir avbrutt av en trådutskifting akkurat når den skal utføre sum += 1  Da blir tråd 1 tatt ut av prosessor og tråd 2 blir lastet inn i prosessor. Operativsystemer

10  La oss si at tråd 1 akkurat har lest inn at sum er lik 4 før den tas ut av prosessor.  Når tråd 1 blir avbrutt vil trådutskiftingen føre til at register verdiene til tråden lagres.  Det vil si at verdien 4 lagres for variabelen sum. Operativsystemer

11  Når tråd 2 starter å kjøre i prosessor vil tråd 2 også lese inn at verdien til sum er lik 4.  Tråd 2 vil så utføre sum -= 1  Verdien til sum er nå lik 3. Operativsystemer

12  Når tråd 1 allokeres inn i prosessor på ny vil verdiene i registeret som ble lagret, leses inn.  Tråd 1 vil bruke registerverdien til sum fordi denne var akkurat lest inn for bruk, når tråd 1 skulle utføre sum += 1 Operativsystemer

13  Tråd 1 vil så utføre sum += 1  Siden tråd 1 bruker at sum var lik 4 vil verdien til sum bli lik 5.  Dette medfører at oppdateringen av sum som ble gjort av tråd 2 vil bli mistet. Operativsystemer

14  Konsekvensen av at de to trådene har oppdatert variabelen sum samtidig er at den ene oppdateringen er mistet.  Og dette vil føre til programfeil. Operativsystemer

15  Tråd 1 og tråd 2 har begge en kritisk region i koden sin  Tråd 1sum += 1  Tråd 2sum -= 1  Det er derfor behov for et system som sørger for at tråd 1 og tråd 2 ikke er inne i sin kritiske region samtidig. Operativsystemer

16  For å sørge for at tråd 1 og tråd 2 ikke er inne i sin kritiske region samtidig kan vi bruke en semafor.  Eller vi kan bruke klassen Monitor som sørger for at variabelen sum bare nås av en tråd om gangen. Operativsystemer

17  Kritiske regioner i programkode må reguleres med synkroniserings- mekanismer.  Synkroniseringsmekanismer har derfor en viktig oppgave å unngå programfeil. Operativsystemer

18

19  I Windows operativsystem benyttes mange ulike synkroniseringsmekanismer. Noen av dem er  Keyed Events  Spinlocks  Fast Mutex og Guarded Mutex  Pushlocks Operativsystemer

20  Windows bruker en synkroniserings- mekanisme som kalles Keyed Events.  Events brukes i tilfeller hvor tråder samarbeider om en oppgave.  Dette er i tilfeller der en tråd må vente på at en hendelse (Event) har skjedd før den selv kan utføre en handling. Operativsystemer

21  En Keyed Event tillater en tråd til å spesifisere en nøkkel (key) som angir hvilken hendelse den venter på.  Tråden vil da vente inntil en annen tråd signaliserer at en hendelse med den samme key har skjedd. Operativsystemer

22  Spinlock er en låsmekanisme som benyttes av kjernen i Windows operativsystem til å oppnå eksklusiv rådighet til ressurser.  Før en tråd i kjernen skal få tilgang til en kritisk region, må den spørre en Spinlock om tilgang. Operativsystemer

23  Tråden venter i en løkke (spinner) inntil Spinlocken blir ledig.  Tråden vil derfor være i ventetilstand, det vil si være ikke aktiv, mens den venter på at Spinlocken skal bli ledig. Operativsystemer

24  Når en tråd har fått tilgang til en Spinlock vil den ha eksklusiv rådighet til den helt til den gir slipp på den igjen.  Å bruke en Spinlock er derfor bare effektivt om en tråd bare skal ha Spinlocken et kort tidsrom. Operativsystemer

25  Noe som kalles Queued Spinlocks benyttes ofte istedenfor vanlige Spinlocks.  Queued Spinlocks benytter køer til å henge forespørsler på. Operativsystemer

26  Fast Mutex gir ofte bedre ytelse enn en vanlig mutex.  Årsaken er at de kan gå utenom vanlig prosessplanlegging.  Dette gir Fast Mutex spesielt god ytelse i miljøer med flere prosessorer. Operativsystemer

27  Guarded Mutex som benyttes av Windows Server 2003 og senere versjoner av Windows brukes til samme oppgaver som Fast Mutex, men er enda raskere. Operativsystemer

28  Pushlocks brukes istedenfor Spinlocks for å beskytte datastrukturer i kjernen.  Pushlocks benyttes kun av Windows operativsystem, men det fins også noen drivere som benytter Pushlocks.  En fordel med Pushlocks er at de tar liten plass. Operativsystemer

29  Tilgang til en Pushlock kan være både eksklusiv og delt.  Tilgangen kan være delt hvis data bare skal leses.  Hvis en tråd skal forandre på dataene må tilgangen vær eksklusiv. Operativsystemer

30

31  Kritiske regioner kan føre til en situasjon som kalles vranglås (Deadlock).  En vranglås oppstår når to tråder begge forsøker å få tak i en ressurs som den andre kontrollerer. Operativsystemer

32  I et datamaskin system er det mange ressurser som kan bli brukt av bare en prosess av gangen.  Dette er ressurser som skjerm, printere, CD spillere, filer, … Operativsystemer

33  For en prosess er det ofte behov for tilgang ikke bare til en ressurs, men til flere.  Hvis flere prosesser forsøker å få tilgang til mer enn en ressurs hver kan dette gi opphav til vranglås. Operativsystemer

34  Et eksempel på vranglås er når to tråder har åpen hver sin fil for skriving og begge ønsker å åpne den andre trådens fil.  Tråd A har åpen fil 1  Tråd B har åpen fil 2  Tråd A ønsker å åpne fil 2 og tråd B ønsker å åpne fil 1. Begge vil vente evig. Operativsystemer

35  Et annet eksempel på vranglås er følgende.  To prosesser ønsker samtidig å skanne et dokument og skrive det til en CD.  Begge prosesser har derfor bruk for både skanneren og CD-en. Operativsystemer

36  Den ene prosessen prøver først å få tilgang til skanneren.  Den andre prosessen er programmert annerledes og prøver først å få tilgang til CD-en. Operativsystemer

37  Når så prosess 1 forsøker å få tilgang til CD-en og prosess 2 forsøker å få tilgang skanneren samtidig oppstår vranglås. Operativsystemer

38  Situasjonen er følgende Operativsystemer Prosess 1Prosess 2 Skanner CD-ROM

39  Vranglås kan også oppstå i nettverk.  Ofte er printere, skannere og liknende utstyr en felles ressurs i nettverket.  Vranglås kan derfor oppstå hvis flere maskiner prøver å få tak i delte ressurser i et nettverk samtidig. Operativsystemer

40  Vranglås kan også oppstå i situasjoner hvor det ikke er input/output utstyr som inngår.  Vranglås kan for eksempel oppstå ved bruk av en database. Operativsystemer

41  To prosesser bruker en database.  Prosess A har lukket noen data i databasen.  Prosess B har lukket noen andre data i databasen.  Hvis nå begge prosesser forsøker å få tak dataene som den andre prosessen har lukket, oppstår vranglås. Operativsystemer

42  Et teoretisk tilfelle av vranglås kan oppstå ved trådutskifting i prosessor.  Vi skal igjen se på eksempelet der vi har to tråder som bruker en felles tallvariabel. Den ene tråden legger til et tall i variabelen og den andre tråden trekker fra et tall. Operativsystemer

43 double sum;//Felles variabel I tråd 1Enter(sum); sum += 1; Exit(sum) ; I tråd 2Enter(sum) ; sum -= 1; Exit(sum) ; Operativsystemer

44  Det som kan skje er at akkurat når tråd 1 har utført lukking av sum så er tiden ute for tråd 1 i prosessor og tråd 2 lastes inn i prosessor.  Det som så skjer er at Enter(sum) også skjer i tråd 2. Operativsystemer

45  Følgen av at begge tråder har klart stenge tilgangen til variabelen sum er vranglås.  Variabelen sum vil være låst for både tråd 1 og tråd 2.  Begge tråder vil vente i evig tid på å få tilgang til variabelen sum. Operativsystemer

46  En definisjon på vranglås er følgende  Noen prosesser er i vranglås hvis hver prosess venter på en hendelse som bare en av de andre prosessene kan forårsake.  Siden alle prosessene venter vil ingen av dem gjøre noe som åpner for de andre prosessene. Operativsystemer

47  For at vranglås skal oppstå må følgende betingelser være oppfylt 1. Eksklusiv rådighet betingelsen. 2. Holde og vente betingelsen. 3. Ikke operativsystemstyrt betingelsen. 4. Sirkulær vente betingelsen. Operativsystemer

48 Eksklusiv rådighet betingelsen innebærer at om en tråd har fått adgang til en ressurs vil ingen andre tråder få tilgang til ressursen. Operativsystemer

49 Holde og vente betingelsen beskriver situasjonen ved vranglås. Trådene holder på en ressurs og venter på tilgang til en annen ressurs. Operativsystemer

50 Ikke operativsystemstyrt betingelsen innebærer at en ressurs ikke kan tas fra en prosess. En prosess vil holde på en ressurs inntil den selv gir slipp på den. Operativsystemer

51 Sirkulær vente betingelsen er når tråder venter på hverandre. Prosess p1 har ressurs R1 og vil ha ressurs R2. Prosess p2 har ressurs R2 og vil ha ressurs R1. Denne situasjonen kan også involvere flere enn to tråder. Derfor navnet sirkulær venting. Operativsystemer

52 Eksempel på Sirkulær venting med tre tråder involvert. Operativsystemer p1 p2 p3 R2 R1 R3

53  Operativsystemet kan forholde seg til vranglås på fire måter 1. Ignorere vranglåsen. 2. Finne vranglåsen og rette den opp. 3. Prøve å unngå at vranglås oppstår når ressurser allokeres. 4. Prøve å unngå at vranglås oppstår ved å unngå at betingelsene for dem oppstår. Operativsystemer

54 En måte å forholde seg til vranglås på er å ignorere den. Dette kan være akseptabelt hvis vranglås er et sjeldent fenomen.  At et program stopper å virke en gang i året pga vranglås har liten betydning. Operativsystemer

55  Et operativsystem kan forsøke å finne vranglås og rette den opp.  Det er utviklet teknikker for å registrere vranglås.  Operativsystemer som gjør dette prøver som oftest ikke å forhindre vranglås. Operativsystemer

56  Hvis operativsystemet har oppdaget vranglås er det forskjellige strategier å fjerne den 1. Gjenoppretting ved at operativsystemet griper inn. 2. Gjenoppretting ved tilbakestilling. 3. Gjenoppretting ved å stanse prosesser. Operativsystemer

57  Gjenoppretting ved at operativsystemet griper inn innebærer at operativsystemet tar en ressurs fra en prosess og gir den til en annen prosess.  Imidlertid er det ofte vanskelig eller umulig å rette opp en vranglås på denne måten. Operativsystemer

58  Gjenoppretting ved tilbakestilling innbærer at en prosess som er med i vranglåsen settes tilbake i tid, slik at den kan begynne allokeringen av ressurser på nye.  For å få til tilbakestilling av prosesser benyttes noe som kalles sjekkpunkter. Operativsystemer

59  Sjekkpunkter i en prosess vil si at status for prosessen lagres på en fil på bestemte tidspunkter.  Dette gjør at prosessen kan startes på ny fra et sjekkpunkt. Operativsystemer

60  Gjenoppretting ved å stanse prosesser innebærer at operativsystemet avslutter en eller flere prosesser for å fjerne en vranglås.  Dette medfører at de andre prosessene kanskje vil kunne forsette. Operativsystemer

61  Istedenfor å forsøke å finne og rette opp vranglås kan operativsystemer forsøke å unngå vranglås.  Operativsystemet kan prøve å unngå at vranglås oppstår når ressurser allokeres. Operativsystemer

62  Operativsystemet kan også prøve å unngå at vranglås ved unngå de fire betingelsene for vranglås 1. Eksklusiv rådighet betingelsen. 2. Holde og vente betingelsen. 3. Ikke operativsystemstyrt betingelsen. 4. Sirkulær vente betingelsen. Operativsystemer

63 Eksklusiv rådighet betingelsen innbærer at for at vranglås skal oppstå er det kun en prosess som har tilgang til ressursen. Hver ressurs er tilgjengelig for kun en prosess om gangen. Denne betingelsen er imidlertid nødvendig for mange ressurser som printere, filer, … Operativsystemer

64 Holde og vente betingelsen innbærer at for at vranglås skal oppstå vil prosesser holde på en ressurs mens den forsøker å få tilgang til en annen. En måte å unngå dette på er å kreve at en prosess oppgir ressurser den har før den får tilgang til en ny ressurs. Operativsystemer

65  Ikke operativsystemstyrt betingelsen innbærer at for at vranglås skal oppstå tas prosesser ut av prosessor ved trådutskifting.  Hvis en prosess får lov til å bli ferdig med en ressurs før den tas ut av prosessor vil vranglås ikke oppstå. Operativsystemer

66  Sirkulær vente betingelsen innebærer at for at vranglås skal oppstå må en prosess forsøke å få tilgang til flere ressurser samtidig.  Dette innebærer at hvis en prosess kun forsøker å få tilgang til en ressurs om gangen vil vranglås unngås. Operativsystemer

67  Kommunikasjon vranglås er en type vranglås som ikke har med ressurser å gjøre.  Sett at en prosess A sender en forespørsel til prosess B, og så blokkerer inntil den får svar.  Hvis svaret fra prosess B blir borte, får vi en vranglås. Operativsystemer

68  Sulting (Starvation) er et problem som er nær knyttet til vranglås.  En tråd som ikke kommer inn i prosessor er i en låst situasjon som ligner vranglås. Operativsystemer

69  Vranglås er et mulig problem i et hvert operativsystem.  Vranglås kan oppstå på en rekke forskjellige måter.  To eller flere prosesser vil være involvert i en vranglås. Operativsystemer

70  Ved bruk av Monitor kan vranglås unngås ved å angi et tidsintervall. if (Monitor::TryEnter(sum, 300)) { // kode beskyttet av Monitor her } else { // kode å utføre om TryEnter mislykkes } Operativsystemer

71  Vranglås fører til en situasjon der en eller to tråder aldri vil bli ferdig med sin oppgave uten at operativsystemet griper inn. Operativsystemer

72  Operativsystemet har en del strategier for å unngå vranglås.  Operativsystemet undersøker om vranglås eksisterer, spesielt hvis det merker at systemet går tregt. Operativsystemer

73  Hvis operativsystemet finner vranglås forsøker det å få bort vranglåsen.  Måten operativsystemet forsøker rette opp vranglås på er å få systemet tilbake til det stadium som var før vranglåsen oppsto. Operativsystemer

74  Windows Server operativsystem har en ressursbehandler (Resource Manager).  Å unngå vranglås på servere er en oppgave for ressursbehandleren.  Ressursbehandleren prøver å oppdage og korrigere vranglås. Operativsystemer

75  Driver Verifier er en mekanisme i Windows operativsystem som kan benyttes til å finne feil i drivere og annen kode i kjernen.  Microsoft bruker Driver Verifier til å kontrollere egne drivere og andres drivere som skal være kompatible med Windows. Operativsystemer

76  I tillegg til å være et verktøy er Driver Verifier også et hjelpemiddel for systemadministratorer som kommer ut for et system krasj.  Driver Verifier kan blant annet benyttes ved vranglås. Operativsystemer

77  Man kan benytte Driver Verifier til å sjekke om det er vranglås.  Driver Verifier holder rede på bruk av Spinlocks og Mutexer.  Driver Verifier kan derfor se etter mønster som kan fremkalle en vranglås. Operativsystemer

78

79  Ofte er det mange tråder som kjører samtidig på en datamaskin.  Disse trådene må på en eller annen måte samkjøres.  Det er derfor behov for mekanismer som tar seg av denne samkjøringen. Operativsystemer

80  Vi har sett på følgende mekanismer for samkjøring av tråder.  Semafor  Mutex  Event  Monitor Operativsystemer

81  Disse synkroniseringsmekanismene kan deles i to grupper etter hvordan de fungerer. 1. Lukker 2. Signaliserer Operativsystemer

82  Semafor, mutex og monitor lukker en ressurs slik at andre tråder ikke kommer til.  Event derimot er en mekanisme som signaliserer når en hendelse er inntruffet. Operativsystemer

83  Både, semaforer, mutex, monitor og events kan benyttes til interprosess kommunikasjon.  Interprosess kommunikasjon vil si kommunikasjon mellom ulike programmer, ikke bare tråder. Operativsystemer

84  For at en semafor skal kunne benyttes til interprosess kommunikasjon må den gis et navn.  Når et program har opprettet en semafor i minnet, kan andre programmer få tak i den i minnet via navnet. Operativsystemer

85  Semaforer med navn kan benyttes av andre programmer som kjører på operativsystemet.  Å bruke navn som kan nås overalt i et operativsystem krever forsiktighet.  Hvis to semaforer har samme navn vil dette kunne føre til at feil semafor blir tatt i bruk. Operativsystemer

86

87  Det finnes flere andre klasser i Class Library som kan benyttes til synkronisering enn de vi har sett på til nå. Noen er  class Threadpool  class Interlocked  class ReaderWriterLock Operativsystemer

88 class Threadpool gir en enkel måte å synkronisere bakgrunnstråder. Alt vi behøver å gjøre er å henge tråden på en liste. Da vil operativsystemet ta seg av synkroniseringen. Operativsystemer

89 Man kaller ThreadPool::QueueUserWorkItem(gcnew WaitCallback(minTraad));  En tråd med funksjonen minTraad vil da henges på en liste og systemet sørger for synkronisering. Operativsystemer

90 class Interlocked Denne klassen gir en metode til å synkronisere en variabel som brukes av flere tråder. Klassen sørger for at kollisjoner mellom tråder ikke gjør at operasjoner går tapt. Operativsystemer

91 class Interlocked Denne klassen gir en metode til å synkronisere en variabel som brukes av flere tråder. Klassen sørger for at kollisjoner mellom tråder ikke gjør at operasjoner går tapt. Operativsystemer

92  if ( 0 == Interlocked::Exchange(brukerRessurs, 1)) { // Har tilgang til ressursen// }  int brukerRessurs;  brukerRessurs er en variabel som angir hvor mange tråder som bruker ressursen. Operativsystemer

93 class ReaderWriterLock synkroniserer tilgangen til en ressurs. 1. Klassen lar flere tråder lese fra en ressurs samtidig. 2. Men hvis en tråd skal skrive til ressursen vil ressursen lukkes slik at bare denne tråden har tilgang til ressursen. Operativsystemer

94 class ReaderWriterLock fungerer best når det er flest tråder som skal lese ressursen og få som skal skrive.  Tråder som skal lese og tråder som skal skrive henges på forskjellige køer.  Køen med tråder som skal lese gjøres gjerne ferdig før tråder som skal skrive slippes til. Operativsystemer

95 class AutoResetEvent  Denne klassen gir beskjed til en tråd som venter, om at en hendelse har skjedd.  Klassen kan derfor brukes til synkronisering av tråder som samarbeider. Operativsystemer

96  class ManualResetEvent  Dette er en annen klassen som kan brukes til synkronisering av tråder som samarbeider.  Vi skal se på forskjellen på class AutoResetEvent og class ManualResetEvent. Operativsystemer

97  Vi har tidligere sett på class EventWaitHandle  Denne klassen har en input parameter EventResetMode.  Verdien for EventResetMode avgjør om en hendelse skal registreres automatisk eller manuelt. Operativsystemer

98  Valg AutoReset :  Når signalisert med Set() vil hendelsen registreres automatisk og tråden vil løslates.  Kall på WaitOne() vil lukke adgang for andre tråder. Operativsystemer

99  Valg ManualReset :  Når signalisert med Set() vil alle ventende tråder løslates og hendelsen vil vente på å registreres manuelt.  Kall på WaitOne() i en tråd vil derfor ikke lukke adgang for andre tråder. Operativsystemer

100  AutoReset: Tillater bare en tråd tilgang til en ressurs om gangen  ManualReset: Tillater flere tråder tilgang til en ressurs samtidig. Operativsystemer

101

102  Minnebehandling omhandler 1. Hvordan allokere minne til programmer. 2. Hvordan frigjøre minne det ikke er bruk for. Operativsystemer

103  Hvordan minnet behandles, vil ha innvirkning på datamaskinens ytelse.  Minnebehandling er derfor en viktig oppgave på en datamaskin. Operativsystemer

104  Følgende gir en oversikt over noen problemer med minnebehandling.  Det må være plass til flere programmer i minnet samtidig.  Det er ikke bestandig plass til alle programmer i minnet.  Programmer vil ha ulike adresser i minnet ved ulike kjøringer. Operativsystemer

105  Hvis det ikke er plass til flere programmer i minnet samtidig, kan man benytte avvekslende inn- og ut-lasting av programmer. Operativsystemer

106  Ved avvekslende inn- og ut-lasting av programmer bytter prosesser på å være i minnet.  En prosess lastes inn i minnet og kjører en stund, for deretter å fjernes fra minnet igjen.  Deretter lastes en ny prosess inn i minnet som får kjøre en stund. Operativsystemer

107  Denne utbyttingen av prosesser i minnet kalles swapping på engelsk.  Swapping er en gammeldags metode som ble benyttet tidligere. Operativsystemer

108  De fleste moderne minnemodeller faller i følgende tre kategorier. 1. Flat minnemodell 2. Sideinndelt minnemodell 3. Segmentert minnemodell Operativsystemer

109  En flat minnemodell benytter lineær indeksering. Indeksene starter på 0 og går opp til et maksimum.  Prosessor bruker indeksene til å få direkte adgang til data lagret i minnet. Operativsystemer

110  En flat modell gir en enkel organisering av minnet.  Det er behov for lite ressurser til minnebehandling og man får rask tilgang til data. Operativsystemer

111  Sideinndelt minnemodell er mer komplisert enn flat modell og gir litt langsommere tilgang til data.  Sideinndeling (Paging) er en måte å hente og lagre data på fra et lagringsmedia til minnet.  Data behandles som et sett med like store blokker kalt sider (Pages). Operativsystemer

112  Fordelen med sideinndeling er at  Det er ikke nødvendig å laste hele programmer inn i minnet på en gang.  Man jobber hele tiden med like store enheter.  Sideinndeling er en viktig del av teknikken som benyttes ved virtuelt minne. Operativsystemer

113  Segmentert minnemodell likner sideinndelt minnemodell, men sidene varierer i størrelse.  Dette gjør segmentert minnemodell mer fleksibelt og effektivt en sideinndeling. Operativsystemer

114  Ved segmentering er programmer delt i uavhengig adresserte segmenter.  Segmentene er lagret i minnet uten å være sammenhengende. Operativsystemer

115  Ulempen med segmentert minnemodell er det er et komplisert system å behandle.  Det er vanskelig å programmere det opp og det kan lett oppstå feil. Operativsystemer

116  Virtuelt minne er en teknikk som gir programmer inntrykk av at datamaskinen har et enhetlig og sammenhengende minne.  Dette selv om minnet kan være plassert fysisk på forskjellige medier. Operativsystemer

117  Fordelen med en virtuell minnearkitektur er at deler av en prosess kan ligge på harddisken om det ikke er nok plass i minnet. Operativsystemer

118  Nesten all implementering av virtuelt minne deler det virtuelle adresserommet inn i sider.  Når en prosess kjører i prosessor leses den inn side for side på samme måte som når vi leser en bok. Operativsystemer

119  Operativsystemer benytter teknikken med virtuelt minne til å gjøre det lettere å bruke det fysiske minnet.  Virtuelt minne gjør det lettere for store dataprogrammer å kjøre på systemet. Operativsystemer

120  Alle moderne operativsystemer benytter teknikker med virtuelt minne. Operativsystemer

121  Minnebehandleren (Memory Manager) i Windows benytter en virtuell minnearkitektur.  I Windows har hver prosess et virtuelt adresserom.  Det virtuelle adresserommet er delt opp i sider. Operativsystemer

122  Windows bruker en virtuell minnebehandler.  En virtuell minnebehandler benytter sideinndeling (Paging).  Den laster derfor ikke inn hele programmer når de skal kjøres, men kun aktive deler. Operativsystemer

123  Windows støtter sideetterspurt virtuelt minne (Demand-paged Virtual Memory).  Med sideetterspurt menes at operativsystemet bare laster inn sider i minnet som blir etterspurt av en prosess som kjører. Operativsystemer

124  Minnebehandleren (Memory Manager) tar seg av behandlingen av minnet.  Den allokerer plass for programmer i minnet når det er behov for det.  Og den fjerner programmer fra minnet igjen når de er ferdig. Operativsystemer

125  Minnebehandleren gjør følgende  Implementerer virtuelt minne.  Utfører oppgaver på minne.  Gir støtte for store minner.  Gjør tjenester liksom å holde rede på filer som er en del av minnet.  Gir støtte til hurtigbufringsbehandleren. Operativsystemer

126  Dynamisk minneallokering er avsetting av minne til et program som kjører på datamaskinen.  En del av minnet som er avsatt til et dataprogram kalles for frilageret (the Heap). Operativsystemer

127  Programmerere kan bruke frilageret til å opprette variabler og objekter.  Variabler og objekter som opprettes i frilageret vil være der til de slettes av programmet eller av søppeloppsamleren (garbage collector). Operativsystemer

128  Hver prosess har minst et frilager.  Når prosessen starter opprettes et standard prosessfrilager som eksisterer helt til prosessen blir avsluttet.  Prosesser kan også opprette flere private frilager. Operativsystemer

129  Når en tråd kjører må den ha tilgang til en midlertidig lagringsplass hvor den kan lagre lokale variabler, funksjonsparametre og returneringsadresser etter et funksjonskall.  Den delen av minnet som benyttes til dette kalles et stakklager (Stack). Operativsystemer

130  I Windows benytter minnebehandleren to stakklagre for hver tråd.  En brukerstakk og en kjernestakk. Operativsystemer

131  Når en tråd lages vil det automatisk opprettes en brukerstakk som vanligvis er på 1 MB.  Kjerne stakker er gjerne mye mindre, en vanlig størrelse har vært 12 KB. Operativsystemer


Laste ned ppt "Operativsystemer.  Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.  Generelt kan en kritisk region defineres som et sted der."

Liknende presentasjoner


Annonser fra Google