Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
Forelesning 7 Operativsystemer
1
Input / output
En datamaskin er gjerne koblet til utstyr som skjerm, tastatur, mus,
harddisk, CD/DVD enheter, printer, …
En viktig oppgave for et operativsystem er å kommunisere med enheter
tilkoblet datamaskinen.
Typer input/output utstyr
Input/output utstyr kan deles i to kategorier etter hvordan det overfører
data
1. Blokk utstyr
2. Bokstav utstyr
1. Blokk utstyr
Blokk utstyr (Block Devices) lagrer data i blokker.
Harddisker, CD-ROM og USB-penner er eksempler på blokk utstyr.
Hver blokk har en adresse.
Vanlig størrelse på en blokk har vært mellom 512 bytes og 32768 bytes.
2. Bokstav utstyr
Bokstav utstyr (Character Devices) er en annen type input/output utstyr.
Bokstav utstyr sender og mottar data som bokstaver.
Eksempler på bokstav utstyr er tastatur, mus, skrivere og
nettverkstilkoblinger.
Utstyr som ikke er disker er oftest bokstav utstyr.
Forelesning 7 Operativsystemer
2
Problemet med input/output
Input og output har vært et problem innen operativsystemer.
En årsak er den store forskjellen i hastigheter i et datamaskinsystem.
Noen hastigheter for ulikt utstyr
Tastatur 10 bytes / sekund
Mus 100 bytes / sekund
72x CD-ROM 11 Mb / sekund
SAS disk 129 Mb / sekund
USB 3.0 400 MB/ sekund
PCI buss 528 MB / sekund
I prosessor og minne behandles data veldig raskt.
Kommunikasjon med perifere enheter går til sammenligning svært
langsomt.
1. Å skrive til skjerm er en langsom prosess.
2. Å skrive til fil er en langsom prosess.
3. En bruker som skriver på et tastatur venter ofte flere sekunder
før han taster et tegn.
Må unngå venting ved input/output
Å vente på input/output enheter er for prosessor dårlig utnyttelse av
tiden.
For å unngå venting brukes derfor mekanismer som bufring og direkte
tilgang til minne.
Forelesning 7 Operativsystemer
3
Forskjellige fabrikater
Enheter som knyttes til en datamaskin kan være av mange forskjellige
fabrikater.
For eksempel er det mange typer skjermer og skrivere.
Det ville være tungvint hvis programmerere skulle lage kode for hver type
skjerm eller skriver som skulle bruke programmet.
Operativsystemet tar seg av kommunikasjon med input/output
enheter
For at det ikke skal bli tungvint for programmer å kommunisere med I/O
enheter tar operativsystemet seg av dette.
En programmerer kan for eksempel bruke
WriteLine()
i et program uten å behøve tenke på hva slags type skjerm som er knyttet
til datamaskinen.
Operativsystemet tar seg av kommunikasjonen med skjerm, filer, printere
og liknende.
Programmere behøver ikke tenke på dette når de lager programmer.
Programmer skal fungere på forskjellige maskiner som har ulikt utstyr
tilkoblet.
Forelesning 7 Operativsystemer
4
Operativsystemet tar seg av feil ved kommunikasjon
Operativsystemet tar seg også av feil som kan oppstå ved kommunikasjon
med input/output enheter.
Operativsystemet bør kunne
1. Oppdage feil.
2. Rette opp feil.
Iblant lykkes operativsystemet med å rette opp feil som oppstår.
Klarer operativsystemet å rette opp en feil vil det normalt ikke gi beskjed
om dette til programmet hvor feilen oppsto.
Noen feil som kan oppstå ved kommunikasjon
Det er mange feil som kan oppstå ved bruk av input/output enheter.
Operativsystemet bør for eksempel kunne oppdage om et
program forsøker å skrive til en fil som er åpnet for lesing.
Operativsystemet bør også kunne gjenkjenne korrupte data.
I/O subsystem
Kommunikasjon mellom programmer og perifert utstyr blir tatt hånd om
av I/O subsystem.
I/O subsystem kalles den del av operativsystemet som tar seg av
kommunikasjonen med skjerm, skrivere, filer, osv.
Forelesning 7 Operativsystemer
5
Datastrømmer
Før et program kan benytte en input/output enhet må det åpnes en
forbindelse til den som kalles en datastrøm (Stream).
For eksempel skal et program åpne en fil benyttes funksjonskall som
open(pathname, flags);
Pathname er stien til katalogen. Flags angir for eksempel om man skal
lese eller skrive til filen.
Tre datastrømmer
Når en ny prosess starter blir det automatisk opprettet tre datastrømmer
for prosessen.
1. Standard input // Tastatur
2. Standard output // Skjerm
3. Standard error // Skjerm
Åpning av en filer
Følgende gir en oversikt over hva som skjer når en fil åpnes
1. Lete opp katalogen filen er på.
2. Hvis filen ikke fins, opprette den.
3. Sjekke rettigheter tilknyttet filen.
4. Sjekke om filen allerede er åpnet.
5. Lage datastrukturer som representerer.
6. Gi brukerprogram en peker til filen.
Forelesning 7 Operativsystemer
6
Behandling av åpne filer
Når en datastrøm (Stream) er åpnet kan den være åpen så lenge vi
ønsker.
Operativsystemet må imidlertid holde rede på datastrømmer som er åpne.
Operativsystemet har derfor en datastruktur for å holde rede på dette.
Rettigheter til filer
Før operativsystemet kan åpne en fil må det undersøke hvilken tilgang
brukeren har til filen.
Det er mange forskjellige rettigheter som kan være til filer
Skrive, lese, endre, slette, …
Fildeskriptor
Når et program åpner en fil blir dette registrert i en fildeskriptor.
Prosessen og alle tråder tilhørende prosessen har tilgang til denne
fildeskriptoren.
Fildeskriptoren er en tabell som holder rede på åpne filer.
Hver gang et program åpner en fil blir det opprettet en ny rad i tabellen
som har informasjon om filen som er åpnet.
Forelesning 7 Operativsystemer
7
To typer fil tabeller
I forbindelse med filer har systemet to typer tabeller.
1. Lokal fil tabell
2. Global fil tabell
1. Lokal fil tabell
Systemet har en array med datastrukturer som kalles lokal fil tabell.
Den lokale fil tabellen inneholder data om filen som er gitt med åpningen
av filen.
Den lokale fil tabellen inneholder data som er relevante for prosessen som
har åpnet filen.
2. Global fil tabell
Det er også informasjon om åpne filer som ikke er av interesse for
prosessen som har åpnet filen.
Slike data lagres i en global fil tabell.
Input/output medfører venting
Input og output er langsomme prosesser. Dette innebærer at systemet
må vente ved input/output.
Hvor lenge systemet må vente varierer.
Fra noen millisekunder for å lagre til disk og opp til flere
minutter for å vente på tegn fra tastaturet.
Istedenfor å vente på input/output operasjoner ville det kanskje være
bedre for en tråd å gjøre noe annet.
Forelesning 7 Operativsystemer
8
Venting ved input
Men å la en tråd gjøre noe annet ved venting på input lar seg i mange
tilfeller ikke gjøre.
Har man for eksempel i et program skrevet ReadLine() for å få inn noen
data, kan ikke programmet fortsette før det har lest inn dataene.
Venting ved output
Ved output går det gjerne noe bedre.
Har vi skrevet WriteLine() i et program kan programmet som oftest
fortsette uten å vente til utskriften har skjedd.
Måter å forholde seg til input/output
Det er to måter for en tråd å forholde seg til input/output.
1. Blokkering
2. Ikke blokkering
1. Blokkering
Ved blokkering vil et program vente med å fortsette inntil en input/output
operasjon er utført.
Denne ventingen kan skje ved at tråden sover. Som ved Thread::Sleep().
Blokkering kalles på engelsk for Synchronous I/O eller Wait I/O.
2. Ikke blokkering
Ved «ikke blokkering» fortsetter programmet å kjøre uten å vente på at
input/output operasjonen er utført.
Dette kalles på engelsk for Asynchronous I/O eller Nowait I/O.
Forelesning 7 Operativsystemer
9
«Ikke blokkering» krever synkronisering
«Ikke blokkering» krever synkronisering i programkoden til programmet.
Synkronisering kan for eksempel skje ved hjelp av en semafor, som får
programmet til å vente til det får et signal fra driveren.
Bruk av semafor ved ikke blokkering gir gjerne samme effekt som
blokkering.
Men det er mulig at programmet utfører noe programkode før semaforen
stopper programmet, for å vente på en input/output operasjon.
Bruk av buffer
Ved output benyttes ofte et buffer.
Skal man for eksempel skrive til en skriver og skriveren er opptatt kan
man skrive utskriften til et buffer isteden.
Programmet kan da fortsette og skriveren kan skrive ut innholdet i bufret
når den er klar med andre oppgaver.
Fordelen ved å bruke buffer er at det sparer tid.
Straks et program har skrevet til bufret kan det fortsette.
En ulempe med bufring er at det krever plass på en harddisk.
Lukking av tilgang
Når en prosess skriver til en fil kan det være nødvendig å lukke tilgang til
den for andre prosesser.
Mekanismer som lukker en fil eller en del av en fil kalles på engelsk for
Locks.
Forelesning 7 Operativsystemer
10
Polling
Vi skal nå se på hvordan operativsystemet kommuniserer med
maskinvare.
Det som skal skje er at signaler fra perifert utstyr som for eksempel
tastatur skal overføres til datamaskinens minne.
En måte å ta vare på data fra tastaturet på er å legge det i et register.
Da kan prosessor sjekke registeret ved jevne mellomrom og oppdatere
programmer med disse dataene.
Denne metoden kalles på engelsk for Polling.
Ulemper ved Polling
Å bruke et register til å ta vare på tastatur trykk har den ulempen at
lesing og skriving til registeret ikke er synkronisert.
Skrivingen til registeret kan gå fortere enn lesingen eller omvendt.
Et tastetrykk kan bli overskrevet fordi det kommer to trykk etter
hverandre før prosessor har lest registeret.
Eller prosessor kan lese inn det samme tastetrykket to ganger fordi det
ikke har kommet noe nytt.
Kan bruke to registre
For å løse dette problemet brukes to registre
Et register som tar vare på tastetrykket.
Et register som viser status. Det vil si om prosessor har lest
registeret eller ikke.
Ved Polling kontrollerer prosessor registrene med jevne mellomrom.
Dette er imidlertid en tungvint metode fordi det er mange registre.
Hver perifer enhet har registre.
Forelesning 7 Operativsystemer
11
Polling mangler synkronisering
Polling metoden er ikke god fordi det mangler synkronisering.
Prosessor kan sjekke på feil tidspunkt.
Enten er det ikke noe i registrene eller de er overfylt.
Derfor benyttes avbruddssignaler (Interrupts).
Avbruddssignaler
Avbruddssignaler (Interrupts) gjør at hver perifer enhet kan gi beskjed til
prosessor om at nå er det noe nytt i registeret.
Ved å bruke avbruddssignaler kan prosessor holde på med sitt uten å
tenke på perifere enheter.
De perifere enhetene gir beskjed til prosessor, når de har data til
prosessor.
Når prosessor får et avbruddssignal slutter den med det som den holder
på med og leser registeret.
DMA
Polling med avbruddssignaler fungerer for tastetrykk og liknende.
Dette systemet går ikke ved lesning av fil hvor mye data skal leses inn i
minnet.
Derfor benyttes noe som kalles DMA.
DMA tillater visse hardware undersystemer å få direkte tilgang til minnet
uavhengig av prosessor.
DMA = Direct Memory Access.
Metoden DMA bruker liksom Polling et statusregister og har et
avbruddsystem.
Men DMA bruker ikke noe dataregister.
Dataene overføres direkte fra filen til minnet.
Forelesning 7 Operativsystemer
12
Fordeler med DMA
Ved en vanlig input/output overføring vil prosessor være opptatt hele
tiden som overføringen pågår, og vil da ikke kunne utføre andre
operasjoner.
Ved å bruke DMA vil prosessor sette i gang input/output overføringen,
gjøre andre oppgaver mens overføringen skjer, og motta et
avbruddssignal når overføringen er ferdig.
DMA gjør det mulig for utstyrsenheter å overføre data uten belaste
prosessor særlig mye.
DMA er derfor en viktig egenskap ved moderne datamaskinsystemer.
Drivere
Hver fysisk enhet som er knyttet til en datamaskin har behov for
programvare som er spesielt laget for den og dens oppgaver.
Denne programvaren kalles en driver.
En driver er enten en del av operativsystemet eller en programbit laget for
å kunne kommunisere med operativsystemet.
Device Switch
Operativsystemet kaller en driver ved hjelp av en Device Switch.
Device Switch er en array. Hver driver har en indeks i denne arrayen.
Hver indeks i arrayen inneholder en samling pekere som peker til metoder
som benyttes til å bruke driveren.
Forelesning 7 Operativsystemer
13
IORB
En datastruktur som kalles IORB er viktig for en driver.
IORB = Input Output Request Block
Denne datastrukturen inneholder parametere for I/O driveren.
Informasjon i en IORB kan være
1. Flagg som indikerer om lese, skrive, …
2. Metode som indikerer om ferdig.
3. Plassering av data minnet.
4. Antall bytes som skal overføres.
5. Den perifere enhetens nummer.
6. Start blokk for enhet.
Kall på driver
Når et program skal benytte en driver kaller den metoder som tilhører
operativsystemets bibliotek.
Operativsystemet kaller så koden til driveren.
Når den perifere enheten er klar sender den et avbruddsignal til
prosessor.
Organisering av drivere
Forskjellige operativsystemer behandler drivere forskjellig.
1. Driveren er i minnet bestandig slik at den sover når den ikke er i
bruk.
2. Driveren kalles og lastes inn i minnet når det er bruk for den.
Forelesning 7 Operativsystemer
14
Organisering av harddisker
Vi skal se litt på organisering av harddisker.
En oppgave for operativsystemet er å holde orden på harddisker.
Dette kan gjøres på ulike måter.
Harddisker består av blokker
En harddisk består av en rekke blokker med samme størrelse.
Størrelsen på blokkene har vært fra 2 til 8 kbyte.
Blokkene er nummerert fra 0 og oppover.
Filbehandleren
For å ta seg av filer og filbehandling har operativsystemet en filbehandler
(File Manager).
Oppgaven til filbehandleren er å organisere filer slik at bruker kan få tak i
disse raskt og lett.
Forelesning 7 Operativsystemer
15
RAID
RAID-teknologien er en serie av forskjellige metoder for lagring av data til
flere disker.
RAID = Redundant Arrays of Inexpensive Disks
Opprinnelig var det fem forskjellige nivå av RAID, kalt level 1-5.
I dag tas også med RAID level 0 og det har også kommet et nivå 6.
Det er derfor nå 7 nivåer av RAID.
RAID 5
RAID level 5 er den RAID-teknologien som har vært mest brukt.
Den kombinerer god feiltoleranse med høy utnyttelse av lagringskapasitet.
I tillegg får vi høy lese og skrive hastighet, spesielt fra applikasjoner som
leser/skriver små filer.
I et filsystem med RAID 5 kan man ta ut en disk mens serveren kjører og
erstatte den med en annen blank disk.
Serveren vil oppdage det og sette opp en prosess som bygger opp den
nye disken automatisk.
Forelesning 7 Operativsystemer
16
Interprosess kommunikasjon
Programmer har iblant bruk for å kommunisere med hverandre.
Interprosess kommunikasjon er en måte for en tråd i en prosess, å dele
informasjon med en tråd i en annen prosess.
Interprosess kommunikasjon vil si at forskjellige programmer
kommuniserer med hverandre.
Dette gjelder både når
Programmene er på samme PC.
Programmene er på forskjellige PC-er.
Programmene er på samme PC
Interprosess kommunikasjon på en og samme PC er ganske greit.
Operativsystemet kan kopiere informasjon fra minnet til tråden som
sender over til minnet til den mottakende tråden.
Programmene er på forskjellige PC-er
Interprosess kommunikasjon mellom forskjellige PC-er skjer på følgende
måte
1. Operativsystemet til PC-en som sender vil kopiere informasjonen fra
minnet til en kommunikasjons enhet.
2. Kommunikasjonsenheten vil så sende informasjonen til mottakerens
maskin.
Forelesning 7 Operativsystemer
17
Mekanismer som støtter Interprosess kommunikasjon
Windows operativsystem støtter Interprosess kommunikasjon.
Følgende mekanismer i Windows kan benyttes til Interprosess
kommunikasjon.
1. Clipboard
2. Component Object Model (COM)
3. Data Copy
4. Dynamic Data Exchange (DDE)
5. File Mapping
6. Mailslots
7. Pipes
8. Remote Procedure Call (RPC)
9. Windows Sockets
Utklippstavla
Utklippstavla (Clipboard) er en mye brukt til å overføre data fra et
program til et annet.
Når en bruker klipper ut noe fra et program, kan det overføres til andre
programmer ved lim inn.
COM
Et program som bruker COM kan kommunisere med en rekke andre
komponenter.
COM = Component Object Model
OLE (Object Linking and Embedding) bygger på COM.
OLE har innebygde tjenester som gjør det lett for programmer å benytte
andre programmer til å editere data.
Forelesning 7 Operativsystemer
18
Data Copy
Data Copy gjør det mulig for et program å sende informasjon til et annet
program.
Data Copy krever imidlertid samarbeid mellom programmet som sender
og programmet som mottar.
Programmet som mottar må kjenne formatet på dataene og avsenderen.
DDE
DDE (Dynamic Data Exchange) er en protokoll som gjør det mulig for
programmer å utveksle data.
DDE kan brukes også når data skal utveksles mellom forskjellige
datamaskiner i et nettverk.
DDE bruker samme dataformater som utklippstavla.
File Mapping
File Mapping er en måte for en prosess å behandle innholdet på en fil som
om den var i minnet til prosessen.
File Mapping er en enkel måte for to eller flere prosesser å dele data på,
men metoden krever synkronisering.
Mailslots
Mailslots gir anledning til enveis kommunikasjon.
En prosess som oppretter en Mailslot kalles en Mailslot server.
Andre prosesser (klienter) kan da sende meldinger til server.
Mailslots gir en enkel metode til å sende og motta korte meldinger.
Forelesning 7 Operativsystemer
19
RPC
RPC (Remote Procedure Call) gjør at programmer kan kalle funksjoner
som er på en annen maskin.
RPC gjør derfor Interprosess kommunikasjon så enkelt som et
funksjonskall.
RPC opererer mellom prosesser på forskjellige maskiner i et nettverk.
Windows Sockets
Windows Sockets er et system for å kommunisere over nettverk.
Windows Sockets er uavhengig av protokoller.
Et program som benytter Windows Sockets kan kommunisere med
programmer på andre maskiner som benytter Windows Sockets.
Pipes
Pipes er en enkel modell for Interprosess kommunikasjon.
Data skrives til en buffer av en prosess slik at en annen prosess kan lese
dataene.
Det er to typer Pipes
Anonymous Pipes
Named Pipes
Forelesning 7 Operativsystemer
20
Anonymous Pipes
Anonymous Pipes benyttes til å overføre data mellom en Parent Process
og en Child Process.
Anonymous Pipes brukes derfor til å overføre data mellom tråder i samme
program.
Named Pipes
Named Pipes har et navn som gjør at andre prosesser kan finne dem via
navnet.
Named Pipes kan derfor benyttes til overføre data mellom forskjellige
programmer.
Sammenligning Anonymous Pipes og Named Pipes
Anonymous Pipes er alltid lokal.
De kan ikke overføre data fra en maskin til en annen i et nettverk.
Named Pipes derimot kan overføre data fra en maskin til en annen i et
nettverk.
Anonymous Pipes er en effektiv måte å overføre data mellom relaterte
prosesser i samme program.
Named Pipes er en enkel måte å overføre data mellom to prosesser på.
Prosessene kan være på samme maskin eller på forskjellige maskiner i et
nettverk.
Forelesning 7 Operativsystemer
21
Sikkerhet
Tre forskjellige typer sikkerhet som er ønskelig på et datamaskinsystem
1. Unngå at noen leser hemmelige data.
2. Unngå at noen kan endre på data.
3. Unngå at noen kan komme inn på systemet og misbruke det.
Hemmelige data
Data som skal være hemmelig for utenverdenen kan være
1. Personlige opplysninger.
2. Opplysninger om bedrifter.
3. Opplysninger om land.
4. Militære hemmeligheter.
Unngå endring av data
Man må unngå at noen kan endre data. Eksempler er
1. Data om lønnstrinn.
2. Data om karakterer.
Forelesning 7 Operativsystemer
22
Eksempel på misbruk av datasystemer
Man må unngå at noen kan komme inn på et datasystem og misbruke det.
Et eksempel på dette er å gjøre hjemmemaskiner til zombies.
Maskiner som er gjort til zombies kan kontrolleres av utenverdenen.
Ofte benyttes zombies til å sende Spam.
På denne måten kan ikke de som står bak spores opp.
Årsaker til at noen trenger inn på datasystemer
Vanlige årsaker til at noen vil trenge inn på datasystemer er
Noen ønsker å lese andres e-post eller filer i et nettverk de er
knyttet til.
Noen ser det som en personlig utfordring å knekke
sikkerhetssystemet på nettverket de er knyttet til.
Forsøk på å få tak i penger fra kontoer.
Spionasje på militær eller industri.
Årsaker til tap av data
Sikkerhet innbærer også tap av data.
Tap av data kan ha mange årsaker
Brann, jordskjelv, oversvømmelser, krig, hærverk, rotter, …
Hardware feil: Harddisk som ryker, programfeil, feil med CPU, …
Menneskelige feil: Mistet CD-ROM eller USB penn, gitt feil data til et
program, …
Forelesning 7 Operativsystemer
23
Beskyttelse av data
Datamaskiner må også beskyttes mot programmer som kan infiltrere og
gjøre skade på datasystemer.
Slike programmer er virus, trojanske hester, ormer og spionprogramvare.
Spionprogramvare
Spionprogramvare (Spyware) er programmer som kjører i bakgrunnen på
datamaskinen og gjør ting som brukere av maskinen ikke er klar over.
Spionprogramvare forsøker å få tak i informasjon som det kan sende
tilbake til opphavsmannen over Internett.
Spionprogramvare kan man få på maskinen bare ved å besøke en eller
annen webside på internett.
Sikkerhet er viktig
Sikkerhet er viktig i et nettverk.
Når det gjelder sikkerhet er det to ting som er sentralt
Å ta vare på og beskytte data.
Å sørge for at nettverket ikke er ute av drift.
Datamaskiner i bedrifter inneholder ofte viktig og sensitiv informasjon.
Det kan bli en katastrofe om data går tapt.
Det er derfor en viktig oppgave for en driftsansvarlig å sørge for at data
ikke går tapt.
Forelesning 7 Operativsystemer
24
Sikkerhet i Windows
Med Windows NT kom følgende sikkerhet i Windows operativsystem.
Sikker logg inn.
Adgangskontroll for filer.
Adresseromsforsvar for hver prosess.
Nullstilling av data for sider (pages).
Avlytting av datasystemer.
Sikker logg inn
Sikker log inn betyr at alle brukere benytter passord for å logge inn.
Innlogging skjer med Ctrl+Alt+Delete.
Hensikten med Ctrl+Alt+Delete er at ikke noen skal kunne legge inn egne
innloggingsvinduer for å kunne fange opp brukeres passord.
Adgangskontroll for filer
Adgangskontroll for filer gjør at brukere som eier en fil, selv kan
bestemme hvilke andre som skal få tilgang til filen.
Adresseroms forsvar for hver prosess
Adresseroms forsvar for hver prosess betyr at hver prosess har
beskyttede adresser.
Dette innebærer at andre prosesser ikke har tilgang til prosessen.
Forelesning 7 Operativsystemer
25
Nullstilling av data
Nullstilling av data for sider (Pages).
Dette medfører at nye sider som lastes inn i minnet ikke vil kunne finne
data fra forrige side.
Auditing
Avlytting av datasystemer (Auditing) vil si at systemet skriver hendelser
til fil som kan ha betydning for sikkerheten.
Administrator vil da kunne orientere seg om hva som skjer på systemet
ved å lese en logg.
Forbedring av sikkerhet
Microsoft har satt mye ressurser inn på å gjøre Windows mer sikkert.
Årsaken er at det de siste årene har vært gjort flere og flere angrep mot
datasystemer omkring i verden.
Noen av disse angrepene på datasystemer har vært suksessfulle.
Disse angrepene har klart å sette ut av spill datasystemene til hele land
eller store bedrifter.
Slike angrep kan koste samfunnet milliarder av kroner.
Høyt utviklet sikkerhetssystem
Windows operativsystem har fått et høyt utviklet sikkerhetssystem.
Dette sikkerhetssystemet er basert på adgangskontroll og
integritetsnivåer.
Forelesning 7 Operativsystemer
26
SID
Det er behov for å kunne identifisere enheter (for eksempel tråder) som
kan utføre handlinger på systemet.
Dette for å kunne bestemme hvilke handlinger en tråd har lov til å utføre.
Istedenfor å bruke navn til å identifisere slike enheter bruker Windows
operativsystem en SID (Security Identitet) som er et nummer.
Hver SID er tenkt å være unik i hele verden.
En SID tilordnes enten en bruker eller en gruppe av brukere (i nettverk).
Når en prosess starter vil prosessen og trådene kjøre under brukerens
SID.
Andre tråder vil ikke kunne få tilgang til prosessen med mindre de har en
SID med spesiell autorisasjon til dette.
Sikkerhetsdeskriptor
Hver prosess har en informasjon om pålitelighet, som forteller om bruker
og hvilke privileger som prosessen har.
Hvert objekt har en sikkerhetsdeskriptor knyttet til seg.
Denne sikkerhetsdeskriptoren inneholder adgangsopplysninger som kan
nekte adgang for brukere eller grupper av brukere.
Sentralt i sikkerheten i Windows er beskyttelse av objekter og adgang til
objekter.
Objekter
Objekter som blir beskyttet i Windows operativsystem inkluderer filer,
prosesser, tråder, hendelser, mutexer, semaforer, delt minne,
input/output porter, printere, med mer.
Sikkerhetsmodellen i Windows krever at for at en tråd skal få adgang til et
objekt, må den først oppgi hvilke handlinger den vil utføre på objektet.
Forelesning 7 Operativsystemer
27
Microsoft Update
Microsoft oppdaterer sikkerheten i Windows operativsystem ved hjelp av
Windows Update en gang i måneden.
Ved hjelp av automatiske oppdateringer oppgraderes Windows
operativsystem av seg selv over nettet uten å behøve å bruke en
nettleser.
Windows Defender
Windows Defender er et program fra Microsoft som har som oppgave å
forhindre, fjerne og isolere spionprogrammer i Microsoft Windows.
Microsoft Anti Spyware
Microsoft Anti Spyware er et annet navn på Windows Defender.
Spionprogrammer er en type programvare som infiltrerer et
datamaskinsystem uten at eieren er klar over det.
Spionprogrammer kan plukke opp personlig informasjon om brukere på
PC-en og sende den over Internett tilbake til opphavsmannen til
spionprogrammet.
Forelesning 7 Operativsystemer
28
Filsystemer i Windows
Et filsystem er et system for å lagre og organisere filer på en harddisk.
Det er ønskelig at det skal være lett å finne og få tak i filer.
Filsystemer lages derfor med tanke på dette.
Fil systemer i Windows
I Windows er det tre filsystemer som kan benyttes på harddisker.
Det er
NTFS
FAT32
FAT
FAT
FAT står for File Allocation Table og er et filsystem som ble brukt i MS-
DOS og tidlige versjoner av Windows.
Det er flere versjoner av FAT.
Det er FAT12, FAT16, FAT32 og exFAT.
FAT12 var et 12 bit adressesystem som var laget for disketter.
FAT16 ble utviklet når det kom PC-er med harddisk.
FAT12 og FAT16 er ikke lengre i bruk.
Forelesning 7 Operativsystemer
29
FAT32
FAT32 ble brukt i tidligere versjoner av Windows operativsystem.
Dette er Windows 95, Windows 98 og Windows Millennium.
Den eneste grunnen til å bruke FAT32 i dag er at du har en datamaskin
som iblant vil benytte disse eldre Windows versjonene.
exFAT
exFAT som også er kalt FAT64 er nyere versjon av FAT.
exFAT er laget med tanke på mindre lagringsenheter som USB penner.
NTFS
NTFS er filsystemet som dagens versjoner av Windows benytter.
NTFS har flere fordeler fremfor FAT32.
Muligheten til automatisk å rette opp diskfeil.
Forbedret støtte for store harddisker.
Bedre sikkerhet.
Sikkerheten er forbedret ved at man i NTFS kan gi bestemte brukere
tilgang til bestemte filer.
I FAT32 kunne alle brukere få tilgang til alle filer på harddisken.
Filnavn i NTFS
Filnavn i NTFS kan være opp til 255 tegn lange.
Filnavn er i Unicode noe som gjør at man kan benytte filnavn i andre
tegnsett enn det latinske, for eksempel gresk, kinesisk, russisk m.m.
Forelesning 7 Operativsystemer
30
CDFS
Windows støtter et filsystem for CD-ROM som kalles CDFS.
CDFS = Compact Disk File System
CDFS er en filsystemstandard for optiske disk medier.
UDF
Windows har også støtte for filsystemet UDF (Universal Disk Format).
UDF er et filsystem benyttes mest for DVD-er og nyere optiske medier.
For eksempel Blu-ray og DVD-video bruker ulike versjoner av UDF.
Forelesning 7 Operativsystemer
31
Lagringsstyring i Windows
Lagringsstyring definerer hvordan operativsystemer samspiller med disker
og lagringsmedia.
Lagringsstyring = Storage Management.
Støtte for lagringsmedia
Windows gir støtte for mange typer lagringsmedia. Det er
Harddisker
USB-penner
Bånddrev (Tape Drive)
Støtte for nettverkslagring
Windows gir også støtte for nettverkslagring som
SAN (Storage Area Networks).
iSCSI (Internet Small Computer System Interface).
Harddisker
En oppgave for et operativsystem er å holde orden på harddisker.
Vi skal se på lagring på harddisker, da harddisker har vært det primære
lagringsmediet for PC-er.
En disk er delt inn i sektorer.
En sektor er en blokk med en bestemt størrelse som har en adresse.
En harddisk består av en rekke blokker. Størrelsen på blokkene har vært
fra 2 til 8 kbyte. Blokkene er nummerert fra 0 og oppover.
Forelesning 7 Operativsystemer
32
Allokering av plass
Når en ny fil skal lagres må operativsystemet allokere plass til den på
harddisken. Dette kan gjøres på flere måter.
1. Sammenhengende allokering.
2. Linket liste.
3. Fil kart.
4. Indeksert allokering.
Sammenhengende allokering
Sammenhengende allokering vil si at filen lagres på blokker som ligger
etter hverandre. For eksempel 4, 5, 6, 7, 8, …
Da behøver operativsystemet bare å holde rede på startblokken og antall
blokker som filen opptar.
Problemet med sammenhengende allokering er at
1. Det er ikke alltid det er sammenhengende blokker tilgjengelig på
harddisken når en fil opprettes.
2. Hvis en fil skal utvides er kanskje ikke blokkene etter ledige, slik at
en utviding ikke kan gjøres sammenhengende.
Linket liste
En annen måte å holde rede på en fil er å benytte en linket liste.
Hver blokk har en peker som peker til den neste blokken som filen består
av.
Da behøver ikke blokkene ligge etter hverandre.
En ulempe med linket liste er at om en peker ikke er riktig plassert mister
man alle blokkene som kommer etter.
Forelesning 7 Operativsystemer
33
File Map og indeksert allokering
Fil kart (File Map) er en forbedring av linket liste ved at alle pekerne er
plassert på et sted. På denne måten får man et kart over filen.
Indeksert allokering er også en forbedring av linket liste ved at alle
pekerne plasseres på et sted.
Pekerne nås ved hjelp av indekser istedenfor en peker som peker til den
neste slik som ved linket liste.
Organisering av data
Lagring av data i et datamaskinsystem kan organiseres på forskjellige
måter.
En vanlig PC vil vanligvis kun ha et volum på en harddisk.
Men det kan organisatorisk være gunstig å dele opp harddisker i flere
volumer.
Flere harddisker
Volumer brukt av servere vil ofte strekke seg over flere harddisker.
Hensikten med å bruke flere harddisker er å øke lesehastigheten og
sikkerheten.
Partisjoner
En harddisk kan deles opp i partisjoner.
En partisjon er en del av en harddisk.
Hver partisjon kan fungere som en egen disk.
En partisjon er en samling av sammenhengende sektorer på en disk.
En partisjonstabell eller andre databaser for disk behandling lagrer start
sektor og størrelsen til partisjonene.
Forelesning 7 Operativsystemer
34
Partisjonsbehandleren
Partisjonsbehandleren (Partition Manager) har som oppgave å lage, slette
og behandle partisjoner.
Partisjonsbehandleren sørger for at alle partisjoner har en unik ID.
Volumer
Lagerplassen til en datamaskin kan deles opp i volumer som betegnes
med en bokstav som for eksempel C, D, eller E.
Et enkelt volum er kun en partisjon, men volumer kan organiseres slik at
de består av flere partisjoner på en eller flere harddisker.
Et enkelt volum bruker kun en harddisk. Dette medfører at om harddisken
ryker er volumet ute av bruk.
Dette kan unngås ved å bruke flere volumer og flere disker. Da kan man
fortsatt få tilgang til data selv om en av harddiskene er ute av drift.
Typer volumer
Det er to typer volumer
1. Enkle volumer som representerer sektorer fra en enkel partisjon.
2. Fler partisjon volumer som representerer sektorer fra flere
partisjoner.
Fordeler med fler partisjon volumer er ytelse, pålitelighet og størrelse på
volumer.
Forelesning 7 Operativsystemer
35
Typer fler partisjon volumer
Noen typer fler partisjon volumer er
Spredt volum
Stripet volum
RAID 1 volum
RAID 5 volum
Spredt volum
Når et volum består av flere partisjoner kalles det et spredt volum.
Spredt volum = Spanned Volume
Fordelen ved å bruke et spredt volum er at vi kan utvide volumet uten å
måtte skifte ut disken med en ny større disk.
Ulempen ved et spredt volum er større fare for diskfeil når partisjonene
ligger på forskjellige disker.
Stripet volum
Et stripet volum (Striped Volume) består av flere partisjoner på flere
disker.
Når det skrives til et stripet volum vil dataene bli fordelt over alle diskene.
Fordelen med et stripet volum er at lesehastigheten øker fordi man kan
lese data fra diskene parallelt.
Ulempen med stripet volum er at det lettere kan oppstå diskfeil.
Forelesning 7 Operativsystemer
36
RAID 1 volum
Et RAID 1 volum består av to disker.
Samme data ligger på begge diskene.
Det vil si at den ene disken er en kopi av den andre.
Fordelen med RAID 1 volum er sikkerhet. Hvis den ene disken går i
stykker har man fortsatt den andre.
Ulempen er at det tar dobbelt så mye lagringsplass.
RAID 5 volum
RAID 5 volum har vært mye brukt i servere da det øker både
lesehastigheten og sikkerheten.
Data skrives til flere disker.
Sikkerheten blir bedre da ekstra informasjon om dataene
(paritetsdata) ligger på flere disker.
RAID 5 medfører økt lesehastighet da man kan lese data fra diskene
parallelt.
RAID 5 medfører imidlertid litt langsommere skrivehastighet, da man også
må skrive paritetsdata.
RAID 5 tåler at en av diskene ryker. De andre diskene vil fortsette å
fungere slik at man kan hente data der.
Om en disk ryker vil imidlertid lesehastigheten bli langsommere, da man
må bruke paritetsdataene.
Forelesning 7 Operativsystemer
37
Typer disker
Windows skiller mellom to typer disker
Standard disker (Basic Disks).
Dynamiske disker (Dynamic Disks).
Standard disk
En standard disk har en fast størrelse og er på kun en fysisk harddisk.
En standard disk kan deles opp i flere partisjoner.
Det kan også være flere volumer på en utvidet partisjon.
Dynamisk disk
Dynamiske disker er mer fleksible enn standard disker.
En fordel med dynamiske disker er at man kan forandre størrelsen til en
disk uten å måtte starte Windows på nytt.
Det er nødvendig å bruke dynamiske disker om man skal bruke fler
partisjon volumer som spredt volum, stripet volum og RAID 5 volum.
Lagring av data i nettverk disk
Å knytte sammen datamaskiner i nettverk gir nye muligheter for lagring
av data.
Lagring av data på servere er gjerne organisert på en annen måte enn for
en enkelt PC.
Forelesning 7 Operativsystemer
38
SAN
Et SAN (Storage Area Network) er et lagringsmedium som er tilgjengelig
for servere via et nettverk slik at det ser ut som om lagringsmediet er
plassert lokalt på serveren.
En fordel med å bruke SAN er at flere servere kan bruke et og samme
lagringsmedium.
Dette betegnes som lagringsdeling (Storage Sharing).
Lagringsdeling er økonomisk, forenkler administrasjon, og er mer effektivt
om en server krasjer.
iSCSI
iSCSI er en nettverksstandard basert på IP (Internet Protocol) for å få
tilgang til lagringsmedia via et nettverk.
iSCSI = Internet Small Computer System Interface
Hensikten med iSCSI er å forenkle dataoverføring over nettverk og
behandle lagring av data over lange avstander.
iSCSI kan benyttes til å overføre data over LANs (Local Area Network),
WANs (Wide Area Network) og Internett.
iSCSI har blitt en populær måte å lagre data på i nettverk.
Dette fordi man kan lagre data på en fjernt stående server på samme
måte som om det skjer på en lokal maskin.
Forelesning 7 Operativsystemer
39
Na r Windows krasjer
Windows kan krasje av mange forskjellige årsaker.
At Windows krasjer vil si at Windows stopper opp og viser den blå
skjermen.
Lagringsfeil
Den vanligste årsaken til at Windows krasjer er lagringsfeil.
Lagringsfeil kan skje når
1. En driver får problemer på grunn av et bufferlager ikke har
plass til alle dataene det mottar.
2. Om en driver skriver til et lager som den har hatt, men
som den har gitt fra seg.
3. En adgangsovertredelse (Access Violation) kan få Windows
til å krasje.
En adgangsovertredelse kan inntreffe
1. Hvis det forsøkes å skrive til en side i minnet som bare er
tillatt å lese.
2. Hvis systemet forsøker å lese en adresse som ikke eksisterer.
Årsaker til krasj
Ulike årsaker til at Windows kan krasje
En feil på en side i minnet kan føre til systemkrasj.
En feil på maskinvare kan føre til systemkrasj.
En fatal feil på filsystemet kan føre til systemkrasj.
Dårlig eller manglende strømtilførsel.
Forelesning 7 Operativsystemer
40
Den blå skjermen
Den blå skjermen (The Blue Screen of Death) vil vises i Windows når det
har oppstått en kritisk systemfeil.
Systemet går da ned for å forhindre at det oppstår alvorlige feil som kan
skade systemet.
Den blå skjermen vil vises når
I følge Microsoft er årsaken til at den blå skjermen vises i Windows en
følge av
1. Dårlig programmerte drivere.
2. Hardware som ikke fungerer som den skal.
Den blå skjermen kan også være en følge av
1. Feil i strømforsyningen.
2. Over oppvarmede komponenter.
3. Hardware som benyttes på feilaktig måte.
4. Feil med minnet.
Dumping av minne til fil
Windows er satt opp til å forsøke å gi informasjon om status for systemet
når systemet krasjer.
Dette gjøres ved å skrive innholdet i minnet til fil (Memory Dump).