Operační systémy LS 2014/ přednáška 23. února 2015
Operační systémy LS 2014/ řídící, datová, adresní, šířka, rychlost ISA (Industry Standard Architecture, IBM, 1984), data 16 bitů adresa 24 bitů, 8 MHz => 5 MB/s, známá technická specifikace, vnášela omezení při komunikaci s periferiemi MCA (Microchanel, IBM, 1987), šířka 32 bitů, 10 MHz, má dvojnásobný počet adresních vodičů => 6x rychlejší než ISA, špatná marketingová strategie, není kompatibilní s ISA EISA (Compaq, 1986), 32 bitů, kompatibilní k ISA, 5x dražší Local Bus - zachovává ISA, lokální spojení procesoru a paměti, 50 MHz, 130 MB/s, omezení počtu periferií PCI (Peripherals Component Interconnect, IBM, 1992), 64 bitů, 132 MB/s, 84 pinů, bus mastering, sdílení IRQ, PCI-X 150 pinů (1.0, 2.0, 266 MHz, 2,1 GB/s, 533 MHz, 4,2 GB/s) AGP (Accelerated Graphics Port), pro graf. kartu 528 MB/s, 4x 108 pinů, 100 MHz, 8x – výkon 2GB/s USB sériová polyfunkční sběrnice, MB/s FireWire (50 MB/s), RS-485, I 2 C až 32 nízkorychlostních periferií Sběrnice počítače
Operační systémy LS 2014/ PCI-Express, PCIe (známá i jako 3GIO, PCI-E), náhrada PCI, PCI-X a AGP - Arapahoe, - původní návrh přinesla skupina AWG (Arapahoe Work Group), konečný standard z dílny Dell, IBM a HP - možnost „hot-plug“ (výměna za provozu) - existují verze 1, 2 a 3 (PCIe v x 500 MB/s jednosměrně, 4x, 8x a 16x (2 GB/s, 4 GB/s a 8 GB/s)) - není dost rychlá pro použití jako paměťová sběrnice - verze jsou kompatibilní PCI Express
Operační systémy LS 2014/ FSB (Front Side Bus) je fyzická obousměrná datová sběrnice, která přenáší veškeré informace mezi procesorem a severním můstkem -některé procesory mají L2 nebo L3 vyrovnávací paměti, které jsou k procesoru připojeny přes BSB. Tato sběrnice a vyrovnávací paměť se připojují rychleji než přístup do paměti přes FSB -šířka pásma FSB je dána šířkou sběrnice a kmitočtem (1600 MB/s) -čipset je spojovacím bodem pro všechny ostatní sběrnice v systému (PCI, AGP, paměť) - pomalá FSB může zpomalovat rychlý procesor (procesor čeká na data z paměti) - frekvence, se kterou procesor pracuje, je určena použitím násobičky kmitočtu FSB (550 MHz – CPU, 100 MHz – FSB, multiplier – 5,5x) - frekvence FSB bývá stovky MHz Sběrnice procesoru
Operační systémy LS 2014/2015 CPU Northbridge Southbridge IDE SATA USB Ethernet Audio CMOS Chipset Front Side Bus Memory Bus Memory Slots PCI Bus Cables and ports leading off-board Super I/O Graphics card slot High-speed graphics Bus AGP or PCIX Internal Bus Serial Port Parallel Port Floppy Disk Keyboard Mouse Low Pin Count Bus Flash ROM (BIOS) PCI Slots PCI Bus I/O controller hub) (memory controller hub) Clock Generator Onboard graphics controler
Operační systémy LS 2014/ většina procesorů podporuje nejméně dva režimy zpracování instrukcí, zpracování spojené s uživatelským programem (user mode), zpracování spojené s operačním systémem (system mode, control mode, kernel mode) - je potřeba oddělit manipulaci se systémovými daty a uživatelskými daty - oddělení není nezbytné, ale z hlediska bezpečnosti velice žádoucí - režim je indikován na procesoru typicky pomocí jednoho bitu Režimy práce procesoru
Operační systémy LS 2014/ procesor provádí více programů (procesů) „současně“ - pořadí provádění programů záleží na jejich prioritě, je modifikováno čekáním na nějakou událost (I/O operace) - po přerušení se nemusí pokračovat v programu, který se prováděl před přerušením - rychlejší přístup – dražší bit - větší kapacita – levnější bit - větší kapacita – pomalejší přístup Multiprogramování Paměťová hierarchie
Operační systémy LS 2014/2015 Michael J. Flynn (Stanford University,1966) třídí paralelní systémy z hlediska počtu toků instrukcí a počtu toků dat, příliš hrubé rozdělení, přesto rozšířené, rychlé přežívání, rozlišuje čtyři základní kategorie počítačových architektur: SISD (Single Instruction Single Data) jednoprocesorový počítač zpracovávající jeden tok dat, data v jedné paměti (von Neumann) SIMD (Single Instruction Multiple Data) počítač používající větší počet funkčních jednotek (procesorů), všechny procesory vykonávají současně stejnou operaci na různých datech, maticové počítače, vektorové počítače MISD (Multiple Instruction Single Data) hypotetická kombinace několika programů zpracovávajících jeden tok dat, takový princip se zatím nepoužívá a je někdy nesprávně zaměňován se systémem se zřetězeným zpracováním instrukcí (pipelining), u zřetězeného zpracování instrukcí je aktivní vždy pouze jeden program, kategorie počítačů, která není v praxi příliš běžná, posloupnost dat je přenášena k množině procesorů, lze sem zařadit některé speciální systémy, jako jsou systolická pole nebo neuronové sítě, implementováno zřídka MIMD (Multiple Instruction Multiple Data) obecný typ paralelního systému, který obsahuje jednotky již tak samostatné, že každá z nich plní samostatný program a přitom zpracovávají jiná data, nejčastější typ paralelizace, multiprocesorový systém, v němž je každý procesor řízen samostatným programem a pracuje nad svými daty, multiprocesorový systém – těsná vazba, distribuovaný systém – volně vázaný systém Flynnova klasifikace systémů
Operační systémy LS 2014/2015 PIC 8259A Přerušení (Interrupt) je schopnost procesoru přerušit právě vykonávaný program a začít vykonávat program jiný (obsluha přerušení), začalo se implementovat z důvodu obsluhy periferií (procesor nemusí čekat ve smyčce na pomalé zařízení), dnes je využito při přepínání procesů Přerušení - technickými prostředky (vnější), instrukcí INTR nemaskovatelná maskovatelná - programově (vnitřní) instrukcí INT n chybou při běhu programu - sled činností:uloží se FLAGS vynulují se IF, TF CS do zásobníku do CS obsah hodnoty přerušení IP do zásobníku (neprovedená instrukce) do IP obsah hodnoty přerušení - přerušení se uplatní po provedení instrukce - návrat instrukcí IRET
Operační systémy LS 2014/2015 IRQ0 - systémový časovačIRQ8 – hodiny reálného času IRQ1 - řadič klávesniceIRQ9 – available, NIC, SCSI IRQ2 - sekundární PICIRQ10 – available, NIC, SCSI IRQ3 - COM2, COM4IRQ11 – available, NIC, SCSI IRQ4 - COM1, COM3IRQ12 – myš, PS/2 IRQ5 - LPT2 (zvuková karta)IRQ13 – floating point unit IRQ6 - řadič disketIRQ14 – ATA (CD ROM, HD) IRQ7 - LPT1 (zvuková karta)IRQ15 - ATA Typ signálu přerušení, které lze maskovat (bit IF – Interrupt Enable Flag v příznakovém registru nastaven na 0), potom se přerušení generované signálem INTR neprovede IRQ Levels (Interrupt Request)
Operační systémy LS 2014/2015 N+1 T Processor Program counter Stack pointer General registers Y T-M Start Return T T-M Zásobník Přerušovací rutina Y Y+L N N+1 Uživatelský program Main memory Y+L+1 T-M Processor N+1 T Start Return T T-M Zásobník Přerušovací rutina Y Y+L N N+1 Uživatelský program Main memory Vyvolání přerušení po instrukci N Návrat z přerušení
Operační systémy LS 2014/2015 START HALT 1 2 i i+1 M... INTERRUPT HANDLERUSER PROGRAM FETCH NEXT INSTRUCTION EXECUTE INSTRUCTION CHECK FOR INTERRUPT INITIATE INTERRUPT HANDLER Interrupt disabled Interrupt enabled Instrukční cyklus s přerušením
Operační systémy LS 2014/2015 Sekvenční způsobVnořený způsob Je možné zavádět prioritní obsluhu přerušení Po dobu přerušení je zákaz jiného Obsluha přerušení
Operační systémy LS 2014/2015 t=0 t=10 t=15 t=25 t=35 t=40 Printer interrupt service routine User program Comunication interrupt service routine Disk interrupt service routine Interrupt occurs = 10Interrupt occurs = 15 Interrupt occurs = 20 Časování při vícenásobném přerušení
Operační systémy LS 2014/2015 Idea Algorithm Source Program Binary Program Status Stack Data Files Other Resources Execution Engine Process Vytváření programu
Operační systémy LS 2014/2015 Algoritmus -determinovanost -rezultativnost -hromadnost -efektivnost - analýza - editace - překlad - sestavení - spuštění Vytváření programu
Operační systémy LS 2014/2015 AA01 SS:0A1A 11AA 3C00 0A18 0A16 0A14 0A12 Vrchol zásobníku SS:0A14 - struktura LIFO v operační paměti - instrukce PUSH (vložení), POP (výběr) - výběr řídí registr SP (Stack Pointer) - kapacita zásobníku na programátorovi - používá INT, přerušovací systém, volání podprogramu Dno zásobníku SS:0A1A Zásobník
Operační systémy LS 2014/2015 Free In use Stack pointer Stack limit Stack base Blok rezervovaný pro zásobník - pouze jeden element může být dosažen, jedná se o poslední vkládaný záznam – vrchol zásobníku - parametry zásobníku (počáteční adresa, velikost, limit,...) jsou variabilní - Stack Pointer – obsahuje sdresu vrcholu zásobníku, adresa je inkrementována nebo dekrementována operacemi PUSH a POP - Stack Base – obsahuje počátek zásobníku ve vyhrazené oblasti - Stack Limit – obsahuje adresu povoleného vrcholu zásobníku, každá operace PUSH za touto hodnotou vyvolá chybové hlášení Typická organizace zásobníku
Operační systémy LS 2014/2015 x2 y2 y1 Return adress Previous frame pointer x2 x1 Return adress Previous frame pointer x1 Return adress Previous frame pointer Top of stack pointer Top of stack pointer Current frame pointer Current frame pointer P: Q: Růst zásobníku při dvou procedurách aktivní proces P proces P zavolal proces Q
Operační systémy LS 2014/2015 DMA - Direct Memory Access, některá zařízení mají možnost přistupovat k paměťovým přenosům dat bez účasti procesoru, při přenosu mezi pamětí a zařízením by byla velká režie, u blokových přenosů se nepřizpůsobuje rychlost – pouze u paměti, jedna adresová sběrnice – nelze použít adresaci dvou míst současně, specializovaný obvod – řadič DMA, jednoúčelové zařízení s 8 kanály u současných počítačů Direct Memory Access
Operační systémy LS 2014/2015 CALL Proc1 CALL Proc2 RETURN Main program Procedura Proc1 Procedura Proc Provádění vnořených procedur