Sunteți pe pagina 1din 16

FUNCŢIILE ŞI COMPONENTELE UNUI SISTEM DE OPERARE

Un sistem de calcul nu poate să prelucreze date fără să fie programat, un


program constând dintr-o succesiune de instrucţiuni ce converg către soluţia
problemei ce se rezolvă.
Există două categorii de programe:
1) programe de aplicaţii care sunt destinate să rezolve probleme specifice; acestea
efectuează prelucrări ale datelor, în concordanţă cu cerinţele informaţionale;
2) programe de sistem destinate să coordoneze operarea circuitelor sistemului,
asistând la dezvoltarea programelor de aplicaţii; ele sunt proiectate să faciliteze
utilizarea eficientă a resurselor sistemului de calcul şi să ajute la dezvoltarea si
execuţia programelor de aplicaţii.
Programele de sistem sunt scrise pentru anumite categorii de sisteme de calcul şi
nu pot fi folosite pe orice calculator; sunt furnizate de către producătorii sistemelor
de calcul sau alte firme specializate, fiind astfel proiectate încât să corespundă unei
game variate de solicitări.

1.1. Sistem de operare

Un sistem de operare constă dintr-o colecţie integrată de programe de sistem, ce oferă


utilizatorului posibilitatea folosirii eficiente a sistemului de calcul, concurând la dezvoltarea
programelor de aplicaţie.
Se poate aprecia că un sistem de operare acţionează ca o interfaţa între componenta hardware a
unui sistem de calcul şi utilizator, reprezentat prin programele sale de aplicaţie (fig.1.1.).

SISTEM DE PROGRAME
OPERARE DE APLICAŢIE
(PA)
NIVEL NIVEL comenzi PA1 utilizator
FIZIC LOGIC
macro-
PA2 utilizator
HARDWARE ·
·· instrucţiuni
limbaje de ·
·
programare ·
mesaje
PAn utilizator

Fig. 1.1. Sistemul de operare-interfaţă între hardware şi utilizator


Sisteme operaţionale

Majoritatea sistemelor de operare sunt organizate pe două niveluri:

1) nivelul fizic care este mai apropiat de partea de hardware, interferând cu aceasta printr-un
sistem de întreruperi ce semnalizează anumite evenimente deosebite ce au loc în sistem; în acel
moment va da controlul unor rutine de pe nivelul logic în vederea tratării acestora şi al informării
utilizatorului despre cauzele care le-au generat.

2) nivelul logic este mai apropiat de utilizator, interferând cu acesta prin:

- comenzi ce specifică execuţia anumitor subfuncţii ale sistemului de operare;


- macroinstrucţiuni ce conduc la expandarea în programele de aplicaţii, a unor
macrodefiniţii cu funcţii speciale;
- limbaje de programare;
- mesaje către utilizator;
- întreruperi solicitate de către software.

1.2. Funcţiile unui sistem de operare

Pentru a îndeplini rolul de interfaţă între hardware şi utilizatori, un sistem de operare trebuie
să fie capabil a îndeplini următoarele funcţii:
1) oferirea posibilităţii de pregătire şi lansare în execuţie a programelor de aplicaţie (fig.1.2.);
în acest scop, un sistem de operare trebuie să dispună de cel puţin următoarele componente:
- un editor de texte pentru a introduce şi modifica un program sursă (PS) scris într-un
limbaj de programare;
- un translator pentru limbajul de programare folosit (asamblor, compilator sau
interpretor), care să traducă instrucţiunile programului sursă, într-o formă recunoscută
de sistemul de calcul (formă binară) - program obiect sau module obiect (PO);
- un editor de legături care să realizeze legătura dintre diverse module obiect, sau să
apeleze la module obiect din bibliotecile sistemului, respectiv la modulele obiect din
biblioteca utilizatorului - care au fost catalogate în prealabil, pentru a construi structura
pe segmente impusă de sistemul de calcul în vederea execuţiei programelor (program
obiect executabil-POE).
Odată construită structura pe segmente, programul va fi gata de execuţie, ceea ce va implica
încărcarea acestuia în memoria internă şi execuţia efectivă; componenta sistemului de operare ce
realizează acest deziderat se numeşte încărcător. Dacă această componentă lansează automat
execuţia programului după încărcarea în memoria internă, încărcătorul este de tip Load and Go.
2) alocarea resurselor necesare execuţiei programelor prin:
- identificarea programelor ce se execută şi a necesarului de resurse;
- alocarea memoriei interne şi a dispozitivelor periferice;
- identificarea şi protecţia colecţiilor de date.
3) acordarea unor facilităţi prin utilitare de interes general:
- gestiune cataloage (directori, subdirectori) şi fişiere;
- creare, modificare, copiere, mutare, ştergere, recuperare directori şi fişiere;
- sortare/interclasare;
- comprimare/decomprimare spaţiu pe suporturile de memorie externă;
- depistare şi eliminare viruşi informatici şi altele.
4) planificarea execuţiei mai multor programe (multiprogramare) după anumite criterii, în
vederea utilizării eficiente a unităţii centrale de prelucrare.
Capitolul 1 – Funcţiile şi componentele unui sistem de operare
MS-DOS UNIX

ed
Editor edit vi
texte emacs
nice editor

Program PS
sursă

asm a
Translator pas cp
limbaj c cc
bas b

Erori

Program PO .obj .o
obiect

Editor
Biblioteci legături Biblioteci
utilizatori sistem

Program obiect .exe a.out .x


POE .com
executabil

Încărcător

lansare în execuţie

Fig. 1.2. Pregătirea execuţiei programelor


5) coordonarea execuţiei mai multor programe ce se execută simultan, prin urmărirea
modului de execuţie a instrucţiunilor programelor, depistarea şi tratarea erorilor, lansarea în execuţie
a operaţiilor de intrare/ieşire şi depistarea eventualelor erori.
6) asistarea execuţiei programelor de către utilizator, prin comunicaţia sistem de
calcul-utilizator atât la nivel hardware cât şi la nivel software.
7) asigurarea organizării şi protecţiei datelor în memorie.
8) posibilitatea generării unui sistem de operare pe măsura configuraţiei existente.
1.3. Programe de comandă - control
Sisteme de operare sunt alcătuite în principal, din două categorii de programe:
- programe de comandă-control având rolul de coordonare şi control al tuturor funcţiilor sistemului
de operare;
- programe de servicii care sunt executate sub supravegherea programelor de comandă-control, şi
sunt utilizate de programator pentru dezvoltarea aplicaţiilor.
Programele de comandă-control cunoscute şi sub numele de monitoare, supervizoare sau
executive, coordonează activitatea celorlalte componente ale sistemului de operare.
Sisteme operaţionale
Cele mai frecvent utilizate componente ale supervizorului sunt încărcate în memoria internă
încă de la generarea sistemului de operare, fiind păstrate în memoria internă pe tot parcursul
execuţiei aplicaţiilor de către sistemul de calcul; aceste programe se numesc rutine rezidente,
formând nucleul sistemului de operare; celelalte componente rămân în memoria externă fiind apelate
şi executate numai atunci când sunt solicitate de către nucleul sistemului de operare ( se numesc
rutine tranziente) asemenea oricărui program de aplicaţie (fig. 1.3.)

Memoria internă Memoria externă

Rutinele rezidente Încărcare


Programe de comandă – control
(nuceul) sistem de operare
(PCC)
Rutinele tranziente
Solicitări Programe de servicii
Alte rutine şi
programe de aplicaţie ale PCC Programe de aplicaţie

Fig. 1.3. Rutine rezidente şi rutine tranziente


Supervizorul iniţiază execuţia operaţiilor de intrare/ieşire pentru transferul componentelor
tranzitorii din memoria externă în memoria internă, fiind totodată responsabil de alocarea canalelor
de transfer (magistralele) pentru dispozitivele periferice de intrare/ieşire; de asemenea efectuează
controlul şi coordonarea unităţii centrale de prelucrare (CPU) pe parcursul recepţionării de mesaje
de la canalele prin care se execută transferul, a execuţiei programelor din memoria internă respectiv,
a transmiterii de mesaje către dispozitivele periferice de intrare/ieşire prin intermediul magistralelor.
Dispozitivele periferice de intrare/ieşire trebuie să fie alocate aplicaţiilor care le solicită,
datele solicitate fiind transferate în memoria internă sub controlul sistemului de gestiune a
intrărilor/ieşirilor.
Programele de comandă control îndeplinesc trei funcţii majore:
a. administrarea resurselor fizice ale sistemului de calcul;
b. planificarea, lansarea şi urmărirea execuţiei aplicaţiilor;
c. depistarea şi tratarea evenimentelor deosebite ce apar în timpul execuţiei unei aplicaţii.
(detalii se regăsesc în capitolul 3.).
1.4. Programe de servicii pentru dezvoltarea programelor de aplicaţie
Programele de servicii se execută sub controlul programelor de comandă control ca orice
program de aplicaţie, având în componenţă programe care facilitează dezvoltarea programelor de
aplicaţii respectiv programe utilitare de interes general.
Principalele programe de care dispune orice sistem de operare pentru dezvoltarea unui
program de aplicaţie sunt: editoarele de texte, translatoarele de limbaje, editoarele de legături,
încărcătoarele şi depanatoarele.
1.4.1. Editoare de texte
Un editor de texte este un set de programe ce oferă posibilitatea introducerii, editării, şi
tipăririi de texte sub forma unor fişiere ASCII. Textele sunt alcătuite din caractere care se introduc
de la tastatură apărând în acelaşi timp şi pe monitor; erorile pot fi corectate uşor deoarece acestea
nu sunt încă tipărite pe hârtie.
Editoarele de texte au ca activitate principală, crearea şi editarea de texte; împreună cu
hardware-ul, furnizează calea de urmat pentru vizualizarea, memorarea, editarea şi regăsirea textelor
create. Editoarele de texte mai performante, permit şi introducerea elementelor de grafică în text.
Deoarece documentaţia de utilizare a editoarelor de texte este voluminoasă, proiectanţii acestora au
prevăzut pentru cele mai frecvente funcţii, un sistem de Help ce constă în informaţii minime afişate
Capitolul 1 – Funcţiile şi componentele unui sistem de operare
la monitor referitor la modul de lucru al funcţiei.
Numele fişierului, pagina curentă, linia şi coloana în care se află cursorul, sunt permanent
afişate pe monitor în vederea orientării utilizatorului; textul poate fi memorat pe suport magnetic,
se poate refolosi şi modifica după necesităţi.
Editoarele de texte sunt componente ale sistemului de operare cu cea mai mare frecvenţa de
utilizare, existând astăzi o mare varietate datorită serviciilor aduse pentru a degreva utilizatorul de
sarcini elementare cum sunt: despărţirea în silabe, alinierea textelor, paragrafelor, titlurilor,
sublinierea unor porţiuni din text, căutare unui şir de caractere şi editarea acestuia, indexarea
documentului, realizarea cuprinsului, etc.
Observaţii:
- un procesor de texte poate produce fişiere ASCII numai dacă include opţiunea out of ASCII
text;
limbajul Java foloseşte caractere ASCII reprezentate pe 16 biţi (caractere Unicode) ce includ
caracterele întâlnite la majoritatea limbilor străine
1.4.2. Translatoare de limbaje
Translatoarele de limbaje sunt componente ale programelor de servicii care traduc programe
sursă(PS) scrise de utilizator într-un limbaj de programare, în programe obiect(PO), a căror
instrucţiuni în limbaj maşină sunt recunoscute şi executate de sistemul de calcul.
Translatoarele de limbaje se divid în două categorii:
1) compilative care realizează numai traducerea PS ---> PO; acestea pot fi:
* asambloare - programe de servicii care traduc programe sursă scrise în limbaje de
asamblare specifice fiecărui sistem de calcul (masm, tasm);
* compilatoare - programe de servicii care traduc programe sursă scrise în limbaje evoluate,
universale (Pascal, C);
2) interpretative - care odată cu compilarea realizează şi execuţia programului (Basic).
Spre deosebire de asambloare, compilatoarele creează o formă intermediară arborescentă a
instrucţiunilor din programul sursă astfel:
- orice variabilă este un nod terminal al arborelui;
- orice operator creează un arbore binar a cărui ramură stângă este primul operand, iar cea din
dreapta este al doilea operand.
Pentru a înţelege modul de lucru al unui compilator în tratarea unei instrucţiuni, se consideră
următorul exemplu:
Să se determine arborele binar corespunzător acţiunii unui compilator pentru calculul
expresiei:
X = A * ( B - C ) * D * ( E - F - 207 )
Rezultatul acţiunii compilatorului asupra expresiei este redat în fig. 1.4.
=

X +

* *

A – D –

B C = 207

E F
Fig. 1.4. Acţiunea unui compilator asupra expresiei X
Analiză Analiză Analiză Optimizare Generare
sintactică sintactică sintactică cod cod
Structura pe Arbore Structura pe Arbore
PS atomi lexicali sintactic atomi lexicali sintactic PO

(4)
(1) (3)
(2)

(3)
(2) (5)
(1)

Tabelă de Fişier
simboluri erori

Fig.1.5. Etapele unui proces de compilare


Capitolul 1 – Funcţiile şi componentele unui sistem de operare
(1) Analiza lexicală descompune PS în atomi lexicali (identificatori, cuvinte rezervate,
constante, operatori) pe care îi introduce în tabela de simboluri sub formă codificată.
(2) Analiza sintactică prin care şirul de atomi lexicali este analizat în privinţa depistării unor
structuri sintactice ca: expresii, liste, proceduri, plasându-le într-un arbore de derivare
(arbore sintactic).
(3) Analiza semantică foloseşte structura programului şi informaţiile din tabela de simboluri
pentru generarea unui grup de instrucţiuni simple cu format fix (codul intern); dacă arborele sintactic
nu respectă gramatica limbajului, semnalizează erori.
(4) Optimizarea codului presupune eliminarea redundanţelor, a lungimii şi variabilelor
inutile, în vederea unei execuţii mai eficiente.
(5) Generarea codului alocă zone de memorie pentru păstrarea datelor în timpul execuţiei,
alocă registre şi produce codul obiect.
(6) Gestiunea structurilor de date reprezintă o colecţie de proceduri care creează şi
actualizează baza de date cu care lucrează celelalte faze; în baza de date se găsesc tabelele
identificatorilor, a constantelor, a constructorilor, a cuvintelor cheie, a procedurilor standard, care
uneori sunt înglobate într-o unică tabelă de simboluri.
(7) Tratarea erorilor este realizată de o colecţie de proceduri ce sunt activate când se
depistează o eroare în program; utilizatorul primeşte mesaje de diagnostic iar compilatorul continuă
analiza sintactică pentru a depista alte erori.
O succintă abordare comparată a translatoarelor de limbaje conduce către următoarele
aspecte mai semnificative:
- asamblorul este determinat de limbajul maşină specific fiecărui sistem de calcul, iar compilatorul
este specific unui anumit limbaj de programare independent de sistemul de calcul;
- compilatorul oferă posibilitatea scrierii de programe pentru orice sistem de calcul ce dispune de
compilatorul respectiv;
- asamblorul translatează o definiţie simbolică a programului sursă într-o singură definiţie din
programul obiect, în timp ce compilatorul o poate translata în mai multe definiţii din programul
obiect (memoria ocupată astfel de asamblor necesită mai puţin spaţiu, dar compilatorul este mai
puternic datorită includerii într-o definiţie sursă, a mai multor definiţii obiect);
- interpretorul este util în special, la controlul proceselor industriale ce se desfăşoară în timp real,
însă interpretarea este mai lentă decât compilarea;
- execuţia repetată a unui program este facilitată de compilator care realizează translatarea o singură
dată, în timp ce interpretorul îl translatează de fiecare dată.
Există componente ale sistemului de operare ce sunt concepute ca programe generalizate
care, în funcţie de necesităţile utilizatorului se pot adapta pentru a realiza un grup de funcţii; aceasta
se realizează în faza de asamblare, prin intermediul unui macrolimbaj care asigură generarea
secvenţelor de program (PS şi PO) specificate.
Macrolimbajul foloseşte macroinstrucţiuni care sunt instrucţiuni ale PS, care asigură prin
intermediul comenzilor, inserarea în PS a secvenţei de instrucţiuni în locul unde a apărut
macroinstrucţiunea; de remarcat este faptul că nu economiseşte decât timp utilizator.
Structura unei macroinstrucţiuni:
-început MACRO
-nume NNNN
-secvenţa instr.1
de ...
instrucţiuni instr.n
-sfârşit ENDM

După definirea unei macroinstrucţiuni, utilizarea numelui NNNN este echivalentă cu


utilizarea secvenţei de instrucţiuni incluse în macroinstrucţiune.
Sisteme operaţionale
Macroasamblorul este componenta programelor de servici a sistemului de operare care tratează
macroinstrucţiunile, având ca activităţi de bază:
- recunoaşterea macrodefiniţiilor indicate prin MACRO, ENDM;
- memorarea definiţiilor macroinstrucţiunilor de care are nevoie pentru a le expanda la
un apel macro;
- recunoaşterea apelului macroinstrucţiunii cu secvenţa de instrucţiuni corespunzătoare.
- înlocuirea macroinstrucţiunii cu secvenţa de instrucţiuni corespunzătoare.

1.4.3. Editorul de legături


Structura externă a unui PS este alcătuită din secţiune, segment şi program.
Secţiunea este o unitate de program independentă constituită dintr-o secvenţă de definire a
datelor şi o secvenţă de instrucţiuni, ce asigură posibilitatea comunicării cu alte unităţi ale PS
(fig.1.6.).

Elemente de comunicaţie cu Elemente de comunicaţie cu


alte unităţi alte unităţi
Definire date Definire date

Proceduri Proceduri

Fig. 1.6. Comunicaţia dintre două secţiuni ale unui program sursă

Definirea datelor şi procedurilor servesc atât propriei secţiuni cât şi altor secţiuni.
Compilatorul asigură pe lângă generarea codului obiect şi informaţii de legătură între
secţiuni:
- informaţii de identificare (nume secţiune, punctul de intrare);
- informaţii de legătură.
Structura unei secţiuni după compilare este redată în fig.1.7.
Nume secţiune

Punct de intrare
Dicţionar de legătură
Codul obiect

Fig. 1.7. Structura unei secţiuni după compilare

Dicţionarul de legături rezultă în urma determinării de către compilator, a elementelor de


comunicaţie specificate în fiecare secţiune a PS, conţinând două tipuri de simboluri:
- externe - nedefinite în secţiune, cu adresa necunoscută;
- interne - definite în secţiune, dar referite din exteriorul acesteia.
Segmentul este o succesiune de secţiuni între care au fost rezolvate legăturile; acesta conţine:
- numele segmentului;
- punctul de intrare în segment;
- codul obiect al secţiunilor aranjate într-o anumită ordine.
Programul este o structură arborescentă de segmente (segment principal şi segmente
subordonate organizate pe substructuri); acesta este organizat într-o structură multifazică de către
editorul de legături, care pe baza numelor segmentelor din care este alcătuit programul şi a secvenţei
de secţiuni din care este compus fiecare segment, creează structura de program pe care o depune pe
suport extern (de obicei, hard-disk) de unde va fi ulterior încărcat în RAM pentru execuţie.
Capitolul 1 – Funcţiile şi componentele unui sistem de operare
Editorul de legături prelucrează PO rezultat în urma compilării secţiunilor, în scopul construirii
structurii pe segmente a programului; el este o componentă a programelor de servicii care asigură
următoarele funcţii:
- construirea dicţionarului de legături între diverse secţiuni;
- înlocuirea fiecărei secţiuni din cadrul unui segment, cu un factor de relocare corespunzător
adresei de încărcare în RAM;
- alocarea de zone continue pentru segment;
- modificarea constantelor de adresă relocabile, pentru a conţine valorile relocate ale
simbolurilor lor;
- căutarea în biblioteca relocabilă, a modulelor obiect catalogate;
- construirea structurii arborescente a programelor executabile.
Activitatea editorului de legături (linkeditor) este redată în fig.1.8.

Structura
PO Program obiect pe segmente

Editorul
Bibliotecă de Program obiect POE
sistem legături executabil

Bibliotecă
utilizator

Fig.1.8. Activitatea editorului de legături


Observaţii:
- mediul de programare Pascal include editorul de legături în compilator;
- sub sistemul de operare UNIX editarea legăturilor se realizează implicit, cu excepţia
cazurilor în care ea este gestionată de utilizator; în acest caz, la compilare se va specifica opţiunea
- o (numai compilare).

1.5. Alte programe de servicii

Încărcătorul
Încărcătorul este componenta sistemului de operare ce încarcă programul obiect executabil
(POE) în RAM în vederea execuţiei şi iniţializarea execuţiei.
Încărcarea programelor în RAM pentru execuţie se poate face:
- imediat după translatare, când sistemul de operare are inclus încărcătorul în compilator
(compilatoare Load and Go);
- în momentul editării de legături (încărcătorul inclus în Link);
- după editarea de legături, ca proces distinct.
Activitatea încărcătorului la sistemul de operare MS-DOS este materializată prin execuţia
funcţiei exec, în timp ce la sistemul de operare UNIX funcţia similară este execl
Sisteme operaţionale
Depanatorul
Depanatorul este un program de servicii ce oferă utilizatorului mijloace convenabile pentru
depanarea şi controlul operaţiilor programului său prin:
- lansarea în execuţie a programului;
- suspendarea execuţiei în puncte predeterminate (breakpoints) sau execuţie pas cu pas;
- examinarea şi modificarea conţinutului cuvintelor din RAM şi registre;
- realizarea de modificări şi corecţii adiţionale la rularea programului, utilizând codul binar,
octal, hexazecimal.

Sub MS-DOS există utilitarul debug, în timp ce sub UNIX se poate folosi utilitarul sdb ce
se constituie ca un depanator simbolic care permite analiza execuţiei pas cu pas a programelor, prin
vizualizarea stării variabilelor, a parametrilor ce definesc mediul de execuţie şi altele.

Alături de programele de servicii destinate acordării de instrumente ce oferă facilităţi


utilizatorilor pentru dezvoltarea propriilor programe de aplicaţie, un sistem de operare dispune de
programe de interes general care sunt lansate în execuţie prin specificarea unor comenzi aparţinând
interpretorului de comenzi sau se găsesc pe suportul de memorie externă sub forma fişierelor
executabile:

- gestiunea cataloagelor (directori, subdirectori): copiere, mutare, ştergere, creare, redenumire


etc.
- gestiunea datelor şi programelor sub forma fişierelor: creare, mutare, copiere, ştergere,
redenumire, salvare, refacere etc.;
- informaţii despre sistemul de calcul, despre componente şi despre resursele utilizate;
- opţiuni de configurare a resurselor;
- comprimare/decomprimarea spaţiu pe suportul de memorie externă: pkzip/pkunzip, arj, rar,
stacker;
- antivirus: scan, clean, tbav, fprot, avx, rav;
- alte comenzi.

1.6. Sisteme de operare la calculatoare personale

1.6.1. Categorii de sisteme de operare

La calculatoarele personale (PC) există în principal două categorii de sisteme de operare:


1) monotasking care execută un singur task (program sau parte a unui program aflat în faza de
execuţie) la un moment dat, având ca principale funcţii:
- încărcarea şi execuţia programelor;
- asigurarea unei interfeţe omogene cu dispozitivele periferice;
- posibilitatea dialogării cu utilizatorul prin intermediul unui interpretor de comenzi.
2) multitasking care va asigura suplimentar, partajarea timpului între programele ce se execută
simultan şi gestiunea alocării resurselor sistemului de calcul atât hardware cât şi software; nucleul
sistemului de operare include următoarele componente:
- supervizorul care are ca principale activităţi lansarea, oprirea sau suspendarea aplicaţiilor;
- planificatorul proceselor care reglează timpul de execuţie alocat pentru diverse activităţi.
I. alocatorul de resurse evidenţiază resursele libere sau alocate;
II. modulul de gestiune pentru intrări /ieşiri ce asigură dialogul cu perifericele.
La nucleul sistemului de operare se adaugă:
I. interpretorul de comenzi;
II. sistemul de gestiune al fişierelor;
Capitolul 1 – Funcţiile şi componentele unui sistem de operare
III. sistemul de gestiune al bazelor de date;
IV. programe de comunicaţie
Referirile s-au făcut la nucleul sistemelor de operare rezident în memoria internă, parte
componentă a programelor de comandă control; considerentele precizate la programele de sistem
rămân valabile cu specificul impus de categoria microsistemelor.
Principalele sisteme de operare existente astăzi pe PC-uri sunt: MS-DOS şi interfeţele grafice
Windows, Unix, OS/2, Apple/Macintosh DOS, VMS.
1) MS-DOS (Microsoft – Disk Operating System)
În 1981 firma Microsoft a lansat sistemul de operare IBM MS-DOS care în 1985 a devenit
standardul sistemelor de operare pe microcalculatoare cu implementarea microprocesoarelor pe 16
biţi (I 8086, I 8088) MS-DOS versiunea 3.3; versiunile ulterioare oferă facilităţi pentru desfăşurarea
activităţii utilizatorului prin punerea la dispoziţie a unor opţiuni de alegere din meniu, comparativ
cu versiunile anterioare care presupuneau cunoaşterea sintaxei fiecărei comenzi; drept urmare,
software-ul special – denumit DOS SHELL – a făcut din sistemul de operare MS-DOS un sistem
uşor de utilizat, cu meniu disponibil pentru comenzi. Ultima versiune este MS-DOS 7 sub interfeţele
grafice Windows.
Sistemul de operare MS-DOS a fost proiectat în principal, să execute un singur program
pentru un singur utilizator.
2) Digital Research Corporation a introdus câteva versiuni noi, incluzând DOS Concurent
care suporta execuţia mai multor programe în acelaşi timp (DR-DOS).
3) Apple DOS a fost introdus pe PC-urile de tip Apple, care se bazează pe microprocesoare
diferite decât cele folosite de IBM, deci incompatibil cu clasele de PC-ri de tip IBM; iniţial a fost
destinat pentru un singur utilizator care execută un program la un anumit moment.
Un sistem de operare mult mai puternic este Macintosh DOS proiectat să fie utilizat pe PCuri de tip
Apple /Macintosh DOS (implementat cu microprocesor Motorola 68040) ce permite
multiprogramare şi memorie virtuală.
Apple Computer a lansat următoarea generaţie de sisteme de operare constituită din Mac OS 8 şi
Rhapsody.
4) Interfeţele grafice WINDOWS
Windows este o interfaţă grafică orientată pe ferestre; utilizatorul poate lansa concomitent
mai multe aplicaţii, fiecare în fereastra ei, precum şi efectuarea schimbului de informaţii intre
acestea. Se consideră ca apariţia sa marchează momentul în care calculatoarele IBM şi compatibile,
au putut egala facilităţile de utilizare şi viteza calculatoarelor din gama Macintosh.
Windows 3.11. for Wokgroups, spre deosebire de Windows 3.1., dispune suplimentar de
facilităţi pentru lucru în reţea a grupurilor de utilizatori conectaţi; aceştia pot efectua transferuri de
date, mesaje, informaţii prin simpla selectare şi activare a unor comenzi şi funcţii disponibile.
Windows NT (New Tehnology) a fost proiectată în ideea compatibilităţii cu interfeţele
grafice precedente, Windows 3.1. şi Windows 3.11. for Workgroups. Sistemul Windows NT,
serverul Windows NT şi produsele legate de acesta, alcătuiesc un sistem un client-server deschis,
deosebit de puternic şi fiabil. Unul dintre avantajele majore care-l recomandă, constituie posibilitatea
implementării atât pe platforme Intel, cât şi pe platforme bazate pe microprocesoare RISC.
Windows 95 spre deosebire de versiunile precedente, încearcă să fie un compromis de sistem
de operare ce lucrează pe 32 de biţi; încorporează majoritatea facilităţilor regăsite la celelalte
interfeţe grafice, adăugând şi altele noi. Este util doar în aplicaţii pe 32 de biţi, chiar dacă păstrează
compatibilitatea cu aplicaţiile pe 16 biţi.
Windows 98 este un sistem de operare complet integrat cu Internetul, constituindu-se ca un
suport pentru noile tehnologii hardware şi păstrând compatibilitatea cu Windows 95 faţă de care
apare ca un upgrade.
Sisteme operaţionale
Windows 2000 este ultima generaţie a celui mai răspândit sistem de operare de reţea din
întreaga lume. Proiectat pentru organizaţii de orice dimensiune noua versiune oferă siguranţă sporită
şi scalabilitate, costuri mai reduse, respectiv servicii pentru aplicaţii derulate prin Internet.
5) OS/2 (Operating System / 2)
În 1988 IBM şi Microsoft a introdus sistemul OS/2 care a fost proiectat să preia avantajele
microprocesoarelor I 80286 şi I 80386 pentru seria de microcalculatoare IBM PS/2 pe 32 biţi; este
un sistem de operare multitasking, fiind capabil a adresa 16 M memorie internă; necesită 1,5 M
memorie internă şi hard disc; versiunile construite în jurul microprocesorului I 80386 sunt şi
multiutilizator (maxim 16 utilizatori simultan).
Deşi spaţiul adreselor fizice este de 16 M, prin mecanismul memoriei virtuale spaţiul
adreselor virtuale poate accesa până la 32 M.
OS/2 păstrează majoritatea comenzilor MS-DOS în special pentru operaţiile cu fişiere şi
periferice.
Pentru a permite mişcarea intre aplicaţii a utilizatorului, OS/2 dispune de o interfaţă PM
(Presentation Manager) orientată pe ferestre pentru introducerea comenzilor, selectarea taskurilor
ce se vor executa, gestiunea taskurilor şi altele; PM dispune de două programe de comandă control:
▪ controlul pentru configurarea porturilor, culorilor ecranului şi setului de caractere, etc.;
▪ utilitar pentru fişiere ce permite deplasarea prin arbori de directori, mutare, copiere, ştergere
de fişiere şi subdirectori, modificarea atributelor, sortarea şi alte operaţii.
Versiunile recente OS/2 Warp şi OS/2 Warp Connect solicită cel puţin un sistem AT 386
cu 4 M de RAM (OS/2 Warp) respectiv 8 M de RAM (Warp Connect).
OS/2 Warp este un sistem de operare ce controlează acţiunile calculatorului, dar este şi o
interfaţă grafică utilizator (GUI-Graphical User Interface), care permite comanda calculatorului, prin
selectarea de simboluri vizuale.
Dintre facilităţile disponibile la OS/2 Warp se pot enumera:
• lucrul cu mai multe programe (multitasking);
• interfaţa sistemului Warp este uşor de înţeles, de memorat;
• toate programele livrate cu Warp au aspecte grafice şi de operare similare (pachetul
Bonus
• Pak)
• OS/2 Warp facilitează conectarea la Internet (CIM)
Bonus Pak include un procesor de texte, un program de tip foaie electronică de calcul
(spredsheet), generator de diagrame, Sistem de Gestiune a Bazelor de Date (SGBD), generator de
rapoarte; utilitare pentru accesoriile: plăci audio, fax / modem, video, etc.
Conectarea la Internet se realizează on-line Compuserve cu CIM pentru OS/2, respectiv cu
Hyper ACCESS Lite la alte servicii on-line, la un Bulletin Board System sau la alt PC.
6) UNIX a fost iniţial creat pentru minicalculatoare, pentru a mări disponibilităţile sistemului:
memorie virtuală, multiutilizator şi multitasking; rescris în limbajul C, a fost portabil pe o gamă mai
largă de sisteme de calcul: mainframes, microcalculatoare, de unde şi unul din marile sale avantaje.
Actualmente, sistemele de operare UNIX sunt proiectate de mai multe firme specializate, ceea ce
a condus la existenta mai multor versiuni cum sunt: AIX, SCO-ODT, HP-UX, SOLARIS, Digital,
UNIX, IRIX, Linux, ş.a.
Trăsăturile principale ale sistemului de operare UNIX sunt:
• Sistemul de fişiere structurat pe mai multe niveluri, ceea ce permite mai multor
utilizatori să lucreze cu acelaşi calculator în acelaşi timp (multiuser);
• Orice utilizator curent poate solicita execuţia mai multor programe în acelaşi timp
(multitasking);
• Un program utilizator poate să transmită rezultatele sale altui program;
• Utilizatorul poate redirecta rezultatele programului său de la un dispozitiv periferic la
altul;
Capitolul 1 – Funcţiile şi componentele unui sistem de operare
• Existenţa unui interpretor de comenzi şi un limbaj adecvat, cunoscut sub denumirea de
Shell;
• Foloseşte un limbaj structurat numit µC, pentru programarea sistemelor;
• Includerea unor componente pentru editarea textelor şi formatarea lor pentru tipărire;
• Utilizarea de tehnici evoluate pentru conectarea sistemelor de calcul care operează sub
UNIX sau alt sistem de operare;
• Nu impune vreo limită la eventualele modificări determinate de specificul aplicaţiei.
Linux a fost dezvoltat ca o versiune distribuită gratuit de UNIX, UNIX fiind unul dintre cele mai
utilizate sisteme de operare în lume, mult timp standardul pentru staţii de lucru de înaltă performanţă
şi servere mari. Pentru că UNIX este un produs comercial, el trebuie cumpărat pentru fiecare
platformă pe care rulează. Licenţele pentru versiunile UNIX pentru PC-uri sunt destul de scumpe
şi de aceea, în tentativa de a face UNIX-ul disponibil fără costuri pentru cei care vor să-l
experimenteze, un număr important de sisteme UNIX pentru domeniul public au fost dezvoltate de-a
lungul anilor.
Una dintre primele astfel de versiuni ale UNIX-ului a fost Minix, scrisă de Andrew
Tanenbaum. Cu toate că Minix nu avea un set foarte mare de caracteristici, a fost un mic sistem de
operare ce putea fi folosit pe PC-uri. Pentru a extinde Minix-ul, un număr de programatori au
început dezvoltarea unui sistem de operare mai puternic care să profite de avantajele arhitecturii
microprocesorului I 80386. Unul din primii proiectanţi ai acestui sistem cunoscut ulterior sub numele
de Linux, a fost Linus Torvalds de la Universitatea din Helsinki. El a lansat o primă versiune a
Linux-ului în 1991. O versiune comercială, aproape fără nici un bug, a fost lansată pentru
programatori în martie 1992.
Curând, mulţi programatori au început să lucreze la Linux şi pe măsură ce provocarea şi
dorinţa de a construi un sistem de operare asemănător UNIX-ului a început să prindă, Linux-ul a
crescut cu o rată remarcabilă. Deoarece numărul celor care lucrau la Linux creştea, într-un final acest
sistem de operare a fost terminat şi acum include toate instrumentele ce se pot întâlni într-o versiune
comercialã a UNIX-ului. Linux-ul continuă să crească pe măsură ce adaptează noi caracteristici şi
programe care original, au fost scrise pentru versiunea comercială a UNIX-ului.
Linux nu se bazează pe o singură versiune de UNIX, ci este o consolidare a celor mai bune
caracteristici ale BSD UNIX şi System V. BSD UNIX a fost dezvoltat şi implementat la
Universitatea din California (Berkeley) începând din anul 1997. Câteva lansări majore au crescut
puterea lui BSD UNIX. Câteva programe standard UNIX au fost iniţial realizate la BSD, cu toate
că BSD a încetat dezvoltarea versiunilor de UNIX la începutul anilor ’90. Compania AT&T care
a realizat prima versiune de UNIX, a continuat propria dezvoltare producând o serie de versiuni
UNIX numite System III, System IV şi System V. Linux foloseşte prima lansare a lui BSD UNIX
numită 4.4 BSD ca bază şi preia câteva alte caracteristici din ultima lansare a versiunii System V,
numită System V Release 4 ( SVR4 ).
Linux este un sistem de operare complet multitasking şi multiuser care se comportă ca
sistemele de operare UNIX în termenii comportamentului nucleului şi a suportului pentru periferice
(fig.3.9). Linux are toate trăsăturile UNIX-ului, plus câteva extensii recente care i-au adăugat mai
multa flexibilitate .
Unele servicii software furnizate chiar de nucleu, au proprietăţi similare, prin urmare au fost
abstractizate în clase. De exemplu, diferitele protocoale de reţea au fost abstractizate într-o singură
interfaţă de programare numită BSD socket library. Un alt exemplu îl constituie fişierele de sistem
virtuale ( Virtual File System -VFS ) care abstractizează operaţii legate de fişiere şi pentru care
fiecare sistem de fişiere are propria implementare. Când o entitate încearcă să utilizeze un sistem de
fişiere, cererea se transmite VFS - ului care o redirecţionează către driverul pentru sistemul de fişiere
corespunzător.
Pentru a face ca Linux-ul să fie acceptat la scară largă, el suportă un număr de sisteme de
fişiere inclusiv cele compatibile cu DOS şi OS/2. Sistemul iniţial de fişiere propriu al Linux-ului
Sisteme operaţionale
numit ext2fs este proiectat pentru o utilizare optimă a discului.
Linux-ul este ideal pentru dezvoltare de aplicaţii şi experimentare cu noi limbaje. Diferite
compilatoare, inclusiv C, C++, Fortran, Pascal, Modula-2, LISP, Ada, Basic şi Smalltalk vin prin
distribuirea software-ului. Multe dintre compilatoarele Linux-ului, instrumente, debuggere şi
editoare provin de la proiectul GNU Free Software Foundation.
7) Open VMS
Open VMS, iniţial denumit VMS ( Virtual Memory System ), a fost conceput în 1976 ca un
sistem de operare pentru noua linie de calculatoare pe 32 de biţi a firmei DEC (Digital Eguipment
Corporation), numită VAX (Virtual Address eXtension ). Primul model VAX ( 11/780 ) a fost
denumit Star, de aici şi numele de cod Starlet pentru sistemul de operare VMS, nume care se
păstrează şi astăzi ca nume pentru biblioteca sistem ( STARLET.OLB). Versiunea actuală a
sistemului de operare este Open VMS 7.2
Open VMS este un sistem de operare pe 32 de biţi cu suport pentru multitasking,
multiprocesor şi memorie virtuală.
Conceput ca un sistem de operare de uz general care rulează atât în mediile de dezvoltare,
cât şi în mediile de producţie, Open VMS poate fi implementat pe toată seria de calculatoare Alpha
a firmei DEC
(actualmente un departament al firmei Compaq Computer Corporation ), cât şi pe seriile de
calculatoare VAX, Micro VAX, VAX Station şi VAX Server. Pentru ambele categorii de platforme
OpenVMS asigură facilităţi de multiprocesare simetrică ( Symmetric MultiProcessing – SMP).
Sistemul de operare OpenVMS poate fi configurat pentru a oferi performanţe maxime în
medii foarte variate ca de exemplu domenii care necesită calcule şi operaţii de intrare /ieşire intense,
medii client /server, sau execuţie în timp real. Performanţa sistemului depinde de tipul de calculator,
memoria internă disponibilă, numărul şi tipul discurilor, etc.
Versiunea 7.2 pentru platforme Alpha aduce noi facilităţi proiectate pentru a asigura un nivel
înalt de interoperabilitate între OpenVMS şi Windows NT. Aceasta oferă şi arhitectura software
Galaxy pentru OpenVMS care creşte performanţa, scalabilitatea şi siguranţa în funcţionare permiţând
mai multor instante ale sistemului de operare sã se execute simultan în acelaşi calculator sau pe un
cluster.
Cele mai importante facilităţi introduse sau extinse de către OpenVMS V7.2 sunt:
• integrarea cu Windows NT;
• arhitectura Galaxy pentru platforme Alpha;
• canale pe fibre optice pentru interconectarea mediilor de stocare într-un cluster OpenVMS;
• componenta Object Model ( COM );
• Java Development Kit;
• Netscape Fast Track Web Server;
• noi modalităţi de realizare a clusterelor ( performanţă sporită pentru baze de date mari
distribuite, management simplificat, toleranţă la defecţiuni fizice, Galaxy, etc ;)
• sistem îmbunătăţit de stocare a fişierelor;
• servicii de TCP/IP îmbunătăţite, bazate pe cele din kernelul Tru 64 UNIX;
• unelte noi pentru administrare;
• îmbunătăţiri în ceea ce priveşte performanţa, siguranţa, disponibilitatea şi securitatea
sistemului de operare;
• program de BACKUP îmbunătăţit;
• compatibilitate completă cu anul 2000.

Ultima versiune ( OpenVMS V7.2-1) include suport pentru COM V1.1 pentru OpenVMS,
canale de fibre optică pentru conectarea dispozitivelor de stocare, suport pentru multe din
standardele importante cum ar fi OSF/Motif şi OSF Distributed Computing Enviroment (DCE), Java
şi Microsoft Distributed Component Object Model (DCOM).
Capitolul 1 – Funcţiile şi componentele unui sistem de operare
La ora actuală există aproximativ 450.000 de sisteme OpenVMS instalate în întreaga lume .
Produsele Alpha/OpenVMS sunt apreciate datorită performanţei, securităţii, siguranţei în
funcţionare, facilităţilor de interconectare oferite, posibilităţilor de upgrade ulterior şi costurilor
foarte scăzute de întreţinere .
Acestea sunt dovedite şi de poziţia ocupată pe piaţă :
• numărul 1 în domeniul sistemelor integrate din domeniul medical;
• 90% din sistemele producătorilor de procesoare;
• peste 50% din sistemele de facturare;
• 66% din transferurile financiare se fac pe maşini Alpha/OpenVMS;
• 5 din cele mai mari 10 burse ale lumii;
• peste 80% din loterii.
În România, sistemele Alpha/OpenVMS/Oracle sunt folosite de către Ministerul Industriei şi
Comerţului, Mobifon ( Connex ), Registrul Independent al Acţionarilor REGISCO S.A., SNCFR şi
în sistemul bancar .
Sisteme operaţionale

EXERCIŢII

1. Care sunt asemănările şi deosebirile dintre programele de aplicaţie (software de aplicativ)


şi programele de sistem (software de bază) ?

2. Identificaţi etapele de pregătire a execuţiei programelor pe un mediu de programare


(Turbo Pascal, de exemplu), evidenţiind activitatea componentelor sistemului de operare.

3. Determinaţi structura arborescentă creată de acţiunea unui compilator asupra expresiilor:

a) E = ( a - b ) * ( c + d + e : f )
b) F = x - ( y + z ) : t
c) G = a2 - b2 : 5c
d) H = x + ( y - a + b )( z2 - t3 ) : 298 - uvw1/2
e) A = GF - EH

4. Prin ce se deosebesc esenţial translatoarele de limbaje ?

5. Corectaţi erorile de execuţie apărute la un program scris în Turbo Pascal, utilizând


depanatorul inclus în MS-DOS (se activează debug.exe).

6. Care sunt principalele sisteme de operare disponibile la calculatoarele personale


compatibile IBM ? Menţionaţi caracteristicile de bază mai semnificative.

7. Prin ce se diferenţiază semnificativ sistemele de operare care sunt proiectate pentru


calculatoarele IBM, de cele care echipează sistemele Apple şi MacIntosh ?

S-ar putea să vă placă și