Linux
- Linux má 27 souborových systémů. Nejznámější z jsou: Ext2, Ext3, JFS, XFS, ReiserFS, …, SWAP
- pro zpětnou kompatibilitu se hodí Ext3
- na databáze se hodí ReiserFS- může mít v jednom adresáři až několik tisíc souborů
Ext2
Boot
SuperBlok
Tabulka
I-node
Bitmapa
Data
Tabulka I-node
Bitmapa
SuperBlok
…
- superblok- říká kde jsou data
- je v něm uložena struktura disku
- tabulka I-node- bývá v ní 32k I-nodů z toho 128B je popis souboru (typ souboru, vlastník, skupina, práva, data poslední změna a posledního přístupu, link)- je tam vše o souboru kromě názvu souboru
- data- bývá v nich 64k clusterů (1cluster=4kB)→256MB
- bitmapa- ukazuje které clustery jsou obsazeny a které ne
- hledá se pomocí ní volné místo na disku
rozdělení disku se pořád opakuje
Tabulka I-node
- má 128B
4KB
4KB
4KB
4KB
…
4KB
4KB
4KB
4KB
Cluster 1
Cluster 2
Cluster 3
Cluster 4
…
Cluster 10
Cluster 11- ukazuje na další tabulku kde se dá adresovat 1024x4kB=4MB
Cluster 12- ukazuje na další tabulku, která ukazuje na další tabulku a ta ukazuje na
data a dá se adresovat až 1024x1024x4kb=4GB
Cluster 13- ukazuje na další tabulku, ta ukazuje na další a ta na další. Takto se dá
adresovat 1024x1024x1024x4kB=4TB
SOUBOROVÝ SYTÉM – ROOT
- Kořenový svazek - root by obecně měl být malý, protože obsahuje velmi kritické soubory. U malého souborového systému, který se mění jenom zřídka, je menší pravděpodobnost poškození. Poškození souborového systému - “root“ většinou znamená, že operační systém na tomto svazku nebude možné zavést. Tento problém lze řešit pouze pomocí speciálních opatření (např. zavedením systému z diskety), a to by chtěl riskovat asi málokterý správce. Obecně by kořenový adresář systémového svazku neměl obsahovat žádné soubory, snad kromě standardního obrazu systému. Ten se obvykle jmenuje /vmlinuz. Všechny ostatní soubory by měly být uloženy v podadresářích kořenového adresáře, obvykle tímto způsobem:
/bin Příkazy potřebné pro zavedení systému a pro práci běžných uživatelů po jeho zavedení
/sbin Stejné jako u adresáře /bin. Příkazy v tomto podadresáři ale nejsou určeny běžným uživatelům, i když je též mohou použít (je-li to nutné nebo možné)
/etc Konfigurační soubory specifické pro daný počítač
/root Domovský adresář superuživatele
/lib Sdílené knihovny pro programy v kořenovém souborovém systému
/lib/modules Zaváděcí moduly jádra systému - zvláště ty, které jsou potřeba pro zavedení systému při zotavení po neočekávaných událostech (např. síťové ovladače a ovladače pro souborový systém)
/dev Speciální soubory
/tmp Dočasné soubory. Programy, které se spouští až po zavedení systému, by správně měly používat místo adresáře /tmp adresář /var/tmp, protože je velmi pravděpodobné, že leží na větším disku.
/boot Soubory, jež používá zavaděč operačního systému (angl. bootstrap loader), např. LILO. Je dobré mít v tomto podadresáři uložené obrazy jádra (místo toho, aby se ukládaly přímo v kořenovém adresáři). V případě, že jich máte víc, může obsah adresáře /boot značně narůst. V tom případě bude lepší mít jej v samostatném souborovém systému. Tím setaké zajistí, že obrazy jádra budou uloženy na prvních 1024 cylindrech disku IDE
/mnt Přípojné místo pro dočasná připojení dalších systémů souborů správcem systému. Nepředpokládá se, že by tento adresář využívaly pro automatická připojení souborových systémů programy. Adresář /mnt může být rozdělen na podadresáře (např. /mnt/dosa pro disketovou mechaniku používanou v souborovém systému MS.DOS, /mnt/exta pro tutéž mechaniku využívanou v souborovém systému ext2 a podobně).
/proc, /usr, /var, /home Přípojná místa pro další souborové systémy
Adresář /etc
- Adresář /etc obsahuje mnoho souborů. Některé z nich jsou popsány v dalším textu. Pokud jde o ostatní, měli byste nejdřív zjistit, ke kterému programu patří, a pak si přečíst manuálové stránky k tomuto programu. V adresáři /etc je uloženo také hodně síťových konfiguračních souborů.
/etc/passwd Databáze uživatelů systému s položkami, v nichž je uloženo uživatelské jméno i skutečné jméno uživatele, domovský adresář, šifrované heslo a některé další informace.
/etc/group Soubor podobný souboru /etc/passwd, ale místo uživatelů popisuje pracovní skupiny.
/etc/inittab Konfigurační soubor procesu init.
/etc/issue Soubor obsahuje výstup programu getty, který se zobrazí před výzvou pro přihlášení uživatele. Obvykle obsahuje stručný popis systému nebo uvítací hlášku. Obsah určuje správce systému.
/etc/shadow Soubor tzv. „stínových“ přístupových hesel (shadow password) uživatelů v systémech, které mají nainstalovanou podporu systému stínových hesel. Kódovaná stínová hesla jsou z bezpečnostních důvodů přeneseny ze souboru /etc/passwd do souboru /etc/shadow, který může číst pouze superuživatel. Snižuje se tak pravděpodobnost odhalení některého z přístupových hesel při průniku do systému.
/etc/shells Soubor, jenž uvádí seznam důvěryhodných interpretů příkazů. Příkaz chsh umožňuje uživatelům změnit shell spuštěný při přihlášení, a to pouze na některý z interpretů uvedený v tomto souboru. Proces ftpd, jenž běží na hostitelském počítači a poskytuje služby FTP pro klientské počítače, rovněž kontroluje, zda je uživatelův příkazový interpret uveden v tomto souboru a nedovolí připojit se klientům, jejichž shell v tomto seznamu uveden není.
Adresář /dev
- Adresář /dev obsahuje speciální soubory pro všechna zařízení. Speciální soubory jsou pojmenované podle určitých konvencí a vytváří se v průběhu instalace operačního systému, v běžném provozu pak skriptem /dev/MAKEDEV. Podobný je skript /dev/MAKEDEV.local. Ten upravuje a používá správce systému, když vytváří čistě lokální speciální soubory a linky. Lokální speciální soubory jsou ty, které nejsou vytvořené standardním postupem pomocí skriptu MAKEDEV, typicky například speciální soubory pro některé nestandardní ovladače zařízení.
Příručka správce opera
Souborový systém /usr
- Souborový systém /usr je často dost velký, protože jsou v něm instalované všechny programy. Všechny soubory v systému /usr jsou obvykle instalované přímo z distribuce systému Linux. Všechny další lokálně instalované programy se ukládají do adresáře /usr/local. To umožňuje správci systému instalovat vyšší verze Linuxu z nové verze distribuce nebo i úplně jiné distribuce operačního systému bez toho, že by bylo potřeba současně instalovat všechny programy znovu. Některé z podadresářů adresáře /usr jsou popsané níže, ty méně významné neuvádíme. Více informací přináší popis standardu FSSTND.
/usr/bin Zde se nachází téměř všechny uživatelské příkazy. Některé další příkazy jsou uložené v adresáři /bin nebo /usr/local/bin.
/usr/sbin Obsahuje ty příkazy pro správu systému, které nejsou potřeba přímo v souborovém systému -“root“ (zde je například uložená převážná většina serverových programů).
/usr/man, /usr/info, /usr/doc Manuálové stránky, informační dokumenty o projektu GNU, případně různé jiné soubory s dokumentací.
/usr/lib Datové soubory pro programy a subsystémy, které se nemění. Jsou zde rovněž uloženy některé globální konfigurační soubory. Jméno lib je odvozeno od anglického slova „library“ (knihovna). Původně totiž byly v adresáři /usr/lib uloženy knihovny podprogramů.
/usr/local Místo pro lokálně instalovaný software a další soubory.
Souborový systém /var
- Systém /var obsahuje data, která se při běžném provozu systému mění. Soubory jsou specifické pro každý systém, a proto se data mezi jinými počítači v síti nesdílí.
Souborový systém /proc
- Systém souborů /proc je vlastně imaginárním souborovým systémem. Ve skutečnosti na disku neexistuje. Místo toho jej v paměti vytváří jádro systému. Ze systému souborů /proc lze získávat různé aktuální informace o systému. Některé z významnějších souborů a adresářů popisujeme níže.
/proc/net Informace o stavu síťových protokolů
PŘÍSTUPOVÁ PRÁVA
- Každý soubor má přístupová práva (privilegia). Jedná se o mechanismus, jenž určuje, kdo může k danému souboru přistupovat, kdo může spouštět dané programy a podobně. Každé z přístupových práv může být odděleně přiřazeno vlastníku souboru, skupině nebo všem uživatelům operačního systému.
- dělení přístupových práv:- read (číst)- uživatel, skupina nebo ostatní mohou vypisovat seznam souborů v adresáři
- write (zapisovat)- uživatel, skupina nebo ostatní mohou přidávat soubory do adresáře nebo rušit soubory
- execute (spouštění)- uživatel může zpřístupňovat soubory v adresáři i v jeho podadresářích
- Typy uživatelů:- vlastník souboru- Tím je osoba, která má právo v souvislosti s tímto souborem používat příkaz chmod
- skupina (users)- Většina souborů v systému by měla mít přiřazen atribut „users“, a tak by měla být přístupna každému normálnímu uživateli
- ostatní (other)- osoby, které nejsou ani vlastníky žádného souboru, ani členové žádné skupiny
chmod [-Rfv] mód soubor1 soubor2 ... souborN
- Příkaz umožňující změnit přístupová práva se nazývá chmod (change mode)
- chmod u-r filename- odebere právo číst, parametr u-r se interpretuje jako „user minus read“
- chmod u+r filename- přídá právo na čtení
- Při používání příkazu chmod se specifikuje, kdo má k danému souboru přístupová práva (uživatel, skupina, ostatní nebo všichni). Dále se specifikují atributy, které definují, co se s daným souborem může dělat. Znaménko plus indikuje udělení daného práva, znaménko mínus popření. Pomocí znaménka rovná se (=) se specifikují přesná přístupová práva. Přípustná přístupová práva jsou read (čtení), write (zápis) a execute (spouštění).
- Pokud se použije v příkazu chmod volba R, pak se změna přístupových práv týká všech souborů v adresáři a všech podadresářů. Jestliže se použije volba f, pak se příkaz chmod pokusí změnit přístupová práva práva i v případě, že uživatel není vlastníkem daného souboru. Zadá-li se volba v, pak bude příkaz chmod podrobně vypisovat informace o všech krocích, které realizuje.
- Typické nastavení přístupových práv je: pro vlastníka právo číst soubor a zapisovat do souboru, pro skupinu právo číst soubor a pro ostatní jsou všechna práva potlačena.
2) POST, DMA, PIO, řadič přerušení
POST (Power On-Self Test)
- test, který ověřuje provozuschopnost celého systému
- spouští se při startu počítače
- druhy startů- studený start- zapnutím zdrojů nebo stisknutím tlačítka RESET
- teplý start- při stisknutí tlačítek Ctrl+Alt+Del
- Test se provádí ve 3 částech:
1) Testují se všechny registry procesoru + test instrukcí, test systémového řadiče, řadič paměti, inicializování řadiče přerušení, inicializace časovače, test ROM BIOSu a test prvních 64kb paměti (tato část se používá na ukládání výsledků testu)
2) BIOS předá řízení grafické kartě (která otestuje sama sebe) → test do 1MB paměti → test paměti nad 1MB (testuje do doby než najde chybu) → test DMA → test do chráněného režimu a zpět → test klávesnice, disků, portů a CO-PROCESORU
3) test zavádění OS → přepne na interport (zavaděč systému)
- výsledky testu se ukládají do OP
MBR
- první sektor na disku, zobrazí nastavení CMOS,kontrola čísel přerušení u jednotlivých zařízení
POST (Power-on self test)
Slouží k testování provozuschopnosti celého systému. Nejdříve se zapne zdroj, otestuje se kód, který zjistí, co se vyvolalo reset. Tento B je na adresa OFH v CMOS. Význam tohoto B je:
• 0 start po Ctrl-Alt-Del (teplý start)
• 1 start při konfiguraci paměti
• 2 start po testu paměti
• 3 chyba paměti
• 4 před zavedením systému
• 5 při skoku 0:0476H
• 6,7,8 po návratu z chráněného režimu
• 9 při přesunu paměti v chráněném režimu
• 10 při skoku (FAR JUMP) na 0:0467H
Zároveň probíhá test hodnoty na adr. 0:0472H. Po stisknutí Ctrl-Alt-Del je hodnota tohoto bytu 1234H, jinak je náhodná. Pro 1234H se provede teplý start, jinak studený.
POST postupuje takto:
Pak se testuje celý systém. Začíná se testování procesoru, ROM BIOSu a prvních 64 kB paměti, která se pak používá jako pracovní oblast. Poté se testuje systémový řadič, řadič paměti a řadič I/O obvodů. Poté se testují ostatní periferní obvody a deska grafického adaptéru. Nejsou zde zobrazovány chybová hlášení. Chyby jsou ohlašovány tzv. beep kódem. To znamená, že chyby jsou ohlašovány akusticky (pípnutím). Následuje hlášení o verzi BIOSu a autorských právech. Pak se testuje a zjišťuje velikost paměti, která se zobrazuje v hlášení. Potom se testují jednotlivé periférie připojené k PC v pořadí: klávesnice, sériové porty, paralelní porty, řadiče disketové mechaniky a HDD. Pokud se najde chyby, tak se zobrazí v chybovém hlášení. Výsledky se uloží do CMOS. Pak se testuje přerušení a zavádí OS.
Výsledek testu zapisuje na porty 060H a 080H, které také ohlásí akusticky. (viz cmos.doc).
Při testování využívá údaje z CMOS.
Pokud byla stisknuta klávesa pro Setup je po ukončení POSTu SETUP spuštěn.
Inicializace periferií spočívá jednak nastavením tabulky přerušení, jednak zápisem do datové oblasti BIOSu hodnot io adres, přerušení, atd. Po instaslaci BIOSu se instaluje rozšířený BIOS.
Posledním krokem inicializace systému je spuštění rutiny přerušení 19H, která je označována jako zavaděč systému. Tento zavaděč umožní přístup k nultému sektoru disku - boot sektoru, který zavede zaváděcí program systému na adresu 7C00H a předá řízení na tuto adresu.
DMA
- HW procesor, který slouží pro přímý přenos dat bez účasti procesoru a urychluje přesun do paměti
- umožňuje přímý přístup do pamětí blokových zařízení (posílají data po větší šířce než procesor např. Floppy, HDD) Má-li dojít k přenosu, nejdříve se nastaví kanál. Nastaví se adresy odkud kam se bude přenášet, co se bude přenášet, počáteční adresu přenosu. Poté DMA oznámí P, že dojde k přenosu a pošle mu žádost o HOLD (zastavení činnosti). P dokončí svou činnost a odpojí se. DMA začne obsluhovat sběrnici a periferie. Je zde čítač počtu Bytů, který se automaticky inkrementuje při každém taktu. Po naplnění tohoto čítače se ukončí přenos. DMA se odpojí od sběrnice a periférií a P začne opět ovládat sběrnici a periférie.
DMA neboli direct memory access, čili přímý přístup do paměti je zajišťován hardwareovým řadičem.Tím je přístup do paměti rychlejší. Komunikace řadiče s jedním periferním zařízením označujeme jako kanál.
Před přenosem se musí procesorem v .řadiči nastavit číslo kanálu, adresy, délka bloku dat a směr. Po nastavení je povolena činnost DMA a řadič je spuštěn až po interuptu od periferie, udávající připravenost zařízení k přenosu. Pak DMA převezme od procesoru řízení komunikace, které předá zpět po ukončení přenosu.
Funkci DMA někdy přebírají specializované procesory pro I/O nazývané PIO.
- kanál- komunikace řadiče s jedním periferním zařízením
- jeden kanál vyhrazen na refresh
- kanály můžou být 8mi nebo16ti bytové
- funkci DMA někdy přebírá PIO
- DMA přenosy jsou nevýhodné pro multiprocesorové počítače, kdy neúměrně zdržují chod programu
- Průběh při přenášení dat:
1) musí se naprogramovat- číslo kanálu, adresy, délka bloku dat a směr
2) DMA čeká na příkaz až se bude moci spustit
3) do DMA přijde přerušení IRQ → DMA přikáže procesoru uzavřít sběrnice → proběhne výměna dat mezi ZAŘÍZENÍM a OP a výměna adres mezi DMA a OP → po provedení operace nebo při chybě se otevře sběrnice a procesor běží dál
Základní rozdělení DMA je:
- single-word DMA (16ti bitový), který se dnes již nepoužívá. Má režimy:
DMA 960ns 2,1MB/s
DMA 1 480ns 4,2MB/s
DMA 2 240ns 8,3MB/s
- multi-word DMA
0 4,2MB/s
1 13,3MB/s
2 16,6MB/s
DMA/16 16,6MB/s
DMA/33 33,6MB/s – UltraDMA33
DMA/66 66,6MB/s
- Pro přenos UltraDMA je zapotřebí speciální 80ti žilový plochý kabel, který se zapojuje na standardní 40ti kolíkové konektory. Zbývající vodiče kabelu jsou stínění.
- 32bit EIDE- podporuje 4 disky DMA 22MB/s
- Ultra DMA/33- rozhraní se nazývá ULTRA ATA 33
- přenáší data rychlostí 33MB/s v dávkovém (burst) režimu
- FAST-ATA- od Segate je zpětně plně kompatibilní s IDE umožňuje připojení pouze 2. Pracuje ve třech režimech; v PIO módu 3, ve víceslovném módu 1 dosahuje se sběrnicí EISA rychlosti 13.3 MHz, ve vícenásobném blokovém přenosu dat přes local bus.Připojení je provedeno 40ti žilovým kabelem. Je levný ale nenahrazuje obecně SCSI. Pokud není automaticky nastavován BIOSem, je nutné v SETUPu nastavit rychlosti.
- Ultra-ATA/66- Někdy se též nazývají Ultra DMA/66 nebo Fast ATA-2.
- rychlost přenosu 66MB/s
- přenos na obě hrany
- zabezpečení integrity dat pomocí CRC
- 80ti žilový kabel, který má navíc 40 stínících vodičů
- potřebuje podporu čipsetu, nebo speciální řadič, dále BIOS (UltraDMA mode 4), OS
- zajištěna kompatibilita s UltraATA/33. Proto i disky jsou dodávány s vypnutým ATA/66. Zapínání pomocí programu WDATA-66.
DMA - HW procesor (P je SW) specializovaný na určité funkce. Slouží k přenosu mezi blokovými zařízeními (např. mezi harddiskem a pamětí atd.). Má-li dojít k přenosu, nejdříve se nastaví kanál. Nastaví se adresy odkud kam se bude přenášet, co se bude přenášet, počáteční adresu přenosu. Poté DMA oznámí P, že dojde k přenosu a pošle mu žádost o HOLD (zastavení činnosti). P dokončí svou činnost a odpojí se. DMA začne obsluhovat sběrnici a periferie. Je zde čítač počtu Bytů, který se automaticky inkrementuje při každém taktu. Po naplnění tohoto čítače se ukončí přenos. DMA se odpojí od sběrnice a periférií a P začne opět ovládat sběrnici a periférie.
FunkciDMA někdy přebírají specializované procesory pro I/O nazývané PIO.
Kanály 0 až 3 jsou 8mi bitové,
4 až 7 jsou 16ti bitové
Kanál Použití
0 DRAM refresh
1 NC doporučeno pro zvukový kanál
2 floppy disk
3,5-7 nevyužito
4 druhý DMA řadič
Do příchodu DMA byl režim PIO jediný způsob komunikace na tomto rozhraní.
PIO režim je rozdělen do několika módů dle přenosové rychlosti. Všechny režimy jsou z hlediska elektrických signálů stejné. U rychlejších módů dochází pouze k redukci doby mezi jednotlivými cykly a tím i zvýšení přenosové rychlosti. Všechny ATA zařízení podporují základní - nejpomalejší mód 0. V tomto módu CPU přistupuje k registrům na zařízení, ve kterých jsou uloženy informace potřebné pro CPU k určení optimální rychlosti a nastavení ATA řadiče.
Nastavení správného PIO režimu a následný přenos dat je pro CPU velmi náročný. Z tohoto důvodu byl později vytvořen DMA a UDMA režim. Stále má však PIO režim své využití. Ať už se jedná o jednoduché digitální rozhraní, kde není třeba dosahovat vysokých přenosových rychlostí nebo třeba některé integrované obvody. Lze ho také využít například u FPGA (Field-programmable gate array) bez znatelné ztráty výkonu.
Další dva módy byly definovány u specifikace CompactFlash 2.0. Jsou to módy PIO 5 a PIO 6, které se užívaly právě jen u CompactFlash zařízení (ty dnes však už podporují i výše zmíněné Ultra DMA).
PIO
je režim přenosů dat po sběrnici v počítači mezi periferiemi (CD-ROM, pevný disk, síťová karta apod.) a operační pamětí. Data jsou přenášena za účasti procesoru. Procesor je tedy plně zaměstnán přenosem a nemůže vykonávat jinou práci.
- distribuované DMA
- programovatelné IO
- PIO musí mít každé zařízení a když μP povolí přerušení, tak
se zařízení musí domluvit, které bude vysílat
- Při PIO je možný přenos celých 16ti bitových slov. Řízení přenosu je tzv. tiky sběrnice IDE (ATA). Tyto tiky udávají takt přenosu dat. V současné době existují pro ATA (IDE) režimy 0 až 2, EIDE (ATA-2) režimy 3 a 4.
- Všechny režimy přenáší data pouze na náběžnou hranu. Různé režimy PIO se liší především trváním přenosového cyklu. Režim:
0 potřebuje 600 ns 3,3 MB/s
1 383 ns 5,2 MB/s
2 240 ns 8,3 MB/s
3 180 ns 11,1 MB/s
4 120 ns 16,6 MB/s
- ATA-2- vyžaduje ovládání rychlosti (zpomalení) signálem IORDY. Jeho nepřítomnost může způsobit chybovost přenosu nebo ztrátu dat.
- Přenos Buffer- počítač je u burstPIO 16.6MB/s.
- Fast ATA- podporuje PIO 4 a DMA mode 2 při rychlosti 16,6MB/s.
- FC-AL- Fiber Channel Arbitrated Loop je průmyslový otevřený standard sériového interface pro náročné aplikace. Umožňuje připojit disky do velmi velkých SCSI systémů a dynamickým přenosem PIO dosahuje až 100MB/s, při dvojité smyčce je přenos až 200MB/s (FC-AL2) a lze připojit až 126 zařízení na vzdálenost 30m nebo při optice až 200m.
PIO jedná se o metodu přímé výměny dat přes registr nebo adresu portu přes IORDY. Při PIO je možný přenos celých 16ti bitových slov. Řízení přenosu je tzv. tiky sběrnice IDE. Tyto tiky udávají takt přenosu dat. Všechny režimy přenáší data pouze na náběžnou hranu. Nastavení správného PIO režimu a následný přenos dat je pro CPU velmi náročný. Z tohoto důvodu byl později vytvořen DMA a UDMA režim.
ŘADIČE PŘERUŠENÍ
neobsahuje přerušení! Rozhoduje pouze o důležitosti přerušení, které pak odešle do P i s číslem přerušení a P si jej pak najde v tabulce přerušení.
- jsou vyhrazeny pro správu asynchronních událostí
- musí umět zpracovat přerušení od zařízení a rozhoduje zda tento požadavek pustí k procesoru
- žádá procesor o přerušení a zadává prioritu zařízení
- 2 typy přerušení:- maskované (MI)
- nemaskované (NMI)- nedá se programově zakázat
- řadič požádá µP, který ukončí instrukci → µP požádá ŘADIČ o číslo přerušení → µP uloží do paměti stav před přerušením → µP provede všechny operace → µP načte informace před přerušením a pokračuje v práci
- přerušení je celkem 16 (0-15)
- vektor přerušení- adresa na které je přerušení
15*4 60 61 62 63
…
2*4 8 9 10 11
1*4 4 5 6 7
0*4 0 1 2 3
- systém přerušení- umožňuje přerušit obsluhu přerušení jiným přerušením
INTERUPT – Přerušení je využíváno některými periferními zařízeními pro přerušení činnosti CPU. Zařízení pošle IC žádost o přerušení. Řadič přerušení pošle procesoru požadavek na přerušení s nejvyšší prioritou. Každé zařízení má svoje IRQ (vyžaduje přerušení). V okamžiku kdy je přerušení vyvoláno, přeruší svou činnost a uloží následující instrukci do staku. CPU odskočí na vektor přerušení (každé přerušení má svoje číslo a v OP je uložena jejich tabulka). Po zpracování přerušení se vrátí ke své původní činnosti.
Řadič přerušení
Každý mikroprocesor má zabudovaný přerušovací systém, který umožňuje přerušit probíhající program a uskutečnit tak rychlou reakci mikropočítače na nějaký podnět přicházející z jeho okolí.
Přerušení (interruption) programu nastane, přijme-li mikroprocesor signál na vstupu přerušení (INT). Tento signál přichází zpravidla od nějakého periferního zařízení a po jeho přijetí mikroprocesor dokončí rozpracovanou instrukci, přeruší běžící program a přejde na podprogram obsluhy přerušení (obslouží přerušení - např. přečte slabiku dat z periferního zařízení). Po jeho skončení mikroprocesor pokračuje v provádění přerušeného programu.
Mikroprocesor nemusí být tedy zatěžován neustálým testováním stavu periferního zařízení. Pokud periferní zařízení vyžaduje komunikaci s mikroprocesorem, vyšle k němu žádost o přerušení, tím si vyžádá okamžitou pozornost mikroprocesoru a obsloužení svého požadavku. Přerušení lze programově zakázat, mikroprocesor pak nebude na žádost o přerušení reagovat (mikroprocesor však mívá ještě druhý vstup přerušení, tzv. nemaskovatelné přerušení, které nelze zakázat).
Průběh přerušení: Vnější zařízení vyvolá požadavek o přerušení, I/O rozhraní vyšle signál IRQ na řadič přerušení (na port IRQ 2), Řadič přerušení vygeneruje signál INTR – „někdo“ žádá o přerušení a vyšle ho k procesoru, Procesor se na základě maskování rozhodne obsloužit přerušení a signálem INTA se zeptá, jaké zařízení žádá o přerušení, Řadič přerušení identifikuje zařízení, které žádá o přerušení a odešle číslo typu přerušení k procesoru, Procesor uloží stavové informace o právě zpracovávaném programu do zásobníku, Podle čísla typu příchozího přerušení nalezne ve vektoru přerušení adresu příslušného obslužného podprogramu, Vyhledá obslužný podprogram obsluhy přerušení v paměti a vykoná ho, Po provedení obslužného programu opět obnoví uložené stavové informace ze zásobníku a přerušený program pokračuje dál.
Žádné komentáře:
Okomentovat