-OS i i L1 og L2 og og Basis for flerprosess-systemer. Adresser.. 2 1 0 OS Device minne Skjerm minne Brukerprogram Brukerdata/heap Stack Stack: brukes bl. a. til å lagre adressen som skal returneres til ved subrutinekall.
-OS i i L1 og L2 og og -OS For å lage et system som kan kjøre n samtidig, må vi få en enprosess maskin til å se ut som n maskiner. Adresser.. 2 1 0 OS Bibliotek virtuell I/O1 program1 data 1/heap1 stack1 virtuell I/O 2 program 2 data 2/heap2 stack 2 prosess nr. 1 prosess nr. 2 Figure: Minnekart for et multitasking system
-OS i i L1 og L2 og og gjør en og en maskinistruksjon av gangen Et multitasking operativsystem får det til å se ut som om mange kan kjøre samtidig ved å dele opp tiden i små biter (timeslices) Hver prosess som kjører få en bit -tid, 1/100 sek av gangen, i et køsystem (Round Robin kø) Preemptive multitasking: En hardware timer (klokke) sender hvert hundredels sekund et interrupt-signal til Første OS-instruksjon legges inn i instruksjonsregisteret i en OS lar hver prosess etter tur bruke en i et 1/100 sekund Unngår at en brukerprosess henger eller tar over kontrollen Alle prosesser ser da ut til å kjøre samtidig
-OS i i L1 og L2 og og Når OS switcher fra prosess P1 til prosess P2 utføres en såkalt Contex (kontekst svitsj). 10 30 50 70 P1 P2 P3 P1 P2 P3 P1 P2 OS gjør Contex fra P1 til P2 tid/ms bruk Figure: Prosessene P1, P2 og P3 kjører samtidig under et multitasking OS. En utføres hver gang en prosess gis -tid. Typisk tid som brukes på en context-switch: 0.001 ms (ms = millisekund = tusendels sekund). Timeslice = 10 ms for Linux på Intel.
-OS i i L1 og L2 og og Process (PCB) er Prosessens tilstandsbeskrivelse: prioritet, prosessormodus, minne, stack, åpne filer, I/O, etc. PCB inneholder bl. a. følgende: registere pekere til stack prosesstilstand (sleep, run, ready, wait, new, stopped) navn (PID) eier (bruker) prioritet (styrer hvor mye -tid den får) parent prosess ressurser (åpne filer, etc.)
-OS i i L1 og L2 og og -scheduling = å fordele -tid mellom prosessene = Time Sharing Ved hvert timer-interrupt til, vurderer OS om scheduler-rutinen skal kalles Scheduleren avgjør hvilken prosess som skal velges til å bruke en Når OS switcher fra prosess P1 til prosess P2 utføres en Contex All PCB-info må lagres i en tar tid systemoverhead
-OS i i L1 og L2 og og Adresser.. 2 1 0 Context switch fra P1 til P2 PCB 1 program1 data1 PCB 2 program 2 data 2 PCB og Lagrer prosess nr. 1 prosess nr. 2 registere Laster inn PC IR ax bx cx Figure: info lagres i PCB ved en
-OS i i L1 og L2 og og i Et program som oversetter kildekode til maskinkode (kompilator) eller et program som hele tiden regner med tall, vil bruk så mye -tid som det klarer å få tak i. Kalles. De fleste vanlige som browsere, tekstbehandlings, tengeprogram etc. bruker lite Dette gjør at multitasking av hundretalls samtidige prosesser går helt greit uten at brukeren oppfatter datamaskinen som treg
-OS i i L1 og L2 og og i Kjører et lite shell-script som står i en løkke og regner og regner Vil hele tiden bruke så mye det kan få Har aldri behov for å vente på data fra disk, tastatur eller andre prosesser, kan regne uten stans #! /bin/bash # regn (bruker hele tiden) (( max = 100000 )) (( i = 0 )) (( sum = 0 )) echo $0 : regner... while (($i < $max)) do (( i += 1 )) (( sum += i )) done echo $0, resultat: $sum
-OS i i L1 og L2 og og Bare rene regneprosesser bruker hele tiden. Vanlige prosesser venter mye på I/O (Input/Output fra disk, nettverk etc.) og multitasking gir da mer effektiv utnyttelse av. Singletasking; først A så B Prosess A Prosess B I/O I/O 0 30 40 60 I/O I/O Figure: Prosessene A og B kjørt med single og multitasking tid/ms
-OS i i L1 og L2 og og vanlige som webbrowsere, teksteditorer, regneark etc bruker stort sett lite venter på I/O(Input/Output), input fra brukere, nettverkskort eller disk. io1: #! /bin/bash echo $0 : laster ned... wget -O io1.file http://uvtagg.com/classes/operatingsystems.pdf 2> /dev/null
-OS i i L1 og L2 og og RAM - Random Access Memory utfører instruksjoner raskere enn de og data kan hentes fra RAM er hurtigere og mellomlagrer instruksjoner og data 4 8 GByte 2MByte 128Kbyte 512 byte < 1ns 1ns 2ns 8 10 ns (10 sekunder) Registere L1 L2 Internminne (RAM) 500 GByte 2 10 ms (10 sekunder) Disk
-OS i i L1 og L2 og og Mikroprosessor brikke L1 Level 1 0101 1111 1101 0001 R0 0101 0001 1101 hurtigst R1 1101 0111 R2 0001 1111 1111 R3 0111 0001 0001 1101 1101 (SRAM) hurtig L2 Level 2 (SRAM) 0101 1111 1111 1101 0001 0001 0001 1101 1101 0111 1111 1111 1111 0001 0001 0001 1101 1101 1101 1111 1111 1111 0001 0001 0001 1101 1101 1101 1111 1111 1111 0001 0001 0001 1101 1101 1101 treg (Buss) Internminne (RAM) (DRAM) 0101 1111 1111 1111 1111 1101 0001 0001 0001 0001 0001 1101 1101 1101 1101 0111 1111 1111 1111 1111 1111 0001 0001 0001 0001 0001 1101 1101 1101 1101 1101 1111 1111 1111 1111 1111 0001 0001 0001 0001 0001 1101 1101 1101 1101 1101 1111 1111 1111 1111 1111 0001 0001 0001 0001 0001 1101 1101 1101 1101 1101 1111 1111 1111 1111 1111 0001 0001 0001 0001 0001 1101 1101 1101 1101 1101 1111 1111 1111 1111 1111 0001 0001 0001 0001 0001 1101 1101 1101 1101 1101 1111 1111 1111 1111 1111 0001 0001 0001 0001 0001 1101 1101 1101 1101 1101 1111 1111 1111 1111 1111 0001 0001 0001 0001 0001 1101 1101 1101 1101 1101 1111 0001 1101 1111 0001 1101 1111 0001 1101 1111 0001 1101 1111 0001 1101 1111 0001 1101 1111 0001 1101 1111 0001 1101 Figure: Level 1 cache (L1) ligger nærmest. L2 er større, men har litt lengre aksesstid.
-OS i i L1 og L2 og og L1 data L1 instruksj. L1 TLB Mikroprosessor L2 Level 2 L1 og L2 Figure: Level 1 cache (L1) bestående av tre deler. I AMD Athlon 64 er TLB i tillegg delt i to deler, en for adresser til instruksjoner og en for adresser til data. RAM
-OS i i L1 og L2 og og og /Multiprogramming Software(OS) brukes til å fordele tid fra samme mellom flere prosesser To eller flere er i samme computersystem kjører flere prosesser virkelig samtidig, på samme tidspunkt Symmetric SMP, mest vanlig, To eller flere prosessorer deler samme internminne og kjører flere prosesser virkelig samtidig, på samme tidspunkt Multi Core To eller flere prosessorer på samme brikke deler cache og databus og kjører flere prosesser samtidig.
-OS i i L1 og L2 og og L1 cache RAM Singel processor L1 cache L1 cache L1 cache L1 cache L1 cache RAM RAM RAM Dual processor Dual Core AMD Dual Core Intel processor processor Figure: Single og dual prosessor og dual core prosessorer. Den tykke linjen markerer grensen for brikken/chip en L1 cache
-OS i i L1 og L2 og og 64KB L1 cache 256 KB 64KB L1 cache 256 KB 8MB L3 cache 64KB L1 cache 256 KB 64KB L1 cache 256 KB Figure: Intel Core i7 og AMD Opteron K10. K10 kjernen har 512KB og i7 kjernene har, ellers er de i store trekke relativt like.
-OS i i L1 og L2 og og og Mange av Intels prosessorer som Pentium 4 og Xeon har såkalt teknologi En single core kan inneholde to prosesser samtidig er mellom de to prosessene i løpet av nanosekunder Egne registere for hver prosess, men deler felles ALU