Laste ned presentasjonen
Presentasjon lastes. Vennligst vent
1
Operativsystemer for multiple prosessorer
2
Hvorfor multiple prosessorer?
I datamaskinenes historie har hele tiden datamaskinenes hastighet økt og økt. Tidligere var den vanligste måten å øke datamaskiners hastighet på, å øke farten til signalene. Operativsystemer
3
Hvorfor multiple prosessorer?
Imidlertid er det en grense for hvor fort signaler kan overføres i et datamaskinsystem. I følge Einsteins teori kan ikke signaler gå fortere enn lysets hastighet. Operativsystemer
4
Hvorfor multiple prosessorer?
Jo raskere signalene overføres, jo mer varme blir utviklet, og dette fører til overopphetning. For små datamaskinkomponenter er det vanskelig å bli kvitt varmen. Operativsystemer
5
Hvorfor multiple prosessorer?
En annen måte å øke hastigheten for datamaskiner er parallell programmering. Flere prosessorer som arbeider parallelt kan få datamaskiner til å arbeide raskere. Operativsystemer
6
Operativsystemer for flere prosessorer
Flere prosessorer stiller imidlertid nye krav til operativsystemer. Å lage et operativsystem for flere prosessorer er mye mer utfordrende enn å lage et for bare en prosessor. Operativsystemer
7
Operativsystemer for flere prosessorer
Operativsystemer for flere prosessorer er for det meste som operativsystemer for en prosessor. Men de må ha utvidede funksjoner når det gjelder synkronisering, prosessplanlegging og behandling av ressurser. Operativsystemer
8
Operativsystemer for flere prosessorer
Operativsystemer for flere prosessorer kan organiseres på ulike måter. Vi skal i det følgende se på noen måter som er forsøkt. Operativsystemer
9
Et operativsystem for hver prosessor
En måte å organisere på er å la hver prosessor ha sitt eget operativsystem. Hver prosessor har sitt eget minne og arbeider helt uavhengig av de andre prosessorene. Operativsystemer
10
Et operativsystem for hver prosessor
Dette betyr i prinsippet at hver prosessor fungerer som en egen datamaskin. Men det er allikevel bedre enn ulike datamaskiner, fordi prosessorene deler input/output og harddisk. Operativsystemer
11
Et operativsystem for hver prosessor
Det er også mulig for prosessorene å dele et minne slik at de kan kommunisere med hverandre. Operativsystemer
12
Et operativsystem for hver prosessorer
At hver prosessor har et eget operativsystem er dårlig utnyttelse av ressursene og benyttes sjelden i dag. Denne måten ble imidlertid benyttet tidligere, på den tiden da datamaskiner begynte å få flere prosessorer. Operativsystemer
13
Master-Slave multiprosessor
Vi skal se på Master-Slave modellen. I denne modellen kjører operativsystemet i en prosessor (Master). De andre prosessorene kjører brukerprogrammer. Operativsystemer
14
Master-Slave multiprosessor
Master-Slave modellen gir en enkel måte å organisere bruk av flere prosessorer i en datamaskin. Alle prosessorene kommuniserer med operativsystemet i Masterprosessoren. Operativsystemer
15
Master-Slave multiprosessor
Ulempen med Master-Slave modellen er at Masterprosessoren blir en flaskehals hvis det er mange prosessorer. Alle prosessorene er avhengig av Master-prosessoren, noe som gjør at det kan oppstå ventetid. Operativsystemer
16
Symmetrisk multiprosessering
Symmetrisk multiprosessering (SMP) er den datamaskin arkitektur som moderne operativsystemer med flere prosessorer bruker. Ved SMP er det et operativsystem som deler alle prosessorene. Operativsystemer
17
Symmetrisk multiprosessering
Alle prosessorer deler et felles minne. SMP tillater hver prosessor å kjøre en hvilken som helst tråd. Operativsystemer
18
Symmetrisk multiprosessering
SMP kan lett flytte oppgaver mellom prosessorer slik at oppgavene blir jevnt balansert mellom prosessorene. Operativsystemer
19
Symmetrisk multiprosessering
Et problem er at det kan oppstå kollisjoner ved at to prosessorer forsøker å få tak i samme ressurser på samme tid. En måte å komme utenom disse problemene er å benytte en Mutex. Operativsystemer
20
Symmetrisk multiprosessering
Å benytte Mutexer fungerer, men det kan være et lite effektivt system fordi prosessorene må vente på hverandre. Da faller selvfølgelig noe av hensikten med flere prosessorer bort. Operativsystemer
21
Symmetrisk multiprosessering
Men systemet med Mutexer kan forbedres da mange deler av operativsystemet er uavhengige av hverandre. For eksempel kan en prosessor behandle prosessplanlegging mens en annen behandler filsystemet. Operativsystemer
22
Symmetrisk multiprosessering
Hver kritisk region i operativsystemet reguleres av en Mutex slik at bare en prosessor kan benytte det om gangen. Operativsystemer
23
Multiprosessor synkronisering
Synkronisering er viktig i et system med flere prosessorer. Prosessorene benytter et felles minne og dette kan lett føre til kollisjoner når tråder jobber parallelt. Operativsystemer
24
Multiprosessor synkronisering
Det benyttes gjerne Mutexer til å synkronisere kritiske regioner. Ulempen med å bruke Mutexer er at det oppstår ventetid. Operativsystemer
25
Multiprosessor synkronisering
Når en tråd må vente kan dette behandles på to måter Tråden spinner til den kommer inn. Systemet utfører en Switch. Operativsystemer
26
Multiprosessor synkronisering
Spinning vil si at en tråd venter på en Mutex inntil den blir ledig. Med spin menes at tråden prøver igjen og igjen om Mutexen er ledig. Operativsystemer
27
Multiprosessor synkronisering
Med Switch menes at en tråd som venter (spinner) på en Mutex tas ut av prosessor slik at en annen tråd slipper til. Operativsystemer
28
Multiprosessor synkronisering
Spinning er bortkastet tid. Men også en Switch tar tid å utføre. Hva som lønner seg vil derfor avhenge av hvor lenge tråden må vente med spinning. Operativsystemer
29
Multiprosessor synkronisering
Spinning vil lønne seg hvis tråden ikke må vente så lenge. En Switch vil først lønne seg om tråden må vente en stund. Operativsystemer
30
Multiprosessor synkronisering
Best resultater vil oppnås om systemet holder rede på de siste spin-tidene. Dette benyttes til å avgjøre om systemet skal benytte spinning eller switching. Operativsystemer
31
Multiprosessor prosessplanlegging
Når det er bare en prosessor er det kun nødvendig å prosessplanlegge prosesser. Er det flere prosessorer må man også benytte prosessplanlegging på prosessorene. Operativsystemer
32
Multiprosessor prosessplanlegging
Noe som gjør prosessplanlegging vanskeligere når det er flere prosessorer er at noen ganger er tråder avhengige av hverandre. Trådene kommer i grupper som tilhører samme prosess og de samarbeider. Operativsystemer
33
Multiprosessor prosessplanlegging
Noen tråder er uavhengige av andre. Andre tråder samarbeider. I så fall vil det være gunstig å samkjøre disse. Operativsystemer
34
Multiprosessor prosessplanlegging
Vi skal se på to måter å organisere prosessplanlegging på når det er flere prosessorer Tidsdeling (Timesharing) Rom deling (Space sharing) Operativsystemer
35
Multiprosessor prosessplanlegging
Ved tidsdeling organiseres prosess-planlegging liksom for uavhengige tråder. Trådene henges på en eller flere lister (avhengig av prioritet) og trådene kommer inn i en prosessor etter som det blir ledig. Operativsystemer
36
Multiprosessor prosessplanlegging
Ved rom deling organiseres prosessplanlegging liksom for tråder som samarbeider. Systemet venter til hver tråd kan få en prosessor. Når hver tråd kan få sin prosessor, startes trådene samtidig og de kan samarbeide. Operativsystemer
37
Multiprosessor prosessplanlegging
En ulempe med rom deling er at iblant kan en prosessor bli blokkert og ingenting skjer. Et system som kombinerer tidsdeling og rom deling kan i så fall være ønskelig. Operativsystemer
38
Multiprosessor prosessplanlegging
En måte å kombinere tidsdeling og rom deling kalles gjeng prosessplanlegging. Gjeng prosessplanlegging = Gang Scheduling Gjeng prosessplanlegging skjer på følgende måte. Operativsystemer
39
Multiprosessor prosessplanlegging
Grupper av tråder som hører sammen blir behandlet som en enhet, dvs som en gjeng. Alle medlemmer av gjengen kjører samtidig, på forskjellige prosessorer ved tidsdeling. Alle medlemmer av gjengen er like lenge og samtidig i prosessor. Når det skjer en trådutskifting går enten alle inn eller alle ut av en prosessor. Operativsystemer
40
Multiprosessor prosessplanlegging
Fordelen ved at trådene kjører samtidig er at samarbeid skjer med en gang. En tråd vil lett kommunisere med en annen om begge kjører samtidig. Operativsystemer
41
Bruk av lys i datamaskiner
Operativsystemer
42
Bruk av lys i datamaskiner
Lys har høyere hastighet enn elektroner. Ved å bruke lys som signaler i datamaskiner vil hastigheten kunne økes. Operativsystemer
43
Bruk av lys i datamaskiner
Det har lenge vært mulig å bruke lys i datamaskiner. Når det ikke har vært brukt i PC-er er årsaken at det har blitt for kostbart. Nå er det imidlertid utviklet komponenter som bruker lys, som ikke er for kostbare. Operativsystemer
44
Bruk av lys i datamaskiner
Det vil derfor de nærmeste årene kunne komme datamaskiner som bruker lys til å overføre signaler. Dette vil medføre at datamaskiner vil bli langt raskere enn i dag. Operativsystemer
45
Multicomputers Operativsystemer
46
Multicomputers En multiprosessor er en datamaskin med flere prosessorer. Multicomputers er noen datamaskiner koblet sammen i et nettverk. Multicomputers er et system som likner en multiprosessor. Operativsystemer
47
Multicomputers Datamaskiner som er koblet sammen (Multicomputers) består av flere prosessorer som kan samarbeide om oppgaver. Det kan derfor være en tanke å la flere datamaskiner samarbeide slik at de fordeler oppgaver mellom seg. Operativsystemer
48
Multicomputers Et system med flere datamaskiner er derfor et system som likner en datamaskin med flere prosessorer. En forskjell er imidlertid at en multiprosessor har et felles minne, mens flere datamaskiner har ulike minner. Operativsystemer
49
Multicomputers En definisjon av Multicomputers er følgende
Noen prosessorer som er koblet tett sammen, men som ikke deler et felles minne. Hver prosessor har imidlertid et eget minne. Operativsystemer
50
Multicomputers Å lage et system med Multicomputers er ganske lett.
Det er bare å koble sammen noen datamaskiner i et nettverk. Operativsystemer
51
Multicomputers Skal vi ha glede av et Multicomputers system må vi ha programvare som koordinerer systemet. En måte å gjøre dette på skal vi komme tilbake til under distribuerte systemer. Operativsystemer
52
Virtuelle maskiner Operativsystemer
53
Virtuelle maskiner Istedenfor å kjøre programmer på en fysisk maskin, kan man istedenfor kjøre dem på en virtuell maskin. En virtuell maskin er programvare som utfører instruksjoner liksom en fysisk maskin. Operativsystemer
54
Virtuelle maskiner En fordel ved virtualisering er at man kan ha flere virtuelle maskiner på en fysisk maskin. Vi skal ta et eksempel på dette. Operativsystemer
55
Virtuelle maskiner Gitt en bedrift som har flere servere For eksempel en e-post server, en web server, og en FTP server. Disse serverne er ulike fysiske maskiner. Operativsystemer
56
Virtuelle maskiner Disse serverne kan kjøres på en fysisk maskin ved at hver av dem kjøres på en virtuell maskin på den fysiske maskinen. Bedriften vil spare plass og penger ved å ha alle serverne på en maskin. Operativsystemer
57
Virtuelle maskiner Ved virtualisering kan også en fysisk maskin kjøre flere ulike operativsystemer, da hver virtuell maskin kan ha ulikt operativsystem. Operativsystemer
58
Virtuelle maskiner Virtuelle maskiner deles i to typer
System virtuelle maskiner Prosess virtuelle maskiner Operativsystemer
59
Virtuelle maskiner System virtuelle maskiner er at flere virtuelle maskiner deler en fysisk maskin. Hver virtuelle maskin har sitt eget operativsystem. Operativsystemer
60
Virtuelle maskiner Programvaren som tillater flere virtuelle maskiner på en fysisk maskin kalles for virtuell maskin monitor eller hypervisor. En hypervisor kan kjøre på bare hardware eller på toppen av et operativsystem. Operativsystemer
61
Virtuelle maskiner Fordeler med system virtuelle maskiner
Kan kjøre flere operativsystemer på en datamaskin. En virtuell maskin kan gi en annen arkitektur enn den underliggende fysiske maskinen. Lettere implementering og vedlikehold av programvare. Operativsystemer
62
Virtuelle maskiner Ulemper med system virtuelle maskiner
Virtuelle maskiner er ikke så effektive som programvare som jobber direkte på hardware. Når flere operativsystemer jobber på en maskin kan det gi varierende og ustabil prestasjonsevne. Operativsystemer
63
Virtuelle maskiner Prosess virtuell maskin er en annen type virtuell maskin. En prosess virtuell maskin støtter kun en prosess som kjører. Den virtuelle maskinen avsluttes når prosessen avsluttes. Operativsystemer
64
Virtuelle maskiner Hensikten med en prosess virtuell maskin er å gi et kjøremiljø for en prosess som er plattform uavhengig. Det vil si et kjøremiljø som er uavhengig av type hardware. Operativsystemer
65
Virtuelle maskiner Et eksempel på en prosess virtuell maskin er .NET Framework som benytter CLR. Operativsystemer
66
Distribuerte systemer
Operativsystemer
67
Distribuerte systemer
De første datamaskinene var laget for beregninger og var uten tilknytning til andre maskiner. Etter hvert begynte man å knytte maskiner sammen i nettverk. Operativsystemer
68
Distribuerte systemer
Når datamaskinene ble knyttet sammen i nettverk, så var hensikten med dette Kommunikasjon mellom maskiner. Deling av felles utstyr og data. Operativsystemer
69
Distribuerte systemer
Datamaskinene knyttet sammen i nettverk fungerte altså ikke som en enhet. Distribuerte systemer derimot fungerer som en enhet. Operativsystemer
70
Distribuerte systemer
Distribuerte systemer er et neste skritt innen nettverk. Distribuerte systemer innbærer at en gruppe datamaskiner arbeider sammen som en enhet. Operativsystemer
71
Distribuerte systemer
Distribuerte systemer er en samling datamaskiner som ikke bare kommuniserer og deler data, men som også Samarbeider om oppgaver. Fordeler oppgaver mellom seg. Operativsystemer
72
Distribuerte systemer
Å distribuere betyr å dele noe blant mange. Operativsystemer
73
Distribuerte systemer
Distribuerte systemer virker som en enhet. En bruker er ikke klar over at andre maskiner enn den han sitter ved, er involvert i oppgaver på maskinen. Operativsystemer
74
Distribuerte systemer
En måte å strukturere et distribuert system på er å la en maskin gjøre tjenester for andre maskiner i nettverket. En maskin som gjør tjenester for andre maskiner i et nettverk kalles en server. Operativsystemer
75
Distribuerte systemer
Fordeler med distribuerte systemer Økonomi Pålitelighet Deling av ressurser Ytelse Utvidelse Operativsystemer
76
Distribuerte systemer
En tanke bak distribuerte systemer er at mange maskiner sammen skal kunne utføre tyngre oppgaver. En PC er ikke så kraftig som en stormaskin, men mange PC-er knyttet sammen vil kunne utføre større oppgaver. Operativsystemer
77
Distribuerte systemer
Et distribuert system bestående av mange små maskiner vil kunne utføre større oppgaver. Siden mange små maskiner er rimeligere enn en stormaskin kan man spare penger. Operativsystemer
78
Distribuerte systemer
Distribuerte systemer vil være mer pålitelige enn enkeltmaskiner. Hvis en maskin er ute av drift vil dette bety lite om de andre maskinene er i normal drift. Operativsystemer
79
Distribuerte systemer
En grunn til å koble datamaskiner i et nettverk er å kunne dele ressurser. For eksempel vil alle datamaskiner i et nettverk kunne dele en dyr skriver. Operativsystemer
80
Distribuerte systemer
Ytelsen til et datamaskinsystem kan økes ved å tilføre flere maskiner. Jo flere maskiner som samarbeider, jo høyere ytelse. Operativsystemer
81
Distribuerte systemer
Mulighet for utvidelse er en fordel med distribuerte systemer. Man kan starte med et lite nettverk og la det vokse etter hvert med nye maskiner og nytt utstyr. Operativsystemer
82
Distribuerte systemer
I et distribuert system er det nødvendig å kunne identifisere alle maskiner og alt utstyr som er tilknyttet nettverket. Skal man sende en melding fra en maskin til en annen, må maskinene ha en adresse. Operativsystemer
83
Distribuerte systemer
Når maskiner identifiserer hverandre brukes nummer. For mennesker er det imidlertid lettere å huske et navn enn et nummer. For eksempel er det lettere å huske Student server enn Operativsystemer
84
Distribuerte systemer
Operativsystemer laget for distribuerte systemer vil være forskjellig fra vanlige nettverksoperativsystemer (NOS). Operativsystemer for distribuerte systemer vil ha flere oppgaver. Operativsystemer
85
Distribuerte systemer
Et operativsystem for distribuerte systemer vil ha som oppgave å bygge ned grensene mellom maskiner. Operativsystemer
86
Distribuerte systemer
Operativsystemet vil ha som oppgave å behandle ressursene på den lokale maskinen. Operativsystemet vil også ha som oppgave å gi informasjon til andre maskiner om hvilke ressurser som er ledige og kan benyttes av andre maskiner. Operativsystemer
87
Distribuerte systemer
Ved distribuerte systemer vil mange datamaskiner samarbeide. Dette kan føre til kollisjoner liksom når flere tråder fungerer samtidig. Distribuerte systemer har derfor behov for synkronisering. Operativsystemer
88
Distribuerte systemer
Mekanismer for synkronisering som semaforer er vanskelig å benytte for distribuerte systemer. En semafor er en variabel som eksisterer på et sted og vil derfor ikke så lett være tilgjengelig overalt i et nettverk. Operativsystemer
89
Distribuerte systemer
Andre metoder enn semaforer er derfor utviklet for synkronisering av distribuerte systemer. Disse metodene er av to typer Sentraliserte algoritmer Distribuerte algoritmer Operativsystemer
90
Distribuerte systemer
Sentraliserte algoritmer er et system for synkronisering der en prosess har som oppgave å koordinere kritiske regioner i et distribuert system. Operativsystemer
91
Distribuerte systemer
Koordinatorens oppgave er å sørge for at bare en tråd om gangen benytter en kritisk region. Når en tråd ønsker å benytte en kritisk region må den først spørre koordinator om tillatelse. Operativsystemer
92
Distribuerte systemer
Ulempen med å ha en koordinator er at om maskinen den er på krasjer, så krasjer hele synkroniserings systemet. Et slikt krasj kan derfor føre til vranglås for hele nettverket. Operativsystemer
93
Distribuerte systemer
Det er derfor utviklet distribuerte algoritmer for synkronisering. Distribuerte algoritmer virker slik at hver prosess deltar i synkroniseringen. Operativsystemer
94
Distribuerte systemer
Når en prosess skal inn i en kritisk region sender den en melding om dette til alle andre prosesser. Andre prosesser vil svare på denne meldingen om de ikke er inne i den kritiske regionen. Operativsystemer
95
Distribuerte systemer
Ulempen med distribuerte algoritmer for synkronisering av denne type, er at det fører til at det sendes en masse meldinger over nettverket. Et annet problem er at det kan være vanskelig å holde oversikt over alle prosesser som er involvert. Operativsystemer
96
Distribuerte systemer
Vi skal se litt på vranglås i distribuerte systemer. Vranglås er et større problem i distribuerte systemer enn for et system på en enkelt PC. Operativsystemer
97
Distribuerte systemer
Systemer som forsøker å forhindre vranglås benyttes ikke, fordi vranglås er vanskelig å forhindre og forutsi. I stedet forsøker man å oppdage om vranglås har oppstått og rette opp dette så godt som mulig. Operativsystemer
98
Distribuerte systemer
Måten man forsøker å finne vranglås på i distribuerte systemer er at hver maskin har en graf over sin allokering av ressurser. Hvis det blir en syklus er dette tegn på vranglås. Syklus vil si at noe gjentar seg. Operativsystemer
99
Distribuerte systemer
Hvis det oppstår en syklus er det et spørsmål hvordan bryte syklusen. Det er to måter å bryte syklusen Å avslutte en eller flere prosesser. Ta ressurser fra en eller flere prosesser. Operativsystemer
100
Distribuerte systemer
En tanke med distribuerte systemer er å utnytte minnet til maskinene ved å dele minnet mellom dem. Dette innbærer at prosesser på en maskin kan benytte minnet til andre maskiner. Operativsystemer
101
Distribuerte systemer
Ved distribuert delt minne vil en prosess som kjører kunne bruke minnet på andre maskiner. Dette kan organiseres ved at en server har som oppgave å fordele det samlede minnet til prosessene på klientene. Operativsystemer
102
Distribuerte systemer
Filsystemer for distribuerte systemer må kunne gjøre filer tilgjengelig for andre maskiner i nettet. Den enkleste måten å gjøre dette på er å legge felles filer på en server slik at klienter kan hente filer fra serveren. Operativsystemer
103
Distribuerte systemer
Skal man ha et distribuert filsystem må man ha en måte å holde rede på navnene til filene. Et navnsystem er nødvendig på hver maskin slik at brukere kan åpne filer ved å klikke på dem. Operativsystemer
104
Distribuerte systemer
En måte å organisere et navnsystem på er å integrere alle filer og kataloger på alle maskiner til et felles globalt system. Ulempen med et felles globalt system er at det er komplisert og tungvint å administrere. Operativsystemer
105
Distribuerte systemer
En vanlig måte å organisere filer på i et distribuert system er føye til kataloger og filer fra server (eller andre maskiner) til i det lokale katalogsystemet. Da kan brukere hente filer fra andre maskiner på samme måte som fra den lokale maskinen. Operativsystemer
106
Distribuerte systemer
I et nettverk er det ofte flere servere. Hensikten med dette er at om en server er ute av drift kan brukerne bruke en annen server. En server vil derfor alltid være tilgjengelig. Operativsystemer
107
Distribuerte systemer
For at brukere alltid skal ha sine filer på serveren tilgjengelig, må filene til brukerne ligge på flere servere. Når en fil oppdateres på en server må den kopieres over til andre servere. Denne prosessen kalles replikasjon. Operativsystemer
108
Nettverksoperativsystemer
109
Lokalnettverk operativsystem
Det finnes mange forskjellige utgaver av operativsystemer for lokalnett. Operativsystemer for lokalnett kalles nettverksoperativsystemer (NOS). Operativsystemer
110
Lokalnettverk operativsystem
Tre operativsystemer som har vært mye brukt i lokalnettverk er Novell Netware Windows Server Linux Operativsystemer
111
Peer-to-peer nettverk
I et nettverk er det vanligvis en server. Imidlertid er det mulig å ha nettverk uten server. Et nettverk uten server kalles et peer-to-peer nettverk. Operativsystemer
112
Lokalnettverk operativsystem
Et nettverksoperativsystem (NOS) inneholder mange av de samme oppgavene som et vanlig operativsystem. I tillegg har et NOS mange oppgaver som et vanlig operativsystem ikke har. Operativsystemer
113
Lokalnettverk operativsystem
I et lokalnettverk er kommunikasjon mellom maskiner en viktig oppgave for systemet. I et nettverk er det mulig for en maskin å hente filer fra en annen maskin som står fysisk plassert et annet sted. Operativsystemer
114
Lokalnettverk operativsystem
Oppgaver som er sentrale i et nettverksoperativsystem er Filoverføring Utskriftsbehandling Sikkerhet Operativsystemer
115
Lokalnettverk operativsystem
All kommunikasjon i et lokalnettverk foregår gjennom nettverkskort og nettverkskabel. Generelt kan en si at oppgaven til et NOS er å utgjøre et grensesnitt mot nettverkskabelen. Operativsystemer
116
Lokalnettverk operativsystem
Viktigst av alle oppgaver et NOS utfører er input/output oppgavene (I/O). Det meste av det som foregår i et NOS har med kommunikasjon å gjøre. Operativsystemer
117
I/O-optimalisering Input/output oppgaver (I/O) er de viktigste oppgavene til en server. Viktige I/O oppgaver er filbehandling og utskrifter. I/O oppgaver representerer stor trafikk over nettverkskortet til serveren. Operativsystemer
118
I/O-optimalisering Noen vanlige I/O oppgaver på en server
En bruker henter en fil fra sitt hjemmeområde, oppdaterer den og lagrer den igjen. En bruker starter opp en applikasjon over nettverket. Systemansvarlig sikkerhetskopierer alle brukerdata. Operativsystemer
119
I/O-optimalisering En server er hele tiden utsatt for inn/ut trafikk over nettverket. Dette medfører at en effektivisering av inn/ut oppgaver er av avgjørende betydning for hele nettverkets ytelse. En måte å optimalisere I/O oppgaver på er ved hurtigbufring (Caching). Operativsystemer
120
I/O-optimalisering Grunnlaget for Caching er at internminnet er mye raskere å lese enn å lese fra disk. Dersom en kan hente en fil fra minnet istedenfor fra harddisken vil det spares mye tid. Ved Caching legges de mest brukte filene i minnet slik at de kan leses der. Operativsystemer
121
I/O-optimalisering Når en fil leses fra harddisken legges den etterpå i Cache som er en del av internminnet. Neste gang filen skal benyttes kan den derfor leses fra Cache istedenfor fra harddisken. Operativsystemer
122
I/O-optimalisering Når en bruker skal hente en fil undersøkes først Cache. Dersom filen finnes i Cache leses den derfra. Dersom filen ikke finnes i Cache leses den fra disken, og legges deretter i Cache slik at den kan finnes der ved neste anledning. Operativsystemer
123
I/O-optimalisering Cache er noe som benyttes mye ved bruk av Internett. Noen websider er mer lest enn andre. Cache brukes derfor på flere nivåer. De mest leste websidene kan ligge i et Cache hos Internett leverandøren. Operativsystemer
124
I/O-optimalisering I nettverk kan vi snakke om tre typer cahce.
Internet/web Cache hos Internettleverandør. RAM Cache i server. Prosessor Cache i server. Operativsystemer
125
I/O-optimalisering For at Cache skal være effektivt kreves det at filer som skal hentes finnes i Cache. Noen ganger er filen som skal hentes i Cache, og noen ganger ikke. Treffprosenten må derfor være ganske stor for at bruk av Cache skal lønne seg. Operativsystemer
126
I/O-optimalisering For at Cache skal være effektivt må også Cache være ganske stort. Med lite Cache-minne er det liten sannsynlighet for treff. Det er derfor viktig å ha Cache så stort at det blir flest mulige treff. Operativsystemer
127
I/O-optimalisering Bruk av Cache på servere er ofte effektivt.
Undersøkelser viser over 90% av alt som leses fra disk hentes fra Cache. Operativsystemer
128
I/O-optimalisering Cache brukes også ved skriving av filer til disk.
Prinsippet ved skrive-Cache er at operativsystemet venter med å skrive til harddisken en periode i tilfelle det kommer en ny skrivning til samme området. Operativsystemer
129
I/O-optimalisering Input/Output-optimalisering er av avgjørende betydning for serverens ytelse fordi en så stor andel av operativsystemets oppgaver er I/O relaterte. Det er derfor viktig å velge maskinvare-komponenter som støtter opp om I/O-oppgaver. Operativsystemer
130
I/O-optimalisering Det er spesielt to maskinvarekomponenter som støtter opp om I/O-oppgaver SAS (Serial Attached SCSI) RAM (Ramdom Memory Access) Operativsystemer
131
I/O-optimalisering SAS (Serial Attached SCSI) gir forbedret ytelse på I/O-oppgaver. SCSI (Small Computer System Interface) er et sett med standarder for fysisk overføring mellom datamaskiner og perifere enheter, spesielt harddisker. Operativsystemer
132
I/O-optimalisering RAM er avgjørende for I/O-oppgaver.
Det er mengden RAM som avgjør hvor stor rolle caching skal spille i nettverket. Jo mer RAM som er i en server, jo mer cache. Operativsystemer
133
Nettverksegenskaper i Windows
Operativsystemer
134
Nettverksegenskaper i Windows
De første operativsystemene til Microsoft hadde liten støtte for nettverk. I dagens Windows er det bred støtte for nettverksoppgaver i input/output systemet og i Windows API. Operativsystemer
135
Nettverksegenskaper i Windows
Den vanlige oppgaven for et nettverks-program er å ta en forespørsel fra et program på en maskin og sende den til en annen maskin. Forespørselen blir så utført på den andre maskinen og resultatet blir returnert tilbake til den opprinnelige maskinen. Operativsystemer
136
Nettverksegenskaper i Windows
For at en forespørsel fra en maskin skal kunne sendes til en annen maskin må ofte forespørselen transformeres flere ganger. For eksempel må forespørselen transformeres når den sendes over nettet, ved at den deles opp i flere pakker. Operativsystemer
137
Nettverksegenskaper i Windows
Et nettverksoperativsystem har derfor bruk for tjenester som muliggjør kommunikasjon mellom maskiner. Windows nettverksarkitektur gir en fleksibel infrastruktur for nettverks API-er, nettverk protokoll drivere og nettverk adapter drivere. Operativsystemer
138
Nettverksegenskaper i Windows
Nettverksprogramvare som følger med Windows kan deles i fire typer. Nettverkstjenester. Nettverks API-er. Protokoller. Drivere til nettverksutstyr. Operativsystemer
139
Nettverkstjenester Windows har flere nettverkstjenester som bygger på API- komponenter. To av disse er Fjerntilgang Active Directory Operativsystemer
140
Nettverkstjenester Windows tillater to typer fjerntilgang. Det er
Oppringt samband . Virtual Private Network (VPN). Operativsystemer
141
Nettverkstjenester Oppringt samband tillater klienter å koble til en server via telefonlinjer eller liknende infrastruktur. Oppringt samband gir en midlertidig fysisk eller virtuell forbindelse mellom en klient og en server. Operativsystemer
142
Nettverkstjenester Fjerntilgang med VPN oppretter en forbindelse til en server over et IP nettverk som Internett. Operativsystemer
143
Nettverkstjenester Active Directory er et verktøy som brukes til å administrere et Windows lokalnettverk. Active Directory har en katalog som gir oversikt over alle brukere og alt utstyr som er i nettverket. Operativsystemer
144
Nettverkstjenester Med Active Directory kan en administrator i et nettverk organisere brukere og maskiner i grupper. Active Directory gjør det mulig å administrere svært store nettverk med millioner av brukere. Operativsystemer
145
Noen nettverks API-er Windows har flere nettverks API-er som gir støtte for programvare. Programmer kan bruke disse til å kommunisere med programmer på andre maskiner. Operativsystemer
146
Noen nettverks API-er Noen av nettverks API-ene er Windows Sockets.
Remote procedure call. Named pipes. Mailslots. Operativsystemer
147
Noen nettverks API-er Windows Sockets API er en teknisk spesifikasjon som definerer hvordan Windows nettverksprogramvare skal samarbeide med nettverkstjenester som TCP/IP. Operativsystemer
148
Noen nettverks API-er Windows Sockets gir et grensesnitt mellom et Windows TCP/IP klient program og den underliggende TCP/IP protokollen. Windows Sockets gjør det mulig for programutviklere å lage avanserte nettverksprogrammer for Internett og intranett. Operativsystemer
149
Noen nettverks API-er Remote procedure call (RPC) er en nettverkprogrammeringsstandard som ble utviklet på 1980 tallet. RPC gjør at programmer kan sende og få utført funksjonskall på en annen maskin enn den programmet selv kjører på. Operativsystemer
150
Noen nettverks API-er Named Pipes er en programmerings API for kommunikasjon mellom prosesser. Kommunikasjonen skjer mellom en Named Pipe server og en Named Pipe klient. En Named Pipe server er et program som lager en Named Pipe som klienter kan benytte. Operativsystemer
151
Noen nettverks API-er Data overføres via et bufferlager.
Data skrives til et bufferlager av en prosess slik at en annen prosess kan lese dataene der. Operativsystemer
152
Nettverksdrivere i Windows
Nettverks API drivere tar API forespørsler og oversetter dem til nettverks protokoll forespørsler, slik at de kan sendes over nettverket. API drivere bruker transport protokoll drivere for å gjøre denne oversettingen. Operativsystemer
153
Nettverksdrivere i Windows
Transport Driver Interface (TDI) er et nettverksgrensesnitt utviklet av Microsoft. TDI gjør det lettere for drivere å kommunisere med ulike nettverktransportprotokoller. Operativsystemer
154
Nettverksdrivere i Windows
TDI transporter er drivere i kjernemodus. De mottar pakker fra TDI og sender dem videre. Fordelen med å bruke TDI er at tjenester blir uavhengig av ulike protokoller for transport i nettverk. Operativsystemer
155
Kommunikasjon mellom maskiner
Operativsystemer
156
Windows Sockets Vi skal se nærmere på en mye brukt måte å kommunisere mellom datamaskiner på som kalles Windows Sockets. Operativsystemer
157
Windows Sockets Windows Sockets gir en grei måte for prosesser å sende og motta data over et nettverk. Når man bruker Sockets behøver man ikke tenke på underliggende protokoller. Operativsystemer
158
Windows Sockets Vi skal se på hvordan Sockets fungerer.
Hvordan man bruker en Socket avhenger litt av om man oppretter en server eller en klient. Operativsystemer
159
Windows Sockets Oppgaver for en server Lage socket Gi en IP adresse
Lytte etter klienter Motta en forbindelse Motta melding Sende melding Operativsystemer
160
Windows Sockets Oppgaver for en klient Lage socket Gi en IP adresse
Opprette en forbindelse Sende melding Motta melding Operativsystemer
161
Windows Sockets Sockets kan benyttes over Internett og bruker derfor en IP adresse når den kommuniserer. En Socket kan vente passivt på å bli kontaktet eller prøve å kontakte en annen Socket. Operativsystemer
162
Windows Sockets Sockets kan fungere på forskjellige måter. To hovedmåter er Forbindelse opprettes. Data sendes uten forbindelse. Operativsystemer
163
Windows Sockets Når det opprettes en forbindelse fungerer dette på samme måte som en telefonoppringning. Når det ikke opprettes en forbindelse fungerer dette som om man sender en pakke med posten. Operativsystemer
164
Remote Procedure call En annen måte å overføre data på enn Sockets er Remote Procedure Call. Remote Procedure Call er som navnet sier kall på prosedyrer som befinner seg på en annen maskin. Operativsystemer
165
Remote Procedure call Programmerere er vant til å bruke funksjoner når de lager programmer. Det er derfor nærliggende å bruke funksjoner også når data skal overføres fra en maskin til en annen. Dette har ført til utviklingen av Remote Procedure Call. Operativsystemer
166
Remote Procedure call Prosedyrer som benyttes ved Remote Procedure Call er forsøkt laget ganske like andre prosedyrer. Det vil si at de har innparametre og utparametre. Operativsystemer
167
Remote Procedure call Remote Procedure Call fungerer allikevel ikke som vanlige prosedyrer. Det som skjer er at prosedyrekallet sendes til en annen maskin ved hjelp av mekanismer som for eksempel Sockets. Operativsystemer
168
Remote Procedure call Inn og ut parametere og innholdet i prosedyren pakkes i en pakke som sendes til en annen maskin. Når pakken har kommet fram pakkes innholdet i pakken ut. Deretter identifiseres prosedyren som pakken er til og denne kalles. Operativsystemer
169
Remote Procedure call Når prosedyren på den fjerne maskinen er kalt utføres prosedyrekallet. Resultatet av prosedyrekallet pakkes inn i en pakke som sendes tilbake til den opprinnelige maskinen. Operativsystemer
170
Application Deployment
Operativsystemer
171
Application Deployment
Når vi utvikler et program i Visual Studio kjører vi det i omgivelsene til Visual Studio. Når programmet er ferdig ønsker vi som oftest å kunne kjøre det som et selvstendig program. Det vil si uten å måtte starte det i Visual Studio. Operativsystemer
172
Application Deployment
Det er flere måter å lage et selvstendig program på Kopiere filer til en katalog. Bruke Microsoft Installer. Benytte ClickOnce teknologi. Operativsystemer
173
Application Deployment
Vi kan gjøre programmet vårt til et selvstendig program ved å legge nødvendige filer i prosjektet på en egen katalog. De filer som skal legges på katalogen er filer som programmet har bruk for til å kjøre. Operativsystemer
174
Application Deployment
Filene vi har bruk for er exe-filen og filer som benyttes av exe-filen. For eksempel Bildefiler Ikonfiler Lydfiler Kodefiler som .cpp, .h og lignende er ikke nødvendig. Operativsystemer
175
Application Deployment
For at programmer laget i CLR skal fungere på en maskin krever det at .NET Framework er installert på maskinen. Operativsystemer
176
Application Deployment
For at programmet skal fungere uten at Visual Studio er installert på maskinen må exe-filen være kompilert med Konfigurasjonen Release Operativsystemer
177
Application Deployment
For å kompilere exe-filen som Release velg på menyen i Visual Studio Build – Configuration manager… Skift konfigurasjon fra Debug til Release. Operativsystemer
178
Application Deployment
Når du kompilerer programmet med konfigurasjonen Release får du en ny katalog i prosjektet som heter Release. Hent exe-filen til programmet ditt fra Release katalogen. Operativsystemer
179
Application Deployment
En måte å installere et program på er å lage en pakke med en Setup fil. Når noen dobbeltklikker på Setup filen blir programmet installert på maskinen. Operativsystemer
180
Application Deployment
Å bruke en Setup fil til å installere et program har flere fordeler Filene legges i en katalog. Programmet kan startes fra menyen. Kan ha en Shortcut på desktop. Oppdaterer fonter og lignende. Programmet kan også lett avinstalleres. Operativsystemer
181
Application Deployment
ClickOnce er en teknologi for å distribuere programmer over Internett. Ved å klikke på en link på en webside, lastes programmet ned til din maskin og du kan straks kjøre det. Operativsystemer
182
Application Deployment
En fordel med å bruke ClickOnce er oppgradering av programvare. Gjør du forandringer i programmet kan du bytte ut den gamle versjonen med en ny. Brukere av programmet vil da automatisk få oppdatert programmet til den nye versjonen via Internett. Operativsystemer
Liknende presentasjoner
© 2024 SlidePlayer.no Inc.
All rights reserved.