Föreläsning 1
Download
Report
Transcript Föreläsning 1
Översikt av operativsystem (kap 1 & 2)
Vad är ett operativsystem?
Vilka komponenter innehåller ett
operativsystem?
Vilka tjänster erbjuder operativsystemet till
användare, processer och andra system?
På vilka olika sätt kan man strukturera ett
operativsystem?
Operating System Concepts – 8th Edition
1.1
Silberschatz, Galvin and Gagne ©2009
Vad är ett operativsystem (OS)?
Ett program som agerar mellanhand mellan användarna
och datorns hårdvara. OS:et kontrollerar hårdvaran och
fungerar som en bas för applikationsprogram.
Mål för ett operativsystem:
Köra användarprogram och underlätta för användaren
att lösa problem
Användarvänlighet
Prestanda
Effektivt användande av resurser
Operating System Concepts – 8th Edition
1.2
Silberschatz, Galvin and Gagne ©2009
Vad ingår i operativsystemet?
Det finns ingen universell accepterad definition,
men vanligast är….
”Det program som alltid är igång” – också kallad
kärnan (the kernel)
Allting annat är antingen systemprogram eller
applikationsprogram
Operating System Concepts – 8th Edition
1.3
Silberschatz, Galvin and Gagne ©2009
Multiprogrammering
OS:et kan ha flera program i minnet samtidigt
Anledning: ett enda program använder sällan all CPU-tid
(eller alla I/O-enheter)
När ett program befinner sig i vänteläge växlar CPU:n till
nästa
När CPU:n växlar så fort mellan program att
användaren kan interagera med alla dessa kallas det
time sharing (eller multitasking)
Svarstiden bör vara < 1 sekund
Operating System Concepts – 8th Edition
1.4
Silberschatz, Galvin and Gagne ©2009
Operationer i operativsystemet
Moderna OS är avbrottsdrivna (interrupt driven)
För varje typ av avbrott finns en service-rutin
OS:et måste kunna skydda sig självt och andra systemkomponenter
Dual-mode (user mode och kernel mode) – bit i hårdvaran
Vissa instruktioner är priviligerade – får bara köras i kernel mode
Operating System Concepts – 8th Edition
1.5
Silberschatz, Galvin and Gagne ©2009
Processhantering
Ett program som exekverar (körs) kallas för en process
Ett system består av både operativsystemprocesser och
användarprocesser
En process behöver resurser (t ex CPU-tid, minne, filer, I/O) –
allokeras av operativsystemet
OS:et ansvarar också för följande:
Skapa och avsluta processer
Schemaläggning av processer
Synkronisering av processer
Kommunikation mellan processer
Operating System Concepts – 8th Edition
1.6
Silberschatz, Galvin and Gagne ©2009
Minneshantering
Vad skall ligga i minnet vid varje tillfälle?
OS:et försöker optimera både CPU-utnyttjandet och
svarstiden för användarna
OS:et ansvarar för följande:
Hålla reda på vilka delar av minnet som används och
av vem
Bestämma vilka processer och data som skall flyttas
in i och ut ur minnet
Allokera och avallokera minne efter behov
Operating System Concepts – 8th Edition
1.7
Silberschatz, Galvin and Gagne ©2009
Lagringshantering
All information lagras i logiska lagringsenheter – filer
Filerna är oftast organiserade i kataloger
OS:et ansvarar för följande:
Skapa och ta bort filer och kataloger
Tillhandahåller primitiver för att manipulera filer och kataloger
Lagra filer på sekundärminne
Bestämma vem som får accessa vad
Filerna kan lagras på olika fysiska media med olika egenskaper
(kapacitet, access-tid mm)
OS:et ansvarar för allokering av diskutrymme, hantering av ledigt
utrymme och diskschemaläggning
Operating System Concepts – 8th Edition
1.8
Silberschatz, Galvin and Gagne ©2009
I/O-systemet
Ett av syftena med ett operativsystem är att gömma
detaljer om specifika hårdvaruenheter för användaren
OS:et ansvarar för följande:
Buffra och cacha I/O-data
Ha ett generellt drivrutinsgränssnitt
Ha drivrutiner för de specifika hårdvaruenheterna
Operating System Concepts – 8th Edition
1.9
Silberschatz, Galvin and Gagne ©2009
Skydd och säkerhet
Access till data måste regleras i ett system med flera
användare och/eller där flera processer kan exekvera
samtidigt
Skydd – mekanismer som kontrollerar processers eller
användares access till operativsystemet
Säkerhet – Försvar mot interna och externa attacker
Virus, maskar, denial-of-sevice, identitetsstöld
Operating System Concepts – 8th Edition
1.10
Silberschatz, Galvin and Gagne ©2009
Tjänster i operativsystemet
Operating System Concepts – 8th Edition
1.11
Silberschatz, Galvin and Gagne ©2009
Användartjänster
Användargränssnitt – CLI, GUI, batch
Programexekvering
I/O-operationer – access av filer och I/O-enheter
Filsystemsoperationer – skapa, läsa och skriva filer mm
Kommunikation – processer kan behöva utbyta
information (internt eller externt)
Feldetektering
Operating System Concepts – 8th Edition
1.12
Silberschatz, Galvin and Gagne ©2009
Systemtjänster
Tjänster som ser till att systemet opererar effektivt:
Resursallokering
Bokföring – hålla reda på hur mycket resurser var och en
använder
Skydd och säkerhet
Operating System Concepts – 8th Edition
1.13
Silberschatz, Galvin and Gagne ©2009
Systemanrop
Gränssnitt för operativsystemets tjänster
Är oftast funktioner i C eller C++
Accessas oftast genom ett API
Win32 för Windows
POSIX för UNIX, Linux och Mac OS X
Java för JVM (Java Virtual Machine)
Portabilitet och enkelhet
Operating System Concepts – 8th Edition
1.14
Silberschatz, Galvin and Gagne ©2009
Exempel stdio.h (del av API)
Operating System Concepts – 8th Edition
1.15
Silberschatz, Galvin and Gagne ©2009
Exempel på systemanrop i Windows och Unix
Operating System Concepts – 8th Edition
1.16
Silberschatz, Galvin and Gagne ©2009
Systemprogram
Systemprogram är program som underlättar
programutveckling och exekvering. Olika kategorier
finns:
Filhantering – skapa, ta bort, kopiera, lista, skriva ut filer
Statusinformation – datum, tid, tillgängligt minne eller
diskutrymme
Filmodifiering – texteditorer
Programmeringsstöd – kompilatorer, debuggers,
länkare, laddare
Kommunikation – e-mail, Web, filöverföring, chat
Operating System Concepts – 8th Edition
1.17
Silberschatz, Galvin and Gagne ©2009
Design och implementation av OS
Designen är beroende av hårdvaran och typ av system
Användarmål och systemmål
Användarmål – lätt att använda och lära sig, snabbt, pålitligt och
säkert
Systemmål – lätt att designa, implementera och underhålla,
flexibelt, pålitligt, felfritt och effektivt
Implementation
Skrivs oftast i ett högnivåspråk (C eller C++)
Bara en liten del av koden är prestandakritisk
Viktigt med bra datastrukturer och algoritmer
Operating System Concepts – 8th Edition
1.18
Silberschatz, Galvin and Gagne ©2009
Enkel struktur – MS-DOS
Operating System Concepts – 8th Edition
1.19
Silberschatz, Galvin and Gagne ©2009
UNIX
Operating System Concepts – 8th Edition
1.20
Silberschatz, Galvin and Gagne ©2009
Lagrad struktur
Operating System Concepts – 8th Edition
1.21
Silberschatz, Galvin and Gagne ©2009
Mikrokärnor
Flyttar så mycket som möjligt från kärnan till user space
Kommunikation sker mellan användarmoduler genom utbyte av
meddelanden
Fördelar:
Lättare att bygga ut OS:et
Lättare att flytta till ny hårdvara
Pålitligare och säkrare
Nackdel
Sämre prestanda pga mycket kommunikation mellan kernel och
user space
Operating System Concepts – 8th Edition
1.22
Silberschatz, Galvin and Gagne ©2009
Mac OS X
Operating System Concepts – 8th Edition
1.23
Silberschatz, Galvin and Gagne ©2009
Modulbaserade OS
Består av en kärna och ett antal moduler som kan laddas in dynamiskt vid
behov
Operating System Concepts – 8th Edition
1.24
Silberschatz, Galvin and Gagne ©2009
Virtuella maskiner
En virtuell maskin tillhandahåller ett gränssnitt som är identiskt med den
underliggande hårdvaran
Skapar illusion att en process (ofta ett OS) har sin egen processor och sitt
eget minne
Flera OS kan köras i samma dator, var och en i sin egen virtuella maskin
Operating System Concepts – 8th Edition
1.25
Silberschatz, Galvin and Gagne ©2009
VMware
Operating System Concepts – 8th Edition
1.26
Silberschatz, Galvin and Gagne ©2009
The Java Virtual Machine
Operating System Concepts – 8th Edition
1.27
Silberschatz, Galvin and Gagne ©2009