33
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

Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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

Page 2: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 3: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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

Page 4: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 5: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 6: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 7: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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

Page 8: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 9: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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

Page 10: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 11: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 12: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 13: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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

Page 14: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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

Page 15: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 16: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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

Page 17: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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

Page 18: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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

Page 19: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 20: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 21: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 22: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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

Page 23: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 24: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 25: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 26: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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?

Page 27: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 28: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 29: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 30: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 31: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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).

Page 32: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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.

Page 33: Om prosesser - hiof.noeinark/itf22506mod2/Opsys_foreles2_2012.pdf · oppgave å implementere prosesser, tråder og ressurser som det er behov for. Prosessbehandleren har følgende

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);