Design och trender. Föreläsning 12



Relevanta dokument
Introduktion till hårdvara, mjukvara och operativsystem

Tentamen i ID2206, ID2200 samt IS1350 Operativsystem

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

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

Operativsystem - input/output, skydd, virtualisering

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

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

Lösningsförslag till tentamen i IS1350 Operativsystem

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

Minneshantering segmentering och virtuellminne. Föreläsning 3

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

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

Operativsystem ID hp, ID2200 6hp

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

Datakom II (MNP) ht 1998 Bengt Ahlgren 1. Vad är speciellt med implementering av kommunikationsprotokoll?

Operativsystem Introduktion

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

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

Datorteknik ERIK LARSSON

Hur hänger det ihop med användarkommandon, biblioteksfunktioner och systemanrop?

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

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

Fallstudier. Föreläsning 11

4 grundregler. Minneshantering. Problemet. Windows minkrav

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

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

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

DIG IN TO Dator och nätverksteknik

Reservföreläsningen inställd

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

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

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

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.

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

Operativsystem - Filsystem

Föreläsning 2. Operativsystem och programmering

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

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

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

DVA315 Operativsystem

Datorsystemteknik DAV A14 Föreläsning 1

Operativsystem (IS1350) :00-12:00

ZFS. Linuxadministration I 1DV417. Wednesday, January 23, 13

Kurskatalog 2010 INNEHÅLLSFÖRTECKNING

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

DVA315 Operativsystem. Mats Björkman Mälardalens högskola

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Prestandatest av sekventiella läs- och skrivoperationer i UNIX-liknande operativsystem 4 hp

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

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

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.7

Filsystem användarvy och implementering. Föreläsning 4

Operativsystem och användargränssnitt

Operativsystem ID2200/06 omtentamen :00-18:00

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Introduktion till programmering. Undervisning. Litteratur och examination. Lärare. Föreläsning 1

Minnesisolering för virtuella maskiner en hypervisorstudie

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

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

Synkronisering. Föreläsning 8

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.3.1

Operativsystem ID2200/06 omtentamen :00-18:00

TEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.6.0

Projekt Fake för Virtutech

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

Internethistoria - Situation

Operativsystem ID1200/06 Tentamen :00-18:00

Säkerhetsanalys. The Dribble Corporation - Krav. The Dribble Corporation - Mål. The Dribble Corporation Produkt: Dribbles. Vill börja sälja över nätet

Administration / Disk Management. EC Utbildning AB

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

Systemkrav WinServ II Edition Release 2 (R2)

EKLIENT STANDARD KLASSIFICERING AV KLIENTER 1.0

Vad är molnet? Vad är NAV i molnet? Vem passar NAV i molnet för? Fördelar med NAV i molnet Kom igång snabbt...

SMD 134 Objektorienterad programmering

Minnet från processorns sida Datorteknik

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Laboration 2 Datorverktyg vid LiU

Arkitekturer i operativsystem

Författare: Juha Söderqvist IT-GUI. Version 1.0. Datum

UNIX Introduktion UNIX. Datorerfarenhet. Vad menar man med operativsystem

Tentamen, Distribuerade System/Programvaruarkitektur

Quick Start CABAS. Generella systemkrav CABAS / CAB Plan. Kommunikation. Säkerhet

SKOLFS. beslutade den -- maj 2015.

Filsäkerhet i Windows NT (NTFS)

Installation av WinPig Slakt

Översikt. Datorarkitekturer med operativsystem. Inledning. Inledning

ISAC. Tel. 08/

Kort-kort om utdelade användarkonton och datormiljön på NADA

Operativsystem IS1350

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

Den här texten ska förhoppningsvis underlätta en del av anpassningarna. Det kan säkert finnas en del fel och annat tok.

Kaspersky. IS MD attach

TDDC77 Objektorienterad Programmering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Lärare och handledare. Systemnära programmering. I dag. Föreläsningar & Gruppövningar & Handledning. Marcus Karlsson

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3

STYRKAN I ENKELHETEN. Business Suite

Tentamen PC-teknik 5 p

Transkript:

Design och trender Föreläsning 12

Design och trender Varför är det svårt att skriva OS? Vad ska man tänka på när man implementerar OS? Vart är utvecklingen på väg? Fortsättningskurser för den som vill lära mer Design av OS Trender trender 2

Design Designmål Svårigheter Implementation Prestanda Projekthantering

Designmål Man kan inte lösa alla problem med ett enda system! PL/1, MULTICS, tidiga versioner av Windows Har man klara och tydliga mål går det lättare: Vilka abstraktioner vill man använda? Vilka primitiva operationer tillhandahåller man? Hur skyddar man olika delar/användare från varandra? Hur hanterar man hårdvaran på ett effektivt sätt? trender 4

Varför är det svårt att skriva OS? 1. Storlek och komplexitet Vista c:a 70 miljoner rader kod Windows 2000 är 29 miljoner rader kod Solaris 2 miljoner rader kod Linux 2.5 miljoner rader kod FreeBSD 1.5 miljoner rader kod 2. Olika delar samverkar med varandra Virtuellminnet och filsystemet via t.ex. buffercachen trender 5

Varför är det svårt att skriva OS? 3. OS måste hantera parallellitet Processer Hårdvaruenheter (I/O) Flera CPUer 4. Säkerhet Skydda sig mot inkräktare, insiders som vill göra skada, misstag från användare... 5. Att dela resurser Användare vill inte vara fullständigt isolerade från varandra man måste tillåta kommunikation, delande av resurser trender 6

Varför är det svårt att skriva OS? 6. Det är svårt att förutsäga framtiden: Operativsystem är förvånansvärt långlivade Unix börjar närma sig 40 år MS-DOS är ungefär 30 år 7. Portabilitet Ska helst köra på många olika typer av datorer Ska tillåta många nya typer av hårdavruenheter att läggas till Ska underlätta att flytta tillämpningar 8. Kompatibilitet med gamla misstag Nya versioner bör kunna köra gamla program och användas av gamla användare trender 7

Vikten av bra gränssnitt - tänk på användarna!!! Operativsystemet ska underlätta för användarna! Den vanlige användaren Hur används OS:et Systemadministratören Hur administreras OS:et Programmeraren Systemanrop, biblioteksfunktioner Hårdvarutillverkaren Gränssnitt mot device drivers trender 8

Grundläggande designprinciper Enkelhet Perfection is reached not when there is no longer anything to add, but when there is no longer anything to take away Ex: ett fåtal väl designade systemanrop som bara gör enkla saker Fullständighet Everything should be as simple as possible, but no simpler Allt man behöver kunna göra måste gå att göra Effektivitet Om något inte kan göras på ett effektivt sätt kanske det inte skall vara ett systemanrop trender 9

Paradigmer/abstraktioner - vilken modell exporterars/pådyvlas användaren Användargränssnittet Kommandoradsstyrt Grafiska användargränssnitt En look-and-feel hos alla applikationer Ett enda GUI eller kan användaren välja? Var implementeras GUI? Exekvering Algoritmisk man vet från början vilken funktion programmet/processen skall utföra Händelsestyrd asynkrona händelser styr vad som skall ske trender 10

Dataabstraktion Ett OS bör ha en generell abstraktion i botten Unix: allting är en fil Windows NT: allting är ett objekt Ger en enhetlig modell för systemanrop Ex: Samma typ av mekanism för att läsa från terminalen som från en fil eller en pipe trender 11

Systemanrop Tror man på det vi sagt tidigare så ska OS:et: Tillhandahålla så få systemanrop som möjligt Systemanropen skall bara göra en sak Adding more code adds more bugs Don t hide power trender 12

Implementation Struktur Mekanism och policy Ortogonalitet Namngivning Bindningstid Implementationstekniker Prestanda

Systemstruktur - monoliten Ingen egentlig struktur allt är hopkopplat till en enhet Orginal UNIX, LINUX, MS-DOS Inte nödvändigtvis en eftersträvansvärd struktur... trender 14

Systemstruktur - skiktade system Skiktade system (layered systems) är ganska vanliga Solaris Windows NT Varje lager löser vissa problem som högre lager kan strunta i Varje lager implementerar en virtuell maskin trender 15

Systemstruktur - exokärnor och utvidgningsbara OS Exokärnor: Ge endast minimal funktionalitet Om en användarprocess kan implementera X så har X inte i OS att göra Det mesta görs i användarbibliotek I princip endast skydd och resurshantering i OS Exempel: OS ger ej paritetsskydd av filer Checksumman lagras separat Användarprocessen gör kontrollen själv Utvidgningsbara OS (extensible) Minimal grundfunktionalitet Extra funktionalitet kan adderas enkelt och modulärt trender 16

Systemstruktur - klient-server Klient-serversystem lägger funktionalitet i servers utanför kärnan Filservrar klassiskt exempel Även drivrutiner kan struktureras som egna processer om de kan få access bara till rätt hårdvara Vanligt i forskningsvärlden Mach (har använts som grund för kommersiella OS) Amoeba (har bara ett systemanrop!) trender 17

Separera mekanism och policy Ex: Schemaläggning Mekanism: Kör den tråd som ligger först i den icke tomma ready lista som har högst prioritet Policy: Bestäm vilken prioritet olika trådar har Ex: Minneshantering Mekanism: Hur man skriver ut eller läser in sidor, hur man ändrar i sidtabellen Policy: sidutbytesalgoritmen trender 18

Ortogonalitet Funktionalitet skall gå att kombinera Ex: C har grundläggande datatyper som man kan bygga sammansatta med, vektorer, matriser, structs Ex: LINUX kan skapa allt på en glidande skala från processer till trådar med clone() trender 19

Namngivning Hur ser namn ut som användaren ser? Hur hanterar man namn internt Översättning mellan intern representation och extern Flera namnrymnder Windows objekt, filer, registryn, Active Directory + interna namnrymnder... trender 20

Bindningstid När binder man saker och ting? När bestäms var en process laddas i minnet adressöversättning När länkas bibliotek in När allokeras minne för variabler När kan device drivers laddas trender 21

Implementationstekniker Dölj hårdvaran Inkapsling med gemensamt gränssnitt Indirektion Ex: VFS, egendefinerade datatyper Återanvändbar kod Debugga koden en gång! Reentrant kod Brute force Var smart bara om det verkligen lönar sig annars tar man den enkla lösningen Kontrollera eventuella felfall först innan man gör en massa i onödan trender 22

Optimeringar Hopklumpning Cachning Copy-on-write Lokalitet Vad ska optimeras?

Hopklumpning Klumpa ihop flera små operationer till en större, ofta med hjälp av buffring I/O använder buffring i flera steg Biblioteksrutinerna fread() och fwrite() samlar ihop flera operationer innan de gör systemanrop Systemanropen read() och write() kan samla ihop flera operationer innan de gör diskaccess Minnesallokering Biblioteksrutinen malloc() allokerar oftast en stor klump åt gången med sbrk() trender 24

Cachning och lokalitet Utnyttja lokalitet för cachning Samma data kommer att behövas flera gånger i nära tid Närliggande data kommer att användas (readahead) Ex: Buffer-, page-cache Lokalitet Working set Working directory trender 25

Copy-on-write Om flera processer skall ha egna kopior av ett stort objekt kan man spara mycket på att bara kopiera objektet då det skrivs Ex: I Unix följs fork() ofta snart av exec() Då kan det vara smart att inte kopiera hela adressrymden direkt efter fork() trender 26

Exempel: Copy-on-write av adressrymder vid fork() Sparar den mesta kopieringen vid fork() som snart följt av exec() Endast sidtabellerna kopieras till en början Både barnets och förälderns adressrymd skrivskyddas Alla platser i sidtabellerna markeras read-only Vid läsning ser det ut som om en kopiering gjorts trender 27

Exempel: Copy-on-write av adressrymder vid fork() Om barnet eller föräldern skriver kopieras den sidan Skrivningen upptäcks genom att det blir skyddsfel En ny sida allokeras och länkas in i skrivarens addressrymd Sidan är inte längre delad, så den markeras som skrivbar igen i både barnet och föräldern trender 28

Optimera eller inte? Prestanda optimeringar bör man göra bara där man vet att det behövs! Det vanliga fallet där man veta att man behöver spara tid Ta inte till krångliga/komplexa algoritmer och datastrukturer om de inte verkligen behövs! trender 29

Att driva stora komplexa projekt Var spenderas tiden Ex: 30% planering, 15% kodning, 25% modultest, 25% integration/systemtest, 5% annat Att addera mer resurser (personer) i ett sent skede av ett projekt försenar oftast projektet Dåliga nyheter kommer alltid för sent... Erfarenhet viktigt!!! trender 30

Trender Inte lätt att sia om framtiden

Lite historia 1986 Intel 286i 8 Mhz processor 640 KB primärminne Den var aldrig speciellt långsam!!!! Nu 3 Ghz processor, 4 kärnor, 8GB primärminne, disk ~3 TB Långsam, för lite disk, för lite minne... Varför? Mer och mer features... Hur får man annars någon att betala för nästa release... Vart är vi på väg? trender 32

Stora adressrymder Stora adressrymder (64-bit) och nya minnestekniker ger nya möjligheter Filsystemet i den virtuella addressrymden Filer ersätts av objekt (eller andra data strukturer) Persistent minne trender 33

Nätverk Distribuerade operativsystem (forskning) med transparent namngivning av objekt cachning av objekt migration av processer Peer-to-peer system Man kanske inte behöver distribuerade OS Stöd för att bygga distribuerade system ovanpå OS:et Overlay networks Big Data Hadoop med YARN trender 34

Mobila nät Mobila system har olika grad av kontakt Ingen (disconnected operation) Liten (trådlös kommunikation) Stor (trådförbindelse med nätet) Självorganiserande strukturer/nät Filsystem som kan vara isolerade och sedan anslutas till nätet igen (uppdateringar) Energihantering i samarbete mellan OS och tillämpning Contiki OS från SICS trender 35

Säkerhet Säkerhet på alla nivåer Applikation Dator Nät trender 36

Multimedia Multimedia program kräver realtidsegenskaper av hela kedjan Server Nät PC (eller motsvarande) trender 37

Om Kanske datorn som sådan försvinner? Set-top-box X-box (eller andra spelkonsoler) Ipad En pryl som bara gör en sak är lättare att använda Om hårdvaran blir liten, lätt och billig kan man köpa ny maskin när man vill ha nytt program trender 38

Sammanfattning trender 39

Fö 1: Vad är ett OS? Applikationer ex. Webb, spel, administrativa system Editorer Kommandotolk/shell Kompilatorer Operativsystem Systemanrop Säkerhet CPU/Processer Minneshantering Filsystem Kommunikation I/O User space Kernel space Maskininstruktioner Mikroarkitektur Fysiska komponenter trender 40

Fö 1: Processer Vad är en process? Varför processer? trender 41

Fö 2: Minneshantering Fysisk vs. Virtuell adressrymd Adressöversättning Allokering Sidindelning Sidtabeller Vanlig Flernivåer Inverterad TLB Swapping trender 42

Fö 3: Virtuellminne Demand paging Sidutbytesalgoritmer Working set trashing Segmentering trender 43

Fö 4: Filsystem Filer Directoryn Implementation av filsystem Organisation av hårddisk Exempelfilsystem trender 44

Fö 5: I/O Användarprog biblioteksfunktion systemanrop kod i kärnan Abstraktioner för I/O I/O styrning Pollning Avbrott DMA Buffring/cachening Hårddiskar, grafik mm. trender 45

Fö 6: Trådar och multiprocessorer Trådar vs processer Trådar Användarläge Kärnan Multiprocessorer Varför? Sammanbindningsnät Schemaläggning Introduktion till synkronisering trender 46

Fö 7: Synkronisering Kritisk sektion race-condition Synkroniseringsprimitiver Deadlock Livelock Coffmans villkor Undvika/återhämta sig från deadlock Svältning trender 47

Fö 8: Realtidsystem, device drivers Realtidssystem Karaktäristika Schemaläggning Stöd från OS Device drivers Vad är det? Hur implementeras det? Hot-plug-and-play/dynamiskt laddade device drivers trender 48

Fö 9: Distribuerade system Terminologi Nätverk Kommunikation Designmål! RPC Distribuerade OS Distribuerade objektsystem Distribuerade filsystem AFS/NFS trender 49

Fö 10: Säkerhet Vad skyddar man Var skyddar man Attacker Virus Maskar Trojaner Lösenord Återhämtning trender 50

Fö 11: Fallstudier LINUX/UNIX WINDOWS/VISTA trender 51

Vad läser man sedan? Säkerhet Kryptering NADA Internet security ICT/ECS Kommunikation Internetworking mm. ICT/ECS Kommunikation NADA-KTH-NOC Big DAta Hadoop mm. ICT/SICS Datorsystem ICT/ECS Trådlösa system - Wireless centret Distribuerade/parallella system All programvara interagerar någonstans mot OS trender 52

Prestandautvärdering Mät rätt saker Mätnogrannhet Reproducerbarhet trender 53

Tack för mig! Lycka till på tentan! Fortsätt lära er kunskap kan ingen ta i från er trender 54