Introduksjon til operativsystemerheim.ifi.uio.no/~inf103/Forelesninger/uke-44o.pdf · Introduksjon...
Transcript of Introduksjon til operativsystemerheim.ifi.uio.no/~inf103/Forelesninger/uke-44o.pdf · Introduksjon...
Introduksjon Operativsystemer 1
Introduksjon til operativsystemer
Kjell Åge BringsrudINF103
Introduksjon Operativsystemer 2
Hvorfor operativsystemer?
❒ Hardwaren i en enkelt maskin er i prinsippet i stand til å utføre ett program
❍ Når maskinen slås på begynner den å utføre en og en instruksjon som er lagret på en eller annen måte
❍ Når siste instruksjon (”stopp”) er ferdig stopper hele maskinen.
❒ Men...❍ Hvordan kom programmet inn i maskinen i
utgangspunktet? Innholdet i RAM blir jo borte når man slår av maskinen.
❍ Det må altså være et program inne i maskinen allerede før den starter å kjøre et program...?
Introduksjon Operativsystemer 3
Praktiske hensyn
❒ Det må være mulig å laste inn, starte og avslutte programmer uten at maskinen ”slår seg av”.
❒ Det er upraktisk at programbiter som alle programmer trenger må være inneholdt i hvert enkelt program
❍ I/O – kontroll av skjerm, tastatur, disker, nettverk...❒ Brukergrensesnittet til maskinen bør være enklere
enn at man må skrive et program for hver enkelt ting man ønsker å gjøre.
❍ Filsystemer, kopiering, flytting og sletting av filer❍ Utskrift av filer til skjerm eller skriver❍ ...
Introduksjon Operativsystemer 4
Samtidighet
❒ Bedre utnyttelse av maskinen ved at ❍ Man kjører flere programmer samtidig
• Skriver i en teksteditor samtidig som • mailsystemet sjekker om det er mail til deg, og• Klokken på skjermen oppdateres hvert sekund• ...
❍ Flere brukere på samme maskin• Flere kan være logget inn på ”mjollnir” samtidig• Hver av disse kan kjøre flere programmer
❍ Flere prosesser på samme maskin• En som trenger mye diskIO (Web-server), og• en som trenger mye CPU-kapasitet (f.eks.
vitenskapelige beregninger)
Introduksjon Operativsystemer 5
Samtidighet
❒ De forskjellige former for samtidighet gir tilleggsproblemer
❍ Hvordan kjøre flere programmer ”samtidig” på en CPU?❍ Hvordan sørge for at de forskjellige programmene ikke
går i bena på hverandre (overskriver hverandres data f.eks.)
❍ Hvordan kontrollere de forskjellige programmenes tilgang til skjerm, disk, skriver, nettverk?
❒ Denne forelesningen gir innsikt i hva et operativsystem er, og hvordan det kan løse slike problemer
Introduksjon Operativsystemer 6
Basis Operativsystem
❒ Et eller flere programmer❍ Hvorav ett er det som startes når maskinen slås
på❍ Aksepterer og utfører kommandoer og
forespørsler fra brukeren og fra brukerens programmer
❍ Det laster, kontrollerer og eksekverer programmer
❍ Styrer bruken av hardwareressurser på maskinen
Introduksjon Operativsystemer 7
Komponenter
❒ Brukeren får tilgang til maskinen gjennom et ”shell” eller et grafisk grensesnitt som er en del av operativsystemet
❒ Applikasjons-programmene får tilgang til hardwareressurser gjennom ”skedulering” og operativsystemkall
Introduksjon Operativsystemer 8
Operativsystemtjenester
❒ Operativsystemet må inneholde❍ Grensesnitt både for bruker og for
applikasjonsprogrammer❍ Støtte for filer. (filsystem, filadministrasjon)❍ Støtte for I/O som kan benyttes av alle
programmer (til tastatur, skjerm, nettverkskort...)
❍ Oppstartsrutiner (bootstrap/boot)❍ Støtte for nettverksfunksjonalitet (IP, TCP...)❍ Støtte for ”samtidighet”
Introduksjon Operativsystemer 9
Sammenheng mellom enkelte komponenter.
Introduksjon Operativsystemer 10
Resident / non Resident
❒ RAM er en begrenset ressurs, så det er bare deler av operativsystemet som er lastet inn til enhver tid.
❍ Inneholder typisk kommandotolkeren, avbruddshåndtering pluss enkelte andere komponenter
❍ Dette kaller vi den ”residente” delen.❒ Den non-residente delen av operativsystemet blir
bare lastet inn når den trengs❍ Disk-formatering f.eks.
❒ Bootstrap-koden er i de fleste maskiner lagret i ROM
❍ Inneholder kode for å laste den residente delen av operativsystemet inn i RAM, og starte den.
❍ Kjøres automatisk når maskinen slås på.
Introduksjon Operativsystemer 11
Single-user single-task
❒ Er knapt i bruk lenger❒ MS-DOS er et eksempel❒ Vi studerer allikevel denne modellen
innledningsvis, da den er et naturlig føsrte skritt i retning av mer moderne operativsystemer.
Introduksjon Operativsystemer 12
MS-DOS
❒ Resident del består av tre komponenter:❒ Kommandogrensesnittet/shell
❍ Inneholder en del av de viktigste kommandoene❍ De mindre viktige kommandoene er non-resident❍ Ligger på filen ”COMMAND.COM”
❒ I/O-rutiner❍ Deler av dette ligger i ”BIOS” som er lagret i
ROM❍ Tilleggsfunksjonalitet lastes fra filen ”IO.SYS”
❒ Filsystemet❍ Ligger på ”MSDOS.SYS”
Introduksjon Operativsystemer 13
Utlegg av minne i MS-dos
❒ Legg merke til at operativsystemet okkuperer en veldefinert del av hukommelsen
❒ Applikasjonsprogrammene får det som ”blir igjen”
❒ Detaljene i dette utlegget er ikke så viktige, men prinsippene om deling mellom OS og applikasjoner er almengyldige.
Introduksjon Operativsystemer 14
En arbeidsiterasjon i et slikt system
Introduksjon Operativsystemer 15
En arbeidsiterasjon i et slikt system forts
Introduksjon Operativsystemer 16
Men hvordan får OS tilbake kontrollen ?❒ Ved at programmet ”terminerer”.
❍ Dvs. At den overfører kontrollen tilbake til kommandoløkken.
❒ Når programmet utfører en fil- eller en annen I\O-operasjon
❍ Programmet anmoder operativsystemet om å utføre operasjonen for seg.
❍ Dette tillater OS å utføre noen sikkerhetssjekker.❒ Når brukeren ønsker å avbryte kjøringen
❍ Dette er av og til nødvendig, f.eks. ved evige løkker...❍ I mange OS er dette knyttet til kombinasjonen
”Control-C”
Introduksjon Operativsystemer 17
Multitasking
❒ Dette er et begrep som er knyttet til at en maskin (og dermed et OS) kan ha flere programmer som kjører samtidig.
❒ De aller fleste operativsystemer idag er multitasking❍ Med mulig unntak for enkelte mobiltelefoner og
håndholdte maskiner.❒ Multitasking presenterer en rekke
tilleggsutfordringer til operativsystemer❍ Fordeling av CPU-tid, tilgang til disk, RAM etc.
Introduksjon Operativsystemer 18
CPU-skedulering
❒ Utnytting av venting på I/O, og time/slicing.
Introduksjon Operativsystemer 19
Byggestener i et OS
1. Grensesnitt mot applikasjonsprogrammer og bruker
2. Filsystem3. I/O kontrollsystem4. Prosesskontrollsystem og
interprosesskommunikasjon5. Minneadministrasjon6. Skedulering7. Diskadministrasjon8. Systembeskyttelse9. Nettverksfunksjonalitet10. Støtte for systemadministrasjon
Introduksjon Operativsystemer 20
Merk
❒ Listen av byggestener er ikke absolutt❒ Enkelte OS mangler enkelte av delene❒ Andre OS har tillegsmoduler
❍ Monitor for hele systemet❍ Feilhåndtering❍ ...
❒ Noen moduler er synlige for sluttbruker❍ Spesielt brukergrensesnittet
❒ Andre er interne, men de fleste modulene har et API som gjør tjenestene deres tilgjengelige for applikasjonsprogrammer.
Introduksjon Operativsystemer 21
Brukergrensesnitt
❒ Kommandolinjebasert❍ MS-DOS❍ UNIX
• C-shell, Bourne shell, etc.• Flere shell mulige på samme tid, ikke tett integrert i
OS.❍ Tillater ”scripting”
• Filer med shell-kommandoer og flyt-kontroll uttrykk• Kan kjøres som programmer
❒ Grafisk❍ Basert på musklikk, musbevegelser og rullgardinmenyer❍ Enkelt å lære, lett å bruke❍ Vanskeliggjør integrerte scripting muligheter (jfr.
Mackintosh sin gamle ”opptaks” funksjon).
Introduksjon Operativsystemer 22
Filsystem
❒ En fil er en ”logisk” lagringsenhet identifisert ved et navn
❍ Logisk først og fremst for den som har laget filen❒ Et filsystem kobler hver logiske lagringsenhet til
detfysiske stedet der den er lagret.❒ Filsystemets oppgaver er
❍ Vedlikeholde kataloger over filer og ledig diskplass, og over hvor disse er lokalisert.
❍ Tilby muligheter til å manøvrere i filstrukturen, flytte, kopiere, lese og fjerne filer
❍ Sikkerhetsmekanismer som beskytter filer mot uautorisert tilgang og endring.
❍ Skjule egenskapene til underliggende hardware (Disk og diskett skal kunne brukes på samme måte).
Introduksjon Operativsystemer 23
I/O kontrollsystem
❒ Består av drivere for hver enkelt ekstern ”fysisk” komponent i systemet.
❍ Skriver, nettverkskort, scanner...❒ Enkelte av driverene ligger i ROM slik at de kan
benyttes under bootstrap❍ Tastatur, skjerm, enkle disk-funksjoner.
❒ Drivere for nyinstallert hardware må legges til og integreres i OS.
❍ Når du har kjøpt ny skriver må du ofte installere driveren, og så starte maskinen på nytt.
❒ Filsystemet bruker disk-driveren til å skrive data til forskjellige sektorer på disken.
Introduksjon Operativsystemer 24
Prosesskontroll
❒ En prosess er (noe forenklet) et program som kjører.
❒ Hver prosess har noen attributter som OS må administrere❍ Plass i hukommelsen, programteller,
registerverdier, åpne filer etc.❍ Hvorvidt den kjører, venter på I/O, er klar til å
kjøre, er terminert.❒ Prosesskontrollen står for denne
administrasjonen, samt for interprosesskommunikasjon.
Introduksjon Operativsystemer 25
Minneadministrasjon
❒ Har oppgaven med å laste inn programmer i minnet på en slik måte at alle lastede programmer får tilstrekkelig med hukommelse.
❒ Holder rede på hvilke deler av hukommelsen er brukt av hvilke programmer
❒ Holder rede på ledig hukommelse❒ Hindrer programmer i å skrive og lese utenfor sitt
område.❒ Vedlikeholder køer av programmer som venter på å
få tildelt hukommelsesplass❒ Allokerer hukommelse til førstemann i køen når et
blir plass❒ Deallokerer hukommelsen til et program som har
terminert.
Introduksjon Operativsystemer 26
Skedulering
❒ OS må allokere CPU tid til hvert enkelt program som kjører.
❒ Høy-nivå skedulering❍ Velger programmer som skal få lov til å legges i
prosesseringskøen.❍ (for mange aktive programmer får hele
systemet til å gå tregere)❒ Dispatching
❍ Valg av prosess i prosesseringskøen som slipper til CPU’en nå
Introduksjon Operativsystemer 27
Skedulering forts.
❒ Dispatching skjer i henhold til system-policy❍ Alle får like mye, eller❍ Totalytelsen til systemet skal bli best mulig,
eller❍ Noen programmer har høyere prioritet enn
andre❒ Dispatcher foretar også ”kontekstbytte”
❍ Bytte av den prosessen som er aktiv på CPU’en❒ Kan være preemptive, eller non-preemptive.
Introduksjon Operativsystemer 28
Diskadministrasjon
❒ Skedulerer diskforespørsler fra forskjellige brukere og programmer for å bedre ytelsen
❒ Det enkleste er en FIFO kø.❍ Lønner seg ikke med tanke på at disk-lesing krever fysisk
vandring av disk-hodet.❍ Tar ikke hensyn til at prosesser kan ha forskjellig
prioritet.❒ Diskadministratoren kan velge å lese alle
etterspurte datablokker i en ende av disken, før den lese data fra den andre enden.
Introduksjon Operativsystemer 29
Sikkerhet og beskyttelse
❒ I moderne OS kan applikasjonsprogrammer bare aksessere data i sitt eget hukommelsesområde direkte.
❒ Tilgang til andre fasiliteter (Disk, I/O andre deler av hukommelsen) må den be operativsystemet om å utføre for seg, eller om lov til å benytte.
❒ Dette gir OS full kontroll over hvordan hver enkelt ressurs benyttes av hvert enkelt program
❒ Operativsystemet tildeler rettigheter til brukerprosessene i en egen ”beskyttet” modus.
❒ Dette er gjerne støttet i hardware ved design av CPU’en.
Introduksjon Operativsystemer 30
Nettverksfunksjonalitet
❒ Bygger på I/O-tjenestene❒ Implementerer kommunikasjonstjenester
på toppen av disse❍ IP❍ TCP❍ Filoverføring❍ Telnet/fjerninnlogging❍ Fjernprosedyrekall❍ ...
Introduksjon Operativsystemer 31
Systemadministrasjon
❒ Konfigurering av systemet❍ Montering og avmontering av disker❍ Fordeling av diskplass❍ Max. Størrelse på køer etc.
❒ Brukeradministrasjon❍ Oppretting og fjerning av brukere❍ Tildeling av rettigheter❍ ...
Introduksjon Operativsystemer 32
Systemgenerering
❒ Tilpassing av et operativsystem til en gitt installasjon/maskin
❍ Ta med bare de drivere som er nødvendige❍ Ta med bare de modulene som trengs❍ Parametrisere antall samtiditge brukere, interrupt
kanaler etc.❒ Fleksibiliteten varierer fra OS til OS❒ Noen OS gir full tilgang til kildekode (Linux)❒ Andre tar systemgenereringsparametre fra en fil❒ Atter andre avføler systemet ved oppstart, og
installerer de komponenter som trengs.
Introduksjon Operativsystemer 33
OS-organisering
❒ Ingen standardisert enighet-slik som det for eksempel er for kompilatorer og kommunikasjonsprotokoller
❒ Tre vanlige modeller❍ Monolittisk❍ Lagdelt, hierarkisk❍ mikrokjerne
Introduksjon Operativsystemer 34
Monolittisk
❒ F. eks UNIX❒ Residente deler av
systemet ligger i en monolittisk kjerne
❒ Tilgang til disse er styrt gjennom shell
❒ Tilleggsmoduler ligger utenpå disse igjen
❒ Ulempen med en monolittisk kjerne er stabilitet og integritet – en defekt driver kan ta livet av hele systemet.
Introduksjon Operativsystemer 35
Lagdelt
❒ Det ytterste laget er det eneste som er synlig for brukeren
❒ Hvert lag bruker tjenester fra lagene innenfor, aldri omvendt
❒ Inneffektivt med mange kall utenfra og inn
❒ Fordeler er stabilitet og integritet.
Introduksjon Operativsystemer 36
Mikrokjerne
❒ Kjerne med minimal funksjonalitet (avbruddshåndtering, hukommelses-administrasjon, skedulering)
❒ Andre tjenester i moduler.❒ Kjernen bruker modulene etter en klient-tjener modell❒ Fordel med modulært design – moduler kan byttes ut, portabelt,
utvidbart❒ Mye meldingsoverhead
Introduksjon Operativsystemer 37
Operativsystemkategorier
❒ Single-user, single-tasking❍ Historisk viktig, men sjeldne nå (unntatt i
enkelte PDA’er)❒ Single-user, multitasking
❍ De fleste PC’er og arbeidsstasjoner er konfigurert slik, selv om de kan konfigureres som flerbrukermaskiner.
❒ Multiuser, multitasking❍ Gamle ”stormaskiner”. OS for mindre maskiner
har gjerne funksjonaliteten som skal til, men bortsett fra enkelte tjenere er det sjelden i bruk.
Introduksjon Operativsystemer 38
Operativsystemkategorier forts.❒ Distribuerte operativsystemer
❍ Under rivende utvikling ❍ Støtte for administrasjon av distribuerte ressurser.❍ Støtte for ”Remote Method Invocationn” (F. Eks CORBA)
❒ Nettverkstjenere.❍ Ligner flerbrukersystemer på mange måter, men er
hovedsaklig belastet med å betjene klienter over et nettverk.
❍ Backup, databasetjener, skrivertjenester etc.❍ Benyttes gjerne som multiuser-maskiner i tillegg.
Introduksjon Operativsystemer 39
Operativsystemkategorier forts.❒ Sanntids-systemer
❍ Brukes til anvendelser med harde sanntidskrav❍ Styring av fly, kjernereaktorer etc.❍ Gir svært høy prioritet til avbrudd for
prosessering av sanntids programmer.❒ Innbakte (embedded) systemer
❍ Spesialisert for å kontrollere en enkelt type utstyr – en bil, en mobiltelefon, en mikrobølgeovn, en innbruddsalarm, en ...
Introduksjon Operativsystemer 40
Historisk utvikling
❒ De første maskinene❍ Slutten av 40-tallet: Intet operativsystem❍ En ”ingeniør” programmerte maskinen ved hjelp
av ledninger eller brytere❒ Slutten av 50-tallet
❍ Lastet inn programmer vha. kortlesere❒ 1963 Burroughs Master Control Program
❍ Høynivå språk❍ Virtuelt minne
Introduksjon Operativsystemer 41
Historisk utvikling forts.
❒ 1964 IBM OS/360❍ Enkel multiprosessering og skedulering
❒ (MULTICS og) UNIX❍ Multitasking, time-sharing, hierarkisk filsystem,
C, interprosesskommunikasjon, enkle nettverksfasiliteter, og enkel støtte for distribusjon.
❒ På 70-tallet XEROX PARC, senere Apple❍ Grafisk brukergrensesnitt
Introduksjon Operativsystemer 42
Historisk utvikling forts.
❒ 1982 IBM Personal Computer❍ PC-DOS/MS-DOS❍ Back to basic ”Single user- single task”❍ Vikig på grunn av sin utbredelse❍ Senere forbedret på mange punkter❍ Forbedringene inspirert av UNIX (hierarkisk
filstruktur, kommandoset, memory-håndtering etc.) og av Macintosh OS (brukergrensesnitt, vindussystem).
Introduksjon Operativsystemer 43
Fremdeles rom for utvikling
❒ Maskiner tas i bruk på nye områder i stadig høyere tempo
❒ Høyere ytelse på hardware-komponentene stiller nye krav til OS hva gjelder å gjøre denne ytelsen tilgjengelig for brukerene.
❒ Nye anvendelser med sanntidskrav stiller OS overfor nye utfordringer.
❒ Internettet åpner for distribuert prosessering. OS er en sentral komponent i realiseringen av mulige fremtidige anvendelser.