Operacíjski sistém (kratica OS, ) je programska oprema nujna za delovanje računalnika. Deluje kot vmesnik med uporabnikom in strojno opremo računalnika.

Naloge operacijskega sistema

Dodeljevanje virov (CPE, pomnilniški prostor, vhodno/izhodne naprave) procesom, Časovno razporejanje opravil, Reševanje konfliktnih situacij (sočasni dostopi do virov), Optimizacija in nadzira uporabe virov, Omogočanje dela uporabnikom, ...

Uporabniški vmesniki OS

slikovni (grafični) vmesniki (uporabniški vmesnik, ki ga upravljamo v kombinaciji z računalniško miško); npr. različice Windows ali namizja v Linuxu vmesniki z ukazno vrstico: npr. MS-DOS ali ukazne lupine v Linuxu.

Vrste operacijskih sistemov Operacijski sistemi se uporabljajo v raznolikih računalniških konfiguracijah - od mikro računalnikov do velikih računalniških sistemov. Zato imajo funkcije realizirane na različne načine; obstajata pa dve funkciji, ki sta skupni vsem sistemom: uporabniški vmesnik (user interface) zagotavljanje izvajalnega okolja (run-time environment)

Operacijske sisteme lahko delimo glede na to, koliko uporabnikov lahko sistem uporablja istočasno. To so lahko enouporabniški (single-user, single-job), večprogramski (multiprogramminig), večprocesorski (multiprocessing) in porazdeljeni (distributed) operacijski sistemi. Drug način razdelitve je glede na to, kako uporabniki dostopajo do računalnikovih funkcij. To so lahko paketni (batch) in interaktivni (interactive) operacijski sistemi, ko mora biti procesor na rapolago v zaporednih časovnih rezinah (time-sharing). Mogoče so različne kombinacije tipov operacijskih sistemov.

Enoopravilni in enouporabniški To so najpreprostejši operacijski sistemi. Računalnik lahko izvaja le en program naenkrat. Če je uporabnik želel preklopiti na drug program, je moral najprej prvega zaključiti. Šele nato je lahko zagnal drugega. Glavna slabost enoopravilnih operacijskih sistemov je slaba izkoriščenost računalniških virov.

Tipični predstavnik te skupine operacijskih sistemov je MS-DOS.

Enouporabniški, večopravilni Operacijski sistem upravlja in rezervira pomnilnik, razvršča procese in skrbi za komunikacijo med njimi, dodeljuje vire, rokuje s podatki – datotečnim sistemom itd. Enouporabniški operacijski sistemi imajo le enega uporabnika, dovoljuje pa izvajanje več programov hkrati.

Večopravilni sistemi omogočajo izvajanje več kot enega programa naenkrat (istočasno lahko poslušate glasbo, pošiljate e-pošto, ...). Nekateri sistemi lahko istočasno navidezno izvršujejo več programov. Procesor izvaja en proces določen čas, nato naslednjega itd., uporabnik pa ima občutek kot, da se vsi procesi izvajajo istočasno. Večopravilni operacijski sistemi bolje izkoristijo razpoložljivo strojno opremo.

Predstavniki te skupine operacijskih sistemov so Microsoft Windows 95/98/NT, Windows 2000, ...

Večuporabniški, večopravilni Večuporabniški operacijski sistem dovoljuje uporabo računalniškega sistema več uporabnikom hkrati. Dostop do takšnega računalnika je tipično realiziran preko računalniškega omrežja, tako da se uporabniki na sistem povezujejo preko oddaljenega dostopa (terminalski dostop, oddaljeno namizje). Večuporabniški sistem mora upravljati in usklajevati zahteve vseh uporabnikov in pri tem zagotoviti, da ne pride do medsebojnih vplivov. Naprave, ki niso deljive, lahko istočasno izvršujejo zahtevo samo enega uporabnika (npr. tiskalnik) Sisteme, ki uporabljajo časovne rezine (time-sharing) in spletne strežnike lahko opredelimo kot večuporabniške sisteme, ker omogočajo večuporabniški dostop do računalnika preko dodeljevanja časa.

Predstavniki so: Microsoft Windows XP, Vista, 7, 8, Unix (OpenBSD, FreeBSD, ...), Linux, ...

Interaktivni Pri interaktivnem operacijskem sistemu ima uporabnik neposreden stik z računalniškim sistemom in omogoča dialog med uporabnikom in izvajanim programom. Posli se opravljajo z interaktivnimi ukazi. Sporočila tečejo od uporabnika do računalnika in obratno po znakih. Nabira se v pomnilniškem vmesniku, procesor pa ga dobi v obdelavo šele, ko je bil poslan znak za konec sporočila.

Mrežni in porazdeljeni Več računalnikov je lahko medsebojno povezanih v računalniško omrežje. Računalniki lahko uporabljajo za komunikacijo programe zunaj operacijskega sistema. Za povezave pa je lahko zadolžen tudi sam operacijski sistem. Eden izmed računalnikov lahko deluje kot zbirčni strežnik (file server) do katerega dostopajo vsi drugi računalniki v omrežju. Tak dostop omogoča mrežni operacijski sistem, ki za razliko od porazdeljenega nadzira delovanje samo enega računalnika, lahko pa svoje vire da na razpolago drugim računalnikom povezanim v mrežo.

Porazdeljeni operacijski sistem nadzira in usmerja delovanje več računalnikov povezanih v mreži, običajno streže več uporabnikom. Omogoča avtomatično razdelitev programskega bremena med več omrežnih računalnikov.

Realnočasnovni Pri nekaterih računalniških sistemih je zelo pomembno, da se neko opravilo opravi pravočasno oz. so dolčeni intervali, v katerih so morajo biti začeta opravila končana. Zanj je značilno, da omogoča hitre in predvidljive odzive na zunanje dogodke. Razlika med realnočasnovnimi in interaktivnimi operacijskimi sistemi je v času odziva. Medtem, ko je pri sprotnih operacijskih sistemih čas za vsako opravilo natančno določen, se pri interaktivnih operacijskih sistemih pričakuje takojšen odziv s stališča končnega uporabnika (to je v doglednjem času).

S takimi OS se srečamo v raznih krmiljih zahtevnih strojev in naprav, v usmerjevalnikih računalniškega omrežja, itd. Splošen primer tega tipa OS je HDTV sprejemnik in prikazovalnik (televizija z visoko ločljivostjo). Potrebuje se branje digitalnega signala, dekodiranje tega signala in prikaz dekodiranih podatkov. Kakršnakoli zakasnitev povzroči "kockanje" slike in/ali popačen zvok.

Predstavniki tega tipa OS so LynxOS, OSE, RTLinux, VxWorks, Windows CE.

Vgrajeni Vgrajeni operacijski sistemi (embedded) so strogonamenski računalniški sistemi. To je operacijski sistem, ki sloni na specifičnih zahtevah in izvaja točno določene naloge. Upravlja lahko z omejenim številom virov. So zelo kompaktni in učinkoviti. Za vgrajen sistem ni nujno, da je del nečesa večjega, lahko je tudi samostojen, kot je v primeru digitalnega fotoaparata ali dvd-predvajalnika.

Windows CE in Minix 3 sta primera vgrajenega OS.

Zgodovina Zgodnji računalniki so bili zgrajeni za opravljanje vrste posameznih nalog, kot je to npr. kalkulator. Programskih jezikov ni bilo, prav tako ne operacijskih sistemov. Računalnike so upravljali neposredno z vnosom strojnih ukazov - bodis preko stikal, žičnih povezav, luknjanih kartic ali traku. To so bili sistemi za posebne namene, npr.: generiranje balističnih tabel za vojsko ali za tiskanje plačilnih seznamov na podlagi podatkov vnešenih na luknjane papirnate kartice. Potem ko so izumili programabilne računalnike za splošno rabo, so bili uvedeni strojni jeziki (sestavljeni iz nizov binarnih številk 0 in 1 na luknjanem traku papirja), ki je pospešil proces programiranja. thumb|OS/360 je bil z začetkom leta 1966 uporabljen na večini IBM osrednjih računalnikih, vključno z računalniki, ki so pomagali NASI poslati človeka na Luno.

Osnovne funkcije operacijskega sistema so bile razvite v 1950-ih letih, kot so to funkcije nadzornega programa (resident monitor), ki lahko avtomatično zaporedno izvaja različne programe z namenom pospešitve obdelave. V zgodnjih 1950 je lahko računalnik izvajal le en program naenkrat. Vsak uporabnik je imel izključno uporabo računalnika za omejeno časovno obdobje - ob načrtovanem času je vnesel program s podatki na luknjanih papirnih karticah in/ali luknjanem traku. Program se je naložil v napravo in deloval dokler se program ni zaključil ali sesul. Programe so lahko v splošnem razhroščevali preko prednje plošče z uporabo preklopnih stikal in lučk. Pravijo, da je bil za to mojster Alan Turing na zgodnjem Manchester Mark 1 stroju, ki je že vseboval primitivni koncept operacijskega sistema delujočega na načelih univerzalnega Turingovega stroja.

Operacijski sistemi niso obstajali (v moderni in bolj zapleteni obliki) do zgodnjih 1960ih let. Dodane so bile strojne funkcije, ki omogočajo uporabo runtime knjižnic, prekinitev in vzporedno procesiranje. Ko so v 1980-ih postali priljubljeni osebni računalniki, so za njih naredili operacijske sisteme podobne tistim, ki so delovali na večjih računalnikih.

Osrednji računalniki (mainframe)

V pedesetih letih je bilo veliko funkcij na področju operacijskih sistemov pionirskih, vključno s paketno obdelavo, vhodno/izhodnimi prekinitvami, vmesnim shranjevanjem (buffering), večopravilnostjo, spooling (tiskanje v ozadju), runtime knjižnicami, povezovalnikom (linker) in programi za razvrščanje zapisov. Te funkcije so bile vključene ali pa ne v aplikacijski programski opremi glede na izbiro programerjev aplikacije, namesto v ločenem operacijskem sistemu, ki ga uporabljajo vse aplikacije. Leta 1959 je bil izdan SHARE Operating System kot namenski sistem za IBM 704 in kasneje za 709 in 7090 osrednje računalnike, čeprav je le-ta bil hitro nadomščen z IBSYS/IBJOB na 709, 7090 in 7094.

V šestdesetih letih je IBM predstavil družino računalnikov System/360 v katerih je bil nameščen operacijski sistem OS/360. Operacijski sistem System/360 še vedno živi v današnjih sodobnih IBM-ovih operacijskih sistemih.

OS/360 je prvi uvedel koncept, da operacijski sistem beleži vse sistemske vire, ki se uporabljajo, vključno z dodeljevanjem programov in prostora v glavnem pomnilniku in datotečnega prostora v zunanjem nosilcu podatkov (secondary storage), in zaklepanjem datotek (file locking) med posodobitvijo. Ko je postopek zaradi katerega koli razloga prekinjen, so vsi ti viri ponovno na razpolago operacijskemu sistemu.

Alternativni CP-67 sistem za S/360-67 je začel popolnoma novo linijo IBM operacijskih sistemov, ki se je osredotočil na koncept navideznega stroja (virtual machine).

Control Data Corporation je v 1960-ih razvil operacijski sistem SCOPE, za paketno procesiranje (batch processing). V sodelovanju z University of Minnesota, so bili v 70-ih razviti Kronos in kasnejši NOS opercijski sistemi, ki so podpirali sočasno paketno uporabo in dodeljevanje časovnih rezin. Kakor mnogo komercialnih timesharing sistemov, je bil njegov vmesnik razširitev Dartmouth BASIC operacijskih sistemov, ki je bil eden izmed pionirjev na področju dodeljevanja časovnih rezin in programskih jezikov. V poznih 1970-ih, sta Control Data in University of Illinois razvila PLATO operacijski sistem, ki je uporabljal ploski plazemski zaslon in mrežo na daljavo z dodeljevanjem časovnih rezin (long-distance time sharing network). Plato je bil za svoj čas zelo inovativen, ki je omogočal pogovor v realnem času (real-time chat) in večuporabniške grafične igre.

Leta 1961 je Burroughs Corporation predstavila B5000 z MCP, (Master Control Program) operacijski sistem. B5000 je bil skladovni stroj (stack machine) razvit za podporo višjim programskim jezikom brez strojnega jezika ali assemblerja, in MCP je bil dejansko prvi OS, ki je bil napisan izključno v višjem programskem jeziku – ESPOL, dialekt programskega jetika ALGOL. MCP je prav tako vpeljal več drugih pionisrkih inovacij, kot je prva uporaba navideznega pomnilnika.

UNIVAC je bil prvi komercialni prizvajalec računalnikov. Proizvedel je serijo EXEC operacijskih sistemov. Kot vsi zgodnejši osrednji računalniški sistemi, je ta paketno usmerjeni sistem upravljal magnetne bobne, diske in čitalce kartic in linijske tiskalnike. V 70-ih je UNIVAC proizvedel the Real-Time Basic (RTB) sistem za podporo obsežnemu dodeljevanu časovnih rezin, prav tako narejen po vzorcu Dartmouth BC sistema.

Digital Equipment Corporation je razvil več operacijskih sistemov za različne linije računalnikov, vključno z TOPS-10 in TOPS-20 z dodeljevanjem časovnih rezin za 36-bitne sisteme razreda PDP-10. TOPS-10 je bil še posebej popularen sistem na univerzah in v zgodnji ARPANET skupnosti.