Fö 7: Operativsystem Introduktion. Klassificering. Vad är ett operativsystem? Program som kontrollerar andra andra program. Gränssnitt mellan användare och hårdvaran. Kärnan. Historisk översikt. Typeset by FoilTEX 1 Typeset by FoilTEX 2 Styr operativsystemet datorn? Operativsystemet är ett datorprogram. - Exekveras av CPU. - Måste släppa kontrollen till andra program för att arbeta skall utföras. - Måste lita på att kontrollen ges tillbaka. Målsättning med operativsystem Bekvämlighet: gör datorn mera lätt använd. Effektivitet: gör det möjligt att använda datorsystemets hårdvara effektivt. Vad är det för skillnad på OS och vanliga program? Typeset by FoilTEX 3 Typeset by FoilTEX 4
Operativsystemets uppgifter Operativsystemet som resursfördelare Abstraktion: skall erbjuda en enkel (abstrakt) maskin till användare. - Exempel: Virtuellt minne mycket större än Primärminne. Standardiserade gränssnitt: portabla applikationsprogram. Fördelning av resurser: - Flera processer delar en processor. - Flera program delar fysiskt minne. - Flera användare och filer delar en hårddisk. - Flera program delar nätverksbandbredd. Typeset by FoilTEX 5 Typeset by FoilTEX 6 Tjänster Skapa program. Exekvera program. Olika typer av Operativsystem (1) Enanvändarsystem: - PC, Enkla kommandon, Implementation av filsystem, I/O hantering. Åtkomst till I/O enheter. Kontrollerad åtkomst till filer. Systemåtkomst. Säkerhetshantering. Felupptäckt, loggning,... Kontohantering. Typeset by FoilTEX 7 Typeset by FoilTEX 8
Olika typer av Operativsystem (2) Processstyrning eller övervakning. - Medicinska system. - Industriell processkontroll. - Tillförlitlighet. - Realtid. - Ingen operatör. Olika typer av Operativsystem (3) Databashantering. - Stora mängder data. - Stöd för sökning. - Frågespråk. Typeset by FoilTEX 9 Typeset by FoilTEX 10 Olika typer av Operativsystem (4) Transaktionssystem. - Biljettbokning, Bankomat. - Databas med realtidsuppdatering. - Samtidiga transaktioner. Olika typer av Operativsystem (5) Generella system - IDAs PUL. - Olika applikationer. - Många användare. Typeset by FoilTEX 11 Typeset by FoilTEX 12
Interaktionsmöjligheter (1) Interaktiv bearbetning. - Tangentbord/bildskärm. - Kallas real-time processing, on-line processing. Batch (satsvis bearbetning). - Ladda in ett program och låt det köra utan vidare interaktion. Interaktionsmöjligheter (2) Uniprogramming - Ett program exekveras i taget tills det avslutas. Multiprogramming - Flera program. - CPUn byter mellan program. - Problem: resurser som CPU, minne, etc, måste delas. Typeset by FoilTEX 13 Typeset by FoilTEX 14 Interaktionsmöjligheter (3) Fleranvändarsystem Operativsystemets struktur Lökmodellen. - Flera samtidiga användare. - Delar CPU tid ( time sharing ). - Delar primärminnesrymd. - Minnesskydd. Typeset by FoilTEX 15 Typeset by FoilTEX 16
Kärnan Gränssnitt mellan operativsystem och hårdvaran. Processhantering: - Representation av processer. - Delande av CPU. - Kommunikation mellan processer. - Avbrottshantering. Processer Exekvering av ett program svarar mot en process. En process representeras av ett Process Kontroll block. - Processidentitet - Tillstånd. - Prioritet. - Programräknare. - Registerinnehåll. - Minnnesutrymme (övre och undre gräns). - I/O status information. - Bokföring. Använd CPU tid, etc. Ett program kan exekveras samtidigt av flera processer. Typeset by FoilTEX 17 Typeset by FoilTEX 18 Processrepresentation (UNIX) Processtabellen Process 0 skapas vid bootning. Övriga av fork. Vissa processer är systemprocesser. Innehåll i en process: - Information om var processen finns (kan vara swappad). - Tillstånd, Storlek, Användaridentitet, Processidentitet. - Information för att hantera schemaläggning, använd exekveringstid, resursutnyttjande. - Minnesutrymme. Information kan visas med ps eller top. Typeset by FoilTEX 19 Typeset by FoilTEX 20
Hårdvarustöd (1) Avbrottsmekanism - Upptäcka avbrott, spara programräknaren (PC), hopp till avbrottshanteringsrutin. - Ta över/släppa kontroll över CPU. Minnesskydd - Skydda det minnesutrymme som hör till en viss process ifrån andra samtidiga processer. Hårdvarustöd (2) Priviligerade iunstruktioner - Farliga instruktioner kan bara exekveras av OS. - Exempelvis förändring av interna adressregister. Realtids klocka. - Processer skall inte kunna ta över CPU för länge. Typeset by FoilTEX 21 Typeset by FoilTEX 22 Avbrott Två typer av avbrott. Avbrottshantering (1) 1. Spara programräknaren (PC). Lagra adressen till avbrottshanteringsrutinen. Externa avbrott - Exempelvis från I/O enhet vid direktminnesåtkomst. Interna avbrott. - Aritmetriska fel. Division med noll. - Timeout. - Felaktig minnesåtkomst. - Hårdvarufel. Typeset by FoilTEX 23 Typeset by FoilTEX 24
Avbrottshantering (2) Spara registerinnehåll för det avbrutna programmet. - Spara register som används av avbrottshanteringen. - Spara alla register. Exempelvis vid byte av aktiv process. Bestäm orsak till avbrott. Exekvera rätt rutin. Återskapa sparade register. Schemaläggning Schemaläggning är myckeln till multiprogrammering. Long term - vilka processer skapas/avslutas. Medium term - vilka processer lagras helt eller delvis i primärminnet. short term - exekveringsordningen för aktiva processer. I/O schemaläggning. Processer köar till olika I/O enheter. Återställ PC. Typeset by FoilTEX 25 Typeset by FoilTEX 26 Long term scheduling Bestämmer vilka program som släpps in för exekvering. Kontrollera graden av multiprogrammering. Efter att processen laddats till primärminnet tar short term scheduler över. Medium term scheduling Swap Del av minneshanteringssystemet. Vilka processer finns i primärminnet och vilka finns i swapminnet? Swappad process hanteras av medium term scheduler. Typeset by FoilTEX 27 Typeset by FoilTEX 28
Short term scheduling Det mest frekventa schemaläggnings beslutet. Hanteras av en dispatcher i operativsystemskärnan. Vilken aktiv process får tillgång till CPU under nästa tidsenhet? Regler för dispatching Processen överlämnar kontroll t.ex vid I/O operation. Prioritetsbaserad schemaläggning: - Externa prioriteter från användare. - Interna prioriteter baserat på hur länge processen har väntat, hur ofta processen gör I/= anrop, etc. Tidsdelningssystem. Typeset by FoilTEX 29 Typeset by FoilTEX 30 Tidsdelningssystem Processtillstånd Varje process får ett tidskvantum. Ofta 10-100 millisekunder. Varje användare kan ges känslan av att vara den enda användaren på systemet. Typeset by FoilTEX 31 Typeset by FoilTEX 32
Sammanfattning Operativsystemet är ett program som alla andra. Operativsystemets uppgift är att - styra exekveringen av andra program. - fördela datorsystemets resurser (CPU tid, I/O enheter,... ). Operativsystemet måste släppa kontrollen över CPU. Avbrotts mekanismen ger tillbaka kontrollen. Operativsystemet förbrukar CPU tid och minne. Solaris kräver ungefär 8MB utrymme i primärminne. Historisk översikt De tidigaste datorerna hade inget Operativsystem. 1960 (tidigt): System för att exekvera job på batch-system. 1960-1970: - OS/360 gemensamt operativsystem för IBM/360 serien. Hårddisk. - Tidsdelingssystem (Multics). 1969: Första versionen av UNIX vid Bell Labs (eller Unics efter Multics). - 1971: The UNIX Programmer s Manual. - 1973: UNIX skrivs om i C. Portabelt. - Flera liknande OS för Stordatorer. 1973: Xerox Alto arbetsstation. Första fönsterhanteringssystemet. Typeset by FoilTEX 33 Typeset by FoilTEX 34 Historisk översikt (2) 1974-76: CP/M för Intel-baserade mikrodatorer. Historisk översikt (3) 1983: Apple Lisa. OS med multitasking, virtuellt minne, fönster system. 1980: Xenix från Microsoft. UNIX version för mikrodatorer. 1981: MS-DOS från Microsoft. Kopia av CP/M. 1982: SunOS (nu Solaris). 1990-1995: Mikrodatorer klarar fönster hantering, multitasking, etc. Linux, Microsoft Windows, IBM OS/2, MacOS. Typeset by FoilTEX 35 Typeset by FoilTEX 36