Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning



Relevanta dokument
Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Program. Datorteknik. Semantiskt gap. C - Inledning. Abstraktionsnivå: Högnivåspråk. Assemblyspråk. Maskinspråk

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

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

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

DVG A06. Operativsystem, mm. Karlstads universitet Datavetenskap. DVG A06 Johan Eklund. Datavetenskap, Karlstads universitet 1

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

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

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

Datorarkitekturer med operativsystem ERIK LARSSON

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

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

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

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

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

Operativsystem - input/output, skydd, virtualisering

Grundläggande datavetenskap, 4p

Introduktion till hårdvara, mjukvara och operativsystem

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

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

Operative system. LRU-algoritm (2 p) Svar: 7 fel. c) Optimal algoritm (2 p) Svar: 6 fel

Lärare. Operativsystem. Handledning. Kurssajt. Schema. Lektioner. Jan Erik Moström

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

Operativsystem. Hierarkin för hårdvara läses nerifrån

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

Lösningsförslag till tentamen i IS1350 Operativsystem

Tentamen den 18 mars svar Datorteknik, EIT070

Datorsystem. Tentamen

Datorsystem 5. På denna föreläsning skall vi prata om Operativsystem Exempel på tenta (typ fjolårets)

Reservföreläsningen inställd

Minnet från processorns sida Datorteknik

Tentamen den 12 januari 2017 Datorarkitektur med operativsystem, EDT621

Operativsystem Introduktion

Vad är viktigast? Sammanfattning. Processer och trådar. Processer och trådar. Flerprocessorsystem. Schemaläggning. Interprocesskommunikation.

Datorsystem. Laboration 3: Operativsystem Senast uppdaterad: 14 oktober 2012 Version 1.3. Student: Underskrift: Underskrift: Datum:

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Tentamen den 14 januari 2016 Datorarkitektur med operativsystem, EDT621

Operativsystem ID hp, ID2200 6hp

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

Datorarkitekturer med operativsystem ERIK LARSSON

Parallellism i CDC 7600, pipelinens ursprung

Operativsystem. IS hp. Jim Dowling Docent, PhD [Bilder av Robert Rönngren]

Minnets komponenter. Digitala System: Datorteknik. Programexekvering. Programexekvering. Enhet för utdata. Enhet för indata CPU.

En processor kan ha en klockfrekvens på flera GHz. Det går alltså a9 exekvera en instruk=on väldigt for, givet a9 instruk=onen finns i processorn.

Minnesisolering för virtuella maskiner en hypervisorstudie

Schemaläggning Unix. Minneshantering etc. Linux. Schemaläggning av trådar (kernel threads) Detaljer. Operativsystem - Lektion 7

Digitala System: Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

Operativsystem (ID2200/06) XX XX:00-XX:00

0.1. INTRODUKTION Instruktionens opcode decodas till en språknivå som är förstålig för ALUn.

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

Datorsystem 2 CPU. Förra gången: Datorns historia Denna gång: Byggstenar i en dators arkitektur. Visning av Akka (för de som är intresserade)

Processer och trådar. Rasmus Cronstrand Per Jonsson Ante Wall Fabian Åberg

Hjälpmedel: Inga hjälpmedel förutom penna, suddgummi och glatt humör.

Närliggande allokering Datorteknik

Systembeskrivning. Systemskiss. Moduler.

IT-GUIDE Version 1.0 Författare: Juha Söderqvist

Institutionen för elektro- och informationsteknologi, LTH

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

Operativsystem - Processer I

Schemaläggningsmetodik för multi-core inom Windows 7 OS Vad är scheduling och hur schemalägger Windows OS sina processer?

DIG IN TO Dator och nätverksteknik

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

HF0010. Introduktionskurs i datateknik 1,5 hp

Operativsystem (IS1350) :00-12:00

7,5 högskolepoäng. Operativsystem och Systemarkitektur. IT-Tekniker och Systemarkitekt-programmet

7,5 högskolepoäng. Operativsystem och Systemarkitektur. IT-Tekniker och Systemarkitekt-programmet

Föreläsning 2. Operativsystem och programmering

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

Pipelining i Intel 80486

System S. Datorarkitektur - en inledning. Organisation av datorsystem: olika abstraktionsnivåer. den mest abstrakta synen på systemet

Pipelining i Intel Pentium II

Datorteknik ERIK LARSSON

Datorteknik ERIK LARSSON

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

Realtidsstöd i Minix. En laborationrapport. Oktober 2012

Datorarkitektur. Informationsteknologi sommarkurs 5p, Agenda. Slideset 3

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

Datorhistorik. Föreläsning 3 Datorns hårdvara EDSAC. Eniac. I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943

Realtidssystem. - Semaforer, trådsynkronisering - EDA698 - Realtidssystem (Helsingborg) Elin A. Topp

Parallellism i NVIDIAs Fermi GPU

Realtidssystem. - Dödläge - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 5

Realtidssystem. - Semaforer, trådsynkronisering - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 2

Synkronisering. Föreläsning 8

Datorsystemteknik DAVA14 Föreläsning 10

Datorteknik ERIK LARSSON

Datorarkitekturer med operativsystem ERIK LARSSON

Trådar och Multiprocessorer. Föreläsning 6

Så fungerar en dator

Operativsystem ID1200/06 (ID2200/06 6hp) Tentamen :00-18:00

In- och Utenheter. Fö 3: In/Ut matning och kopplingsstruktur. Några exempel. Egenskaper. In- och Utenheter. Styrning.

Operativsystem ID2200/06 omtentamen :00-18:00

7,5 högskolepoäng. Operativsystem och Systemarkitektur. IT-Tekniker och Systemarkitekt-programmet

Minneshantering segmentering och virtuellminne. Föreläsning 3

Uppgift 1: a) u= a c + a bc+ ab d +b cd

Operativsystem - Processkedulering

Hantering av hazards i pipelines

Datorsystem. Exempeltentamen

Transkript:

Datorarkitekturer med operativsystem ERIK LARSSON Översikt Inledning Inledning Inledning En processor eller central processing unit (CPU) är enheten som exekverar program i en dator En dator är en maskin som kan bearbeta data och utföra beräkningar. Datorn styrs av instruktioner från ett datorprogram, t ex Primärminne Instruktioner och data Fetch instruction Data/instruktioner Control Central processing unit (CPU) Execute instruction Ett operativsystem (Operating System - OS) är ett program som exekveras på datorn Mål för OS är: Hantera hårdvaruresurser i datorsystemet Erhålla tjänster för exekvering av applikationsprogram (t ex Facebook) I stort sett alla system har någon from av OS från mobiltelefoner, datorspel, till superdatorer.

Inledning Inledning För hårdvarufunktioner som in och utmatning (I/O) och minnesallokering fungerar OS som en mellanhand mellan applikationsprogram och datorns hårdvara Applikationsprogrammet exekverar normalt direkt på hårdvaran (datorn) men anropar frekvent OS eller avbryts av OS. OBS: ett OS är inte ett krav för att exekvera ett program. Visa datorspel körs direkt på hårdvaran. Exempel UNIX Windows Andra Unix Unix Ken Thompson och Dennis M. Ritchie Turingpriset( Nobelpris i datavetenskap ), 1983 För deras utveckling av generellt OS teori och speciellt för deras implementation av operativsystemet UNIX Ken Thompson utvecklade C vid Bell Labs och Go vid Google Inc (http://golang.org/#) - Go har konstruktioner för parallellprogrammering Dennis M. Ritchie utvecklade C vid Bell Labs

Linux Linus Benedict Torvalds, född 1969, Finland Ville lära sig om OS, skrev ihop ett OS Linus lag: Givet tillräckligt många beta-testare och medutvecklare, kommer i stort sett alla problem visa sig och bli rättade. Motivet är att problem och lösning är uppenbar för någon i gruppen. (Edsger W. Dijkstra: Programtest kan användas för att visa på existens av buggar, men inte för att visa att det INTE finns buggar) Microsoft! Linux Windows Windows MS-DOS (Microsoft Disk Operating System) (~1980) Målgrupp: Ensam användare på X86-arkitekturer utan nätverk Effekt: Låg säkerhet Windows 1.0 (1985) Windows 95, 98, 2000, XP, Vista, 7, 8 Bill Gates Paul Allen

Andra OS Vad gör ett OS? Digital Equipment Corporation (DEC): OpenVMS (Open Virtual Memory System Microsoft/IBM: OS/2 Enea: Enea OSE (Nokia: Symbian) Google: Android Processhantering Processhantering Hantera exekveringen av applikationsprogram är huvuduppgiften för ett OS Fetch Execute Fetch Execute Fetch Execute Ett program behöver resurser för att kunna exekvera Ett altenerar mellan CPU och I/O cykler För att maximera utnyttjandet av CPU, används multiprogramming (time sharing, multi-tasking) mer än ett program är aktivt. Fetch Execute Fetch Execute Fetch Execute Fetch Execute Tid för Facebook Tid för Musik Primärminne 0011 Data/instruktioner Control Central processing unit (CPU) 0011 Primärminne 0011 Byt program Data/instruktioner Control Central processing unit (CPU)

Processhantering Processhantering En processor flera program som exekverar..eller gör de? Nej! Men, en processor är väldigt snabb, så vi kan ge sken av parallellism. Antag att två program, t ex och körs ~0.1 sekund på varje program, dvs 100 000 000 klockcykler på varje program Fetch Execute Fetch Execute Fetch Execute 0.1 s 0.1 s 0.1 s Fetch Execute ~10 olika program kan exekveras per sekund Process model Process modell Två-tillståndsmodell (Running och Not Running) Schemaläggaren väljer en ny process från Not Running kön och låter den exekvera. Ett avbrott (till exempel, vid slut av time slice), leder till context switch och ett nytt program laddas New admitted Ready preemption Running Tre-tillståndsmodell (Running, Ready, Blocked) En nackdel med två tillstånd är att CPUn står idle vid I/O. Ett nytt tillstånd (Blocked) införs). I/O, event completion dispatch I/O, wait exit Fem-tillståndsmodell (Running, Ready, Blocked, Ready suspended, Blocked suspended) Waiting Terminated För hantering av virtuellt minne (flytta en process från primärminnet till sekundärminnet)

Schemaläggare Schemaläggare Långtidsschemaläggaren (Long-term scheduler) Bestämmer vilka jobb som ska läggas i readykön (queue) Mellantidsschemaläggaren (Mid-term scheduler) Bestämmer vilka jobb som ska vara i primärminnet (main) och vilka som ska vara i sekundärminnet Korttidsschemaläggaren (Short-term scheduler) Bestämmer vilket jobb som ska exekvera Algoritmer: First In First Out, Shortest Job First, Priority based scheduling, Round-robin scheduling, Multilevel Queue scheduling MS-DOS non multi-task system; hence, no scheduler Windows 3.1 - non-preemptive scheduler (did not interrupt programs) Windows NT, Linux, MacOS - multilevel feedback queue Vad gör ett OS? Kontextbyte (context switch) Process A Process B T I D Save state of A into PCBA Load state of B from PCBB A running Context switch B running Save state of B into PCBB Load state of A from PCBA Context switch A running

Processkontrollblock Processkontrollblock Process Control Block (PCB, eller Task Controlling Block eller Task Struct): är en datastruktur som innehåller den information som behövs för att kunna hantera en given process. Ett aktivt program har alltså ett process kontroll block Typiskt innehåll: Identifikation av process (a process identifier, or PID) Register värden, programräknare, stackpekare Adressrymd, prioritet, process information, t ex när användes processen senast, I/O som används, öppna filer Hemma: Du dammsuger Du blir avbruten av att telefonen ringer Efter samtalet vill du fortsätta städa där du var Datorn: Ett program exekverar När det avbryts, håller PCB koll på hur mycket som gjorts Programmet kan återstartas senare Avbrott Avbrott Endast ett program kan exekvera åt gången. Om OS vill byta program, hur göra det? Avbrott! Ett avbrott gör att processorn: Avbrott:» Sparar sitt tillstånd» Exekverar en avbrottshanteringsrutin Hårdvaruavbrott Programvaruavbrott För att få datorn att exekvera OS Klocka som genererar hårdvaruavbrott Applikationsprogram vill använda en känslig resurs» Systemanrop för att komma åt fil på hårddisk

Problem Problem Antag 10 likadana läsrum i biblioteket. För att få ett läsrum, frågar man i informationsdisken. Vid informationsdisken finns en variabel som räknas ned när någon ber om ett rum och räknas upp när någon lämnar ett rum. Om inget rum är ledigt bildas en kö. När två tåg möts i en korsning ska båda stanna och inget av tågen ska starta förrän det andra har åkt Fall som måste hanteras: Begär ett rum men glömmer att lämna tillbaka Lämnar tillbaka ett rum som aldrig var lånat Håller ett rum en lång tid utan att behöva det, eller Använder ett rum utan att ha fått rummet Problem Fem tysta filosofer sitter vid ett bord med fem gafflar och äter eller tänker. När de äter behövs två gafflar och bara gafflar brevid varje filosof får användas. Problem Dödlig låsning (Deadlock) till exempel: varje filosof tar sin vänstra gaffel och väntar sedan på sin högra Lag i Kansas Dödliglåsning (Deadlock) Process A och B behöver a och b för att exekvera. Process A håller a och väntar på b och process B håller b och väntar på a Utsvältning (Starvation) En process med låg prioritet blir aldrig exekverad. Process A och B behöver a. Process A har högre prioritet så när A släpper a, kommer A ta tillbaka a. B får aldrig resursen a Andra problem Cigarette smokers problem Readers-writers problem Sleeping barber problem Producers-consumers problem

Semaforer Edsger Dijkstra: Två operationer: V står för verhogen ("increase ) function V(semaphore S, integer I): [S S + I] P står för the portmanteau prolaag, som är förkortning av probeer te verlagen, bokstavligen försöka att minska function P(semaphore S, integer I): repeat: [if S >= I: S S I break] P och V måste vara atomära (atomic) (test-and-set eller turn of interrupt) Vad gör ett OS? Minneshantering Minneshantering Vid multiprogrammering kommer flera olika program finnas i primärminnet. Kostar för mycket tid att flytta program till hårddisk vid kontext byte. T ex, två program ska exekveras samtidigt : Primärminne 0011 0011 Relocation Flytta program och placera dem på andra ställen i minnet. Kunna hantera minnesreferenser och adresser vid omflyttningar. Minneskydd (Memory protection) Processer ska inte kunna komma åt minnesarea som tilldelats andra processer utan lov Delning (Sharing) Ibland ska processer kunna dela information och därför komma åt samma delar av minnet

Vad gör ett OS? Filsystem Hur hålla ordning på alla bitar? Vanligtvis kan man inte adressera individuella bitar (för stor overhead). Filer och bibliotek (Files and directories) Exampel: File Allocation Table (FAT), New Technology File System (NTFS) Mål: Kunna lagra stora filer, nå data snabbt (utnyttja hårddisk maximalt) Filsystem - Inode Filsystem - Inode Varje fil i Unix har en Inode Example: 12 pekare som pekar direkt på block med filens data (direct pointers) 1 indirekt pekare (en pekare till ett block av pekare) 1 dubbel indirekt pekare (en pekare som pekar på ett block av pekare som i sin tur pekar på ett block av pekare som perkar på filens data) 1 trippel indirekt pekare (som dubble indirekt pekare men med ytterligare en nivå)

Vad gör ett OS? Drivrutiner Drivrutiner (device driver) är programvara som interagerar med hårdvaran, t ex: Skrivare, video adapters, nätverkskort, ljudkort, möss, pekare, tangentbord, USB, lagring som hårddisk, CD- ROM, DVD. Hur tillåta applikationsprogram interagera med hårdvaran? Kernel Kernel Kärnan (kernel) är OSs viktigaste del. Kärnan fungerar som interface mellan applikationsprogram och hårdvaran. Microkernel eller monolithic kernel (Tanenbaum Torvalds debate) Ringar (Rings) är hårdvarustöd för att ge skydd Typiskt med två moder user-mode and supervisor-mode Applikationsprogram gör systemanrop för att läsa på hårddisk (ger OS kontroll) MS-DOS endast supervisor-mode Windows, Linux supervisor och user mode

Vad gör ett OS? Nätverk Media (Communication media) Wired technologies» Twisted pair (telephone wire), coaxial cable (TV), optical fiber Wireless technologies» WLAN, Bluetooth Protokoll (Communications protocol) Ethernet (IEEE 802) Internet Protocol Suite (Transfer Control Protocol, is one of the core protocols of the Internet Protocol Suite (TCP/IP)) Säkerhet In och utmatning Microsoft vände sig mot ensam-användare utan nätverk säkerhet var inget problem UNIX vände sig mot fleranvändarsystem (multi-tasking) utvecklat på mer säkert sätt I/O är all kommunikation med omvärlden (utanför datorn) T ex tangentbord, skärm, diskar, skrivare

Sammanfattning Ett operativ system är ett program som underlättar exekveringen av applikationsprogram. Ett OS ansvarar för process management, avbrott, minneshantering, filsystem, drivrutiner, nätverk, säkerhet, I/O-hantering