Oppgave 8.1 fra COD2e To systemer brukes for transaksjonsprosessering: A kan utføre 1000 I/O operasjoner pr. sekund B kan utføre 750 I/O operasjoner pr. sekund Begge har samme prosessor som kan utføre 50 mill. instruksjoner pr. sekund. Hver transaksjon består av 5 I/O operasjoner, og hver I/O operasjon trenger 10.000 instruksjoner. Hva er den maksimale transaksjonsraten disse to systemene kan opprettholde, hvis en ser bort ifra responstid og tillater vilkårlig overlapp mellom transaksjoner? CPU en kan håndtere 50E6/(5 10.000) = 1000 transaksjoner/s, men på maskin A er I/O begrenset til 1000/5 = 200 transaksjoner/s og maskin B er begrenset til 750/5 = 150 transaksjoner/s. Da hjelper det ikke at prosessorene er raskere!
Oppgave 8.4 fra COD2e Hvor store må meldingene være for at ATM skal være dobbelt så rask som Ethernet? Jo, når 462 + trans time E = 2 (623 + trans time A) dvs. 462 + X/1.125 = 2 (623 + X/10) Dette gir X = 1138 bytes Eksempel på side 654 Characteristic Bandwidth from node to network Interconnect latency HW latency to/from network SW overhead sending to network SW overhead receiving from network Ethernet 1.125 MB/sec 15µs 6µs 200µs 241µs ATM 10MB/sec 50µs 6µs 207µs 360µs pakkestørrelse: 250 byte overføringstid: pakkestørelse/overføringshastighet total forsinkelse: overføringstid + HW/SW forsinkelser overføringstid for Ethernet : 222µs overføringstid for ATM : 25µs total forsinkelse for Ethernet : 684µs total forsinkelse for ATM : 648µs Hvorfor?
Oppgave 8.5 fra COD2e Lysets hastighet er ca. 3E8 meter/s og elektriske signaler har ca. 50 % av denne hastigheten i en leder. Hvor lenge befinner en elektrisk signal seg på hhv. en kabel på 100 m og en på 5000 km? Jo, 100 meter kabel: 100 / (0,5 3E8) = 0,67 µs 5000 km kabel: 5000E3 / (0,5 3E8) = 0.034 s Dette er «flight time», altså den tiden «noe» (en flanke) er på ledningen. Altså er «latency» fra eksemplet på side 654 dominert av helt andre ting!
Oppgave 8.6 fra COD2e Antall byte «i transit» er definert som «flight time» levert båndbredde. Hvor mange byte er da «i transit» for de to nettverkene i forrige oppgave hvis den leverte båndbredden er 5MB/s? Jo, 0,67 µs 5MB/s = 3,35 byte er «i transit» på kabelen på 100 m 0.034 s 5MB/s = 170000 byte er «i transit» på kabelen på 5000 km
Oppgave 8.7 fra COD2e Overvåking av 100 mobiltelefoner over et nettverk med en båndbredde på 1 MB/s, der det er en overhead på 350µs for en melding på 1KB, og hver telefonsamtale samples med 16 bit med en samplingsfrekvens på 4KHz. Beregn overføringstid per melding og avgjør om det er tilstrekkelig båndbredde for denne anvendelsen. Mengde data som skal overføres: 2B 4KHz 100samtaler = 800000B/s Tid for å overføre en pakke på 1KB: 1KB/1MB/s = 0,001s + Ekstra overhead pr. 1KB = 0,001s + 0,00035 s = 0,00135 s Overføring av 800 pakker, hver på 1KB: 800 0,00135 s = 1,08 s Altså må nettverket pr. sekund overføre data som krever 1.08 sekunder for å overføres! Dette går altså ikke!
Oppgave 8.8 fra COD2e Programmet utfører følgende proses på tre trinn: 1) les inn en blokk på 4 KB fra disk 2) prosesser data i blokken 3) skriv blokken tilbake til disk (på et annet sted) Hver blokk er ligger kontinuerlig på disken, og hver blokk er plassert på et tilfeldig spor på disken. Disken roterer med en hastighet på 7200 RPM, gjennomsnittlig søketid er 8 ms, overføringsraten er 20MB/s, og diskkontrolleren bidrar med 2 ms overhead. Prosesseringen bruker 20 millioner klokkesykler pr. blokk, og prosessorens klokkerate er 400 MHz. Hva er hastigheten til systemet i form av antall blokker prosessert pr. sekund? Gjennomsnittlig aksesstid for disken (se side 648): 8ms + 4,2ms + 0,2ms + 2ms = 14.4 ms Dette gjøres både for read og write, altså 2 ganger. I tillegg kommer prosesseringen (20E6/400E6 s = 50ms). Totalt blir tiden pr. blokk da: 2 14,4 ms + 50 ms = 78.8ms. Antall slike som kan utføres pr. sekund: 1s/78.8ms = 12,7
Oppgave 8.9 fra COD2e Et transaksjonsprosesseringssystem benytter et nettverk til å transportere meldinger av to størrelser, forespørsler (request) på 10 byte og svar (responser) på 150 byte. Hvilket av nettverkene i eksemplet på side 654 har best ytelse, hvis hver transaksjon består av én forespørsel og et svar? Latency for Ethernet : 462 + transmisjonstiden (µs) Latency for ATM : 623 + transmisjonstiden (µs) transmisjonstider for Ethernet: 8,9 µs og 133,3µs transmisjonstider for ATM : 1 µs og 15 µs total latency for Ethernet: 2 462µs + 8,9µs + 133,3 µs = 1066,2 µs total latency for ATM: 2 623µs + 1µs + 15µs = 1262 µs Altså vinner Ethernet siden latency (forsinkelsen) er minst!
Operativsystem, multiprogrammering og avbrudd Køer: event venter på signal etc run kjørbare disk venter på side fra disk passiv ikke kjørbare kommandoer til disk pagein/pageout kommandoer klokkeavbrudd tastetrykk TLB miss pause() run kø hent neste fra run kø restore til CPU RFE konsumer fra disk op passiv kø sem_signal( semafor ) lagre event i event kø side i DRAM? ja TLB flytt fra disk kø til run kø nei semafor ledig? ja return flytt ventere fra passiv kø til run kø nei finn fysisk side (evt. pageout) page table kø disk op disk kø pid med sig kill( pid, sig ) disk sem_wait( semafor ) Når noe skjer som bringer kontrollen over til fordeleren er det nødvendig å lagre unna registre for å skape plass for den prosesseringen som behandlingen medfører. Når en page fault opptrer så må ikke bare den aktuelle siden bli hentet inn fra disk. Operativsystemet må også finne plass i den fysiske hukommelsen for siden som kommer fra disk [replacement]. Noen operativsystemer vil passe på å ha ledig plass mesteparten av tiden, for å ligge i forkant av fremtidige pagein operasjoner. Til hver prosess finnes det en «Process Control Block». Dette er en datastruktur (identifisert ved PID) som lagrer alt som vedkommer prosessen, f.eks. utestående signaler fildescriptorer sidetabell programmerbar tilstand når prosessen ikke kjører Når en prosess flyttes mellom køer så ligger PCB en fast i hukommelsen, men referanser til den flyttes omkring.
klokkeavbrudd tastetrykk TLB miss run kø side i DRAM? nei hent neste fra run kø lagre event i event kø ja TLB finn fysisk side (evt. pageout) restore til CPU kø disk op RFE disk kø konsumer fra disk op flytt fra disk kø til run kø page table disk passiv kø nei semafor ledig? ja sem_wait( semafor ) pause() return pid med sig sem_signal( semafor ) flytt ventere fra passiv kø til run kø kill( pid, sig )