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

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

FRÅN A TILL Ö LäraMera Ab / och Allemansdata Ab / FRÅN A TILL Ö

Tentamen. Datorteknik Y, TSEA28

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

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

F8: Undantagshantering

Tentamen. Datorteknik Y, TSEA28

Individuellt Mjukvaruutvecklingsprojekt

Tentamen Datorteknik Y, TSEA28 Datum

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

TSEA28 Datorteknik Y (och U)

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

Operativsystem - Minneshantering I

Tentamen. Datorteknik Y, TSEA28

Manual för BPSD registret. Version 6 /

VÄRDERINGSÖVNINGAR. Vad är Svenskt?

Sammanfattning på lättläst svenska

Tentamen. Datorteknik Y, TSEA28

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

Fullför installation av ELIQ

ANVÄNDARHANDLEDNING FÖR

Hur skapar man formula r

Här kan du läsa om vilka funktioner som finns tillgängliga i Switch King samt vilka möjligheter som finns för att sätta upp systemet (skalbarhet).

Två konstiga klockor

Välkommen till ikanobank.se

Kundservicerapport Luleå kommun 2015

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

När du som vårdpersonal vill ta del av information som finns hos en annan vårdgivare krävs det att:

Systematiskt kvalitetsarbete

Manual för Min sida 1/ rev

Programmera en NXT Robot

TSEA28 Datorteknik Y (och U)

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

Har vi lösningen för en bättre hemtjänst? Självklart.

Utvärdering APL frågor till praktikant

Syftet med en personlig handlingsplan

ANVÄND NAVIGATIONEN I CAPITEX SÄLJSTÖD

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

Distribuerade Informationssystem VT-04

Tentamen Datorteknik D del 2, TSEA49

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

Lathund, procent med bråk, åk 8

Modul 6: Integraler och tillämpningar

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

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

Tentamen. Datorteknik Y, TSEA28

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

Lathund för överföring av rapporter och ljudfiler

Idag. Hur skapar vi och underhåller en databas? Index? Vad är det och varför behövs de? Behöver jag bry mig om index?

Tentamen. Datorteknik Y, TSEA28

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

F4: Assemblerprogrammering

Examensarbete är det en kurs? Inst. för Samhällsbyggnad 2009

Design by. Manual Jossan.exe. Manual. till programmet. Jossan.exe. E-post:

Dash and Dot. Svårighetsgraden bestämmer du själv genom att välja någon av av de 5 appar som är kopplade till Dash & Dot.

P-02/03 säsongen 2016

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

Föreläsningsanteckningar 2. Mikroprogrammering I

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

En lönerevision görs i flera steg; Initiering - Lönerevision Attestering - Skapa förmån - Uppdatera lön.

TSEA28 Datorteknik Y (och U)

Idag: Dataabstraktion

e-cm Elektronisk Cash Management dygnet runt, världen över.

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

Tentamen. Datorteknik Y, TSEA28

Hävarmen. Peter Kock

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

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

BLUSTAR WEB DATOR Röstbrevlåda och aktiviteter på anknytningar för anställda på KI med KI ID, från en dator.

Frågor och svar för föreningar om nya ansökningsregler för aktivitetsbidrag från och med 1 januari 2017

Patientdatalag för säkrare vård Hantering av personuppgifter

Menys webbaserade kurser manual för kursdeltagare. Utbildningsplattform: Fronter

Utveckla arbetsmiljö och verksamhet genom samverkan

Vi skall skriva uppsats

ELEV- HANDLEDNING (Ansökan via webben)

Lathund till Annonsportalen

Systematiskt kvalitetsarbete

Datorteknik ERIK LARSSON

Tränarguide del 1. Mattelek.

myabilia En introduktion

Det flippade klassrummet hur uppfattas det av eleverna?

Det är bra om även distriktsstyrelsen gör en presentation av sig själva på samma sätt som de andra.

Lösningsförslag till Tenta i Mikrodator

Uppdrag: Huset. Fundera på: Vilka delar i ditt hus samverkar för att elen ska fungera?

4-6 Trianglar Namn:..

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

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

Upplägg och genomförande - kurs D

Arbetsbeskrivning, att förbereda för studenternas registrering kommande termin. 1. Studenter antagna på fristående kurs 2

Praktisk programmering

TSEA28 Datorteknik Y (och U)

Sammanfattning av kursdag 2, i Stra ngna s och Eskilstuna

TP #3. checklista - rättigheter och skyldigheter vid hyra. checklista: RÄTTIGHETER OCH SKYLDIGHETER VID HYRA HYRESAVTAL

BÅGSKYTTEFÖRBUNDET MEMBER OF SVERIGES RIKSIDROTTSFÖRBUND AND FÉDERATION INTERNATIONALE DE TIR A L ARC

Skriva B gammalt nationellt prov

Transkript:

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 2 TSEA28 Datorteknik Y (och U) Föreläsning 7 Kent Palmkvist, ISY 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 2016-02-17 3 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 4 Praktiska kommentarer För trångt i labbet Fler anmälda än förväntat Extra tillfälle i halvklass (för dom som inte kunnat anmäla sig) Lab2a Lab2b Extra tillfälle även för lab3 lab5 (samma deadline som tidigare) Se anmälningssidan Extra labb för dom som gjort dugga i tid inför lab1 Torsdag eller fredag vecka 10 (mail kommer senare) 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 2016-02-17 5 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 6 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) 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 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 7 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 8 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 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 Användning av interrupt (lab 2) 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 2016-02-17 9 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 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 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 2016-02-17 11 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 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 Säkerhet Användarprogram får inte krascha datorn (stänga av funtioner, störa andra program) Applikation 1 Operativsystem Hårdvara Applikation 2 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 2016-02-17 13 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 14 Skillnad mellan supervisor och användare Hur hantera slarvig 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 viss I/O register och liknande SR 15 13 10 9 8 4 3 2 1 0 T S I2 I1I0 X NZ VC De flesta funktioner bygger på att stackpekaren är korrekt (pekar på tillgängligt RAM-minne) 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 Operativsystemet behöver fortfarande en fungerande stack, t ex för avbrott 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 A0 A6 A7 A7 S USP SSP USP SSP TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 15 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 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 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 2016-02-17 17 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 18 För den nyfikne Kontextbyte, forts. Konfigurera en timer som ger avbrott var 10e 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 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 ; 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 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 19 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 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 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 2016-02-17 21 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 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? 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 2016-02-17 23 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 24 När minnet tar slut Ett annat minnesproblem Även om datorn har tillräckligt med minne jämfört med hur mycket minne varje program behöver så räcker inte det minne Dålig säkerhet Du kör din internetbank 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! site 2 bild 1 site 1 bild 2 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 2016-02-17 25 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 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 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 logiskl 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 Logisk adress adress Program 1 Program 2 MMU Minne TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 27 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 28 MMU funktion 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 adress $20223A63 översätts minneskarta Logisk adress adress Program 1 Program 2 MMU Minne Fördelar med MMU 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 minnes 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) Minneskarta för Program 1 Minneskarta för Program 2

TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 29 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 30 Litet exempel på virtuellt minne 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 Antag 16 olika block (översätt bara 4 MSB bitar av 16-bitars adress) Minneskarta för Program 1 Minneskarta för Program 2 Litet exempel på virtuellt minne, forts. 16 positioner i översättningstabellen (4 bit) Exempel program1 (logisk start $1000) 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 31 TSEA28 Datorteknik Y (och U), föreläsning 7, Kent Palmkvist 2016-02-17 32 Ge program mer minne än det finns Virtuellt minne 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) Implementation av virtuellt minne 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 2016-02-17 33 Praktiskt problem med en översättningstabell 20 bitars adress => 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 www.liu.se 1a nivål 2a nivå a minnet