Föreläsning 3


Operativ systemets uppgifter
Det är svårt att definera ett operativsystems uppgifter, för att olika operativsystem är specialiserad för att vara bra på sin sak. t.ex:
  • Ett operativsystem som används till hantering av postgiro ska vara bra seciellt på snabb åtkomst då det handlar om stora lagringar.
  • Ett operativsystem som används i flygplanstyrning ska speciellt vara bra på hög säkerhet, snabba reaktioner och samarbete melan olika system.
  • Ett operativsystem som används till lönehantering ska ha hög sekretess.

Men alla operativsystem har till uppgift att:
1. Underlätta användning av datorn genom att arbeta som en skikt mellan användaren och hårdvaran.
2. Tilldela resurser som  minne, CPU osv... till olika program på ett effektivt sätt.

Virtuellt minne
För länge sedan när det uppstod problemet att ett program var förstort för tillgängliga minnet så delade man program till mindre bitar som kallades för overlay. Overlay 0 startades först och när den var klar anropade nästa overlay osv på samma sätt tills hela programmet kunde köras.
Att växla mellan olika overlay mellan minnet och disken var inga problem , detta gjorde operativsystemet dynamisk.
Men att dela upp programmet till små delar var programmerarens jobb och inte operativsystemets. Att dela ett stort program till små delar var ett tidskrävande jobb därför tog det inte så långt tid tills man kom på tekniken virtuell minne som låter operativsystemet ta hand om detta.
Virtuelle minne är en teknik som även  funkar i ett multiprogrammeringssyetem (d.v.s. ett system som flera program skulle kunna samköras).


Grundiden med virtuellt minne är att operativ systemet håller de delar av programmet som är aktuella (d.v.s  delar av program som körs eller i närmaste framtid kommer att behöva köras ) i huvudminnet (RAM) och resten av programmet på disken, vi antar att vi arbetar med en dator som kan generera 16-bit adresser från 0 till 64 KB, de adresser kallas för virtuella adreseer.

Siduppdelningsteknik
Många Virtuell minne system använder sig av en teknik som kallas för siduppdelning. Här viill vi introducera tekniken med ett exempel. Anta att vi arbetar med en dator som har 32 KB fysisk minne (RAM) d.v.s. att ett program som är t.ex på 64KB skulle inte kunna få plats på  huvudminnet.
Anta att 64 KB av sekundära minnet till virtuella adresser. De här virtuella adresser delas till små delar som kallas sidor. Motsvarande enheter i fysiska minnet kallas sidram. Sidor och sidramar är alltid lika stora och i det här fallset 4KB.
När programmet försöker få tillgång till t.ex adress 0 då  minneshanteringsenheten ser att detta finns i sida 0 (0 till 4k) vilket mosvarar sidram nummer 2 (8k-12k), så adressen som skickas ut till bussen är 8192, minnet har ingen aning om minneshanteringsenheten och ser endast som att den ska läsa ifrån eller skriva till adress 8192.
Adressen 0 var ju i början av intervallet 0 till 4K, vad skulle skickas ut på bussen om virtuella adressen finns i mitten av ett intervall? t.ex virtuella adressen 20500 som ligger i intervallet 20K-24K. 20500=20480+20=20K+20.
Alltså 20500 ligger 20 bytes intill från starten i intervallet 20K-24K. Som bilden visar ser vi att 20K-24K pekar till 12K-16K i den fysiska minnet då motsvaras detta som 12*1024+20=12308 skickas till bussen.
Vad händer om programmet försöker använda de sidor som inte har några motsvarigheter i fysiska minnet(de som är markerat med kryss)?

I detta fall minneshanteringsenheten meddelar till CPU:n att sidan finns inte i huvudminnet, då operativsystemet kommer in här och byter en sidram som redan är använd mot den som ska köras t.ex:
Om programmet bestämmer sig att 32780 ska köras, eftersom denna adress inte har några motsvarigheter i fysiska minnet och sidram på plats 1 (4K-8K) är den som redan har använts. Nu är det bara två saker som ska göras, först att markera den aktuella sidan (sida 4K-8K) med kryss och den andra är att ersätta krysset på virtuella sidan 8 med fysiska sidramen alltså 1.
på detta sätt kommer man att kunna köra program som är större än primärminnet.

Datorkommunikation
För att datorer ska kunna kommunicera med varandra över nätet så behöver de veta varandras adress, datorernas adress kallar vi IP-nummer (Intener Protokol nummer).
Varje dator som är kopplad till internet har ett eget unikt adress så att data som ska skickas till en dator ska komma fram till just den datorn och ingen annan, sedan finns det olika typer av adresser som en dator kan skicka sitt meddelande till, t.ex det finns adresser som är över nätet d.v.s. det hör inte till en viss dator utan att meddelandet kommer att skickas till alla datorer som finns på nätverket.


Överföriong av data
Överföringsmetoder
Asynkron:
Metoden  används när mottagaren inte har en aning om när sändaren kommer att skicka data till motagaren, därför varje bit som ska skickas utrustas med start- och slutsignal.
Synkron:
Ett snabbare sätt att överföradata är synkron överföring och det fungerar på det sätt att flera tecken överförs i direkt följd och både sändare och mottagare har klockor som är överens om när data ska skickas och tas emot.
Seriell:
Om ett tecken (t.ex 7bitar) överförs som en rad av pulser på en och samma ledning, talar man om seriell överföring.
Parallell:
Om alla bitar i ett tecken (t.ex 7bitar) överförs samtidigt och bredvid varandra på 7 olika ledningar talar vi om parallell överföring.

Redundanskontroll
Vid överföring kan störningar på ledningen påverka signalerna så att en 1:a byt mot en 0:a eller visse versa, för att kontrollera fel finns det olika metoder, här introduserar vi några av de:

Paritetskontroll: Koden för ett tecken (t.ex 7 bitar) kompletteras med en 8:e bit så att alltid antalet 1:or i koden är jämnt.
t.ex: ASCII koden för teckent 'A' är 1000001, om man skulle skicka ett A över linjen så skulle man skicka 01000001, kod för tecknet 'C' är 1000011 och då man skulle skicka 11000011 på linjen,, när mottagaren tar emot detta så kontrollerar om antalet 1:or stämmer bra med den extra biten, om inte då koden har förvrängts.

Kontrollsummor:
tanken med kontrollsumma är att man summerar t.ex antal 1:or och skickar med kontrollsumman med , på detta sätt när mottagaren beräknar summan av alla 1:or och kontrollerar att det kontrollsumman som sändaren har skickat med stämmer bra med beräknade, annars har det blivit något fel.
 
Validitetskontroll:
är ett sätt att utnyttja att t.ex inte alla bitkombinationer är möjliga. Mottagaren kontrollerar såleds att den mottagne  koden överensstämmer med någon av de tillåtna eller kända.

Nät
LAN (Local Area Netwok):

När man kopplar ihop fler datorer inom ett begränsat område brukar man kalla nätverket som bildas för ett LAN, ett lokalt nätverk. Lokala nätverk brukar ha en rätt så begränsad sträckvidd och stationerna brukar finnas inom ett mindre område, som t.ex inom en byggnad eller en grupp av byggnader. LAN kännetecknas av en hög datahastighet och att användarna delar det medium som nätverket är uppbyggt av.

WAN (Wide Area Network):
Wan använder anan typ av nät som telenätet och har lägre hastighet än LAN.

Nätverkstopologier
<>Busstopologi
Busstopologin består av en ledning med terminatorer dit arbetsstationer är kopplade. Stationerna skickar ut data i båda riktningar så att den kommer fram till alla stationer på ledningen. Vid ändstationerna slängs sedan paketet bort.
För att detta ska fungera måste det finnas adressinformation i paketet, så att man vet vem mottagaren är, och något MAC-protokoll (Media Access-protocol) som bestämmer vem som ska få sända på ledningen.  <>En annan viktig fråga för att denna typ av topologi ska fungera är balanseringen av signalnivån. Signalen måste vara stark nog så att den når ut till alla. Den får dock inte vara så stark att sändaren blir överlastad. Detta blir svårare att avväga ju fler stationer som är kopplade till nätet.
Ett sätt att lösa problemet med balanseringen av signalstyrkan är att dela in nätet i olika mindre delar och balansera nätet i varje del. Sedan kopplar man ihop de olika delarna med repeterare eller förstärkare för att bygga ihop nätet igen.

<>
Ringtopologi

I en ringtopologi är stationerna sammankopplade i en sluten krets. Till skillnad mot busstopologin där stationerna är parallellkopplade är stationerna i ringtopologin seriekopplade. Ledningen knyts ihop med repeterare till vilka stationerna är påkopplade och repeterarna har alltså en punkt-till-punktförbindelse mellan sig och sina två närmaste grannar och data skickas runt från en repeterare till nästa. Detta gör att data som skickats ut måste tas bort, för att den inte ska skickas runt i oändlighet. Det kan vara antingen mottagaren som tar bort den eller så kan sändaren själv göra det. Om sändaren är den som tar bort sina paket kan detta system användas för multicast, eftersom data då går hela varvet runt så att alla har möjlighet att ta del av informationen under en och samma sändning. En ring kan göras om till en logisk stjärnstruktur genom att sätta en hub i centrum på ringen och dra in ledningen dit. Genom att göra så kan man lättare isolera de enskilda stationerna om det uppstår något fel eller om man behöver testa något. Det blir också lättare att lägga till eller ta bort stationer till strukturen som inte heller blir lika sårbar för t ex ett kabelbrott, eftersom hubben kan leda trafiken förbi en trasig ledning. Nackdelen är att man behöver mycket mer kabel.


Stjärntopologi

I stjärnkopplade nät är varje station kopplad till en central hub med två ledningar, en för att ta emot information och en för att sända ut. Hubben fungerar som en repeterare och kopierar all information som kommer in och skickar den till alla stationer. Detta gör att det uppstår en kollision om två stationer sänder samtidigt. Fysiskt är detta en stjärnstruktur, men logiskt fungerar den precis som en buss. Fördelen med denna struktur är att man kan bygga väldigt stora nätverk. 




Olika nätverkskomponenter
Bryggor
Bryggor används för att koppla ihop olika lokala nätverk så att flera fysiska nätverk upfattas som ett logiskt nätverk. Fördelen med att göra på detta sätt är att nätet blir mer tillförlitligt när det består att självständiga enheter. Effektiviteten i nätet minskar också ju fler enheter som är påkopplade, vilket gör att det kan vara en fördel att separera delarna. På detta sätt kan man också koppla ihop LAN som ligger på olika stället och samtidigt hålla viss information som kan vara känslig och inte bör spridas kvar på de enskilda lokala nätverken.

Router
En router är en enhet som sammankopplar två datanätverk i ett större internät. Routern använder sig av internätprotokoll och gör antagandet att allt som är kopplat till nätet använder sig av samma kommunikationsarkitektur och protokoll. Routern arbetar på lager tre i OSI-modellen, d v s nätverkslagret.

En router kan se ut på många sätt. Det kan vara en stor router från t ex Cisco, en vanlig dator, eller en liten ISDN-router.

Repeterare och förstärkare 
Repeterare används på långa digital överföringslänkar. I repeteraren återskapas den ursprungliga bitströmmen, så att datasignalerna inte förstörs eller blir svårtolkade. Repeteraren kan återskapa bitarna till ursprungsskick, om de inte har blivit alltför förstörda, eftersom det är frågan om ett väldigt begränsat antal nivåer (ettor och nollor) som ska återskapas.

Förstärkare används vid analog överföring. De förstärker den analoga signalen när det finns risk för dämpning. Förstärkaren återskapar inte den ursprungliga analoga signalen utan enbart förstärker den. Dessvärre förstärks både signalen och ev brus. Förstärkare brukar också själv generera ett visst brus, vilket gör att även brus och andra störningar blir större och större med varje förstärkning.

Gateway: Kopllar ihop två olika nätslag till varandra, t.ex när du sms:ar till en mobil via internet så finns det en gateway någnstans som omvandlar de IP-paket(er) som kommer från datorn till det protokoll som används för sms och skickar vidare till mobilanätet.

Modem:
Omvandlar digital till analog och vise versa.


TCP/IP
IP och TCP är de protokoll som datorer använder sig av för att kommunicera med varandra på internet.

IP-paket
TTL(Time To Live):
Det är är ett tal som bestämmer hur många routrar paketet ska passera innan den kan kastas bort. Detta är för att paketet ska inte cirkulera i evigheter på nätet.
Totallängd:
här anges paketets totala längd med angivelse i antal bytes, max tillåtet paket längd är 65353 bytes.
fragmantering:
Fältet består själv av många olika små fält och de används till för att fragmantera och defragmantera olika ip-header.
Protokoll: Här anges vilket protokoll som kommer efter IP-huvudet, oftast TCP eller UDP.
Kontrollsumma(checksum) för huvudet:
Här anges en kontrollnummer för att kontrollera om paketets data har ändrats under vägen.
Källadress:
Här stoppar sändaren sitt eget IP-adress.
Destinationsadress:
Här stoppar sändaren IP-adress till den datorn som paketet ska skickas till.

TCP-paket
Källport:
talar om vilket sändarens port.
Destinationsport:
talar om mottagarens port.
kvittensnummer:
Ett nummer som skickas från mottagaren till sändaren som talar om nummer på nästa packet som mottagaren förväntar.

UDP-paket
Källport: talar om vilket sändarens port.
Destinationsport:
talar om mottagarens port.
kontrollsummasum: ett kontrollnummer för att indikera fel.
Totallängd:
Längden på hela paketet.