TSEA28 Datorteknik Y (och U)

Relevanta dokument
TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

F8: Undantagshantering

Tentamen. Datorteknik Y, TSEA28

F2: Motorola Arkitektur. Assembler vs. Maskinkod Exekvering av instruktioner i Instruktionsformat MOVE instruktionen

Tentamen (Exempel) Datorteknik Y, TSEA28

Övning2 Datorteknik, HH vt12 - Programmering

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Maskinorienterad programmering

TSEA28 Datorteknik Y (och U)

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

Maskinorienterad programmering

Tentamen (Exempel) Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28

Fö 5+6 TSEA81. Real-time kernel + Real-time OS

Tentamen. Datorteknik Y, TSEA28

Tentamen (Exempel) Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

Maskinorienterad programmering

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

LABORATION. Datorteknik Y

Tentamen. Datorteknik Y, TSEA28

Laboration 2 i Datorteknik- Assemblerprogrammering II

3. Mikroprogrammering II

Tentamen. Datorteknik Y, TSEA28

Assemblerprogrammering för ARM del 2

Datorteknik ERIK LARSSON

Tentamen Datorteknik Y, TSEA28 Datum

Fö 7: Operativsystem. Vad är ett operativsystem? Målsättning med operativsystem. Styr operativsystemet datorn?

Datorteknik. Tomas Nordström. Föreläsning 6. För utveckling av verksamhet, produkter och livskvalitet.

TSEA28 Datorteknik Y (och U)

F4: Assemblerprogrammering

Övning1 Datorteknik, HH vt12 - Talsystem, logik, minne, instruktioner, assembler

TSEA28 Datorteknik Y (och U)

Vad är en dator? Introduktion till datorer och nätverk. Pontus Haglund Institutionen för datavetenskap (IDA) 21 augusti 2018

Institutionen för elektro- och informationsteknologi, LTH

Datorteknik. Föreläsning 5. Realtidssystem och realtidsprogrammering. Institutionen för elektro- och informationsteknologi, LTH.

Digital- och datorteknik

LABORATION. Datorteknik Y

Digital- och datorteknik

Digital- och datorteknik

Datorsystemteknik Föreläsning 7DAVA14

TENTAMEN. Datorteknik. D1/E1/Mek1/Ö Hjälpmedel: Häfte "ARM-instruktioner", A4-format, 17 sidor. Maxpoäng:

Tentamen PC-teknik 5 p Lösningar och kommentarer

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Operativsystem. Innehåll. Operativsystemets funktion. Vad är ett OS? Vart hittar men ett OS? OS hanterar processorns resurser

Datorarkitekturer med operativsystem ERIK LARSSON

Tentamen Datorteknik Y, TSEA28 Datum TER2, TER4, TERE Tid 14-18

En Von Neumann-arkitektur ( Von Neumann-principen i föreläsning 1) innebär:

Programräknaren visar alltid på nästa instruktion som skall utföras. Så fort en instruktion har hämtats så visar programräknaren på nästa instruktion.

Tentamen Datorteknik D del 2, TSEA49

Dataminne I/O Stack 0x005D 0x3D SP low byte 0x005E 0x3E SP high byte

F5: Högnivåprogrammering

Datorteknik. Tomas Nordström. Föreläsning 7 Avbrott. För utveckling av verksamhet, produkter och livskvalitet.

Programexempel för FLEX

Föreläsning 2. Operativsystem och programmering

Föreläsningsanteckningar 3. Mikroprogrammering II

F5: Högnivåprogrammering

Lösningar till tentamen i EIT070 Datorteknik

Lösningar till tentamen i EIT070 Datorteknik

Polling (cyklisk avfrågning) Avbrott

Lösningsförslag till Tenta i Mikrodator

TSEA28 Datorteknik Y (och U)

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Tentamen Datorteknik Y, TSEA28 Datum

TSEA28 Datorteknik Y (och U)

Operativsystem. Informationsteknologi sommarkurs 5p, Agenda. Slideset 7. Exempel på operativsystem. Operativsystem

Operativsystem Lektion 1. Lärare. Schema. Kurssajten Finns på adressen. Jan Erik Moström. Set Norman

7) Beskriv tre sätt att överföra parametrar mellan huvudprogram och subrutin.

TSEA28 Datorteknik Y (och U)

Digital- och datorteknik

Grundläggande datavetenskap, 4p

Mål. Datorteknik. Introduktion. Innehåll. Verklig situation - pappaledighet. Introduktion (forts)

Institutionen för elektro- och informationsteknologi, LTH

Mål. Datorteknik. Repetition av avbrott. Innehåll. Mätning och styrning. Datorer för mätning och styrning. timer. Datorsystem A/D. Analog insignal D/A

Övningsuppgifter i Mikrodatorteknik 4p/5p

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

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

Digital- och datorteknik

Beskrivning av porthantering i mikroprocessorn SAM3U som används på vårt labkort SAM3U- EK.

Lösningsförslag till Tenta i Mikrodator

Svar till tentamen den 16 december 2013 Datorarkitekturer med operativsystem, EDT621, 7,5 poäng

A-del motsvarande KS1

Operativsystem DVG A06. Definition. Varför operativsystem? - Vad är ett operativsystem?

Minnet. Minne. Minns Man Minnet? Aktivera Kursens mål: LV3 Fo7. RAM-minnen: ROM PROM FLASH RWM. Primärminnen Sekundärminne Blockminne. Ext 15.

Operativsystem - Processer I

Mål. Datorteknik. Innehåll. Innehåll (forts) Hur ser ett program ut? Hur skapas maskinkoden?

Transkript:

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 3 TSEA28 Datorteknik Y (och U) Föreläsning 7 Kent Palmkvist, ISY Praktiska kommentarer Ordningsfråga Glöm inte koppla ned anslutningarna till darma Stäng inte av maskinen, bara logga ut Maskinproblem i MUX1 Ska nu vara åtgärdat Om labbmaskin hänger sig Skriv upp på whiteboard, Låt maskin vara igång, kontakta mig (via email) Dom som inte hunnit klart lab1 Approach 1 Redovisa lab1 i början av lab2 Approach 2 Extra lab 1 tillfälle, någon gång slutet av vecka 8 Endast för dom som deltagit i del A och B av lab 1 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 2 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 4 Dagens föreläsning Summering så här långt Mer detaljer om avbrott på Darmasystemet Strukturer för att stödja operativsystem Multianvändarsystem Supervisorläge Multitasking Context switching MMU Specifikt ARM Summering så här långt Datorn läser instruktioner lagrade i minnet Maskinkodsinstruktioner tolkas och utförs Består av instruktionstyp och argument Instruktionerna är enkla operationer Data till/från minne (ldr, str, push/pop) Dataflytt mellan register (mov) Aritmetiska/logiska (add, sub, and, orr, eor, lsr, lsl, asl) Branchinstruktioner (b, beq, bne, blt,...) Subrutin och interruptrutin (bl, bx lr, mov pc,lr)

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 5 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 7 Summering så här långt, forts. Argument till operationer av olika typer Register (r0-r12, PC, LR, SP, PSR,...) Villkor (NE, EQ, LT, MI,...) baserat på flaggor (Z,V,N,C) minnesaddresser Olika sätt att ange ett värde (finns fler än dessa) samt andra storlekar byte, halfword för minnesaccess. Omedelbar, #0x100 Direkt, 0x4001000, Finns INTE på Darma (ARM saknar adresseringsmode) Indirekt, [r0] Indirekt med offset (indirekt med förskjutning), [r0,#0x1234] Indirekt med postinkrement, [r0],#0x4 Indirekt med predecrement, [r0,#-0x4]! Summering så här långt, forts. Stack används till mycket LR innan subrutinanrop i subrutiner PSR, PC, LR, R12, R0-R3 vid avbrott (dvs allt för att kunna återställa) Spara registervärden som måste återställas i slutet av en rutin SP kan ibland vara ett vanligt register (t ex R13) Avbrott Avbryter exekvering ungefär som ett subrutinanrop Kan ha flera nivåer av prioritet Sparar statusregister och återhoppsaddress på stack Kan tillåtas eller förbjudas mha speciella instruktioner TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 6 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 8 Summering så här långt, forts. Flaggorna i statusregistret uppdateras beroende på resultat från instruktionen Z resultat = 0 C Carry (minnessiffra från beräkning eller skiftad bit från t ex lsr) N Negativt resultat (MSB = 1) V overflow vid 2-komplements operation (visar om N stämmer) Flesta instruktioner behöver ange att flaggor ska uppdateras ADDS, ANDS,... CMP ändrar alltid flaggor (finns ingen CMPS) Summering så här långt, forts. Introduktion ARM Cortex-M i Darma-systemet Skriva enkla program Felsöka och testa enkla program I/O (parallellport) koppling mot t ex tangentbord

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 9 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 11 Strukturering av program Hopp till subrutin bara med bl Subrutiner måste avslutas med mov pc,lr (eller pop {pc} om push {lr} i början Inga hopp mha B eller Bxx Kontrollera enskilda bitar i ord (t ex strobe) mha maskning (AND, OR etc.) Programstruktur mappas till linjär Rita gärna programstruktur mha flödesdiagram eller liknande Mappa funktionsblock till subrutiner och/eller kod Hoppa från slut av block till nästa del Hur fungerar avbrott från GPIO? Varje pinne kan trigga avbrott Låg nivå, hög nivå, positiv flank, negativ flank eller båda flanker Styrs med kontrollregister i GPIO GPIOIS, GPIOIBE, GPIOIEV 1 bit per pinne i kontrollregistren Om flank används ligger begäran kvar tills den nollställs Skriv 1or i GPIOICR (GPIO Interrupt Clear Register) för att nollställa Om orsak inte åtgärdad (nivå eller nollställt flank) fås nytt avbrott direkt Måste nollställa orsak för att undvika nytt avbrott TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 10 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 12 Avbrottssystem Darma System bestående av GPIO, NVIC och CPU GPIO genererar avbrottsbegäran NVIC (Nested Vector Interrupt Controller) prioriterar och begär avbrott (inklusive vektor) hos CPU (processorn) CPU utför avbrott (push till stack, hämta vektor) CPU kan tillåta eller ignorera avbrottsbegäran CPSIE I respektive CPSID I Spärrar alla avbrott En verklig dators funktion Olika program kan laddas in Assemblera inte nytt varje gång Flera program körs samtidigt Programmen kan samsas på samma maskin Hantering av I/O kan variera Tangentbord Skärm lagringsmedia

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 13 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 15 Extra krav för verklig dator Behöver gömma detaljfunktion hos I/O Jfr med pingpong i lab2, PIO alternativt utskrift Subrutiner med väl definierat registeranvändning och funktion Behöver garantera att ett program inte påverkar ett annat Inte förstöra stacken Inte skriva över andra programmets minne Byta snabbt mellan olika program för att ge intryck av samtidigt körande program Notering om stackar och LR i samband med subrutiner och avbrott Finns inget som kräver att återhoppsadressen som tas från stacken eller vid mov pc,lr eller bx lr har placerats där av en BL och push {lr} instruktion Manipulation av LR möjlig Direkt via t ex mov LR,#$1237 ; ersätt med ny adress Samma manipulation möjlig vid avbrottsåterhopp. Inget krav att ett äkta avbrott skapat SR och PC kopior på stack Dvs bx lr respektive mov pc,lr hoppas att det är korrekta återhoppsadresser, men kan inte garantera det TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 14 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 16 Funktion hos operativsystem Hantering av multianvändarsystem Behöver bygga ut funktion för att bättre stödja ett operativsystem Operativsystem hanterar hårdvara och gömmer detaljer från användaren Windows, Linux, respektive MacOS ser likadana ut oberoende av hur datorn är byggd i detalj Ger illusionen av att flera saker sker samtidigt Delar på resurser så att alla användare får tillgång till dom Applikationen ska inte behöva veta alla detaljer om hårdvaran Säkerhet Användarprogram får inte krascha datorn (stänga av funtioner, störa andra program) Applikation 1 Operativsystem Hårdvara Applikation 2 Separera vanliga program från operativsystem och avbrott Kritisk funktion för att garantera Olika lösningar i olika processorer Vissa funktioner är kritiska för datorns funktion Avbrottsmask, stackpekare, I/O Begränsa programmets möjlighet att påverka dessa funktioner Användarprogram ska begära hjälp av operativsystemet för tillgång till hårdvaruspecifika funktioner

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 17 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 19 Hur hantera slarvig användare R0 De flesta funktioner bygger på att stackpekaren är korrekt (pekar på tillgängligt RAM-minne) En slarvig användare skulle kunna använda SP till något annat Så länge som inga subrutinanrop görs används inte stacken av PC användaren Operativsystemet behöver fortfarande en fungerande stack, t ex för avbrott Lösning i Cortex-M4 En extra stackpekare för Handler mode (Handler) Byter register beroende på mode Använd MSP i handler mode (och vid avbrott) SP SP Cortex-M Mode MSP PSP MSP PSP Att hoppa mellan Supervisor och user mode i M68000 Supervisor mode indikeras av S-bit i statusregistret S-bit är satt när processorn startar Avbrottsrutiner körs med S=1 Inklusive TRAP instruktionen, lämplig som anrop till operativsystemet (Se manualsidan för syscalls i linux) Övergång till User mode RTE om sparat SR har S = 0 Direkt skrivning till SR (tillåtet endast från supervisor mode) Reset Avbrott trap Supervisor mode User mode SR RTE (S=0) move...,sr 15 13 10 9 8 4 3 2 1 0 T S I2 I1I0 X NZ V C TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 18 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 20 Hantering av multianvändarsystem ARM Cortex-A Olika registeruppsättningar (5 st) User, FIRQ, IRQ, SVC, mm. Vissa bara olika PC, PSR och SP, andra med fler registerdubletter Byter vid avbrott eller återhopp ARM Cortex-M4 Två olika mode Thread (användare) och Handler (avbrott, OS) mode Olika SP för respektive mode M68000 (t ex i tidig Apple Macintosh) har två moder Supervisormode Inga begränsningar. Lämpligt för operativsystemsrutiner och startup User mode Begränsade möjligheter. Kan inte ändra interrupt, påverka vissa I/O register och liknande För den nyfikne Kontextbyte Mål Få det att verka som flera program körs samtidigt på datorn Utan att programmen behöver veta om varandra Tidiga system (t ex Mac) använde kolloborativ multitasking, där varje program aktivt lämnar över till nästa program (tråkigt om ett program inte vill) Låt varje enskilt program köra på processorn Efter en viss tid avbryts nuvarande program och nästa startas Jämför med en restaurang med 1 anställd Måste vara kock ibland, servitör ibland, städare ibland Fungerar så länge som byten sker tillräckligt ofta

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 21 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 25 För den nyfikne Kontextbyte, forts. Konfigurera en timer som ger avbrott var 10e ms (100 Hz) 10 ms per program innan nästa program får tid att köra Vid avbrott Spara r0-r15 (inkl PC, SP och LR) samt PSR till kärnans minnesområde (1 per program) Hämta r0-15, PSR från nästa program Bx lr Byter helt tillstånd (stack, register, status) Syst. stack prog1 Syst. Stack prog2 prog1 prog2 Multitasking Mer information fås i kurser som Datorteknik och realtidssystem (för Y) och (antagligen) motsvarande kurs för U Processprogrammering och operativsystem Blir ett svårare problem att lösa om flera program behöver bearbeta samma data Låsa tillgång (jämför med buffered_getkey i förra föreläsningen) Vanliga program får inte ändra avbrottsnivå Många sätt att optimera prestanda och garantera svarstider Vilket program ska väljas som nästa program att köra? TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 22 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 26 Enklare exempel på kontextbyte, 68000 Att dela resurser mellan program Exempelkod finns på hemsidan Tre rutiner Skriv ut Task 1 is running Skriv ut Task 2 is running Skriv ut alla tecken från '0' till 'z' Varje rutin känner bara till sig själv Skriver ut sitt meddelande om och om igen Vet inte när nästa rutin ska startas task1 move.l #string1,a0 task1_loop move.b (a0)+,d4 tst.b d4 beq task1 ; If we are at the end ; of the string, restart! jsr printchar bra task1_loop string1 dc.b 'Task 1 is running',13,10,0 Grundläggande resurs Minne Varje program vill ha tillgång till minne utan att bry sig om andra programs behov Operativsystemet ska hantera tillgängligt minne Programmet begär viss mängd minne från operativsystemet och får en adress tillbaks Programmet lämnar tillbaks minne till operativsystemet när uppgiften är klar

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 27 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 29 När minnet tar slut Minnesskydd Även om datorn har tillräckligt med minne jämfört med hur mycket minne varje program behöver så räcker inte det Exempel (webbläsare och bildvisare kör samtidigt) Webbläsare allokerar minne för site 1 (20% av totalt) Bildvisare allokerar minne för bild 1 (40% av totalt) Webbläsare allokerar minne för site 2 (20% av totalt) Webbläsare stänger site 1 (totalt 60 % allokerat) Bildvisare allokerar minne för bild 2 (40%) <- går inte 40% finns tillgängligt, men delat på två ställen minne site 2 bild 1 site 1 bild 2 Lägg till funktion som spärrar tillgång till andra program Minska risken att ett urspårat program skriver över någon annans data Ta bort möjlighet för fel program läsa känslig information Lägg till skrivskydd på vissa minnesytor Kan dela kod utan risk för påverkan Vanligt för standardbibliotek i datorer Minnesfragmentering! TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 28 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 30 Ett annat minnesproblem Dålig säkerhet Du kör din internetbank Ett annat program som startats av någon annan (virus/malware). Detta program tittar i minnet på din webläsare Stor risk att nycklar och passord hittas, t ex tangentbordbuffertar, lokala variabler etc. Måste kunna skydda minnesareor från olika användare Varje användares minne ska bara vara tillgängligt för denna användare och för operativsystemet Lösning på minnesskydd och fragmenteringsproblemet Memory Management Unit (MMU) Logisk Håller ordning på vilket program har tillgång till vilken minneyta adress Varje program ser en logisk beskrivning av minnesrymden Skydda vissa minnesytor mot skrivning av program (operativsystemet får skriva) Kan döpa om adresser Flera program kan se det som att dom skriver på adress 0x1000 Inga problem samla ihop minnesdelar till stor sammanhållen adress Program 1 Program 2 MMU Minne

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 31 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 33 MMU funktion (virtuellt minne) Se fysiskt minne som byggblock T ex 4KByte stora områden (12 bitar) MMU översätter logisk adress till fysisk adress Högsta adressbitarna väljer vilket block (20 bitar) Lägre bitar används direkt till minnet Logisk adress 0x12347A63 adress 0x20223A63 översätts minneskarta Logisk adress adress Program 1 Program 2 MMU Minne Litet exempel på MMU-funktion Antag 16-bit adress (65536 adresser), 16 olika minnesblock Varje block är 4 KByte översätt bara 4 MSB bitar av 16-bitars adress En tabell för varje program MSB MSB Logisk adress 4 Tabell 16 värden 4 adress 12 LSB LSB Program 1 Program 2 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 32 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 34 Fördelar med MMU Program 1 Litet exempel på MMU-funktion Program 1 Låter dator med liten logisk använda stort minne Låter stor logisk minnesrymd matcha liten fysisk Minnesskydd, tillåt bara en användare komma åt speciella fysiska minnesområden Dela minne mellan användare (subrutinbibliotek, datastrukturer) Slå ihop minnesfragment till sammanhängande minnesytor Slipper ändra adresser i programmet (alla program tillåts börja på samma logiska adress) Program 2 position för data och program Program1 adress 0x2000, Program2 adress 0x3000 Subrutiner adress 0x4000 Program1 data area adress 0x5000, Program2 data area adress 0x8000 Logisk adress förväntad av programmet (samma för båda) Körs på adress 0x1000, subrutiner på adress 0x2000, data på adress 0x6000 Två olika minneskartor, en för varje program Program 2

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 35 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 37 Litet exempel på MMU-funktion, forts. Implementation av virtuellt minne, utökning 16 positioner i översättningstabellen (4 bit) Exempel program1 (logisk start 0x1000) start 0x2000 mov r0,#0x6330 ; data från fysisk 0x5330 ldr r1,[r0] bl 0x2010 ; subrutinanrop till 0x4010 b 0x1003 ; hopp till 0x2003 Program 2 (fysisk start 0x3000) Välj rätt tabell beroende på vilket program ska köra Väljs av operativsystemet Prog1. MMU Adr Data 0 1 2 2 4 6 5 F Prog2. MMU Adr Data 0 1 3 2 4 6 8 F Logisk adress delas upp i logisk sidaddress (mest signifikanta delarna) och displacement Logisk sidaddress används för att ta reda på fysisk sidadress Varje logisk sidadress har också indikerat ett antal egenskaper förutom fysisk sidadress tillgänglig/allokerad Ändrad Skrivbar Hur länge sedan den användes TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 36 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2018-02-12 38 Praktiskt problem med en översättningstabell Antag 32-bitar adress, 4KByte block (12 bitar) => 20 bitars översättning => väldigt stor tabell 1 miljon entries, dyr och långsam Praktiskt system delar upp tabellen i två hierarkiska nivåer 10 bitar topnivå, 10 bitar mindre tabell Logisk adress 1a nivål 2a nivå a minnet Ge program mer minne än det finns Virtuellt minne Placera oanvända minnesdelar på sekundärminne (disk) MMU detekterar försök att läsa på adresser som inte allokerats Genererar ett page fault avbrott Avbrottsrutinen allokerar nytt minnesblock bland befintligt fysiskt minne Andra funktioner Detekterad skrivningar i delade minnesblock ger två kopior (en för varje program) Om fysiska minnet tar slut kan fysiskt minnesblock som inte använts på länge flyttas till hårddisk och användas på nytt (swap)

www.liu.se