Caracteristicile unui sistem de operare

Un SO este:
modular, adica format din entitгti cu roluri bine definite (este constituit din proceduri)
ierarhizat: o entitate poate folosi componente de nivel inferior ei (de exemplu, partea de servicii poate folosi partea de control)
porta
bil: efortul de a trece sistemul de operare de pe un calculator pe altul este mic (mai mic decвt cel de a-l rescrie). Sistemele de operare CP/M, MS-DOS, UNIX sunt portabile, pe cвnd sistemele de operare ale minicalculatoarelor (RSX, de exemplu) nu erau portabile.
Evolutia sistemelor de operare se poate urmari in paralel cu cea a sistemelor de calcul.

Caracteristica 1:
 Primele sisteme de calcul nu aveau sistem de operare: de la consolг se lucra direct оn limbaj masinг. Ulterior apar primele produse soft si primele dispozitive periferice: cititorul de cartele, imprimanta, unitatea de banda magnetica.
Legatura dintre un periferic si memoria, оmpreunг cu procesorul central, se realizeaza din punctul de vedere al SO prin rutine (proceduri) de interfatг numite drivere. Fiecare faza necesara pentru executia programelor presupunea interventia operatorului uman (citirea cartelelor, оncгrcarea programului оn memorie si lansarea lui оn executie), ceea ce ducea la utilizarea ineficientг a sistemului de calcul si la o viteza de calcul redus. Se pune astfel problema оnlгntuirii automate a fazelor prin care trece un program (numit job) pentru a fi executat si a mai multor programe executate consecutiv.

Caracteristica 2:
Sistemele seriale cu monoprogramare introduc inlantuirea automata a fazelor si job-urilor, adic оnlгntuirea automatг a programelor unul dupг altul iar оn cadrul unui program, a fazelor - una dupa alta. Aceste operatii sunt realizate de un program numit monitor de оnlгntuire, care se depune оn memorie (devine rezident оn memorie) si este activat de cartele speciale de comandг care contin comenzi compile, link, run (pentru compilare, editare de legгturi, respectiv executie).
Caracteristica 3:
Sistemele seriale cu multiprogramare introduc conceptul de multiprogramare si canalul de intrare-iesire ca procesor specializat оn operatii de intrare-iesire (generatia a doua de calculatoare). Activitatea sa este lansata de procesorul central, dupa care pot executa operatii independent de acesta (si оn acelasi timp). La terminarea operatiei de intrare-iesire, canalul trimite catre procesorul central un semnal (оntrerupere), anuntind terminarea operatiei. Canalul poate fi selector, daca la un moment dat lucreaza cu un singur periferic (adecvat pentru perifericele rapide, care prelucreaza suporturi magnetice) sau multiplexor, dacг poate lucra simultan cu mai multe periferice (de exemplu, USM - unitatea de schimburi multiple).
Sistemele seriale cu multiprogramare introduc cвteva tehnici speciale de exploatare a procesorului. Cea mai cunoscutг dintre acestea este multiprogramarea, care presupune gestionarea mai multor programe aflate оn memoria interna. Acestea se gasesc оn stari diferite: unul se executa iar celelalte pot fi pregatite pentru executie sau pot astepta terminarea unei operatii de intrare-iesire.
Un SO cu multiprogramare trebuie sa aiba un sistem de intreruperi, sa gestioneze, sa aloce, sa protejeze resursele (memorie, periferice, timp, fisiere) intre utilizatori si sa implementeze o disciplina de servire prin care sa se decida care program trece оn stare de executie (in acest sens, se poate utiliza un sistem de prioritati sau, pur si simplu, se poate adopta o servire circulara simpla).
Un program aflat pe un suport cu viteza mica de acces va suferi o conversie de intrare, prin care se va depune pe un suport cu acces mai rapid si de aici va fi depus оn memorie. Analog, la extragerea sa din sistem, asupra sa se poate efectua o conversie de iesire (acestea sunt caracteristicile unei tehnici numite spooling).
 
Caracteristica 4:
Sistemele interactive permit comunicarea permanentг оntre utilizator si sistemul de calcul prin consolг sau terminale. Ele sunt evident mai avantajoase decвt sistemele anterioare, la care numai corectarea cвtorva greseli de sintaxг putea dura cвteva zile оn care programul pe cartele sг fie introdus оn loturi succesive de programe; оn urma consultгrii listingului cu rezultate se puteau face corecturile, dupa care programul pe cartele sг fie din nou dat spre executie etc.
Оn functie de rezultatul comenzii / fazei precedente, utilizatorul va decide ce comandг sa dea sau ce faza sa urmeze. Spre deosebire de sistemele seriale, sistemele interactive au un timp de raspuns bun. Оn general, aceste sisteme contin editoare de texte pentru corectarea programelor sursг si depanatoare interactive.
Sistemele interactive pot fi: monoutilizator (microcalculatoarele) sau multiutilizator (minicalculatoarele). Ultimele au introdus modul de lucru numit time-sharing, care combinг interactivitatea cu multiprogramarea si prin intermediul caruia sistemul comuta intre programele tuturor utilizatorilor care urmeaza a fi executate, deci cгrora li se va aloca procesorul, adoptind uzual o servire circularг. Cвnd numгrul de utilizatori nu este prea mare, fiecare utilizator este servit cel putin o data оntr-un timp scurt, ceea ce poate crea utilizatorilor impresia cг sunt unicii beneficiari ai resurselor de calcul. Primul sistem time-sharing a fost creat оn 1965 de firma IBM si s-a numit CTSS (Control Time Sharing System); el a fost urmat de MULTICS, apгrut оn 1968 la MIT. Aceste sisteme stau la baza cunoscutului sistem UNIX, care a apгrut оn 1971-1978 si s-a dezvoltat, fiind azi cel mai folosit SO pentru calculatoare interconectate.
Un alt mod de lucru aparut la sistemele interactive este pipe-line (folosit initial de UNIX si ulterior preluat de DOS). Urmгrind principiul cг orice program lansat (de la un terminal) are o intrare standard (de obicei tastatura) si o iesire standard (de obicei ecranul), tehnica pipe-line presupune conectarea iesirii standard a unui program la intrarea standard a altui program (prin intermediul unor zone de memorie tampon).

In evolutia sistemelor interactive se poate remarca trecerea de la sisteme de operare la nivel de comanda (UNIX, DOS) la sisteme cu interfatг vizualг de tip Windows, mult mai accesibile pentru utilizatori.
Caracteristica 5:
  Sistemele оn timp real sunt folosite pentru conducerea directa, interactiva, a unui proces tehnologic sau a altei aplicatii (de exemplu, un sistem de rezervare de locuri). Necesitatea unor asemenea sisteme se poate usor imagina оn cazul analizelor medicale asistate de calculator, a reactiilor chimice sau a unor experiente fizice (de exemplu, cazul acceleratoarelor de particule). De la procesul controlat se transmit cгtre sistemul оn timp real parametrii procesului, culesi prin intermediul unor senzori, iar sistemul оn timp real transmite cгtre proces deciziile luate. Informatiile despre proces sunt luate оn considerare оn momentul comunicarii lor iar rгspunsul sistemului trebuie sг fie extrem de rapid (oportun pentru proces), deci timpii de executie ai programelor din sistem trebuie sa fie mici.
Caracteristica 6: 
Sistemele paralele gestioneaza arhitecturile multiprocesor (arhitecturi paralele), оmpгrtind sarcinile оntre procesoare si controlвnd combinarea rezultatelor generate de acestea. Astfel, un sistem multiprocesor va avea simultan mai multe programe aflate оn stare de executie.
Evident, un algoritm paralel, оn care anumite calcule independente se realizeaza simultan, va fi mai rapid decвt algoritmul serial (uzual) corespunzator. Studiul algoritmilor paraleli este un domeniu prolific al informaticii. Mai mult, au aparut limbaje specifice, care pot paraleliza algoritmi seriali, pot exploata paralelismul arhitecturii sau paralelismul problemei. Pentru majoritatea algoritmilor recent elaborati, cercetatorii sunt preocupati de gasirea unor variante paralele.
 
Caracteristica 7:
Sistemele distribuite sunt sistemele de operare ale retelelor de calculatoare. Pentru retelele locale de calculatoare, cele mai utilizate sisteme de operare sunt Novell Netware si Windows NT, оn timp ce pentru retelele de arie mai larga si conectarea la Internet se folosesc sisteme Linux.