V
informatike
je proces be?iaca in?tancia programu vratane v?etkych hodnot premennych a stavu.
Multitasking
opera?neho systemu
prepina medzi procesmi, ?im vznika dojem su?asneho behu viacerych procesov, hoci v skuto?nosti je vo v?eobecnosti mo?ne vykonava? iba jeden proces v jednom jadre
CPU
.
Neformalne povedane, proces je uloha, ktoru vykonava po?ita?, ?asto su?asne s inymi. Mnohe procesy mo?u existova? su?asne, pri?om sa striedaju pri vyu?ivani CPU.
Vo
vnorenych
opera?nych systemoch sa procesy ?asto nazyvaju
ulohy
. Zmysel
procesu
je ?nie?o spotrebuvajuce ?as“, na rozdiel od pamate, ??o spotrebuva miesto“.
U? uvedeny opis sa vz?ahuje na
procesy spravovane
opera?nym systemom ako aj na procesy definovane v
teorii procesov
.
V prvom pripade udr?iava opera?ny system procesy oddelene a alokuje zdroje, ktore po?aduju, tak?e je menej pravdepodobne, ?e medzi nimi nastanu konflikty, ?o by mohlo sposobi? zlyhanie systemu. Opera?ny system tie? poskytuje mechanizmy
komunikacie medzi procesmi
, aby bola umo?nena komunikacia bezpe?nym a predvidate?nym sposobom.
Vo v?eobecnosti, proces opera?neho systemu pozostava z tychto ?asti:
- pama? (zvy?ajne existuje oblas?
virtualnej pamate
pre odlo?ene (suspened) procesy), ktora obsahuje vykonate?ny kod alebo data ?pecificke pre vykonavanu ulohu,
- zdroje
OS alokovane procesu, ako deskriptory suborov (
UNIXova
terminologia) alebo handles (
Windows
),
- bezpe?nostne atributy, ako vlastnik procesu a mno?ina opravneni,
- stav procesora (
kontext
), ako obsah registrov, adresy fyzickej pamate at?. Stav je ulo?eny v registroch, ke? sa program vykonava, inak v pamati.
Posledna polo?ka, stav procesora suvisi s ka?dym z
vlakien
procesu v opera?nych systemoch s
multithreadingom
.
Na tejto urovni programovania su registre zdrojom najni??ej urovne a hodnoty programu musia by? na?itane z pamate do registrov, ktore sa najprv znuluju a potom nastavia. Tieto kroky sa vykonavaju rychlos?ou hodinoveho cyklu CPU a zavisia na architekture procesora.
Ak je uloha odlo?ena, mo?e by?
odswapovana
na disk, v rovnakom stave ako existovala vo virtualnej pamati, kde su bloky pamate v skuto?nosti na disku a nie vo fyzickej pamati.