Sistemi realnog vremena
Jedna od formi operativnih sistema sa "specijalnom namjenom" je real-time sistem ili sistem realnog vremena. Real-time sistemi se koriste kada postoje stroga vremenska ograničenja za izvršavanje definisanih poslova. Često se koriste i kao "kontrolni uređaji" u namjenski razvijenim sistemima, kao naprimjer u automobilskoj industriji kada kontrolišu robote koji rade na sklapanju automobila, prilikom medicinskih eksperimenata, u vojnoj industriji (kod testiranja projektila) ili u istraživanju svemira. Senzori služe kao primarni ulazni uređaji, pomoću kojih podaci dolaze do računarskog sistema. Računar mora analizirati pristigle podatke i po potrebi modificirati položaj senzora. Dakle, real-time sistemi imaju precizno definisana vremenska ograničenja u kojima moraju djelovati. Ako bi se desilo suprotno, moglo bi doći do neželjenih posljedica za korisnički proces koji se obrađuje, a nekada i za sam računarski sistem. Naprimjer, ruka robota koji sklapa dijelove Golfa mora se kretati po tačno definisanoj putanji i zaustaviti se u tačno predviđenim vremenskim intervalima, ako umjesto Golfa ne želimo proizvesti, kako umjetnici novog doba kažu, "nedefinisani apstraktni oblik". Real-time sistem se smatra korektno funkcionalnim samo onda kada vraća korektan rezultat u tačno definisanim vremenskim ograničenjima. Ako uporedimo zahtjeve real-time sistema sa zahtjevima time-sharing sistema, kod kojih je brzi odgovor poželjan (ali to nije obavezno) ili kod grupnih sistema kod kojih uopce ne postoje vremenska ograničenja, vidimo da su real-time sistemi mnogo kompleksniji i zahtjevniji po tom pitanju. Postoje dva osnovna koncepta real-time sistema, hard real-time sistemi i soft real-time sistemi. Kod hard real-time sistema se garantuje da će zadani zadatak biti urađen u tačno definisano vrijeme. Sva kašnjenja i odlaganja moraju biti ograničena. Kod ovih sistema karakteristično je da sekundarna memorija ili ne postoji ili je vrlo ograničena, a podaci se smještaju u kratkoročnu memoriju ili su u ROM memoriji. Također i mnoge karakteristike naprednih operativnih sistema nedostaju, koje za razliku od real-time sistema, imaju za cilj da korisnika odvoje od hardvera i zanemare činjenicu tačno određene vremenske preciznosti za završetak specifične operacije. Naprimjer, virtuelna memorija kao koncept upravljanja memorijom skoro se nikada ne može naći na real-time sistemima. Stoga se hard real-time sistemi nikada ne mogu miješati sa time-sharing sistemima. Manje restriktivni tip real-time sistema je soft real-time sistem, gdje se poslovi obavljaju u redoslijedu koji je određen prema prioritetima. Ako određeni zadatak odnosno posao ima veći prioritet od svih ostalih onda će se sistem pozabaviti njegovim rješavanjem, dok će ostali poslovi biti na čekanju. Također i kod soft real-time sistema postoje ograničenja kod odgode izvršenja određenog posla odnosno kod kašnjenja. Real-time posao kod real-time sistema ne može vječno čekati na usluge kernela. Soft-real time sistemi imaju veće nedostatke od hard real-time sistema u pogledu pružanja usluga. Upravo zbog nedostataka kao što su odsustvo podrške ili podsistema za tačnu vremensku preciznost, ovi sistemi nisu pogodni za korištenje u robotici ili za industrijsku kontrolu. Međutim postoji nekoliko područja u kojima su ovi sistemi korisni: multimedija, virtualna realnost i napredni naučno-istraživački projekti kao što su podvodna istraživanja ili istraživanje površina planeta. Ovi sistemi su podržani sa sistemima opšte namjene i naprednim operativnim sistemima kao što su UNIX , a kod nekih naprednih sistema mogu se pronaći istovjetne komponente kao i kod soft real-time sistema, naprimjer kod Windows NT-a. Poznati operativni sistemi realnog vremena su: LynxOS OSE QNX RTLinux VxWorks Windows CE FreeRTOS