Download - IKT for lærere

Transcript
Page 1: IKT for lærere

IKT for lærere

Introduksjon til operativsystemer

Jan HøibergNovember 2009

Page 2: IKT for lærere

Innhold• Generelt om operativsystemer

• Grensesnitt mot brukere og programmer

• Klassifisering av systemene

• Historikk (og religionskriger)

• Prosesshåndtering

• Minnehåndtering

• Filer og filsystem

• Styring av maskinvareenheter (device handling)

Page 3: IKT for lærere

Hva er et operativsystem (OS)?

En samling med programvare som “ligger mellom” brukeren/ brukerprogrammene og maskinens hardware .

Vanlige OS: Microsoft Windows, Linux, Mac Os X, BSD Unix.

OS'et er et (av mange) lag av abstraksjon som gjør datamaskinen “operativ” for oss – vi kan bruke den uten å vite hvordan hardware og nettverk og mye annet egentlig fungerer.

Page 4: IKT for lærere

OS’ets viktigste oppgaver

• Prosessorstyring• Minnestyring• Maskinvarestyring• Diskplasstyring (I/O)• Applikasjonsgrensesnitt• Brukergrensesnitt

Page 5: IKT for lærere

Brukeren og OS'et

Brukergrensesnittet mot OS:

- Vindussystem (GUI)

- Vanlige brukerprogrammer.

- Tekstbaserte “skall” (Linux)

Brukergrensesnittene gjør anvendelsen av OS’et og datamaskinen enklere for brukeren.

Page 6: IKT for lærere

Brukerprogrammer og OS'et

“Kjernen” i OS'et styrer prosessoren(e), RAM og periferienheter (disker, printere, nettverksporter, mus, etc.)

Brukerprogrammer (eks. Word, nettlesere) kommuniserer med hardware gjennom såkalte system-tjenester som tilbys fra kjernen gjennom et API.

OS'et forenkler dermed jobben for de som skal programmere datamaskinene.

Page 7: IKT for lærere

Klassifisering av OS• Spesialiserte real-time operativsystemer

Styringssystemer, sikkerhetskritisk programvare (ABS-bremser), trafikkkontroll – må garantere rask respons på endringer.

• Single-user – single-task

Én bruker kjører et program om gangen (MS-DOS, Palm)

• Single-user – multi-tasking (trad. PC)

Én bruker kan kjøre flere programmer ”samtidig” (Windows, Mac)

• Multi-user (krever multi-tasking)

Flere brukere deler maskinen (Linux/Unix, OS for servere, Windows 2000 og proprietære OS for tradisjonelle ”mainframes)

Page 8: IKT for lærere

OS-historikk (1)

Tidlige datamaskiner (ZUSE-X, ENIAC, Colossus, NUSSE) ble brukt til komplekse beregninger, programmert i hardware, pluggebord

og maskinkode. De hadde ikke noe operativsystem, men ble betjent av (oftest kvinnelige) operatører

Page 9: IKT for lærere

OS-historikk (2)

• Første OS fra IBM ca 1955, ”tvunget” fram av transistoren og FORTRAN – batchsystemer: Én jobb kjøres om gangen.

• Multitasking systemer kom på 1960-tallet for å unngå dyre mainframes på ”tomgang”.

• MULTICS – første multi-user system UNIX ca. 1969 (Ken Thompson)

• NB: GUI, mus, hypertekst, internett og videokonferanser ble demonstrert allerede i 1968 på ”The Mother of all demos” (Douglas Engelbart).

Page 10: IKT for lærere

OS-historikk (3)• Første GUI-OS fra Xerox Parc, 1973.

• Tekstbaserte OS for PC: MS-DOS og CP/M, ca. 1980.

• Første PC med GUI: Apple Macintosh, 1984 (stjålet fra Xerox).

• Windows 1.0, 1985 (saksøkt 1988).

• Unix med GUI i 1982

• Gratis open-source Unix for PC (Linux) i 1991.

• Arpanett fra 1968 ble til Internett (for Unix-brukere i Akademia) på 80-tallet.

• 1995 : ”Alle” får PC og nett-tilknytning, Microsoft Windows dominerer markedet.

Page 11: IKT for lærere

Hva slags OS får vi i fremtiden?

• 3D grensesnitt?:

– Microsoft Surface

– Beryl (for Linux)

• Konvergens av OS’ene på 2000-tallet:

– Windows mere stabilt.

– Linux mere brukervennlig.

– Mac OS X basert på BSD Unix.

• Får vi ett ”universelt” OS-GUI om noen år?

Page 12: IKT for lærere

OS og religionskrigen

religious war An argument, which usually takes place in a NEWSGROUP, in which the participants take violent, uncompromising positions. A typical religious war is that between the proponents of Microsoft's Windows operating system and non-Windows systems such as LINUX.

-- fra ”A Dictionary of the Internet”

Page 13: IKT for lærere
Page 14: IKT for lærere

"How I hate this damned machine,I wish that I could sell it,It never does what I want it to,But only what I tell it".

Page 15: IKT for lærere

Prosesser• En prosess er et program som kjører og alle ressursene

som trengs til dette (programkode, hukommelse, filer etc.).

• Operativsystemet starter, stopper og håndterer alle prosessene på maskinen.

• En prosess startes ved at OS’et laster programmet inn i RAM, reserverer ressursene som trengs og overlater deretter kontrollen/prosessoren til programmet.

• Alle data som tilhører en prosess lagres i en Process Control Block (PCB) som til enhver tid inneholder prosessens tilstand.

Page 16: IKT for lærere

Hvordan kommer det hele i gang?

• OS’et består selv av flere prosesser som kjører hele tiden for å kontrollere maskinen.

• Men: Hvordan kan maskinen starte når det ikke er noe OS til stede som kan sette i gang det hele? Hvem skal starte den første prosessen?

• Oppstart av maskinen kalles derfor ”bootstrapping”, i.e. ”løfte seg selv etter skolissene”.

• Når maskinen slås på kjøres først et program som kalles BIOS (Basic Input-Output System) som ligger ”brent” i hardware (ROM) og ikke må lastes i RAM.

• BIOS starter en ”boot-loader” som sørger for at OS’et lastes inn i RAM og starter den første OS-prosessen (”init” i Linux).

Page 17: IKT for lærere

Multi-tasking

• PC’en har (ofte) bare én prosessor (CPU), men kan tilsynelatende gjøre flere ting samtidig?

• Multi-tasking er mulig gjennom time-sharing:

– En prosess lastes inn, startes og får bruke CPU’en i et kort tidsintervall, ”time-slice”.

– OS’et gjør deretter et ”interrupt” som avbryter prosessen og lagrer unna prosessens PCB.

– Deretter lastes neste prosess (og dens PCB) inn og får kjøre inntil neste interrupt, osv.

• Byttet mellom to prosesser calles ”context switch”.

Page 18: IKT for lærere

Multi-tasking og trashing

• Typisk time-slice: 10 ms.• Context-switch: 0.001 ms • Trashing: OS’et bruker for

mye tid på å håndtere prosessene (eldre Windows).

• Trashing kan unngås ved å dele prosessene opp i mindre ”threads” som kjøres parallelt.

• Skifte mellom threads er vesentlig raskere enn å gjøre en full context switch.

Page 19: IKT for lærere

Multi-tasking med flere CPU’er

Page 20: IKT for lærere

Scheduling

• Problem: Når en prosess har kjørt ferdig i en time-slice, hvilken av de ventende prosessene skal velges som den neste som får kjøre?

• Finnes mange ulike algoritmer for scheduling.

• Vanligst er ”Round Robin”:

– Prosessene ”står i kø”. Førstemann i køen velges.

– En prosess som er ferdig må gå bakerst i køen.

– Prioritering gjøres ved å variere lengden på time-slice.

• Ulempe: RR kan ikke garantere responstider.

Page 21: IKT for lærere

Operativsystemet og minne

To hovedproblemer OS’et må løse:

• Hver prosess må ha nok minne til å kunne kjøre.

• Ingen prosesser må kollidere, i.e. bruke samme minneadresser. Vil forårsake program-crash eller at maskinen stopper (Windows 3.1X...).

Page 22: IKT for lærere

Tre hovedtyper av datamaskinhukommelse

• Høyhastighetscache:

Meget raskt minne som er ”nære” CPU.

• Hovedminne:

Random Acess Memory (RAM). BIOS “teller opp”/ sjekker RAM ved booting. VideoRAM på skjermkort regnes også med som hovedminne.

• Sekundærminne/virtuell hukommelse:

Dette er disken (harddisk med roterende magnet-plater eller Flash-memory). Brukes bare som minne hvis det er fullt i RAM, er svært mye langsommere.

Page 23: IKT for lærere

Minnehåndtering

• De forskjellige typene minne må brukes effektivt, slik at prosessene kjører så raskt mulig.

• Flytting av PCB’ene i minnesystemet må hele tiden gjøres slik at det er ”kort vei” fra CPU til dataene for den aktive prosessen.

• Algoritmene for minnehåndtering i et OS er svært kompliserte og av helt avgjørende betydning for datamaskinenes ytelse.

• Spesielt bør bruk av virtuell hukommelse unngås hvis mulig.

Page 24: IKT for lærere

”Memory is like an orgasm. It's a lot better if you don't have to fake it.”

-- Seymour Cray om virtuell hukommelse

Page 25: IKT for lærere

Filer og filsystem

• Fil: En samling data som logisk hører sammen: Word-dokument, webside, JPG-bilde, lyd- eller videoklipp i MPEG-format etc. Fysisk er en fil ofte spredt på disk.

• I Linux: En fil er et medium som data kan leses fra eller skrives til – dvs. alt er filer(!).

• OS’et må tilby brukere og programmer en systematisk måte for å lagre, finne igjen og beskytte filer i et filsystem.

• Filhåndtering var eneste reelle oppgave til en del tidlige ”primitive” operativsystemer som f.eks. MS-DOS (”Disk Operating System”).

Page 26: IKT for lærere

Hierarkiske filsystemer

• Filene organiseres i ”mapper” – en samling filer som ”hører sammen” (fra MULTICS, 1963).

• Mappen er også en fil, slik at mapper kan inneholde mapper -- vi får et hierarki (”et tre”) av mapper med en ”rot” på toppen.

• En mappe inneholder egentlig bare en liste med filene som ligger i mappen.

• Linux har bare et toppnivå i hierarkiet (aka ”root”).

• Windows har et mappe-tre (”drive”) for hver disk.

Page 27: IKT for lærere

Hva er ”inne i” filsystemet?

• Et ”tabellverk” med informasjon om alle filene (”I-node table” i Linux”, ”File Allocation Table” – FAT – i MS).

• Mappefiler med filnavn, som gir hierarkisk struktur.

• Metadata for ”bokføring” og organisering.

• Mekanismer for å lage, fjerne, flytte og finne igjen filer og mapper.

• Beskyttelse i form av tilgangsbegrensning til filene (for ”eier”, andre brukere av disken og ”resten av verden”).

Page 28: IKT for lærere

Flash-disk vs. vanlig hard-disk

• Flash-RAM (overskrivbar ROM, aka SSD) erstatter HD i små enheter og for flytting av data.

• Raskere enn HD, billigere enn RAM.

• Krever nye filsystemer:

– HD overskrives direkte, SSD må ”blankes” før skriving. Flash-filsystemer må utnytte ”tomgang” til å slette ledig plass.

– SSD trenger ikke å optimalisere søking.

– SSD ”slites ut” ved gjentatt overskriving, må spre data jevnere ut enn for en HD.

Page 29: IKT for lærere

Device-håndtering• External Device (ED): Hardware som ikke er på

maskinens hovedkort (motherboard): Disk, scanner, printer, CD/DVD-spiller, Flash-ROM, USB-, nettverk- og serie/parallelporter, etc.

• OS’et ”snakker med” ED gjennom små hjelpe-programmer som kalles ”drivere” (abstraksjon).

• En driver er en ”protokoll” som oversetter OS’ets systemkall til ED’ets ”innfødte” styresignaler.

• Et OS bør i størst mulig grad forholde seg til generiske drivere, for ikke å bli utdatert når teknologien endres.

• Drivere som er innebygget i OS’et kalles ”Plug & Play” (aka ”Plug & Pray” i tidlige utgaver).