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

Slides:



Advertisements
Liknende presentasjoner
Nedlasting av Adobe Reader Adobe Reader brukes bl.a. for å åpne vedlegg i en E-post. Åpne Internett og skriv, adobe.no i adressefeltet, klikk Enter. Rull.
Advertisements

HVA ER ?.
v/Tormod Engebu, IKAVA KDRS 13. november 2013
“UNDER THE KNIFE” Et planleggingssystem for operasjonsavdelingen Fylkessykehuset i Molde Prototype for planlegging, logistikk, og kostnads estimering.
Nedlasting av Adobe Flash Player Adobe Flash Player brukes for å se video på Internett, YouTube, nett-TV osv. Åpne Internett og skriv, adobe.no i adressefeltet,
En innføring i spillet: Lag En Setning
22 tips for den faglitterære forfatteren
Nedlasting av Java Java bruker du til bl.a. å logge deg inn i nettbanken. Åpne Internett og skriv, java.com i adressefeltet, klikk Enter. Klikk på Free.
Slik kommer du til «Personverninnstillinger»: Logg inn på Facebook.
Lag film. Lag video •Videoteknologien har utviklet seg raskt de siste årene. Digital video er i ferd med å avløse analoge systemer. Med digital video.
Pilotprosjektet så langt
En innføring i spillet: Dobbeltkrig – Grønn
Sikkerhet - bakgrunn og introduksjon til kryptosystemer
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Gruppe 6 Gunnar Henrik Mathias Morten Ronny Svein Ivar.
Ulike sorteringsmetoder Kompleksitet av dem
Objektorientert programmering i PHP del 2
MS kap 61 Nye trender  Vi skal se på  Virtualisering  ”Cloud computing”
AP - Arbeidsplan Vi jobber med arbeidsplanen nesten hver dag.
PowerPoint laget av Bendik S. Søvegjarto Konsept, tekst og regler av Skage Hansen.
Operativsystemer.  Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.  Generelt kan en kritisk region defineres som et sted der.
IS-102 Klassedefinisjoner
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Eksempel AOA (Activity On Arc)
Kompleksitetsanalyse
Generelt I/O if/else Funksjoner Lists Løkker Dictionaries Annet Listebehandling Klasser Python med noen algdat-anvendelser Åsmund Eldhuset asmunde *at*
Operativsystemer.  Tilstandsmaskiner kalles på engelsk Finite State Machines.  Tilstandsmaskiner er en metode til å beskrive systemer med logisk og.
Oppgave gjennomgang Kap. 3 og 4.
Operativsystemer for multiple prosessorer
Operativsystemer.  Begrepet kritisk region er sentralt i forbindelse med datamaskinsystemer.  Generelt kan en kritisk region defineres som et sted der.
Om prosesser.
Feilhåndtering. Feil er uunngåelige! Erfaring viser at feil i dataprogrammer som består av mer enn noen få linjer ikke er til å unngå. For å få et godt.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 2.10 Default values – standardverdier ved oppstart MER OM: Sub-prosedyrer og sub-funksjoner.
Hva er Fronter.
Om operativsystemer.
Gruppe 3 – Presentasjon 2 Henning Kristiansen, Mats Lindh, André Hauge og Vegard Simensen.
Teknikker for å bedre design- prosessen -Design by contract -Prototyping design -Fault-tree analyses.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Hvordan redusere ventetiden for time hos fastlegen?
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
Høgskolen i Oslo Webprogrammering Ajax og PHP. I dag l Hvordan få en bedre brukeropplevelse via Ajax- script l Gjennomgang av kode l Oppgaveløsning på.
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Dynamiske nettsider PHP Del 1 – variable. PHP  PHP (Personal Home Page)  Fritt tilgjengelig programmeringsspråk  åpen kildekode  Plattformuavhengig.
Hvordan kan foreldre bruke de vangligste funksjonene i Itslearning.com
INF 4130 Eksamen 2008 Gjennomgang.
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
KONFIDENSIELT. Distribusjon bare til partnere i henhold til avtalen om taushetsplikt. Microsoft gir ingen uttrykte eller underforståtte garantier. © 2012.
Spørsmål og aktiviteter på ulike nivåer
7. Typography, Readability & Legibility Lesbarhet.
Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.
De 222 mest brukte ordene i det norske språket..
11. Balancing technology with people’s needs Bruk av teknologi.
Opplæring: Pålogging Prosedyre for logge på og av, låse og åpne PC’er DatoVersjonForfatterGodkjent avEndringer utført André S. MathiesenTore.
Android-Programmering Våren Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task.
Gamle systemer In 140 Forelesning Nr 19 Sommerville kap 26.
Notes ved UiO Steinar Skogheim. Steinar Skogheim, USIT Målet med dette kurset Målet er å gi en oversikt over hvordan Notes generelt fungerer og brukes.
Hypotesetesting, og kontinuerlige stokastiske variable
Kapittel 23 (Big Java 2.utg) Tråder. Kjøring av tråder Ein tråd er ein del av eit program som blir eksekvert uavhengig av andre deler av programmet Vi.
Jæger: Robuste og sikre systemer INF150 Programmering torsdag 14.9 Ulike måter for å lese inn og skrive ut data. Kap. 3.5 mer om if – setninger Ferdige.
Android-Programmering Våren Oversikt Long-running operasjoner Introduksjon til Android services On-demand service Bruk av servicer på tvers av prosesser.
Android-Programmering Våren Oversikt Ytelse vs responsivitet Strategier for og opprettholde responsiviteten Tråder Asynchronous Task.
Kom i gang med Python Pål Hellesnes SYSTEMUTVIKLER
VIS DETTE LYSBILDET: INTRODUKSJON
VIS DETTE LYSBILDET: INTRODUKSJON
Brukerveiledning til programmering av LEGO Mindstorm NXT-roboter
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
Internett som elektronisk kommunikasjonsmiddel
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Operativsystemer

 En prosess kan sees på som et stykke arbeid som skal utføres på datamaskinen.  Ofte vil det være flere prosesser/tråder på datamaskinen samtidig.  Det er derfor behov for å organisere hvordan prosessene/trådene skal samkjøres. Operativsystemer

 Hvis alle trådene på et system kjørte hver for seg uten å ha noe med andre tråder å gjøre vil det ikke være vanskelig å fordele tid til dem i prosessor.  Det som gjør prosessering vanskelig er at tråder kan samarbeide og være avhengige av hverandre. Operativsystemer

 Det er behov for synkronisering av tråder i to tilfeller.  Samarbeid mellom tråder  Konkurranse mellom tråder Operativsystemer

 Tråder kan i forskjellige situasjoner samarbeide.  En tråd kan iblant ha som oppgave å utføre en oppgave for en annen tråd. Operativsystemer

 Et eksempel på samarbeid mellom tråder er når to tråder jobber mot en felles liste.  Den ene tråden kan ha til oppgave å henge objekter på listen.  Den andre tråden kan ha til oppgave å fjerne objekter fra listen. Operativsystemer

 Konkurranse mellom tråder oppstår når to tråder ønsker å bruke den samme ressurs på samme tidspunkt.  Et eksempel er to tråder som samtidig forsøker skrive til samme fil. Operativsystemer

 Et annet eksempel på konkurranse om en ressurs er to tråder som skriver til skjermen samtidig.  Dette fører gjerne til kollisjoner og rotete utskrifter. Operativsystemer

 Eksempel på kollisjon når to tråder skriver til skjermen samtidig.  Tråd 1 skriver Hallo  Tråd 2 skriver Hei  Resultatet på skjermen kunne bli  HaHellio Operativsystemer

 Det vil iblant skje at flere tråder samtidig konkurrerer om en ressurs.  Det er derfor behov for systemer som sørger for at tråder ikke kolliderer. Operativsystemer

 Når kun en tråd har tilgang til en ressurs på et bestemt tidspunkt kalles dette eksklusiv rådighet.  Eksklusiv rådighet heter Mutual Exclusion på engelsk. Operativsystemer

 Eksklusiv rådighet er når en tråd har fått rettighet til en ressurs slik at den har eksklusiv tilgang til ressursen.  Eksklusiv tilgang vil si at andre tråder lukkes ute og ikke får tilgang til ressursen. Operativsystemer

 En måte å oppnå eksklusiv tilgang på er å bruke en semafor.  En semafor kan beskrives som et heltall.  Semaforen kan ha verdien 0, 1, …,n, hvor n er et tall som vi bestemmer. Operativsystemer

 For eksempel kan to tråder som skal skrive samtidig til skjermen bruke en semafor for å unngå kollisjoner.  Semaforen kan ha verdiene 0 eller 1.  Verdi = 0 Skjermen er i bruk  Verdi = 1Skjermen er i ikke bruk Operativsystemer

 Før trådene skriver til skjermen sjekker de semaforen.  Er semaforen ledig, det vil si har verdien 1, settes verdien til 0, og tråden har eksklusiv rådighet over skjermen.  Når tråden er ferdig med skjermen settes verdien til semaforen lik 1 igjen. Operativsystemer

 En semafor kan ha flere tallverdier enn 0 og 1.  Iblant kan det være mulig at flere tråder kan få tilgang til en ressurs samtidig.  Da kan man benytte en semafor med flere tallverdier. Operativsystemer

 En semafor med tallverdier 0, 1, 2 vil kunne tillate to tråder samtidig.  Semaforen kan starte med verdien 2.  Hver tråd som entrer semaforen avtar verdien med 1.  Når verdien er 0 vil ikke flere tråder slippes inn i semaforen. Operativsystemer

 class Semaphore er en klasse i.NET Framework Class Library.  Her er det to funksjoner som kontrollerer semaforen.  WaitOne()Semaforen avtar med 1  Release()Semaforen øker med 1 Operativsystemer

 WaitOne() avtar verdien til semaforen med 1 og medfører at andre tråder stenges ute når verdien er lik 0.  Release() skjer når tråden forlater semaforen og verdien til semaforen øker med 1. Operativsystemer

 Semaforer kan brukes på forskjellige måter.  En semafor som kun benyttes til å oppnå eksklusiv rådighet kalles gjerne en Mutex.  En Mutex er en semafor som bare kan ha verdiene 0 og 1. Operativsystemer

 Mutexer kan bli implementert av mer spesialiserte og raskere rutiner enn en semafor.  Når man programmerer vil det derfor lønne seg å bruke en Mutex istedenfor en semafor når man ønsker å oppnå eksklusiv rådighet. Operativsystemer

 En annen type semafor kalles for Semafor for synkronisering.  Gitt to tråder A og B som samarbeider.  Tråd A må ikke passere et punkt p1 i koden før tråd B har nådd et punkt p2 i sin kode. Operativsystemer

 Måten en semafor for synkronisering virker på er at tråd A blokkerer semaforen når den starter.  Når tråd A har kommet til punkt p1 frigjør den semaforen slik at tråd B vet at tråd A har kommet til punkt p1. Operativsystemer

 Istedenfor å benytte semafor for å få til synkronisering kan en benytte Events.  Events brukes i tilfeller der en tråd må vente på at noe er utført i en annen tråd. Operativsystemer

 Et eksempel på tråder som må vente på hverandre er når en tråd skal lese en fil som en annen tråd har skrevet.  Tråden som skal lese filen kan ikke lese den før den andre tråden er ferdig med å skrive den. Operativsystemer

 Class EventWaitHandle er en klasse i.NET Framework Class Library som kan benyttes for å synkronisere tråder som må vente på hverandre. Operativsystemer

 I Class EventWaitHandle er det to funksjoner  WaitOne()Blokkerer tilgang  Set()Tillater tilgang Operativsystemer

 Noen ulemper med semaforer 1. Tråder er ikke tvunget til å bruke semaforer. Det kan være tråder som ikke har semafor når det er nødvendig. 2.Ukorrekt bruk av semafor kan føre til vranglås (Deadlock ). Operativsystemer

3.Blokkering av en semafor er uendelig, det er ikke mulig å bestemme blokkering for en bestemt tidsperiode. 4. Hvis en tråd med lav prioritet som sultes får tilgang til en semafor, kan dette låse systemet fordi andre tråder med høyere prioritet ikke får tilgang. Operativsystemer

 Monitor er en måte å synkronisere på som er noe annerledes enn ved semafor.  Oppgaven til en monitor er å sørge for at bare en tråd får tilgang til noen data på et bestemt tidspunkt. Operativsystemer

 En monitor brukes på et stykke programkode (for eksempel en klasse).  Dataene som skal benyttes av tråder kan bare nås via koden i monitoren.  For å sikre eksklusiv rådighet benyttes noe som kalles en condition variabel. Operativsystemer

 En condition variabel er en variant av en semafor som kan ha verdien 0 og 1.  Hver gang en tråd går inn i eller forlater en monitor signaliserer den til en condition variabel. Operativsystemer

 class Monitor er en klasse i.NET Framework Class Library.  Objekter fra klassen Monitor kan synkronisere adgang til kode vi skriver.  Dette betyr at bare en tråd kan nå koden om gangen. Operativsystemer

 Class Monitor har funksjoner som er med på å regulere adgang til objekter fra klassen.  Enter()Lukker objektet  TryEnter()Forsøker å lukke  Exit()Åpner objektet Operativsystemer

 Når flere tråder konkurrerer om en ressurs kan det oppstå noe som kalles vranglås (deadlock).  Tråder som har status vranglås er i den situasjon at hver tråd venter på en ressurs som er opptatt av en annen tråd. Operativsystemer

 Et eksempel på vranglås er  To tråder har hver sin fil åpen for skriving. Begge tråder forsøker å åpne den andre trådens fil.  Begge tråder vil vente evig fordi en fil som er åpen for skriving, kan ikke åpnes av en annen tråd. Operativsystemer

 Prosessplanlegging (CPU Scheduling) er oppgaven å behandle deling av prosessor mellom en gruppe med prosesser/tråder.  Planlegging heter på engelsk Scheduling. Operativsystemer

 Prosessplanlegging av tråder skiller seg ikke fra annen planlegging.  For eksempel planlegging av  Bruk av undervisningsrom.  Trafikkflyt ved trafikkregler. Operativsystemer

 Prosessplanlegging kan gjøres på mange forskjellige måter.  Hvordan dette skal gjøres på best mulig måte har derfor vært et forskningsproblem. Operativsystemer

 Man kan skille mellom to typer algoritmer for prosessplanlegging  Ikke preemptive algoritmer  Preemptive algoritmer  Med preemptiv menes at operativsystemet griper inn. Operativsystemer

 Ikke preemptive algoritmer lar en prosess som har kommet inn i prosessor kjøre til den er ferdig.  Preemptive algoritmer lar prosesser kjøre bare et bestemt intervall. Det vil si at prosesser hele tiden bytter på å kjøre. Operativsystemer

 På en datamaskin er det vanligvis mange tråder som venter på å komme inn i prosessor.  Når en tråd er ferdig i prosessor og en ny tråd skal lastes inn, må prosessplanleggeren (Scheduler) bestemme hvilken tråd som skal lastes inn.  Hvilken tråd som skal lastes inn bestemmes ved en prosessplanleggingspolitikk. Operativsystemer

 En prosessplanleggingspolitikk (Scheduling policy) må bestemme to ting 1. Når tiden er inne for en tråd til å forlate prosessor. 2. Hvilken tråd som er den neste til å lastes inn i prosessor. Operativsystemer

 Det er fire årsaker til at en tråd forlater prosessor  Tråden er ferdig (programslutt).  Tråden behøver en ressurs, men denne er for øyeblikket ikke tilgjengelig.  Tråden bestemmer frivillig å forlate prosessor.  Tråden må forlate prosessor fordi den har brukt opp tiden den får være i prosessor. Operativsystemer

 Å fjerne en tråd fra prosessor og å laste inn en ny tråd kalles trådutskifting (Context Switching).  En tråd som er i prosessor bruker flere registre som har data og informasjon om tråden.  Ved trådutskifting må derfor dataene i disse registrene lagres, slik at de kan lastes inn i prosessor neste gang tråden kjøres. Operativsystemer

 Windows benytter preemptiv prosessplanlegging.  Tråder tillates å være i prosessor en bestemt tid som kalles et quantum.  Et quantum er et tidsintervall som en tråd kan være i prosessor før den byttes ut med en annen tråd. Operativsystemer

 Lengden til et quantum varierer fra system til system.  I Windows 7 er et quantum 2 klokkeintervaller.  På Windows server systemer 12 klokkeintervaller.  Et klokkeintervall er ca. 10 millisekunder. Operativsystemer

 Trådene kan dele bruk av prosessor på to måter  Frivillig deling av prosessor.  Ufrivillig deling av prosessor. Operativsystemer

 Frivillig deling av prosessor vil si at trådene er programmert til å forlate prosessor selv.  En prosessplanlegger som benytter frivillig deling av prosessor kalles en ikke preemptiv prosessplanlegger. Operativsystemer

 Et problem ved å bruke frivillig deling av prosessor som system er at det kan dukke opp tråder som ikke vil samarbeide. Operativsystemer

 Ufrivillig deling av prosessor vil si at systemet har et avbrytelsessystem som kan avbryte en tråd som kjører i prosessor.  Dette systemet bruker gjerne en timer som avbryter prosessen når det har gått et bestemt intervall. Operativsystemer

 Prosessplanleggeren bestemmer hvilke tråder som skal inn i prosessor og hvor lenge trådene får bli i prosessor.  Hvordan prosessplanleggeren organiseres har derfor stor innvirkning på datamaskinens hastighet og ytelse. Operativsystemer

 En tråd som prosessplanleggeren lar komme inn i prosessor ganske lett, vil ha høy ytelse.  Motsatt vil en tråd som sjelden kommer inn i prosessor, ha lav ytelse. Operativsystemer

 Hvordan prosessplanleggeren bør organiseres avhenger av hva operativsystemet skal brukes til.  Prosesser i et sanntidsoperativsystem skal reagere med en gang.  De må derfor prioriteres mye høyere enn prosesser i et vanlig operativsystem. Operativsystemer

 Prosessplanleggings algoritmer som er laget for moderne operativsystemer bruker prioritet til å bestemme hvilke prosesser som skal få tilgang til prosessor.  Hver tråd gis en prioritet som angir hvor viktig tråden er. Operativsystemer

 En prosessplanlegger som benytter frivillig deling av CPU kalles en ikke preemptiv prosessplanlegger.  Vi skal se på noen måter som en ikke preemptiv prosessplanlegger kan arbeide på. Operativsystemer

 Noen måter en ikke preemtiv prosessplanlegger kan arbeide på er  First come first served  Shortest job next  Priority scheduling  Deadline scheduling Operativsystemer

 First come first served strategien lar trådene komme inn i prosessoren etter hvert som de blir startet.  En måte å organisere dette på er at trådene henges på en liste etter hvert som de er klare til å komme inn i prosessoren. Operativsystemer

 Trådene henges bakerst på lista etter hvert som de kommer.  Den som er først på lista kommer inn i prosessoren.  First come first served strategien fungerer ikke bra i praksis og er lite brukt. Operativsystemer

 Shortest job next strategien er at den tråden som går raskest å utføre hentes først inn i prosessor.  Denne strategien minsker ventetiden da de små trådene går fort unna.  Ulempen med strategien er at det kan føre til sulting av store tråder hvis det er mange små. Operativsystemer

 Prioritet prosessplanlegging vil si at trådene får plass i CPU etter hvilken prioritet de har.  Ulempen med denne metoden er at det kan føre til sulting av tråder med lav prioritet. Operativsystemer

 I sanntidssystemer er det ofte nødvendig at noen tråder må kunne kjøre ferdig i prosessor for å kunne holde en tidsfrist.  Systemets ytelse avhenger av at slike tidsfrister overholdes.  Dette kalles for Deadline Scheduling på engelsk. Operativsystemer

 Noen måter en preemtiv prosessplanlegger kan arbeide på  Round Robin.  Køer med ulike nivåer.  Forgrunn og bakgrunn prosesser. Operativsystemer

 Round Robin er den mest brukte av alle prosessplanlegging algoritmer.  Ideen bak Round Robin er at alle trådene skal få like mye tid i prosessoren.  Hver prosess får et tidsintervall kalt et quantum. Operativsystemer

 Køer med ulike nivåer er et system der alle tråder med samme prioritet henges på en liste.  Køer med ulike nivåer er derfor en utvidelse av prioritet systemet.  Det er mange forskjellige strategier for at alle lister skal få tid i prosessor. Operativsystemer

 Forgrunn og bakgrunns prosesser er en måte å organisere tråder på.  Tråder i forgrunnen kjører på prosessor for å utføre oppgaver for en bruker.  Tråder i bakgrunnen slipper til når det er anledning til det. Det vil si når det ikke er noen aktive tråder i forgrunnen. Operativsystemer

 Prosessplanlegging er ikke så viktig på PC-er  På en PC kjører en bruker oftest bare et program, for eksempel en tekstbehandler.  Dagens PC-er er blitt så raske at prosessor fint klarer alle oppgaver. Operativsystemer

 Prosessplanlegging er mye viktigere på en server i nettverk enn på en PC.  På en server er det ofte mange prosesser som konkurrerer om tid i prosessor. Operativsystemer

 Hvilken prosessplanlegging algoritme vi skal bruke avhenger av operativsystemet.  Vi skal se på tre ulike operativsystemer  Batch systemer  Interaktive systemer  Sanntidssystemer Operativsystemer

 Batch systemer utfører en oppgave beskrevet på en fil.  I Batch systemer er det derfor ingen bruker som venter på respons.  Batch systemer brukes fortsatt en del i forretningsverdenen. Operativsystemer

 For Batch systemer brukes derfor en av følgende to algoritmer  Ikke preemptive algoritmer. En prosess kjører i prosessor til den er ferdig.  Preemptive algoritmer med lang tid for hver prosess i prosessor. Operativsystemer

 Målet med prosessplanlegging algoritmer for Batch systemer er  Få utført flest mulig jobber på kortest mulig tid.  Holde prosessor aktiv hele tiden. Operativsystemer

 På et interaktivt system, hvor en bruker kommuniserer med datamaskinen, er preemtive algoritmer nødvendig.  Preemptive algoritmer sørger for at ikke en prosess får datamaskinen til å henge om det blir en feil (bug) i prosessen. Operativsystemer

 Målet med prosessplanlegging algoritmer for Interaktive systemer er  Kunne reagere på handlinger raskest mulig.  Kunne tilfredsstille brukerens forventninger til systemet. Operativsystemer

 I sanntidssystemer er preemptive algoritmer i blant ikke nødvendig.  Sanntidssystemer kjører prosesser med høy prioritet som er klar til å reagere på ytre hendelser i systemet. Operativsystemer

 Målet med prosessplanlegging algoritmer for sanntidssystemer er  Kunne reagere på handlinger med en gang.  Ting må skje på riktig tidspunkt. Det vil si at systemet må være forutsigbart. Operativsystemer

 Generelt kan vi si at målet med prosessplanlegging algoritmer for alle systemer er  Gi alle prosesser tilgang til prosessor.  Utnytte systemet best mulig. Operativsystemer