1. Koncepce
Program je přísně uspořádaný soubor instrukcí v čase. Využívá výhradně všechny prostředky v systému, včetně CPU, paměti, periferií, softwaru atd., a žádná jiná konkurence s ním nekonkuruje a nesdílí ho. Proto v jednoprocesorovém počítačovém systému běží po určitou dobu pouze jeden program. Program monopolizuje všechny zdroje počítače a není ovlivněn vnějšími vlivy.
V počátcích počítačů se multitasking nazýval multiprogramování. Víceprogramový znamená, že CPU čte více programů najednou a ukládá je do paměti a spouští první program, dokud neprovede IO operaci. Protože operace IO je pomalá, CPU musí čekat. Chcete-li zlepšit využití procesoru, spusťte v tuto chvíli druhý program. To znamená, že podmínkou pro provedení n+1. programu je, že n-tý program provádí IO operaci nebo již byl spuštěn. Tímto způsobem je časové rozložení každého programu nerovnoměrné. Je možné, že první program běží několik hodin bez IO operace, takže druhý program neběží. Na začátku byla tato situace přijatelná. Lidé určí spuštění více programů najednou a po několika hodinách nebo dni mohou vidět výsledky nebo si vzít vytištěné soubory. Lidé nepotřebují získávat aktuální stav každého programu v reálném čase, ale starají se pouze o běžící výsledky.
Multitasking označuje schopnost počítače spouštět více programů současně. Obecnou metodou multitaskingu je spuštění části kódu prvního programu a uložení pracovního prostředí; pak spusťte část kódu druhého programu, abyste ušetřili prostředí; ... obnovit pracovní prostředí prvního programu a spustit další program prvního programu. Kousek kódu...moderní multitasking, časové rozložení každého programu je relativně rovnoměrné.
Základním účelem zavedení technologie multiprogramování je zvýšit míru využití CPU a plně využít paralelismus komponent počítačového systému. Všechny moderní počítačové systémy využívají technologii multiprogramování. Vznik multiprogramování urychlil zrod současného operačního systému.
2. Vlastnosti
1) Vícekanálový: to znamená, že v paměti počítače je uloženo několik nezávislých programů současně.
2) Makroskopicky paralelní: Několik programů, které vstupují do systému současně, jsou všechny v procesu, to znamená, že začaly své příslušné operace jedna po druhé, ale nebyly dokončeny.
3) Mikroskopicky sériový: Z mikroskopického hlediska více programů v paměti zabírá CPU střídavě nebo sdílí čas.
3. Výhody
Zlepšete využití CPU. V prostředí s více programy sdílí počítačové prostředky více programů. Když program čeká na I/O operaci, CPU může provádět jiné programy, což výrazně zlepšuje využití CPU.
Zlepšit využití zařízení. V prostředí s více programy sdílí více programů systémové vybavení, což výrazně zlepšuje využití systémového vybavení.
Zlepšete propustnost systému. V prostředí s více programy se zkracuje čekací doba programu a zlepšuje se propustnost systému.
4. Plánování
Víceprogramové zpracování může načíst do paměti několik programů současně. Když program nemůže pracovat kvůli čekání na externí přenos, centrální procesorová jednotka může okamžitě spustit jiný program. Pokud druhý program nemůže být z nějakého důvodu proveden, centrální procesorová jednotka provede třetí program a tak dále, dokud není externí přenos prvního programu dokončen před provedením prvního programu. Rozumné umístění více programů může zlepšit využití zdrojů a zlepšit vstupní a výstupní schopnosti systému. Víceprogramové zpracování se provádí pseudoparalelním způsobem. Od určitého časového intervalu byl každý program proveden, ale provádění nebylo dokončeno. Od určitého okamžiku je v centrální procesorové jednotce vykonáván pouze jeden program a každý program zabírá časový úsek a centrální procesorová jednotka se používá střídavě a sériově. Programy nekončí v pořadí, v jakém začaly.
Více programů sdílí různé prostředky systému zpracování, ale systémové prostředky jsou omezené a počet a typy prostředků požadovaných každým programem se také liší. Proto plánování více programů závisí na rozdílu každého programu. Požadavky na zdroje přijímají následující strategie: ①Kdo dřív přijde, ten dřív slouží, vytvořte zálohovací frontu podle pořadí vstupu programu a plánovač prohledá frontu záloh od začátku, aby našel první program, který může zdroj uspokojit, a vložte do aktuální fronty k provedení. ② Podle plánování čísla priority systém vybere program s nejvyšší prioritou pro spuštění. Prioritní číslo programu může zadat uživatel (systém si účtuje vyšší poplatek za program s vyšším číslem priority), nebo jej může určit systém (systém specifikuje čekací dobu programu, délku doby běhu a množství požadavků na systémové prostředky). Toto číslo priority lze určit, když program vstoupí do systému, nebo jej lze vypočítat pokaždé, když je program naplánován. Ve stejném programu prioritních čísel je plánování stále založeno na principu kdo dřív přijde, ten dřív mele. ③ Vyvážené plánování, které klasifikuje programy podle jejich vlastních charakteristik. Například typ A je časově náročný program pro vstup a výstup, typ B je program, který vyvažuje vstup a výstup s dobou výpočtu a typ C je časově náročný program pro výpočet. Plánovač programů postupně vybírá a spouští programy z těchto různých typů programů, takže zdroje mohou být využívány vyváženým způsobem, efektivita systému může být uvedena do hry a uživatelé jsou spokojeni.
Jak je znázorněno na obrázku, je uveden stav provádění jednoho programu a více programů. Je vidět, že multi-program může výrazně zlepšit využití zdrojů systému.