Introduksjon til operativsystemer Kjell Åge Bringsrud INF103 Introduksjon Operativsystemer 1
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 2
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 3
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 4
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 5
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 6
Komponenter Brukeren får tilgang til maskinen gjennom et shell eller et grafisk grensesnitt som er en del av operativsystemet Applikasjonsprogrammene får tilgang til hardwareressurser gjennom skedulering og operativsystemkall Introduksjon Operativsystemer 7
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 8
Sammenheng mellom enkelte komponenter. Introduksjon Operativsystemer 9
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 10
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 11
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 12
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 13
En arbeidsiterasjon i et slikt system Introduksjon Operativsystemer 14
En arbeidsiterasjon i et slikt system forts Introduksjon Operativsystemer 15
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 16
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 17
CPU-skedulering Utnytting av venting på I/O, og time/slicing. Introduksjon Operativsystemer 18
Byggestener i et OS 1. Grensesnitt mot applikasjonsprogrammer og bruker 2. Filsystem 3. I/O kontrollsystem 4. Prosesskontrollsystem og interprosesskommunikasjon 5. Minneadministrasjon 6. Skedulering 7. Diskadministrasjon 8. Systembeskyttelse 9. Nettverksfunksjonalitet 10. Støtte for systemadministrasjon Introduksjon Operativsystemer 19
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 20
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 21
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 22
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 23
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 24
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 25
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 26
Skedulering forts. Dispatching skjer i henhold til systempolicy 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 27
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 28
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 29
Nettverksfunksjonalitet Bygger på I/O-tjenestene Implementerer kommunikasjonstjenester på toppen av disse IP TCP Filoverføring Telnet/fjerninnlogging Fjernprosedyrekall... Introduksjon Operativsystemer 30
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 31
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 32
OS-organisering Ingen standardisert enighet-slik som det for eksempel er for kompilatorer og kommunikasjonsprotokoller Tre vanlige modeller Monolittisk Lagdelt, hierarkisk mikrokjerne Introduksjon Operativsystemer 33
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 34
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 35
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 36
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 37
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 38
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 39
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 40
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 41
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 42
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. Introduksjon Operativsystemer 43