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

Relevanta dokument
4 grundregler. Minneshantering. Problemet. Windows minkrav

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

Multimedia. Multimedia. Datakompression. Annorlunda krav. Inte bara text eller nerladdning av filer. Video, ljud med tidskrav.

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

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

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

Deadlock. Deadlock uppstår när två eller flera processer hamnar i ett cirkelberoende. Resurs 1. Processen vill ha resursen. Processen äger resursen

Synkronisering. Föreläsning 8

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

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

Realtidsprogrammering Ordinarie tentamen

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

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

Minnet från processorns sida Datorteknik

Lunds Tekniska Högskola Datorarkitektur med operativsystem EITF60. Superscalar vs VLIW. Cornelia Kloth IDA2. Inlämningsdatum:

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

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

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

Datorteknik ERIK LARSSON

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

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

Mekanismer. (implementation)

Tentamen i Realtidsprogrammering för Au3, D3, E3

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

Realtidssystem HT03. Vad är realtidssystem? Inbyggda system. Att programmera, Tasks (Uppgifter) Realtidssystem kräver analys

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

Institutionen för elektro- och informationsteknologi, LTH

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

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

Tentamen omfattar 40 poäng fördelade på 7 uppgifter. 20 poäng krävs för betyget 3, 30 poäng för betyget 4 och 36 poäng för betyget 5.

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

Minneshantering segmentering och virtuellminne. Föreläsning 3

Öka prestanda i Shared-Cache multi-core processorer

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

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

Introduktion till hårdvara, mjukvara och operativsystem

Omtentamen i Realtidsprogrammering för Au3, D3, E3

Outline. Datorsystemtekni. Kravspecifikation. Kravspecifikation (forts.)

Operativsystem - input/output, skydd, virtualisering

Operativsystem ID1200/06 Tentamen :00-18:00

Tentamen i Realtidsprogrammering

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

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

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

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

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

Deadlocks. detektera och undvik

Tentamen den 18 mars svar Datorteknik, EIT070

Digitalteknik och Datorarkitektur 5hp

Operativsystem - Processkedulering

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Spekulativ exekvering i CPU pipelining

Operativsystem Introduktion

Lösningsförslag till tentamen i IS1350 Operativsystem

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

1. Starta om din Mac. 2. Kontrollera din Internetuppkoppling

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

Säkerhet. Vad är det vi pratar om??

Grundläggande datavetenskap, 4p

Försättsblad till skriftlig tentamen vid Linköpings Universitet Cover page for written exam at Linköping University

Pipelining i Intel Pentium II

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

3. Mikroprogrammering II

Aktivitetsschemaläggning för flerkärninga processorer

Realtidssystem. - Schemaläggning - EDAF85 - Realtidssystem (Helsingborg) Elin A. Topp. Föreläsning 6

1.1 Runnable och Thread

Datorarkitekturer med operativsystem ERIK LARSSON

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det

Operativsystem - Processkommunikation

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

Sockets. Processkommunikation Sammanfattning. Sockets. Domän, typ och protokoll

Några gamla tentamensuppgifter: Processer. 3. Antag givet ett system i vilket rent CPU-bundna processer med följande egenskaper exekveras.

Hantering av hazards i pipelines

Exam Concurrent and Real-Time Programming

Föreläsningsanteckningar 3. Mikroprogrammering II

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

DIG IN TO Dator och nätverksteknik

Superscalar Bra: Hårdvaran löser allt: Hårdvara detekterar poten6ell parallellism av instruk6oner Hårdvara försöker starta exekvering (issue) av så

Snapdragon 810: Cacheminnet

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

SVAR TILL TENTAMEN I DATORSYSTEM, VT2013

Tentamen den 9 januari 2018 Datorarkitekturer med operativsystem (EITF60)

Design och trender. Föreläsning 12

Föreläsning 2. Operativsystem och programmering

Strategier för att utnytja parallella system. Peter Kjellström NSC Upplysning

Inlämningsuppgift : Finn. 2D1418 Språkteknologi. Christoffer Sabel E-post: csabel@kth.se 1

Schemaläggnings metoderna AMP & SMP i en Multiprocessor

Datorteknik ERIK LARSSON

Digitala System: Datorteknik ERIK LARSSON

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.

Skyddsmekanism. Säkerhet. Säkerhet. Policy. Principle of least privilege. Säkerhetsnivåer

Synkronisering. Ordning och reda

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

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

Operativsystem (IS1350) :00-12:00

HF0010. Introduktionskurs i datateknik 1,5 hp

Random Access Memory. Amare Reda Jenny Holmberg Henrik Kreipke Gaylord Kaya

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

Parallellism i CDC 7600, pipelinens ursprung

Introduktion till programmering och Python Grundkurs i programmering med Python

Transkript:

Vad är viktigast? Sammanfattning Processer och trådar Avbrottshantering Vad det är och hur det fungerar (på låg nivå) Vilka problem finns Schemaläggning Flerprocessorsystem Varianter, problem Interprocesskommunikation Vad det är, hur det fungerar och de vanligaste problemen Vilka problem uppstår när man verkligen har flera processorer Säkerhet Olika typer av säkerhetsproblem Minneshantering Hur det fungerar och vilka problem som finns Processer och trådar En process är en uppsättning resurser + minst en exekveringstråd En tråd är själva exekveringen En CPU => en process i taget Pseudo-parallellism Programmeringsmodell: Alla program kör samtidigt Varför flera processer Bättre prestanda (beräkningsintensiv jmf IO-intensiv) Enklare programmeringsmodell Bättre användarmodell Processer och trådar Vid start Fixa till minnesutrymme Lägg in processen i de tabeller som behövs Initiera register och kod Markera att processen är färdig att köra Normal drift Körs Väntar på att få köras Väntar på något annat Avsluta en process Stäng filer, släpp resurser, städa upp Ta bort från tabeller Lämna tillbaka minne

Processer och trådar Samma princip för bägge Processer tar längre tid att skapa men jobbar ensam Trådar kräver mindre resurser för att skapas men måste ta hänsyn till andra Beroende på implementation så kan trådar ha problem med blockning Processer och trådar kan med fördel kombineras för ett mer flexibelt system. Schemaläggning När ska en process köras och vilken ska köras Systemet måste välja rätt process att köra Olika typer av system: batch => throughput interactive => response time realtime => deadlines Trådar Schemaläggning på två nivåer? Trådbyte billigt Interprocesskommunikation Interprocesskommunikation Med några undantag så är det tämligen värdelöst med flera trådar/processer om de inte kan kommunicera eller åtminstone synkronisera med varandra Koordinera användningen av resurser, utbyte av information Problemet: flera processer kan försöka använda samma resurs samtidigt Race condition Critical regions (kritiska regioner) Mutual exclusion (ömsesidig uteslutning) Implementation (anta en CPU) Inget processbyte => inget problem => stänga av avbrotten Variabel som flaggar => funkar inte Paterson s lösning Odelbar instruktion => TSL/TAS

Interprocesskommunikation Låta en process sova Semaforer funkar utmärkt men Kräver ofta flera semaforer för att det ska fungera Kan bli rätt komplicerade lösning om det är många processer inblandade Lätt att tänka fel Lätt att koda fel Monitorer Stöd i språket Lättare att koda Kan låsa för mycket Interprocesskommunikation Meddelandebaserad kommunikation Enkel att förstå Kräver mer kod i kärnan Kräver mer resurser Kan vara långsammare Bekvämare Deadlock Uppstår när två eller flera processer hamnar i ett cirkelberoende Fyra krav Ömsesidig uteslutning Väntar på resurser Non-preemptive Cirkulärberoende Lösning Strutstekniken Försök hitta deadlocks och lös upp dem Undvik genom att vara försiktig vid resurstilldelning Designa så att de fyra villkoren aldrig kan uppstå

Återhämtning Inte lätt Avbryta en exekverande process Hoppa tillbaka till ett tidigare tillstånd Slå ihjäl en process Minneshantering Problem Man vill köra många program samtidigt men tyvärr så får de inte plats i minnet samtidigt Programmen ska inte behöva ligga på vissa adresser Lösning Flytta omkring programmen i minnet Spara minnet temporärt till disk Undvik att ladda in hela programmet på en gång Enklast möjliga modell Fixerade minnespartitioner Många köer för partitionerna sorterat efter storlek Nackdel: om en kö blir tom så blir datorn dåligt utnyttjad En kö för alla processer

Två generella problem Hur kan man flytta omkring program? Hur skyddar man de olika programmens data? Virtuellt adressområde Programmet tror att det äger ett jätteminne och hela datorn OSet fejkar det hela Pages, page frames Core map Page tables Page fault TLB Vilken sida ska ut Avbrott First-in, first-out Second chance Least recently used Not frequently used Working set Flera processer Lokala eller globala algoritmer

Problem Minnesmappad IO Hur hanterar man att exekveringen av en process avbryts? Vad behöver man lagra? Vart ska man lagra det? Precise interupts Imprecise interupts Inga speciella instruktioner behövs, vare sig i språk eller CPU Det går antagligen snabbt och enkelt att läsa både data och kontrollinfo Man får behörighetskontroll automagiskt Delar av det adresserbara utrymmet försvinner Cachat minne Separata bussar Speciella IO-kanaler IO Det ska gå fort Processbyte är dyrbart DMA Inget adressutrymme försvinner Inga problem med cachning Speciella instruktioner i CPU och språk Tar längre tid att kolla ett kontroll register

Programvara i lager Diskar RAID Hastigheten är viktig 0, bra vid stora läsningar/skrivningar 1, duplicerar information 2, delar upp information i nibbles + felkorrigering Strip 0 Strip 1 Strip 2 Strip 3 (a) Strip 4 Strip 5 Strip 6 Strip 7 RAID level 0 Strip 8 Strip 9 Strip 10 Strip 11 Strip 0 Strip 1 Strip 2 Strip 3 Strip 0 Strip 1 (b) Strip 4 Strip 5 Strip 6 Strip 7 Strip 4 Strip 5 Strip 8 Strip 9 Strip 10 Strip 11 Strip 8 Strip 9 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 (c) Bit 1 Bit 2 Bit 3 Bit 4 Parity Strip 2 Strip 6 Strip 10 Bit 7 Strip 3 Strip 7 Strip 11 RAID level 2 RAID level 1 Buffring för undvika onödigt arbete Avlasta CPU Minska antalet processbyten 3, i bitar 4, jobbar med strips igen 5, bättre lastfördelning (d) Strip 0 Strip 1 Strip 2 Strip 3 (e) Strip 4 Strip 5 Strip 6 Strip 7 Strip 8 Strip 9 Strip 10 Strip 11 Strip 0 Strip 1 Strip 2 Strip 3 Strip 4 Strip 5 Strip 6 P4-7 (f) Strip 8 Strip 9 P8-11 Strip 10 Strip 12 P12-15 Strip 13 Strip 14 P16-19 Strip 16 Strip 17 Strip 18 RAID level 3 P0-3 P4-7 RAID level 4 P8-11 P0-3 Strip 7 Strip 11 RAID level 5 Strip 15 Strip 19 6, bortfall av fler diskar

Filstruktur Filsystem Prestanda Diskåtkomst är långsamt Buffra i minnet (en del filer ska kanske inte ens ut på disk) Problem: vissa block är viktiga Problem: vad händer om man inte sparar under en lång tid Läsa i förväg Minimera tiden för positionering Logfilsystem (för att undvika små filer) Bra att veta lite om CD-ROM CPM MS-DOS/Windows ME Principerna för Unix NTFS översiktligt NFS översiktligt Ext2 översiktligt Resier översiktligt Journalförande

Unix princip Flera CPUer Delat minne multiprocessor Multidator Distribuerade system Nummer på i-noden Namnet Synkronisering Samma principer Annorlunda implementation Test-and-lock/test-set-lock Två minnesaccesser, chans för en annan CPU att hinna mellan Busy waiting/spin lock Frestar på CPU, bussar, etc Processbyta eller busy waiting Schemaläggning Inte bara vem utan också vart Är processerna beroende av varandra? Central tabell eller flera nivåer? Processbyte eller inte, busy waiting?

Kommunikationsmetoder Meddelanden Blocking Non-blocking Delat minne Samma princip, annorlunda implementation False sharing RPC En bra modell? Flera problem? Multimedia Mycket information Hårda tidskrav Ingen variation Hålla deadlines Förskjutning OK Hoppa mellan olika ställen Komprimering komplicerar men är nödvändigt Realtime scheduling Kan man rent teoretiskt schemalägga Rate-monotonic scheduling Diskar Hög överföringskapacitet och driftsäkerhet viktigast Felfritt, mindre viktigt Earliest deadline first

Säkerhet Buffer overflow Sabotage (virus, trojaner, spionprogram) Intrång Olyckor (backup) Identitet (maskiner och personer, accesskontroll) Programfel Systematiska fel Läsa information (kryptering) Fysisk säkerhet