1. Introduksjon til operativsystemer

Størrelse: px
Begynne med side:

Download "1. Introduksjon til operativsystemer"

Transkript

1 Avdeling for informatikk og elæring, Høgskolen i Sør-Trøndelag Introduksjon til operativsystemer Geir Maribu Lærestoffet er utviklet for faget LO249D Operativsystemer med Linux 1. Introduksjon til operativsystemer Resymé: I denne leksjonen vil du få en oversikt over hva et operativsystem er for noe, hvordan det er bygget opp og hvordan det virker Hva er et operativsystem Operativsystemet er det mest grunnleggende programmet som kjører på datamaskinen din. Ja, for operativsystemet er et program som kjører på datamaskinen på lignende måte som alle andre programmer. Når du kjører et regnearkprogram på maskinen din er det operativsystemet som skaffer ressurser til dette programmet, dvs. plass i minnet, tid for å kjøre på cpu etc. Det er også operativsystemet som hjelper til når du skal skrive ut regnearket til skriver, når tallene skrives til skjerm, og når filen lagres på disk. Operativsystemet sørger også for at du kan utføre flere jobber samtidig på maskinen, f.eks mens du jobber med beregninger i et regneark, kan det samtidig foregå andre aktiviteter på maskinen, f.eks nedlasting av filer fra Internett, sjekke filer for virus, ta sikkerhetskopi av data etc. Videre kan andre personer være innlogget på den samme maskinen og jobbe på samme måte som du, dvs. kjøre sine egne programmer samtidig med at du kjører dine programmer. I slike tilfeller kreves det av datamaskinen at den håndterer samtidige forespørsler mot de samme ressursene, f.eks flere programmer spør etter plass i minnet, tid på cpu etc. på samme tid. Da må operativsystemet styre tilgangen til disse ressursene. Operativsystemet er et stort og komplisert system av programmer som sørger for at maskinen er tilgjengelig for oss brukere. Vi skal nå sammen prøve å finne ut mer om hvilken rolle operativsystemet har i datamaskinsystemet, hvordan det er bygd opp og hvordan det virker Operativsystemets plassering i systemet Operativsystemet er plassert mellom maskinvaren og brukerprogrammene. Med maskinvaren menes datamaskinen slik den ser ut når den kommer rett fra fabrikken. Maskinen inneholder da ingen programmer, og du kan derfor ikke gjøre noe fornuftig med maskinen. Med brukerprogrammer (ofte også kalt applikasjonsprogrammer) mener vi de programmene du benytter deg av for å få utført ting, f.eks tekstbehandling, regneark, lese post, surfe på nettet, spille musikk etc. Operativsystemet stiller seg i mellom disse to lagene slik som vist på figuren nedenfor. Alle brukerprogrammene er avhengig av operativsystemet for å kunne fungere. Uten

2 Introduksjon til operativsystemer side 2 av 22 operativsystemet ville ikke disse brukerprogrammene kunne lastes inn i maskinens minne, ikke kunne ta i mot data fra tastatur, ikke skrive ut data til skjerm etc. Operativsystemet har den fulle kontroll med alt som skjer i datamaskinen. Operativsystemet aktiviseres automatisk med en gang maskinen slås på, og etter en kort stund er maskinen klar til å ta i mot de første kommandoene fra deg. Egentlig er det operativsystemet som tar i mot kommandoene siden det har kontroll og styring med hele maskinen. brukerprogram operativsystem maskinvare Brukerprogrammene har oppgaver som skal utføres mot maskinvaren, f.eks skrive ut et bilde, lagre ei fil etc. Alle disse oppgavene må kanaliseres gjennom operativsystemet. I operativsystemet finnes det egne funksjoner som sørger for at brukerprogrammene kan skrive til disk eller diskett, vise tekst på skjermen, ta i mot data fra tastatur etc. Operativsystemet fungerer som et grensesnitt mellom maskinvaren og brukerprogrammene. Sjelden eller aldri trenger brukerne å forholde seg direkte til maskinvaren som benyttes, og det er en stor fordel da maskinvaren er komplisert, den endrer seg hele tiden, blir mer avansert etc. Ved å la operativsystemet ta seg av disse til dels kompliserte oppgavene, slipper brukerprogrammene å ta hensyn til disse tingene, og dermed blir også jobben mye enklere for de personene som lager brukerprogrammene. De slipper nemlig å ta hensyn til komplisert maskinvare når de lager programmer; det holder at de kaller opp en aktuell funksjon i operativsystemet. Datamaskiner kan variere ganske mye rent maskinvaremessig alt etter hvilket merke og hvilken prosessor (cpu) som står i maskinen. Alle PC-ene basert på INTEL x86-prosessorklassen er relativt like, men dersom vi bringer inn maskiner som Macintosh, maskiner basert på alpha- og risc-prosessor etc, så snakker vi om helt andre maskinarkitekturer. En programmerer som ønsker å lage et program som skal kunne kjøre på alle disse forskjellige maskinarkitekturene kan ikke forholde seg til all de forskjellige maskintypene. Det vil bli et alt for omfattende prosjekt. I stedet forholder programmereren seg til operativsystemet og kaller opp nødvendige funksjoner som finnes i operativsystemet når f.eks programmet skal skrive til fil, skrive til skjerm etc. Programmereren forholder seg altså til operativsystemet når brukerprogrammer skal lages. Da er det bare for programmereren å sjekke om det aktuelle operativsystemet finnes på denne maskinarkitekturen, og programmet vil da uten problemer kunne kjøre på denne maskinarkitekturen uten at programmereren trenger å tenke på hvordan maskinvaren virker.

3 Introduksjon til operativsystemer side 3 av Basisfunksjoner i operativsystemet Programmereren ser på operativsystemet som et sett av funksjoner som skal forenkle programutviklingen og gjøre det enklere for programmereren å benytte seg av alle de forskjellige maskinvarekomponentene som finnes i datamaskinen og som er koblet til datamaskinen. Viktige basisfunksjoner som programmereren benytter seg av er for eksempel: Standard inn/ut-funksjoner for å lese og skrive data til inn/ut-enheter, f.eks skjerm, tastatur, disk etc. Grafikkfunksjoner for å tegne figurer på skjermer. Det finnes også annen viktig basis programvare for programmereren som ikke nødvendigvis er en del av operativsystemet, men som er en viktig del av datamaskinsystemet, og som lever ganske nært operativsystemet. Det er basis programvare for bruk av vindussystemer og databasesystemer. Med enkle funksjonskall kan programmereren bringe fram vinduer på skjermen og hente ut data fra en database. Når programmereren benytter seg av operativsystemets funksjoner for å få adgang til maskinvaren, er det et standardisert grensesnitt mot maskinvaren som tilbys av disse funksjonene. Det å tilby et slik standardisert grensesnitt kalles for ressursabstraksjon fordi programmereren ikke ser ressursen (eller maskinvaren) slik den egentlig er laget, men et standardisert og idealisert bilde av ressursen laget ved hjelp av programvare. Husk også at andre programmer kjører samtidig på datamaskinen. Alle disse programmene kaller opp operativsystemfunksjoner og ber om å få bruke maskinvareressurser. Siden det er begrenset med ressurser i datamaskinen, kan det oppstå ressurskonflikter mellom programmene. Operativsystemet har derfor også som oppgave å se til at ressursene blir delt mellom programmene, og at de blir rettferdig fordelt mellom programmene. Ressursabstraksjon og deling av ressurser er to hovedpilarer som operativsystemer hviler på. Begge disse områdene skal derfor omtales nærmere i de følgende kapitlene Ressursabstraksjon Operativsystemfunksjoner er laget slik at de kan fungere på et bredt sett av lignende maskinvare, og dermed gjøre det til en relativt enkel jobb for programmereren å bruke maskinvaren via disse funksjonene. Operativsystemet tilbyr en abstrakt modell av maskinvaren, en modell som glatter over forskjeller mellom maskinvare av samme type. Programmereren får dermed en modell av maskinvaren. Denne modellen tilbyr et sett av standardiserte funksjoner for å utføre oppgaver på maskinvaren. Ulempen med denne måte å betrakte maskinvaren på er at spesialegenskaper som den aktuelle maskinvaren har blir utelatt. Maskinvarekomponenter kalles ofte for ressurser i operativsystemsammenheng, og idéen med å lage funksjoner som tilbyr programmererne en standart modell av maskinvaren kalles ressursabstraksjon. Det betyr at en ressurs som f.eks en harddisk tilbyr et standardisert grensesnitt via operativsystemfunksjoner. Dette er funksjoner som f.eks hwrite, hread, hseek og lignende. De to første for å skrive og lese datablokker til og fra disk, og hseek for å plassere lese/skrive-hodet til disken på et bestemt sted på diskplata. Ved å bruke disse funksjonene trenger ikke programmereren detaljert kunnskap om hvordan disken virker og hvordan den er bygd opp. Programmereren trenger ikke vite om hvordan disken er organisert i diskplater, spor og sektorer. Det som programmereren får av operativsystemet er et enkelt, høynivå grensesnitt mot disken; et grensesnitt som er lett å forholde seg til fordi programmereren bare angir nummeret

4 Introduksjon til operativsystemer side 4 av 22 på den datablokka som skal leses. Via disse funksjonene får vi et idealisert bilde av disken bestående av en rekke datablokker i serie nummerert fra 0 til N-1 der N er antall blokker. Det fine med denne måten å betrakte maskinvareenhetene på er at abstraksjonen kan benyttes på flere lignende maskinvareenheter. De samme funksjonene kan for eksempel også brukes på en diskettstasjon. En ulempe med denne måten å betrakte maskinvaren på er selvsagt at spesielle egenskaper som er lagt ned i maskinvaren ikke kan benyttes. Operativsystemet forholder seg nemlig til en standard maskinvareenhet Ressursdeling Moderne operativsystemer består av en mengde ressurser (maskinvareenheter) som må administreres av operativsystemet. Grunnen til dette er at det kjøres mange programmer samtidig på datamaskinen, og i alle disse programmene gjøres det kall til operativsystemfunksjoner for å bruke disse ressursene. Operativsystemet har da som oppgave å administrere og fordele ressursene mellom programmene som ber om det. Her er det snakk om programmer som ber om en ressurs, bruker ressursen og deretter frigir ressursen. Det er altså snakk om en samling av ressurser som operativsystemet må administrere. De ressursene vi snakker om i denne sammenhengen er prosessorer (cpu-er), minne, klokker, disker, terminaler, båndstasjoner, nettverkskort, skrivere etc. Et eksempel på hva som kan skje dersom ikke operativsystemet holder orden på dette er at tre programmer prøver å skrive ut data til samme skriver samtidig. Da kan en lett se for seg at hvert program får skriveren for en kort periode om gangen. Resultatet kan bli at det først kommer 3-4 linjer fra det første programmet, deretter 3-4 linjer fra det neste etc. Programmene buker disse ressursene ved å kalle opp funksjoner i operativsystemet, og det er derfor operativsystemet som må holde orden på disse tingene. Et kall fra et program til en slik funksjon er derfor å betrakte som en forespørsel til operativsystemet om å få lov til å bruke ressursene. Operativsystemet sitter med den fulle oversikten og vil, dersom ressursen ikke er ledig, legge spørrende program i kø, og først når ressursen er tilgjengelig kan forespørselen oppfylles, og dermed kan programmet kjøre videre. Ressursdeling kan foregå på to forskjellige måter. Det er 1) plass-deling og 2) tids-deling. Deling av minne (dvs. RAM) er et eksempel på deling av plass mellom flere programmer. Det er nemlig ingenting i veien for at flere programmer kan ligge inne i minnet samtidig. I ressursen cpu derimot er det kun plass til en om gangen. Ressursen cpu er derfor tidsdelt der hvert program får tildelt et lite tidskvant (f.eks 100 msek) om gangen for å kjøre programmet. Vi kommer sterkt tilbake seinere når det gjelder deling av minne og cpu, da disse ressursene sammen med inn/ut-ressursene er de viktigste i datamaskinsystemet Ressursisolering Som en konsekvens av at flere programmer kjører samtidig i datamaskinen, og at de etterspør de samme ressursene, dukker problemet med sikkerhet opp. Operativsystemet må garantere at ingen andre programmer får tilgang til den samme ressursen på samme tid. Operativsystemet må garantere at ingen andre programmer får lese dataområder tilhørende ditt program. Med ressursisolering garanterer operativsystemet at det ikke foregår uautorisert tilgang til ressurser. Det betyr f.eks at operativsystemet legger programmer (kode og data) i forskjellige områder av minnet uten muligheter for et program å lese dataene til et annet program.

5 Introduksjon til operativsystemer side 5 av Felles bruk av ressurser Sjøl om ressursisolering er et viktig begrep innenfor operativsystemer, er det også av største viktighet at programmer kan dele på ressurser. Det skjer f.eks nå programmer skal kommunisere med hverandre, dvs. utveksle data med hverandre. Det skjer via felles minneområde der begge programmene har tilgang til det samme minneområdet. Problemet da blir for operativsystemet å tilby mekanismer til programmene, slik at denne kommunikasjonen via felles dataområder foregår på en kontrollert og sikker måte. Derfor trengs det både mekanismer for ressursisolering og for felles bruk av samme ressurs i operativsystemer Oppsummert Figuren nedenfor viser en skisse over nivåene i et datamaskinsystem med brukerprogrammene øverst, deretter operativsystemet, og nederst maskinvaren. Mellom brukerprogrammene og operativsystemet finner vi operativsystemfunksjonene (også kalt systemkall). Dette grensesnittet utgjør det som vi kaller for ressursabstraksjon. brukerprogram brukerprogram brukerprogram Ressursabstraksjon Operativsystemfunksjoner (systemkall) operativsystem maskinvare Ressursdeling Etter at et brukerprogram har kalt opp en funksjon i operativsystemet er det operativsystemet som har kontrollen. Alt som har med ressursdeling, sikringen av ressursisolasjon og felles bruk av ressurser er nå en oppgave som operativsystemet tar seg av slik som vist på figuren over. Figuren viser også et noe ujevnt og hakkete grensesnitt mellom operativsystem og maskinvare. Dette illustrerer at dette grensesnittet er komplisert og er avhengig av hva slags maskinvare som finnes i datamaskinsystemet. Det viktige i denne sammenhengen er at når maskinvare skiftes ut, må operativsystemet tilpasse seg denne nye maskinvaren. Dette gjøres ved å legge inn såkalte driverprogrammer som styrer maskinvaren (mer om driverprogram seinere). Selv om maskinvaren skiftes ut, behøver en ikke endre grensesnittet mellom brukerprogram og operativsystem. Dette er det samme hele tiden, og brukerprogrammene vil derfor ikke merke at maskinvaren er endret Programmer og prosesser Foran har vi snakket mye om programmer som kjører på datamaskinen, og at flere programmer kjører samtidig. Vi skal nå innføre et nytt begrep kalt prosess som skiller seg en del fra begrepet program. Kort kan en si at en prosess er et program under utførelse. Med et program mener vi kun selve programkoden, dvs. programkoden slik den ligger på disken helt død på ei fil. Programmet kan sammenlignes med ei kakeoppskrift i ei kokebok.

6 Introduksjon til operativsystemer side 6 av 22 Den bare er der i boka, ingenting baker seg selv. Vi må sette i gang en aktivitet før det blir kake av det, vi må altså bruke oppskriften. I dette tilfellet kan vi si at kakeoppskriften er programmet, og selve aktiviteten med tilhørende ressurser som kakeform, mixer, mel, sukker etc. er ressurser. Den aktiviteten som oppstår kaller vi for en prosess. Tilsvarende er det med et program. De blir til en prosess når det starter opp et dataprogram på datamaskinen, og da trenger det ressurser som minne, cpu, inn/ut-enhet etc. En prosess er altså et program under kjøring i maskinen. Det er i programmet prosessen finner hvilke instruksjoner som skal utføres, og for å kunne utføre instruksjoner trengs ressursen cpu, og for å lagre instruksjoner og data trengs ressursen minne. Når prosessen er ferdig å kjøre, gir den fra seg ressursene, og avslutter. Prosessene finnes ikke lenger i datamaskinssystemet. Det eneste som er tilbake er programmet og dataene som er produsert (på samme måte som med kakebaking: Det som er igjen er kakeoppskriften og den ferdige kaken). I det følgende vil vi alltid snakke om prosesser når det er snakk om programmer som kjører. Med et program vil vi nå mene selve instruksjonene som er lagret på ei fil på disken, dvs. den kjørbare filen. Heretter vil vi snakke om flere prosesser som kjører samtidig på maskinen, vi vil snakke om en regnearkprosess, nettleserprosess, virussjekkeprosess etc. når det er snakk om programmer som kjører Ressurser Foran har vi snakket om maskinvareenheter som ressurser, og at prosesser spør operativsystemet etter ressurser, og at operativsystemet må administrere ressursene. Mer formelt kan en si at en ressurs har følgende egenskaper: En prosess må spørre operativsystemet etter en ressurs. Prosessen må suspendere kjøringen inntil ressursen er gjort tilgjengelig for prosessen (eller allokert til prosessen som vi sier). En ressurs er altså en abstrakt maskinvarekomponent som prosessen må ha allokert til seg før den kan kjøre videre. Prosessen blir midlertidig stoppet dersom den har bedt om en ressurs, og denne ressursen ikke er tilgjengelig. Du som vanlig bruker vil nok se på ei fil som den mest iøynefallende ressursen i et datamaskinsystem. En prosess må åpne filen (eller be om filen) før den kan lese og skrive fra filen. Det kan hende at filen ikke er tilgjengelig idet prosessen ber om filen, f.eks fordi en annen prosess bruker filen. Da må prosessen vente til den blir tilgjengelig Filer En sekvensiell fil er slik den er f.eks definert i Linux en sekvens av bytes (tegn). Først åpnes filen, deretter skrives det data til filen, f.eks et gitt antall bytes. På tilsvarende måte kan du lese data fra filen. Filen er et navngitt objekt som lagres på disken sine spor og sektorer. Her ser vi altså den samme abstraksjonen som vi har snakket om tidligere. For oss brukere ser filen at som en sekvens av bytes, mens det fra operativsystemet sin side er datablokker som lagres på ledige plasser på disken. Datablokkene er nummerert, og de trenger ikke lagres sammenhengende på disken. På enda lavere nivå i operativsystemet, på drivernivå, snakker vi om lagring av data

7 Introduksjon til operativsystemer side 7 av 22 på bestemte spor og sektorer til disken. Men som sagt, på brukernivå og programnivå er filen et navngitt objekt som inneholder en sekvens av tegn. Enkelt, ikke sant? Alle ressurser, også filer, har en beskrivelse knyttet til seg. Dette kalles ofte en deskriptor, og for objektet fil inneholder denne deskriptoren dato filen ble opprette, størrelsen til filen, adresse til datablokker, tilgangsrettigheter etc. Deskriptoren er et meget viktig element for operativsystemet når det skal administrere alle ressursene, stille ressursene inn i kø til de forskjellige prosessene, sjekke om ressursen er ledig eller opptatt etc Prosessoren (cpu-en) Prosessoren er den ressursen som trengs for i det hele tatt å kunne kjøre prosessen. Denne ressursen blir ikke forspurt eksplisitt siden den er nødvendig for i det hele tatt å kunne kjøre prosessen. Først når alle andre ressurser er på plass hos prosessen kan prosessen nyttiggjøre seg cpuressursen. Prosesser kan befinne seg i forskjellige tilstander i datamaskinsystemet: 1) Ventende på i/o-ressurser, 2) ventende på cpu-ressursen eller 3) kjørende på cpu-ressursene Minnet En prosess som skal kjøre vil alltid trenge plass i minnet. Dette kan gjøres på forskjellige måter, enten ved at prosessen får alt minnet den trenger ved oppstart, eller at minne som prosessen har behov for allokeres dynamisk etter hvert som behovet melder seg Prosesser Kort fortalt sier vi at en prosess er et program under utførelse. En prosess består av følgende komponenter: Programkoden som skal kjøres. Med programkoden menes instruksjonene som befinner seg i den kjørbare fil som er lagret på disken, dvs. binærkoden til programmet. Dataene som programkoden bruker under kjøringen. I programkoden vil det alltid være referanser til dataområder. Det kan være enkle referanser som i=i+1 eller det kan være regnearkprogrammets referanse til tall og formler. Ressurser som kreves av programmet, f.eks ei fil som må åpnes for å hente fram nødvendige data. Status til prosessen under kjøringen. Med status menes her ganske mange data som beskriver prosessens liv og levnet. Den kalles ofte for en prosess-deskriptor. Forskjellen mellom program og prosess kan også uttrykkes på følgende måte: Programmet er en statisk enhet bestående av programinstruksjoner som definerer prosessens oppførsel nå den kjøres på et sett av data. Prosessen derimot er en dynamisk enhet som kjører programmet på et sett av data. Dette betyr f.eks at to forskjellige prosesser kan kjøre det samme programmet, men bruker sine egne private dataområder.

8 Introduksjon til operativsystemer side 8 av Flere prosesser kjører samtidig Sekvensiell kjøring av prosess Ved sekvensiell kjøring er det kun en prosess i minnet om gangen. Først kjører prosess nr 1 på cpu-en. Når denne prosessen utfører i/o, enten mot disk eller mot tastatur/skjerm så trengs ikke cpu-en lenger, og er derfor ledig. Den har rett og slett ingenting å gjøre. Den bare venter. I forhold til den tida som cpu-en bruker på å utføre programinstruksjoner er denne ventetida et hav av tid. I så måte er målestokken i figuren nedenfor ganske misvisende. Et typisk forhold mellom kjøring og venting vil være 1 til 1 million, dvs. cpu-en kjører i 1 tidsenhet og venter i 1 million tidsenheter. Det kan bli noe vanskelig å illustrere direkte grafisk. Men husk at det er slike størrelsesordener vi snakker om her. Etter at prosess 1 er helt ferdig er det prosess 2 sin tur å kjør på akkurat samme måte. Som vi allerede skjønner - det kunne vært greit å utnytte cpu-en til andre ting i den lange ventetida når en prosess utfører i/o. Sekvensiell kjøring av prosesser gir meget dårlig utnyttelse av cpu-en. Prosess 1 Minne Operativsystem Prosess 1 Prosess 2 P1 ledig P1 ledig P1 P2 ledig P2 ledig cpu-aktivitet P2 Tid Kjøring av flere prosesser samtidig Nå skal vi se hvordan det er mulig å kjøre flere prosesser samtidig på maskinen, såkalt multitasking (en ser ofte at ordet task brukes i stedet for prosess, og da særlig når vi snakker om flere prosesser som kjører samtidig). Forutsetningen for at dette skal kunne virke noenlunde skikkelig er at flere prosesser får plass i minnet samtidig slik som vist i figuren nedenfor. Minne Prosess 1 Prosess 2 Prosess 1 Prosess 2 Prosess 3 Operativsystem P1 P2 P1 P2 P1 cpu-aktivitet P2 Tid Grunnlaget for at multitasking fungerer er at prosessene må utføre i/o-operasjoner inni mellom. Det betyr at prosessen må avgi cpu-en til annen prosess, og denne prosessen må befinne seg i minnet allerede. I/o-operasjoner tar meget lang tid i forhold til kjøring på cpu-en

9 Introduksjon til operativsystemer side 9 av 22 så flere prosesser kan faktisk få utført en god del arbeid mens den første prosessen utfører i/ooperasjon. I/o-operasjonen kan bestå i å lese data fra tastatur eller å lese/skrive data fra/til harddisk. I begge disse tilfellene kan det være lang ventetid, f.eks innskriving av data via tastatur, flytting av lese-skrive-hode til rett sted på diskplata etc. Det er mulig å kjøre flere prosesser samtidig dersom alle prosessene er i minnet, og de vekselvis har behov for kjøring på cpu og lesing/skriving av data mot i/o-utstyr. Dette kalles multi-tasking. Datamaskinen begynner altså å pådra seg en del administrative oppgaver i forbindelse med kjøring av prosesser. Det opereres med flere prosesser samtidig inne i minnet, og disse må kunne veksle på å bruke cpu-en. For å få til dette må det organiseres en kø-ordning i datamaskinen. Videre må det ordnes med beskyttelsesmekanismer slik at prosessene ikke ødelegger for hverandre. Aner vi et begynnende operativsystem her? Vi trenger altså et system som kan forholde seg til mer enn en aktivitet på maskinen, et system som kan fordele og administrere ressurser Instruksjonssyklusen For å kunne forstå hvordan operativsystemet arbeider må du ha kjennskap til instruksjonssyklusen. Nedenfor gis det en kort repetisjon. Programmet som kjører på maskinen består av et sett med instruksjoner som ligger i minnet. Under kjøringen av programmet, dvs. når prosessen kjører, hentes instruksjoner fra minnet og over til cpu-en og utføres der en etter en. Enkelt kan en se på programkjøring som bestående av to steg: Cpu-en henter en instruksjon fra minnet Cpu-en utfører denne instruksjonen Kjøring av program består av gjentatte operasjoner der henting og deretter utføring av instruksjoner blir utført om og om igjen. Selve utføringen av instruksjonen består av flere trinn, alt etter hva slags type instruksjon det er snakk om. Instruksjonssyklusen er all den prosesseringen som foregår fra en instruksjon hentes i minnet og til den neste skal hentes. De to operasjonene nevnt ovenfor kalles henholdsvis for hentesyklusen og for utføringssyklusen Henting og utføring av instruksjon Hver instruksjonssyklus starter med at neste instruksjon hentes fra minnet og flyttes over til cpu. I cpu-en brukes typisk et register kalt IP-registeret (instruksjonspekeren) for å angi neste instruksjon som skal hentes til cpu. Ved oppstart av et program peker denne alltid til første instruksjon som skal utføres (vanligvis på programadresse 0). Etter hvert som instruksjoner hentes, blir innholdet i IP-registeret økt med en for dermed å peke på neste instruksjon som skal hentes. Noen ganger vil IP-registeret få helt nytt innhold. Det skjer nå programinstruksjoner (IF-setninger, løkker etc.) fører til hopp i programmet. Instruksjonen som hentes fra minnet plasseres i IR-registeret (instruction register) i cpu-en. Instruksjonen er en binær kode som angir hvilken operasjon (f.eks legge sammen tall, flytte tall til/fra minnet etc.) som cpu-en skal utføre. Cpu-en tolker instruksjonen og utfører deretter

10 Introduksjon til operativsystemer side 10 av 22 de operasjonene som er angitt i instruksjonen. Nedenfor ser du en oversikt over hva slags operasjoner som er aktuelle: Cpu-minne: Flytting av data fra cpu til minne og motsatt. Cpu-i/o: Flytting av data mellom cpu og i/o-enheter. Dataprosessering: Utføring av aritmetiske og logiske operasjoner på data Styring: En instruksjon kan angi at rekkefølgen på utførelsen av instruksjoner skal endres. Det kan f.eks hende at den instruksjonen som er hentet inn akkurat nå (fra adresse 162) angir at neste instruksjon ligger på adresse 195. Neste instruksjon hentes derfor fra adresse 195, og ikke fra 163 som normalt. Figuren nedenfor viser instruksjonsformat, cpu-registre og mulige operasjonskoder for en tenkt maskin. Instruksjonsformat: Kode Adresse Cpu-registre: IP = Instruksjonspeker - adresse til neste instruksjon IR = Instruksjonsregister - instruksjon som utføres akkurat nå AC = Akkumulatorregister - midlertidig lagringssted i cpu Operasjonskoder: 0001 = Hent til AC fra minne 0010 = Lagre fra AC til minne 0101 = Adder til AC fra minne Den tenkte maskinen ovenfor har kun et dataregister som i dette eksemplet kalles akkumulator-registeret (AC). Instruksjonsformatet angir 4 bit for operasjonskoden og 12 bit for direkte adressering av minnet. Det betyr 16 mulige operasjonskoder og 4096 minneadresser som kan nås direkte. Figuren vist nedenfor viser et utsnitt av en programkjøring der aktuelle deler av cpu og minne er vist. Programsekvensen legger sammen innholdet i minneadresse 280 med innholdet i minneadresse 281, og lagrer deretter resultatet i sistnevnte minnelokasjon, dvs. adresse 281. Til sammen 3 instruksjoner trengs for å utføre denne operasjonen. Hente- og utføringsfasene til hver av disse instruksjonene er: 1. IP inneholder adresse 120 som er adressen til første instruksjon i denne sekvensen. Innholdet til adresse 120 hentes til IR-registeret i cpu-en. 2. De 4 første bit ene i IR angir at AC-registeret skal fylles opp med data fra minne, nærmere bestemt fra adresse 280 slik som angitt i de 12 neste bit-ene i instruksjonen. 3. IP økes med 1 og neste instruksjon hentes til IR. 4. Innholdet i AC-registeret og innholdet i minne-adresse 281 adderes, og resultatet lagres i AC. 5. IP økes med 1 og neste instruksjon hentes til IR 6. Innholdet i AC lagres i minneadresse 281

11 Introduksjon til operativsystemer side 11 av I eksemplet er der brukt 3 instruksjonssykluser, som hver består av en hentesyklus og en utføringssyklus. Minne CPU Minne CPU Minne CPU IP AC IR IP AC IR IP AC IR Minne CPU Minne CPU Minne CPU IP AC IR IP AC IR IP AC IR = I/O-instruksjoner Ovenfor så vi på operasjoner der cpu-en hentet og lagret data i primærlager. Men cpu-en kan også utveksle data med i/o-enheter, f.eks lese data fra harddisken, skrive data til harddisken, sende data til skriveren etc. Ved hjelp av i/o-kontrollere kan cpu-en utveksle data direkte med i/o-enheter. På samme måte som cpu-en kan utføre operasjoner for å lese og skrive data til minnet, kan cpu-en også lese og skrive data til en i/o-kontroller, og dermed til en i/o-enhet. Dette foregår ved at cpu-en kjører program-instruksjoner som opererer mot kontrolleren på samme måte som vist ovenfor der cpu-en opererte mot minnet. Program-instruksjoner som opererer mot i/o-kontrollere befinner seg i driver-programmet for i/o-enheten. Noen ganger kan det også være aktuelt å la i/o-operasjonen gå direkte mellom minnet og i/okontrolleren uten inngripen fra cpu-en. Dette kalles for direct memory access (DMA) Avbrudd Avbrudd er en mekanisme som trengs i alle datamaskiner for å kunne utnytte ressursene effektivt. Avbrudd er nødvendig for å kunne gjøre bl.a følgende: Ved f.eks utskrift til harddisk vil operativsystemet operere mot en i/o-enhet som er mye langsommere enn f.eks cpu og primærlager. Det kommer bl.a av det faktum at det tar tid å flytte lese/skrive-hodet til disken, det tar tid å overføre data etc. I stedet for at cpu-en skal sitte og vente til dataoverføringen til disken er ferdig bør cpu heller kjøre et annet program i denne perioden. Men da må en ha et system slik at i/o-enheter (i dette tilfellet disken) kan si fra når dataoverføringen er ferdig, dvs. et avbruddssystem.

12 Introduksjon til operativsystemer side 12 av 22 Når et vanlig program kjører må det være mulig å få oppmerksomhet fra maskinen på et eller annet vis. F.eks hvis du flytter på musa, taster inn noen tegn, det kommer meldinger inn via nettverkskabelen, skriveren er tom for papir etc. I alle disse tilfellene må kjørende program kunne avbrytes og operativsystemet må behandle avbruddssignalet som kom. Moderne operativsystemer fungerer etter et prinsipp der alle program skal få hver sin del av cpu-tida, dvs. multitasking. Da er det behov for å kunne bryte av kjørende prosess og erstatte den med neste prosess i køen. Avbruddsmekanismen er altså med på å effektivisere bruken av cpu-en. Noe av poenget er å unngå at cpu må stå ledig mens langvarige og langsomme i/o-operasjoner utføres Avbrudd og instruksjonssyklusen Tenk deg følgende situasjon: En i/o-enhet (f.eks et nettverkskort) har allerede fått en del data som skal sendes ut på nettverkskabelen. Når den første mengden av data er sendt ut vil i/oenheten gi et avbrudd til cpu for å si fra at den er klar til å ta i mot mer data. I/o-enheten sender et såkalt interrupt-request-signal til cpu-en. Cpu-en svarer med å avbryte kjørende program, og i stedet kjøre instruksjoner til et såkalt avbruddsprogram. Avbruddsprogrammet er et sett av instruksjoner for å behandle akkurat det avbruddet som kom i dette tilfellet. Hver avbruddstype har sitt eget avbruddsprogram. Etter at avbruddsprogrammet er kjørt ferdig (tar kun kort tid) returneres det til programmet som ble avbrutt. Det er viktig å merke seg følgende her: Sett fra det programmet som ble avbrutt er dette et helt vanlig avbrudd i programutførelsen. Etter en kort stopp for å håndtere selve avbruddet vendes det tilbake til kjørende program igjen. Det avbrutte programmet trenger ikke inneholde spesiell programkode for å håndtere avbrudd; dette er det operativsystemet som skal ta seg av. Cpu sjekker om nye avbrudd er ankommet før hver instruksjon hentes fra primærlageret. En kan si at instruksjonssyklusen består av 3 steg: 1. Hente ny instruksjon 2. Utføre (kjøre) instruksjon 3. Sjekke om nye avbrudd er ankommet Det betyr selvsagt noe ekstra administrasjon, men når alternativet er at cpu må vente til i/oenheter blir ferdige, så er dette allikevel mer effektivt Hva skjer når avbrudd ankommer? Et avbrudd setter i gang flere aksjoner både i maskinvare og programvare. Nedenfor er det satt opp ei liste over disse aksjonene: 1. I/o-enheten sender et avbruddssignal til cpu-en 2. Cpu gjør ferdig instruksjonen den holder på med akkurat nå, og svarer deretter på avbruddssignalet 3. Cpu sender et signal tilbake til i/o-enheten for å bekrefte at avbruddet er mottatt. 4. Cpu gjør forberedelser for å kjøre avbruddsprogrammet til dette avbruddet. Først må det lagre unna statusinformasjon om kjørende program, bl.a innhold i cpu-registre, adresse til neste instruksjon som skal kjøres, etc.

13 Introduksjon til operativsystemer side 13 av Cpu laster inn en verdi i IP-registeret som peker på første instruksjon i avbruddsprogrammet. Det betyr at nå hentes instruksjonene fra avbruddsprogrammet sine minneadresser. 6. Avbruddsprogrammet kjører på cpu-en. Det sjekker bl.a status til i/o-enheten, finner ut hvorfor avbruddet kom, og sørger deretter for at nødvendige operasjoner for å betjene avbruddet blir utført. 7. Når avbruddsprogrammet er ferdig vil cpu hente inn den lagrede informasjonen om det avbrutte programmet, og fortsette kjøringen av dette på samme sted som det ble avbrutt. Dette er mulig fordi både registerinnhold og innholdet i instruksjonspekeren (IP) ble gjemt unna Avbrudd og multitasking Multitasking bygger på det faktum at i/o-operasjoner tar lang tid, og at i stedet for å vente kan en kjøre andre program på cpu-en. Mens et program venter på overføring av data fra f.eks harddisk, kan et annet kjør på cpu-en. Med flere prosesser inne i minnet samtidig kan en oppnå en meget effektiv utnyttelse av cpu. Når en prosess kaller opp en i/o-rutine for å lese ei datablokk fra disk kan operativsystemet gjøre klar for denne operasjonen, og deretter overføre cpu til neste prosess som ligger i køen for å bruke cpu. På denne måten får en kjørt flere prosesser samtidig. Hver gang en prosess kaller opp en i/o-rutine hentes neste prosess inn (den som ligger først i køen, eller den som har høyest prioritet). Teknikken med multitasking er helt og holdent avhengig av en avbruddsmekanisme som fungerer Oppgaver til operativsystemet Operativsystemet har mange forskjellige oppgaver, og dersom vi skulle forsøke å klassifisere disse vil følgende fire oppgaver stå sentralt: Utstyrsadministrasjon Prosess- og ressursadministrasjon Minneadministrasjon Filadministrasjon Her skal det gis en kort omtale av hver av disse funksjonene. Seinere skal hver av disse gis en mye mer utførlig omtale Utstyrsadministrasjon Vi har tidligere sette at ressursabstraksjon er meget viktig i sammenheng med operativsystemer. Det innebærer at operativsystemet ser på alle utstyrsenheter som f.eks disker, terminaler, skrivere etc. via et standardisert grensesnitt. Sett fra operativsystemet ser derfor alle disse enhetene like ut. Utstyrsadministrasjon dreier seg om hvordan operativsystemet håndterer allokering, isolering og deling av utstyrsenheter.

14 Introduksjon til operativsystemer side 14 av 22 Utstyrsenheter trenger et driverprogram for å kunne fungere sammen med operativsystemet. Driverprogrammet er et program som står mellom operativsystemet og selve utstyrsenheten og sørger for at brukerprogrammene kan nyttiggjøre seg utstyrsenheten. I prinsippet kan en vanlig bruker skrive et driverprogram for en utstyrsenhet, og installere dette sammen med resten av operativsystemet. Moderne operativsystemer, som f.eks Linux, er laget slik at dette er fullt mulig uten at hele operativsystemet må rekompileres Prosess- og ressursadministrasjon Prosessen er den grunnleggende enheten for kjøring av programinstruksjoner. Men en prosess har ingen hensikt uten ressurser som f.eks cpu, minne etc. Prosessadministrasjon innebærer funksjoner for å opprette nye prosesser, avslutte prosesser, sette prosesser i ventekø, sette prosesser i kjørende tilstand etc. I tillegg til selve prosessbegrepet finnes det også en enhet for kjøring av instruksjoner som kalles for en trådprosess ( threads eller lettvekts-prosess). Innenfor en prosess kan den det være mange slike tråd-prosesser som løper samtidig. Operativsystemer skiller mellom 1) kjøring av prosesser på cpu, og 2) allokering av ressurser til prosessen. Operativsystemet vil alltid fordele kjøretid mellom prosesser, dvs. sette av tid på cpu-en til hver prosess. Når en prosess består av flere tråd-prosesser er det hver slik trådprosess som tildeles cpu. Det betyr at innenfor en prosess kan det være flere slike trådprosesser aktive, og det er tråden som er enhet for cpu-tildeling. I tillegg er det også snakk om allokering av ressurser til prosesser, f.eks minneområde, åpne filer, utstyrsenheter etc. Ressurser tildeles prosessen som helhet. Det betyr at alle trådene deler på de ressursene som prosessen skaffer. Kort kan en si at prosessen er enhet for ressurstildeling og tråden er enhet for tildeling av kjøretid (dvs. cpu). I operativsystemet finnes det en cpu-administrator som automatisk tildeler ledig cpu-tid til alle prosessene (eller trådene kan vi også si) i datamaskinsystemet. Tildelingen av cpu foregår automatisk; prosessene behøver ikke be om cpu eksplisitt. Det antas at en prosess som har fått tak i alle øvrige ressurser den trenger, også har behov for cpu, og derfor tildeles denne automatisk. Hele poenget er jo at prosessen skal kjøre på cpu-en I tillegg til cpu trenger prosessene også andre ressurser, f.eks en i/o-enhet. Disse enhetene må prosessene be eksplisitt om ved å spørre operativsystemet. En egen ressursadministrator tar i mot slike forespørsler. Prosessen får ressursen dersom den er ledig, eller prosessen settes i ventekø og venter inntil ressursen igjen er ledig. For at operativsystemet skal kunne administrere prosesser og ressurser må disse være representert på en måte slik at de lar seg administrere av et system slik som operativsystemet er, dvs. av et dataprogram. Måten dette gjøres på er via såkalte deskriptorer. Det er et sett av data (en datastruktur) som representerer prosessen eller ressursene. I deskriptoren lagres all nødvendig informasjon om prosess eller ressurs. Det er denne deskriptoren som operativsystemet flytter fram og tilbake mellom forskjellige køer. Når en prosess får tak i en ressurs, så er det denne deskriptoren den får tilgang til. Dersom prosessen skal sende data ut på nettverkskabelen sendes dataene via en deskriptor som er knyttet til nettverkskortet. Den inneholder både et bufferområde og statusinformasjon om trafikken ut på nettet.

15 Introduksjon til operativsystemer side 15 av Minneadministrasjon For å kunne kjøre flere prosesser samtidig må det finnes en avansert minneadministrasjon som tilbyr plass til flere prosesser i minnet samtidig, tillate at prosessen plasseres på vilkårlig plass i minnet, tillate at kun aktive deler av prosessen er i minnet under kjøring etc. Minneadministratoren må sørge for at prosessene ikke ødelegger for hverandre. Det betyr at de lever i isolasjon og dermed ikke har tilgang til hverandres minneområder når de kjører. Men når det er sagt skal det også sies at et avansert system for minneadministrasjon også må kunne håndtere deling av et felles minneområde mellom prosesser når det behovet er til stede. Moderne systemer for minneadministrasjon benytter såkalt virtuelt minne. Det betyr at prosessene ser et minneområde som er mye større en tilgjengelig plass i fysisk minne (dvs. RAM). Dette er mulig fordi minneadministratoren bruker harddisken som et utvidet minne, og betrakter minnet som en abstrakt ressurs bestående av både fysisk minne og tilgjengelig lagringskapasitet på harddisken. RAM og disk sees altså under ett. Minneadministrasjonen kan utføres på forskjellig vis. Sidedelt minneadministrasjon og segmentdelt minneadministrasjon er de viktigste. I moderne operativsystemer er disse slått sammen til en metode kalt minneadministrasjon med sidedelte segmenter Filadministrasjon Filer representerer lagringsenheten til datamaskinen, og slik sett er filene en abstraksjon av harddisken (eller en annen fysisk lagringsenhet). Filen er en navngitt lagringsenhet som brukere og programmer kan lagre dataene sine på. Filer kan opprettes, kopieres, slettes, navngis, sette tilgangsrettigheter på etc. Videre kan det skrives data til en fil, og det kan leses data fra en fil. Bak kulissene vil operativsystemet hele tiden arbeide mot en harddisk bestående av plater, spor og sektorer for å oppfylle alle de ønskene som brukeren eller programmet har. Fil-abstraksjonen har vist seg så nyttig at den benyttes generelt mot alle enheter der data leses og skrives. I Linux for eksempel er alle i/o-enheter, som f.eks tastatur, mus, cd-rom, skriver etc. representert av filer på /dev-katalogen. Det er faktisk bare å sende data til den aktuelle utstyrsfilen så havner dataene automatisk på det aktuelle utstyret. /dev-katalogen viser vei til de aktuelle utstyrsdriverne. Filadministrasjon må også kunne håndtere distribuerte filsystemer der filene like gjerne kan ligge lagret på en lokal maskin som på en fjern maskin når disse maskinene er sammenkoblet i et nettverk Organiseringen av operativsystemets basisfunksjoner Basisfunksjonene som er beskrevet foran utgjør hoveddelene av operativsystemet slik som vist i figuren nedenfor. Disse funksjonene legger et abstraksjonsnivå på toppen av maskinvaren, et abstraksjonsnivå som oppretter prosesser og tildeler ressurser til prosessene, som fordeler cpu til prosessene, som administrerer kjøring av flere prosesser samtidig etc. Via disse funksjonene gis prosessene er virtuelt minne som er en abstraksjon av det fysiske minnet. Dette virtuelle minnet understøtter prosess- og ressursadministratoren slik at flere prosesser kan ligge i minnet samtidig, og dermed mye enklere kan settes til å kjøre samtidig.

16 Introduksjon til operativsystemer side 16 av 22 Operativsystem Prosess- og ressursadmini strator Minneadministrator Filadministrator Utstyrsadministrator maskinvare cpu minne utstyrsenheter Legg merke til at det er stor grad av kommunikasjon mellom basisfunksjonene. De er altså i høy grad avhengig av hverandre. Prosesser trenger f.eks å lese filer, og henvendelsen går derfor til filadministrator som igjen benytter seg av utstyrsadministrator, som sender henvendelsen videre til aktuelt utstyr (som for eksempel harddisken). Filadministrator benytter seg også av minneadministrator fordi i mange tilfeller ligger dataene i minnet i stedet for på disken. Det er for eksempel tilfelle når dataene befinner seg i bufferområder. Da er det ingen grunn til å gå videre ut til disken for å hente dataene. I stedet tas det en snarvei for å hente de i bufferområdet i minnet Kjernemodus og brukermodus I tidligere operativsystemer, f.eks MS-DOS og tidlige versjoner av Windows var alt tillatt. Der kunne du kan lage programmer som kunne lese fra og skrive til hvilken som helst minneadresse i minnet. Det samme kunne også gjøres mot harddisken. Det fantes nemlig ingen beskyttelses-mekanismer som hindret et program i å lese/skrive vilkårlig steder i minnet og på harddisk. Dette er kanskje akseptabelt for enkle systemer som MS-DOS, men for operativsystemer av typen Linux med mange brukere og prosesser som kjører samtidig er dette ikke holdbart. En må for all del unngå at en gitt prosess leser data tilhørende andre brukere - enten dette er i minnet eller på disk. Det skal være umulig for en prosess å lese fra andre deler av minnet enn de delene som er reservert til denne prosessen.. Mens en prosess i enkle operativsystemer av typen MS-DOS i prinsippet har adgang til hele minnet, vil f.eks Linux kun reservere en del av minnet til hver prosess. Hvis en prosess prøver å referere til andre adresser enn de som er avsatt til denne prosessen, vil prosessen bli avbrutt, og deretter avsluttet. Alle prosesser kan befinne seg i to forskjellige modus: brukermodus kjernemodus En prosess som utfører instruksjoner mot sine egne dataområder i minnet opererer i brukermodus. Men så snart prosessen trenger å lese fra tastatur, fra disk, skrive til skjerm, etc. må prosessen utføre systemkall. Dette innebærer at prosessen går over i kjernemodus. Dette er en modus som er fullstendig styrt og kontrollert av operativsystemet. På denne måten sikrer operativsystemet at din prosess ikke gjør ulovlige operasjoner, f.eks leser fra andre sine

17 Introduksjon til operativsystemer side 17 av 22 områder på disken, skriver over viktige systemområder på disken, endrer viktige systemparametre etc. Når operativsystemet har utført systemkallet returneres det til kallende prosess, og dermed til brukermodus slik som vist i figuren nedenfor. Brukerprosess 4 Brukermodus 1 read 3 read Service-funksjon 2 Kjernemodus Kort forklaring til figuren ovenfor: 1. Brukerprosessen gjør et såkalt systemkall til kjernen i operativsystemet. Det kan f.eks være et read-systemkall for å lese data fra ei fil. 2. Operativsystemet bestemmer hvilken tjeneste som trengs for å utføre denne oppgaven 3. Operativsystemet lokaliserer tjenesten og gjør et kall til aktuell funksjon (som i dette eksemplet er read-funksjonen) 4. Etter at aktuell funksjon er utført av kjernen i operativsystemet returneres kontrollen tilbake til prosessen som fortsetter i brukermodus Et viktig kjennetegn ved brukermodus og kjernemodus er følgende: I brukermodus er det brukerprosessens egne instruksjoner (de som f.eks du har skrevet) som opererer mot prosessens egne lokale data, dvs. de dataene som er under kontroll av prosessen. I kjernemodus er det operativsystemet sine egne instruksjoner som utføres, og disse instruksjonene opererer mot kjernen sine dataområder, f.eks fildeskriptorer, bufferområder etc. Dette å skille mellom brukermodus og kjernemodus er altså svært viktig for kunne beskytte brukernes programmer og data, og også for å sikre at det er operativsystemet som hele tiden har kontrollen. Det betyr at du som programmerer kan skrive programmer som om du hadde hele datamaskinen aleine. Et moderne operativsystem, som f.eks Linux, vil sørge for at alle prosessene som fins på maskinen får del i ressursene, f.eks CPU. Hvis f.eks din prosess krasjer vil dette ikke påvirke resten av systemet. De andre prosessene på maskinen kjører ufortrødent videre.

18 Introduksjon til operativsystemer side 18 av Fra program til i/o-enhet Utstyrsenheter som cpu, minne, skjerm, harddisk, nettverkskort etc. er knyttet sammen ved hjelp av busser, og all datatransport mellom enhetene går via den ene av disse bussene, nemlig databussen. Operativsystemet har også et sett av drivere som trengs for å administrere alle enhetene som er koblet til datamaskinen, f.eks skjerm, diskett, harddisk, nettverk, skanner, høyttaler, CD- ROM-spiller etc. Til mange av disse enhetene trengs også spesielle kort eller en kontroller i maskinen for at i/o-enhetene skal fungere. For å kommunisere med i/o-enhetene trengs driverprogram som betraktes som en del av operativsystemet. Driverprogrammet kan ikke kommunisere direkte med i/o-enheten, men kommuniserer med selve kortet for det aktuelle utstyret. Dette kortet kaller vi ofte for kontroller-kortet. For hard-disken heter det disk-kontrolleren, nettverkskortet heter nettverkskontrolleren, for skjerm heter det ofte skjermkontrolleren (i stedet for grafikk-kort). Diskkontrolleren finner du som en del av selve disken. Når du holder selve harddisken i hånda finner du kontrolleren på undersida som en rekke elektroniske komponenter. Harddisken og kontrolleren hører altså sammen i en pakke. Driverprogrammene kommuniserer med i/o-enhetene ved å legge fra seg (skrive) og hente (lese) data fra registre på kontroller-kortet. Disse registrene har egne adresser og kan adresseres på vanlig måte via adresse-bussen. primærlager cpu df sdg sdgfsd sdh sdfh sdfhd hsd fhs dfh sf dhs dfhsdfh sfdhs sdf asdf asdg asdga sdgasd g disk-kontroller R1 write R2 spornr R3 sektornr R4 Buffer df sdg sdgfsd sdh sdfh sdfhd hsd fhs dfh sf dhs dfhsdfh sfdhs sdf asdf asdg asdga sdgasd g Hard-disk df sdg sdgfsd sdh sdfh sdfhd hsd fhs dfh sf dhs dfhsdfh I figuren over er disk-kontrolleren brukt som eksempel. I register R1 er det lagt inn koder for aktuell operasjon som skal utføres, i dette tilfellet skriving. Videre er det lagt inn parametre i de andre registrene som angir hvor på disken (spornummer og sektornummer) dataene skal skrives. Driverprogrammet for harddisken starter alltid en slik dataoverføring til disken ved først å legge inn aktuell operasjonskode (write) og nødvendige parametre. Deretter starter driveren overføringen av data fra primærlager til et buffer i kontrolleren. Dette er i hovedsak driveren sin oppgaver. Deretter overtar selve kontrolleren overføringen av data fra bufferet i kontrolleren til selve disken. Denne siste overføringen er fullstendig styrt av elektronikken i kontrolleren, og altså ikke styrt av programvare. I figuren ovenfor er både overføringen fra primærlager til kontrollerkort, og videre til harddisk markert med pil. Driverprogrammet kan altså ikke kontakte i/o-enhetene direkte. All kontakt med i/o-enhetene går via registre på kontroller-kortet ved at operasjonskoder og parametre legges inn i registre på kontrollerkortet. Dette gjelder for disk-kontrolleren så vel som for nettverkskontroller og skjermkontroller. Andre aktuelle operasjonskoder for disk-kontrolleren er å lese en sektor,

19 Introduksjon til operativsystemer side 19 av 22 parkere lese/skrive-hode, finne status til siste operasjon, formatere et spor, lese diskparametre etc. Husk også at driverprogrammet utføres på cpu-en som et helt vanlig program ved at instruksjoner fra driverprogrammet som ligger i minnet hentes til cpu-en, dekodes og utføres. Mens vanlig programmer skriver og leser data fra vanlige lagerceller, så skriver og leser driverprogrammet data til adresser (og dermed til lokasjoner) på kontrollerkortet Driverprogrammet Operativsystemet står til tjeneste når brukerprosessene trenger å utføre operasjoner mot mekanisk utstyr som er koblet opp mot maskinen, f.eks. skjermen, skriveren, diskettstasjonen, tastaturet. Operativsystemet gjør dette ved å benytte seg av spesielle driverprogram som finnes på maskinen. For hver utstyrsenhet som er tilkoblet maskinen trengs det et driverprogram. Dette programmet er spesiallaget for å kunne operere direkte mot maskinvaren. Driverne genererer koder som trengs for å styre maskinvaren. Dersom det kobles en ny skriver til maskinen må det også installeres en ny driver samtidig. Tilsvarende hvis det kobles til lydkort og høyttaler trenger man også et driverprogram for å generere nødvendige signaler for å få lyd i høyttaleren. Operativsystemet kan grovt deles inn i to lag som vist på figuren nedenfor. Det nederste laget nærmest maskinvaren er driverprogrammet. Dette er programvare som er skrevet spesielt for å kunne operere direkte på maskinvaren. Her er det snakk om programvare for å styre diskettstasjon, harddisk, skriver etc. Det neste laget er den generelle delen av operativsystemet. Her finner vi ting som er uavhengig av selve maskinvaren, f.eks hvordan dataene organiseres på disken, f.eks flatt eller er det hierarkisk, adgangsrettigheter til data, buffere etc. Brukerprogram Generell del Drivere Operativsystem Maskinvare På nivået over operativsystemet finner vi brukerprosesser som regneark, tekstbehandler, tegneprogram etc. Alle disse prosessene har bruk for maskinvare f.eks når ei fil skal lagres på diskett, når ei fil skal skrives ut, etc. Brukerprosessene gir kommandoer til operativsystemet som sender kommandoen videre til utstyrsenheter via driveren for det aktuelle utstyret. På denne måten kan brukerprosessene bruke mange forskjellige typer utstyrsenheter. I figuren ovenfor ser vi at det aktuelle driverprogrammet passer som hånd i hanske med maskinvaren, og slik må det være fordi driverprogrammet skal kjenne maskinvaren så godt at alle nødvendige operasjoner mot maskinvaren skal være mulig. I figuren ovenfor kan f.eks maskinvaren være et skjermkort/grafikkort og driveren kan være driverprogrammet for det

20 Introduksjon til operativsystemer side 20 av 22 aktuelle grafikkortet. Eller maskinvaren kan være en ny skriver av type blekkskriver, og driveren er da programmet som trengs for å åpne og lukke blekkdyser, flytte papiret fram etc. brukerprosess write-systemkall Utstyrsadministrator opsys diskdriver skriverdriver skjermdriver musdriver buss nettverkskontroller diskkontroller skriverkontroller Figuren over viser et mer komplett bilde som viser gangen fra brukerprosess til utstyrskontroller. En brukerprosess gjør at write-systemkall for å skrive data til harddisken. Systemkallet mottas av operativsystemet ved utstyrsadministrator som ser til at det aktuelle utstyret er ledig og eventuelt legger brukerprosessen i kø dersom utstyret er opptatt. Selve brukerprosessen vil ikke merke noe til utstyrsadministratoren og de oppgavene den må utføre. Dette er nemlig en operativsystemfunksjon som må utføres fordi det er mange prosesser som kjører samtidig, og den enkelte prosess vil ikke være bevisst at flere andre er ute etter de samme ressursene. Sett fra prosessen sitt ståsted ser det ut som den er aleine på maskinen. Derfor er det vist ei linje direkte fra brukerprosessen og ned til driveren. Det er nemlig slik brukerprosessen opplever situasjonen, som et kall direkte til driveren. Drivere til forskjellig utstyr har omtrent samme grensesnitt mot brukerprosessene. Det betyr at forskjellig utstyr har det samme kallgrensesnittet, og programmere trenger derfor ikke bry seg med detaljer og forskjeller mellom forskjellig utstyr. Et write-systemkall til disk, skriver, nettverkskort etc. vil være utformet likt Oppsummert om utstyrsenheter og drivere La oss stoppe opp litt og se nærmere på forholdet mellom brukerprogrammer og utstyrsenheter. Figuren nedenfor viser at brukerprogrammet henvender seg til operativsystemet som via utstyrsadministratoren holder orden på alle utstyrsenhetene. Utstyrsadministratoren gjør sine henvendelser til utstyret via driverprogrammet til enheten. Driverprogrammet opererer mot kontrolleren, og etter at kontrolleren har fått tak i dataene er det den som på egen hånd styrer all trafikk mot selve den fysiske utenheten.

Resymé: I denne leksjonen vil du få en oversikt over hva et operativsystem er for noe, hvordan det er bygget opp og hvordan det virker.

Resymé: I denne leksjonen vil du få en oversikt over hva et operativsystem er for noe, hvordan det er bygget opp og hvordan det virker. Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Introduksjon til operativsystemer Geir Maribu 2.9.2014 Lærestoffet er utviklet for faget «IINI2008 Operativsystemer med Linux» Resymé: I

Detaljer

1. Introduksjon til operativsystemer

1. Introduksjon til operativsystemer 1. Introduksjon til operativsystemer mets plassering: Lagdeling: applikasjon, system, maskinvare Basisfunksjoner: Abstraksjon, deling, isolering Prosesser og ressurser Kjøring: sekvensiell, multitasking

Detaljer

Generelt om operativsystemer

Generelt om operativsystemer Generelt om operativsystemer Operativsystemet: Hva og hvorfor Styring av prosessorer (CPU), elektronikk, nettverk og andre ressurser i en datamaskin er komplisert, detaljert og vanskelig. Maskinvare og

Detaljer

Tildeling av minne til prosesser

Tildeling av minne til prosesser Tildeling av minne til prosesser Tildeling av minne til en prosess Når en ny prosess opprettes har den et krav til hvor mye minne som skal reserveres for prosessen Memory Management System (MMS) i OS må

Detaljer

Tildeling av minne til prosesser

Tildeling av minne til prosesser Tildeling av minne til prosesser Tildeling av minne til prosesser OS må hele tiden holde rede på hvilke deler av RAM som er ledig/opptatt Når (asynkrone) prosesser/run-time system krever tildeling av en

Detaljer

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen

Dagens temaer. Fra kapittel 4 i Computer Organisation and Architecture. Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen Dagens temaer Fra kapittel 4 i Computer Organisation and Architecture Kort om hurtigminne (RAM) Organisering av CPU: von Neuman-modellen Register Transfer Language (RTL) Instruksjonseksekvering Pipelining

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 26. mai 25 Varighet: 3 timer ( 9: 12: ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: BADR 1. ING FU Studiepoeng:

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 21. desember 2005 Varighet: 3 timer ( 9:00 12:00 ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: FU (1. ING)

Detaljer

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

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er: Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som

Detaljer

Håndtering av minne i et OS

Håndtering av minne i et OS Håndtering av minne i et OS Hva er det som skal håndteres? Minnehåndtering (memory management) utføres av de delene av systemet som har ansvar for å håndtere maskinens primærminne Primærminnet (aka hovedminne,

Detaljer

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

Funksjonalitet og oppbygning av et OS (og litt mer om Linux) Funksjonalitet og oppbygning av et OS (og litt mer om Linux) Hovedfunksjoner i et OS OS skal sørge for: Styring av maskinvaren Deling av maskinens ressurser Abstraksjon vekk fra detaljer om maskinvaren

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Eksamensdato: 26. mai 25 Varighet: 3 timer ( 9: 2: ) Avdeling for informatikk og e-læring Fagnummer: Fagnavn: LO249D Operativsystemer med Linux Klasser: BADR. ING FU Studiepoeng:

Detaljer

Læringsmål og pensum. Oversikt. Systemprogramvare Operativsystemer Drivere og hjelpeprogrammer. To hovedtyper programvare

Læringsmål og pensum. Oversikt. Systemprogramvare Operativsystemer Drivere og hjelpeprogrammer. To hovedtyper programvare 1 2 Læringsmål og pensum TDT4105 Informasjonsteknologi grunnkurs: Uke 36 programvare Førsteamanuensis Alf Inge Wang Læringsmål Forstå hva systemprogramvare og applikasjonsprogramvare er Forstå hvordan

Detaljer

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

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 8 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 13.des 2011 Faglig

Detaljer

Skriverminne. Minnebehandling 1. Skrive ut. Bruke farger. Papirhåndtering. Vedlikehold. Problemløsing. Administrasjon.

Skriverminne. Minnebehandling 1. Skrive ut. Bruke farger. Papirhåndtering. Vedlikehold. Problemløsing. Administrasjon. Skriverminne Minnebehandling 1 Skriveren leveres med minst 32 MB minne. Du kan finne ut hvor mye minne som er installert i skriveren ved å velge Skriv ut oppsett fra verktøymenyen. Total mengde installert

Detaljer

Du har sikkert allerede startet noen programmer ved å trykke på kontrollknappen. VINDUER = WINDOWS

Du har sikkert allerede startet noen programmer ved å trykke på kontrollknappen. VINDUER = WINDOWS Operativsystemet Kort historie Utviklingen av datamaskiner og dataprogrammer går fort. Den som har sitt første møte med dataverdenen i dette kurset, vil kanskje allikevel ha hørt om DOS (Disk Operating

Detaljer

Definisjon av prosess

Definisjon av prosess Prosesser og tråder Definisjon av prosess Enkel definisjon: En prosess er et program som kjører på datamaskinen Mer presis definisjon: En prosess er en samling av ressurser som er nødvendige for å utføre

Detaljer

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Eksamensdato: 26. mai 2004 Varighet: 0900-200 Fagnummer: LO249D Fagnavn: Operativsystemer med Linux Klasse(r): ing, hk, fu Studiepoeng: 6

Detaljer

Steg for steg. Sånn tar du backup av Macen din

Steg for steg. Sånn tar du backup av Macen din Steg for steg Sånn tar du backup av Macen din «Being too busy to worry about backup is like being too busy driving a car to put on a seatbelt.» For de fleste fungerer Macen som et arkiv, fullt av bilder,

Detaljer

Operativsystemer og grensesnitt

Operativsystemer og grensesnitt Operativsystemer og grensesnitt Ulike måter å bruke OS'et på Application Program Interface (API) Applikasjoner (ofte C-programmer) som f.eks. emacs, som bruker tjenestene i OS ved å kalle på funksjoner

Detaljer

Opprydding og Vedlikehold av Windows

Opprydding og Vedlikehold av Windows Opprydding og Vedlikehold av Windows Innledning Hvis du synes at PC en går tregt kan det være på sin plass med en diskopprydding. Windows selv og de fleste programmer som arbeider under Windows benytter

Detaljer

Oppgave 1 & 2: Først gå inn på «Min Datamaskin/ Computer» Høyreklikk på vinduet uten å være nær noen dokumenter o.l.

Oppgave 1 & 2: Først gå inn på «Min Datamaskin/ Computer» Høyreklikk på vinduet uten å være nær noen dokumenter o.l. Oppgave 1 & 2: Først gå inn på «Min Datamaskin/ Computer» Høyreklikk på vinduet uten å være nær noen dokumenter o.l. Klikk så på «Properties/ Egenskaper» Her ligger det info vedrørende hvilket Operativsystem

Detaljer

Minnebehandling. Skrive ut Skriverminne. Bruke farger. Papirhåndtering. Vedlikehold. Problemløsing. Administrasjon.

Minnebehandling. Skrive ut Skriverminne. Bruke farger. Papirhåndtering. Vedlikehold. Problemløsing. Administrasjon. Skriverminne 1 Skriveren leveres med minst 64 MB minne. Du kan finne ut hvor mye minne som er installert i skriveren ved å velge Skriv ut oppsett fra verktøymenyen. Total mengde installert minne vises

Detaljer

Datamaskinens oppbygning

Datamaskinens oppbygning Datamaskinens oppbygning Håkon Tolsby 18.09.2014 Håkon Tolsby 1 Innhold Hovedenheten Hovedkort Prosessor CISC og RISC 18.09.2014 Håkon Tolsby 2 Datamaskinens bestanddeler Hovedenhet Skjerm Tastatur Mus

Detaljer

PC-bok 1. Svein-Ivar Fors. Lær deg. og mye mer! Windows Tekstbehandling Regneark Mange nyttige PC-tips!

PC-bok 1. Svein-Ivar Fors. Lær deg. og mye mer! Windows Tekstbehandling Regneark Mange nyttige PC-tips! Svein-Ivar Fors s PC-bok 1 Lær deg Windows Tekstbehandling Regneark Mange nyttige PC-tips! Bruk PC en din til å skrive brev, gjøre forandringer i tekster, skrive feilfritt nesten bestandig, kopiere datafiler

Detaljer

Humanware Companion.

Humanware Companion. Humanware Companion. Humanware Companion er et Windows basert program. Dette brukes sammen med Victor Reader Stream eller ClassMate avspilleren for å organisere dine bøker, musikk, Podcast, innspille lydnotater

Detaljer

Installasjon av Windows 7 og Office 2016

Installasjon av Windows 7 og Office 2016 Installasjon av Windows 7 og Office 2016 Du har fått med deg en skole-pc som du nå skal overta. For at den skal virke optimalt som privat PC utenfor SIKT-nettet må den installeres på nytt. Denne bruksanvisningen

Detaljer

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki. 02.04.2001 Hukommelseshierarki-2 1

Innhold. Virtuelt minne. Paging i mer detalj. Felles rammeverk for hukommelseshierarki. 02.04.2001 Hukommelseshierarki-2 1 Innhold Virtuelt minne Paging i mer detalj Felles rammeverk for hukommelseshierarki 02.04.200 Hukommelseshierarki-2 Virtuelt minne Lagringskapasiteten i RAM må deles mellom flere ulike prosesser: ûoperativsystemet

Detaljer

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.)

Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Utførelse av programmer, funksjoner og synlighet av variabler (Matl.) Av Jo Skjermo (basert på Alf Inge Wang sin versjon om JSP). 1. Utførelse av kode i kommando/kalkulatormodus Et dataprogram består oftest

Detaljer

Programvareoppdateringer Brukerhåndbok

Programvareoppdateringer Brukerhåndbok Programvareoppdateringer Brukerhåndbok Copyright 2008, 2009 Hewlett-Packard Development Company, L.P. Windows er et registrert varemerke for Microsoft Corporation i USA. Informasjonen i dette dokumentet

Detaljer

GruNot '95. Notatsystem for gruppeterapi. Versjon 1.8. http://www.med.uio.no/us/dn/grunot/grunot.pdf

GruNot '95. Notatsystem for gruppeterapi. Versjon 1.8. http://www.med.uio.no/us/dn/grunot/grunot.pdf GruNot '95 Notatsystem for gruppeterapi Versjon 1.8 http://www.med.uio.no/us/dn/grunot/grunot.pdf Geir Pedersen Klinikk for Psykiatri Ullevål sykehus 19 99 Generelt Systemets funksjoner GruNot'95 er et

Detaljer

VMware ESX og krav til hardware

VMware ESX og krav til hardware Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag VMware ESX og krav til hardware Stein Meisingseth 01.02.2011 Lærestoffet er utviklet for faget LN400D Drift av virtuelle nettverk og overvåkning

Detaljer

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

Dagens temaer. Kort repetisjon. Mer om cache (1) Mer om cache (2) Read hit. Read miss. Write hit. Hurtig minne. Cache Dagens temaer Dagens emner er hentet fra Englander kapittel side 338-35 (gammel utgave). Mer om design av cache. Kort repetisjon er en spesiell type rask hukommelse som inneholder et subsett av det som

Detaljer

Kjenn din PC (Windows7)

Kjenn din PC (Windows7) Kjenn din PC (Windows7) Denne delen handler om hva man kan finne ut om datamaskinens hardware fra operativsystemet og tilleggsprogrammer. Alle oppgavene skal dokumenteres på din studieweb med tekst og

Detaljer

Minnehåndtering i operativsystemer

Minnehåndtering i operativsystemer Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet

Detaljer

INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O) INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen

Detaljer

Generelt om operativsystemer

Generelt om operativsystemer Generelt om operativsystemer Hva er problemet? Styring av maskinvare og ressurser tilknyttet en datamaskin er komplisert, detaljert og vanskelig Maskinvare, komponenter og programvare endres og forbedres

Detaljer

Dagens tema. Flere teknikker for å øke hastigheten

Dagens tema. Flere teknikker for å øke hastigheten Dagens tema Flere teknikker for å øke hastigheten Cache-hukommelse del 1 (fra kapittel 6.5 i Computer Organisation and Architecture ) Hvorfor cache Grunnleggende virkemåte Direkte-avbildet cache Cache-arkitekturer

Detaljer

Patrick Fallang (Dataingeniør) Lab Oppgave: Kjenn Din Egen PC (XP)

Patrick Fallang (Dataingeniør) Lab Oppgave: Kjenn Din Egen PC (XP) Patrick Fallang (Dataingeniør) Lab Oppgave: Kjenn Din Egen PC (XP) 1: Hva slags prosessor har maskinen? Maskinen min har en «Pentium 4 CPU 3.00Ghz»prosessor. 2: Hvor mye minne har den. Maskinen min har

Detaljer

TDT4258 Eksamen vår 2013

TDT4258 Eksamen vår 2013 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 TDT4258 Eksamen vår 2013 Løsningsforslag Oppgave 1 Flervalgsoppgave (16 poeng) Du får 2 poeng

Detaljer

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM)

Dagems temaer. kapittel 4 i Computer Organisation and Architecture. av CPU: von Neuman-modellen. Transfer Language (RTL) om hurtigminne (RAM) Dagems temaer Fra Kort Organisering Register kapittel 4 i Computer Organisation and Architecture om hurtigminne (RAM) av CPU: von Neuman-modellen Transfer Language (RTL) Instruksjonseksekvering Pipelining

Detaljer

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Hei JavaScript! Introduksjon Web Introduksjon I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt. Steg 1: Bruke JS Bin

Detaljer

Utførelse av programmer, metoder og synlighet av variabler i JSP

Utførelse av programmer, metoder og synlighet av variabler i JSP Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen

Detaljer

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

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt. Side 1 av 5 Norges teknisk-naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforslag til EKSAMENSOPPGAVE I FAG TDT4186 OPERATIVSYSTEMER Versjon: 17.jan 2013 Faglig

Detaljer

Tallinjen FRA A TIL Å

Tallinjen FRA A TIL Å Tallinjen FRA A TIL Å VEILEDER FOR FORELDRE MED BARN I 5. 7. KLASSE EMNER Side 1 Innledning til tallinjen T - 2 2 Grunnleggende om tallinjen T - 2 3 Hvordan vi kan bruke en tallinje T - 4 3.1 Tallinjen

Detaljer

Scheduling og prosesshåndtering

Scheduling og prosesshåndtering Scheduling og prosesshåndtering Håndtering av prosesser i et OS OS må kontrollere og holde oversikt over alle prosessene som kjører på systemet samtidig Prosesshåndteringen må være: Korrekt Robust Feiltolerant

Detaljer

2 Grafisk grensesnitt 1

2 Grafisk grensesnitt 1 Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Grafisk grensesnitt 1 Mildrid Ljosland 01.02.2011 Lærestoffet er utviklet for faget LN350D Applikasjonsutvikling for mobile enheter 2 Grafisk

Detaljer

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

oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgavesett 4 INF1060 H15 Øystein Dale Hans Petter Taugbøl Kragset September 22, 2015 Institutt for informatikk, UiO oppgave 1 Hvorfor har vi operativsystemer? Portable programmer Enklere å programmere

Detaljer

Minnehåndtering i operativsystemer

Minnehåndtering i operativsystemer Minnehåndtering i operativsystemer Minnehåndtering? Minne er en begrenset ressurs i datamaskinen Tilgjengelig minne må fordeles til prosessene som OS-et håndterer, på en korrekt og rettferdig måte Minnet

Detaljer

Introduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen

Introduksjon til dataanlegget ved Institutt for informatikk. Marc Bezem Institutt for informatikk Universitetet i Bergen Introduksjon til dataanlegget ved Institutt for informatikk Marc Bezem Institutt for informatikk Universitetet i Bergen August 2005 1 Introduksjonskurset Målgrupper: Alle studenter som skal ta INF100 Andre

Detaljer

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM)

Dagems temaer INF ! Fra kapittel 4 i Computer Organisation and Architecture. ! Kort om hurtigminne (RAM) Dagems temaer! ra kapittel 4 i Computer Organisation and Architecture! Kort om hurtigminne (RAM)! Organisering av CPU: von Neuman-modellen! Register Transfer Language (RTL)! Instruksjonseksekvering! Pipelining

Detaljer

Informasjon om din trådløse forbindelse

Informasjon om din trådløse forbindelse Informasjon om din trådløse forbindelse Vi har rullet ut en ny type hjemmesentral, som har innebygget router- og trådløsfunksjonalitet. I den forbindelse ønsker vi å dele litt erfaringer med deg som kunde

Detaljer

Institiutt for informatikk og e-læring, NTNU CPUens deler og virkemåte Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP

Institiutt for informatikk og e-læring, NTNU CPUens deler og virkemåte Geir Ove Rosvold 4. januar 2016 Opphavsrett: Forfatter og Stiftelsen TISIP 4. januar 26 Opphavsrett: Forfatter og Stiftelsen TISIP Resymé: Denne leksjonen beskriver. Vi ser at en instruksjon utføres ved at den brytes ned til mindre og enkle handlinger; såkalte mikrooperasjoner.

Detaljer

Hvorfor lære om maskinvare*?

Hvorfor lære om maskinvare*? Litt om maskinvare Hvorfor lære om maskinvare*? Hovedoppgaven til et OS er å styre maskinvare Må ha grunnleggende kjennskap til maskinvare for å forstå hvordan OS fungerer Skal bare se på grunnleggende

Detaljer

3. Introduksjon til prosjektet Hringr. Scratch fra scratch Enkel programmering for nybegynnere

3. Introduksjon til prosjektet Hringr. Scratch fra scratch Enkel programmering for nybegynnere 3. Introduksjon til prosjektet Hringr 29 Sammenlikninger hvis og hvis-ellers Vi mennesker bruker sammenlikninger hundrevis av ganger hver eneste dag. Når vi utfører oppgaver, når vi tenker og når vi jobber.

Detaljer

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 %

Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 % Side 2 av 9 Oppgave 1 Flervalgsspørsmål ( multiple choice ) 15 % Denne oppgaven skal besvares på eget svarark sist i oppgavesettet. Dersom du finner flere alternativer som synes å passe, setter du kryss

Detaljer

Skrivebordsflata. Opphavsrett: Forfatter og Stiftelsen TISIP

Skrivebordsflata. Opphavsrett: Forfatter og Stiftelsen TISIP Avdeling for informatikk og elæring, Høgskolen i Sør-Trøndelag Filer og mapper i Windows Geir Maribu 7.9.2009 Lærestoffet er utviklet for faget LV299D IT verktøy Som kursdeltaker kan du fritt bruke leksjonene

Detaljer

Komme i gang med Skoleportalen

Komme i gang med Skoleportalen Generell brukerveiledning for Elevportalen Denne elevportalen er best egnet i nettleseren Internett Explorer. Dersom du opplever kompatibilitets-problemer kan det skyldes at du bruker en annen nettleser.

Detaljer

Oppdatere, sikkerhetskopiere og gjenopprette programvare

Oppdatere, sikkerhetskopiere og gjenopprette programvare Oppdatere, sikkerhetskopiere og gjenopprette programvare Brukerhåndbok Copyright 2007 Hewlett-Packard Development Company, L.P. Windows er et registrert varemerke for Microsoft Corporation i USA. Informasjonen

Detaljer

INF2270. Input / Output (I/O)

INF2270. Input / Output (I/O) INF2270 Input / Output (I/O) Hovedpunkter Innledning til Input / Output Ulike typer I/O I/O internt i datamaskinen I/O eksternt Omid Mirmotahari 3 Input / Output En datamaskin kommuniserer med omverdenen

Detaljer

ENC - 100. ENKEL AKSE og KLIPPE LENGDE KONTROLLER for PLATESAKSER

ENC - 100. ENKEL AKSE og KLIPPE LENGDE KONTROLLER for PLATESAKSER ENC - 100 ENKEL AKSE og KLIPPE LENGDE KONTROLLER for PLATESAKSER 1. GENERELLE SPESIFIKASJONER Membran tastatur med lang levetid. Klart og lett lesbart display. Viser hver av de 6 sifrene for aktuell og

Detaljer

Operativsystemer og nettverk Løsningsforslag til eksamen 01.12.2014. Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram:

Operativsystemer og nettverk Løsningsforslag til eksamen 01.12.2014. Oppgave 1. a) Linux-kommando: java Beregn & b) Shellprogram: Operativsystemer og nettverk Løsningsforslag til eksamen 01.12.2014 Oppgave 1 a) Linux-kommando: java Beregn & b) Shellprogram: java Beregn & java Beregn Eventuelt, hvis man vil gjøre det med bare en linje

Detaljer

1. Systemsikkerhet. 1.1. Innledning. Innhold

1. Systemsikkerhet. 1.1. Innledning. Innhold Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Systemsikkerhet Stein Meisingseth 29.08.2005 Lærestoffet er utviklet for faget LO474D Systemsikkerhet 1. Systemsikkerhet Resymé: Denne leksjonen

Detaljer

Grunnkurs i. Windows Utforsker. Nordre Land kommune IKT-avdelingen

Grunnkurs i. Windows Utforsker. Nordre Land kommune IKT-avdelingen Grunnkurs i Windows Utforsker Nordre Land kommune IKT-avdelingen - 2 - Fil- og mappehåndtering med Windows Utforsker Innholdsfortegnelse Introduksjon...- 3 - Generelt om filbehandling...- 3 - Filbehandling...-

Detaljer

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere. Soloball Introduksjon Scratch Introduksjon Vi skal nå lære hvordan vi kan lage et enkelt ballspill med Scratch. I soloball skal du styre katten som kontrollerer ballen, slik at ballen ikke går i nettet.

Detaljer

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord.

hvor mye hurtigminne (RAM) CPU en kan nyttiggjøre seg av. mens bit ene betraktet under ett kalles vanligvis et ord. Oppbygging av RAM Sentrale begreper er adresserbarhet og adresserom Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon (lese- eller skrive-operasjon). 9.. INF Antall bit som kan

Detaljer

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk

ITPE/DATS 2400: Datamaskinarkitektur og Nettverk ITPE/DATS 2400: Datamaskinarkitektur og Nettverk Forelesning Knut Nygaard / T. M. Jonassen Institute of Computer Science Faculty of Technology, Art and Design Oslo and Akershus University College of Applied

Detaljer

Shellscripting I. Innhold

Shellscripting I. Innhold Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Shellscripting I Tor Halsan 19.08.2010 Lærestoffet er utviklet for faget LN199D Scripting av Servere Resymé: Leksjonen er første innføring

Detaljer

Algoritmer og datastrukturer A.1 Filbehandling på bit-nivå

Algoritmer og datastrukturer A.1 Filbehandling på bit-nivå Vedlegg A.1 Filbehandling på bit-nivå Side 1 av 9 Algoritmer og datastrukturer A.1 Filbehandling på bit-nivå A.1 Filbehandling på bit-nivå A.1.1 Sammendrag Klassen BitInputStream gjør det mulig å lese

Detaljer

Forstå alternativene for service og kundestøtte

Forstå alternativene for service og kundestøtte Forstå alternativene for service og kundestøtte QuickRestore Compaq gir deg muligheten til å gjenopprette systemet når som helst ved hjelp av QuickRestore. QuickRestore har fem forskjellige gjenopprettingsalternativer,

Detaljer

STE6221 Sanntidssystemer Løsningsforslag

STE6221 Sanntidssystemer Løsningsforslag HØGSKOLEN I NARVIK Avdeling for teknologi MSc.-studiet EL/RT Side 1 av 3 STE6221 Sanntidssystemer Løsningsforslag Tid: Fredag 02.03.2007, kl: 09:00-12:00 Tillatte hjelpemidler: Godkjent programmerbar kalkulator,

Detaljer

Oppsummering av digitalteknikkdelen

Oppsummering av digitalteknikkdelen Oppsummering av digitalteknikkdelen! Følgende hovedtemaer er gjennomgått! Boolsk Algebra! von Neuman-arkitektur! Oppbygging av CPU! Pipelining! Cache! Virtuelt minne! Interne busser 09.05. INF 1070 1 Boolsk

Detaljer

Norsk versjon. Innledning. Installasjon av hardware. Installasjon Windows XP. LW057V2 Sweex trådløst LAN PCI kort 54 Mbps

Norsk versjon. Innledning. Installasjon av hardware. Installasjon Windows XP. LW057V2 Sweex trådløst LAN PCI kort 54 Mbps LW057V2 Sweex trådløst LAN PCI kort 54 Mbps Innledning Ikke utsett trådløs LAN PCI kort 54 Mbps for ekstreme temperaturer. Ikke plasser innretningen i direkte sollys eller nær varmeelementer. Ikke bruk

Detaljer

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design.

Dagens temaer. Dagens emner er hentet fra Englander kapittel 11 (side ) Repetisjon av viktige emner i CPU-design. Dagens temaer Dagens emner er hentet fra Englander kapittel 11 (side 327-344 ) Repetisjon av viktige emner i CPU-design. Flere teknikker for å øke hastigheten Cache 03.10.03 INF 103 1 Hvordan øke hastigheten

Detaljer

Denne brukerguiden beskriver hvordan man går frem for å spille simuleringen Hjørne pushback på web.

Denne brukerguiden beskriver hvordan man går frem for å spille simuleringen Hjørne pushback på web. Brukerguide Hjørne pushback Denne brukerguiden beskriver hvordan man går frem for å spille simuleringen Hjørne pushback på web. Innhold Spille simuleringen på web... 1 Før du starter... 1 Innlogging...

Detaljer

Disker og stasjoner. Dokumentdelenummer: 393498-091. Denne håndboken beskriver hvordan du bruker harddisken og den optiske stasjonen.

Disker og stasjoner. Dokumentdelenummer: 393498-091. Denne håndboken beskriver hvordan du bruker harddisken og den optiske stasjonen. Disker og stasjoner Dokumentdelenummer: 393498-091 Oktober 2005 Denne håndboken beskriver hvordan du bruker harddisken og den optiske stasjonen. Innhold 1 Behandle disker og stasjoner 2 IDE-lampe 3 Harddisk

Detaljer

Kjenn din PC (Windows Vista)

Kjenn din PC (Windows Vista) Kjenn din PC (Windows Vista) Denne delen handler om hva man kan finne ut om datamaskinens hardware fra operativsystemet og tilleggsprogrammer. Alle oppgavene skal dokumenteres på din studieweb med tekst

Detaljer

Brukerveiledning for "RICOH Printer"

Brukerveiledning for RICOH Printer series Brukerveiledning for "RICOH Printer" Oversikt Windows-versjon Mac-versjon Feilsøking INNHOLD Hvordan lese veiledningen... 2 1. Oversikt Introduksjon til RICOH Printer... 4 Operativsystem... 4 2.

Detaljer

Veileder for opplasting av AKTIV sporlogg til PC

Veileder for opplasting av AKTIV sporlogg til PC Veileder for opplasting av AKTIV sporlogg til PC Det finnes i dag flere forskjellige GPS merker på markedet. Til fritidsbruk, og spesielt i redningstjenesten er det Garmin som benyttes mest. Det finnes

Detaljer

Oppdatere, sikkerhetskopiere og gjenopprette programvare

Oppdatere, sikkerhetskopiere og gjenopprette programvare Oppdatere, sikkerhetskopiere og gjenopprette programvare Brukerhåndbok Copyright 2006 Hewlett-Packard Development Company, L.P. Microsoft og Windows er registrerte varemerker for Microsoft Corporation

Detaljer

Guide for tilkobling til HIKT s Citrix løsning

Guide for tilkobling til HIKT s Citrix løsning Guide for tilkobling til HIKT s Citrix løsning Innhold Guide for tilkobling til HIKT s Citrix løsning... 1 Sjekk om Citrix er installert... 1 Tilgang til applikasjon fra kontoret... 2 Tilgang til applikasjon

Detaljer

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl. 09.00 13.00 Side 1 av 11 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE EKSAMEN

Detaljer

Bruk av oppgaver og grupper i

Bruk av oppgaver og grupper i Bruk av oppgaver og grupper i Versjon 02.07.2007 Ansvarlig for dokumentet Multimedisenteret/NTNU Innhold Innhold...1 Komme i gang med oppgaver...2 Legge til en oppgave...2 En oppgaves egenskaper...2 For

Detaljer

Mangelen på Internett adresser.

Mangelen på Internett adresser. 1. Av 2 Introduksjon og forord Internett er som kjent bygd opp i adresser, akkurat som husstander, byer og land, dette er fordi Internett er bygd opp mye likt post systemet, du kan sammenligne en maskin

Detaljer

Din bruksanvisning CREATIVE DESKTOP WIRELESS 6000 http://no.yourpdfguides.com/dref/1151409

Din bruksanvisning CREATIVE DESKTOP WIRELESS 6000 http://no.yourpdfguides.com/dref/1151409 Du kan lese anbefalingene i bruksanvisningen, de tekniske guide eller installasjonen guide for CREATIVE DESKTOP WIRELESS 6000. Du vil finne svar på alle dine spørsmål på CREATIVE DESKTOP WIRELESS 6000

Detaljer

Telle i kor steg på 120 frå 120

Telle i kor steg på 120 frå 120 Telle i kor steg på 120 frå 120 Erfaringer fra utprøving Erfaringene som er beskrevet i det følgende er gjort med lærere og elever som gjennomfører denne typen aktivitet for første gang. Det var fire erfarne

Detaljer

Maskinvaredelen av INF 103: oversikt og innhold (1)

Maskinvaredelen av INF 103: oversikt og innhold (1) Maskinvaredelen av INF 3: oversikt og innhold () Boolsk algebra: Regning med og, og AND, OR og NOT Analyse og design av logiske kretser: AND, OR og NOT som byggeblokker Hukommelse og sekvensiell logikk:

Detaljer

En kort innføring i Lotte-Typehushold

En kort innføring i Lotte-Typehushold En kort innføring i Lotte-Typehushold Det forutsettes at du har kjennskap til ordinær Lotte dvs. Lotte-Trygd og Lotte-Skatt. Dvs. du må vite hva en skatteregel er og en skatterutine er og hvor du kan finne

Detaljer

Brukerveiledning Windows Movie Maker

Brukerveiledning Windows Movie Maker Brukerveiledning Windows Movie Maker Dette er en enkel veiledning i hvordan man kan bruke Windows Movie Maker.Det er et program som følger med Windows XP, og som er veldig enkelt å bruke. Det egner seg

Detaljer

Fra datax til Visma eaccounting

Fra datax til Visma eaccounting Fra datax til Visma eaccounting Steg 1 Eksport av data Dersom du har registre på kunder, leverandører og/eller artikler i datax, kan du enkelt få med deg alt dette over til Visma eaccounting. Hvordan eksportere

Detaljer

Installasjonsveiledning

Installasjonsveiledning Installasjonsveiledning Visma Avendo Time, versjon 2.4 April 2011 Innledning Vi anbefaler deg å sluttføre, dvs. godkjenne og eksportere/overføre, påbegynte faktura- og regnskapsgrunnlag før du installerer

Detaljer

Nedlasting og brenning av egne ISO-cd-er

Nedlasting og brenning av egne ISO-cd-er Nedlasting og brenning av egne ISO-cd-er 18.1.2005, Geir Maribu, TISIP Læringsmål: Laste ned ISO-filer fra nettet, og brenne disse til en bootbar cd. ISO-filer trenger du bl.a dersom du skal installere

Detaljer

Styrepute og tastatur

Styrepute og tastatur Styrepute og tastatur Brukerhåndbok Copyright 2007 Hewlett-Packard Development Company, L.P. Windows er et registrert varemerke for Microsoft Corporation i USA. Informasjonen i dette dokumentet kan endres

Detaljer

Skilpaddefraktaler Erfaren Python PDF

Skilpaddefraktaler Erfaren Python PDF Skilpaddefraktaler Erfaren Python PDF Introduksjon Vi vil nå jobbe videre med skilpaddekunsten fra tidligere. Denne gangen skal vi tegne forskjellige figurer som kalles fraktaler. Fraktaler er figurer

Detaljer

Debugging. Tore Berg Hansen, TISIP

Debugging. Tore Berg Hansen, TISIP Debugging Tore Berg Hansen, TISIP Innhold Innledning... 1 Å kompilere og bygge et program for debugging... 1 Når debugger er i gang... 2 Symbolene i verktøylinjen... 3 Start på nytt... 3 Stopp debugging...

Detaljer

Programvareoppdateringer

Programvareoppdateringer Programvareoppdateringer Brukerhåndbok Copyright 2007 Hewlett-Packard Development Company, L.P. Windows er et registrert varemerke for Microsoft Corporation i USA. Informasjonen i dette dokumentet kan

Detaljer

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon

! Sentrale begreper er adresserbarhet og adresserom. ! Adresserbarhet: Antall bit som prosessoren kan tak samtidig i én operasjon agems temaer Oppbygging av RAM! ra kapittel i Computer Organisation and Architecture! Kort om hurtigminne (RAM)! Organisering av CPU: von Neuman-modellen! Register Transfer Language (RTL)! Instruksjonseksekvering!

Detaljer

Brukerveiledning for programmet HHR Animalia

Brukerveiledning for programmet HHR Animalia Brukerveiledning for programmet HHR Animalia Versjon 1.0 Rakkestad, 26.03.2014 Innholdsfortegnelse 1. Introduksjon... 3 2. Installasjon og oppgradering... 3 2.1 Nedlasting... 3 2.2 Oppdatering av operativsystem

Detaljer

INF 4130. 8. oktober 2009. Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet

INF 4130. 8. oktober 2009. Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet INF 4130 8. oktober 2009 Stein Krogdahl Dagens tema: Uavgjørbarhet Dette har blitt framstilt litt annerledes tidligere år Se Dinos forelesninger fra i fjor. I år: Vi tenker mer i programmer enn i Turing-maskiner

Detaljer

Boot Camp Installering og klargjøring

Boot Camp Installering og klargjøring Boot Camp Installering og klargjøring Innhold 3 Innledning 4 Dette trenger du 5 Installeringsoversikt 5 Trinn 1: Søk etter oppdateringer 5 Trinn 2: Klargjør Mac-maskinen for Windows 5 Trinn 3: Installer

Detaljer