Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Operativsystemer for multiple prosessorer

Liknende presentasjoner


Presentasjon om: "Operativsystemer for multiple prosessorer"— Utskrift av presentasjonen:

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


Laste ned ppt "Operativsystemer for multiple prosessorer"

Liknende presentasjoner


Annonser fra Google