

Teorie algoritmu
Ahoj.
Mám dotaz na teorii algoritmů.
Konkrétně mi jde o vlastnosti algoritmů a Operační systém.
Pro algoritmus platí řada snadno pochopitelných pravidel.
Například:
Je deterministický – Každý krok algoritmu musí být jednoznačně a přesně definován;
To je jasné.
Ale trochu jsem si vylámal zoubek na tvrzení:
Je konečný – Každý algoritmus musí skončit v konečném počtu kroků. Tento počet kroků může být libovolně velký (podle rozsahu a hodnot vstupních údajů), ale pro každý jednotlivý vstup musí být konečný. Postupy, které tuto podmínku nesplňují, se mohou nazývat výpočetní metody. Speciálním příkladem nekonečné výpočetní metody je reaktivní proces, který průběžně reaguje s okolním prostředím.
Trochu mi zamotal hlavu praktický příklad - Operační systém na serveru.
Ten běží 365 dní v roce a "nemusí dělat" nic. Takže mi na něm to tvrzení, že je konečný tak nějak nesedí.
Oni to vychytrale ošetřili tím dodatkem:
Speciálním příkladem nekonečné výpočetní metody je reaktivní proces, který průběžně reaguje s okolním prostředím.
V podstatě je to stav:
if (true)
{
// do something - zde může být algoritmus
}
Ale co je potom to to vně té slupky?
Na straně druhé je i operační systém program a tím by to nepochybně měl být i algoritmus. Ne?
Program není to samé co algoritmus.
Přesně. Operační systém je sada algoritmů, nejde o jeden algoritmus nebo proces.
Reaktivní proces je třeba ovladač vstupu - nic nedělá a jen čeká na vstup (klávesnice, myš). Jako reakci pak zavolá obsluhu.
Jojo, souhlas. Mezi algoritmus lze klidně zařadit i kuchařský recept nebo návod na demontáž a montáž motoru, atd.
A dále: Operační systém není program, je to souhrn mnoha různých programů, které umožňují uživateli ovládat počítač.
tohle souvisí s automatizací.
https://cs.wikipedia.org/wiki/Kone%C4%8Dn%C3%BD_au tomat
Nekonečný proces by musel fungovat tak, že by nebylo zřejmé, jak bude problém řešen, což v případě OS není pravda.
Pojem algoritmus souvisí spíš s Turingovým strojem než s konečným automatem.