Operativsystemer for multiple prosessorer

Like dokumenter
En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen. Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.

Generelt om operativsystemer

Introduksjon til kurset og dets innhold

6105 Windows Server og datanett Jon Kvisli, HSN Skriveradministrasjon - 1. Utskrift i nettverk

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO

6105 Windows Server og datanett

6105 Windows Server og datanett

Generelt om permanent lagring og filsystemer

6105 Windows Server og datanett

SOLICARD ARX. Adgangssystemet som gir deg ubegrenset frihet. An ASSA ABLOY Group company

Installasjonsveiledning Visma Avendo Lønn, versjon 7.60 Oktober 2011

Brukerveiledning For Installasjon Av PCKasse. v1.01

Hvor holder dere til? Hvis vi trenger hjelp, hvor nært er dere? Tar det lang tid å få hjelp fra tekniker?

Aleksander Thanem Bjøru Seniorkonsulent MCSE og Citrix CCIA

Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.

Tekniske krav. Installasjonsrekkefølge. Operativsystem og web-server. Maskinvare. .Net Framework 2.0. ASP.Net AJAX 1.0

Operativsystemer og grensesnitt

Definisjon av prosess

SQL Server guide til e-lector

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Installasjonsveiledning

Velkomment til å installere BAS21

Innhold. Innledning til Input/Output. Ulike typer Input/Output. Input/Output internt i datamaskinen. Input/Output mellom datamaskiner

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache

)DVW3ODQ,QVWDOOHULQJ $%% $6 'LYLVMRQ $XWRPDVMRQVSURGXNWHU ΑΒΒ 3RVWERNV 6NLHQ

Kjenn din PC (Windows 7)

Singletasking OS. Device minne Skjerm minne. Brukerprogram. Brukerdata/heap. Stack. Basis for flerprosess-systemer.

Installere programvare gjennom Datapennalet - Tilbud

Debugging. Tore Berg Hansen, TISIP

VMware ESX og krav til hardware

Datamaskinens oppbygning og virkemåte

Installasjonsveiledning Visma Avendo, versjon 5.2

Installasjonsveiledning

INSTALLASJONSVEILEDNING FOR KALK2010 KALKULASJONSPROGRAM

Visma Contracting Oppgradering til versjon 5.20

Oppgave: Last ned og installer bzflag apt-get install bzflag 121A - Virtualisering

Demoversjon. Installasjon Uni Økonomi V3. - økonomisystemer fra start til børs

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

INF2270. Input / Output (I/O)

Windows 7. IT Forum

Klientadministrasjon og mobil utskrift

Eksterne minnekort. Dokumentdelenummer: Denne håndboken beskriver hvordan du bruker eksterne minnekort. Oktober 2005

Administrasjon av FLT-Sunnhordland Web-side

Installasjonsveiledning

iseries Innføring i Client Access Express

Programvareoppdateringer Brukerhåndbok

Installasjonsmanual. Versjon 1.2. Copyright 2002 Devinco AS

Generelt om operativsystemer

Internminnet. Håkon Tolsby Håkon Tolsby

Kjenn din PC (Windows7, Vista)

Våre tekniske konsulenter kan bistå slik at din bedrift får en best mulig tilpasset Handyman installasjon ut fra deres infrastruktur.

Klientadministrasjon og mobil utskrift. Dokumentdelenummer:

Programvareoppdateringer

Veiledning for oppdatering av Extensor 05 - versjon 1.16.

Lab 1: Installasjon av Virtualiseringsløsning (VMWare Server ESXi 6.5) med en Virtuell Linux maskin (Cent OS 7 64-bit)

Datamaskinens oppbygning

Her velger dere først System and Security og deretter System.

Et operativsystem er programvare som har som oppgave å gjøre tjenester for datamaskinsystemet.

Del 1 Setup - BIOS Oppgaver: 1. Hva slags CPU har maskinen? Beskriv de tekniske egenskapene ved CPU en.

EGA Svar på spørsmål, oppdatert pr

Installasjonsveiledning

Huldt & Lillevik Ansattportal. Installere systemet

Oppgave 1 - Linux kommandolinje (%)

Kjenn din pc (Windows Vista)

Klientadministrasjon og mobil utskrift

Eksterne enheter. Dokumentdelenummer: Denne håndboken beskriver hvordan du bruker eksterne enheter med maskinen.

1. Systemsikkerhet Innledning. Innhold

1. Introduksjon Windows server 2000

Logica AS Tlf: Brukerdokumentasjon Fjernaksess InnsIKT 2.0 Versjon 1.3. Godkjennelse. Date. Forfatter: Logica. Leder: <Manager> Date

Fungerer applikasjonene våre på Windows 7!? Microsoft Application Compatibility Toolkit

UNIVERSITETET I OSLO

Eksterne enheter. Dokumentdelenummer: Denne håndboken beskriver hvordan du kobler til eksterne enheter. Mai 2006

Kjenn din PC (Windows7)

Maestro Klientadministrasjon

Funksjonalitet og oppbygning av et OS (og litt mer om Linux)

Huldt & Lillevik Ansattportal. Installere systemet

Programvareoppdateringer

Innledende Analyse Del 1: Prosjektbeskrivelse (versjon 2)

Lars Vidar Magnusson. October 11, Lars Vidar Magnusson () Forelesning i Operativsystemer October 11, / 28

Klientadministrasjon og universelle utskriftsløsninger

1. Intro om SharePoint 2013

Nadine Pedersen GRIT Datamaskinen- kjenn din Mac

Kjenn din PC (Windows 8.1)

Vedlikehold av PC Av Hans Henrik Støvne

2. Hvor mye Internminne har den? Svar: 2GB

Eksterne enheter. Dokumentdelenummer: Denne håndboken beskriver hvordan du kobler til eksterne enheter. Mars 2006

Phone Assistant. Arne-Jørgen Auberg

1. Introduksjon til operativsystemer

Installasjonsveiledning

Innstallasjon og oppsett av Wordpress

SPSS Høgskolen i Innlandet

COLOR LASERJET ENTERPRISE CM4540 MFP-SERIEN. Installeringsveiledning for programvare

Programvareoppdateringer Brukerhåndbok

Install av VPN klient

P L A N I A 8 S Y S T E M K R A V PLANIA 8 SYSTEM KRAV. Plania 8 Systemkrav.docx av 8

Din verktøykasse for anbud og prosjekt

Hovedprosjekt 41E Arnstein Søndrol. Cisco Clean Access Valdres Videregående Skole

DDS-CAD. Oppsett av student-/demolisens

EKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.

Transkript:

Operativsystemer for 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. Imidlertid er det en grense for hvor fort signaler kan overføres i et datamaskinsystem. Grenser for hastighet I følge Einsteins teori kan ikke signaler gå fortere enn lysets hastighet. 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. Flere prosessorer En annen måte å øke hastigheten for datamaskiner er parallell programmering. Flere prosessorer som arbeider parallelt kan få datamaskiner til å arbeide raskere. 1

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 for flere prosessorer er for det meste som operativsystemer for en prosessor. Operativsystemer for flere prosessorer Operativsystemer for flere prosessorer må ha utvidede funksjoner når det gjelder synkronisering, prosessplanlegging og behandling av ressurser. 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. Hver prosessor har sitt eget operativsystem 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. 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. 2

Hver prosessor har sitt eget operativsystem (fortsatt) Det er også mulig for prosessorene å dele et minne slik at de kan kommunisere med hverandre. 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. Master-Slave modellen En annen måte å organisere på er Master-Slave modellen. Master Slave Slave Slave Figur 10.1 Master-Slave modellen med fire prosessorer I denne modellen kjører operativsystemet i en prosessor (Master). De andre prosessorene kjører brukerprogrammer. Master-Slave modellen gir en enkel måte å organisere bruk av flere prosessorer i en datamaskin. Alle prosessorene kommuniserer med operativsystemet i Masterprosessoren. 3

Ulempen med Master-Slave modellen 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. 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. Alle prosessorer deler et felles minne. SMP tillater hver prosessor å kjøre en hvilken som helst tråd. SMP kan lett flytte oppgaver mellom prosessorer slik at oppgavene blir jevnt balansert mellom prosessorene. Prosessor Prosessor Prosessor Prosessor Figur 10.2 Ved SMP kan hver prosessor kjøre både tråder fra brukerprogrammer og tråder som tilhører operativsystemet. 4

Bruk av Mutex 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. Å 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. Forbedring når bruk av Mutex 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. Hver kritisk region i operativsystemet reguleres av en Mutex slik at bare en prosessor kan benytte det om gangen. Synkronisering når flere prosessorer 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. Det benyttes gjerne Mutexer til å synkronisere kritiske regioner. Ulempen med å bruke Mutexer er at det oppstår ventetid. 5

Behandling av tråder Når en tråd må vente kan dette behandles på to måter 1. Tråden spinner til den kommer inn. 2. Systemet utfører en Switch. Spinning vil si at en tråd venter på en Mutex inntil den blir ledig. Med spinning menes at tråden prøver igjen og igjen om Mutexen er ledig. 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. Spinning er bortkastet tid. Men også en Switch tar tid å utføre. Best av Spinning og Switch Hva som lønner seg vil derfor avhenge av hvor lenge tråden må vente med spinning. 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. Best resultater vil oppnås om systemet holder rede på de siste spintidene. Dette benyttes til å avgjøre om systemet skal benytte spinning eller Switching. 6

Prosessplanlegging når flere prosessorer Når det er bare en prosessor er det kun nødvendig å prosess planlegge prosesser. Er det flere prosessorer må man også benytte prosessplanlegging på prosessorene. Samarbeid mellom tråder 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. Noen tråder er uavhengige av andre. Andre tråder samarbeider. I så fall vil det være gunstig å samkjøre disse. Tidsdeling og rom deling Vi skal se på to måter å organisere prosessplanlegging på når det er flere prosessorer Tidsdeling Timesharing Rom deling Space sharing Tidsdeling 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. 7

Rom deling 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. Ulemper med rom deling 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. Gang Scheduling En måte å kombinere tidsdeling og rom deling kalles Gjeng prosessplanlegging Gang Scheduling Gjeng prosessplanlegging skjer på følgende måte. 1. Grupper av tråder som hører sammen blir behandlet som en enhet, det vil si som en gjeng. 2. Alle medlemmer av gjengen kjører samtidig, på forskjellige prosessorer ved tidsdeling. 8

Fordeler med Gang Scheduling 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. 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. 9

Bruk av lys i datamaskiner Lys har høyere hastighet enn elektroner. Ved å bruke lys som signaler i datamaskiner vil hastigheten kunne økes. Det har lenge vært mulig å bruke lys i datamaskiner. Pris 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. Bruk av lys vil komme? 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. 10

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. Multicomputers har flere prosessor 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. Et system med flere datamaskiner er derfor et system som likner en datamaskin med flere prosessorer. Forskjell multicomputers og multiprosessor En forskjell er imidlertid at en multiprosessor har et felles minne, mens flere datamaskiner har ulike minner. En definisjon av 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. 11

Hvordan lage et system med Multicomputers Å lage et system med Multicomputers er ganske lett. Det er bare å koble sammen noen datamaskiner i et nettverk. 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. 12

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. En fordel ved virtualisering er at man kan ha flere virtuelle maskiner på en fysisk maskin. Eksempel virtualisering Vi skal ta et eksempel på dette. 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. Disse serverne kan kjøres på en fysisk maskin ved at hver av dem kjøres på en virtuell maskin på den fysiske maskinen. Fordeler ved virtualisering Bedriften vil spare plass og penger ved å ha alle serverne på en maskin. Ved virtualisering kan også en fysisk maskin kjøre flere ulike operativsystemer, da hver virtuell maskin kan ha ulikt operativsystem. 13

Typer virtuelle maskiner Virtuelle maskiner deles i to typer System virtuelle maskiner Prosess virtuelle maskiner System virtuelle maskiner System virtuelle maskiner er at flere virtuelle maskiner deler en fysisk maskin. Hver virtuelle maskin har sitt eget operativsystem. 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. Fordeler med system virtuelle maskiner Fordeler med system virtuelle maskiner 1. Kan kjøre flere operativsystemer på en datamaskin. 2. En virtuell maskin kan gi en annen arkitektur enn den underliggende fysiske maskinen. 3. Lettere implementering og vedlikehold av programvare. 14

Ulemper med system virtuelle maskiner Tradisjonelle ulemper med system virtuelle maskiner 1. Virtuelle maskiner er ikke så effektive som programvare som jobber direkte på hardware. 2. Når flere operativsystemer jobber på en maskin kan det gi varierende og ustabil prestasjonsevne. Virtualisering har imidlertid fått ny aktualitet ved at datamaskiner har fått flere prosessorer. Prosess virtuell maskin 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. 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. Et eksempel på en prosess virtuell maskin er.net Framework som benytter CLR. 15

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. Hensikten med nettverk Når datamaskinene ble knyttet sammen i nettverk, så var hensikten med dette Kommunikasjon mellom maskiner. Deling av felles utstyr og data. Datamaskinene knyttet sammen i nettverk fungerte altså ikke som en enhet. Distribuerte systemer fungerer som en enhet Distribuerte systemer derimot fungerer som en enhet. Distribuerte systemer er et neste skritt innen nettverk. Distribuerte systemer innebærer at en gruppe datamaskiner arbeider sammen som en enhet. 16

Fordeler med 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. Å distribuere betyr å dele noe blant mange. 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. Struktur 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. Fordeler med distribuerte systemer Fordeler med distribuerte systemer Økonomi Pålitelighet Deling av ressurser Ytelse Utvidelse 17

Hensikten bak 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. Et distribuert system bestående av mange små maskiner vil kunne utføre større oppgaver. Fordeler med distribuerte systemer Siden mange små maskiner er rimeligere enn en stormaskin kan man spare penger. 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. 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. Ytelsen til et datamaskinsystem kan økes ved å tilføre flere maskiner. Jo flere maskiner som samarbeider, jo høyere ytelse. Mulighet for utvidelse er en fordel 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. 18

Identifisering av maskiner 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. 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 453.345.456.7 Operativsystemer for distribuerte systemer Operativsystemer laget for distribuerte systemer vil være forskjellig fra vanlige nettverksoperativsystemer (NOS). Operativsystemer for distribuerte systemer vil ha flere oppgaver. Oppgaver for operativsystemer for distribuerte systemer Et operativsystem for distribuerte systemer vil ha som oppgave å bygge ned grensene mellom maskiner. 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. 19

Synkronisering for 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. 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. Metoder for synkronisering Andre metoder enn semaforer er derfor utviklet for synkronisering av distribuerte systemer. Disse metodene er av to typer 1. Sentraliserte algoritmer 2. Distribuerte algoritmer Sentraliserte algoritmer Sentraliserte algoritmer er et system for synkronisering der en prosess har som oppgave å koordinere kritiske regioner i et distribuert system. 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. 20

Ulempen med sentraliserte algoritmer Ulempen med å ha en koordinator er at om maskinen den er på krasjer, så krasjer hele synkroniseringssystemet. Et slikt krasj kan derfor føre til vranglås for hele nettverket. Distribuerte algoritmer Det er derfor utviklet distribuerte algoritmer for synkronisering. Distribuerte algoritmer virker slik at hver prosess deltar i synkroniseringen. 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. Ulempen med distribuerte algoritmer 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. 21

Vranglås i distribuerte algoritmer 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. 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. Sykluser i distribuerte algoritmer 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. Måter å bryte en syklus Hvis det oppstår en syklus er det et spørsmål hvordan bryte syklusen. Det er to måter å bryte syklusen 1. Å avslutte en eller flere prosesser. 2. Ta ressurser fra en eller flere prosesser. 22

Deling av minne ved distribuerte systemer En tanke med distribuerte systemer er å utnytte minnet til maskinene ved å dele minnet mellom dem. Dette innebærer at prosesser på en maskin kan benytte minnet til andre maskiner. 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. Filsystemer for 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. Navn til filer Skal man ha et distribuert filsystem må man ha en måte å holde rede på navnene til filene. Et navnesystem er nødvendig på hver maskin slik at brukere kan åpne filer ved å klikke på dem. 23

Organisering av filer En måte å organisere et navnesystem 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. 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. Flere servere 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. Replikasjon 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. 24

Nettverksoperativsystemer Operativsystemer forelesning 6 Det finnes mange forskjellige utgaver av operativsystemer for lokalnett. Operativsystemer for lokalnett kalles nettverksoperativsystemer (NOS). Tre operativsystemer som har vært mye brukt i lokalnettverk er Novell Netware Windows Server Linux 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. Nettverkoperativsystem 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. 25

Oppgaver i et nettverk 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. Oppgaver som er sentrale i et nettverksoperativsystem er Filoverføring Utskrifts behandling Sikkerhet Kommunikasjon i nettverk 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. I/O oppgaver er viktig i et NOS 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. 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. 26

Noen I/O oppgaver 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. 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. Caching En måte å optimalisere I/O oppgaver på er ved hurtigbufring (Caching). 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. Virkemåte Caching Ved Caching legges de mest brukte filene i minnet slik at de kan leses der. 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. 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. 27

Caching og Internett 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. Caching i nettverk I nettverk kan vi snakke om tre typer cahce. Internet/web Cache hos Internettleverandør. RAM Cache i server. Prosessor Cache i server. Treffprosenten 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. 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. 28

Caching lønner seg Bruk av Cache på servere er ofte effektivt. Undersøkelser viser over 90 % av alt som leses fra disk hentes fra Cache. Skrive Cache 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. Input/Output-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. Det er spesielt to maskinvarekomponenter som støtter opp om I/Ooppgaver SAS Serial Attached SCSI RAM Ramdom Memory Access 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. 29

RAM 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. 30

Nettverksegenskaper i Windows Operativsystemer forelesning 6 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. Forespørsler 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. 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. Tjenester i et nettverksoperativsystem 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. 31

Typer nettverksprogramvare Nettverksprogramvare som følger med Windows kan deles i fire typer. 1. Nettverkstjenester. 2. Nettverks API-er. 3. Protokoller. 4. Drivere til nettverksutstyr. Nettverkstjenester Windows har flere nettverkstjenester som bygger på API- komponenter. To av disse er 1. Fjerntilgang 2. Active Directory 1. Fjerntilgang Windows tillater to typer fjerntilgang. Det er Oppringt samband. Virtual Private Network (VPN). 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. Fjerntilgang med VPN oppretter en forbindelse til en server over et IP nettverk som Internett. 32

2. Active Directory 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. 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. Nettverks API-er Windows har flere som gir støtte for programvare. Programmer kan bruke disse til å kommunisere med programmer på andre maskiner. Noen av nettverks API-ene er Windows Sockets. Remote procedure call. Named pipes. Mailslots. Windows Sockets API Windows Sockets API er en teknisk spesifikasjon som definerer hvordan Windows nettverksprogramvare skal samarbeide med nettverkstjenester som TCP/IP. 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. 33

Remote Procedure Call 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å. Pipes 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. Data overføres via et bufferlager. Data skrives til et bufferlager av en prosess slik at en annen prosess kan lese dataene der. Nettverks API drivere 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. 34

Transport Driver Interface Transport Driver Interface (TDI) er et nettverksgrensesnitt utviklet av Microsoft. TDI gjør det lettere for drivere å kommunisere med ulike nettverktransportprotokoller. 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. 35

Kommunikasjon mellom maskiner Vi skal se nærmere på en mye brukt måte å kommunisere mellom datamaskiner på som kalles 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. Funksjonalitet Sockets Vi skal se på hvordan Sockets fungerer. Hvordan man bruker en Socket avhenger litt av om man oppretter en server eller en klient. Oppgaver for en server 1. Lage socket 2. Gi en IP adresse 3. Lytte etter klienter 4. Motta en forbindelse 5. Motta melding 6. Sende melding Oppgaver for en klient 1. Lage socket 2. Gi en IP adresse 3. Opprette en forbindelse 4. Sende melding 5. Motta melding 36

IP adresse 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. Funksjonalitet Sockets Sockets kan fungere på forskjellige måter. To hovedmåter er Forbindelse opprettes. Data sendes uten forbindelse. 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. 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. 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. Prosedyrer som benyttes ved Remote Procedure Call er forsøkt laget ganske like andre prosedyrer. Det vil si at de har innparametre og utparametre. 37

Funksjonalitet 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. 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. 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. 38

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. Det er flere måter å lage et selvstendig program på Kopiere filer til en katalog. Bruke Microsoft Installer. Benytte ClickOnce teknologi. Kopiere filer til en katalog 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. 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. 39

.NET Framework For at programmer laget i CLR skal fungere på en maskin krever det at.net Framework er installert på maskinen. Release For at programmet skal fungere uten at Visual Studio er installert på maskinen må exe-filen være kompilert med Konfigurasjonen Release For å kompilere exe-filen som Release velg på menyen i Visual Studio Build Configuration manager Skift konfigurasjon fra Debug til Release. 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. Setup fil 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. Å 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. 40

ClickOnce 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. 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. 41