TSEA28 Datorteknik Y (och U)

Relevanta dokument
TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

F8: Undantagshantering

TSEA28 Datorteknik Y (och U)

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

Tentamen. Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

Tentamen. Datorteknik Y, TSEA28

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

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

Tentamen. Datorteknik Y, TSEA28

Datorteknik ERIK LARSSON

Tentamen. Datorteknik Y, TSEA28

Tentamen Datorteknik Y, TSEA28 Datum

Tentamen. Datorteknik Y, TSEA28

Tentamen. Datorteknik Y, TSEA28

Lösningsförslag till Tenta i Mikrodator

F4: Assemblerprogrammering

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

Lösningsförslag till Tenta i Mikrodator

Övning2 Datorteknik, HH vt12 - Programmering

3. Mikroprogrammering II

TSEA28 Datorteknik Y (och U)

Lösningar till tentamen i EIT070 Datorteknik

Tentamen. Datorteknik Y, TSEA28

F5: Högnivåprogrammering

Datorsystemteknik Föreläsning 7DAVA14

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 Y, TSEA28 Datum TER2, TER4, TERE Tid 14-18

Lösningar till tentamen i EIT070 Datorteknik

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

F5: Högnivåprogrammering

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

Tentamen Datorteknik D del 2, TSEA49

Tentamen Datorteknik Y, TSEA28 Datum

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

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

Tentamen (Exempel) Datorteknik Y, TSEA28

Lösningar till tentamen i EIT070 Datorteknik

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.

Polling (cyklisk avfrågning) Avbrott

Digital- och datorteknik

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

Övningsuppgifter i Mikrodatorteknik 4p/5p

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

Institutionen för elektro- och informationsteknologi, LTH

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

Tentamen (Exempel) Datorteknik Y, TSEA28

Stack och subrutiner Programmeringskonventionen

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

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

Digital- och datorteknik

Tentamen Datorteknik Y, TSEA28 Datum TER2 och TER3 Tid 14-18

TSEA28 Datorteknik Y (och U)

Programexempel för FLEX

Tentamen (Exempel) Datorteknik Y, TSEA28

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

Tentamen (Exempel) Datorteknik Y, TSEA28

Digital- och datorteknik

Föreläsningsanteckningar 2. Mikroprogrammering I

Föreläsning 2. Operativsystem och programmering

TSEA28 Datorteknik Y (och U)

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

Tentamen i EIT070 Datorteknik

Datorteknik. Föreläsning 3. Assembler, stack och subrutiner, programmeringskonventionen. Institutionen för elektro- och informationsteknologi, LTH

Institutionen för elektro- och informationsteknologi, LTH

Tentamen PC-teknik 5 p Lösningar och kommentarer

Datorarkitekturer med operativsystem ERIK LARSSON

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

Övningsuppgifterna i kapitel F avser FLIS-processorn, vars instruktioner och motsvarande koder definieras i INSTRUKTIONSLISTA FÖR FLISP.

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

Datorteknik. Föreläsning 4. Polling och avbrott. Institutionen för elektro- och informationsteknologi, LTH. Mål

TSEA28 Datorteknik Y (och U)

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

Föreläsningsanteckningar 3. Mikroprogrammering II

LABORATION. Datorteknik Y

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

LABORATION DATORTEKNIK Y DATORTEKNIK D

TSEA28 Datorteknik Y (och U)

TSEA28 Datorteknik Y (och U)

TDDIU81. Processer och trådar. Andreas Dahlberg, Jonathan Doherty, Tony Magnusson, Patrik Ottosson, Rasmus Siljedahl

Datorarkitekturer med operativsystem ERIK LARSSON

Operativsystem ID2206 Tentamen TEN1 4.5 hp :00-18:00

Svar till Övning3 Datorteknik, HH vt12 Avbrott och timers

Styrenheten styrsignalsekvenser programflödeskontroll

Systembeskrivning. Systemskiss. Moduler.

A-del motsvarande KS1

Assemblerprogrammering för ARM del 2

Digital- och datorteknik

Digitalteknik och Datorarkitektur 5hp

Maskinorienterad programmering

Grundläggande datavetenskap, 4p

Transkript:

TSEA28 Datorteknik Y (och U) Föreläsning 7 Kent Palmkvist, ISY TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 2 Dagens föreläsning Summering så här långt Strukturer för att stödja operativsystem Multianvändarsystem Supervisorläge Multitasking Context switching MMU Specifikt 68000

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 3 Praktiska kommentarer Extra lab 1 tillfälle Fredag 17/2 kl 15-17 i MUX2 Endast för dom som gjort dugga i tid inför lab1 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 4 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 Dataflytt (move) Aritmetiska/logiska (add, sub, mult, and, or,xor, lsr, lsl, asl) Branchinstruktioner (bra, beq, bne, blt,...) Subrutin och interruptrutin (jsr, rts, rte)

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 5 Summering så här långt, forts. Argument till operationer av olika typer Register (D0-D7, A0-A7, PC, SR,...) Flaggor (Z,V,N,C) minnesaddresser Olika sätt att ange ett värde (finns fler än dessa) samt storlek byte, word och long Omedelbar, #$100 Direkt, $1000 Indirekt, (A0) Indirekt med postinkrement, (A1)+ Indirekt med predecrement, -(A2) Förskjutning, 12(A3) TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 6 Summering så här långt, forts. Flaggorna i statusregistret uppdateras oftast 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)

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 7 Summering så här långt, forts. Stack används till mycket återhoppsadresser vid subrutinanrop och avbrott Statusregister vid avbrott Spara registervärden som måste återställas i slutet av en rutin SP kan ibland vara ett vanligt register (t ex A7) 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 kontrollbitar (t ex I2 I1 I0 i statusregistret i M68000) TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 8 Summering så här långt, forts. Introduktion M68008 i Tutor-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 2017-02-13 9 Strukturering av program Subrutiner måste avslutas med RTS Inga hopp mha BRA, JMP eller Bxx Kontrollera enskilda bitar i ord (t ex strobe) mha maskning (AND, OR etc.) Programstruktur mappas till linjär adressrymd Rita gärna programstruktur mha flödesdiagram eller liknande Mappa funktionsblock till subrutiner och/eller kod Hoppa från slut av bock till nästa del TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 10 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 2017-02-13 11 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 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 12 Funktion hos operativsystem 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 Applikation 1 Operativsystem Hårdvara Applikation 2 Användarprogram får inte krascha datorn (stänga av funtioner, störa andra program)

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 13 Notering om stackar i samband med subrutiner och avbrott Finns inget som kräver att återhoppsadressen som RTS tar från stacken har placerats där av en JSR instruktion Manipulation av stack möjlig Direkt via t ex move.l #$12345678,(A7) ; ersätt med ny adress Samma manipulation möjlig vid RTE. Inget krav att ett äkta avbrott skapat SR och PC kopior på stack Dvs RTE respektive RTS hoppas att det är korrekta återhoppsadresser, men kan inte garantera det A7 Återhoppsadress TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 14 Skillnad mellan supervisor och användare 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 operativ-systemet för tillgång till hårdvaruspecifika funktioner M68008 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 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 2017-02-13 15 Hur hantera slarvig användare De flesta funktioner bygger på att stackpekaren är korrekt (pekar på tillgängligt RAM-minne) A0 En slarvig användare skulle kunna använda a7 till något annat Så länge som inga subrutinanrop görs används inte stacken av användaren A6 Operativsystemet behöver fortfarande en fungerande stack, t ex för avbrott A7 USP SSP Lösning i M68000: En extra stackpekare för supervisor mode (SSP) Byter register beroende på mode (värde på S i SR) Liknar hanteringen av DDR och DRA register i PIA Använd SSP i supervisor mode och vid avbrott A7 S USP SSP TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 16 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 2017-02-13 17 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 18 För den nyfikne: Kontextbyte, forts. Konfigurera en timer som ger avbrott var 10:e ms (100 Hz) Vid avbrott Spara d0-d7 och a0-a6 till supervisorstacken Spara USP till på supervisorstacken Spara nuvarande SSP (supervisor stack pointer) till minnet (1 plats per program som körs) Hämta SSP från ett annat program Hämta USP på (nya) supervisorstacken Hämta d0-d7 och a0-a6 från supervisorstacken RTE Byter helt tillstånd (stack, register, status) Syst. stack prog1 : Syst. Stack prog2 : SSP SSP : prog1 prog2 :

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 19 Enklare exempel på kontextbyte 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 jsr bra string1: dc.b printchar task1_loop ; If we are at the end ; of the string, restart! 'Task 1 is running',13,10,0 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 20 Kontextbyte exempel, forts. Använd tutorsimulatorn Ctrl-F load, G 1000 Ladda program, starta program på rad $1000 Ctrl-A ger interrupt från PIA port A Startar avbrottsrutinen context_switch

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 21 Kontextbyte, kod Spara alla register på supervisor stack Byt supervisorstack till nästa program ;;; ---------------------------------------------------------------------- context_switch: tst.b $10080 ; Acknowledge interrupt ;; Push all registers onto the supervisor stack, ;; including the user stack pointer (USP) movem.l a0-a6/d0-d7,-(a7) move.l usp,a0 move.l a0,-(a7) ;; (No need to push SR as that has been pushed ;; automatically to the stack) ;; Find next task to run find_next_task: move.l current_task,a0 ; find_task_loop add.l #4,a0 cmp.l #no_more_stackpointers,a0 ; At the end? bne not_last_entry ; And we are done! last_entry: move.l #supervisor_stackpointers,a0 not_last_entry: cmp.l #0,(a0) beq find_task_loop ; If 0, no task available restore_context: move.l a0,current_task ; Save the current task move.l (a0),a7 ; Load stack pointer move.l (a7)+,a0 ; Restore all registers move.l a0,usp movem.l (a7)+,a0-a6/d0-d7 rte TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 22 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 23 Att dela resurser mellan program 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 24 När minnet tar slut Ä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 Minnesfragmentering! minne site 2 bild 1 site 1 bild 2

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 25 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 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 26 Minnesskydd 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

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 27 Lösning på minnesskydd och fragmenteringsproblemet Memory Management Unit (MMU) Håller ordning på vilket program har tillgång till vilken minneyta 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 $1000 Inga problem samla ihop minnesdelar till stor sammanhållen adressrymd Logisk adress Fysisk adress Program 1 Program 2 MMU Minne TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 28 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 $12347A63 Fysisk adress $20223A63 Datorns logiska minneskarta Fysisk adressrymd Logisk adress Fysisk adress Program 1 Program 2 MMU Minne översätts

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 29 Fördelar med MMU Låter dator med liten logisk adressrymd använda stort minne Låter stor logisk minnesrymd matcha liten fysisk adressrymd 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) Datorns logiska Minneskarta för Program 1 Datorns logiska Minneskarta för Program 2 Fysisk adressrymd TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 30 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 Fysisk adress 12 LSB LSB Datorns logiska Minneskarta för Program 1 Datorns logiska Minneskarta för Program 2 Fysisk adressrymd

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 31 Litet exempel på MMU-funktion Fysisk position för data och program Program1 adress $2000, Program2 adress $3000 Subrutiner adress $4000 Program1 data area adress $5000, Program2 data area adress $8000 Logisk adress förväntad av programmet (samma för båda) Körs på adress $1000, subrutiner på adress $2000, data på adress $6000 Två olika minneskartor, en för varje program Datorns logiska Minneskarta för Program 1 Datorns logiska Minneskarta för Program 2 Fysisk adressrymd TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 32 Litet exempel på MMU-funktion, forts. 16 positioner i översättningstabellen (4 bit) Exempel program1 (logisk start $1000) Fysisk start $2000 move.l $6330,D0 ; data från fysisk $5330 jsr $2010 ; subrutinanrop till $4010 jmp $1003 ; hopp till $2003 Program 2: (fysisk start $3000) 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

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 33 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 1:a nivål 2:a nivå Fysiska minnet TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2017-02-13 34 Implementation av virtuellt minne, utökning 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 2017-02-13 35 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