Håndtering av minne i et OS



Like dokumenter
Minnehåndtering i operativsystemer

Minnehåndtering i operativsystemer

Tildeling av minne til prosesser

Tildeling av minne til prosesser

Generelt om operativsystemer

Tildeling av minne til prosesser

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

Operativsystemer og grensesnitt

Generelt om operativsystemer

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

1. Introduksjon til operativsystemer

1. Introduksjon til operativsystemer

Datamaskinens oppbygning og virkemåte

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

Definisjon av prosess

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

Datamaskinens oppbygning

Oppsummering av digitalteknikkdelen

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Introduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen

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

Tonje Thøgersen, Daniel Svensen Sundell, Henrik Smedstuen

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

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

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

Kapittel 1: Datamaskiner og programmeringsspråk

Hvorfor lære om maskinvare*?

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

Generelt om permanent lagring og filsystemer

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.

Oppgave 1 & 2: Først gå inn på «Min Datamaskin/ Computer» Høyreklikk på vinduet uten å være nær noen dokumenter o.l.

Internminnet. Håkon Tolsby Håkon Tolsby

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

VMware ESX og krav til hardware

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

Automatisering av datasenteret

Scheduling og prosesshåndtering

Digital logic level: Oppsummering

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

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

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

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

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

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

TDT4160 AUGUST, 2008, 09:00 13:00

Kjenn din PC (Windows7)

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

2 Om statiske variable/konstanter og statiske metoder.

Innhold Forord...3 Begreper og akronymer...4 Systembeskrivelse...5 Generelt...5 Funksjonelle krav...7 Ikke-Funksjonelle krav...9 Prioritering...

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

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

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

Litt om Javas class-filer og byte-kode

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

FIRE EFFEKTIVE TILTAK MOT DATAANGREP

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

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

Internminnet. Håkon Tolsby Håkon Tolsby

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

TDT4160 Datamaskiner Grunnkurs Gunnar Tufte

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

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

OPPGAVESETT 1 INTRO. Delta på andre forelesning i emnet, der hovedkomponentene til datamaskinen blir introdusert. Ta notater!

En oppsummering (og litt som står igjen)

Kapittel 4: Microarchitecture level

Agenda. Hva er cybersikkerhet? Hackeren, trusselbilde og sårbarheter Eksempler på angrep: masseproduserte og målrettede.

Eksterne minnekort Brukerhåndbok

Systemutvikling (Software Engineering) TDT 4110 IT Grunnkurs Professor Guttorm Sindre

INF2270. Minnehierarki

I dag. Minne typar Minne mot bussar (fysisk grensesnitt generelt) Meir buss

Eksterne minnekort Brukerhåndbok

INF2270. Input / Output (I/O)

ephorte krav til teknisk plattform

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

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

INF109 - Uke 1b

2 Om statiske variable/konstanter og statiske metoder.

Oppsummering Assemblerkode Hopp Multiplikasjon Kode og data Array Oppsummering

Oppgave 1 - Linux kommandolinje (%)

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

Hvorfor lære om maskinvaren*?

Del 2. Bak skallet. Avsette minne til et spesifikt OS Teste harddisk under oppstart Sette opp system logger

TDT4258 Eksamen vår 2013

Dagens tema. Flere teknikker for å øke hastigheten

UNIVERSITETET I OSLO

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

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

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

EKSAMEN I TDT4160 DATAMASKINER GRUNNKURS

Forelesning 5. Diverse komponenter/større system

Oppgave 1 - Java og prosesser (20%)

Maskinvaredelen av INF 103: oversikt og innhold (1)

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

Minnebehandling. Skrive ut Skriverminne. Bruke farger. Papirhåndtering. Vedlikehold. Problemløsing. Administrasjon.

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.

TDT4160 DATAMASKINER GRUNNKURS EKSAMEN

Setup programmet brukes til å endre konfigurasjonen av BIOS og til å vise resultatene fra

6105 Windows Server og datanett

Transkript:

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, internminne, RAM eller bare minne ) er den eneste delen av maskinen som 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ærminne inkluderer ikke CPU-cache, ROM, grafikk- RAM, RAM-disker, cache-ram i disk-kontrollere etc. Primærminne er en begrenset ressurs som må fordeles til prosessene som OS-et håndterer

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

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

Noen mulige feil i minnehåndtering Overflow (for store tall): Må ikke skrive utenfor tallets tildelte minneområde. Memory leak (minnelekkasje): Minne som ikke lenger brukes frigis ikke til gjenbruk (av program eller OS), spiser opp all RAM. Segmentation fault: En prosess prøver å lese/skrive minne som det ikke har tilgang til. OS må ikke tillate dette og bør/skal 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(!). Gir feil/system crash og gjør systemet sårbart.

Hovedoppgaver i minnehåndtering Holde rede på status (tildelt eller ledig) for alle minnecellene Bestemme hvordan RAM skal fordeles mellom prosesser som konkurrerer om å få tildelt minne: 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

Noen forenklinger Ser (stort sett) bare på minnehåndtering på OS-nivå: Ikke detaljer om (Intel) CPU-adressering, binær tallregning, MMU, relokasjon av prosesser etc. * Bruker (for det meste) 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 Java, fra lave til høye adresser Antar at prosesser får tildelt minneområder som er en sammenhengende del av RAM-tabellen. * Læreboken forteller mer om adressering av RAM og minnehåndtering i hardware

Beskyttelse av minneområder For hver prosess lagrer OS'et info. om minneområdet i registre i CPU når prosessen kjører: En segment-indeks, angir start på minneområdet En grense, angir størrelse på minneområdet Gir relokerbar kode med relativ adressering, som er uavhengig av hvor i RAM minneområdet faktisk er plassert OS'et bruker verdiene i registrene til å nekte prosessene tilgang til RAM utenfor deres eget minneområdene CPU-registre er beskyttet i user mode * Prosessene kan ikke endre data om eget minneområde Kun OS har tilgang til registrene * : MS-DOS hadde ikke beskyttelse av minneområdedataene mye systemfeil

Deling av minne mellom flere prosesser Delvis overlappende minneområder: Brukes ikke: Fungerer bare for to prosesser, hvis hver prosess kun har ett sammenhengende minneområde Ved tre eller flere prosesser må minst en av prosessene dele hele sitt minneområde med andre Helt overlappende minneområder: Prosessene deler hele minneområdene de er tildelt Prosessene har identisk innhold i grense- og segmentregistrene Brukes bl.a.for alle trådene i en prosess Bedre løsning (segmentert minnehåndtering): Prosessene kan tildeles flere minneområder Et eller flere av de tildelte minneområdene kan deles