<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://www.512.cz/skins/common/feed.css?301"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>https://www.512.cz/index.php?feed=atom&amp;target=82.100.44.204&amp;title=Speci%C3%A1ln%C3%AD%3AP%C5%99%C3%ADsp%C4%9Bvky%2F82.100.44.204</id>
		<title>FAV wiki - Příspěvky uživatele [cs]</title>
		<link rel="self" type="application/atom+xml" href="https://www.512.cz/index.php?feed=atom&amp;target=82.100.44.204&amp;title=Speci%C3%A1ln%C3%AD%3AP%C5%99%C3%ADsp%C4%9Bvky%2F82.100.44.204"/>
		<link rel="alternate" type="text/html" href="https://www.512.cz/index.php?title=Speci%C3%A1ln%C3%AD:P%C5%99%C3%ADsp%C4%9Bvky/82.100.44.204"/>
		<updated>2026-10-21T09:38:25Z</updated>
		<subtitle>Z FAV wiki</subtitle>
		<generator>MediaWiki 1.17.0</generator>

	<entry>
		<id>https://www.512.cz/index.php?title=Vyvol%C3%A1n%C3%AD_slu%C5%BEeb_OS,_zpracov%C3%A1n%C3%AD_p%C5%99eru%C5%A1en%C3%AD</id>
		<title>Vyvolání služeb OS, zpracování přerušení</title>
		<link rel="alternate" type="text/html" href="https://www.512.cz/index.php?title=Vyvol%C3%A1n%C3%AD_slu%C5%BEeb_OS,_zpracov%C3%A1n%C3%AD_p%C5%99eru%C5%A1en%C3%AD"/>
				<updated>2015-05-31T12:42:55Z</updated>
		
		<summary type="html">&lt;p&gt;82.100.44.204: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Většina moderních CPU: 2 řežimy:&lt;br /&gt;
* Privilegovaný - režim jádra, všechny instrukce jsou povoleny, v tomto běží pouze jádro OS&lt;br /&gt;
* Uživatelský - některé instrukce (I/O) jsou zakázány, v tomto běží ostatní programy&lt;br /&gt;
&lt;br /&gt;
Aby uživ. aplikace mohla provádět zakázané instrukce, musí požádat OS o jejich provedení následujícím způsobem (Vyvolání služby):&lt;br /&gt;
&lt;br /&gt;
* Aplikace si uloži parametry pro službu na předem určené místo (registry, zásobník,...)&lt;br /&gt;
* Zavolá metodu volání služby jádra (např. v C je to syscall( ))&lt;br /&gt;
* Ta podle parametrů zjistí jaká složba je požadována, která přepne CPU do režimu jádra, a vyvolá obsluhu&lt;br /&gt;
* Ta službu provede a při návratu do uživatelského programu přepne CPU zpět do uživatelského režimu&lt;br /&gt;
&lt;br /&gt;
[[Soubor:Vyvolani-sluzby.jpg]] &lt;br /&gt;
&lt;br /&gt;
Programovací jazyky skrývají volání funkcí jádra tak, aby vypadaly jako běžné knihovní funkce.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zpracování přerušení ==&lt;br /&gt;
&lt;br /&gt;
Přerušení je událost, která pokud nastane, je třeba ji v krátkém čase obsloužit. Je tedy přerušeno vykonávání instrukcí, provedena obsluha události a po té se pokračuje v předchozí činnosti. Provedení tohoto je v režimu jádra. &lt;br /&gt;
&lt;br /&gt;
Druhy:&lt;br /&gt;
* HW přerušení (vnější) - generuje jej I/O zařízení, asynchronně, například přijetí paketu, stisknutí klávesy,... Stará se o ně řadič přerušení (priority atd)&lt;br /&gt;
* Vnitřní přerušení - generuje proces, například dělení nulou, výpadek stránky, ...&lt;br /&gt;
* Softwarové - synchronní, generováno aplikací jako takovou, záměrně, volání služby OS je příkladem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://cs.wikipedia.org/wiki/P%C5%99eru%C5%A1en%C3%AD Přerušení na Wiki]&lt;br /&gt;
&lt;br /&gt;
'''Vektor přerušení''' - ukazatel, kde pro daný typ přerušení (a jeho číslo) začíná program pro jeho obsluhu.&lt;br /&gt;
&lt;br /&gt;
Obsluha:&lt;br /&gt;
* Přijde signalizace přerušení&lt;br /&gt;
* Je dokončena právě prováděná instrukce v CPU&lt;br /&gt;
* Adresa další instrukce je uložena na zásobník&lt;br /&gt;
* Do PC (Program Counter - ukazatel CPU na další instrukci) je nastavena instrukce, na kterou ukazuje odpovídající vektor přerušení)&lt;br /&gt;
* Přepnutí kontextu (Obsluha je samostatný proces)&lt;br /&gt;
* Obsluha uloží stav registrů a obecně stav CPU do zásobníku&lt;br /&gt;
* Provede obsluhu přerušení&lt;br /&gt;
* Provede (I)RET&lt;br /&gt;
* Plánovač opět přepne kontext podle dat v zásobníku a původní proces pokračuje v činnosti (kromě zpoždění tedy neví, že přerušení proběhlo, musí tedy naslouchat všem výstupům obsluh přerušení,  které jej zajímají)&lt;br /&gt;
&lt;br /&gt;
{{fav-kiv-bzinf}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:fav-kiv-bzinf]]&lt;/div&gt;</summary>
		<author><name>82.100.44.204</name></author>	</entry>

	</feed>