Operativsystem - Minneshantering I

Relevanta dokument
Fö 8: Operativsystem II. Minneshantering. Minneshantering (1) Minneshantering (2) Minneshantering och Virtuelltminne.

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

Lathund, procent med bråk, åk 8

Minneshantering - grunderna. Föreläsning 2

Handledning för digitala verktyg Talsyntes och rättstavningsprogram. Vital, StavaRex och SpellRight

Avsikt På ett lekfullt sätt färdighetsträna, utveckla elevers känsla för hur vårt talsystem är uppbyggt samt hitta mönster som uppkommer.

Individuellt Mjukvaruutvecklingsprojekt

4-6 Trianglar Namn:..

SOLCELLSBELYSNING. En praktisk guide. Råd & Tips SOLENERGI LADDA MED. Praktiska SÅ TAR DU BÄST HAND OM DIN SOLCELLSPRODUKT

Väga paket och jämföra priser

Det flippade klassrummet hur uppfattas det av eleverna?

4 grundregler. Minneshantering. Problemet. Windows minkrav

Programmera en NXT Robot

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

Presentationsövningar

Sammanfatta era aktiviteter och effekten av dem i rutorna under punkt 1 på arbetsbladet.

Uppdragsbeskrivning. Digital Skyltning. Version 1.0 Mats Persson. Distributionslista. Namn Åtgärd Info.

Anna Kinberg Batra Inledningsanförande 15 oktober 2015

Syftet med en personlig handlingsplan

Efter att du har installerat ExyPlus Office med tillhörande kartpaket börjar du med att göra följande inställningar:

Modul 6: Integraler och tillämpningar

Vi skall skriva uppsats

Välkommen till Arbetsförmedlingen! Information till dig som är arbetssökande

Flera processer. Minneshantering. Trashing kan uppstå ändå. Ersätta globalt

Visualisering av golfboende

DEMOKRATI 3 DEMOKRATINS VILLKOR

Manual fö r kursspecifika ansö kningsförmula r Fölkhö gsköla.nu

konstanterna a och b så att ekvationssystemet x 2y = 1 2x + ay = b 2 a b

Två konstiga klockor

Praktisk programmering

Utveckla arbetsmiljö och verksamhet genom samverkan

Tränarguide del 1. Mattelek.

Idag: Dataabstraktion

Systematiskt kvalitetsarbete

Utvärdering APL frågor till praktikant

============================================================================

Föreläsning 5: Rekursion

Instruktioner för beställning och kontoadministration för abonnenter av inlästa läromedel

Lathund till Annonsportalen

Dagens OS. Unix, Linux och Windows. Unix. Unix. En översikt av dagens OS Titt på hur de gör. Många varianter Mycket gemensamt. En del som skiljer

Träning i bevisföring

Manual Gamla Akka-plattan

Scoot Boot - frågor & svar

Tillämpad UNIX. Laborations-PM Christian von Schultz, Programpaket och processhantering

MR 5 FRÅN FÖRBUD TILL RÄTTIGHET WORKSHOP I KLASSRUMMET TEMA: MÄNSKLIGA RÄTTIGHETER (MR)

Intervjumall. Datum: Intervjuare: Kandidatens namn: Kandidatens uppgifter: Växel: (5)

Manual för Min sida 1/ rev

4-3 Vinklar Namn: Inledning. Vad är en vinkel?

Rätt till heltid i Stockholms stad Skrivelse från Sara Pettigrew och Åsa Jernberg (båda MP)

Operativsystem - Processer I

Du ska nu skapa ett litet program som skriver ut Hello World.

BRUK. bedömning reflektion utveckling kvalitet

Klasser och objekt i C#

Minnet från processorns sida Datorteknik

P-02/03 säsongen 2016

Kvalitetsrapport Så här går det

Kampanj kommer från det franska ordet campagne och innebär att man under en tidsbegränsad period bedriver en viss verksamhet.

När jag har arbetat klart med det här området ska jag:

Algebra, polynom & andragradsekvationer en pampig rubrik på ett annars relativt obetydligt dokument

Snabbslumpade uppgifter från flera moment.

Nedfrysning av spermier. Information om hur det går till att lämna och frysa ned spermier.

08/11/13. Databasteknik och informationssystem DD1370 F3. Ett urval ur databasen bestäms av en SQL-fråga. Påminnelse: Deadline på tisdag

Texturbild. Lagerpaletten du kommer arbeta med ser du till höger. 1. Kopiera bakgrunden till ett nytt lager och gör den svartvit.

Konsten att multiplicera (stora) heltal

DOP-matematik Copyright Tord Persson. Bråktal Läs av vilka tal på tallinjen, som pilarna pekar på. Uppgift nr

Mål Blå kurs Röd kurs

Hävarmen. Peter Kock

Virkade tofflor. Storlek & By: Pratamedrut. pratamedrut.se/blog/virkade tofflor 1

Laborativ matematik som bedömningsform. Per Berggren och Maria Lindroth

Trepunkts rullbälten i en 68 cab.

Säkerhet. De onda. Vilka är farorna?

Operativsystem - input/output, skydd, virtualisering

Guide för att hitta markavvattningssamfälligheter och täckdikningsplaner

David Wessman, Lund, 30 oktober 2014 Statistisk Termodynamik - Kapitel 5. Sammanfattning av Gunnar Ohléns bok Statistisk Termodynamik.

Pesach Laksman är lärarutbildare i matematik och matematikdidaktik vid Malmö högskola.

KOMMUNICERA. och nå dina mål. Lärandeförvaltningens kommunikationsstrategi

Bygg ditt eget dataspel på sommarlovet!

Utvärdering av informationsinsatserna. Konflikten inom Väg och Ban Maj 2007

Projekt benböj på olika belastningar med olika lång vila

Handbok Blinken. Danny Allen Översättare: Stefan Asserhäll

Enkätresultat för elever i år 2 i Nösnäsgymnasiet 2 i Stenungsund våren 2014

Webb-bidrag. Sök bidrag på webben Gäller från

Introduktion. Den objektorienterade modellen Grundläggande begrepp Klass Klassen som abstraktion

Historisk tillbakablick

Boken om Teknik. Boken om Teknik är en grundbok i Teknik för åk 4 6.

Enkätresultat för elever i år 2 i Praktiska Skövde i Praktiska Sverige AB hösten 2014

912 Läsförståelse och matematik behöver man lära sig läsa matematik?

Enkätresultat för elever i år 2 i Mega Musik gymnasium hösten Antal elever: 47 Antal svarande: 46 Svarsfrekvens: 98% Klasser: MM13

Administration Excelimport

Arbeta bäst där du är Dialect Unified Mi

Ha det kul med att förmedla och utveckla ett knepigt område!

Sammanfattning på lättläst svenska

Idag. Hur vet vi att vår databas är tillräckligt bra?

Möte om busstrafiken i Grebo

Skapa en rapport med snygg formatering, rubriker, sidnummer och innehållsförteckning

ELEV- HANDLEDNING (Ansökan via webben)

Varför är det så viktigt hur vi bedömer?! Christian Lundahl!

Föräldrar i Skola24. Schema

Enkätresultat för elever i åk 9 i Borås Kristna Skola i Borås hösten Antal elever: 20 Antal svarande: 19 Svarsfrekvens: 95% Klasser: Klass 9

Transkript:

Operativsystem - Minneshantering I Mats Björkman 2016-02-11

Översikt Grundläggande minneshantering (Föreläsning MM I, idag) Problem inom minneshantering Minneshantering och multitasking Hantering av ledigt minne Virtuellt minne (Föreläsning MM II) Paging (sidhantering) Sidfel Sidutbytesalgoritmer Segmentering Operativsystem, Mats Björkman, MDH 2

Lärandemål Varför minneshantering? Logisk och fysisk adressrymd Grundläggande minneshantering Operativsystem, Mats Björkman, MDH 3

Minneshierarki SNABBARE REGS CACHE PRIMÄRMINNE DISK STÖRRE 4

Minneshierarki DYRARE REGS CACHE PRIMÄRMINNE DISK BILLIGARE 5

Processens adressrymd 0 00008abe <_E>: 8abe: 79 00 00 05 79 00 00 05 mov.w #0x5 8ac2: 55 02 55 02 bsr.+2 (8ac6) Code Data P1 00008ac4 <.ef>: 8ac4: 54 70 54 70 rts 00008ac6 <_E_sub>: 8ac6: 19 11 19 11 sub.w r1,r1 8ac8: 1d 01 1d 01 cmp.w r0,r1 8aca: 4e 20 4e 20 bgt.+32 (8aec) 00008dea < data>: 8dea: ff ff ff ff Stack PROCESS m 00008dec <_ExecTask>:... 00008dee <_ticks>: 8dee: ff ff ff ff 00008df0 <_x>:... 00008df2 <_y>: 8df2: 8d 44 8d 44 Operativsystem, Mats Björkman, MDH 6

System med en process i taget (ingen multiprogrammering) User Program 0xFFF Operating System in ROM Device drivers in ROM BIOS User Program Operating System in RAM 0x00 User Program Operating System in RAM Operativsystem, Mats Björkman, MDH 7

En process i taget Kan använda fasta adresser, exv. att exekveringen alltid börjar på adress 0 Enkel kompilering, enkel minneshantering Men, endast 1 process och helt statiskt Operativsystem, Mats Björkman, MDH 8

Flera processer samtidigt? Om vi vill åstadkomma multiprogrammering behöver vi kunna hantera flera processers minne samtidigt Operativsystem, Mats Björkman, MDH 9

Hur hanterar vi flera processers adressrymder samtidigt? 10

Grundläggande problem: Skydd Vi måste skydda processers minne från varandra Vi måste även skydda operativsystemets minne från felfungerande eller illasinnade processer Operativsystem, Mats Björkman, MDH 11

Grundläggande problem: Effektivitet Om vi implementerar minnesskydd så måste kontrollen av skyddet vara effektiv Hårdvarustöd blir i princip ett krav Tänk er skydd utan hårdvarustöd Operativsystem, Mats Björkman, MDH 12

System med multipla processer - En tidig lösning IBM 360-systemet (1964 --) Process 1 KEY Implementerade multipla processer genom hårdvarustöd CPU 0x100000 Tot: 1MB Process 2 KEY Key for process SR Operativsystem, Mats Björkman, MDH CPU has 512 4-bit key registers 0x00 Memory divided into 512 2k blocks 13

Varför fungerade IBM 360? Nyckeltabellen kunde inte ändras av användarprocessen Statusregistret kunde inte ändras av användarprocessen OS:et tilldelade processen en nyckel, och lagrade samma nyckel för den processens block i tabellen Operativsystem, Mats Björkman, MDH 14

Varför fungerade IBM 360? Vid minnesaccesser gjordes automatiskt i hårdvaran en jämförelse mellan nyckeln för sidan och processens nyckel i statusregistret Om inte lika, utlöstes en TRAP Operativsystem, Mats Björkman, MDH 15

Relokering i OS 360 För att kunna ha mer än en process i minnet samtidigt, implementerade OS 360 en form av relokering vid laddningen (mer strax) Begränsning: Nyckelns längd (4 bitar) begränsade multiprogrammeringen till max 16 samtidiga processer Operativsystem, Mats Björkman, MDH 16

Relokering generellt Om ett program skall flyttas i minnet så måste ibland programmet ändras Att flytta ett program i minnet kallas relokering (relocation) Operativsystem, Mats Björkman, MDH 17

Hopproblemet Key for process A Key for process B 0 : : ADD 28 MOV 24 20 16 12 8 4 JMP 24 0 16380 0 : : CMP 28 24 20 16 12 8 4 JMP 28 0 16380 KABOOM!!! 0 : : CMP 16412 16408 16404 16400 16396 16392 16388 JMP 28 16384 0 : : ADD 28 MOV 24 20 16 12 8 4 JMP 24 0 32764 16380 Operativsystem, Mats Björkman, MDH 18

Hopproblemet - lösning För att lösa hopproblemet här behöver vi ändra adresserna i den process som flyttas Den flyttade processens adresser måste peka till rätt ställe i minnet Operativsystem, Mats Björkman, MDH 19

Hopproblemet Key for process A Key for process B 0 : : ADD 28 MOV 24 20 16 12 8 4 JMP 24 0 16380 Operativsystem, Mats Björkman, MDH 0 : : CMP 28 24 20 16 12 8 4 JMP 28 0 28 måste i detta fall ersättas med 16412 16380 KABOOM!!! 0 : : CMP 16412 16408 16404 16400 16396 16392 16388 JMP 28 16384 0 : : ADD 28 MOV 24 20 16 12 8 4 JMP 24 0 32764 16380 20

Önskade egenskaper för minnet Transparent relokering (flytt) av program Minnesskydd Stöd för ett stort antal processer För att åstadkomma multiprogrammering Även för att komma förbi det fysiska primärminnets begränsningar Operativsystem, Mats Björkman, MDH 21

Önskade egenskaper för minnet Lösningar: Minnesabstraktion: Logisk adressrymd Swappa till sekundärminne (disk) Virtuellt minne (ämnet för nästa föreläsning) Operativsystem, Mats Björkman, MDH 22

Logisk adressrymd Minnesabstraktion Program använder inte fysiska adresser, utan logiska Varje program har sin egen logiska adressrymd Varje process startar exv. vid logisk adress 0x00 Förutsätter möjligheten att relokera Operativsystem, Mats Björkman, MDH 23

Logisk adressrymd I det tidigare exemplet ses exv. adress 28 i process B som en logisk adress Förr eller senare behöver den dock översättas (bindas) till en fysisk adress (i vårt fall 16412) Operativsystem, Mats Björkman, MDH 24

Bindning av adresser Översättning från logiska till fysiska adresser Bindning kan ske vid: Kompilering Laddning Exekvering Operativsystem, Mats Björkman, MDH 25

Bindning av adresser Översättning från logiska till fysiska adresser Bindning kan ske vid: Kompilering Laddning Ersätt symboliska adresser (labels) med fysiska adresser Är relokering möjlig med denna approach? Exekvering Operativsystem, Mats Björkman, MDH 26

Bindning av adresser Översättning från logiska till fysiska adresser Bindning kan ske vid: Kompilering Laddning Exekvering Ersätt logiska adresser med fysiska adresser i den laddade koden Är relokering möjlig med denna approach? Operativsystem, Mats Björkman, MDH 27

Statisk relokering Användes i IBM 360 Avhjälper hopproblemet Vid laddning allokeras minnesblock Koden kopieras från fil till dessa block Alla adresser i koden ersätts med fysiska adresser beräknade för de specifika block som allokerats Operativsystem, Mats Björkman, MDH 28

Statisk relokering: nackdelar Långsam laddning, statiskt Laddaren måste kunna veta exakt vilka värden som kommer att användas som adresser Svårt eller omöjligt att göra vissa smarta saker, exv. att beräkna adressen utgående från värden som inte lagrats som adresser Operativsystem, Mats Björkman, MDH 29

Bindning av adresser Översättning från logiska till fysiska adresser Bindning kan ske vid: Kompilering Laddning Exekvering Översätt logiska adresser till fysiska i hårdvaran under exekvering Operativsystem, Mats Björkman, MDH 30

Exempel: Bas & Limit-register Först använt i superdatorn CDC 6600, och i Intel 8088 (Första PC -processorn) Fysisk adress = adressen i koden + Base Reg. Limit-registret ger minnesskydd Process 1 Limit Base Process 2 Limit Base 16384 Operativsystem, Mats Björkman, MDH 0 1000 16384 CPU Limit Base 1000 16384 Process 2 exekverar 0 : : CMP 16412 16408 16404 16400 16396 16392 16388 JMP 28 16384 0 : : ADD 28 MOV 24 20 16 12 8 4 JMP 24 0 17380 16380 31

Bas- och Limit-register Bas- och Limit-registren pekar ut vilket segment av adressrymden som den exekverande processen får accessa Registren kan inte ändras av processen Operativsystem, Mats Björkman, MDH 32

Bas- och Limit-register Effektivitetsproblem bas-register: Våra fysiska adresser är summan av basadressen och den logiska adressen För varje minnesaccess krävs alltså en aritmetisk operation (addition) Operativsystem, Mats Björkman, MDH 33

Bas- och Limit-register Effektivitetsproblem limit-register: Vi måste gissa hur mycket dynamiskt data som behövs och hur stor stack som krävs för att komma fram till ett bra värde för limit-registret Operativsystem, Mats Björkman, MDH 34

Operativsystem, Mats Björkman, MDH 35

Processens storlek är dynamisk Allokering av minne för dynamiska data ( heap ) Stackar som växer (och krymper) Detta gör att OS:et måste hålla reda på hur mycket minne som processen använder Operativsystem, Mats Björkman, MDH 36

Processer i minnet: exempel Growing area Heap Allokera extra utrymme för: Stack (växer uppåt) Heap (växer nedåt) Size of Proc Growing area Stack Proc2 Heap Stack Size of Proc Proc1 OS 37

Stöd för ett stort antal processer: swapping Swappa ut hela processen på disk när den inte kör Variable-sized processes Proc1 P3 D I S K Proc2 Empty OS M E M O R Y Swap-villkor: Processen får inte vänta på interrupts från exv. I/O 38

Swapping utan relokerbar kod! PROC A PROC B PROC C PROC A PROC B PROC C OS OS OS OS OS OS Time 39

Swapping, multipla processer PROC C PROC C PROC C PROC C PROC C PROC B PROC B PROC B PROC B PROC A PROC A PROC A PROC D PROC D PROC D OS OS OS OS OS OS PROC C PROC D PROC A PROC A PROC B Time 40

Hantering av ledigt minne Swapping riskerar att introducera hål i minnet mellan processer Allokeringarna behöver hanteras på något sätt: Bitmap Länkad lista Operativsystem, Mats Björkman, MDH 41

Hantering av ledigt minne: Bitmap-exempel Minnets storlek: 32 sidor A 5 6 4 6 3 B C D E 0 10 20 30 Bitmappens storlek: 32 bitar 8 Bitmap: 11111000111111111100111111111000 A B C D E 42

Hantering av ledigt minne: Länkad lista-exempel Minnets storlek: 32 sidor 5 6 4 6 3 A B C D E 0 10 20 30 P 0 5 P 8 6 H 18 2 P 26 3 H 5 3 P 14 4 P 20 6 H 29 3 43

Algoritmer för att hitta ledigt minne First-fit Minnet skannas från början till dess ett tillräckligt stort hål hittas Next-fit Som ovan, men skanningen startar från där förra hålet fanns Best-fit Hela minnet skannas, det bästa hålet (så lite för stort som möjligt) används Worst-fit Som ovan men det hål som är störst används Quick-fit Håller listor med hål i vanliga storlekar för snabbare access 44

Algoritmer för att hitta ledigt minne: övning Minnet börjar här uppe 10 k 10 k 10 k 10 k 12 k 4 k 4 k 4 k 4 k 10 k 20 12 k 20 12 k 20 k 20 12 k 8 k 8 k 8 k 9 k 9 k 18 k 9 k 7 k 10 k 10 k 18 18 k 18 8 k 8 k 7 k 7 k 7 k 9 k 9 k 9 k 9 k 12 k 12 k 12 k 12 k 15 k 15 k 15 k 15 9 k 6 k First fit Next fit Best fit Worst fit 45

Algoritmer för att hitta ledigt minne First-fit Minnet skannas från början till dess ett tillräckligt stort hål hittas Next-fit Som ovan, men skanningen startar från där förra hålet fanns Best-fit Hela minnet skannas, det bästa hålet (så lite för stort som möjligt) används Worst-fit Som ovan men det hål som är störst används Quick-fit Håller listor med hål i vanliga storlekar för snabbare access 46

Fragmentering Extern fragmentering Det finns tillräckligt ledigt minne, men inte sammanhängande Intern fragmentering Allokerat minne används inte 47

Fragmentering Extern fragmentering Det finns tillräckligt ledigt minne, men inte sammanhängande Många små oallokerade segment OS 48

Fragmentering Extern fragmentering Det finns tillräckligt ledigt minne, men inte sammanhängande Oanvända delar av allokerade segment OS Intern fragmentering Allokerat minne används inte OS 49

Extern fragmentering Beroende på algoritm för minnesallokering så får vi mer eller mindre problem med extern fragmentering Worst-fit är bra för att den alltid lämnar stora delar kvar Operativsystem, Mats Björkman, MDH 50

Extern fragmentering: åtgärder Ett sätt att komma tillrätta med extern fragmentering är kompaktering Eftersom processerna är relokerbara, så kan vi flytta dem så att allt oanvänt minne hamnar i ena änden av minnesutrymmet Operativsystem, Mats Björkman, MDH 51

Kompaktering OS OS Ett enda oallokerat segment 52

Kompaktering, kostnad Kompaktering kostar mycket, alla processer behöver relokeras Bättre vore kanske ett system att hantera minnet där alla lediga utrymmen vore lika stora? Detta leder till paging Operativsystem, Mats Björkman, MDH 53

Intern fragmentering Problem: Vi har allokerat minne till processen efter en gissning av hur mycket minne vi kommer att behöva Kodsegmentet är inget problem, vi vet vid laddningen hur stor kod vi har Data-/stack-segmenten är däremot problematiska Operativsystem, Mats Björkman, MDH 54

Intern fragmentering För att undvika att vi får slut på minne för dynamiska data och stack vill vi gärna ta i lite i överkant för att vara på den säkra sidan Detta ökar på problemet med intern fragmentering Operativsystem, Mats Björkman, MDH 55

Intern fragmentering Alternativ: Gör det enkelt att utöka segmenten när så krävs Ett sätt är att allokera i fixa blockstorlekar där blocken inte behöver vara sammanhängande När det behövs mer minne utökas segmentet med ett block till Detta leder till paging Operativsystem, Mats Björkman, MDH 56

Paging Våra problem leder oss till att önska oss ett system där processers minnesutrymmen består av block (sidor) av fix storlek, och där det är lätt att lägga till och lämna tillbaks sidor allt efter behov Detta tas upp i nästa föreläsning, virtuellt minne, med fokus på paging Operativsystem, Mats Björkman, MDH 57

Lärandemålen igen Varför minneshantering? Logisk och fysisk adressrymd Grundläggande minneshantering Operativsystem, Mats Björkman, MDH 58