Minnehåndtering i operativsystemer

Like dokumenter
Minnehåndtering i operativsystemer

Håndtering av minne i et OS

Tildeling av minne til prosesser

Tildeling av minne til prosesser

Tildeling av minne til prosesser

Generelt om operativsystemer

Generelt om operativsystemer

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

Operativsystemer og grensesnitt

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

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

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

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

Definisjon av prosess

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

Generelt om permanent lagring og filsystemer

Hvorfor lære om maskinvare*?

Scheduling og prosesshåndtering

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

Datamaskinens oppbygning

Skisse til løsning for eksamensoppgave i TDT4186 Operativsystemer

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

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

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

OPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?

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

Overordnet maskinarkitektur. Maskinarkitektur zoomet inn. I CPU: Kontrollenheten (CU) IT1101 Informatikk basisfag, dobbeltime 11/9

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

Tonje Thøgersen, Daniel Svensen Sundell, Henrik Smedstuen

Dagens tema. Flere teknikker for å øke hastigheten

Oppgave 1 - Linux kommandolinje (%)

Clock speed 3.20GHz Bus Speed 800MHz L2 Cache 4MB 2 Cores Ikke Hyperthreading 64 BIT

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

UNIVERSITETET I OSLO

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Resymé: I denne leksjonen vil du få en oversikt over hva et operativsystem er for noe, hvordan det er bygget opp og hvordan det virker.

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

Del 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Læringsmål og pensum. v=nkiu9yen5nc

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

HØGSKOLEN I SØR-TRØNDELAG

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

2 Om statiske variable/konstanter og statiske metoder.

EKSAMEN. Operativsystemer og nettverk

Datamaskinens oppbygning og virkemåte

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.

TDT4110 Informasjonsteknologi grunnkurs: Kapittel 1 Introduksjon til Programmering og Python. Professor Alf Inge Wang

Kapittel 1: Datamaskiner og programmeringsspråk

Internminnet. Håkon Tolsby Håkon Tolsby

INF2270. Minnehierarki

Internminnet. Håkon Tolsby Håkon Tolsby

Seksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.

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

Tema: Oversikt over ansatt, rom, datamaskin, skjerm, software, hardvare og tilkoblingsanlegg.

Kapittel 9: Følge Instruksjoner Prinsipper for Datamaskinens Virkemåte

Prosessoren. Bakgrunnen Innhold LMC. Assemblerkode Oppsummering instruksjonene [Englander kap 6] Hva inneholder den? Hvordan utføres instruksjonene?

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

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

Filsystemet fra innsiden

HØGSKOLEN I SØR-TRØNDELAG

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

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

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

HØGSKOLEN I SØR-TRØNDELAG

1. Introduksjon til operativsystemer

Løsningsforslag for TDT4186 Operativsystemer

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

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

2 Om statiske variable/konstanter og statiske metoder.

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

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

IN1020. Minnehierarki

Vi anbefaler at du setter deg litt inn i maskinen på forhånd. Det er en DELL Optiplex 620.

1. Introduksjon til operativsystemer

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

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Oppgave lab. 2. Hvor mye Internminne har den? - Maskinen har 2GB internminne.

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Oversikt. Informatikk. INF1000: Grunnkurs i objektorientert programmering. Utenom INF1000 Informasjon & hjelp

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

IT1101 Informatikk basisfag, dobbeltime 18/9. Kommunikasjon med perifere enheter. Kontrollere. Kontrollere (2) I/O-instruksjoner

UNIVERSITETET I OSLO

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

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

MAT-INF 1100: Obligatorisk oppgave 1

HØGSKOLEN I SØR-TRØNDELAG

Faglig kontakt under eksamen: Orestis Gkorgkas

OPPGAVESETT 7 OBJEKTER OG REFERANSER

Transkript:

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 må beskyttes, men samtidig kunne deles Minnehåndtering utføres av en egen del av OS som har ansvaret for maskinens primærminne: Memory Management System (MMS)

Hva er det som skal håndteres? MMS håndterer bare maskinens primærminne Aka RAM, (hoved)minne, (main) memory, internminne RAM er direkte tilgjengelig for CPU CPU leser instruksjonene som skal utføres fra RAM Alle data som CPU jobber med leses fra/lagres i RAM Primærminnet inkluderer ikke cache, ROM, grafikk- RAM, RAM-disker, cache-ram i disk-kontrollere etc.

Hvem gjør minnehåndteringen? Operativsystemets programvare (MMS) håndterer fordelingen av minne mellom prosesser Maskinvare for minneaddressering internt i CPU (memory management unit / MMU) sørger for riktig lesing/skriving i RAM Run-time systemer (f.eks. JVM) holder rede på variablene som brukes i et program som er skrevet i høynivå programmeringsspråk (f.eks. Java).

Hvorfor er minnehåndtering viktig? Uten god minnehåndtering virker ikke maskinen: Feil i minnet gir bugs som er umulige å finne Dårlig minnehåndtering gir en treg maskin Usikre minnesystemer åpner for virus og malware Alt som en programmerer gjør handler om minnehåndtering både koden og dataene ligger i RAM under kjøring av programmet Moderne OS har derfor svært komplekse og kompliserte systemer for å håndtere minnet

Hovedoppgaver i minnehåndtering Holde rede på status (tildelt/ledig) for minnecellene Fordele RAM mellom prosessene: Hvem skal få tildelt minne? Når skal en prosess få tildelt minne? Hvor mye skal en prosess tillates å få? Finne passende deler av minnet ved tildeling Frigjøre minne som ikke lenger er i bruk Beskyttelse og deling av minne mellom prosesser

Minnehåndtering: Noen vanlige begreper Overflow: Variabel får for høy verdi, ikke nok plass i tildelt minne Memory leak: Minne som ikke lenger brukes frigis ikke til gjenbruk, kan spise opp all tilgjengelig RAM Segmentation fault: En prosess prøver å lese/skrive minne som den ikke har tilgang til. OS må ikke tillate dette og bør terminere prosessen. Buffer overflow: Prosess har fylt opp tildelt minneområde, men fortsetter å skrive utenfor i områder som tilhører andre prosesser eller OS selv(!). Kan gir feil/system crash og gjør systemet sårbart.

Forenkling av minnehåndtering * Bruker en lineær modell for å beskrive RAM Antar at hele primærhukommelsen ligger som en endimensjonal tabell en søyle av minneceller Antar at vi kan adressere RAM omtrent som vi indekserer en tabell/array i f.eks. Java, fra lave til høye adresser Antar at prosesser får tildelt minneområder som er en sammenhengende del av denne RAM-tabellen * Vi gjør dette for lettere å kunne forstå prinsippene. En godt fungerende MMS er mye mer komplisert både mht. algoritmer og håndteringen av maskinvare.

Minneområdet til en prosess Anta at hver prosess får tildelt bare ett sammenhengende minneområde i RAM For hver prosess som kjører vil OS lagre informasjon om minneområdet i registre i CPU: En segmentindeks, angir start på minneområdet En grense, angir størrelse på minneområdet

Beskyttelse av minneområder OS bruker verdiene i segment- og grenseregistre for en prosess til å beskytte minnet: Prosessen nektes tilgang til RAM utenfor eget område Kan bare gis tilgang hvis andre prosesser tilllater det Registrene er beskyttet * En prosess kan ikke endre data om eget minneområde Kun OS har tilgang til segment- og grenseregistrene * : Tidlige Microsoft-systemer hadde ikke beskyttelse av minneregistrene mye systemfeil

Deling av minne To muligheter for deling av minne hvis hver prosess bare har ett sammenhengende minneområde: 1) Delvis overlappende minneområder: Prosessene som skal dele minne har hver et underområde av RAM som er felles 2) Helt overlappende minneområder: Prossessene som skal dele minne tildeles det samme minneområdet og deler hele dette området

Delvis overlappende minneområder Fungerer bare for to prosesser Ved tre eller flere prosesser må minst en av prosessene dele hele sitt minneområde Brukes ikke i praksis

Helt overlappende minneområder Prosessene deler hele minneområdet Prosessene har identisk innhold i grense- og segmentregistre Brukes bl.a. for alle trådene i en prosess

Deling av minnesegmenter De fleste OS bruker segmentert minnehåndtering Hver prosess kan tildeles flere mindre minneområder Hvert minneområde kalles for et minnesegment Segmentene er sammenhengende, mens hele minneområdet til prosessen er spredt i RAM Et eller flere av de tildelte segmentene kan deles med flere prosesser, mens andre segmenter kan beskyttes mot lesing og/eller skriving