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