Sunteți pe pagina 1din 56

UNIVERSITATEA EUROPEANĂ DRĂGAN DN LUGOJ

FACULTATEA DE DREPT

INFORMATICĂ JURIDICĂ

1
CUPRINS

1.NOŢIUNI INTRODUCTIVE .......................................................................................................................................... 3

2.SISTEME DE NUMERAŢIE ŞI CODURI NUMERICE (DIGITALE) ..................................................................................... 7


2.1. ALGEBRĂ BOOLEANĂ; PORŢI LOGICE. ................................................................................................................... 11
2.2.REPREZENTAREA OPERAŢIILOR LOGICE ŞI ARITMETICE PRIN PORŢI LOGICE ......................................................... 15
2.3 CIRCUITE INTEGRATE .............................................................................................................................................. 17
3. ALGORITMI DE PRELUCRARE AUTOMATĂ A DATELOR .......................................................................................... 19
3.1. REPREZENTAREA ALGORITMILOR DE PRELUCRARE CU AJUTORUL CALCULATORULUI ......................................... 20
3.2.STRUCTURI FUNDAMENTALE DE PRELUCRARE ...................................................................................................... 21
4. ORGANIZAREA DATELOR SI FIŞIERELOR................................................................................................................. 28
4.1. INTRODUCERE ....................................................................................................................................................... 28
4.2. ÎNREGISTRĂRI ........................................................................................................................................................ 30
4.3. LISTE LINEARE ÎNLĂNŢUITE.................................................................................................................................... 32
5. SISTEME DE OPERARE ........................................................................................................................................... 35

6. REŢELE DE CALCULATOARE-PROTOCOALE ............................................................................................................. 38


6.1. TOPOLOGII ALE REŢELELOR ................................................................................................................................... 38
6.2. MODELUL TCP/IP ................................................................................................................................................... 41
7. NOŢIUNI GENERALE ALE BAZELOR DE DATE .......................................................................................................... 42
7.1. SISTEMUL DE BAZE DE DATE ................................................................................................................................. 43
7.2. TIPURI DE SISTEME DE BAZE DE DATE: .................................................................................................................. 44
7.3. SISTEMUL DE GESTIUNE AL BAZEI DE DATE ........................................................................................................................ 46
8. ASPECTE GENERALE ALE SECURITĂŢII ÎN MEDIUL VIRTUAL .................................................................................... 48
8.1. SECURITATEA PRIN FIREWALL ............................................................................................................................... 48
8.2. PROTECŢIA TRANZACŢIILOR .................................................................................................................................. 51
BIBLIOGAFIE: ............................................................................................................................................................. 56

2
1.NOŢIUNI INTRODUCTIVE

Datele reprezintă materializarea, reprezentarea informaţiei, iar informaţia este echivalentă


cu cunoştinţe noi si se referă la aspectul semnatic al inţelesului datelor.
Procesul de transformare date – informaţii poate fi executat in doi paşi:
- interpretare: produce ca ieşire mesaje conceptuale (reprezentând inţelesul semantic al
mesajului de date interpretat de receptor);
- derivare: mesajul conceptual din faza anterioară este analizat comparativ cu vechile
cunostinţe şi poate produce noi cunostinţe, analiza sau elimina pe cele vechi.
Formal o dată atomică (elementară) poate fi definită utilizând tuplul < nume-obiect,
proprietate, valoare, timp >. Uzual o idee sau un fenomen se referă la un obiect, la aspecte ale
acestuia (proprietaţi) care pot fi deduse dintr-o anumită valoare la un moment dat (timp). (Timpul
nu este relevant!)
Modelarea datelor are drept scop organizarea astfel incât să reprezinte cat mai compact şi
fidel realitatea şi sa poată fi utilizate pentru o prelucrare cat mai uşoară.
Modelarea datelor se referă la două aspecte:
- definirea unei interfeţe prin care un utilizator să poată transmite calculatorului ce trebuie sa
facă;
- organizarea informaţiilor în sistem astfel incât să se medieze conflictul dintre necesităţile
de reprezentare şi percepţie ale utilizatorului şi necesităţile impuse de folosirea unui cadru
formal abstract cum este cel al calculatorului.
 Conceptul de sistem simplifică fenomene care sunt complexe şi aparent fără nici o legatură.
Sistemul ar putea fi definit ca un ansamblu de elemente (E) intercorelate funcţional care
acţionează intr-un anumit scop (Z). Orice sistem este legat de un anumit mediu, are o
anumită structură şi funcţionează după anumite reguli.
Xi Y
Sistem

Conceptul de sistem (de mai sus) se caracterizează prin:


- multimea E de elemente intercorelate funcţional:
- intrările sistemului (Xi) (fenomen produs de mediu cu efect asupra S);
- procesele P (reprezintă secvenţa planificată de operaţii cu un inceput (START) şi sfârşit
(STOP);
- ieşirile Y (fenomen măsurabil produs de sistem);

3
- starea sistemului;
- scopul (obiectivul) :reprezintă raţiunea sa de existenţă.
Sistemele pot fi de două tipuri:
- închise (nu permit schimb de informaţii);
- deschise (schimb de informaţii cu mediul).
Proprietăţile sistemului sunt:
- statice (invariante in timp);
- dinamice (dependente de timp).
 Sistemul informaţional are reguli prin care determină ce date sunt acceptate, cum
sunt prelucrate aceste date in vederea transformării lor în informaţii, ce informaţii vor fi raportate şi
in ce format. Dacă procesul de transformare a datelor în informaţii este realizat de un program de
aplicaţie vom avea un sistem informatic inclus in cadrul sistemului informaţional.
Conceptul de dată formează elementul de bază al sistemului informaţional. Datele sunt
memorate şi intreţinute de către procese care crează, modifică şi sterg aceste date.
Sistemului de control (Management System / Control System) ii corespunde cel mai inalt
nivel de decizie/comandă.
Sistemul informaţional poate fi definit ca un ansamblu tehnico-organizatoric de proceduri de
constatare, consemnare, culegere, verificare, transmitere, stocare şi prelucrare a datelor în scopul
satisfacerii cerinţelor informaţionale necesare conducerii in procesul de elaborare a deciziilor.
 Arhitectura sistemelor informatice este construită pe baza a trei elemente:
- modelul datelor - mulţimea formală de reguli care specifică cum sunt reprezentate datele şi o
mulţime de operatori pentru manipularea acestora;
- baza informaţională - reprezentată de un sistem de stocare a datelor al cărui scop este de a
intreţine datele şi a le face disponibile
o centralizată – baza de date memorată pe un calculator;
o distribuita – colecţiile care compun baza de date sunt fragmentate
- prelucrarea datelor – asigurată de programe de aplicaţie activate de utilizatori finali.
 Sisteme de calcul, Primele sisteme de calcul au fost:
o Mark I (1939-1944);
o Eniac (1943-1946);
o Edvac sau Eniac I (1950).
In 1945, matematicianul John von Neumann a stabilit structura logică de bază a
calculatorului cu program memorat (virtual, această structura se regăseşte si astăzi), şi anume:

4
Intrare Memorie Iesire

Unitate
de
calcul

Unitate de
comanda

Calculatoarele nu sunt inteligente şi nu pot face altceva decât ceea ce au fost programate.
Un sistem de calcul este compus din două elemente fundamentale:
I. Hardware – părţile fizice ale calculatorului;
II. Software – face un calculator capabil să stocheze, să prelucreze şi să regăsească
informaţii
a. Programe de sistem – gestionează şi controlează funcţionarea calculatorului
(S.O.);
b. Programe de aplicaţie – rezolvă probleme pentru utilizatori.

Un calculator numeric (digital) poate fi definit ca o maşina electronică digitală capabilă să


memoreze date/ informaţii şi instrucţiuni şi să execute aceste instrucţiuni.
Funcţional, calculatorul are trei coimponente hardware principale:
(1) memorie – zona de lucru a calculatorului;
(2) procesor (microprocesor PC) – partea calculatorului proiectată pentru a trata sau executa
programele (secvenţa de comenzi).
Acesta interacţionează cu circuitele electronice din jurul sau in trei moduri:
- acces direct/indirect la memorie;
- prin intermediul porturilor;
- prin intermediul intreruperilor.
(3) periferice (dispozitive de I/O):
a. unităţi de intrare;
b. unităţi de ieşire;
c. unităţi de intrare/ieşire.

5
Familia calculatoarelor personale leagă impreună toate circuitele interne de control printr-un
circuit, si anume, magistrală (BUS). O magistrală este o cale comună pe placa de bază la care sunt
ataşate toate componentele calculatorului. Magistrala este divizata in patru parţi:
- linii de alimentare electrică (power lines);
- linii de control (control bus);
- linii de adrese (adress bus);
- linii de date (data bus).
Sistemul informatic este definit ca fiind un ansamblu de elemente intercorelate funcţional, în
scopul automatizării obţinerii informaţiilor necesare conducerii în procesul de fundamentare şi
elaborare a deciziilor.
Sistemul informatic este parte componentă a sistemului informaţional şi are ca obiect de
activitate procesul de culegere, verificare, transformare şi prelucrare automată a datelor.

SISTEMUL INFORMAŢIONAL

SISTEMUL DE MANAGEMENT

SISTEMUL
INFORMATIC

SISTEMUL CONDUS

Fig.1.2. Locul sistemului informatic

Prin implementarea modelelor matematice şi utilizarea tehnicii de calcul, sistemul


informatic imprimă valenţe sporite sistemului informaţional sub aspect calitativ şi cantitativ.
Asistăm la o creştere a capacităţii de calcul sub aspectul volumului datelor de prelucrat şi a
operaţiilor de efectuat, creşterea exactităţii informaţiilor, sporirea operativităţii şi complexităţii
situaţiilor de informare-raportare, etc. Aceste aspecte determină o apropiere mai mare a celui ce ia
deciziile de fenomenele şi procesele economice pe care le are în atenţie, cu multitudinea aspectelor
economice pozitive ce derivă din acestea.
Se poate aprecia că sistemul informatic tinde a egala sfera de cuprindere a sistemului
informaţional, însă aceasta nu va fi posibil niciodată datorită limitelor sistemului informatic. În

6
cadrul sistemului informaţional vor exista întotdeauna o serie de activităţi ce nu vor putea fi
automatizate în proporţie de 100%.

2.SISTEME DE NUMERAŢIE ŞI CODURI NUMERICE (DIGITALE)

Pentru automatizarea calculelor va fi necesar să reprezentăm regulile şi aplicaţiile lor ca


simboluri, ceea ce implică existenţa unui corespondent fizic, unic pentru fiecare simbol. Dacă avem
de reprezentat prea multe simboluri calculatorul poate deveni prea complex, acest fapt ducând la
numărul minim de simboluri (0,1). Folosind doar aceste simboluri apare o altă problemă: cum
reprezentăm sutele de simboluri în termenii celor două. Cele două simboluri se numesc biţi iar
soluţia de reprezentare o constituie utilizarea şirurilor de biţi cu diverse semnificaţii.

Date reale

Date reprezentate ca Date reprezentate ca şiruri


simboluri normale de biţi

Operare normală Operare pe şiruri de biţi

Rezultate reprezentate Rezultate reprezentate ca


simboluri normale şiruri de biţi

Rezultatul prelucrării

Fig 2.1. Paralelă între prelucrarea manuală şi prelucrarea automată.

Cerinţa fundamentală la care trebuie să răspundă un calculator este dată de abilitatea sa de


reprezentare, stocare şi efectuare a operaţiilor.

7
Numerele pot fi reprezentate în diferite sisteme de numeraţie, dintre care cele mai utilizate
sunt: binar, octal, zecimal şi hexazecimal.

 Reprezentarea generală a numerelor


Numerele folosite în activitatea zilnică vor fi exprimate în cele ce urmează într-un format
general.
Un întreg este reprezentat la modul general ca [  ] n , nIN unde parantezele drepte care
delimitează semnul arată că acesta este opţional. Prin convenţie numerele pozitive nu au semnul
precizat.
Definiţie: o secvenţă (succesiune) de cifre anan-1an-2…a0 este o reprezentare a unui număr
întreg N în baza b (notat N(b)) dacă şi numai dacă satisface proprietăţile:
-cifrele an,an-1, … ,a0 sunt numere naturale şi respectă restricţia:

0  aI  b-1, i= 1, n
-avem egalitatea:
N(b)= an*bn + an-1*bn-1 + … +a0 *b0.
Observaţie:Pentru un număr dat N şi o bază b vom avea o singură reprezentare şi numai una
în baza b.
În secvenţa de mai sus an reprezintă cifra cea mai semnificativă, iar a0 cifra cea mai
nesemnificativă.
Un număr real are reprezentarea generală [  ] n,m cu n reprezentând partea întreagă, m
respectiv partea fracţionară a numărului.
Definiţie: secvenţa de cifre anan-1 … a0,a-1a-2 …a-m se spune că este o reprezentare în baza b
a numărului R dacă şi numai dacă:
- cifrele an, an-1, … , a0 , a –1, a-2, … , a-m sunt naturale şi îndeplinesc condiţia: 0  aI  b-1,

i=  m, n
- nu există un rang j astfel încât : aj=aj-1-aj-2=b-1
- avem egalitatea:
R(b)=an*bn +an-1*bn-1+ … +a0*b0+a-1*b-1+ a-2*b-2+ … +a-m*b-m.

Conversia zecimal-binar se poate realiza prin două metode uzuale:


-(1) metoda prin scădere repetată;
-(2)metoda împărţirii şi multiplicării.
(1)Metoda prin scădere repetată:

8
Pas1: Se scade cea mai mare putere a lui 2 care este mai mică sau egală cu numărul şi se
plasează un 1 binar în poziţia corespunzătoare rangului său.
Pas2: Dacă următoarea putere din rang nu poate fi scăzută din rezultatul rămas din pasul
precedent se trece 0 binar în poziţia rangului respectiv.
Pas3: Dacă rezultatul scăderii este 0, atunci procesul de conversie se opreşte, altfel se
continuă cu pasul 1.

Exemplu : 67,5625(10)= ?(2)


67
-64  26
3
-2  21
1
-1  20  67(10)= 1000011(2)

0,5625
-0,5  2-1
0,0625
-0,0625  2-4  0,5625(10)=1001(2)
adică 67,5625(10)=1000011,1001(2).

(2) Metoda împărţirii şi multiplicării:


Considerăm un număr real R în baza b scris ca R(b) acesta poate fi reprezentat ca sumă a
numărului reprezentând partea întreagă şi a numărului reprezentând partea fracţionară astfel:
R(b)= RI(b)+RF(b)
Un număr întreg poate fi reprezentat ca sumă a produselor cifrelor sale cu puterile bazei
corespunzătoare rangului respectiv:
RI(b= an*bn + … +a0*b0
Analog, într-o bază q acelaşi număr poate fi scris:
RI(b)=a`m*qm + … +a`0*q0
Deoarece cele două reprezentări sunt egale pentru conversie trebuie să găsim valorile
coeficienţilor a`n, a`n-1, … , a`0.
Pentru a determina aceşti coeficienţi metoda utilizată este:
Pas1: Se împarte numărul la noua bază şi se obţine un cât şi un rest astfel:
RI(b)/q=a`m*qm-1+ a`m-1*qm-2+ … +a`1*q1-1+a`0*q0  a`0
Pas2: Dacă câtul este diferit de 0 atunci practic avem o nouă parte întreagă şi se trece la
pasul 1, iar în caz contrar (câtul este 0) procesul de conversie este oprit.
Observaţie: Coeficienţii astfel determinaţi se scriu în ordinea inversă a determinării lor.

9
Numărul fracţionar RF(b) poate fi scris ca 0, a-1a-2…a-m sau ca sumă de produse a
coeficienţilor cu puterile bazei:
RF(b=a-1*b-1+a-2*b-2+ … +a-m*b-m, sau intr-o altă bază q poate fi scris:
RF(b=a`-1*q-1 +a`-2*q-2+ … +a`-l*q-l.
Pentru determinarea valorilor coeficienţilor a`-I procedăm după următorul algoritm:
Pas1: se înmulţeşte numărul RF(b) cu noua bază şi se obţine o parte întreagă şi o parte
fracţionară. Partea întreagă obţinută reprezintă valoarea cifrei în baza q .
Pas2: dacă partea fracţionară este 0 atunci procesul se opreşte.
Pas3: dacă partea fracţionară nu este 0, atunci se continuă cu pasul 1 (până la obţinerea
preciziei de reprezentare dorite).
Exemplu: 67,5625(10)= ?(2)

67 2
66 33 2
1 32 16 2
1 16 8 2
0 8 4 2
0 4 2 2
0 2 1 2
0 0 0
1  67(10)= 1000011(2)

0,5625*2= 1,1250 1
0,1250*2= 0,2500 0
0,2500*2= 0,5000 0
0,5000*2= 1,0000  1  0,5625(10)=1001(2)

 Organizarea şirurilor de biţi:

Pentru a manipula datele sub formă binară acestea sunt grupate în agregate mai largi în care
grupuri de biţi au diverse semnificaţii.
O cifră binară este referită în mod uzual ca un bit. Pentru partea întreagă bitul cel mai din
stânga al numărului (diferit de 0, 0-urile fiind nesemnificative) este denumit bitul cel mai
smnificativ, respectiv cel din dreapta părţii intregi fiind bitul cel mai puţin semnificativ.
Evoluţia calculatoarelor şi a echipamentelor de prelucrare a datelor a avut loc în jurul unei
unităţi de măsură a schimbului de informaţii între dispozitive implicate în reprezentarea pe 8 biţi.
Această unitate de 8 biţi este referită ca un byte . Byte-ul este utilizat pentru a reprezenta un caracter
din setul de caractere acceptat de calculator cum ar fi caracterele de tip text sau caractere grafice.
Calculatorul este compus dintr-un număr mare de celule sau registre utilizate pentru
memorarea (stocarea) informaţiei binare. Majoritatea regiştrilor aceluiaşi calculator sunt de aceeaşi

10
lungime de n biţi. Fiecare registru poate fi utilizat pentru a manipula informaţii sau date
reprezentate pe n biţi, iar informaţia stocată într-un registru este denumită cuvânt.

Bit

byte

cuvânt (word)
Reprezentarea generală a unui număr:

S an an-1 … a1 a0 a-1 a-2 … a-m

0, pozitiv
Unde s= 
1, negativ
2.1. ALGEBRĂ BOOLEANĂ; PORŢI LOGICE.

Bazele acesteia au fost introduse în anul 1854 de către matematicianul englez G. Boole în
lucrarea “ An Investigation of the Law of Thought”.
Logica este ştiinţa care studiază formele şi legile adevărului, iar logica matematică este
ştiinţa care utilizează modelele matematice pentru rezolvarea problemelor logice.
Algebra booleană este de fapt un limbaj formal care permite să exprimăm compunerea
funcţiei logice într-un mod convenabil.
În algebra booleană o propoziţie poate fi adevărată sau falsă, dar niciodată adevărată şi falsă
în acelaşi timp. Două propoziţii sunt echivalente dacă sunt fie adevărate, fie false în acelaşi timp.
Algebra booleană este o mulţime de elemente B2 cu două legi de compoziţie notate +(sau  )
şi * (sau  ) numite sumă respectiv produs boolean şi o lege de coplementare notată “-” (not)
Funcţiile logice pot fi reprezentate prin ecuaţii logice sau prin tabele de adevăr.
Ecuaţiile logice corespondente funcţiilor logice asociate legilor de compoziţie de mai sus
sunt :
- funcţia SAU logic (OR): f(x,y) = or (x,y) = x+y = x  y
- funcţia ŞI logic (AND) : f(x,y) = and (x,y) = x*y = x  y

- funcţia NU logic (NOT): f(x,y) = not(x) = x .


Reprezentarea acestor funcţii prin tabele de adevăr este următoarea:
Tabela de adevăr a funcţiei SAU (OR) :

11
x y x+y
0 0 0
0 1 1
1 0 1
1 1 1
Tabela de adevăr a funcţiei ŞI (AND) :
x y x*y
0 0 0
0 1 0
1 0 0
1 1 1

Tabela de adevăr a funcţiei NU (NOT) :


x x
0 1
1 0

O funcţie care returnează valoarea 1 când valorile celor două intrări sunt diferite este funcţia
booleană xor (sau exclusiv) care are următoarea tabelă de adevăr:
x y xor(x,y)=( x *y)+(x* y )
0 0 0
0 1 1
1 0 1
1 1 0

O variabilă binară x poate avea două valori 0 şi 1 ceea ce ne permite să afirmăm că orice
variabilă binară aparţine mulţimii B2 .
Funcţia booleană de o variabilă este definită ca f: B2  B2.
Fie a,b două constante, atunci:

-f1(x)=a*x +b* x este referită ca Forma Normală Disjunctă (FND);

-f2(x)=(a+x)*(b+ x ) este referită ca Forma Normală Conjunctivă (FNC).


Valoarea coeficienţilor a şi b este unică şi se poate determina prin evaluarea funcţiilor
respective.

12
Funcţia booleană de două variabile este definită ca f: B2  B2  B2, şi similar cazului
precedent vom avea:

-f1(x,y)=a*x*y+b* x *y+c*x* y +d* x * y (FND)

-f2(x,y)=(a+x+y)*(b+ x +y)*(c+x+ y )*(d+ x + y ) (FNC)

Similar logicii booleene, logica digitală utilizează trei circuite electronice fundamentale
denumite poarta SAU ( OR Gate), poarta ŞI ( AND Gate) şi poarta NU (NOT Gate).
Un comutator binar (binary switch) operează pe baza a două nivele de semnal: slab (low-0)
şi înalt (high-1). Pentru majoritatea calculatoarelor valoarea înaltă corespunde unui semnal între 2-5
volţi iar semnalul slab între 0-1. Văzut din afară un comutator are patru pini: doi utilizaţi ca linii de
intrare (I1, I2), unul ca ieşire (notat O) şi unul ca linie de selecţie (S). Funcţionarea este bazată pe
nivelul pe nivelul de semnal pe linia de selecţie care desemnează care dintre intrări este selectată,
cum ar fi :
-valoare slabă la linia de selecţie  intrarea I1 (a)
-valoare înaltă la linia de selecţie  intrarea I2 (b).

I1

semnal slab
(0)
Linia de selecţie O

I2

(a)

I1

semnal înalt (1)

linia de selecţie O

I2
(b)
Fig. Comutatoare binare-vedere exterioară

În condiţiile descrise mai sus funcţiile SAU, ŞI, NU pot fi reprezentate după cum urmează:

13
I1

Comutator SAU
S O
I2

I1
S O
Comutator ŞI

I2

I1

S O
Comutator NU

I2

Poarta SAU (OR Gate) implementează funcţia logică SAU şi este simbolizată :

x
x+y
y
Poarta ŞI (AND Gate) implementează funcţia logică ŞI este simbolizată:

x x*y

y
Analog, poarta NU (NOT Gate) este reprezentată grafic:

x x

14
2.2.REPREZENTAREA OPERAŢIILOR LOGICE ŞI ARITMETICE PRIN PORŢI
LOGICE

Calculatoarele electronice digitale funcţionează conform regulilor definite de algebra


booleană, reguli care au la bază cele trei operaţii logice ŞI,SAU şi NU. Un calculator digital nu
trebuie să simuleze numai logica ci şi operaţii aritmetice.

Funcţia xor cu tabela de adevăr descrisă mai sus, având ecuaţia xor(x,y)=( x *y)+(x+ y )
poate fi transpusă în circuit digital după cum urmează:

x
x* y

xor

x *y
y

În cazul în care considerăm funcţia and4(a,b,c,d)= a*b*c*d implementarea acesteia prin


circuite logice presupune utilizarea funcţiilor de bază SAU; ŞI; NU. Toate aceste funcţii primesc la
intrare doar două variabile ceea ce permite aranjarea funcţiei în următorul fel:
and4(a,b,c,d)=((a*b)*(c*d))
a
a*b
b (a*b)*
(c*d)
c
c*d
d

15
Considerăm două numere binare x, y pentru care vom implementa un sumator. Folosind
adunarea binară, observăm că suma a două numere binare este este similară funcţiei xor la care se
adaugă un report în cazul în care ambele variabile au valoarea 1, ceea ce poate fi exprimat printr-un
ŞI logic. Circuitul digital capabil să adune două cifre binare este următorul:

x
x* y
suma

y x *y

report

Calculatoarele manipulează şiruri de biţi pe care le transmit de la o componentă la alta.


Pentru a verifica dacă ceea ce s-a recepţionat este corcet se utilizează o metodă de determinare a
parităţii (pare sau impare) care se referă la faptul că numărul de cifre 1 din şir este par sau impar.
O funcţie care determină paritatea impară pentru un şir de trei biţi este odd3, cu tabela de
adevăr următoare:

odd3= ( x * y *z)+( x *y* z )+(x* y * z )+(x*y*z)


x y z Odd3
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 1

16
2.3 CIRCUITE INTEGRATE

Calculatorul trebuie să execute o multitudine de operaţii condiţionale. Condiţiile pot fi


reprezentate prin includerea variabilelor logice şi a conexiunilor dintre ele într-o funcţie, care într-o
stare ulterioară a calculatorului poate deveni variabilă.
Algebra booleană are o mare utilitate la analiza şi sinteza automatelor finite. Un automat
finit este compus dintr-o mulţime de elemente, conectate prin circuite, astfel încât fiecare element
va lua parte la cel puţin o intrare în circuitele automatului.
Funcţiile ŞI, SAU sunt independente de timp deoarece ele se referă la stări ale elementelor
nedefinite în timp. Dacă elementele sau circuitele electronice au proprietatea “ dacă la intrare se
aplică semnalul x(t) iar la ieşire se obţine f(t+  ), unde  este întârzierea”, acestea sunt numite
circuite cu întârziere.
Un circuit cu întârziere se reprezintă grafic:

x(t) f(t+  )

şi îi corespunde funcţia: f(t+  )=x(t) cu tabela de adevăr:

x(t) f(t+  )
0 0
1 1

Întârzierea poate fi reprezentată de :


- o întărziere a circuitului ca urmare a proceselor fizice care apar la transmiterea semnalului
electric;
- o perioadă de ceas (tact);
- un semnal de sincronizare a circuitelor, etc.
Dacă circuitelor logice SAU, ŞI le ataşăm întârzierea vom avea funcţii secvenţiale în care
timpul va reprezenta o variabilă independentă, astfel:
f1=  (x*y)  f1(t+  )=x(t)*y(t);
f2=  (x+y)  f2(t+  )=x(t)+y(t);

Cu tabela de adevăr:

17
x(t) y(t) f1(t+  ) f2(t+  )
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1

Aceste funcţii sunt utilizate în dispozitivele logice şi aritmetice ale calculatoarelor.


Din cele discutate mai sus rezultă faptul că porţile logice şi digitale pot fi utlizate ca
elemente de bază l aconstrucţia calculatoarelor.
Deoarece construirea unor circuite complexe prin utilizarea porţilor independente devine
complicată şi ineficientă s-au construit circuite integrate, referite cu denumirea de chip, ca o colecţie
de porţi şi inerconectările lor grupate împreună pentru a forma un singur dispozitiv cu un număr de
pini conectaţi la liniile de intrareşi ieşire ale unor anumite porţi.
Integrarea oferă următoarele avantaje:
- în acelaşi chip putem plasa mai multe funcţii booleene ceea ce ne permite să minimizăm
numărul de porţi necesare.
- decât să avem chip-uri specializate care trebuie cumpărate separat este preferabil să
avem chip-uri generalizate şi să selectăm operaţia de care avem nevoie.
Un astfel de bloc funcţional generalizat poate fi proiectat în următorii paşi:
Pas1: specificarea tuturor intrărilor şi ieşirilor blocului;
Pas2: construirea unei tabele de adevăr;
Pas3: prin utilizarea tabelei de adevăr se vor modela funcţiile blocului scrise în FCC şi FCD;
Pas4: se aplică una din metodele de simplificare a funcţiilor booleene;
Pas5:ecuaţia logică simplificată va fi implementată cu porţi logice digitale.

18
3. ALGORITMI DE PRELUCRARE AUTOMATĂ A DATELOR

Algoritmul reprezintă conceptul fundamental al programării calculatoarelor. Un algoritm


este reprezentat de un set de reguli (Ri) care poate fi aplicat unei clase de probleme (CPi) de acelaşi
tip pentru a obţine soluţia (S) prin intermediul anumitor operaţii secvenţiale (OSi) unice startate
eventual cu anumite condiţii iniţiale (CIi):
S = Ri (OSi (CPi([CIi]))).
Scopul unui algoritm este acela de a găsi metode generale de rezolvare a problemelor cu
ajutorul calculatorului.
Orice algoritm trebuie sa aibă următoarele proprietăţi:
- Generalitate: algoritmul trebuie sa permită rezolvarea unei clase de probleme, şi nu
probleme particulare;
- Finalitate: numărul de transformări intermediare aplicat informaţiei iniţiale CIi pentru a
obţine informaţia finală S trebuie sa aibă sfarşit. Transformările intermediare sunt introduse
prin regulile algoritmului, iar algoritmul trebuie să specifice condiţia de oprire (stopare) a
activităţii sale, astfel incât, după execuţia paşilor săi răspunsul sa fie gata de citit;
- Claritate: algoritmul trebuie să specifice complet toate etapele care trebuiesc realizate
pentru a obţine soluţia corectă a problemei.
Conceptul de algoritm nu este nou (nu a fost creat odata cu apariţia calculatorului). Iniţial,
definiţia sa permitea rezolvarea unei probleme prin operaţii secvenţiale univoce, realizabile
automat, fără intervenţia umană. Primele lucrări de definire matematică a algoritmilor au fost
realizate de A.Markov, A.N.Kolgomorov, V.A.Uspenski s.a.m.d. După apariţia calculatoarelor,
teoria algortimilor a fost foarte mult dezvoltată.
O problemă este prelucrabilă cu calculatorul dacă nu cere foarte multe operaţii elementare
(timp de calculator) sau prea multă memorie pentru stocarea datelor de prelucrat sau a rezultatelor
(intermediare sau finale).
Unul din scopurile teoriei matematice este de a găsi metode generale (algoritmi) de pregatire
a problemelor (formalizare, design) astfel incât sa fie posibilă prelucrarea lor. Dacă initial teoria
matematică este utilizată pentru a stabili daca o problemă este prelucrabilă şi soluţia sa are un
anumit grad de rigurozitate şi este fezabilă, astăzi, prin apariţia unor noi ştiinţe (cum ar fi:
modelarea sistemelor cibernetice, proeictarea sistemelor informatice, etc..) şi prin progresele
obţinute in formalizarea algoritmilor fundamentali, aspectul care contează este fezabilitatea.
Studiul prelucrabilităţii problemelor cu soluţie fezabilă acţionează către o abstractizare si
formalizare astfel incât problema să devina înţeleasă de calculator. Pentru utilizarea acestui lucru au

19
fost create „limbaje specifice” (conţinând simboluri, litere, cuvinte si reguli de execuţie a
operatorilor) cu un set de reguli sintactice care elimină orice ambiguitate.
In acest context pregătirea unei probleme in vederea rezolvării sale cu ajutorul calculatorului
presupune:
a) abstractizarea si formalizarea sa
b) determinarea soluţiei,
c) formularea regulilor de transformare.

3.1. REPREZENTAREA ALGORITMILOR DE PRELUCRARE CU AJUTORUL


CALCULATORULUI

Pentru reprezentarea algortimilor se folosesc două metode:


- o metodă grafică care utilizează un număr restrâns de simboluri grafice denumita diagrama
de flux (flowchart);
- o metodă narativă care utilizează un set redus de cuvinte şi reguli de formare a frazelor
denumită pseudocod. Pentru uşurarea activităţii de programare setul de cuvinte şi regulile de
formare a frazelor sunt derivate din limbajul de programare avut in vedere pentru realizarea
programelor sau din limbajul Pascal creat iniţial pentru reprezentarea algoritmilor.
Diagramele de flux sunt utilizate de către proiectanţii de sisteme informaţionale (inclusiv
informatice) in trei scopuri, pentru a defini:
- diagrame de flux a documentelor (document flowchart – schema fluxului documentelor);
- diagrame de descriere a fluxului proceselor (process flowchart – schema fluxului
prelucrărilor sau schema bloc de prelucrare);
- diagrame de descriere a proceselor (process flowchart – schema logică a programului).
O diagramă de flux a documentelor ilustrează ce se intamplă cu copiile unui singur
document din momentul producerii lor (creării) şi până în momentul în care sunt arhivate într-un
dosar sau ajung la un terţ.
O diagramă de proces arată datele şi operaţiile pentru un singur proces. Daca procesul este
complex, complexitatea sa este ilustrată printr-o multitudine de astfel de diagrame.
O schemă logică (diagrama de flux a programului) ilustrează datele, paşii de prelucrare si
logica operaţiilor de prelucrare precum şi orice alte detalii de prelucrare (cum ar fi: comentarii,
indicaţii de realizare, etc.). Scrierea în ordine a frazelor care descriu blocurile care compun o
schemă logică formează pseudocod.

20
Pseudocodul reprezintă un set succint de instrucţiuni (pentru programator) derivat, în
general, din sintaxa limbajului în care va fi programata aplicaţia.
La descrierea schemelor logice sunt utilizate simboluri grafice cu semnificaţie, dintre care
prezentăm succint o parte, frecvent utilizată, în tabela următoare:

Start/Stop-simbolizează
începutul şi sfârşitul unei
scheme logice

Proces/Bloc de calcul-
reprezentarea formulelor de
calcul

Procedură-apelul unei
proceduri sau alt proces

Decizie-alegerea între două


fluxuri

Pregătire/Transformare –
operaţii de
închidere/deschidere a
fişierelor

Intrare/ieşire-operaţii de
citire/scriere a datelor

Conector în cadrul paginii

Conector între pagini

Flux- legătura de la … la

3.2.STRUCTURI FUNDAMENTALE DE PRELUCRARE

Orice algoritm poate fi reprezentat ca o combinaţie a trei structuri de control:


1. structura secvenţială (proces);
2. structura alternativă (decizie);
3. structura repetitivă (ciclu cu condiţie evaluată la început).

21
Din aceste structuri de bază au derivat şi sunt utilizate în programare şi următoarele structuri
de control:
4. decizie multiplă exclusivă – permite alegerea dintr-o multitudine de alternative pe baza
evaluării unei condiţii (case of/select case);
5. ciclu cu condiţie evaluată la sfarşit;
6. ciclu contorizat.

1. Structura secvenţială – este o secvenţă de instrucţiuni sau comenzi conţinând


„transformări ale datelor”. Instrucţiunile din secvenţa sunt procesate una câte una în ordinea lor
secvenţiala de definire.

Structura secvenţiala este reprezentată ca:


Error!

unde T semnifica o transformare de date.


2. Blocul decizional – permite alegerea unei alternative (o operaţie reprezentată de una sau
mai multe instrucţiuni) din două alternative. Un program alege paşii de prelucrare (de parcurs) prin
testarea valorii condiţiilor, condiţii care pot avea două stări: Adevărat (True) sau Fals (False).

conditie
Adevărat Fals

Operatie 1 Operatie 2

Interpretarea acestui bloc in limbaj natural este:


- se evaluează condiţia logică <condiţie>;
- dacă (If) rezultatul evaluării este Adevărat atunci (Then) execută <operaţie1> altfel (Else)
execută <operaţie2>;
- continuă execuţia programului cu următoarea instrucţiune.

22
Condiţia logică <condiţie> este o expresie logică care va fi evaluată la Adevărat sau Fals.
Condiţiile logice pot fi simple sau compuse.
Este posibil ca structura alternativă să nu aibă o operaţie specifică pe ambele ramuri (ramura
Else poate lipsi!).
Blocul de decizie corespondent poate fi interpretat astfel: dacă (If) condiţia este Adevărată
(True), atunci (Then) execută setul de instrucţiuni cuprins între If şi End If.

condiţie
Adevărat

Operaţie 1

Blocul de decizie poate fi exprimat în limbaj natural astfel:


- evaluează condiţia;
- dacă (If) rezultatul este Adevărat (True) atunci (Then) execută <operaţie>;
- altfel (Else) continuă execuţia programului.
3. Instrucţiunile de ciclare – permit execuţia repetată a unei secvenţe de instructiuni în
conformitate cu rezultatul evaluării unei condiţii.

Nu
condiţie

Da
operaţii

Execuţia unui astfel de bloc se desfăşoară conform scenariului:


- se evaluează condiţia;
- dacă rezultatul evaluării este Adevărat atunci execută <operaţii> după care controlul este
pasat la reevaluarea condiţiei <condiţie>;
- dacă rezultatul evaluării este Fals atunci termină execuţia ciclului şi continuă execuţia
programului.

23
Dacă, pentru prima dată, condiţia nu este evaluată la Adevărat atunci ciclul nu va fi executat
niciodată.

4. Blocul de decizie multiplă exclusivă – serveşte la alegerea unei alternative dintr-o


multitudine de alternative, alternativă determinată prin utilizarea unui selector (expresie de testat).
În literatura de specialitate structura este referită drept CASE OF (cazul lui).
Selector

Expresii 1 Expresii 2 Expresii n


Operaţii1 Operaţii2 Operaţiin

5. Ciclul cu condiţia evaluată la sfarşit – diferenţa dintre această instrucţiune şi cea


prezentată la 3 este aceea că blocul de instrucţiuni este executat cel puţin o dată.

operatii

conditie
Fals (Nu)

Adevarat
(Da)

Funcţionarea acestui bloc poate fi descrisă astfel:


- execută <operaţii>;
- evaluează condiţia <condiţie>;
- dacă condiţia este evaluată la Fals atunci declanşează un nou ciclu de execuţie a blocului
<operaţii>;
- dacă evaluarea condiţiei este Adevărat atunci termina ciclul şi continuă executarea
programului.
6. Ciclul cu contor – execută un set de instrucţiuni (operaţii) de un număr specificat de ori.
O variabilă utilizată pe post de contor specifică de câte ori vor fi executate instrucţiunile din
cadrul ciclului.

24
Contor = vi

Da

Contor=vf
Nu

Operatii

Contor =contor+pas

În această diagramă:
vi – este valoarea iniţială a contorului (valoarea de start – uzual 0 sau 1 dar nu este exclusă şi o altă
valoare pozitivă sau negativă);
vf – este valoarea de sfarşit a contorului (uzual de câte ori se va executa ciclul);
pas – este valoarea utilizată pentru implementarea (sau documentarea dacă este negativ) contorului.

25
Aplicaţie: (1).Să se elaboreze un algoritm pentru rezolvarea ecuaţiei de grad II cu coeficienţi
reali.

Rezolvare : Start

a,b,c

NU a<>0
DA

d=b2-4ac
x=-c/b

NU d>0
DA

x1,2=(-b  d )/2a

Sol complexe

x1,x2

Stop

26
(2). Să se construiască schema logică a unui program care detemină factorialul unui
număr n .

Rezolvare:
Start

i:=1
Fact:=1

Fact:=Fact *i

i<n NU

DA
i:=i+1

Fact

Stop

27
4. ORGANIZAREA DATELOR SI FIŞIERELOR

4.1. INTRODUCERE

Toate aplicaţiile au nevoie sa păstreze sau să acceseze şi să încarce informaţii în memoria


internă. În timpul unui proces (lansat de către o aplicaţie sau sistemul însăşi) calculatorul poate
stoca în memoria interna o cantitate limitată de informaţii, limitare dată de dimensiunea spaţiului de
adresa propriu (alocat de către sistemul de operare la incărcarea aplicaţiei ca urmare a unei cereri de
execuţie exprimată de utilizator sau de un proces aflat în execuţie). Informaţia astfel stocată în
memoria interna alocată procesului este volatilă ca şi aceasta. De cele mai multe ori este necesar sa
stocăm informaţia pe termen lung, adică cel puţin pe o durată posterioară momentului închiderii
calculatorului şi să o regăsim cel puţin la următoarea restartare.
Dacă ne referim, de exemplu, la sistemul contabil al agenţilor economici este necesar să
păstrăm pe termen lung sumele debitoare şi creditoare cumulate ale perioadelor precedente pentru a
fi capabili să stabilim soldul conturilor in perioada curentă.
Un alt exemplu, datele privind evidenţa studenţilor trebuiesc păstrate cel puţin pe durata
şcolarizării acestora, durata masurată în ani.
Stocarea informaţiilor pe termen lung trebuie sa indeplinească trei condiţii:
1. Să fie posibilă stocarea unei mari cantitaţi de informaţie;
2. Informaţia nu trebuie să se piardă după încheierea procesului care o foloseşte, dacă nu s-a
cerut expres acest lucru (de exemplu, prin operaţia de ştergere);
3. Aceeaşi informaţie trebuie să poată fi accesata simultan de către mai multe procese de
prelucrare (partajare – sharing).
Soluţia la aceste cerinţe este stocarea informaţiei in fişiere folosind medii fizice de stocare
(utilizând dispozitive de stocare) cum ar fi: banda magnetică, discul magnetic, C.D., etc. Un fişier
este o abstractizare a unui dispozitiv de stocare. Este posibil să memorăm (scriem – WRITE) date
într-un fişier şi/sau să regăsim (citim - READ) date stocate in el. Informaţia stocată în fişiere trebuie
să fie persistentă, adică să nu fie afectată de începutul sau terminarea unui proces. Un fişier va fi
şters numai atunci când utilizatorul va dori expres acest lucru. Partea sistemului de operare care se
ocupa de lucrul cu fişiere este cunoscuta sub numele de sistem de fişiere (file system). Sistemul de
fişiere este una din cele mai importante şi, probabil, cea mai vizibilă parte a unui sistem de operare
şi oferă structura modului de organizare a informaţiilor în sistem.
Există o diversitate de tipuri de fişiere, dar pentru simplificarea expunerii vom considera un
tip foarte simplu. Logic, vom considera un dispozitiv de stocare abstract care este organizat ca o

28
serie consecutivă de caractere (reprezentate pe un octet sau byte). În acest context înseamnă că
putem specifica exact ce caracter dorim să citim sau să scriem din/în fişier.
În cele ce urmează vom analiza câteva aspecte legate de operaţia de citire şi cea de scriere.
Vom considera o procedură READ care este apelată pentru a citi un byte (caracter) c dintr-un fişier
f, byte memorat la poziţia poz in acest fişier.
Într-un sistem care modelează realitatea, fişierele au diferite dimensiuni (dimensiune).
Datele memorate sub formă de caractere (bytes, in cazul nostru) intr-un fişier vor avea adresele in
intervalul [1, dimensiune]. Acest lucru inseamnă că pentru a citi date din fişier valoarea lui poz
trebuie să fie în intervalul [1, dimensiune].
Considerăm faptul că dimensiunea unui fişier f este size(f).
În acest context, la scrierea datelor (WRITE) intr-un fişier f, în funcţie de poziţia dorită P,
apar două situaţii:
1. P aparţine [1, size(f)], caz în care actualizăm (UPDATE, MODIFY, REWRITE) conţinutul
fişierului. Datele stocate la poziţia P vor fi inlocuite cu alte date;
2. P = size(f) +1, caz în care fişierul este extins (APPEND, WRITE) prin adăugarea datelor
la o nouă poziţie şi mărirea dimensiunii (cu exact un caracter în cazul nostru).
O caracteristică importantă a unui fişier este aceea că el se comportă ca un dispozitiv de
stocare virtual, adică, chiar dacă oprim calculatorul, caracterul scris va fi memorat permanent
undeva. Fişierele pot fi adaugate sau şterse, ceea ce înseamnă că sistemul de operare trebuie să ne
permită aceste operaţii.
Ori de câte ori este creat un nou fişier sistemul de operare îi atribuie un identificator unic
care va fi utilizat pentru citări (localizări) ulterioare ale fişierului în vederea realizării diverselor
operaţii dorite de el. În majoritatea sistemelor, înaintea efectuării de operaţii asupra fişierelor,
acestea trebuiesc deschise (OPEN). Deschiderea nu este în mod strict necesară, de aceea sistemele
moderne nu cer acest lucru expres (operaţia este realizată direct de către sistemul de operare la
cererea altor operaţii, cum ar fi, de exemplu, operaţia de căutare).
La terminarea lucrului cu un fişier trebuie realizată închiderea sa (CLOSE) pentru a
comunica sistemului de operare că nu mai este utilizat.
În paragrafele precedente am considerat faptul ca vom manipula caractere (bytes)
individuale. Discurile, folosite în cele mai multe cazuri pentru stocare, utilizează blocuri (blocks) de
octeţi pentru a transfera datele în/din memorie. Blocurile pot avea, de exemplu, 512, 1024, 2048, ...
octeţi (bytes). În acest caz soluţia este de a organiza intern fişierele în unităti de 512 octeţi, de
exemplu, care vor fi referite la blocuri fişier (file blocks). Fişierul va fi format, astfel, ca o serie

29
consecutivă de blocuri. Poziţia poz a unui octet în fişier va fi dată de o pereche de numere: număr
bloc fişier (num) şi deplasare in bloc (dep), astfel:
poz = (num – 1) * 512 + dep, cu dep ε [1, 512].
Modul de calcul rămane acelaşi şi pentru altă dimensiune a blocului (de exemplu, dacă este
1024, atunci în formula precedentă şi condiţia asociată înlocuim 512 cu 1024). În contextul utilizării
blocurilor dimensiunea fişierului va fi dată în numar de blocuri şi, deoarece,acestea sunt de
dimensiune fixă va trebui să avem în vedere diverse modalităţi de a reprezenta modelele logice ale
datelor în termenii fişierelor.
Pentru a implementa fişiere trebuie să asociem (unic) fiecărui bloc de fişier un bloc de disc.
Conceptual, acest lucru este simplu: aşa cum blocurile de disc sunt identificate de sector, pista şi
cilindru, va trebui să administrăm precis, pentru fiecare bloc de fişier, locaţia sa în disc. Pentru
aceasta administrare vom introduce conceptul de index de blocuri fişier (file block index), a cărui
funcţionare, la modul cel mai simplu, trebuie să asigure gestiunea asocierii descrise anterior. Chiar
şi la acest mod „simplist” asocierea blocurilor de fişier cu blocurile de disc nu este simplă. Înainte
de a o realiza trebuie să găsim un bloc de disc care este liber. Ceea ce avem nevoie pentru a ne
gestiona spaţiul este un gestionar al spaţiului de memorare disc (disck storage manager) care să
ţina cont dacă un bloc disc este ocupat sau nu şi să ne ofere blocuri libere la scriere sau să
recupereze blocurile din fişierele şterse pentru a le oferi ca libere.
Din cele expuse anterior rezultă că unui fişier îi sunt ataşate informaţii cum ar fi:
identificatorul său, dimensiunea, blocurile disc asociate, etc. Pentru a păstra aceste informaţii
fiecare fişier are un antet de fişier (file header) care este stocat în disc începând cu primul său bloc.
La deschidere informaţiile acestui antet sunt plasate în memoria internă (cu un handler asociat)
pentru a fi disponibile sistemului de fişiere. La închiderea fişierului, dacă este cazul, antetul de fişier
este actualizat cu modificările efectuate (de exemplu mărirea dimensiunii).
Informaţiile asociate unui fişier în indexul de fişier şi în antet sunt mult mai numeroase şi
sunt dependente de sistemul de operare utilizat (uneori şi de versiunea sistemului) şi se referă,
printre altele, la numele fişierului, data creării, proprietarul fişierului, operaţiile admise a se efectua
asupra lui, etc.

4.2. ÎNREGISTRĂRI

Un fişier este organizat logic ca o secvenţă de înregistrări. Aceste înregistrări sunt mapate în
blocuri fizice pe dispozitivul de stocare (în general blocuri disc pe PC-uri). Fişierele sunt prevăzute

30
ca elemente de bază de către sistemele de operare, de aceea putem să considerăm că atunci când
avem un sistem de operare în funcţiune există întotdeauna cel puţin un sistem de fişiere disponibil.
În cele ce urmează vom trata căile de reprezentare logică a modelelor de date în termenii
fişierelor şi ai structurilor de date care pot organiza logic şi fizic fişierul. Dacă blocurile fizice au o
dimensiune fixă, determinată de caracteristicile fizice ale dispozitivelor de stocare (disc, banda
magnetică, caseta magnetică, etc.) şi de sistemul de operare, dimensiunea înregistrării poate varia.
Pentru a stoca (memora) date în fişiere putem opta între înregistrări cu lungime:
1.fixă, care sunt uşor de implementat dar cu inconvenientul reprezentat de procentul scăzut
de ocupare a spaţiului de stocare. De exemplu, dacă dorim să înregistrăm date despre persoane,
persoanele de sex feminin au un atribut „Nume inainte de căsătorie” care nu este necesar la
majoritatea celor de sex masculin, dar pentru care se ocupa spaţiu de memorie şi la acestea;
2.variabilă, care nu sunt atât de uşor de implementat ca cele fixe dar, care oferă un procent
mai bun de utilizare a spaţiului.
Înregistrările sunt manipulate de utilizator la nivel logic (scrise şi citite), iar dispozitivul de
stocare realizează aceste operaţii la nivel de bloc.

O metodă simplă de implementare a acestor înregistrări cu lungime variabilă este de a marca


sfarşitul fiecărei înregistrări printr-o construcţie specială (un caracter sau combinaţie de caractere),
cum ar fi CR (retur de car) şi LF (linie nouă) pentru fişierele de tip text.
Pentru ambele tipuri de înregistrări, dacă acestea sunt introduse în fişier în ordinea
secvenţială de apariţie a lor (creare), operaţiile de ştergere şi inserare a înregistrărilor generează
probleme legate de asigurarea continuităţii plasării. La ştergerea înregistrării putem să mutăm (prin
copiere în alt loc şi ştergere, de exemplu) înregistrarea care urmează celei şterse (în spaţiul astfel
eliberat) până când toate înregistrările care urmează celei şterse au fost mutate in sus. Acest mod de
lucru presupune mutarea unui număr considerabil de înregistrări. Mutarea înregistrărilor pentru a
ocupa spaţiul eliberat la ştergerea înregistrărilor nu este bună deoarece necesită accesări
suplimentare de blocuri. În acelaşi mod se poate proceda şi pentru inserarea unor înregistrări între
doua înregistrări existente: putem muta în jos înregistrările cu un spaţiu necesar înserării
înregistrării si cu glisarea în jos a celor existente după locul cerut, cu aceleaşi dezavantaje ale
mutării unui mare număr de înregistrări şi accesări suplimentare de blocuri fizice.

31
4.3. LISTE LINEARE ÎNLĂNŢUITE

O cale de rezolvare a inconvenienţelor apărute la inserare şi ştergere ar putea fi rezolvate


prin alocarea, la nivelul înregistrării, a unui număr de caractere (bytes) cu rolul de punctator
(pointer) care memorează adresa următoarei înregistrări (next record) din fişier, iar la începutul
fişierului (în antetul de fişier asociat acestuia – file header) a unui număr de bytes pentru a memora
adresa primei înregistrări. Antetul de fişier conţine, în mod uzual, o multitudine de informaţii
(numele, data creării, etc.) dar, pentru simplificarea expunerii a ceea ce ne interesează, acum vom
considera ca memorează adresa primei înregistrări din fişier.

Structura generală a unei înregistrări arată astfel:

Date Următoarea (Next)


(legătura-Link)

Fig.4.1. Un element al unei liste înlanţuite

unde Următoarea poate fi:


- o adresă de înregistrare;
- o valoare nulă (Null) desemnată a marca ultima înregistrare în fişier, denumit uzual marca
de Sfârşit_de_Fişier (End_of_File – EOF).
Punctatorul Următoarea este utilizat pentru a înlănţui (lega) împreuna înregistrările conform
modului ilustrat in figura 4.2.

R1 R2 R3 Null

Fig.4.2. Înlănţuirea înregistrărilor (elementelor)

unde numerele 1, 2 si 3 sunt numerele asociate înregistrărilor şi nu date efective conţinute de


înregistrare.
Legăturile (Următoarea) permit regăsirea datelor din elementele succesive.
Cea mai simplă structură de date care implementează aceste tipuri de înlanţuiri este
denumită <<Lista Lineară Înlănţuită (Linear Linked List)>>. O listă lineară înlănţuită (fig.4.3.)
aranjează structurile de date secvenţial. Pentru aceste liste există un punctator, pe care îl vom
denumi Cap (Head), care adresează primul element al listei iar fiecare element punctează la

32
elementul succesor (next – urmatorul), ultimul element având în punctatorul de legătura o valoare
nulă (Null).

Cap R1 R2 R3 Null

Fig.4.3. Lista lineară înlanţuită


Operaţiile de bază pe lista lineare includ următoarele:
1. Crearea unei liste noi (Create, New);
2. Numărarea elementelor (Count);
3. Vizualizarea unui element (View) precedată de operaţii de localizare (Locate, Seek) sau
regăsire (Find, Search);
4. Concatenarea a două liste (Union, Join, Concatenate);
5. Inserarea unui element (Insert, Append);
6. Modificarea datelor unui element (Update);
7. Listarea elementelor listei (Print, Display, List);
8. Ştergerea unui element (Delete, Remove).
In cele ce urmează vom prezenta modul de efectuare a acestor operaţii:
Inserare – considerăm faptul că undeva în lista între două elemente adiacente A si C,
punctate prin pointerii p1 si p2, dorim să inserăm elementul B punctat de pointerul q (Fig. 4.4).
a) înainte de Inserare:

A C

p1 p2

B Null
q

b) după Inserare

A C

p1 p2

B
q

Figura 4.4. Inserarea unui element într-o lista lineară înlănţuită

33
Inserarea unui element la începutul sau sfârşitul listei lineare înlănţuite este mult mai simplă:
- pentru inserarea la începutul listei (fig.4.4 a) a elementului nou creat, punctat de q, de
exemplu, trebuie să înlocuim punctatorul Null al elementului cu adresa conţinută de
punctatorul pe începutul de lista (Cap), iar acest punctator cu adresa q;
- adăugarea la sfârşitul listei presupune numai înlocuirea punctatorului Null, care marchează
sfârşitul listei, cu adresa q.
Exceptând inserarea la începutul listei, toate celelalte tipuri de inserare trebuiesc precedate
de o operaţie de localizare a elementelor din lista implicată.

Ştergerea – ştergerea unui element aflat între alte două elemente este foarte simplă:
predecesorul elementului de şters conţine punctatorul către elementul care va fi şters, iar elementul
care se şterge conţine punctatorul către următorul element.
Ştergerea unui element la începutul sau sfârşitul listei lineare înlănţuite este mult mai
simplă:
- pentru ştergerea elementului de la începutul listei (fig.4.5 ) trebuie să înlocuim punctatorul
Cap cu adresa conţinuta de punctatorul pe următorul element, iar acest punctator cu Null, de
exemplu pentru a nu avea referinţe multiple la acelaşi element;
- ştergerea la sfârşitul listei presupune localizarea elementului precedent nodului final şi
înlocuirea punctatorului către următorul element cu Null, care marchează sfârşitul listei

A B C

(i) Înainte de Ştergere

A B C

(ii) După Ştergere

Fig.4.5. Ştergerea unui element dintr-o listă lineară

34
Pentru ştergerea integrală a unei liste putem parcurge recursiv lista ştergând elementele şi
recuperându-le spaţiul ocupat

Operaţia de ştergere trebuie precedată de o operaţie de localizare a elementelor din lista


implicată şi urmate de o operaţie de trecere a blocurilor eliberate ca elemente ale unei liste de
blocuri libere.

5. SISTEME DE OPERARE

Software-ul calculatoruluipoate fi grupat în două categorii:


-programe sistem, care gestionează funcţionarea calculatorului însuşi;
-programe de aplicaţie, care rezolvă probleme pentru utilizatorii lor.
Dintre toate programele de sistem sistemul de operare (SO) este fundamental deoarece
controlează resursele calculatorului şi pune la dispoziţie o bază pentru scrierea programelor de
aplicaţie.
Sarcina sistemului de operare este de a furniza o alocare controlată şi ordonată a
procesoarelor, memoriei şi dispozitivelor de intrare, ieşire programelor care concurează pentru ele.
Acesta trebuie să ofere programelor o interfaţă uşor de utilizat la facilităţile de nivel scăzut
(întreruperi, contori, gestiunea memoriei, gestiunea fişierelor, etc). Pentru a-şi realiza sarcinile
designul sistemului de operare trebuie să reflecte cerinţele la care s-a inteţionat să răspundă acesta.
Toate sistemele de operare, de la cele orientate pentru un singur utilizator până la cele
orientate multiutilizator, sunt proiectate şi construite în jurul noţiunii de proces.
Proces. Fie P un program descris într-un limbaj de programare pe care îl vom desemna cu
termenul Limbaj(P) . Un proces, notat Proces(P) al lui P este o descriere a unei serii de acţiuni sau
operaţii, în vederea rezolvării complete a lui P, descriere efectuată ca şi cum programul s-ar executa
pe un proces virtual care implementează Limbajul(P). Un proces este o descriere a
comportamentului unui program. Totuşi, definirea unui program în execuţie ca proces nu este foarte
exactă. Astfel dacă considerăm un program P compus din două proceduri, notat P(p,q) atunci
procesul asociat lui P va fi Proces(P(p,q)), în concordanţă cu definiţia. În această situaţie putem
despărţi programul în două procese diferite Proces1(p) şi Proces2(q),procese care execută acelaşi
program, dar care se se pot termina diferitdepinzând de datele de intrare.
Interferenţa proceselor. Interferenţa proceselor apare atunci când rulăm simultan două sau
mai multe procese, de exemplu Proces1 şi Proces2. Dacă CPU execută instrucţiunile lui Proces1, iar

35
acesta alterează datele aflate în folosinţa Proces2 apare o situaţie nedorită de interferenţă. Există
mai multe soluţii prin care să se controleze iterferenţa cum ar fi:
1 Sincronizarea explicită a proceselor, adică putem forţa Proces1 să aştepte până ce Proces2
a atins o anumită stare sau a ajuns la o anumită situaţie. În general sincronizarea este rezolvată prin
software deşi este preferabilă şi o sincronizare prin suportul hardware oricât de rudimentar ar fi
aceasta.
2 Pe parcursul execuţiei hardware-ul poate întrerupe CPU, caz în care nici o instrucţiune
executată de CPU nu trebuie să interfereze cu acelea pe care tocmai le-a executat înainte de apariţia
întreruperii.
3 Forţarea utilizării programelor de servicii de către procese, forţare care permite controlul
apariţiei interferenţelor nedorite.

Dimensiunea sistemului de operare a crescut pe măsură ce s-au adăugat acestuia noi facilităţi
şi pe măsura ce hardware-ul a devenit din ce în ce mai complex şi versatil.
De-a lungul dezvoltării lor sistemele de operare au relevat trei probleme comune:
1). Sistemele de operare au o dată de livrare ulterioară celei a hardware-ului, ceea ce
necesită o reactualizare a vechilor sisteme sau oferirea de noi sisteme.
2). Sistemele au bug-uri (erori) latente (vicii de fabricaţie) care trebuiesc fixate şi înlăturate.
3). Performanţa nu este, de regulă, cea aşteptată.

Pentru a gestiona complexitatea sistemului de operare şi a înlătura aceste inconvenientede-a


lungul timpului s-a acordat o foarte mare atenţie structurii software a sistemului de operare, pentru
care s-au fixat puncte de vedere cum ar fi acela că software-ul trebuie să fie modular.
Modularitatea este necesară pentru a putea organiza procesul de dezvoltare al software-ului
şi pentru a limita dimensiunea sarcinii efortului de diagnosticare şi fixare a erorilor. Modulele
trebuie să aibă interfeţe bine definite unele cu altele, iar aceste interfeţe trebuie să fie cât mai simple
posibil. Modularitatea uşurează sarcina de programare şi face mai uşoară evoluţia sistemului. Prin
utilizarea unor interfeţe curate şi minimale devine posibilă înlocuirea unui modul fără afectarea
celorlalte.
Între subsisteme apare un volum mic de interacţiuni descrise pe scurt astfel:
-cereri ale subsistemului de I/O.
-cereri ale subsistemului de gestiune a memoriei.
-cereri adresate programatorului (scheduler-ului).

36
Pentru sistemele de operare mari, care rulează cu un număr mare de linii de cod,
programarea modulară nu mai este suficientă pentru rezolvarea complexităţii. Acestea fac apel la
conceptele de nivele ierarhice şi abstractizare a informaţiei (cale adoptată şi la proiectarea
programelor de aplicaţie). Structura ierarhică a sistemelor de operare moderne separă funcţiile
acestora în concordanţă cu complexitatea lor, scala de timp caracteristică lor şi nivelului de
abstractizare.
În acest context putem vedea sistemul ca o serie de nivele, fiecare nivel prelucrând un set de
funcţii cerut de sistemul de operare. Un nivel este legat de nivelul imediat inferior lui care
prelucrează funcţii cu un grad ridicat de primitivitate cărora le ascunde detaliile de implementare şi
totodată, pune la dispoziţie servicii necesare următorului nivel din ierarhie. Prin introducerea
descompunerii în nivele problema a fost divizată într-un număr de subprobleme gestionabile. În
general, nivelurile joase necesită timp scurţi de execuţie.
Anumite părţi ale sistemului de operare trebuie să interacţioneze direct cu hardware-ul
calculatorului, iar timpii de derulare a evenimentelor pot avea o scală de timp extrem scurtă
(milionimi de secundă).
O soluţie de contracarare a complexităţii sistemelor de operare este aceea a orgănizării lor în
miconuclee. Micronucleele sunt organizate în seturi de module structurate care permit gestiunea
sistemului şi oferă flexibilitate. Micronucleele sunt organizate în patru grupe de module, fiecare
grupă oferind un serviciu separat:
1). Gestiunea proceselor;
2). Gestiunea memoriei;
3). Gestiunea dispozitvelor;
4). Comunicaţia interprocese.

PROCES

Gestiunea Gestiunea Gestiunea Gestiunea


Proceselor Memoriei Dispozitiv Comunicaţ
eee i
HARDWARE

Fig. 5.1. Organizarea micronucleelor în grupe de module.

37
6. REŢELE DE CALCULATOARE-PROTOCOALE

În lume există multe reţele cu echipamente şi programe diverse. Reţelele nu pot fi extinse
prin simpla adăugare a unor calculatoare şi cabluri. Fiecare topologie şi arhitectură de reţea are
propriile sale limite. Totodată fiecare reţea foloseşte propriile protocoale, deci existenţa reţelelor de
tipuri diferite înseamnă a avea protocoale diferite. Indiferent de evoluţia care va avea loc în lumea
IT (tehnologia informaţiei), mereu vor există o varietate de reţele, care pentru a putea comunica
unele cu altele vor trebui să se interconecteze.
Reţele de tip LAN (Local Area Network) reprezintă cea mai comună implementare a
tehnologiei reţelelor pentru firmele de mărime mică-medie.Dacă privim acest tip de reţele prin
prisma sistemelor de operare ce pot fi folosite, vom putea clasifica aceste reţele în peer-to-peer şi
reţele bazate pe servere.
Reţelele peer-to-peer nu implică existenţa unui server care să asigure serviciile în reţea.
Fiecare dintre calculatoarele reţelei poate îndeplini şi funcţia de server. Utilizatorul este cel care
hotărăşte ce periferic sau informaţie doreşte să fie accesată şi de ceilalţi membri ai reţelei. Acest tip
de reţele se pretează cel mai bine pentru firmele mici, unde, datorită complexităţii relativ reduse a
activităţilor, nu este nevoie de servicii sofisticate.
La polul opus, reţelele client/server implică existenţa cel puţin a unui calculator care să joace
rolul de server. în acest caz, informaţiile care trebuie partajate în cadrul firmei vor fi gestionate de
server. Aceasta este soluţia adoptată de majoritatea firmelor şi ca urmare a posibilităţii gestionării
centralizate a securităţii reţelei.

6.1. TOPOLOGII ALE REŢELELOR

Pentru desemnarea manierei de proiectare a unei reţele se foloseşte termenul topologie.


Trebuie să precizăm că există două tipuri de topologii: fizică şi logică. Topologia fizică a unei reţele
se referă la configuraţia mediilor de transmisie, a calculatoarelor şi a perifericelor. Topologia logică
reprezintă metoda folosită pentru transferul informaţiilor de la un calculator la altul.
Topologiile fizice sunt: bus (magistrală), star (stea), ring (inel), tree (arbore). Această
clasificare nu are caracter absolut. Sînt lucrări în care topologia reţelelor este prezentată în altă
manieră.
Reţele de tip magistrală (Bus) A nu se confunda cu system bus al calculatorului.
Topologia magistrală este cea mai simplă modalitate de conectare a calculatoarelor într-o reţea: un
singur mediu de transmisie (cablu) la care se conectează toate calculatoarele şi perifericele,

38
denumite în continuare noduri. (fig. 7.1.) Avantajele sunt uşurinţa în conectarea calculatoarelor.
Necesarul de cablu este redus. Dezavantajele sunt că reţeaua nu funcţionează dacă apar întreruperi
în cablu. Este nevoie de terminatori la ambele capete ale cablului. Problemele sînt greu de
identificat dacă reţeaua cade.

Figura 6.1. Topologie de reţea magistrală

Reţele de tip stea (star): într-o astfel de reţea, fiecare nod este conectat direct la un hub.
Informaţiile sînt transmise de la calculatorul sursă către cel destinaţie prin intermediul hubu-lui. Acesta
este principalul dispozitiv care gestionează şi controlează funcţiile reţelei.
Avantajele sunt uşurinţa în instalare. Reţeaua nu este afectată dacă sînt adăugate sau
retrase calculatoare. Uşurinţa în detectarea problemelor.
Dezavantajele sunt că necesită cablu mai mult. Sunt mai costisitoare. Dacă un hub se
defectează, toate calculatoarele din acel nod devin nefuncţionabile.

Figura 6.2. Topologie de reţea stea

39
Reţele de tip inel (ring). Din exterior, o astfel de reţea seamănă foarte mult cu o reţea star.
Din punctul de vedere al topologiei logice însă, MAU (Multistation Access Unit) este dispozitivul care
permite informaţiilor să treacă de la un nod la altul în cadrul unui inel comunicaţional.

Figura 6.3. Topologie de reţea inel

Reţele de tip arbore (tree). Topologia de reţea tree combină caracteristicile topologiilor bus
şi star. Nodurile sînt grupate în mai multe topologii star care la rîndul lor sînt legate la un cablu
central. Acestea pot fi considerate topologiile cu cea mai bună scalabilitate.
Avantajele sunt segmentele individuale care au legături directe, iar dezavantajele sunt
lungimea maximă a unui segment este limitată. Dacă apar probleme pe conexiunea principală, sunt
afectate toate calculatoarele de pe acel segment.

Figura 6.4. Topologie de reţea arbore

Reţele de tip WAN (Wide Area Network) - reţele cu arie mare de întindere. Pe măsură ce
utilizarea calculatoarelor în domeniul economic a devenit omniprezentă, s-a ajuns la concluzia

40
că LAN-urile nu mai corespundeau nevoilor firmelor. Într-o reţea LAN, fiecare departament era
privit ca o „insulă electronică". A apărut însă necesitatea schimbului de informaţii între aceste
insule, iar soluţia a reprezentat-o crearea WAN-urilor (Wide Area Network): reţele care
interconectează LAN-uri, furnizînd acces la calculatoare din alte locaţii geografice.
Tehnologiile folosite în cadrul WAN : modem-uri, ISDN (Integrated Services Digital
Network), DSL (Digital Subscriber Loop), Frame Relay, ATM (Asynchronous Transfer Mode),
T-Carrier Series (în SUA TI, T2, T3), SONET (Synchronous Optical Network).

6.2. MODELUL TCP/IP

Pentru transmisiile de date din cea mai mare reţea existentă - Internetul, standardul
folosit este TCP/IP (Transport Control Protocol/Internet Protocol).
Spre deosebire de OSI, modelul TCP/IP are doar patru niveluri: aplicaţie, transport,
internet şi reţea. Deşi există două niveluri cu acelaşi nume ca la modelul OSI, nu trebuie
confundate cu acelea pentru că fiecare nivel are funcţii total diferite.

aplicaţie

transport

internet

reţea

Fig 6. 5 Protocolul TCP/IP

Nivelul aplicaţie: Proiectanţii TCP/IP au considerat că protocoalele de nivel înalt din


acest model trebuie să includă detalii cu privire la sesiunile de lucru şi modul de prezentare a
datelor. Astfel, într-un singur nivel sînt combinate toate facilităţile legate de reprezentarea
datelor, codificarea şi controlul dialogului.
Nivelul transport: Acest nivel vizează calitatea serviciilor oferite: încrederea în
transmisie, controlul fluxului de date şi corectarea erorilor. Unul dintre protocoalele întîlnite la

41
acest nivel (Transport Control Protocol) oferă o modalitate flexibilă de realizare a comunicaţiilor
în reţea. Fiind un protocol orientat conexiune, dialogul dintre sursă şi destinaţie se realizează prin
împachetarea informaţiilor de la acest nivel în segmente. Orientarea către conexiune nu
înseamnă că între calculatoarele care comunică există vreun circuit, ci că segmentele cu date ale
nivelului 4 circulă înainte şi înapoi între cele două calculatoare într-o perioadă de timp dată.
Nivelul internet: Scopul acestui nivel este de a trimite pachetele sursă din orice reţea
către o alta şi să facă astfel încît acestea să ajungă la destinaţie indiferent de ruta şi reţeaua din
care au fost transmise. Protocolul care guvernează acest nivel este Internet Protocol, funcţiile
îndeplinite de acesta fiind determinarea şi comutarea pachetelor.
Nivelul reţea: Numele acestui nivel este cam general şi de multe ori creează confuzie.
Este nivelul care include detalii despre tehnologiile LAN/WAN, precum şi toate detaliile
incluse în nivelurile fizic şi legătură date din modelul OSI. Specialiştii preferă modelul OSI
pentru analize mai atente şi ca fundament în orice discuţie legată de reţele. Este adevărat că
TCP/IP este mai folositor pentru că este implementat în lumea reală.
Ca utilizatori finali avem de-a face numai cu nivelul aplicaţie, dar cunoaşterea detaliată
a nivelurilor este vitală pentru realizarea unei reţele. Este adevărat că majoritatea utilizatorilor
nu ştiu mai nimic despre protocoale de rutare sau alte detalii, dar este de asemenea adevărat că
aceşti utilizatori nu trebuie să realizeze reţele scalabile şi sigure

7. NOŢIUNI GENERALE ALE BAZELOR DE DATE

Pentru a stoca informaţii în orice mediu imaginabil în zilele noastre sunt folosite sisteme de
baze de date. De la bazele mari de date, cum ar fi sistemele de rezervare a biletelor ale companiilor
aeriene si pâna la colecţia de fişe dintr-un cabinet medical, sistemele de baze de date sunt folosite
pentru memorarea şi distribuirea datelor de care încep sa depindă vieţile noastre. Pâna în urma cu
câtiva ani, sistemele mari de baze de date puteau fi executate numai pe calculatoare de tip
mainframe. În mod obişnuit, era foarte costisitor să fie proiectate, achiziţionate şi întreţinute aceste
maşini. Prin apariţia calculatoarelor din clasa staţiilor de lucru, care sunt puternice şi ieftine,
programatorii au posibilitatea de a proiecta rapid şi ieftin produse software pentru întreţinerea şi
distribuirea datelor.
Cel mai folosit model de stocare a datelor este baza de date relaţională. Acest nou model s-a
dezvoltat pornind de la un articol, “A Relational Model of Data for Large Shared Data Banks” (Un
model relational al datelor pentru banci mari de date folosite în comun), scris de Dr. E. F. Codd în
anul 1970. Ideea lui Codd pentru un sistem de administrare a bazelor de date relaţionale foloseşte

42
conceptele matematice de algebră relaţională pentru a grupa datele în mulţimi şi a stabili relaţii între
submulţimile (domeniile) comune.
Complexitatea actuală a aplicatiilor de management al bazelor de date face necesară o
combinaţie a procesării tranzacţiilor on-line, a încărcării şi a creşterii sprijinului decizional. În
scopul satisfacerii acestor necesităti, este nevoie de baze de date scalabile si performante care pot fi
ajustate dinamic pentru a realiza un compromis între bazele de date (mai mari) si utilizatorii
simultani (mai mulţi). De asemenea, sunt necesare tehnologii pentru baze de date proiectate pentru a
maximiza capacitaăţile configuraţiei hardware/software disponibile (incluzând arhitecturi simplu si
multi-procesor), precum si pentru valorificarea unor arhitecturi hardware (cum ar fi clustere cuplate
larg şi maşini paralele puternice). Serverele de date de astăzi se apropie de aceste cerinţe - o
arhitectură paralela (de noua generaţie) a bazelor de date care furnizează scalabilitate,
manevrabilitate şi performanţă; o regie minimală a sistemului de operare; şi o distribuire automată a
încărcărilor de lucru.
Performanţa este aspectul critic al succesului, si având în vedere creşterea dramatică a
numărului de utilizatori, date fiind aplicaţiile de comerţ electronic şi noile modele de calcul,
presiunea exercitată asupra bazelor de date este mai mare ca oricând.

7.1. SISTEMUL DE BAZE DE DATE

Bazele de date reprezintă una sau mai multe colecţii de date aflate în interdependenţă
împreună cu descrierea datelor şi a relaţiilor dintre ele.
Colecţia de date reprezintă un ansamblu de date organizat dupa anumite criterii.
Descrierea datelor se întâlneste sub denumirile de catalog de sistem, dicţionar de date sau
meta-date ceea ce reprezintă date despre date.
Sistemul de baze de date reprezintă o automatizare a datelor. Acesta are următoarele
componente:
Datele, care pot fi :
 Date integrate presupun faptul că datele pot fi văzute ca o multitudine
de fişiere diferite.
 Date partajate în momentul în care mai mulţi utilizatori pot folosi
aceleaşi date simultan.
Partajarea este o consecinţă a integrării datelor. Integrarea datelor are ca obiectiv
minimizarea redundanţei acestora.
Hardware:

43
 Dispozitive speciale de stocare a datelor (discuri magnetice) plus dispozitive de intrare-
ieşire;
 Procesor şi memorie pentru rularea diferitelor aplicaţii soft.
Software
 Între baza de date fizică şi utilizatori există o interfaţă denumită manager de date sau
cel mai uzual SGBD.
Observaţii:
1. Uneori bazele de date sunt confundate cu SGBD
2. noţiunea de SGBD este asociată de un anumit producător unui anumit produs, cel
mai corect ar fi utilizarea noţiunii de instanţă SGBD.
3. un SGBD asigură un dialog interactiv între utilizator şi baza de date. Alături de acest
SGBD mai există un manager de tranzacţii.
Utilizatorii sunt:
 utilizatori finali;;
 programatori ai BD;
 administratori ai BD.
Date persistente
Modificarea datelor nu poate fi efectuată decât prin intermediul unui SGBD. Bazele de date
sunt date persistente, utile unor sisteme de aplicaţie din cadrul unei organizaţii.
Necesitatea apariţiei – utilizării bazelor de date se datorează :
 Modelului compact;
 Vitezei de execuţie a unor operaţii;
 Eliminarea operaţiilor mecanice
 Securitate şi protecţie.
Avantaje ale utilizării bazelor de date cu caracter centralizat:
 Partajarea datelor ;
 Eliminarea redundanţei;
 Securitatea poate fi îmbunătăţită;
 Optimizarea cerinţelor;
 O performanţă cât mai bună.

7.2. TIPURI DE SISTEME DE BAZE DE DATE:

O clasificare a sistemelor de baze de date poate fi următoarea:


1. pre-relaţionale : tipuri cu liste inversate, tipuri de sisteme ierarhice, de tip reţea.

44
2. model relaţional:
 stocarea datelor se face sub formă de tabele;
 din una sau mai multe tabele vechi se poate construi un nou tabel
Bazele de date relaţionale au la baza o algebră relaţională. Algebra relaţională conţine
operanzi şi operatori (operaţiuni). Operanzi pot fi variabile(relaţii) sau constante (descriu relaţii
finite)
Operatorii algebrei relaţionale sunt operatori ai teoriei mulţimilor ca de exemplu: reuniune,
intersecţie, diferenţă, şi operatori specifici:
 selecţie
 proiecţie
 joncţiune şi concatenare.

Modelul ANSI-SPARC nu a devenit un standard, dar constituie încă o bază pentru


înţelegerea funcţionalităţilor sistemelor SGBD. Acest model presupune o arhitectură pe trei niveluri
de abstarctizare, adică trei niveluri distincte la care pot fi descrise datele. Aceasta formează o
arhitectură cu trei niveluri: extern, conceptual, intern.
Această separare se realizează pentru următoarele motive:
 fiecare utilizator trebuie să aibă posibilitatea de a accesa aceleaşi date, dar cu
o vedere personalizată a acestora;
 fiecare utilizator trebuie să aibă posibilitatea de a modifica modul în care
vizualizează datele, iar această modificare nu trebuie să afecteze modul de vizualizare
pentru ceilalţi utilizatori;
 utilizatorii nu trebuie să aibă de-a face în mod direct cu detaliile privind
stocarea fizică din baza de date;
 administratorul bazei de date trebuie să aibă posibilitatea de a schimba
structurile stocate ale acesteia, fără a afecta modul de vizualizare a utilizatorilor;
 structura internă a bazei de date trebuie să nu fie afectată de către
modificările aspectelor fizice privind stocarea, cum ar fi trecerea la un nou dispozitiv de
stocare;
 administratorul trebuie să aibă posibilitatea de a schimba structura
conceptuală şi globală a bazei de date, fără a afecta toţi utilizatorii;

45
Fig.nr. Arhitectura ANSI-SPARC
Nivelul extern: conţine un sublimbaj compus din 2 limbaje subordonate:
 DDL se ocupă cu declaraţii constructive
 DML se ocupă de instrucţiuni executabile.
Vederea externă este definită prin intermediul unei scheme interne cu ajutorul DDL.
Nivelul conceptual: datorită limitărilor impuse conţinutul informaţional este prezentat într-o
formă abstractă, cu toate că se doreşte o vedere a datelor cât mai apropiată de realitate.
Nivelul intern: se ocupă de înregistrarea datelor intr-o formă diferită de cea fizică.

CORESPONDENŢE
Conceptual-intern: înregistrările conceptuale sunt stocate în nivelul intern, iar o modificare
a structurii interne duce la modificarea acestei corespondenţe. Are ca scop menţinerea
independenţei fizice a datelor.
Conceptual - extern: există o analogie între nivelul extern şi cel conceptual, care tinde să
menţină independenţa logică a datelor.
Extern – intern: specifică modelele relaţionale.

7.3. Sistemul de gestiune al bazei de date

SGBD tratează întregul acces la baza de date. Conceptual un SGBD parcurge următorii paşi:
 utilizatorul lansează o cerere;
 SGBD preia şi analizează cererea
 SGBD inspectează pe rând :
 Schema internă

46
 Corespondenţa extern conceptual;
 Schema conceptuală;
 Corespondenţa conceptual intern
 Structura stocării datelor
 SGBD efectuează operaţiile.
Un SGBD dispune de funcţii cum ar fi:
 Definirea datelor (compilator DDL);
 Manipularea datelor (compilator DML );
 Optimizarea datelor (cererile DML sunt prelucrate de optimizator al
cărui scop este de a găsi modalităţi eficiente de implementare a cererii);
 Securitatea şi protecţia datelor;
 Actualizarea datelor, refacerea datelor (managerul de tranzacţii
impune elemente de control);
 Etc.

Modelarea semantică:

Este o activitate generală care are ca scop înţelegerea semnificaţiei.


Modelarea semantică are la bază următoarele etape:
1. construirea unor concepte semantice care să reprezinte lumea reală lipsită de
formalism: entitate, proprietate, corelaţie.
2. identificarea unor obiecte care pot transpune conceptele semantice;
3. un set de reguli;
4. un set de operatori.
Observaţie: Etapele 2 şi 4 reprezintă un model de date; Etapa 1 reprezintă o flexibilitate a
interpretării.

Modelul E-R (entitate relaţie.)

Entitate un obiect distinct al bazei de date. Entităţile pot fi tari sau slabe (depind de o altă
entitate).
Proprietăţile pot fi:
 simple sau compuse;
 cheie (unică într-un anumit context);

47
 cu valori unice sau multivalorice;
 de bază sau derivate.
Corelaţia este o asociere între entităţi, care poate fi de tipul: Unu la unu, unu la mulţi, mulţi
la mulţi.

8. ASPECTE GENERALE ALE SECURITĂŢII ÎN MEDIUL


VIRTUAL

8.1. SECURITATEA PRIN FIREWALL

Un firewall reprezintă este un sistem care impune o politică de control al accesului între
două reţele. Un firewall este dat de implementarea acestei politici în termeni de configurare a reţelei,
unul sau mai multe sisteme gazdă şi routere cu funcţiuni speciale, alte măsuri de securitate, cum ar fi
autentificarea prin metode criptografice a clienţilor.

Fig. nr. 8.1. Dispunere Firewall


Sursa https://ro.wikipedia.org/wiki/Paravan_(software)

Altfel spus, un firewall este mecanismul utilizat pentru a proteja o reţea sigură din punctul
de vedere al securităţii de o alta nesigură, în care nu se poate avea încredere.
In majoritatea cazurilor firewall-uri sunt, în general, interpuse între reţelele interne şi mediul
virtual (internet), conceptul de firewall nu se rezumă doar la acest aspect, existând suficiente motive

48
pentru folosirea firewall-urilor în oricare rețea ce are acces la internet, inclusiv în reţelele cu arie
largă (WAN) ale diverselor organizații.
Deoarece un firewall este pus ca un filtru între două reţele, acesta poate fi utilizat şi în
alte scopuri pe lângă cel de control al accesului1:
• pentru monitorizarea comunicaţiilor dintr-o reţea internă şi o reţea externă.
Astfel, acesta poate jurnaliza (monitoriza, înregistra) serviciile folosite şi cantitatea de date
transferată prin conexiuni TCP/IP între propria organizaţie şi lumea exterioară;
• firewall-ul poate fi utilizat pentru a intercepta şi înregistra toate comunicaţiile dintre
reţeaua internă şi cea externă.
• dacă există mai multe rețele intr-o organizaţie, separate din punct de vedere al
locației sau chiar geografic, și fiecare având la dispoziție câte un firewall, există varianta
programării acestora pentru a putea cripta in mod automat conţinutul pachetelor transmise între
ele.

Fig.nr.8.2. Dispunere Firewall într-un sistem bancar


Sursa: http://revistaie.ase.ro/content/14/Zota.pdf

Cererile legate despre datele necesare unei tranzacții in mediul virtual sunt directionate de la
serverul Web către serverul de tranzacționare al instituției bancare. Aplicația de tranzacționare pe
Internet este concepută pe baza unei arhitecturi arborescente pe trei niveluri, care contine două
firewall-uri ce izolează complet serverul Web de informațiile despre clienți aflate în baza de date.
Interfața World Wide Web primește datele provenite prin intermediul protocolului SSL și trimite
cererile respective prin intermediul unui firewall de-a lungul unei rețele private dedicate către

1 http://www.securitatea-informatica.ro/securitatea-informatica/securitatea-si-confidentialitatea-datelor-in-

49
serverul de tranzacționare Internet. Aceasta interfață reprezintă unicul proces ce poate comunica
prin intermediul firewall- ului cu serverul de tranzacționare Internet, în acest fel asigurându-se
faptul că doar cererile autentificate pot comunica cu serverul de tranzacționare. Baza de date ce
conține informații referitoare la clienți este gazduită de un server ce implementează securitatea
sistemului de operare folosit2.
Securitatea unui model de tranzacționare pe Internet trebuie să cuprinda trei nivele (figura nr
8.2.). Primul nivel este legat de asigurarea securitatii informatiilor provenite de la clienti în
momentul în care acestea sunt transmise de la calculatorul clientului către serverul Web. Al doilea
domeniul sau nivel de securitate se refera la securitatea mediului în care activeaza serverul de
Internet banking si baza de date ce contine informatii confidentiale despre clienti. În sfârsit, cel de-
al treilea nivel de securitate implica masurile care trebuie luate pentru a preveni accesul neautorizat
al anumitor persoane la sistemul de tranzactionare online al site-ului Web respectiv. Securitatea
datelor transmise de programul browser (navigator) al clientului catre serverul Web al bancii este
asigurata, precum am mai spus, prin intermediul protocolului de securitate SSL (Secure Sockets
Layer), care oferă criptarea datelor, autentificarea serverului si integritatea mesajelor transmise prin
conexiunea Internet3.

retelele-publice/
2 http://revistaie.ase.ro/content/14/Zota.pdf
3

50
8.2. PROTECŢIA TRANZACŢIILOR

Asigurarea protecţiei tranzacţiilor în mediul virtual (Internet), este indicat să se ţină cont de
următoarele cerinţe de bază4:
 Secretizarea/Confidențialitate - conţinutul tranzacţiilor este protejat împotriva
citirilor neautorizate, de către terțe persoane, altele decât receptorii specificaţi de emiţător.
Obiectivul acestei etape îl constituie prevenirea ascultării şi înregistrării neautorizate a traficului de
pe liniile de comunicaţii, fie obstrucţionarea accesului la cutiile de e-mail, care sunt de fapt nişte
fişiere disc. Pentru a împiedica astfel de atacuri este indicată criptarea mesajelor.
 Autentificarea originii tranzacţiilor- receptorul unui mesaj permite să determine în
mod sigur identitatea expeditorului. Este un serviciu de securitate fundamental astăzi, când este
relativă uşoară simularea emiterii unor mesaje în numele unor alţi utilizatori. Pentru a rezolva
autentificarea se utilizează semnătura digitală.
 Integritatea datelor - asigură receptorului unei tranzacţii siguranţa că mesajul
transmis este identic cu mesajul emis la origine. Acest serviciu asigură o protecție împotriva
atacurilor care vizează modificarea mesajelor care se află în tranzit prin reţea. Deşi cele două
servicii de autentificare şi de integritate sunt prezentate ca servicii separate, ele sunt furnizate de
obicei în tandem cu ajutorul sistemelor de rezumare şi semnatură digitală.
 Nerepudierea (Împiedicarea nerecunoaşterii tranzacţiei de către expeditor) -
asigură o garanție a integrității şi originalității tranzacţiilor din punctul de vedere al expeditorului,
nu al destinatarului. Astfel, este se împiedică ca expeditorul unei tranzacţii electronice să nege
transmiterea ei. La recepţie, se poate verifica dacă tranzacţia nu a fost alterată, inclusiv de către
emiţătorul său autentic.

Criptografia se folosește pentru protejarea informaţiilor transmise prin reţea. Intr-un


sistemul criptografic, un mesaj este criptat folosind o cheie, apoi este trimis prin reţea. La destinaţie
mesajul criptat este decriptat tot cu o cheie, obţinându-se mesajul original. Există două metode
primare de criptare folosite astăzi: criptografia cu cheie secretă(criptografia simetrică) şi cea cu
cheie publică(criptografia asimetrică).
Un cifru poate fi definit ca o transformare a unui mesaj clar sau text clar în mesaj cifrat sau
criptogramă. Procesul de transformare a textului clar în text cifrat se numeşte cifrare sau criptare,
iar transformarea inversă, are denumirea de descifrare sau decriptare. Atât cifrarea, cât şi
descifrarea sunt controlate de către una sau mai multe chei criptografice. Criptanaliza studiază

4 http://megabyte.utm.ro/articole/2007/Sti/Sem_1/Articol%20Mega%20Byte.pdf

51
metodele de spargere a cifrurilor, adică de determinare a textului clar sau a cheii de cifrare din
criptograma.
Există două tipuri de sisteme criptografice5:
A.Cifruri simetrice (cu cheie secretă), care folosesc aceeaşi cheie atât la cifrarea, cât şi la
descifrarea mesajelor. Din aceste sisteme critpografice pot fi amintite DES (Data Encryption
Standard) sau (International Data Encryption Algorithm).

Fig.nr.8. 3. Criptare simetrică


Sursa: http://codare-date.cpf.ro/criptare-publica.php

B. Criptografia asimetrică este un tip de criptografie în care sunt folosite o pereche de chei: o
cheie publică și o cheie privată. Un utilizator care deține o astfel de pereche își publică cheia publică
astfel încat oricine dorește să o poată folosi pentru a îi transmite un mesaj criptat. Numai deținătorul
cheii secrete este cel care poate decripta mesajul astfel criptat.
Dintre algoritmii utilizați amintim RSA(Rivest-Shamir-Adleman), EG (ElGlamal) și ECC
(Elliptical Curve Cryptography)
Din punct de vedere matematic, cele două chei sunt legate, însă cheia privată nu poate fi obținută
din cheia publică.
Cripografia asimetrică se mai întâlnește sub denumirea de criptografie cu chei publice.

5 https://biblioteca.regielive.ro/referate/calculatoare/infrastructura-cheilor-publice-72100.html

52
Fig..8.4. Criptarea asimetrică
Sursa: http://codare-date.cpf.ro/criptare-publica.php

Integritatea şi autenticitatea transmiterii unui mesaj este asigurată de utilizarea semnăturii


digitale. Relaţia matematică dintre cele două chei (publică şi privată) permite ca emiţătorul să
cripteze mesajul cu cheia privată pe care o deține. Rezumatul mesajului este o valoare unică care
poate fi generată de o funcţie de dispersie neinversabilă şi care depinde de toți biţii acestuia.
Rezumatul obținut, este apoi criptat cu cheia privată a emitătorului şi adăugat la mesajul original.
Rezultatul obţinut se numeşte semnătură digitală. Semnătura digitală reprezintă un mijloc de
autentificare atât a emiţătorului, cât şi a mesajului propriu-zis6.
Semnătura digitală este un element fundamental al securităţii cartelelor inteligente şi spre
deosebire de o semnătura olografă care identifică doar emiţătorul, semnătura digitală furnizează şi
mijloace de asigurare asupra integrităţii conţinutului mesajului electronic recepţionat.
Realizarea semnăturilor digitale se poate baza atât pe criptosisteme simetrice cât şi pe cele
asimetrice (cu chei publice), acestea din urmă stând la baza celor mai multe aplicaţii existente azi.
Problema fundamentală a utilizării criptografiei în reţele este aceea a găsirii unor modalităţi
de distribuire sigură, periodică a cheilor criptografice, acestea trebuind să fie schimbate cât mai
des.
În Internet se utilizează pentru aceasta tot serviciile reţelei, folosind protocoale speciale sau
sisteme cu chei publice, aşa numitele anvelope(plicuri) digitale.
Cel mai celebru cifru simetric, DES(Data Encription Standard), are deja peste 20 de ani.
Algoritmul DES nu este altceva decât o procesare ce urmăreşte”ascunderea” mesajului prin două

6 https://ro.wikipedia.org/wiki/Discu%C8%9Bie:Func%C8%9Bie_hash

53
căi: confuzie şi difuzie. Construcţia fundamentală a unui bloc DES este o combinaţie a unor tehnici
- substituţie urmată de o permutare - executate asupra textului, bazate pe o cheie.
Această construcţie este cunoscută ca o rundă. DES este compus din 16 runde:se aplică
aceeaşi combinaţie de tehnici asupra blocului de text clar de 16 ori. Algoritmul este compus dintr-
un set de permutări, substituţii şi sumă mod 2, aplicate iterativ de 16 ori, pe un bloc de 64 biţi, prin
folosirea în fiecare rundă a unei chei diferite de 48 de biţi, extrase iniţial dintr-o cheie furnizată de
utilizator de 56 de biţi; datele sunt împărţite in blocuri de 64 de biţi şi criptate fară a se modifica
lungimea lor.
Pentru a înţelege mai bine cum este”în interior” un sistem de criptare, prezentăm cifrul
FROG, realizat de o echipă de la TecApro International. FROG îşi propune să transforme textul
clar în text cifrat printr-un proces de calcul care să creeze confuzie şi difuzie.
FROG criptează blocuri de intrare de 16 octeţi în blocuri de ieşire cu aceeaşi lungime, sub
controlul unei chei criptografice utilizator, a cărei lungime poate varia între 5 şi 125 de octeţi. Cifrul
realizează 8 iteraţii(runde) în prelucrarea fiecărui bloc de intrare. Fiecare iteraţie foloseşte o cheie
internă, generată din cheia de cifrare şi care este o structură de date cu 8 înregistrări, fiecare având 3
câmpuri:
 xorBu - un vector de 16 octeţi folosit în sau exclusiv;
 substPermu - un vector de 256 de octeţi folosit ca tabelă de substituţii;
 bombPermu - un vector de 16 octeţi folosit în a ponta diferite poziţii în bloc(cu valori
între 0 şi 15), pentru a realiza o permutare.
Fiecare iteraţie traversează secvenţial blocul de 16 octeţi, de la stânga la dreapta şi
calculează cu fiecare octet 4 operaţii de bază(2 implementând confuzie, celelalte 2 difuziune):
 Pasul 1: SAU-EXCLUSIV(XOR) între octetul curent din bloc şi octetul curent din
câmpul xorBu;
 Pasul 2: înlocuirea octetului calculat la pasul 1 prin octetul din tabela de substituţie
substPermu, indexată cu octetul calculat la pasul 1;
 Pasul 3: modificarea octetului următor din bloc prin XOR cu octetul calculat la pasul
2. Când se ajunge la sfârşitul blocului, octetul următor este considerat primul;
 Pasul 4: se foloseşte octetul curent al lui bombPermu pentru a defini o poziţie în
bloc. Se modifică octetul din acea poziţie făcând XOR cu octetul calculat în pasul 2.
Câmpul bombPermu este o permutare, a cărei lungime a ciclului trebuie să fie egală cu
dimensiunea blocului(16).

54
Decriptarea se face parcurgând cheia internă şi blocul cifrat in sens invers. Cheia internă
folosită este aceeaşi, cu excepţia tabelelor de substituţie - substPermu - care sunt înlocuite de
inversele lor.
Frog calculează cheia internă pe baza cheii criptografice furnizate de utilizator. Pentru
generarea cheii interne se folosesc 2 algoritmi:
 primul algoritm( funcţia hashKei) foloseşte cheia utilizator (simple Kei) şi o
constantă internă (randomSed) pentru a produce un tablou de 2304 octeţi (numit randomKei),
folosind un algoritm complex în 5 paşi;
 al doilea algoritm(funcţia makeInternalKei) preia tabloul arbitrar de 2304 octeţi
generat de primul algoritm şi îl transformă într-o structură ce cuprinde cele 3 câmpuri.
Algoritmul Rijndael este un cifru bloc, proiectat de Joan Daemen şi de Vincent Rijmen.
Cifrul lucrează cu blocuri de date şi chei de dimensiuni variabile. Se pot folosi chei de 128, 192 sau
256 biţi pentru a cripta blocuri de date de 128, 192 sau 256 biţi.

55
BIBLIOGAFIE:

[1]. Acostăchioaie D. – Administrarea şi configurarea sistemelor Linux, editura POLIROM,


2003;
[2]. Avram V. – Iniţiere în informatică, suport curs, Universitatea Română de Arte
“Gheorghe Cristea” 1992;
[3]. Avram V. – Sisteme de calcul şi operare I,II, editura Dacia Nova Lugoj, 2001;
[4]. Dodescu Ghe – Calculatoare electronice şi sisteme de operare, editura Didactică şi
Pedagogică, 1974
[5].Dodescu Ghe – Modelarea sistemelor de operare, Ed. Ştiinţifică, 1993;
[6].Dodescu Ghe, Vasilescu A, Papastere C – Sistemul de operare MS-DOS şi UNIX, Casa
Editorială Presa Viaţa Românească, 1994;
[7].Lupulescu şi colaboratorii - Bazele computerelor. Hard &Soft. Editura Mirton,
Timişoara 1999
[8] Mateia N.A., - Informatică economică, Editura Eurostampa, 2014, Timișoara
[9].Moldoveanu F. – Initiere în Windows, Ed. Teora, 1994;
[10]. Munteanu A, Greavu V, - Reţele locale de calculatoare; Proiectare şi administrare, Ed.
Polirom, Iaşi, 2004;
[11].Norton P. – Ghid complet pentru Windows )%, Ed. Teora, 1997;
[12].Sabău Ghe, Avram V – Sisteme Informatice în Management, Ed. Metropol,1994;
[13].Sabău Ghe, Avram V. – Sisteme informatice şi Baze de date, Ed. Oscar Print, 1998;
[14].Schuner L, Negus C – Utilizare Unix, Ed. Teora 1998;
[15] Stepan A., – Bazele informaticii, Ed. Eurostampa, Timişoara, 2004
[16] Stepan, A., Popescu C., - Sisteme de operare. Editura Universităţii din Oradea,1999
[17].Winn L. Rosch – Totul despre Hardware, Ed. Teora, 1998;
[18].Colecţia PC Magazine.

56

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