om prosesser - hiof.noeinark/itf22506mod2/opsys_foreles2_2012.pdf · oppgave å implementere...
Post on 19-Jul-2020
3 Views
Preview:
TRANSCRIPT
Forelesning 2 Operativsystemer
1
Om prosesser
Dataprogrammer
Et dataprogram er programkode og programressurser som ligger på en
eller flere filer på harddisken.
Når vi starter et program og det lastes inn i datamaskinens minne får vi
en prosess.
Et program kan startes flere ganger. Dette vil da starte flere prosesser.
Et program kan derfor gi opphav til flere prosesser.
Prosesser
En prosess kan sees på som et arbeid som utføres av datamaskinen.
Det kan være gunstig å betrakte prosesser som bestående av to deler
Statisk del
Dynamisk del
Statisk del
Den statiske delen av en prosess kan sees på som ressurser prosessen
bruker på en datamaskin.
Den statiske delen av en prosess kan bestå av for eksempel
Et stykke allokert minne
En katalog En åpen fil
Og lignende
Forelesning 2 Operativsystemer
2
Dynamisk del
Den dynamiske delen av en prosess kan sees på som et program som
kjører.
En prosessor kjører en prosess ved å utføre instruksjonene til prosessen.
Det vil si som et sett instruksjoner som utføres etter hverandre i
prosessor.
Den dynamiske delen av en prosess kalles for en tråd.
Prosess deskriptor
Operativsystemet bruker strukturer til å holde rede på prosesser.
For hver prosess som kjører har operativsystemet en struktur som kalles
en prosess deskriptor.
En prosess deskriptor har blant annet følgende informasjon
Prosessens navn.
Status for prosessen. Aktiv eler ikke aktiv. Start tid for prosessen.
En liste over tråder tilhørende prosessen. En beskrivelse over adresser i minnet.
En liste med prosessens ressurser.
Tråder
En tråd er et prosessobjekt som operativsystemet tildeler tid i prosessor.
Selve prosessen danner en primærtråd som igjen kan starte nye tråder.
Alle trådene i en prosess har felles og samme tilgang til prosessens
ressurser.
Forelesning 2 Operativsystemer
3
Kjøring av prosesser
En prosessor kjører en prosess ved å utføre instruksjonene til prosessen.
På en datamaskin kan det være bare en prosessor, men flere prosesser.
Dette medfører at prosessene må bytte på å bruke prosessoren.
En prosess kan ha flere tråder
Trådene til en prosess er linket til prosessen som en liste.
Siden trådene konkurrerer om prosessor har hver tråd en status.
Status er enten aktiv eller ikke aktiv.
Det vil si at en tråd enten er aktiv eller i ventestatus.
Tilstander for en tråd
En tråd som er startet kan sies å ha tre mulige tilstander
Blokkert Satt i ventetilstand
Klar Klar til å lastes inn i prosessor
Aktiv Tråden disponerer prosessor
Forelesning 2 Operativsystemer
4
Tråd utskifting
Prosessoren kjører tråd etter tråd og skifter derfor hele tiden mellom å
kjøre tråder.
Prosedyren å fjerne en tråd for å allokere en ny tråd i prosessoren kalles
for trådutskifting (Context Switching).
Ved trådutskifting fjernes en tråd fra prosessor.
All informasjon om tråden blir lagret slik at tråden kan fortsette å kjøre på
akkurat samme måte neste gang den kommer i prosessoren.
Vanligvis er det flere tråder som konkurrerer om å komme inn i
prosessoren.
Tråd deskriptor
En tråd deskriptor er en datastruktur som operativsystemet bruker til å få
informasjon som den trenger for å kunne behandle en tråd.
En tråd deskriptor har følgende informasjon om tråden
En beskrivelse av tråden. Trådens status.
Start tid. En referanse til prosessens deskriptor.
En liste til tråder tilhørende tråden. En referanse til trådens ressurser.
Prosessbehandler
Et operativsystem har en prosessbehandler (Process Manager) som har til
oppgave å implementere prosesser, tråder og ressurser som det er behov
for.
Prosessbehandleren har følgende oppgaver
Starte og avslutte prosesser. Starte og avslutte tråder.
Forelesning 2 Operativsystemer
5
Objekt behandleren
Prosessbehandleren kaller objekt behandleren for å opprette et
prosessobjekt.
Objekt behandleren returnerer en hendel til prosess objektet.
Prosessplanlegging
Ved prosessplanlegging (Scheduling) bestemmes rekkefølgen som trådene
skal komme inn i prosessor.
Den viktigste oppgaven til en prosess-planlegger (Scheduler) er å fordele
prosessoren på trådene på best mulig måte.
En måte å organisere prosessplanlegging på er å gi trådene forskjellig
prioritet.
Tråder med høy prioritet gis lettere tilgang til prosessoren enn de med lav
prioritet.
Prosessplanlegging er viktig
Prosessplanlegging kan ha stor effekt på datamaskinens ytelse, siden det
avgjør når en prosess eller tråd skal lastes inn i prosessoren.
Om en tråd ignoreres og aldri lastes i prosessor kalles dette sulting
(Starvation).
Hvordan prosessplanlegging skal organiseres er et klassisk
forskningsproblem for operativsystemer.
Moderne algoritmer for prosessplanlegging bruker gjerne prioritet.
Det vil si at ulike tråder får forskjellig prioritet.
Forelesning 2 Operativsystemer
6
Jobber
Windows kan gruppere prosesser slik at de kan samarbeide.
En slik gruppe av prosesser kalles en jobb.
En prosess kan kun være i en jobb om gangen.
Å gruppere prosesser i jobber er kun aktuelt når prosessene behøver å
samarbeide.
Jobb objekt
En jobb er i operativsystemet et objekt som kalles et jobbobjekt.
Et jobbobjekt er et kjerneobjekt som kan gis et navn og har høy
sikkerhet.
Forelesning 2 Operativsystemer
7
Om Microsofts operativsystemer
MS-DOS
Microsofts første operativsystem for PC var MS-DOS.
DOS = Disk Operating System
MS-DOS var det vanligste operativsystemet på PC-er inntil Windows
overtok.
MS-DOS lå også som operativsystem i bunnen på de første versjonene av
Windows.
De første versjonene av Windows var kun et grafisk program som brukte
MS-DOS som operativsystem.
Microsoft lagde mange versjoner av MS-DOS.
MS-DOS 8.0 som var den siste versjonen ble lansert i år 2000.
Windows første versjoner
Første versjon av Windows kom i 1983.
De første versjonene av Windows (1.0 og 2.0) ble ingen suksess.
Årsaken var lite programvare for Windows og det som var,
var ustabilt og enkelt.
Først på begynnelsen av 1990 tallet ble Windows tatt i bruk.
1990: Windows 3.0 // 10 millioner kopier solgt
1991: Windows 3.1 // Windows blir utbredt
Forelesning 2 Operativsystemer
8
Windows 95
Windows 95 var en kraftig utvidelse av Windows 3.0
- Mer brukervennlig.
- Mulighet for Multitasking.
- Plug and play (automatisk gjenkjenning og konfigurering av utstyr).
- Bedre nettverksegenskaper.
Windows 9x
1995: Windows 95
1998: Windows 98
2000: Windows Millennium
Disse versjonene av Windows var ganske like og ble kalt Windows 9x.
Nye krav til datamaskiner
Datamaskinene fikk stadig mer minne, høyere prosessorhastighet og mer
diskplass.
MS-DOS var ikke laget for å håndtere mye minne. MS-DOS var heller ikke laget for multiprosessering.
Det ble behov for et nytt operativsystem.
Dette førte til et nytt operativsystem som ble kalt Windows NT.
NT er en forkortelse for New Technology.
Forelesning 2 Operativsystemer
9
Windows NT 3.0
Første versjon av Windows NT kaltes Windows NT 3.0
Dette fordi Windows NT 3.0 kom på samme tid som Windows 3.0
Windows NT 4.0
Ved Windows NT 4.0 ble Windows NT tatt alminnelig i bruk som
operativsystem.
Windows NT 4.0 var et avansert 32-bits operativsystem laget for å være
sikkert, stabilt og fleksibelt.
Windows NT 4.0 gjorde det mulig å benytte flere prosessorer i den samme
datamaskinen.
Windows NT 4.0 kunne utnytte et stort minne og store harddisker.
Dette gjorde at operativsystemet var godt skalerbart.
NT finnes både for arbeidsstasjoner og servere
- Windows NT Workstation
- Windows NT Server
Windows NT lever i dag
Windows NT har i dag stor betydning som operativsystem.
Man finner varianter av Windows NT på PC-er, bærbare maskiner og
servere i nettverk over hele verden. Windows NT brukes også i
spillkonsoller som Xbox.
Enbruker versjoner som bygger på Windows NT er
Windows 2000 Windows Xp
Windows Vista Windows 7
Windows 8
Forelesning 2 Operativsystemer
10
Windows Vista
Windows Vista kom november 2006 og inneholdt flere hundre nye og
omarbeidede egenskaper.
Nytt i Windows Vista
En av nyhetene i Windows Vista var et oppdatert grafisk brukergrensesnitt
som kalles Windows Aero.
Aero står for Authentic, Energetic, Reflective, and Open.
Dette brukergrensesnittet var bedre enn tidligere versjoner av Windows.
Sikkerhet i Windows Vista
Windows Xp og tidligere versjoner av Windows ble ofte blitt kritisert for
manglende sikkerhet.
I Windows Vista ble derfor sikkerheten forbedret.
Fibrer kom med Windows Vista
Fibrer er nytt i Windows operativsystem og kom med Windows Vista.
Fibrer er en type tråder, men har litt andre egenskaper enn vanlige tråder.
Fibrer blir ofte kalt lettvektstråder.
Fibrer tillater programmer å prosess-planlegge sine egne tråder istedenfor
å bruke prioritetsbasert prosessplanlegging.
Prosessplanlegging av en fiber er derfor ikke operativsystemstyrt liksom
for tråder.
Forelesning 2 Operativsystemer
11
Windows 7
Windows 7 er navnet versjonen av Windows som har vært den siste tiden.
I motsetning til tidligere versjoner av Windows hadde ikke Windows 7 en
masse nye egenskaper.
Windows 7 har vært en oppgradering av Windows Vista.
Målet med Windows 7
Målet med Windows 7 er et operativsystem som har økt funksjonalitet og
ytelse i forhold til tidligere versjoner.
Det er derfor en del nyheter med tanke på dette.
Nyheter i Windows 7
Noen nyheter i Windows 7
Bedre støtte for virtuelle harddisker. Bedre utnytting av flere prosessorer.
Forbedrede media egenskaper. Raskere oppstart av maskin.
Forelesning 2 Operativsystemer
12
Windows 8
Windows 8 vil komme 26. oktober 2012.
Nye funksjoner
Ifølge Microsoft vil Windows 8 ha flere nye funksjoner som
Windows Store, hvor brukerne kan kjøpe dataprogrammer.
Windows To Go, en funksjon som lar brukerne kjøre hele Windows-systemet fra en USB-minnepinne.
Nytt brukergrensesnitt
Windows 8 vil ha det nye grafiske grensesnittet Microsoft Metro.
Samme for nettbrett, bærbar og stasjonær PC-er og Windows Phone.
Dette grensesnittet er preget av sine fliser som fungerer som koblinger og som interaktive «Widgets» (kart, værmelding, e-post, foto,kalender).
Metro er optimalisert for berøringsskjerm, men kan styres med mus og
tastatur.
Windows 8 tar med det klassiske skrivebord-grensesnittet, kjent fra
tidligere utgaver av Windows.
Raskere oppstart
En annen nyhet er at systemet starter raskere. Microsoft har jobbet med startsyklus fra bunnen som utnytter funksjonaliteten UEFI tilbyr.
Dette gir mer stabil, raskere og sikrere oppstart.
Forelesning 2 Operativsystemer
13
Windows Server
Microsoft har laget flere utgaver av Windows operativsystem tilpasset
oppgaven å være server i lokalnett.
Windows 3.11
Microsofts første forsøk på å lage et operativsystem med
nettverksfunksjoner var Windows 3.11 som kom 1992.
Windows 3.11 ble kalt Windows for Workgroups og hadde
tilleggsfunksjoner som ga nettverksstøtte.
Nettverkskort og kabler.
Deling av kataloger, disker og skrivere. E-post og chat-funksjonalitet.
Windows NT
Men det var ved Windows NT at Microsoft begynte å utvikle
operativsystemer som var beregnet til å fungere som en server i et
nettverk.
Windows server versjoner
Følgende viser serverversjonene av Windows
Windows NT 4.0 Server
Windows Server 2000
Windows Server 2003
Windows Server 2008
Windows Server 2012
Forelesning 2 Operativsystemer
14
Windows Server 2012
Windows Server 2012 kom i 2012 og etterfulgte Windows 2008 Server.
Windows 20012 Server har forbedringer i
IP-adresse behandling Active Directory
Hyper-V, nettverksvirtualisering …
Windows 2012 Server er bygd på samme kode som Windows 8.
Varianter av Windows server
Windows 2012 Server fins i fire varianter.
De vanligste variantene er
Windows 2012 Server Standard Edition // Vanlige nettverk
Windows 2012 Server Datacenter Edition // Tunge nettverk Windows 2012 Server Foundation Edition // Economical
Windows 2012 Server Essentials Edition // Small business
Forelesning 2 Operativsystemer
15
Om den indre oppbyggingen av Windows operativsystem
Operativsystemer er gjerne svært store programmer.
Antall linjer C/C++ kode i noen Windows versjoner
Windows NT 3.0 3 millioner linjer
Windows NT 4.0 16 millioner linjer Windows 2000 30 millioner linjer
Windows Xp 50 millioner linjer Windows Vista 70 millioner linjer
Windows 7 80 millioner linjer (minst)
Sentral begreper i Windows operativsystem
Vi skal se på noen sentrale begreper i Windows operativsystem
Objekter og hendler
Windows API Unicode
Objekter i Windows operativsystem
Objekter i Windows operativsystem er strukturer som det oppbevares data
i.
Objekter benyttes mye i Windows operativsystem, for eksempel er
prosesser og tråder objekter.
Ikke alle data i Windows operativsystem er objekter.
Bare data som behøver å deles, bli beskyttet eller være synlige for
brukerprogrammer, er plassert i objekter.
Forelesning 2 Operativsystemer
16
Oppgaven til objekter
Objekter har følgende viktige oppgave i operativsystemet.
Å gi navn på systemressurser som er leselige for mennesker.
Å dele ressurser og data mellom prosesser. Beskytte ressurser mot uautorisert adgang.
Å holde rede på når data ikke lenger er i bruk og kan slettes.
Hendler til objekter
Objekter opprettes ved funksjonskall.
Når det lages et objekt returneres en hendel (Handle) til objektet.
En hendel blir benyttet til å få tak i data og funksjoner i objektet.
En hendel er en type peker som benyttes i Windows.
Et program har ikke direkte tilgang til data i objekter. Derfor må
programmer bruke en hendel for å kunne nå og endre på data i objekter.
Windows API
Windows API er et bibliotek med funksjoner som danner et grensesnitt
mellom Windows operativsystem og brukerprogrammer.
Hovedoppgaven til Windows API er å ta seg av kommunikasjon mellom
operativsystemet og brukerprogrammer.
Windows API er et gammelt bibliotek og benyttes av alle Windows
versjoner fra Windows 95 og oppover.
API = Application Program Interface
Forelesning 2 Operativsystemer
17
Om Windows API
Når en programmerer som utvikler et program for Windows skal
kommunisere med operativsystemet, skjer dette ved kall til funksjoner i
Windows API.
Noen eksempler på funksjonskall programmerere kan bruke i Windows API
er
WriteFile Skrive til fil.
CreateProcess Starte en prosess. SetFocus Gi fokus til et objekt.
GetLocalTime Hente klokkeslettet.
CloseWindow Lukke et vindu.
All programvare laget for Windows samarbeider med og benytter Windows
API.
For eksempel vil programmer få tak i hendelser i Windows som tastetrykk,
bevegelse av mus, innsetting av en CD eller en USB penn, via funksjoner i
Windows API.
Innhold i Windows API
Windows API inneholder tusenvis av funksjoner.
Windows API kan deles i følgende
Administrasjon og management
Diagnostisering Grafikk og multimedia
Nettverk Sikkerhet
System tjenester Windows brukergrensesnitt
Forelesning 2 Operativsystemer
18
Unicode
Windows er forskjellig fra de fleste andre operativsystemer ved at de
fleste tekststrenger består av Unicode tegn som har en vidde på 16-bit.
Unicode er et internasjonalt tegnsett som kan representere alle bokstaver
og tegn i verden.
Den mest brukte tegn standarden har tidligere vært ASCII.
ASCII = American Standard Code for Information Interchange.
Men ASCII har bare 256 tegn og dette strekker ikke til i en internasjonal
verden. For eksempel har kinesisk, koreansk og japansk 10 000 vanlig
brukte tegn.
Fordeler med Unicode
Fordelen med Unicode er at det tillater flerspråklig kommunikasjon.
Unicode gjør det mulig å representere flere språk i et og samme
dokument. For mange språk er det vanskelig eller umulig å gjøre dette
uten å bruke Unicode.
Tjenester, funksjoner og tråder
I forbindelse med operativsystemer snakker man om tjenester, funksjoner
og rutiner.
En tjeneste defineres gjerne som en eller flere rutiner som utføres når
man kaller på dem.
Hva som er forskjellen på en tjeneste, en funksjon og en rutine er en
definisjonssak.
Vi skal i det følgende se litt på hvordan disse uttrykkene benyttes i
forbindelse med ulike deler av operativsystemet Windows.
I Windows bruker man følgende terminologi
Windows API funksjoner
Systemtjenester i Windows
Kjernefunksjoner Windows tjenester
DLL-er
Forelesning 2 Operativsystemer
19
Windows API funksjoner
Windows API funksjoner er dokumenterte underrutiner som kan kalles fra
brukerprogrammer.
Når man arbeider med Windows API bruker man altså ordet funksjoner.
Systemtjenester
Systemtjenester (Native system services) i Windows er udokumenterte
tjenester som kjører i kjernemodus.
Drivere kan kalle disse tjenestene direkte. Programmer i brukermodus kan
kalle dem via systemkall.
Kjernefunksjoner
Kjernefunksjoner eller kjernerutiner (Kernel support functions or routines)
er underrutiner i operativsystemet som bare kan kalles fra kjernemodus.
Windows tjenester
Windows tjenester (Windows Services) er prosesser som kjører i
bakgrunnen og utfører en eller annen funksjon.
Windows tjenester kan konfigureres slik at de starter automatisk når
maskinen startes, men de kan også startes for hånd.
DLL-er
DLL-er (Dynamic Link Libraries) er underrutiner som kan kalles av
programmer i brukermodus.
Programmer i Windows benytter ofte DLL-er.
Fordelen med DLL-er er at programmer kan dele dem og Windows sørger
for at det bare er en kopi av en DLL i minnet om gangen.
Forelesning 2 Operativsystemer
20
Arkitekturen til Windows
Noen sentrale komponenter i arkitekturen til Windows operativsystem er
Brukermodus og kjernemodus Kjernen
Hardware laget Windows utøvende tjenester
To modi
Windows kjører i to modi
Brukermodus
Kjerne modus
Brukerprogrammer kjører i brukermodus og prosesser tilhørende
operativsystemet kjører i kjernemodus.
Hensikten med to modi
Hensikten med at Windows kjører i to modi er å øke sikkerheten til
operativsystemet.
Programmer som kjører i brukermodus har kun begrenset tilgang til
systemets ressurser.
Programmer i brukermodus kan kun nå funksjoner og data i kjernemodus
via Windows API.
Prosesser som kjører i kjernemodus har tilgang til all hardware og kan
utføre alle oppgaver som er mulig på maskinen.
Forelesning 2 Operativsystemer
21
Sentrale komponenter i kjernemodus
Sentrale komponenter i kjernemodus er
Kjernen
Hardware laget Utøvende tjenester
Kjernen
Kjernen i et operativsystem refererer til den mest sentrale delen av
operativsystemet.
Kjernen (Kernel) danner en bro mellom brukerprogrammer og
dataprosessering på maskinvare nivå.
Oppgaver for kjernen
Den viktigste oppgaven til kjernen er å tillate programmer å kjøre og å gi
dem tilgang til maskinvare.
For å kjøre et program setter kjernen opp et adresserom for programmet,
laster programmets kode inn i minnet og gir programmet et stakklager.
Andre viktige oppgaver for kjernen
Det er kjernen som gir programmer adgang til prosessoren. Kjernen bestemmer hvilken del av datamaskinens minne som en
prosess kan bruke.
Flere oppgaver for kjernen
Kjernen mottar forespørsler fra prosesser for å utføre input/output og gir
tilgang til aktuelt utstyr.
Kjernen holder rede på hardware utstyr som er tilkoblet datamaskinen ved
å ha en liste over dette utstyret.
Det er kjernens oppgave å gi prosesser tilgang til maskinvare utstyr når
det er behov for det.
Forelesning 2 Operativsystemer
22
Hardwarelaget
Hardwarelaget er et lag mellom fysisk maskinvare og programvare som
kjører på operativsystemet.
En oppgave for hardwarelaget er å få Windows operativsystem til å kunne
fungere på ulike hardware plattformer.
Hardwarelaget (Hardware Abstraction Layer) forkortes gjerne til HAL.
Hardware Abstractions er et sett med rutiner som gir programmer tilgang til maskinvare utstyr uavhengig av hvilket fabrikat utstyret
tilhører.
Hardwarelaget utgjør et brukergrensesnitt mot maskinvare utstyret på
datamaskinen som operativsystemet skal virke på.
Programmer i Windows vil derfor ikke kommunisere direkte med
maskinvare, men kommuniserer med maskinvare via hardwarelaget.
Utøvende tjenester
Utøvende tjenester (Executive Services) er tjenester i Windows
operativsystem som hjelper programmer i brukermodus å kjøre på
datamaskinsystemet.
Utøvende tjenester inneholder mange grunnleggende tjenester i Windows
operativsystem.
For eksempel er det utøvende tjenester som behandler tråder og
prosesser, datamaskinens minne og input/output.
Noen hovedkomponenter i Windows utøvende tjenester
Objekt behandleren Konfigurasjonsbehandleren
Prosess og tråd behandleren Input/output behandleren
Installasjon og konfigurasjonsbehandleren Strømforsyningsbehandleren
Hurtigbuffer (cache) behandleren Minnebehandleren
Forelesning 2 Operativsystemer
23
Systemprosesser
Det er mange systemprosesser som alltid kjører i et hvert Windows
system.
Noen av disse er.
Idle process Session Manager
Winlogon Windows Subsystem
Idle process
Idle process (den uvirksomme prosessen) består av en eller flere tråder i
kjernen som kjører i prosessor når det ikke er andre tråder som kjører på
maskinen.
I et system med flere prosessorer er det en idle process for hver
prosessor.
Sesjonsbehandleren
I datavitenskapen er en sesjon (Session) en aktiv utveksling av
informasjon, også kalt en dialog, mellom to enheter.
Sesjonsbehandleren er den første prosessen som blir laget i brukermodus.
Sesjonsbehandleren har ansvaret for mange viktige trinn i oppstarten av
Windows. Blant annet oppretter den systemvariabler, starter kjernen og
bruker modus, lager virtuelt minne og starter winlogon.
Forelesning 2 Operativsystemer
24
Windows Logon Process
Windows Logon Process behandler innlogging og utlogging på systemet.
Winlogon blir aktivisert når noen trykker Ctrl+Alt+Delete på tastaturet.
Windows Subsystem
Windows Subsystem består av flere komponenter som har sentrale
oppgaver i operativsystemet.
Windows Subsystem tar seg blant annet av tastatur, mus og skjermbilde.
Windows Subsystem er derfor nødvendig for at Windows skal kunne kjøre.
Forelesning 2 Operativsystemer
25
Systemmekanismer
Windows operativsystem har mange mekanismer som blir benyttet av
komponenter i kjernemodus.
Disse mekanismene benyttes av komponenter som utøvende tjenester,
kjernen og utstyrsdrivere.
Noen systemmekanismer er
Avbruddsignaler Unntakssignaler
Objekt behandleren Synkronisering
Globale flagg Wow64
Hendelser må utføres i prosessor
Windows er et interaktivt operativsystem som venter på at hendelser skal
skje.
Eksempler på slike hendelser er trykk på tastaturet, museklikk eller
innsetting av en CD.
Når slike hendelser inntreffer må de få tid til å utføres i prosessor.
Og dette må skje med en gang slik at prosessor må avbryte det den
holder på med for å utføre hendelsen.
Forelesning 2 Operativsystemer
26
Avbruddsignaler
For at en hendelse skal utføres med en gang den skjer benytter Windows
avbruddsignaler (Interrupts).
Dette medfører at en tråd som er i prosessor kan avbrytes slik at en
hendelse kan utføres istedenfor.
Fordelen med å bruke avbruddsignaler er at prosessor får mest mulig tid
til å holde på med sitt.
Prosessor blir bare avbrutt når det er helt nødvendig å utføre en tjeneste.
Avbruddsignaler fra maskinvare kommer oftest fra input/output utstyr
som må gjøre prosessor oppmerksom på at den må utføre en tjeneste.
Men nesten alle typer perifere enheter benytter avbruddsignaler som den
primære metode til å få operativsystemet til å utføre handlinger.
Unntakssignaler
Unntakssignaler (Exceptions) likner på avbruddsignaler.
Men til forskjell fra avbruddsignaler som kan skje når som helst, kan
unntakssignaler bare oppstå ved programkjøring.
Unntakssignaler er en konstruksjon som benyttes av
programmeringsspråk eller hardwaremekanismer til å forandre vanlig
programkjøring.
Unntakssignaler er noe som kan skje ved at det oppstår en feil.
Noen eksempler på forhold som kan gi unntakssignaler er
Divisjon med null
Overflyt Stakkfeil
Sidefeil i minnet
Programmerere kan bruke unntakssignaler i programkode til å behandle
feil eller tilfeller hvor noe ikke går etter planen.
For eksempel hva skal skje om et program skal åpne en fil og filen ikke
eksisterer?
Forelesning 2 Operativsystemer
27
Strukturert unntaksbehandling
Windows bruker et system som kalles strukturert unntaksbehandling.
Dette gir programmer anledning til å få kontroll over situasjonen når det
skjer en feil.
Programmet kan da prøve å rette opp feilen selv med kode som er skrevet
med tanke på at en unntakstilstand har oppstått.
Objekt behandleren
Objekt behandleren tar seg av objekter som er i kjernemodus.
Objekter er blant annet prosesser, tråder, filer, semaforer, drivere,
hendelser, og også mange andre typer objekter.
Objekt behandleren tar seg av oppgaver som
Opprette og returnere hendler til objekter. Lage flere hendler til et objekt om nødvendig.
Lukke hendler til objekter. Å undersøke om en prosess har rett til å bruke et objekt.
Holde orden på hvilke kvoter som tilhører ressurser.
I alt tar objekt behandleren seg av livssyklusen for objekter fra de
opprettes til de fjernes.
Objekt behandleren har en svært viktig oppgave da den tar seg av
behandlingen av systemressurser og datastrukturer.
Forelesning 2 Operativsystemer
28
Wow64
Wow64 står for
Windows 32-bit On Windows 64-bit
Wow64 består av DLL-er som tillater 32-bits programmer å kjøre i 64-bits
versjoner av Windows.
Wow64 undersystem er et lag i Windows operativsystem som tillater 32-
bits programmer å fungere på et 64-bits system uten å måtte gjøre
endringer i programvaren.
Wow64 er inkludert i alle 64-bits versjoner av Windows.
64-bits systemer behandler store mengder med RAM mer effektivt enn
32-bits systemer.
Registret
Registret er en systemdatabase som inneholder informasjon til å starte
Windows og til å konfigurere systemet.
Windows har mye viktig informasjon i registeret. Dette er informasjon
som
Hvilke drivere som skal benyttes til ulikt utstyr. Hvilken programvare som skal startes ved oppstart.
Innstillinger som bestemmer oppsettet til Windows.
Registret inneholder programinnstillinger som kontrollerer hvordan
Windows fungerer, en sikkerhetsdatabase, og brukerinnstillinger.
Brukerinnstillinger er for eksempel farger og bakgrunn på desktop.
Windows henter data i registeret i følgende situasjoner.
Ved oppstart av datamaskinen (boot process). Ved innlasting av kjernen (kernel boot process).
Når en bruker logger seg inn på systemet. Ved oppstart av programmer.
Forelesning 2 Operativsystemer
29
Konfigurasjonsbehandleren
Konfigurasjonsbehandleren er en viktig komponent i Windows utøvende
tjenester som tar seg av og behandler registeret.
Konfigurasjonsbehandleren heter på engelsk Configuration Manager.
Konfigurasjonen til en datamaskin vil forandres over tid.
Konfigurasjonsbehandleren oppdaterer registeret etter hvert som
programmer og andre komponenter i operativsystemet forandrer verdier
til nøkler og verdier i registeret.
Ved oppstart av datamaskinen sørger konfigurasjonsbehandleren for at
datamaskinen får denne nye konfigurasjonen.
Forelesning 2 Operativsystemer
30
.NET Framework Class Library
.NET Framework Class Library er biblioteket som benyttes i CLR.
.NET Framework Class Library kan brukes av flere språk i Visual Studio.
Det er Visual Basic, C#, C++, J#, …
namespaces
.NET Framework Class Library er delt opp i namespaces.
Hver namespace inneholder klasser, strukturer, enumerasjoner, delegater
og interfaces som vi kan benytte og bygge programmer på.
Systems::Collections
Systems::Collections er en namespace som har klasser for å bevare og
behandle objekter.
Man kan bruke lister, trær, arrayer og hash tables.
Systems::IO
System::IO har klasser som tar seg av Input og Output.
Dette inkluderer data streams, filer, kataloger og formatering av Input og
Output.
Forelesning 2 Operativsystemer
31
Systems::Threading
System::Threading har klasser for parallell programmering.
Her kan man lage tråder og bruke mekanismer for synkronisering som
semaforer og monitorer.
Systems::Net
System::Net har klasser for nettverks programmering.
Dette inkluderer sockets, network streams, protokoller med mer.
Systems::Windows::Forms
System::Windows::Forms brukes til GUI programmering.
Denne namespace kommer vi til å bruke når vi skal begynne med
Windows programmering.
Oppretting av objekter
C++ er et språk som er en blanding av gammelt og nytt. Det er tre måter
å opprette objekter i C++
Statisk deklarasjon. Dynamisk allokering i det frie minnet.
Allokering i managed heap (minne).
Forelesning 2 Operativsystemer
32
Statisk deklarasjon
Eksempel på å opprette et objekt ved statisk deklarasjon
class Minklasse{ … };
Minklasse mittobjekt; // Oppretter et objekt
mittobjekt.tall = 2; // Bruk av en variabel
Dynamisk allokering
Eksempel på å opprette et objekt ved dynamisk allokering
class Minklasse{ … };
Minklasse *p = new Minklasse();
p->tall = 5;
delete p;
Ved dynamisk allokering oppretter man objekter i det frie minnet.
Disse objektene blir i det frie minnet til de slettes med delete eller til
programmet avsluttes.
Managed heap
Eksempel på å opprette et objekt i managed heap
ref class Minklasse{ … };
Minklasse^ mk = gcnew Minklasse();
Garbage Collector sletter objektet når det ikke lenger er bruk for det.
Forelesning 2 Operativsystemer
33
delegate
I objektorientert programmering er det i blant nødvendig å kunne kalle en
metode i en klasse, fra kode som befinner seg i en annen klasse.
For å gjøre dette benyttes en type referanse som kalles delegate.
En delegate er omtrent det samme som en peker til en metode.
Har man en peker til en metoden kan man gjøre metodekall via pekeren.
Å bruke en delegate har imidlertid større sikkerhet enn å bruke en peker.
ref class Minklasse
{
public: String^ skrivString();
};
Minklasse^ mittOb = gcnew Minklasse();
delegate String^ minDelegate();
minDelegate^ del = gcnew minDelegate(mittOb,
&MinKlasse::skrivString);
top related