Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.

Størrelse: px
Begynne med side:

Download "Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer."

Transkript

1 Kritisk region Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer. Generelt kan en kritisk region defineres som et sted der det kan oppstå kollisjoner. Et veikryss er en kritisk region 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. En definisjon på kritisk region 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. Kollisjoner Om flere tråder får tilgang til samme ressurs kan det føre til kollisjoner. Dette kan igjen føre til at et program ikke fungerer på normal måte. 1

2 Eksempel kollisjon 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. Vi har følgende situasjon double sum=0.0; // Felles variabel for trådene Tråd 1 sum += 1; Tråd 2 sum -= 1; I tråd 1 legges 1 til i sum. I tråd 2 trekkes 1 fra sum. Dette vil fungere bra hvis det ikke skjer en kollisjon. Trådutskifting kan skape problemer Men det kan gå galt hvis trådene forsøker å oppdatere variabelen sum samtidig når det skjer en trådutskifting i prosessor. 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. 2

3 La oss si at tråd 1 akkurat har lest inn at sum er lik 4 før den tas ut av prosessor. Da er situasjonen Sum = 4 Registerverdien til tråd 1 = 4 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 i trådens register. 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. Sum = 3 Når tråd 1 allokeres inn i prosessor på ny der den var da den ble stoppet. Verdiene i registeret som ble lagret, leses inn. Tråd 1 vil bruke registerverdien til sum fordi denne akkurat var lest inn for bruk, når tråd 1 skulle utføre sum += 1 Tråd 1 vil så utføre sum += 1 Konsekvensen av trådutskiftingen Siden tråd 1 bruker registerverdien som er 4, og ikke verdien til sum som har blitt 5, vil verdien til sum settes lik 5. Dette medfører at oppdateringen av sum som ble gjort av tråd 2 vil bli mistet. Konsekvensen av at de to trådene har oppdatert variabelen sum samtidig er at den ene oppdateringen er mistet. 3

4 Å miste en oppdatering av sum fører til programfeil Å miste enn oppdatering av sum vil føre til programfeil. Tråd 1 og tråd 2 har begge en kritisk region i koden sin Tråd 1 sum += 1 Tråd 2 sum = 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. Hvordan unngå programfeil på grunn av trådutskifting 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. Kritiske regioner i programkode må reguleres med synkroniseringsmekanismer. Synkroniseringsmekanismer har derfor en viktig oppgave å unngå programfeil. 4

5 Synkroniseringsmekanismer i Windows operativsystem I Windows operativsystem benyttes mange ulike synkroniseringsmekanismer. Noen av dem er Keyed Events Spinlocks Fast Mutex og Guarded Mutex Pushlocks Keyed Events 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. 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. 5

6 Spinlock 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. Tråden venter i en løkke (spinner) inntil Spinlock-en blir ledig. Tråden vil derfor være i ventetilstand, det vil si være ikke aktiv, mens den venter på at Spinlock-en skal bli ledig. 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 Spinlock-en et kort tidsrom. Queued Spinlocks Noe som kalles Queued Spinlocks benyttes ofte istedenfor vanlige Spinlocks. Queued Spinlocks benytter køer til å henge forespørsler på. Fast Mutex 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. 6

7 Guarded Mutex Guarded Mutex som benyttes av Windows Server 2003 og senere versjoner av Windows. Guarded Mutex brukes til samme oppgaver som Fast Mutex. Men Guarded Mutex er enda raskere. Pushlocks 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. 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. 7

8 Vrangla s 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. Ressurser som bare kan brukes av en prosess I et datamaskinsystem er det mange ressurser som kan bli brukt av bare en prosess av gangen. Dette er ressurser som skjerm, printere, CD spillere, filer, 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. Eksempel på vranglås 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. 8

9 Eksempel på vranglås 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. 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. 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. Situasjonen er følgende Prosess 1 Skanner CD-ROM Prosess 1 Vranglås i nettverk 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. 9

10 Vranglås i database 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. 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. Vranglås ved trådutskifting 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. double sum; I tråd 1 //Felles variabel Enter(sum); sum += 1; Exit(sum) ; I tråd 2 Enter(sum) ; sum -= 1; Exit(sum) ; 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. 10

11 Det som så skjer er at Enter(sum) også skjer i tråd 2. 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. Definisjon av vranglås 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. Betingelser for vranglås 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. 11

12 Eksklusiv rådighet betingelsen 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. Holde og vente betingelsen Holde og vente betingelsen beskriver situasjonen ved vranglås. Trådene holder på en ressurs og venter på tilgang til en annen ressurs. Ikke operativsystemstyrt betingelsen 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. Sirkulær vente betingelsen 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. 12

13 Eksempel på sirkulær venting Eksempel på Sirkulær venting med tre tråder involvert. Tråd 1 Ressurs 2 Ressurs 1 Tråd 2 Tråd 3 Ressurs 3 Hvordan forholde seg til vranglås 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. Ignorere vranglås 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 på grunn av vranglås har liten betydning. 13

14 Finne og rette opp vranglås Et operativsystem kan forsøke å finne vranglås og rette den opp. Det er utviklet teknikker for å registrere vranglås. som gjør dette prøver som oftest ikke å forhindre vranglås. Hvis operativsystemet har oppdaget vranglås er det forskjellige strategier å fjerne den 1. Gjenoppretting ved at operativsystemet griper inn. 2. Gjenoppretting ved tilbake stilling. 3. Gjenoppretting ved å stanse prosesser. 1. Gjenoppretting ved at operativsystemet griper inn 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. 2. Gjenoppretting ved tilbake stilling Gjenoppretting ved tilbake stilling innebæ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 tilbake stilling av prosesser benyttes noe som kalles sjekkpunkter. 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. 14

15 3. Gjenoppretting ved å stanse prosesser 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 fortsette. Unngå vranglås ved allokering av ressurser 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. Unngå vranglås ved å unngå betingelsene for vranglås 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. 15

16 1. Eksklusiv rådighet betingelsen Eksklusiv rådighet betingelsen innebæ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, 2. Holde og vente betingelsen Holde og vente betingelsen innebæ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. 3. Ikke operativsystemstyrt betingelsen Ikke operativsystemstyrt betingelsen innebærer at operativsystemet ikke griper inn ved en vranglås. Vranglåser kan ofte rettes opp av operativsystemet. 4. Sirkulær vente betingelsen 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. 16

17 Kommunikasjon vranglås 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. Sulting likner vranglås 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. Vranglås kan lett forekomme 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. 17

18 Monitor 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 } 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. Strategier for operativsystemet 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. 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. 18

19 Resursbehandleren 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. Driver Verifier 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. 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. 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. 19

20 Synkroniseringsmekanismer 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. Mekanismer for synkronisering Det er derfor behov for mekanismer som tar seg av denne samkjøringen. Vi har sett på følgende mekanismer for samkjøring av tråder. Semafor Mutex Event Monitor To typer funksjonalitet Disse synkroniseringsmekanismene kan deles i to grupper etter hvordan de fungerer. 1. Lukker 2. Signaliserer 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. 20

21 Interprosess kommunikasjon Både, semafor, mutex, monitor og events kan benyttes til Interprosess kommunikasjon. Interprosess kommunikasjon vil si kommunikasjon mellom ulike programmer, ikke bare tråder. Navnet brukes til å finne en synkroniseringsmekanisme i minnet 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. Semaforer med navn kan benyttes av andre programmer som kjører på operativsystemet. Ulemper ved å bruke navnet Å 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. 21

22 Synkroniseringsmekanismer i.net Framework Library 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 class Threadpool class Threadpool gir en enkel måte å synkronisere bakgrunns tråder. Alt vi behøver å gjøre er å henge tråden på en liste. Da vil operativsystemet ta seg av synkroniseringen. 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. 22

23 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. 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. class ReaderWriterLock class ReaderWriterLock synkroniserer tilgangen til en ressurs. Klassen lar flere tråder lese fra en ressurs samtidig. Men hvis en tråd skal skrive til ressursen vil ressursen lukkes slik at bare denne tråden har tilgang til ressursen. 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. 23

24 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. class ManualResetEvent Dette er en annen klasse som kan brukes til synkronisering av tråder som samarbeider. Forskjellen på AutoResetEvent og ManualResetEvent Vi skal se på forskjellen på class AutoResetEvent og class ManualResetEvent. 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. 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. 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. AutoReset: Tillater bare en tråd tilgang til en ressurs om gangen ManualReset: Tillater flere tråder tilgang til en ressurs samtidig. 24

25 Minnebehandling i Windows Minnebehandling omhandler 1. Hvordan allokere minne til programmer. 2. Hvordan frigjøre minne det ikke er bruk for. Hvordan minnet blir behandlet, vil ha innvirkning på datamaskinens ytelse. Minnebehandling er derfor en viktig oppgave på en datamaskin. Problemer med minnebehandling 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. Avvekslende inn og ut lasting av programmer Hvis det ikke er plass til flere programmer i minnet samtidig, kan man benytte avvekslende inn og ut lasting av programmer. Ved avvekslende inn og ut lasting av programmer bytter prosesser på å være i minnet. 1. En prosess lastes inn i minnet og kjører en stund, for deretter å fjernes fra minnet igjen. 2. Deretter lastes en ny prosess inn i minnet som får kjøre en stund. Denne utbyttingen av prosesser i minnet kalles Swapping på engelsk. Swapping er en gammeldags metode som ble benyttet tidligere. 25

26 Moderne minnemodeller De fleste moderne minnemodeller faller i følgende tre kategorier. 1. Flat minnemodell 2. Sideinndelt minnemodell 3. Segmentert minnemodell Flat minnemodell 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. 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. Sideinndelt minnemodell 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 lagringsmedium til minnet. Data behandles som et sett med like store blokker kalt sider (Pages). 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. 26

27 Segmentert minnemodell Segmentert minnemodell likner sideinndelt minnemodell, men sidene varierer i størrelse. Dette gjør segmentert minnemodell mer fleksibelt og effektivt en sideinndeling. Ved segmentering er programmer delt i uavhengig adresserte segmenter. Segmentene er lagret i minnet uten å være sammenhengende. Ulempen med segmentert minnemodell er det er et komplisert system å behandle. Det er vanskelig å programmere det opp og det kan lett oppstå feil. Virtuelt minne 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. Fordelen med en virtuell minnearkitektur er at deler av en prosess kan ligge på harddisken om det ikke er nok plass i minnet. 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. 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. Alle moderne operativsystemer benytter teknikker med virtuelt minne. 27

28 Virtual memory Memory (RAM) Hard drive Virtuell minnearkitektur 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. 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. Sideetterspurt minne Windows støtter sideetterspurt virtuelt minne. 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. 28

29 Minne behandleren 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. 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. Dynamisk minneallokering Dynamisk minneallokering er avsetting av minne til et program som kjører på datamaskinen. Frilageret En del av minnet som er avsatt til et dataprogram kalles for frilageret (the Heap). 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). 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. 29

30 Stakklager 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). I Windows benytter minnebehandleren to stakklagre for hver tråd. En brukerstakk og en kjernestakk. 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. 30

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.

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. Synkronisering 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. Behov for synkronisering Mange prosesser/tråder

Detaljer

Tildeling av minne til prosesser

Tildeling av minne til prosesser Tildeling av minne til prosesser Tildeling av minne til prosesser OS må hele tiden holde rede på hvilke deler av RAM som er ledig/opptatt Når (asynkrone) prosesser/run-time system krever tildeling av en

Detaljer

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

GetMutex(lock) { while(testandset(lock)) {} } En context switch kan ikke ødelegge siden testen og endringen av lock skjer i samme instruksjon. Hardware-støttet Semafor og Implementasjon av semafor i OS til å synkronisere Hardware-støttet alle softwareløsninger innebærer mange instruksjoner i tillegg til busy-waiting, som koster CPU-tid. I praksis

Detaljer

Tildeling av minne til prosesser

Tildeling av minne til prosesser Tildeling av minne til prosesser Tildeling av minne til en prosess Når en ny prosess opprettes har den et krav til hvor mye minne som skal reserveres for prosessen Memory Management System (MMS) i OS må

Detaljer

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

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache Dagens temaer Dagens emner er hentet fra Englander kapittel side 338-35 (gammel utgave). Mer om design av cache. Kort repetisjon er en spesiell type rask hukommelse som inneholder et subsett av det som

Detaljer

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

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgave 1 Hvorfor har vi operativsystemer? Portable programmer Enklere å programmere

Detaljer

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

Concurrency. Lars Vidar Magnusson. September 20, Lars Vidar Magnusson () Forelesning i Operativsystemer September 20, / 17 Concurrency Lars Vidar Magnusson September 20, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 20.09.2011 September 20, 2011 1 / 17 Oversikt Concurrency 1 Concurrency Beskrivelse Prinsipper

Detaljer

Minnehåndtering i operativsystemer

Minnehåndtering i operativsystemer Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet

Detaljer

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

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki. 02.04.2001 Hukommelseshierarki-2 1 Innhold Virtuelt minne Paging i mer detalj Felles rammeverk for hukommelseshierarki 02.04.200 Hukommelseshierarki-2 Virtuelt minne Lagringskapasiteten i RAM må deles mellom flere ulike prosesser: ûoperativsystemet

Detaljer

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

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er: Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som

Detaljer

Minnehåndtering i operativsystemer

Minnehåndtering i operativsystemer Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet

Detaljer

Operativsystemer og grensesnitt

Operativsystemer og grensesnitt Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner

Detaljer

1,r H øgs kolen i Østfol d

1,r H øgs kolen i Østfol d 1,r H øgs kolen i Østfol d EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 2. juni 2010 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: Faglærer: 1. Læreboken "A Practical Guide to Red Hat Linux"

Detaljer

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

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 13.des 2011 Faglig

Detaljer

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

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse. INF 5110, 10/5-2011, Stein Krogdahl NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 10/5-2011, Stein Krogdahl Oversikt over Javas class-filer og byte-kode Disse formatene ble planlagt fra start

Detaljer

Fullstendig ytelsesbehandling

Fullstendig ytelsesbehandling Fullstendig ytelsesbehandling Fungerer også med Windows XP og Windows Vista 2013 Oppgrader og ta ansvar for datamaskinens ytelse med et kraftig og raskt program. Nedlasting og installasjon av Powersuite

Detaljer

Oppgave 1 - Linux kommandolinje (%)

Oppgave 1 - Linux kommandolinje (%) Løsningsforslag Eksamen høst 2017 Operativsystemer Oppgave 1 - Linux kommandolinje (%) a) pwd b) ps Oppgave 2 - Bash-scripting (%) a) ping -i 5 www.hin.no b) ping -c 1 www.hin.no ping -c 1 -t 1 www.hin.no

Detaljer

Scan Secure GTS 5.1 + PAS

Scan Secure GTS 5.1 + PAS Scan Secure GTS 5.1 + PAS Installasjonsmanual For versjon 5.1.7 og nyere Denne installasjonsmanualen er konfidensiell Den er kun ment til bruk for system administrator Den skal ikke benyttes av brukere

Detaljer

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

Innhold. Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer. Prinsipper for synkronisering av felles hukommelse Innhold Introduksjon til parallelle datamaskiner. Ulike typer parallelle arkitekturer Prinsipper for synkronisering av felles hukommelse Multiprosessorer koblet sammen av én buss 02.05 2001 Parallelle

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O) INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen

Detaljer

En datamaskin er gjerne koblet til utstyr som skjerm, tastatur, mus, harddisk, CD/DVD enheter, printer,

En datamaskin er gjerne koblet til utstyr som skjerm, tastatur, mus, harddisk, CD/DVD enheter, printer, Input / output En datamaskin er gjerne koblet til utstyr som skjerm, tastatur, mus, harddisk, CD/DVD enheter, printer, En viktig oppgave for et operativsystem er å kommunisere med enheter tilkoblet datamaskinen.

Detaljer

Scheduling og prosesshåndtering

Scheduling og prosesshåndtering Scheduling og prosesshåndtering Håndtering av prosesser i et OS OS må kontrollere og holde oversikt over alle prosessene som kjører på systemet samtidig Prosesshåndteringen må være: Korrekt Robust Feiltolerant

Detaljer

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

NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse NOTAT (pensum!) Javas klasse-filer, byte-kode og utførelse Dessverre litt få figurer INF 5110, 8/5-2012, Stein Krogdahl Byte-koden for Java og.nett (C#) http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Detaljer

Kort notat om parallellstyring IN147

Kort notat om parallellstyring IN147 Kort notat om parallellstyring IN147 Kristin Skar 18. mai 2001 1 Kommunikasjon mellom prosesser Mange problemer man kommer borti kan kreve en paralell løsning: Man kan ha behov for økt hastighet, og dermed

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 21. desember 2005 Varighet: 3 timer ( 9:00 12:00 ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: FU (1. ING)

Detaljer

Introduksjon til kurset og dets innhold

Introduksjon til kurset og dets innhold til kurset og dets innhold Lars Vidar Magnusson September 4, 2011 Oversikt Forelesninger Kursets fagsider Øvingstimer Kunnskap Ferdigheter 1 Forelesninger Kursets fagsider Øvingstimer Kunnskap Ferdigheter

Detaljer

Litt om Javas class-filer og byte-kode

Litt om Javas class-filer og byte-kode Litt om Javas class-filer og byte-kode INF 5110, 11/5-2010, Stein Krogdahl (Dessverre litt få figurer) Disse formatene ble planlagt fra start som en del av hele Java-ideen Bt Byte-koden gir portabilitet

Detaljer

Operativsystemer for multiple prosessorer

Operativsystemer for multiple prosessorer Operativsystemer for multiple prosessorer I datamaskinenes historie har hele tiden datamaskinenes hastighet økt og økt. Tidligere var den vanligste måten å øke datamaskiners hastighet på, å øke farten

Detaljer

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

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

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

public static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en

Detaljer

Et dataprogram er programkode og programressurser som ligger på en eller flere filer på harddisken.

Et dataprogram er programkode og programressurser som ligger på en eller flere filer på harddisken. Om prosesser Dataprogrammer Et dataprogram er programkode og programressurser som ligger på en eller flere filer på harddisken. Når vi starter et program og det lastes inn i datamaskinens minne får vi

Detaljer

Tildeling av minne til prosesser

Tildeling av minne til prosesser Tildeling av minne til prosesser Tildeling av minne til en prosess Når en prosess opprettes har den et krav til hvor mye minne som skal reserveres for prosessen Memory Management System (MMS) i OS må da:

Detaljer

Definisjon av prosess

Definisjon av prosess Prosesser og tråder Definisjon av prosess Enkel definisjon: En prosess er et program som kjører på datamaskinen Mer presis definisjon: En prosess er en samling av ressurser som er nødvendige for å utføre

Detaljer

TDT4258 Eksamen vår 2013

TDT4258 Eksamen vår 2013 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 TDT4258 Eksamen vår 2013 Løsningsforslag Oppgave 1 Flervalgsoppgave (16 poeng) Du får 2 poeng

Detaljer

Generelt om operativsystemer

Generelt om operativsystemer Generelt om operativsystemer Operativsystemet: Hva og hvorfor Styring av prosessorer (CPU), elektronikk, nettverk og andre ressurser i en datamaskin er komplisert, detaljert og vanskelig. Maskinvare og

Detaljer

Vranglås (Deadlocks) Fag: Operativsystemer

Vranglås (Deadlocks) Fag: Operativsystemer Vranglås (Deadlocks) Fag: Operativsystemer 1 Innhold: Vranglås Vranglås Eksempler: Svensk flagg, Veikryss, spisende filosofer Betingelser for vranglås Metoder for å håndtere vranglås Tilbake til systemer

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 1 TDT4110 Informasjonsteknologi grunnkurs: Kapittel 7 Filer og unntak ( exceptions ) Professor Alf Inge Wang Stipendiat Lars Bungum 2 Læringsmål Mål Introduksjon til filer (som inndata og utdata) Å bruke

Detaljer

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

Kapittel 7, Minne RAM DIMM, SIMM ROM, PROM, EPROM, EEPROM FLASH DIM SUM. Cache Virtuelt minne Kapittel 7, Minne RAM DIMM, SIMM ROM, PROM, EPROM, EEPROM FLASH DIM SUM Cache Virtuelt minne 26.04.2013 Data Cache Les adresse 99 Adresse 99 Prosessor med registre Cache Cache L2 Data Data Les side Adresse

Detaljer

Deadlocks og mer om concurrencymekanismer

Deadlocks og mer om concurrencymekanismer Deadlocks og mer om concurrencymekanismer Lars Vidar Magnusson September 30, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 27.09.2011 September 30, 2011 1 / 17 Oversikt Deadlocks 1 Deadlocks

Detaljer

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

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 Eksamen DAT 103 Kandidatnr.: 145 Oppgave 1 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) A 9) A 10) D Oppgave 2 a) Et OS er den administrerende softwaren i en datamaskin. Den bygger på prinsippene om filhåndtering,

Detaljer

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

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4186 Operativsystemer 14. august 2006, Side 1 av 8 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Løsning på kontinuasjon

Detaljer

INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O) INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 26. mai 25 Varighet: 3 timer ( 9: 2: ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: BADR. ING FU Studiepoeng:

Detaljer

1: Steng ned alle MAB på alle maskiner før dere starter oppdateringen. Dette gjelder også MAB Schedule som dere vil finne på serveren.

1: Steng ned alle MAB på alle maskiner før dere starter oppdateringen. Dette gjelder også MAB Schedule som dere vil finne på serveren. Oppdatering av MAB. Før dere begynner pass på følgende 1: Steng ned alle MAB på alle maskiner før dere starter oppdateringen. Dette gjelder også MAB Schedule som dere vil finne på serveren. 1 2. Viktig

Detaljer

Faglig kontakt under eksamen: Orestis Gkorgkas

Faglig kontakt under eksamen: Orestis Gkorgkas Side 1 av 5 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Faglig kontakt under eksamen:

Detaljer

Installere programvare gjennom Datapennalet - Tilbud

Installere programvare gjennom Datapennalet - Tilbud NTNU Trondheim Norges Teknisk- Naturvitenskapelige Universitet Datapennalet Installere programvare gjennom Datapennalet - Tilbud Påmeldingsinfo Hvordan tjenesten fungerer Krav til utstyr Uttesting av programvareformidling

Detaljer

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer Institutt for Datateknikk og Informasjonsvitenskap Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer Faglig kontakt under eksamen: Magnus Jahre Tlf.: 952 22 309 Eksamensdato: 19. Mai 2014 Eksamenstid

Detaljer

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

EKSAMEN. Operativsystemer. 1. Læreboken A Practical Guide to Red Hat Linux av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater. EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 12. desember 2007 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre

Detaljer

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

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design. Dagens temaer Dagens emner er hentet fra Englander kapittel 11 (side 327-344 ) Repetisjon av viktige emner i CPU-design. Flere teknikker for å øke hastigheten Cache 03.10.03 INF 103 1 Hvordan øke hastigheten

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 29.08.13 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

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

Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Javas klasse-filer, byte-kode og utførelse (og litt om C# sin CIL-kode) Disse foilene er pensum INF 5110, 30/4-2013, Stein Krogdahl Byte-koden for Java og.nett (C#) kan leses her: http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Detaljer

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer

Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer Institutt for Datateknikk og Informasjonsvitenskap Eksamensoppgave i TDT4258 Energieffektive Datamaskinsystemer Faglig kontakt under eksamen: Magnus Jahre Tlf.: 952 22 309 Eksamensdato: 19. Mai 2014 Eksamenstid

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 26. mai 25 Varighet: 3 timer ( 9: 12: ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: BADR 1. ING FU Studiepoeng:

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Michael Welzl E-mail: michawe@ifi.uio.no 8/25/10 inf1060 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

INF1010 Tråder II 6. april 2016

INF1010 Tråder II 6. april 2016 INF1010 Tråder II 6. april 2016 Stein Gjessing Universitetet i Oslo 1 Tråder i Java tråden minrunp class MinRun implements Runable { MinRun(... ) {... } public void run( ) {...... } } //end

Detaljer

Hvordan få tak i din produktnøkkel for Windows

Hvordan få tak i din produktnøkkel for Windows Hvordan få tak i din produktnøkkel for Windows For de fleste var Windows 10 en gratis oppgradering eller noe som kom forhåndsinnstallert på en nyinnkjøpt datamaskin. Om du noengang behøver produktnøkkelen

Detaljer

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, 24.5.2013. Public 2013 Aker Solutions Page 1 of 5

Testrapport. Aker Surveillance. Gruppe 26. Hovedprosjekt ved Høgskolen i Oslo og Akershus. Oslo, 24.5.2013. Public 2013 Aker Solutions Page 1 of 5 Testrapport Aker Surveillance Gruppe 26 Hovedprosjekt ved Høgskolen i Oslo og Akershus Oslo, 24.5.2013 Public 2013 Aker Solutions Page 1 of 5 Innledning I denne rapporten vil vi skrive om testingen som

Detaljer

Installasjon Huldt & Lillevik Lønn. Innhold

Installasjon Huldt & Lillevik Lønn. Innhold Innhold Installasjon Huldt & Lillevik Lønn... 2 Installere Huldt & Lillevik Lønn mot MS SQL Server eller eksisterende MS Express... 2 Krav til maskin og operativsystem... 2 Forberede installasjonen...

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 9/1/2005 inf1060 V05 1 Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen

Detaljer

Huldt & Lillevik Lønn og Personal - System 4. Installasjon. Microsoft SQL 2005 Express. Aditro HRM AS

Huldt & Lillevik Lønn og Personal - System 4. Installasjon. Microsoft SQL 2005 Express. Aditro HRM AS Huldt & Lillevik Lønn og Personal - System 4 Installasjon Microsoft SQL 2005 Express Aditro HRM AS Veiledningen er oppdatert pr. 26.10.2007 Innholdsfortegnelse Installere Microsoft SQL 2005 Express...2

Detaljer

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

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 5 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 17.jan 2013 Faglig

Detaljer

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

oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO oppgavesett 4 INF1060 H16 Hans Petter Taugbøl Kragset Øystein Dale Christian Resell 27. september 2016 Institutt for informatikk, UiO oppgave 1 Hvorfor har vi operativsystemer? 1 oppgave 1 Hvorfor har

Detaljer

Generelt om operativsystemer

Generelt om operativsystemer Generelt om operativsystemer Hva er problemet? Styring av maskinvare og ressurser tilknyttet en datamaskin er komplisert, detaljert og vanskelig Maskinvare, komponenter og programvare endres og forbedres

Detaljer

Del 4 Noen spesielle C-elementer

Del 4 Noen spesielle C-elementer Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include

Detaljer

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 Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer

Huldt & Lillevik Ansattportal. Installere systemet

Huldt & Lillevik Ansattportal. Installere systemet Huldt & Lillevik Ansattportal Installere systemet Innholdsfortegnelse Innholdsfortegnelse Installere Ansattportal... 3 Tekniske krav (Windows og web)... 3 Servere og nettverk... 3.NET Rammeverk 3.5 må

Detaljer

Programmeringsspråket C Del 3

Programmeringsspråket C Del 3 Programmeringsspråket C Del 3 Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no Dynamisk allokering Ofte trenger man å opprette objekter under kjøringen i tillegg til variablene. Standardfunksjonen malloc

Detaljer

Eksempler på ikke-blokkerende systemkall:

Eksempler på ikke-blokkerende systemkall: Blokkerende systemkall Thread-modeller Thread-modeller Blokkerende systemkall Viktigste grunn for tråder: blokkerende I/O forespørsler Applikasjonen som ber om I/O blir satt på vent av operativsystemet

Detaljer

Håndtering av minne i et OS

Håndtering av minne i et OS Håndtering av minne i et OS Hva er det som skal håndteres? Minnehåndtering (memory management) utføres av de delene av systemet som har ansvar for å håndtere maskinens primærminne Primærminnet (aka hovedminne,

Detaljer

Huldt & Lillevik Reise. Oppgradering. Aditro HRM AS

Huldt & Lillevik Reise. Oppgradering. Aditro HRM AS Huldt & Lillevik Reise Oppgradering Aditro HRM AS Oppdatert pr. 11. juni 2007 Innholdsfortegnelse Om denne veiledningen...2 Installere serverfiler... 2 Klargjøre aktuelle arbeidsstasjoner... 4 Første

Detaljer

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

Oppgave 2: Gå til roten (/) av systemet. Finn minst tre forskjellige måter å gå tilbake til hjemmekatalogen din på. Løsningsforslag for oppgavene i operativsystemer, uke 43 (18.10-22.10) På terminalstue: Oppgave 1: List alle filer og kataloger under XVUELQ som har filnavn som begynner på b. OVXVUELQE Oppgave 2: Gå til

Detaljer

Huldt & Lillevik Lønn 5.0. Installere systemet

Huldt & Lillevik Lønn 5.0. Installere systemet Huldt & Lillevik Lønn 5.0 Installere systemet Innholdsfortegnelse Innholdsfortegnelse Installere Lønn 5.0... 3 Krav til maskin og operativsystem... 3 Forberede installasjonen... 3 Installere database...

Detaljer

1. Systemsikkerhet. 1.1. Innledning. Innhold

1. Systemsikkerhet. 1.1. Innledning. Innhold Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Systemsikkerhet Stein Meisingseth 29.08.2005 Lærestoffet er utviklet for faget LO474D Systemsikkerhet 1. Systemsikkerhet Resymé: Denne leksjonen

Detaljer

DAT 103 - kandidatnummer: 142

DAT 103 - kandidatnummer: 142 DAT 103 - kandidatnummer: 142 Oppgave 1: 1) B 2) B 3) A 4) A 5) D 6) C 7) B 8) C 9) A 10) D Oppgave 2: a) Et operativsystem er en samling av systemprogrammer og brukes som et bindeledd mellom brukerprogrammer

Detaljer

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

IN1010 våren Repetisjon av tråder. 15. mai 2018 IN1010 våren 2018 Repetisjon av tråder 15. mai 2018 Stein Gjessing,, Universitetet i Oslo 1 Tråder Datamaskinarkitektur prosessor registre cache 1 cache 2 prosessor registre cache 1 Disk System-bus Minne

Detaljer

For kunder som kjører Huldt & Lillevik Reise 1.3 på Access database

For kunder som kjører Huldt & Lillevik Reise 1.3 på Access database For kunder som kjører Huldt & Lillevik Reise 1.3 på Access database Huldt & Lillevik Reise 1.4 støtter ikke lengre å kjøre mot en Access database. Du må derfor konvertere til MSDE eller SQL Server. Dette

Detaljer

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

Funksjonalitet og oppbygning av et OS (og litt mer om Linux) Funksjonalitet og oppbygning av et OS (og litt mer om Linux) Hovedfunksjoner i et OS OS skal sørge for: Styring av maskinvaren Deling av maskinens ressurser Abstraksjon vekk fra detaljer om maskinvaren

Detaljer

Mamut Enterprise Travel CRM

Mamut Enterprise Travel CRM Mamut Enterprise Travel CRM Tilleggsproduktet Mamut Enterprise Travel CRM gir deg muligheten til å ta med deg arbeidet på en bærbar datamaskin ut av kontoret. Du arbeider da på en kopi av den sentrale

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Repetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Repetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Dagens tema Kjøresystemer (Ghezzi&Jazayeri.6,.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/5 Repetisjon: Statiske språk uten rekursive

Detaljer

Generelt om permanent lagring og filsystemer

Generelt om permanent lagring og filsystemer Generelt om permanent lagring og filsystemer Filsystem Den delen av OS som kontrollerer hvordan data lagres på og hentes frem fra permanente media Data deles opp i individuelle deler, filer, som får hvert

Detaljer

Tekniske krav. Installasjonsrekkefølge. Operativsystem og web-server. Maskinvare. .Net Framework 2.0. ASP.Net AJAX 1.0

Tekniske krav. Installasjonsrekkefølge. Operativsystem og web-server. Maskinvare. .Net Framework 2.0. ASP.Net AJAX 1.0 Tekniske krav Operativsystem og web-server Windows 2000 med IIS 5.0 eller høyere Windows 2000 Server med IIS 5.0 eller høyere Windows XP med IIS 5.0 eller høyere Windows 2003 Server med IIS 6.0 eller høyere

Detaljer

Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7) Repetisjon Språk med rekursjon (C3) og blokker (C4) Statisk link Dynamisk allokering (C5) Parameteroverføring 1/25 Forelesning 11 5.11.2003 Repetisjon:

Detaljer

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

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

Detaljer

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

Fakultet for informasjonsteknologi, Løsning på kontinuasjon i TDT4186 Operativsystemer August 2005, Side 1 av 5 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap Løsning på kontinuasjon

Detaljer

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

Oversikt. Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 1 UNIX. 2 Linux. 3 Process. 4 Process models Oversikt UNIX 1 UNIX Historie Struktur Moderne UNIX systemer Moderne UNIX kernel struktur 2 Linux 3 Process 4 Process models 5 Hvordan kjøre operativsystemet 6 Prosesshåndtering i UNIX SVR4 Lars Vidar

Detaljer

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd J INF1010 Tråder J Marit Nybakken marnybak@ifi.uio.no Motivasjon Til nå har vi kun skrevet programmer der programmet bare var på ett sted i koden til enhver tid (bortsett fra når vi har drevet med GUI,

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1060 Introduksjon til operativsystemer og datakommunikasjon Eksamensdag: 9. desember 2005 Tid for eksamen: 14.30 17.30 Oppgavesettet

Detaljer

Utførelse av programmer, metoder og synlighet av variabler i JSP

Utførelse av programmer, metoder og synlighet av variabler i JSP Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen

Detaljer

Programmeringsspråket C Del 3. Hans Petter Taugbøl Kragset

Programmeringsspråket C Del 3. Hans Petter Taugbøl Kragset Programmeringsspråket C Del 3 Hans Petter Taugbøl Kragset Repetisjon I C er ikke array en egen type, men variabler kan være arrayer! Pekere C-strenger Veldig likt Java på mange måter Programmering er fortsatt

Detaljer

Kjenn din PC (Windows7, Vista)

Kjenn din PC (Windows7, Vista) Kjenn din PC (Windows7, Vista) Michael Moncrieff, Kristoffer Kjelvik, Ola Johannessen og Jarle Bergersen Denne delen handler om hva man kan finne ut om datamaskinens hardware fra operativsystemet og tilleggsprogrammer.

Detaljer

Obligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006

Obligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006 Obligatorisk oppgave nr. 3 (av 4) i INF1000, våren 2006 Advarsel Etter forelesningen 6. mars har vi gjennomgått alt stoffet som trengs for å løse oppgaven. Du kan imidlertid godt starte arbeidet allerede

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

Detaljer

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

Læringsmål og pensum. Oversikt. Systemprogramvare Operativsystemer Drivere og hjelpeprogrammer. To hovedtyper programvare 1 2 Læringsmål og pensum TDT4105 Informasjonsteknologi grunnkurs: Uke 36 programvare Førsteamanuensis Alf Inge Wang Læringsmål Forstå hva systemprogramvare og applikasjonsprogramvare er Forstå hvordan

Detaljer

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 Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer

Huldt & Lillevik Reise. Oppgradering. Aditro HRM AS

Huldt & Lillevik Reise. Oppgradering. Aditro HRM AS Huldt & Lillevik Reise Oppgradering Aditro HRM AS Oppdatert pr. 29. mai 2009 Innholdsfortegnelse Om denne veiledningen...2 Installere serverfiler... 2 Oppgradere arbeidsstasjoner ved automatisk oppgradering...

Detaljer

Huldt & Lillevik Lønn og Personal - System 4. Installasjon. - første gang. Med MS SQL Server eller eksisterende MS Express.

Huldt & Lillevik Lønn og Personal - System 4. Installasjon. - første gang. Med MS SQL Server eller eksisterende MS Express. Huldt & Lillevik Lønn og Personal - System 4 Installasjon - første gang Med MS SQL Server eller eksisterende MS Express Aditro HRM AS Veiledningen er oppdatert pr. 06.01.2010 Innholdsfortegnelse Installere

Detaljer

Internminnet. Håkon Tolsby. 22.09.2014 Håkon Tolsby

Internminnet. Håkon Tolsby. 22.09.2014 Håkon Tolsby Internminnet Håkon Tolsby 22.09.2014 Håkon Tolsby 1 Innhold: Internminnet RAM DRAM - SDRAM - DDR (2og3) ROM Cache-minne 22.09.2014 Håkon Tolsby 2 Internminnet Minnebrikkene som finnes på hovedkortet. Vi

Detaljer

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 Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer