Multiprogrammering[1]: Ydre enheder og multiprogrammer Datalogi 1F: Forår 2003 Jørgen Sværke Hansen

Slides:



Advertisements
Lignende præsentationer
HUNDE SPEED km h 34,4 HUNDE SPEED km h 34,1 HUNDE SPEED km h 32,8 HUNDE SPEED km h 31,9 HUNDE SPEED km h 31,8 HUNDE SPEED km h 30,9.
Advertisements

Den danske befolknings syn på handicappedes rettigheder
VMS data Geografisk og tidsmæssig udvikling af indsatsen i tobisfiskeriet v/ dataspecialist Josefine Egekvist Sekretariat for myndighedsbetjening.
Atomer Et programmeret forløb. En måde at lære på.
CoDriver Afslut 1 Tastaturet Her kan du få lidt at vide om tastaturet og tasternes funktion. Klik på knapperne nederst til venstre for at bladre frem og.
Børns indflydelse på familiens købsbeslutninger
NemID og Fællesskema 2014 v/Signe Hansen Blegmand
Operativsystemer [6]: Virtuelt lager Datalogi 1F Forår 2003 Jørgen Sværke Hansen
TEST 2 modul 1 20 spørgsmål. Du skal klikke med musen på det rigtige svar, så kommer du automatisk til næste spørgsmål Klik for start.
Torbenfeldvej Vallensbæk strand Tlf.: – – dagligt brug af vores hjemmeside •AGEN LYS har en stor og omfattende.
Niveauer af abstrakte maskiner
Grundlæggende IT Lektion 4 Sådan virker pc’en
Kap. 2 Fiskeri med trawl 2.1 · En smakke med trawlet ude.
Velkommen hos Juvel A/S
Bolig selskabernes Landsforening– Almene lejeboliger - Maj/Juni Almene lejeboliger - Danmarkspanelet - Maj/Juni 2010.
COMPUTERENS ANATOMI KENDER DU DIN COMPUTER SÅ GODT SOM DU TROR?
Trivselsundersøgelse og ledelsesevaluering
Modul 01: Introduktion Videregående pc-vejledning 60+Bornholm.
TEST 3 modul 1 20 spørgsmål. Du skal klikke med musen på det rigtige svar, så kommer du automatisk til næste spørgsmål Klik for start.
Pc-kørekort Sådan virker pc’en Keld Hinsch.
Symbolsk maskinsprog.
SEO PÅ AU.

Representations for Path Finding in Planar Environments.
Grundlæggende regnskabsforståelse
Multiprogrammering[2] Datalogi 1F Forår 2003 Synkronisering og grænseflader Jørgen Sværke Hansen
Datalogi 1F: Multiprogrammering[2]
Datalogi 1F: Multiprogrammering[4] 1 Planen for i dag Repetition af kerner med afbrydelser Kerner med tvungent processkift Præsentation af K1.
Kursus om borger.dk og brugen af digital signatur
Introduktion til Access (Access, del 1)
1 GIS i Gymnasiet på Fyn - en introduktion til brugen af Geografiske Informations Systemer i undervisningen.
Pleje og Sundhed Gennemførte719 Inviterede895 Svarprocent80% FREDERICIA KOMMUNE MTU og Psykisk APV 2012 Rapportspecifikationer.
Operativsystemer [3]: Synkronisering og baglåse Datalogi 1F: Forår 2003 Jørgen Sværke Hansen
1 Powerpointserie om In-line færdiggørelse ved Heatsettrykning Avisrotation Magasindybtryk Den Grafiske Højskole.
Indhold Kort om sundhedsprofilen Hvad kan man bruge sundhedsprofilen til? Udvalgte data Hvordan skal den læses? Kommunikationsstrategi 2.
Datalogi 1F Forår 2003 Multiprogrammering[4] Kerner og processer Jørgen Sværke Hansen
Trivselsundersøgelse og ledelsesevaluering Anæstesiologisk Afdeling Flere ledere
1 Algoritme til at løse knude P-center problemet Algoritmen brugte set covering problemet Virker derfor kun til knude problemer Vi vil alligevel bruge.
Datalogi 1F Forår 2003 Operativsystemer og multiprogrammering Jørgen Sværke Hansen
ETU 2008 | Elevtilfredshedsundersøgelse Erhvervsskolen Nordsjælland HTX (Teknisk Gymnasium) - Hillerød Baseret på 313 besvarelser.
Program for fremlæggelse
Globaliseringsredegørelsen 24.mar. 14 Figurer fra Danmark tiltrækker for få udenlandske investeringer i Sådan ligger landet
1 Sortering I elementære metoder. 2 Plan Terminologi Elementære metoder til sortering -sortering ved udvælgelse -sortering ved indsættelse -Shellsort.
Matematik B 1.
Datalogi 1F Forår 2003 Multiprogrammering[3] Eksempler på multiprogrammeringskerner Jørgen Sværke Hansen
Claus Brabrand, ITU, Denmark Mar 10, 2009EFFECTIVE JAVA Effective Java Presentation Workshop Claus Brabrand [ ] ( “FÅP”: First-year Project.
Begreber og Redskaber 3 BRP.
Microcontroller ► Fordele ved anvendelse af microcontroller ► Teori ► Informationsflow i microcontrolleren ► Anvendelses muligheder ► Implementering.
MSBuild & Team Build i C#/C++ solutions VSTS ERFA d. 25 November.
1 Tråde 2 Plan Trådbegrebet Synkronisering Koordinering Eksempel: et flertrådet spil.
Grunde til at jeg elsker dig
Fundamentale datastrukturer
Introduktion til Access (Access, del 1). RHS – Informationsteknologi – Fra design til udvikling Vi ved nu, hvordan vi finder et design for en database,
10.mar. 15 Udvikling i løn, priser og konkurrenceevne Dansk Industri.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Procestræ under afvikling af cp init login shell cp cp src dest.
1 Computersimuleringer af Molekylære Systemer Ulf Rørbæk Pedersen Ph.D. studerende ved Center for glas og tid Roskilde Universitetscenter.
Per P. MadsenStyresystemer og tjenester1 Indhold: 1.Introduktion til styresystemer. 2.Processer og tråde. 3.Synkroniseringsmetoder og InterProcesCommunikation.
Oprettelse af tabeller (Access, del 2)
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Opfølgning på Dygtig Skildpadde (Michael) To algoritmeskabeloner findEn findAlle Primitive typer (forfremmelse og begrænsning) Identitet versus lighed.
Process Control Hardware baggrund Process begrebet i et OS Process tilstande Context switching.
Per Printz Madsen 1 Linux kernen Monolithic kernel Support for dynamiske moduler Få kerne tråde Preemptive.
VTU 2008 | Virksomhedstilfredshedsundersøgelse Aalborg Tekniske Skole Svarprocent: 27% (414 besvarelser ud af mulige)
Tekst filer Tekstfiler opbygges normalt af linier, hvor disse ikke behøver at være samme længde. Når man skal arbejde med tekstfiler, ønsker man metoder.
Datalogi 1F: Multiprogrammering[3] 1 Planen for idag Kerner uden afbrydelser (KB4 kap. 6): –akernen: kerne med decentralt processkift –bkernen: kerne med.
Seriel kommunikation Jan R. Indhold Krav Modularisering ACIA Registre Baudrate Konklusion.
M3 Jan R. Indhold Krav Indhold af modul M3 ACIA Registre Kontrol register Status register Baud rate Konklusion.
DAIMIProgrammering af Store Systemer1 Concurrency i Java – Samarbejdende tråde.
Præsentationens transcript:

Multiprogrammering[1]: Ydre enheder og multiprogrammer Datalogi 1F: Forår 2003 Jørgen Sværke Hansen

Datalogi 1F: Multiprogrammering[1] 2 Planen for idag Samspil mellem CPU og ydre enheder: –Generelt –Kontrolregistre –Afbrydelser –Specifikt for Alpha AXP (kernemaskinerne) Multiprogrammering: –Eksplicit I/O –Implicit I/O

Datalogi 1F: Multiprogrammering[1] 3 Systemarkitektur CPU cache lager I/O bro I/O styreenhed disk I/O styreenhed netkort I/O styreenhed skærm hukommelsesbus I/O bus

Datalogi 1F: Multiprogrammering[1] 4 Kontrol af ydre enheder De ydre enheder styres af styreenheder (eng.: controllers) Styreenhederne udfører kontrolprogram specifikt for en type af ydre enheder CPU og styreenhed udveksler data som led i kontrol af de ydre enheder Kommunikationen mellem CPU og ydre enheder foregår via kontrolregistre placeret på styreenheden for den ydre enhed

Datalogi 1F: Multiprogrammering[1] 5 Synkronisering mellem styreenhed og CPU Hvordan opdager CPU ændringer i kontrolregistre: Aktiv venten (eng.: polling): –En venteløkke, hvor CPU hele tiden læser indhold af kontrolregister Afbrydelser: –Styreenhed signalerer til CPU at der er sket ændringer i kontrolregistre

Datalogi 1F: Multiprogrammering[1] 6 Synkronisering ved aktiv venten Synkronisering sker via to bit: ready og start ready - ændres af styreenhed og læses af CPU –0 betyder at styreenheden ikke er klar til at modtage nye ordre –1 betyder at den er klar start - ændres af CPU og læses af styreenhed: –signal fra CPU om at styreenhed kan påbegynde en operation –Når start sættes, sættes ready til 0 (styreenhed kan ikke modtage en ny ordre)

Datalogi 1F: Multiprogrammering[1] 7 Udskrivning af tegn på seriel linie Styreenhed er en UART = Universal Asynchronous Receiver-Transmitter Kontrolregistre: –THR (Transmit Holding data Register): Fungerer som start men samtidig som data register: Skrivning igangsætter transmission (latch register) –LSR (Line Status control Register) Bit 5 svarer til ready fra før

Datalogi 1F: Multiprogrammering[1] 8 Kontrolregistre på UART

9 UART’en – tæt på RESET: LSR = 1 repeat repeat until LSR = 0 udsend THR bit for bit LSR = 1 forever

Datalogi 1F: Multiprogrammering[1] 10 Programstump for aktiv venten CPU siden main() { wrio(com1Lcr, 0x87); // choose divisor latch wrio(com1Dlm, 0x00); // set 9600 bps (MSB) wrio(com1Dll, 0x0C); // set 9600 bps (LSB) wrio(com1Lcr, 0x07); // set 8 bit, 2 stop bit wrio(com1Mcr, 0x0F); // set DTR and RTS for(char* p = line; *p; p++) { // indtil ’\0’ while ((rdio(com1Lsr) & 0x20) == 0) // venteløkke /* tom */; // gennemløbes gange/tegn wrio(com1Thr, *p); // skriv næste tegn til UART }

Datalogi 1F: Multiprogrammering[1] 11 Adgang til kontrolregistre Kontrolregistre har en I/O adresse: –COM1 starter ved I/O adresse 0x3F8 Tilgås enten via specielle I/O instruktioner: –wrio r1, 0x3F8 #skriver tegn på seriel linie Eller via alm. instruktioner gennem specielt lagerområde (lagerafbildet I/O): –stl r1, 0x FA0 # Alpha AXP

Datalogi 1F: Multiprogrammering[1] 12 Inden vi går videre Nu bliver det hele lidt mere kernemaskine specifikt – vi skal have lidt AlphaPC164SX information (KB5 – Kapitel 2): –PAL –I/O busser –I/O lagerområder –Afbrydelser –Vigtigste ydre enheder –Systemkald

Datalogi 1F: Multiprogrammering[1] 13 PAL PAL = Priviliged Architecture Library Erstatning for nye instruktioner kodet i mikrokode Bruges også til systemkald Eksempler: –PAL_halt varmstart af maskinen –PAL_wrent skriv indhopsværdi –PAL_callsys systemkald –PAL_rti retur fra afbrydelse

Datalogi 1F: Multiprogrammering[1] 14 I/O busser i Alpha AXP ISA ( Industry Standard Architecture ): –8 MHz, 16 bit bus, 2 klokcykler per overførsel: max. 8,33 MB/s –Udvidelse EISA: 32-bit bus Max. 33 MB/s PCI ( Peripheral Component Interconnection ): –I dag den mest almindelige –33 MHz, 32-bit bredde = max. 132 MB/s –Findes også i 66 MHz og 64 bit udgaver samt PCI-X (533 MHz og 64 bit)

Datalogi 1F: Multiprogrammering[1] 15 I/O lagerområder CPU adresserer: –Fysisk lager (typisk op til 1 GB) –Ydre enheder (typisk PCI, men også ISA) –Interne registre: Konfigurering af Alpha’ernes PAL-kode Adresserum: –32 bit på Intel PC: (kan udvides til 36-bit) –”64 bit” på Alpha = 40 bit = rigeligt med plads

Datalogi 1F: Multiprogrammering[1] 16 Adgang til ISA registre PC –Registrene ligger i de lavere fysiske adresser: kunne adresseres per byte Alpha164SX: –Et register per 32 byte –Start på adresse: 0x Makroer: wrio() og rdio() Eksempel: COM1 (0x3F8) får adressen: 0x x3F8*0x20 = 0x FA0

Datalogi 1F: Multiprogrammering[1] 17 Udsnit af lagerorganisering på Alphamaskinerne PAL-kode + opstartskode Symbolsk debugger Dataområde til debugger og kernestak Frit lager PCI sparse memory: –Delt lager mellem CPU og ydre enheder PCI sparse I/O: –kontrolregistre 0x x x x x x x85.FFFF.FFFF 1 MB 29 MB

Datalogi 1F: Multiprogrammering[1] 18 Systemarkitektur CPU cache lager I/O bro I/O styreenhed disk I/O styreenhed netkort I/O styreenhed skærm hukommelsesbus I/O bus afbrydelse

Datalogi 1F: Multiprogrammering[1] 19 Afbrydelser på Alpha’erne 33 afbrydelser i alt: –16 for ISA –17 for PCI Eksempler på ISA afbrydelser: 0 Timer 6 Diskette 1 Tastatur 7 Parallelport 3 COM212 Mus 4 COM114/15 Harddisk/CDROM

Datalogi 1F: Multiprogrammering[1] 20 Hvornår afbrydes ? En afbrydelse kan blive genereret af en ydre enhed på et vilkårligt tidspunkt MEN: Forskellige ydre enheder kan have forskellige tolerancetærskler med hensyn til hvor hurtigt en afbrydelse skal serviceres CPU’en kan have opgaver, der ikke må afbrydes

Datalogi 1F: Multiprogrammering[1] 21 Niveauer for afbrydelser 0normal tilstand 3Ydre enheder, lav prioritet 4Ydre enheder, høj prioritet 5ur 6strømafbrydelse 7Maskincheck (bruges ikke) Styres af OS med PAL_swpipl men også automatisk ved afbrydelser

Datalogi 1F: Multiprogrammering[1] 22 Tillad/bloker for afbrydelser Den enkelte ydre enhed kan sættes op til at afbryde eller ej Ydre enheder bliver ved med at afbryde indtil der kvitteres for afbrydelsen Når en afbrydelse modtages på niveau i sættes niveauet til i og sættes først ned når afbrydelsen er behandlet Afbrydelse tillades KUN hvis ydre enhed har højere niveau end det aktuelle CPU kan blokere for afbrydelser: –PAL_swpipl(7)

Datalogi 1F: Multiprogrammering[1] 23 Installation af afbrydelsesroutine PAL kaldet PAL_wrint a0 er adressen for routinen a1 er typen: 0ekstern afbrydelse 1aritmetisk fejl 3ugyldig ordre 5systemkald Eksempel: lda a0, ADDR lda a1, 0 call_pal PAL_wrent

Datalogi 1F: Multiprogrammering[1] 24 PAL håndtering af afbrydelse 1.Ved en afbrydelse hoppes til PAL koden på adresse 0x100 2.PAL koden undersøger om afbrydelsen har et tilstrækkeligt højt afbrydelsesniveau: 1.Hvis ikke, returneres uden videre 2.Ellers skiftes til kernetilstand (hvis nødvendigt), og de registre, som afbrydelseshåndteringen påvirker, gemmes på stakken

Datalogi 1F: Multiprogrammering[1] 25 Stakramme for afbrydelser register a2 register a1 register a0 global pointer gp programtæller pc statusregister ps

Datalogi 1F: Multiprogrammering[1] 26 Start af afbrydelsen ps registeret indeholder kernetilstanden –Bit 3 indikerer kernetilstand –Bit 0-2 indikerer afbrydelsesniveau gp indeholder kernens global pointer a2 indeholder afbrydelsestypen 1 periodisk 3 ekstern afbrydelse

Datalogi 1F: Multiprogrammering[1] 27 Afslutning af afbrydelsen Kvitter for afbrydelsen i den ydre enhed: –Skrivning til kontrolregister –Gælder ikke for uret (sker automatisk) Udfør kaldet: –call_pal PAL_rti

Datalogi 1F: Multiprogrammering[1] 28 Tegnudskrivning via afbrydelser main() { forbid(); // luk for afbrydelser wrio(com1Lcr, 0x87); // divisor latch …… // som forrige eksempel wrio(com1Ier, 0x02); // set TX empty enable wrent(ent_int, o); // set interrupt entry point p = line, finished = 0; permit(); // åbn for afbrydelser char c=*p++; wrio(com1Thr, c); // skriv 1. tegn while (!finished) ; // vent på at vi er færdige wrio(com1Ier, 0x00); // luk for afbrydelser fra // UART }

Datalogi 1F: Multiprogrammering[1] 29 Afbrydelsesroutinen extern ”C” void KInterruptHandler () { if ((rdio(com1Iir) & 6) == 2) { // kvittering if(!finished) wrio(com1Thr, *p++); // skriv // tegn if(!*p) finished = 1; }

Datalogi 1F: Multiprogrammering[1] 30 Vigtigste ydre enheder PC16550 UART (har vi set) Olicom OC-2173 ISA 10 Mbit/s Ethernetkort Dallas Semiconductor 1287 TOY/RTC (Time Of Year/Real Time Clock) –Holder styr på klokkeslættet –Genererer automatiske afbrydelser

Datalogi 1F: Multiprogrammering[1] 31 Systemkald PAL kaldet callsys Kan kun bruges fra brugertilstand, ikke kernetilstand (omvendt privilegeret) Opbygger en stak ramme magen til en afbrydelse

Datalogi 1F: Multiprogrammering[1] 32 Multiprogrammering Eksplicit ressourcedeling Overlappende læsning Implicit ressourcedeling

Datalogi 1F: Multiprogrammering[1] 33 Eksplicit ressourcedeling while(true) { ; }

Datalogi 1F: Multiprogrammering[1] 34 Transaktionssystem: liniebaseret indlæsning Terminal 1 Terminal 3 Terminal 2 Pladelager læs linie læs linie læs linie læs linie udfør trans- aktion udfør trans- aktion udfør trans- aktion

Datalogi 1F: Multiprogrammering[1] 35 Overlappende læsning while(true) { if ( ) { ; if ( ) ; } if ( ) { ; if ( ) ; } if ( ) { ; if ( ) ; }

Datalogi 1F: Multiprogrammering[1] 36 Overlappende læsning (2) Terminal 1 Terminal 3 Terminal 2 Pladelager læs tegn udfør trans- aktion læs tegn læs tegn læs tegn læs tegn læs tegn læs tegn læs tegn

Datalogi 1F: Multiprogrammering[1] 37 Overlap læsning med besvarelse while(true) { if (indlæs_1 && ) { ; if ( ) transaktion_1 = TRUE, indlæs_1 = FALSE; } if (transaktion_1 && ) { ; if ( || ) udskriv_1 = TRUE, transaktion_1 = FALSE; } if (udskriv_1 && ) { ; if ( ) indlæs_1 = TRUE, udskriv_1 = FALSE; } // det samme for terminal 2 og 3 }

Datalogi 1F: Multiprogrammering[1] 38 Implicit ressourcedeling Vi vil have multiprogrammer: proces 1 { while (TRUE) { ; } proces 2 { while (TRUE) { ; } proces 3 { while (TRUE) { ; }

Datalogi 1F: Multiprogrammering[1] 39 Multiprogrammeret transaktionssystem Proces 1 Proces 3 Proces 2 tegn klar CPU tegn læst tegn klar CPU tegn læst tegn klar CPU tegn læst Blokerende systemkald sætter proces til at vente, f.eks., fgetc(stdout).

Datalogi 1F: Multiprogrammering[1] 40 Opsummering Ydre enheder: –Synkronisering –aktiv venten –Afbrydelser –Hvordan sker det hele på Alpha’erne? Multiprogrammering: –Eksplicit versus implicit ressourcedeling

Datalogi 1F: Multiprogrammering[1] 41 Kilder Disse slides er baseret på KB4: Kapitel 1- 3, KB5: Kapitel 2, samt slides fra tidligere forelæsere på Dat 1F