Swapping og paging Flytning af processer (swapping) eller dele af processer (paging) mellem arbejdslager og fjernlager. Baggrund: På den ene side skal.

Slides:



Advertisements
Lignende præsentationer
Virtuel medarbejder eller konsulent
Advertisements

The Cape Cod Model.
”Nu skal I få kreative ideer – som I kan og vil gøre noget ved”
Operativsystemer [6]: Virtuelt lager Datalogi 1F Forår 2003 Jørgen Sværke Hansen
Når to mennesker gør det samme… …og så alligevel ikke.
Netbank Det offentlige Dk e-Boks
Grundlæggende IT Lektion 4 Sådan virker pc’en
Hvordan kan du arbejde med meningsfuldhed?
Arkitektur - data.
»Tal til mig, Supermax!« - Joakim von And, ca. 1980
Anvendt Statistik Lektion 4
E-inklusionens udfordringer – hvordan gør vi det endnu bedre? Stig Langvad, formand for DSI.
Operativsystemer[4]: Arbejdslageret Datalogi 1F Forår 2003 Jørgen Sværke Hansen
IT Arkitektur og Sikkerhed IT Enterprise Arkitektur.
Pc-kørekort Sådan virker pc’en Keld Hinsch.
O STED FRISKOLE - ET VÆRDIBASERET KLARSYN Et værdibaseret debatoplæg til skolens daglige arbejdsområder, særlige fokusområder, forpligtigelser samt fremtidsvisioner.
Alternative transportsystemer i landbruget - med fokus på gylleområdet
Virksomheder - definition
Oplæg af Mads Lundby Hansen Cheføkonom CEPOS. Regeringens globaliseringsstrategi: Danmark skal være et førende vidensamfund Men hvordan er det med incitamentet.
Oversættelse af Java-programmer JavaBytecode javac Normalt oversættes Java-programmer til bytecode, som fortolkes af en JVM (Java Virtual Machine). Java.
Første generation (maskiner/operativsystemer) 45-55: radiorør Kun maskinsprog programmering = skrivning af nullerog ettaller Intet operativsystem programmør.
AlmenBolig + …et forsøgsprojekt Rummelige boliger til en rimelig leje.
Slide 1 Lindalsbakken Hadsund Sandtidssystemer Del 3 Forlæsningsplan Del 1:Introduktion, definition.
Slide 1 Lindalsbakken Hadsund Sandtidssystemer del 2 Forlæsningsplan MM1:Introduktion, definition.
Fælles EPJ til hospitalerne i Region Midtjylland
Flugtveje mig - Problemanalysen og metode Daniel - Graftori og modelovervejlser Asger - Flugtvejsproblemet og korteste-vej algoritmen THOMAS - Største.
IT – sikkerhed Fysisk sikkerhed Logisk sikkerhed
Arv Idéen i arv et at kunne genbruge gennem generalisering
Lineær funktioner.
Humanistisk fagsprog og læringsstile Dagens program
Indretning af serverrum Det grønne serverrum Inservio a/s Rådgivende ingeniører med serverrummet som speciale.
Titel: Arial, fed, skriftstr. 20, mørkegrå. Tekst: Arial, normal, fed eller kursiv, skriftstr. 10, 12 og 14 til print – 16 og 18 til projektor – mørkegrå.
Adresserum Adresserum: Det interval af adresser, der kan arbejdes med i den samme proces (fra 0 til største adresse) Lippiatt++: adresser fylder 8 bit.
Problemformulering Indeholder:
Microsoft Dynamics – synergi mellem forretningsområder Susanne Christoph Dynamics Sales Lead
Inquiry Based Science Education - IBSE
Reflekteret praksis og kvalitetsudvikling i Blå Kors - hvad er det lige, vi skal med en Forskningsafdeling?
Nyt fra Nordea + Papyrus erfaringer. Flere breve og dokumenter i arkiv Nordea er ved at indse at der er business i elektronisk arkiv Så vi er på vej.
Proces overblik med SIPOC modellen
Obligatorisk selvvalgt opgave
Mulighed for øget produktivitet i det offentlige.
Sandsynligheder Udfald og hændelser Sandsynligheder Additionsreglen
Context- og flow-diagrammer (databaser, del 3)
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
Kvalitetssikringsprocedurer og programmer.. Jesper Bak DMU.
Netværk og interprocess- kommunikation. Disposition Softwarelag Protokollag ◦UDP ◦TCP.
Kvinder Ser sig i spejlet..
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Algoritmer og Datastrukturer 1 Gerth Stølting Brodal Aarhus Universitet.
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
Beskeder/beskedkøer Afsender- proces hej Modtager- proces.. msgsnd(..,"hej",..);.. msgrcv(..);.. Afsender skal bl.a. angive den besked der ønskes afsendt.
PC - Vedligeholdelse Hvordan gør jeg Pc’en sikker og hurtig igen ? En kronologisk gennemgang.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Hjemmesiden Stilen Funktionalitet Mangler. Stilen Simpel, enkle linier, klart mønster Få farver i tekst – symbolik – valgt med henblik på kunstnerens.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Grundlæggende programmering Forår 2002
Den Kreative Platform I TIK 3
Statistik II 4. Lektion Logistisk regression.
Multiple processer på web-site Web- server filer Kunde 1 Kunde 2 Kunde p1p2p internet.
Kommunikation Hvad er det og hvordan udvikler vi bedst muligt sproget sammen med vores børn? Hej jeg hedder Mette og er dagtilbuddets sprogvejleder, jeg.
Hvorfor bruge flere medier i undervisningen?. Hvorfor bruge medier i undervisningen? 1.Bekendtgørelsen kræver det: ”It er en integreret del af tyskundervisningen,
Betaler en professionel bestyrelse sig ?. Professionel bestyrelse og ejerskifte… Mindre pres på virksomhedens daglige ledelse En rigtig pris Mindre bøvl.
Målgrupper og segmentering
Supply Chain management SCM
Sæt et program på pause baseret på ressourcer
Halvår 2015 Krop og bevægelse 1.Halvår 2016 ? JUL JAN APR
Kvalitetsudvikling hvordan
Naturvidenskabelig metode
OS2indberetning – tjenestekørselsindberetning og ferie
DIT NAVN DIN UDDANNELSE (husk både kandidat og bachelor, hvis de er forskellige) og KONTAKTOPLYSNINGER Baggrund Kort beskrivelse af hvilket problem, specialet.
Præsentationens transcript:

Swapping og paging Flytning af processer (swapping) eller dele af processer (paging) mellem arbejdslager og fjernlager. Baggrund: På den ene side skal arbejdslager rumme alle processers procesbillede aht. hurtig overførsel af instruktioner og data til CPU. På den anden side har arbejdslageret ikke plads nok til alle processerne ! Ide / håb: Swapping: Processer der alligevel ikke kører kan flyttes.. Paging: Del af procesbillede, der alligevel ikke bruges, kan flyttes..

I/o-tunge processer => multitasking Cpu:I/o: 20% 80% Mindst fem samtidige processer for at udnytte cpu-en

Sandsynlighedsmodel for cpu-udnyttelse Antal processerSandsynlighed for ledig cpu 10,8 20,8 * 0,8 = 0,64 50,8*0,8*0,8*0,8*0,8 = ca. 0,32 n0,8 i n'te Antagelser Tanenbaum s : Alle processer har 80% ledighed Processers ledighed er indbyrdes uafhængig

Konklusion på model Vigtigt at få plads til mange processer i arbejdslager. Køb ekstra RAM ! Udnyt hele arbejdslageret. Swapping. Paging. Optimer ved at processer med samme program deles om tekst-segment Optimer ved at bruge multitrådning.

Udnyt hele arbejdslageret Processer vokser stak-segment: rekursive procedurekald. data-segment: plads til data f.eks. et tekstbehandlingsprogram som bruges til et redigere et dokument som bliver større og større Ikke nok RAM til at alle processer på forhånd kan allokeres "nok" RAM. Dynamisk allokering af plads til processer: en proces kan tildeles mere plads i løbet af dens liv (men i rimeligt store portioner ad gangen)

Virtuelle vs. fysiske adresser Assembler: LOAD N R1 // [R1] <- [N] ADD R1 RO // R1 indeholder allerede 3 STORE R1 N // [N] <- [R1] Alle processer tror de har maskinen for sig selv I assembler/maskin-program er adressen på variablen i lagt fast en gang for alle, ved oversættelsen. Udgør den virtuelle adresse på variablen ! Processerne deles rent faktisk om cpu og RAM, derfor skelnes mellem virtuel adresse og fysisk adresse. C: i = i+3;

Fysisk adr. = virtuel adr. + base LOAD N R1 // [R1] = [N+base] ADD R1 RO // R1 indeholder allerede 3 STORE R1 N // [N+base] = [R1] Her ligger processen rent faktisk Her tror processen den ligger base N N+base Cpu kan bruge et register med base som lægges til alle adresser. Forudsætninger: flere samtidige processer den enkelte proces lagres sammenhængende

"Swap disk" Hvis en proces helt (swapping) eller delvist (paging) midlertidigt er slettet fra arbejdslageret, skal stak- og data-segmenterne gemmes på harddisken. (Evt. også tekst-segment). "Swap disk" ell. "swap space" er Linux-slang for et antal blokke som reserveres til dette formål. Program Processkabelse proces swapping, paging RAM HD Dele af proces gemt på "swap disk"

Problemer som skal løses ved swapping Finde plads i arbejdsplager til nye og ind-swappede processer Finde plads på swapdisk til ud-swappede processer Hvis et operativsystem bruger swapping uden paging allokeres sammenhængende plads i arbejdslageret. Hurtigere programafvikling (register med offset tilstrækkelig) Dårlig udnyttelse af arbejdslager (mange "huller").

Lageradministration med hægtede lister Bruges til allokering af sammenhængende plads i arbejdslageret til ny eller ind-swappet proces (( Kan også bruges til at holde styr på data-segmentet for den enkelte proces )) Valgmulighed mellem first-fit, next-fit, best-fit, m.fl. P05H?3 P=proces Startadr. Længde Hægte

Opgave 1: overtjeneren 1. (Svær) Modificer og udvid din løsning af filosofproblemet med et overtjenerprogram og et kundeprogram. Ideen med opgaven er at du skal lave et program som kan håndtere flere samtidige klienter, som tilgår de samme ressourcer - i forenklet form det samme problem som skal løses af en webserver med en e-handelsløsning. I opgaven er overtjenerens formål at modtage kunder. Overtjeneren er den første proces der startes. Derefter startes et eller flere kundeprogrammer. Hvert kundeprogram sender en besked (via en beskedkø) til overtjeneren gående ud på at kunden gerne vil spise...

Hvilke processer skal der være ? kunde Over- tjener filosof kunde Besked: Jeg søger en plads ved bordet Filosofproces startes hvis der er plads Beskeder sendes tilbage med status ("spiser", "tænker") Opdeling i kunde/filosof påtvunget for at det skal ligne ehandels-server etc. ! I kan genbruge jeres gamle filosoffer

Overtjener: lytter til beskedkø // overtjener.c.. {opret beskedkø} // navn på kø kendt af kunde.. while (TRUE) { // eller while(OPEN) ?? msgrcv(..); // bloker indtil der er besked help_customer(..); };.. help_customer(..) { // parametre ? if ({der er ikke plads}) {afvis kunden}; // kan forbedres ! else { {marker plads som optaget}; // og evt. antal retter pid = fork(); switch(pid) { Case -1: {error}; exit(1); Case 0: {start filosof} // nyt program eller p-kald? }..

Hvilke beskedkøer ? kunde Over- tjener filosof 1 beskedkø til alle indkommende beskeder 1 beskedkø per kunde til status m.m. Hvordan aftale kunde-afhængig beskedkø ? Forbedringer til at håndtere "alle pladser optaget" ?

Arrays og pointere char txt[] = "hello world!\n";; // skaber txt[0].. txt[14] samt txt // hvor txt er adressen på txt[0] putchar(txt[0]); // vi vil se det 1. Tegn ! putchar(txt[13]); // vi vil se det 14. Tegn ! // txt[13] findes ved at lægge 13 til txt putchar(*(txt)) // samme som txt[0] putchar(*(txt + 13)) // samme som txt[13] Navnet på et array ( txt ) er en adresse, nemlig adressen på array-ets første element ( txt[0] ) og har således lighedspunkter med en pointer. C tillader "pointer-aritmetik" både med pointere og arraynavne.

Beregning af længden af en streng // naturligt program int strlen(char s[]) { int pos; for (pos=0; s[pos] != '\0'; pos++); // s + pos lægges sammen i hver iteration return pos; } // optimeret med pointer-aritmetik int strlen(char *s) { char *pos; for (pos = s; *pos != '\0'; pos++); //.. hvilket er sparet væk her ! return (pos - s); }