Documente Academic
Documente Profesional
Documente Cultură
Prefaţă .................................................................................................................. 4
1. Introducere ..................................................................................................... 5
Capitolul cinci este consacrat bazelor logice ale calculatoarelor. Aici sunt prezentate
noţiuni ca: algebra logică, modalităţi de reprezentare a funcţiilor logice, formele canonice ale
funcţiilor logice, existenţa şi unicitatea funcţiilor logice, funcţii logice de bază, modalităţi de
simplificare a funcţiilor logice, circuite logice combinaţionale şi secvenţiale precum şi blocuri
funcţionale.
Având în vedere că practic toate calculatoarele de astăzi oferă posibilitatea conexiunii la o
reţea, în capitolul al şaselea sunt introduse elemente de bază legate de reţelele de calculatoare.
Sunt prezentate aici elemente ce vizează: topologii de bază de reţea, echipamente de reţea,
modelele ierarhice ISO-OSI şi TCP/IP, Internetul şi arhitectura de bază a acestuia.
Obiectivul urmărit prin scrierea acestei cărţi a fost acela de a face o introducere în lumea
arhitecturii sistemelor de calcul şi operare; lucrarea se adresează în special studenţilor ce
participă la cursul de Sisteme de calcul şi operare din cadrul Facultăţii de Cibernetică, Statistică şi
Informatică Economică din Academia de Studii Economice precum şi studenţilor participanţi la
cursuri de Arhitectura calculatoarelor.
Autorii
4
1
INTRODUCERE
1.1.1 Introducere
5
Sisteme de calcul şi operare
6
Introducere
7
Sisteme de calcul şi operare
8
Introducere
9
Sisteme de calcul şi operare
10
Introducere
11
Sisteme de calcul şi operare
1.3.1 Introducere
1.3.2 Procesorul
1.3.6 Magistralele
8
de transfer a datelor de 5*10 octeţi/secundă. În tabelele 1.1 şi 1.2 sunt
prezentate diferite microprocesoare şi magistralele lor de sistem.
Magistrale de I/E
Tabelul 1.3
Debit
An Lăţime
Magistrala de I/E Viteza magistrală maxim
apariţie magistrală
(teoretic)
Sincronă cu UCP:
PC şi XT 1980-82 8 biţi 4-6 MBps
4.77 şi 6 MHz
ISA (AT) 1984 16 biţi Asincronă: 8 MHz 8 MBps
Magistrală simplă
MCA Magistrală 1987 32 biţi Asincronă: 10 MHz 40 MBps
inteligentă realizată de
IBM
EISA Magistrală 1988 32 biţi Asincronă: 8 MHz 32 MBps
inteligentă pentru
servere.
VL Magistrală de mare 1993 32 biţi Sincronă cu UCP: 100-160
viteză, utilizată în 486s 33, 40, 50 MHz MBps
Input/Output UC I UP
D
Memorie
♦ Prin multitasking se înţelege capacitatea unui sistem de operare de a executa mai multe
procese (task-uri) simultan. Acest lucru se realizează prin fenomenul „time slicing” ce
presupune că fiecare proces aflat în execuţie utilizează calculatorul pentru o perioadă
determinată de timp. Comportamentul multitasking este în opoziţie cu „task switching”,
caz în care fiecare proces aflat în execuţie trebuie să se termine pentru a se începe
execuţia unui nou proces.
Sisteme de calcul şi operare
Tabelul 2.1
Sistemul
Data lansării Platforma Realizat de
de operare
CLIENT
Mesaj
cerere Răspuns Cerere Răspunsuri Cerere
SERVER
Sistemul FAT conţine câte o intrare (16 biţi) pentru fiecare cluster.
Numărul cluster-ului este utilizat ca index.
♦ calea – specifică ruta prin care se identifică locul unui fişier sau
director din structura arborescentă.
[\][nume1_director]\[nume2_director]....
[disc:][cale] [\]nume_fisier[.ext]
sau
md [disc:] cale
Exemplu
Pentru a se genera directorul CONT în:
a) directorul rădăcină al discului curent (directorul curent este altul
decât directorul rădăcină) vom folosi comanda: md \cont
b) directorul curent, vom folosi comanda: md cont
sau
cd [disc:] cale
Exemplu
1. Pentru a schimba directorul curent \STUD\STUD5 de pe discul
implicit în:
a) directorul părinte ( \STUD)
b) directorul rădăcină ( \)
linia de comandă va conţine:
a) CD .. [sau CD \STUD];
b) CD \
Sisteme de operare
CD A:\STUD\STUD3
sau
rd [disc:] cale
Exemplu
Prin comanda: RD A:\STUD\STUD3 se va şterge subdirectorul
STUD3 din directorul STUD de pe discul A: dacă este gol.
unde:
/f – listează şi numele fişierelor din fiecare director
/a – la afişare se utilizează caracterele ASCII text în loc de caracterele
grafice pentru a reprezenta legăturile cu subdirectoarele.
Sisteme de calcul şi operare
Exemplu
Prin comanda: TREE A: /F > PRN listarea se face la imprimantă.
Aici a fost utilizat caracterul special > prin care se face redirectarea
rezultatului comenzii către un dispozitiv special, imprimanta în cazul nostru
(identificat de numele generic special, PRN).
unde:
sursa/destinaţia – poate fi o unitate de disc sau o cale;
/A – copierea numai a fişierelor sursă care au atributul de arhivare
setat fără a-l modifica;
/M – copierea numai a fişierelor sursă care au atributul de arhivare
setat, atributul de arhivare va fi modificat;
/D:date – copiază fişierele sursă modificate la sau după data
specificată;
/P – cere confirmarea înaintea copierii fiecărui fişier;
/S – copiază directoarele şi subdirectoarele, în afară de situaţia în
care sunt goale;
/E – copiază toate subdirectoarele, chiar dacă sunt goale;
/V – verificarea identităţii fiecărui fişier destinaţie (deja copiat) cu
fişierul sursă;
/W – generează o pauză înaintea operaţiei de copiere a fişierelor.
Exemplu
Comanda XCOPY A: C: /S/E copiază toate fişierele şi subdirectoarele
(inclusiv cele goale) de pe discul A: (dischetă) pe discul C: (hard disc).
Sisteme de operare
unde:
/P – permite listarea informaţiei în pagini;
/W – realizează afişarea condensată a listei;
/A[[:]atribute] – se vor lista numai numele acelor fişiere şi directoare
care deţin atributele specificate;
atribute: h/- h fişiere ascunse/nu sunt ascunse;
s/- s fişiere sistem/altele decât sistem;
d/- d directoare/nu directoare;
a/- a fişiere de arhivare/nu de arhivare;
r/- r fişiere ce se pot numai citi/citi şi scrie.
Sisteme de calcul şi operare
type [disc:][cale]nume_fisier.ext
Exemplu
Prin comanda: TYPE MANUAL.TXT se va afişa conţinutul
fişierului MANUAL.TXT din directorul curent. Pentru a se executa o pauză
când ecranul este plin se va include şi comanda MORE, astfel linia de
comandă devine:
TYPE MANUAL.TXT | MORE
Sisteme de operare
În acest ultim caz a fost utilizat simbolul special pipe ( | ) prin care
rezultatul comenzii TYPE este redirectat către comanda MORE care
realizează afişarea ecran cu ecran.
unde:
/A se foloseşte pentru fişiere text de tip ASCII;
/B se foloseşte pentru fişiere binare;
/V verifică dacă noile fişiere sunt corecte.
Exemple
1. Copierea unui fişier cu acelaşi nume.
Presupunem că unitatea implicită de disc este A:.
Comanda: COPY D:\PROG.DAT copiază fişierul PROG.DAT din
directorul rădăcină al unităţii de disc D în directorul curent al discului
implicit A, fără a schimba numele fişierului.
Prin comanda: COPY D:\PROG.DAT D:\STUD se copiază fişierul
PROG.DAT din directorul rădăcină al discului D: în directorul STUD de pe
aceeaşi unitate. Fişierul copiat are acelaşi nume cu fişierul original.
Exemplu:
Comanda: DEL C:\STUD\STUD3\*.* şterge toate fişierelor din
directorul \STUD\STUD3. Dacă s-a utilizat *.* în zona numelui de fişier,
MS-DOS afişează un mesaj pentru a verifica dacă se doreşte ştergerea
tuturor fişierelor: "Are you sure (Y/N) ?" Tastând Y şi apoi <ENTER> se
execută operaţia de ştergere.
Redirecţionarea intrării/ieşirii comenzilor
Exemple:
1. Comanda: DIR > LISTA.TXT asigură redirecţionarea listei ce se
obţine prin comanda DIR către fişierul LISTA.TXT. Dacă fişierul nu există,
el va fi creat în directorul curent de pe unitatea implicită; dacă există, se va
înlocui informaţia care o conţine cu aceea ce se va obţine.
Comenzi „pipe”
Dacă se doreşte ca ieşirea unei comenzi să fie intrare pentru alta se
vor tasta comenzile pe o singură linie de comandă, fiind separate prin
simbolul pipe, linie verticală ( | ).
Exemple:
n
H(p1 , p2 ... pn ) = −
i=1
∑p log
i 2
p
i
P2. Dacă pentru un indice i∈{1, 2, .., n} avem pi =1, atunci entropia
informaţională este nulă:
n
H(Y/ X) = ∑p( xk )H(Y/ xk )
k=1
Sisteme de calcul şi operare
unde:
p(xk) probabilitatea realizării evenimentului xk ∈X ;
H(Y/xk) entropia experimentului Y, condiţionată de evenimentul
xk ∈X.
m
H(Y/ x k ) = − ∑ p( y i / x k ) log 2 p( y i / x k )
i =1
Fie:
H(Y) = − ∑ p( y) log 2 p( y)
y ∈Y
H( X / y) ∑ p( x / y) log 2 p( x / y)
= − x ∈X
H( X / Y ) = ∑ p( y) H( X /
y) .
y ∈Y
Fie: c1: a1 a2 a3 → x1
c2: a2 a1 a3 → x2
c3: …
f : X →C
log2 N ≤ n
N
l = ∑p( x ) i li
i=1
D
H(A) = - ∑ p(a i ) log 2 p( a i ) log 2 D
i =1
≤
H(X)
H(X) ≤ l log2 D ⇒ l ≥ = lmin
log2 D
n
zi = ∑aj Pj , unde: aj∈{0,1},
j=1
Coduri ponderate
Tabelul 3.2
Cifra Codul Codul Codul Codul bichinar
zecimală 8421 2421 8421 50 43210
0 0000 0000 0000 01 00001
1 0001 0001 0111 01 00010
2 0010 0010 0110 01 00100
3 0011 0011 0101 01 01000
4 0100 0100 0100 01 10000
5 0101 1011 1011 10 00001
6 0110 1100 1010 10 00010
7 0111 1101 1001 10 00100
8 1000 1110 1000 10 01000
9 1001 1111 1111 10 10000
Tabelul 3.3
Cifra Codul Codul Codul Codul
zecimală 4221 5421 7421 6421
0 0000 0000 0000 0000
1 0001 0001 0001 0011
2 0010 0010 0010 0010
3 0011 0011 0011 0101
4 0110 0100 0100 0100
5 1001 1000 0101 0111
6 1100 1001 0110 1000
7 1101 1010 0111 1011
8 1110 1011 1001 1010
9 1111 1100 1010 1101
Coduri neponderate
Tabelul 3.4
Cifra Codul Codul Codul 2 din 5
zecimală Exces 3 Gray (74210)
0 0011 0000 11 000
1 0100 0001 00 011
2 0101 0011 00 101
3 0110 0010 00 110
4 0111 0110 01 001
5 1000 0111 01 010
6 1001 0101 01 100
7 1010 0100 10 001
8 1011 1100 10 010
9 1100 1101 10 100
Tabelul 3.5
n
⊕ ajk
D( vi, vj ) = ∑ (aik
),
k=1
Exemplul 1
D(v0,v1)=(0 ⊕ 0) + (0 ⊕ 0) + (0 ⊕ 1) = 1
D(v0,v2)=(0 ⊕ 0) + (0 ⊕ 1) + (0 ⊕ 0) = 1
D(v0,v3)=(0 ⊕ 0) + (0 ⊕ 1) + (0 ⊕ 1) = 2
D(v0,v4)=(0 ⊕ 1) + (0 ⊕ 0) + (0 ⊕ 0) = 1
.
.
D(v0,v7)=(0 ⊕ 1) + (0 ⊕ 1) + (0 ⊕ 1) = 3
D(v1,v2)=(0 ⊕ 0) + (0 ⊕ 1) + (1 ⊕ 0) = 2
.
.
D(v1,v7)=(0 ⊕ 1) + (0 ⊕ 1) + (1 ⊕ 1) = 2
.
.
D(v6,v7)=(0 ⊕ 1) + (1 ⊕ 1) + (1 ⊕ 1) = 1
Dmin ≥ e + 1
Dmin ≥ e + c + 1
H{vi′} = z
unde:
hij - parametrii care determină transformarea H;
ai′ - simbolurile cuvântului recepţionat;
ei - elementele corectorului z.
Sisteme de calcul şi operare
′ ′ ′]
v′ = [ a1 a2 … an - cuvânt recepţionat şi z = - cuvânt
e2
corector.
e1
Elemente de teoria transmisiei informaţiei
T
Folosind aceste notaţii putem scrie: H v′ = z, iar în cazul când v = v
′
vom avea:
T
Hv =0
H = [h1h2....hn]
e=[0,...,αj,...0] (αj=1)
T T T T
Z = H v′ = H ( v i ⊕e ) = H v ⊕ H e
i i
Sisteme de calcul şi operare
T
Deoarece H v = 0 – este relaţia ce se foloseşte pentru determinarea
i
celor n simboluri de control, vom avea:
0
.
.
Z = H e T = [h1 h 2 ..... h j .... h n α = h j
] j
.
.
⎧ 0 ⎧
c1 0 0 . . . . c1
1
c2 c2
0 . . . . . 1
] a3 ........
[h1 h 2 .... h n = 0 sau
.
........
Sisteme de calcul şi operare
. = 0
.
. 0 1 . . . . . .
a n 1 0 . . . . 1 a n
Elemente de teoria transmisiei informaţiei
c1 ⊕ a 3 ⊕ a 5 ⊕ ..... ⊕ a n = 0
c 2 ⊕ a 3 ⊕ a 6 ⊕ ..... ⊕ a n = 0
.
.
c m ⊕ a m+1 ⊕ ....... ⊕ a n = 0
'c 1
e m '
. c2
Z = H v ,T = = [h ..... . h .
1
n ]
e2
.
e
1
a
n'
c1
c2
0 0 0 1111a 3
11 c 4
0 11 0 0
=0
1 0 1 0 1 0 1 a 5
a 6
a 7
c4 ⊕ a5 ⊕ a 6 ⊕ a 7 = 0 c4 = a 5 ⊕ a 6 ⊕ a 7
⊕ ⊕ ⊕ = = ⊕ ⊕
c2 a3 a 6 a 7 0 ⇒ c2 a3 a 6 a 7
c ⊕ a ⊕ a ⊕ a = 0 c = a ⊕a ⊕a
1 3 5 7 1 3 5 7
c1'
c '2
'
e 4 0 0 0 1 1 1 a 3
1
'
e 2 = 0 1 1 0 0 c 4
11
Sisteme de calcul şi operare
e1 1 0 1 0 1 0 1
'
5a
'
a 6
7
a
'
Elemente de teoria transmisiei informaţiei
Exemplul 3
Rezolvare
Apelând la relaţiile:
⎧e4 = c4' ⊕ a5' ⊕ a6 ' ⊕ 7a '
⎧ = c ' ⊕a ' ⊕a ' ⊕a '
⎧e2 2 3 6 7
e1 c ' a ' a ' a '
⎧ =1 ⊕3 ⊕5 ⊕ 7
1 1 1 1 0 0 0
e4 = 1 ⊕ 0 ⊕ 0 ⊕ 0 = 1
e2 = 1 ⊕ 1 ⊕ 0 ⊕ 0 = 0
⎧ =
e1 1 ⊕ 1 ⊕ 0 ⊕ 0 = 0
Deoarece (e4,e2,e1) ≠ (0,0,0), mesajul recepţionat este eronat. Dacă
o singură cifră binară a mesajului a fost modificată, atunci se poate
face corecţia; cunoscând poziţia eronată prin decodificarea lui (e4,e2,e1)=
(100)2 ⇒
'
⇒ (4)10 ⇒ cifra c 4 devine 0.
Mesajul corect este 1110000 ⇒ acesta corespunde cifrei zecimale 8.
' ' ' '
Aceasta s-a obţinut prin decodificarea cifrelor binare: a 3 a 5 a 6 a 7.
Simboluri
Controlul liniei
informaţionale
a11 a12 ....a1n l1
............ .
............ .
am1 am2 ....amn lm
Control coloană c1 c2.......cn
unde:
n
⎧
⊕ realizează paritatea pară
a ik
k =1
li = ⎧ n
(i=1,m )
a ⊕realizează paritatea impară
⎧ ⊕ ik
1
k
=1
m
⊕ a kj realizează paritatea pară
c= j =
k=1
m
⊕1 realizează paritatea impară
⊕a
(j=1,n )
kj
⎧ k
n
lic = ⊕a
k =1
ik
[ ⊕ 1] , i = 1, m
şi
m
c jc = ⊕ a kj [⊕1] , j = 1, n
k=1
Exemplul 4
Rezolvare
Informaţia transmisă
Simbolurile informaţionale
Cifra zecimală Secvenţa EXCES 3 Control linie
x1 x2 x3 x4
4 S1 0 1 1 1 1
5 S2 1 0 0 0 1
6 S3 1 0 0 1 0
7 S4 1 0 1 0 0
8 S5 1 0 1 1 1
9 S6 1 1 0 0 0
Control coloană 1 0 1 1 1
Exemplul 5.
Cunoscând că a fost transmis un bloc de date în condiţiile
exemplului 4 şi s-a recepţionat:
0 1 1 0 1
1 0 0 0 1
1 0 0 1 1
1 0 1 0 0
1 0 1 1 1
1 1 0 0 0
1 0 1 1 1
Să se verifice corectitudinea recepţiei.
Informaţia recepţionată
x'1 x'2 x'3 x'4 l'i li calculat
S1 0 1 1 0 1 0
S2 1 0 0 0 1 1
S3 1 0 0 1 1 0
S4 1 0 1 0 0 0
S5 1 0 1 1 1 1
S6 1 1 0 0 0 0
C'j 1 0 1 1 1 1
Cj calculat 1 0 1 0 0
Sisteme de calcul şi operare
M ′(x) R(x)
= C(x) ⊕
G(x) G(x)
Exemplul 6
Rezolvare.
Mesajului binar M : 1110101 i se asociază polinomul M(x):
6 5 4 2
♦ M(x) = x + x + x + x + 1;
3
♦ M'(x) = M(x) x ; deoarece gradul lui G(x) este 3.
9 8 7 5 3
♦ M'(x) = x + x + x + x + x
♦ Se împarte M'(x) la G(x):
M ′(x) R(x)
= C(x) ⊕
G(x) G(x)
9 8 7 5 3 3
x + x + x + x + x |x + x + 1
|---------
9 7 6 6 5
x + x +x |x + x + 1
-----------------------
8 6 5 3
/ x + x +x +x
8 6 5
x + x +x
------------------------
3
/ / / x
3
x +x+1
-----------
/ x+1
(Adunarea şi scăderea în modulo 2 sunt echivalente)
R(x) = x + 1
♦ Se obţine polinomul T(x) = M'(x) ⊕ R(x)
9 8 7 5 3
T(x) = x + x + x + x + x + x + 1
Elemente de teoria transmisiei informaţiei
Exemplul 7
Ştiind că mesajul recepţionat T': 1010101011 a fost transmis după
3
codificarea prin polinomul de generare G(x) = x + x + 1, să se verifice
corectitudinea lui.
Rezolvare.
9 7
Mesajului recepţionat T' i se asociază polinomul T'(x) = x + x +
5 3
+ x + x + x + 1.
Aplicând criteriul de detecţie a erorilor, obţinem:
9 7 5 3 3
x +x + x +x +x+1 |x +x+1
|--------------------
9 7 6 6 3 2
x +x +x |x +x +x +x+1
----------------------------------------
6 5 3
/ / x +x +x +x+1
6 4 3
x +x +x
------------------------------
5 4
/ x +x +x+1
5 3 2
x +x +x
--------------------------
4 3 2
/ x +x +x +x+1
4 2
x +x +x
---------------------
3
/ x +1
3
x +x+1
-----------------
/ / x /
Aşadar, mesajul recepţionat este eronat deoarece E(x) ≠ 0.
4
BAZELE NUMERICE ALE
CALCULATOARELOR
Exemplul 1
Rezolvare.
a. Conversia în binar
(248)10=(11111000)2
b. Conversia în octal
(248)10=(370)8
c. Conversia în hexazecimal
(248)10=(F8)H
Bazele numerice ale calculatoarelor
Aşadar, (248)10=(11111000)2=(370)8=(F8)H
Exemplul 2.
Pentru a face conversia din baza 2 în baza 8 sau 16 se poate porni de
3 4
la reprezentarea în baza 2 a numărului şi deoarece 8=2 iar 16=2 , se pot
face grupări de 3 respectiv 4 cifre binare pentru a obţine reprezentarea în
aceste baze. În cazul numerelor întregi gruparea se face începând de la
CCMPS (de la dreapta la stânga numărului).
(248)10=( 11 111 000 )2=(370)8
Exemplul 3.
Pentru a face conversia din baza 8 în baza 2 vom înlocui fiecare
cifră a numărului scris în baza 8 cu un grup de 3 cifre binare, conform
tabelului 4.2.
Tabelul 4.2
Cifra din baza 8 Grupul de cifre în baza 2
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
Folosind datele din tabelul anterior, numărul (734)8 = (111 011 100)2
prin conversie directă.
Exemplul 4.
Pentru a face conversia din baza 16 în baza 2 vom înlocui fiecare
cifră a numărului scris în hexazecimal cu un grup de 4 cifre binare, conform
tabelului 4.3.
Bazele numerice ale calculatoarelor
Conversia rapida din baza 16 in baza 2
Tabelul 4.3
Cifra din hexazecimal Grupul de cifre în baza 2
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111
Folosind datele din tabelul anterior, numărul (5A2)16 = (0101 1010
0010)2 prin conversie directă.
unde: a-1 reprezintă cifra cea mai semnificativă a părţii fracţionare. Teoretic,
algoritmul ar trebui să se încheie când partea fracţionară devine egală
cu zero, ceea ce se întâmplă într-un număr limitat de cazuri.
În practică, procedeul are un număr finit de paşi, în funcţie de
precizia aleasă. De exemplu, pentru a obţine o precizie bună, pentru fiecare
cifră zecimală trebuie calculate 4 cifre binare (în cazul conversiei din
zecimal în binar).
Exemplul 5
Fiind dat numărul (0,251)10 să se realizeze conversia în sistemele:
binar, octal şi hexazecimal.
Rezolvare.
a. Conversia în octal
(0,251)10=(0,20040)8
b. Conversia în hexazecimal
(0,251)10=(0,404)H
Bazele numerice ale calculatoarelor
c. Conversia în binar
0,251⋅2=0 + 0,502 → 0 (a -1)
0,502⋅2=1 + 0,004 → 1 (a -2)
0,004⋅2=0 + 0,008 → 0 (a -3)
0,008⋅2=0 + 0,016 → 0 (a -4)
0,016⋅2=0 + 0,032 → 0 (a -5)
0,032⋅2=0 + 0,064 → 0 (a -6)
0,064⋅2=0 + 0,128 → 0 (a -7)
0,128⋅2=0 + 0,256 → 0 (a -8)
0,256⋅2=0 + 0,512 → 0 (a -9)
0,512⋅2=1 + 0,024 → 1 (a-10)
0,024⋅2=0 + 0,048 → 0 (a-11)
0,048⋅2=0 + 0,096 → 0 (a-12)
0,096⋅2=0 + 0,192 → 0 (a-13)
0,192⋅2=0 + 0,382 → 0 (a-14)
0,382⋅2=0 + 0,762 → 0 (a-15)
0,762⋅2=1 + 0,524 → 1 (a-16)
0,524⋅2=1 + 0,048 → 1 (a-17)
(0,251)10=(0,01000000010000011)2
Exemplul 6
Rezolvare.
Exemplul 7.
Să se facă conversia din binar în zecimal a numărului (1100011)2.
6 5 4 3 2 1 0
(1100011)2=1⋅2 + 1⋅2 + 0⋅2 + 0⋅2 + 0⋅2 + 1⋅2 + +1⋅2 =
(99)10
Exemplul 8.
Conversia din binar în zecimal a numărului (110,101)2
2 1 0 -1 -2 -3
(110,101)2=1⋅2 + 1⋅2 + 0⋅2 + 1⋅2 + 0⋅2 + 1⋅2 = 6 + 0,5 +
0,125 =
= (6,625)10
Exemplul 9.
Conversia din octal în zecimal a numărului (235)8.
2 1 0
(235)8=2 ⋅ 8 + 3⋅8 + 5⋅8 =128 + 24 + 5=(157)10
Exemplul 10.
Conversia din hexazecimal în zecimal a numărului (23F)H.
2 1 0
(23F)H=2⋅16 + 3⋅16 + 15⋅16 =512 + 48 + 15=(575)10
⎧0 dacã N ≥ 0
an = ⎧
⎧ 1 dacã N p 0
Exemplu.
Să se reprezinte în cod direct (pe 16 biţi) numărul (27)10, respectiv
numărul -(27)10.
Rezolvare.
CD
(27 )10 = (11011 )2 - -- f (27 ) = (0000000000011011) 2
10
b semn
CD
= (1000000000011011) 2
- (27 )10
⎧ n-1
⎧ 0 ⋅ 2n + ∑ a i ⋅ dacã N ≥ 0
CI
i=- m 2i
n-1
N=
⎧
n
1 ⋅ 2 + ∑ ai ⋅ dacã N p 0
⎧ i=- m i
2
Observaţie.
Reprezentarea prin complement faţă de 1 se obţine astfel:
Exemplu.
Să se reprezinte în cod invers numerele (14)10 şi -(14)10
(reprezentarea pe un octet).
Rezolvare.
* Numerele pozitive se reprezintă în CI la fel ca şi în CD.
CD, CI
(14 )10 = (1110 ) 2 (14 )10 = (0000 1110 )
↑
semn
CI 7
N = 28 - ∑ ai ⋅ 2i - 20
i=0
ai ( i = 1,6 ) reprezintă cifrele binare ale numărului (14)10, iar a7="0" este
cifra de semn. Calculând:
1 0000 0000 -
0000 1110
CI
Aşadar:
- (14) = (1111 0001 )2
1111 0010 -
1 ↑semn
1111 0001
Bazele numerice ale calculatoarelor
CD
(14 )10 = (0000 1110 ) 2
CI
- (14 )10 = (1111 0001 ) 2
⎧ n-1
0 ⋅ 2n + ∑ a i 2i pentru N ≥ 0
CC
i=− m
N =⎧
n-1
+ ∑ ~a i pentru N p 0
n i=− m i
unde: 1⎧⋅ 2 2
⎧
n-1 n-1
∑ ~a i =
2 ∑ ai ⋅ + 2-m
i=− m i=− m
i 2i
1. Fie calculând:
CC
N = 2n+1 - | N|CD
Bazele numerice ale calculatoarelor
| N| are aceeaşi semnificaţie
Sisteme de calcul şi operare
ca la reprezentarea în CI;
2. Fie adunând un 1 la CCMPS a reprezentării numărului în CI;
3. Dacă se consideră reprezentarea în CD a numărului în valoare
absolută, pentru obţinerea codului complementar, începând de la CCMPS -
se lasă neschimbate toate cifrele de zero, inclusiv prima cifră binară a cărei
valoare este 1; apoi toate celelalte cifre binare se vor inversa, inclusiv cifra
de semn.
Exemplu.
Să se reprezinte în CC numerele 14 şi -14 (pe un octet).
Rezolvare.
CD,CI,CC
14 = (0000 1110 )2
↑
semn
1.
CC 7
- (14 )10 = 28 - ∑ ai⋅ ai (i=16) fiind cifrele binare ale
numărului zecimal 14, iar a7 = 0 cifra de
i= 0 2i
semn.
1 0000 0000 - CC
0000 1110 - (14 )10 = (1111 0010 )2
1111 0010
Bazele numerice ale calculatoarelor
2.
CI
- (14) = (1111 0001 ) 2
1
CC
- (14) = (1111 0010 )2
3.
Cifre binare nemodificate
CD
14 = (000011 10)2
CC
− 14 = (11110010) 2
Observaţie.
În calculatoarele IBM-PC reprezentarea în virgulă fixă se face pentru
numerele întregi. Se utilizează formatele:
formatul scurt:
formatul lung:
0 dacă N ≥ 0
Tabelul 4.4
0 dacă N ≥
0
S=
1 dacă N < 0
1
≤ (f ) b < 1
b
dublă precizie:
Dacă zona exponent este egală cu zero, numărul zecimal este egal cu
zero. Dacă zona exponent este diferită de zero, atunci numărul zecimal va fi
determinat astfel:
− (80)
< N >=< S >∗ ( 0.1 < fractie >2 ) * 2<EXP> h
unde:
S - bit de semn (S=0 dacă N≥ 0 şi S=1 dacă N<0);
fi - cifrele binare ale zonei exponent (EXCES=127 sau 1023);
unde:
S - bit de semn;
I0 - bitul părţii întregii, ce se memorează în formatul temporar,
implicit în formatul scurt şi lung;
fi - cifrele binare ale fracţiei;
Ei - cifrele binare ale zonei exponent,
EXP = E + 16383 [(3FFF)H]
Dacă exponentul este egal cu zero, atunci numărul este egal cu zero.
Dacă exponentul nu este egal cu zero, numărul zecimal se va calcula după
relaţia:
<EXP>-EXCES
<N>=<S>*(1.<fracţie>)2*2
Exemplu.
Să se reprezinte în virgulă mobilă (în format binar cât şi în format
real) simplă precizie numerele: N1 = 1 şi N2 = -1.
Rezolvare.
0 0
N1 = 1⋅2 ; N2 = -1⋅2
a) Format binar
VM
N1 = (8100 0000 ) H
Bazele numerice ale calculatoarelor
VM
N2 = (8180 0000 ) H
b) Format real
N1=(3F800000)H
N2=(BF800000)H
Exemplu
Fie N1 = (8561 0000)H - reprezentarea în virgulă mobilă simplă
precizie format binar. Să se determine numărul din zecimal.
Rezolvare.
5 5 -1 -2 -3 -8 4 3 2 -3
N1=2 ⋅(0,1110000100...0)2=2 x(2 +2 +2 +2 ) = 2 +2 +2 +2 =28,125
Exemplu.
Să se reprezinte în zecimal codificat binar (în BCD) numerele
zecimale N1=9450 şi N2=78431.
Rezolvare.
N1=(1001 0100 0101 0000)2 - format împachetat
N2=(0111 1000 0100 0011 0001)2 - format împachetat
N1=(F9F4F5F0)H - format despachetat
N2=(F7F8F4F3F1)H - format despachetat
Pentru reprezentarea numerelor nu s-a impus o anumită lungime a
secvenţelor şi nu s-a ţinut cont de semnul numărului.
Pentru calculatoarele compatibile IBM-PC coprocesorul matematic
memorează numerele întregi zecimale pe zece octeţi - în format împachetat.
În acest caz macheta de reprezentare este:
unde:
S - bit de semn ( 0 pentru numere pozitive, 1 pentru numere negative);
Di - cifră zecimală (două cifre per octet);
X - biţi nefolosiţi.
Numerele negative se deosebesc de cele pozitive prin bitul de semn.
+ 0 1
0 0 1
*
1 1 10
*
1 se transportă la rangul următor
Sisteme de calcul şi operare
Exemplu.
Să se însumeze în binar (00010101)2 cu (10010111)2. Vom avea:
(00010101)2 + (21)10 +
(10010111)2 ⇔ (151)10
(10101100)2 (172)10
Descăzut
- 0 1
Scăzător 0 0 1
*
1 1 0
*
Rezultat datorită împrumutului din rangul superior
Exemplu.
Să se scadă în binar:
(11011)2 - (27)10
(01111)2 ⇔ (15)10
(01100)2 (12)10
0 1
0 0 0
1 0 1
Exemplu.
Să se efectueze înmulţirea: (1101)2 x (1001)2.
11012
10012
11012
00002
00002
11012
11101012
(13)10 x (9)10=(117)10
Sisteme de calcul şi operare
Exemplu.
Să se efectueze împărţirea: (1010001)2:(1001)2=(1001)2.
Exemplu.
Să se efectueze împărţirea: (100011)2 : (110)2= (101,110)2.
Tabelul 4.5
+ 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 1 2 3 4 5 6 7 8 9 a B C D E F
1 1 2 3 4 5 6 7 8 9 A B C D E F 1
2 2 3 4 5 6 7 8 9 A B C D E F 10 1
3 3 4 5 6 7 8 9 A B C D E F 10 11 1
4 4 5 6 7 8 9 A B C D E F 10 11 12 1
5 5 6 7 8 9 A B C D E F 10 11 12 13 1
6 6 7 8 9 A B C D E F 10 11 12 13 14 1
7 7 8 9 A B C D E F 10 11 12 13 14 15 1
8 8 9 A B C D E F 10 11 12 13 14 15 16 1
9 9 A B C D E F 10 11 12 13 14 15 16 17 1
A A B C D E F 10 11 12 13 14 15 16 17 18 1
B B C D E F 10 11 12 13 14 15 16 17 18 19 1
C C D E F 10 11 12 13 14 15 16 17 18 19 1 1
D D E F 10 11 12 13 14 15 16 17 18 19 1 1 1
E E F 10 11 12 13 14 15 16 17 18 19 1 1 1 1
F F 10 11 12 13 14 15 16 17 18 19 1 1 1 1 1
Sisteme de calcul şi operare
Tabelul 4.6
* 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7 8 9 A B C D E F
2 0 2 4 6 8 A C E 10 12 14 16 18 1A 1C 1E
3 0 1 6 9 C F 12 15 18 1B 1E 21 24 27 2A 2D
4 0 4 8 C 10 14 18 1C 20 24 28 2C 30 34 38 3C
5 0 5 A F 14 19 1E 23 28 2D 32 37 3C 41 46 4B
6 0 6 C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A
7 0 7 E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69
8 0 8 10 18 20 28 30 38 40 48 50 58 60 68 70 78
9 0 9 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87
A 0 A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96
B 0 B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5
C 0 C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4
D 0 D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3
E 0 E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2
F 0 F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1
Bazele numerice ale calculatoarelor
Tabelul 4.7
+ 0 1 2 3 4 5 6 7
0 0 1 2 3 4 5 6 7
1 1 2 3 4 5 6 7 10
2 2 3 4 5 6 7 10 11
3 3 4 5 6 7 10 11 12
4 4 5 6 7 10 11 12 13
5 5 6 7 10 11 12 13 14
6 6 7 10 11 12 13 14 15
7 7 10 11 12 13 14 15 16
Tabelul 4.8
* 0 1 2 3 4 5 6 7
0 0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6 7
2 0 2 4 6 10 12 14 16
3 0 3 6 11 14 17 22 25
4 0 4 10 14 20 24 30 34
5 0 5 12 17 24 31 36 43
6 0 6 14 22 30 36 44 52
7 0 7 16 23 34 45 52 61
Sisteme de calcul şi operare
CD n-1
N2 = + ∑ b i⋅ 2 bi ∈{0,1}
b n⋅ 2 n i=− m i
n-1
⋅
CD
N1 + N 2 = a n 2n ∑ (a i + bi + t i ) 2
i
+ i=− m
Exemplu
Să se însumeze N1 cu N2, având N1=(40)10 şi N2=(60)10.
Rezolvare.
CD
N1 = (00101000 )2
CD
N2 = (00111100 )2
CD
N1 + N 2 = (01100100 )2
Exemplu
Să se calculeze N1 + N2, având N1=40 şi N2=90.
Rezolvare.
CD
N1 = (00101000 )2
CD
N2 = (01011010 )2
CD
N1 + N 2 = (10000010 )2
Exemplu
Să se calculeze N1+N2, având N1= -25 şi N2= -30.
Rezolvare.
CD
N1 = (1 0011001 )2
CD
N2 = (1 0011110 )2
CD
N1 + N 2 = (1 0110111 )2
Verificând:
6 5 4 3 2 1
N 1 +N 2 = -(0⋅ 2 +1⋅ 2 +1⋅ 2 +0⋅ 2 +1⋅ 2 +1⋅ 2
0
+1⋅ 2 ) N 1 +N 2 = -55, rezultat corect
Exemplu
Să se calculeze N1+N2, având N1= -75 şi N2= -80
Rezolvare.
CD
N1 = (11001011 )2
CD
N2 = (11010000 )2
CD
N1 + N 2 = (10011011 )2
135
Bazele numerice ale calculatoarelor
CI
N2 = 2 -| N
8 |
2 CD -2 0
CI
N1 + N 2 = 28 + 28 -| N 2 |CD -| N 2 |CD - 2 0 - 2 0
CI
N1 + N 2 = 2 8 - (| N1|CD +| N 2 |CD ) - 20
apare necesar ca transportul de la cifra de semn să fie adunat la cifra cea mai
puţin semnificativă,
Sisteme de calcul şi operare
CI
Bitul CMPS
N1 + N 2 = 28 - (| N1|CD +| N 2 |CD ) -02 + 82 - 02
Exemplu.
Să se calculeze N1+N2, având: N1= -30 şi N2= -14.
Rezolvare
CI
N1 = ( 1110 0001 )2
CI
N 2 = ( 1111 0001 )2
CI
N1 + N 2 = (1 1101 0010 )2 +
1
CI
N1 + N 2 = (1101 0011 )2
CD
N1 + N 2 = (1010 1100 )2
5 3 2
Verificând: N 1 +N 2 = - (1⋅ 2 +1⋅ 2 +1⋅ 2 )=-44, rezultat corect.
Bazele numerice ale calculatoarelor
Exemplu.
Să se calculeze N1+N2, având N1= -81 şi N2= -72
Rezolvare.
CI
N1 = ( 1010 1110 )2
CI
N 2 = ( 1011 0110 )2
CI
N1 + N 2 = (1 0110 0100 )2 +
1
CI
N1 + N 2 = (0110 0101 )2 N1 + N 2 > 0
Rezultatul este eronat, deoarece cel mai mic număr întreg ce se poate
reprezenta în cod invers pe un octet este -127.
CI
N 2 = 28 -| N 2 |CD - 2 0
CI
N1 + N 2 = 2 8 - (| N 2 |CD -| N1|CD ) - 20
Exemplu.
Să se calculeze N1 + N2, având N1=91 şi N2=-20.
Rezolvare.
CI
N1 = ( 0101 1011 )2
CI
N 2 = ( 1110 1011 )2
CI
N1 + N 2 = (1 0100 0110 )2 +
1
CI
N1 + N 2 = (0100 0111 ) → rezultat corect
Exemplu.
Să se calculeze N1+N2, având N1= -91 şi N2= 20.
Rezolvare.
CI CI
N1= ( 1010 0100 ) N 2 = ( 0001 0100 ) 2
2
CI CD
N1 + N 2 = (1011 1000 ) N1 + N 2 = (1100 0111) 2
2
CC CC
N1 = 2 8 -| N1|CD N 2 = 28 -| N 2 |CD
CC
N1 + N 2 = 28 - (| N1|CD +| N2 |CD ) + 28
Exemplu.
Rezolvare.
CC CC
N1 = ( 1111 0010 )2 N 2 = ( 1011 1000 )2
CC
N1 + N 2 = (1 1010 1010 )2
Se ignoră
CD
N +N (11010110 ) = - (1 ⋅ 2+4 1 ⋅ 2+2 1 ⋅ + 1 ⋅ 21) = - 86
261 2 = 2
CC
N2 = 28 -| N 2 |CD
Prin adunare avem:
CC
N1 + N 2 = 28 - (| N 2 |CD - | N1|CD )
Dacă N1 > N2 rezultatul va fi pozitiv, iar pentru N1 <
N2
Sisteme de calcul şi operare
rezultatul va fi negativ.
Bazele numerice ale calculatoarelor
Exemplul.
Să se calculeze N1 + N2, având N1= 33 şi N2= -23.
Rezolvare.
CC CC
N1 = ( 0010 0001 )2 N 2 = ( 1110 1001 )2
CC
N1 + N 2 = (1 0000 1010 )2
Exemplu.
Să se calculeze N1+N2, având N1 = -33 şi N2 = 3
CC CC
N1 = ( 1101 1111 )2 N 2 = ( 0001 0111 )2
CC
N1 + N 2 = ( 1111 0110 )2
a) Adunarea/scăderea
a1) n1=n2
n1
N 1 +N 2 =2 ⋅ (f 1 +f 2 )
Dacă f1+f2 ≥ 1 sau f1-f2 < 1/2 , rezultatul se va normaliza, prin
deplasarea cu o poziţie spre stânga sau dreapta virgulei, concomitent cu
adunarea sau scăderea unei unităţi din zona exponent.
b) Înmulţirea şi împărţirea
N1 = 2n1 ⋅ (f 1 ) N 2 = 2n 2 ⋅ (f 2 )2
2
N1 * N 2 = 2n1+ n 2 x ( f1 x f iar
2) 2
N1 / N 2 = 2n1- n 2 x ( f 1 / f 2 )2
Exemplu.
Să se adune în codul numeric 8421 numerele N=883 şi M= 592.
Exemplu
Să se scadă, în codul 8421, din numărul N= 1032, numărul M = 974.
5
BAZELE LOGICE
ALE CALCULATOARELOR
a) idempotenţă: x ∩ x = x; x ∪ x = x
b) comutativitate: x ∩ y = y ∩ x; x ∪ y = y ∪
x c) asociativitate: (x ∩ y) ∩ z = x ∩ (y ∩ z)
(x ∪ y) ∪ z = x ∪ (y ∪ z)
d) absorbţie: x ∩ (x ∪ y) =x ; x ∪ (x ∩ y) = x
e) distributivitate: x ∩ (y ∪ z) = (x ∩ y) ∪ (x ∩ z)
x ∪ (y ∩ z) = (x ∪ y) ∩ (x ∪ z)
Sisteme de calcul şi operare
Exemplul 1.
E (x1, x2, x3) = x1 ∪ x2 ∪ (x2 ∩ x3
) E (0 , 0 , 1 ) = 0 ∪ 0 ∪ (0 ∩ 1) =
0
Spunem că expresia booleană E1 (x1, x2,..., xn) este echivalentă cu
E2 (x1, x2,..., xn) dacă E1 (i1j, i2j,..., inj) ≡ E2 (i1j, i2j,...,inj) pentru ∀ j =1, 2 n .
Exemplul 2.
E1 (x1, x2 ,x3) = x2 ∪ (x1 ∩ x2 ∩ x3)
f : B 2 X B 2 X...X B 2 → B 2
astfel încât f (i1j, i2j,..., inj) ∈{0,1} ∀ j = 1 , 2 n (Unele funcţii logice pot
fi incomplet definite).
Exemplul 3.
Fie f: B2 x B2 x B2 → B2 , astfel:
f(0,0,0) = 0, f(0,0,1) = 0, f(0,1,0) =1,
f(0,1,1) = 1, f(1,0,0) = 0, f(1,0,1) = 1, f(1,1,1) = 0.
În figura 5.1 avem reprezentarea grafică a acestei funcţii.
0 0 1 0 0 1 1
0 1 1 1 0 0 1
1 0 0 1 0 0 1
1 1 0 1 1 0 0
Exemplul 5.
Exemplul 6.
Reciproc, dacă avem tabelul de adevăr al funcţiei, putem determina
expresia funcţiei. Din tabelul de adevăr, funcţia f are valoarea 1 pentru
următoarele valori ale lui x şi y:
Considerăm acum valorile lui x şi y pentru care funcţia f este zero:
⎧x = 0, y = 1
⎧x = 1, y = 0
⎧
sau
⎧x = 0, y = 0
x = 0, y = 0
f 2 (x, y) = (x ∪ y)(x ∪ y)
f 2 (x, y) = (x ∪ y)(x ∪ y) = x x ∪ x y ∪y x ∪y
y=
= x y ∪x y = f1(x, y)
x = y = 0
= =
x y 1
sau
x = 1, y = 1
x = y = 1
f1 ( x, y ) = x y ∪x y
Sisteme de calcul şi operare
i jk x j dacă i jk = 1 i1 k
având x
x j dacă i jk = 0
j
=
iar f(i1 k , i 2 k , ..., i nk ) = pentru ∀ k = 1, 2n
1
x j dacă i jk = 0
având x ij jk =
dacă = 1
x j i jk
f(i1 k , i 2 k , ... i nk ) = 0 pentru ∀ k = 1, 2n
Exemplul 7.
Fie funcţia f (x,y,z) o funcţie booleană care are valoarea logică "1",
dacă cel puţin două dintre argumentele sale sunt egale cu "0". Să se scrie FCD
şi FCC pentru funcţia f(x,y,z).
Rezolvare.
Alcătuim tabelul de valori (tabelul 5.1), în care vom trece mintermenii
(mi) şi maxtermenii (Mi). Fiind o funcţie de trei variabile vom avea un număr
3
de 8 seturi de valori (2 ).
Sisteme de calcul şi operare
Tabelul 5.1
x y z f(x,y,z) mi Mi
0 0 0 1 M0 = x + y+ z
m0= x y z
0 0 1 1
m1 = x yz M1 = x + y+ z
0 1 0 1
m2 = x yz M2 = x + y+ z
0 1 1 0
m3 = x yz M3 = x + y+ z
1 0 0 1
m4 = x y z M 4= x + y+z
1 0 1 0
m5 = x yz M 5= x + y+z
1 1 0 0
m6 = x y z M6 = x + y+ z
1 1 1 0 m7 = x yz M7 = x + y+ z
f1 (x,y,z) = m0 + m1 + m2 + m4 =
x y z + x y z+ x y z + x y z
Bazele logice ale calculatoarelor
f 2 (x ,y ,z ) = M 3 ⋅ M 5 ⋅ M 6 ⋅ M 7 =
(x + y + z)(x + y + z)( x + y + z)(x + y + z)
mi ⋅ m j = 0, ∀i
≠j
M i ∪ M j = 1, ∀i ≠ j
2n − 1
f ( x1 , K, xn ) =U(α i ⋅ mi )
i=0
2n − 1
f ( x1 ,K, xn ) =I (α i ∪ M i ), α i ∈{0,1}- numere caracteristice
i=0
Sisteme de calcul şi operare
2n − 1
f ( x1 , K, xn ) =U(α i ⋅ mi )
i=0
2n − 1
f ( x1 ,K, xn ) =I (α i ∪ M i ), α i ∈{0,1}
i=0
2n − 1
) = mi = 1
f ( x1 , K, xnU
(FCD)
i=0
2n − 1
)= Mi = 0
f ( x1 , K, xnI
(FCC)
i=0
mi = I M j , j = 0K2n − 1
j ≠i
M i = Um j , j = 0K2n − 1
j ≠i
Bazele logice ale calculatoarelor
f ( x) = ax ∪ b x
a = f (1,1)
b = f (1,0)
c = f (0,1)
d = f (0,0)
a f (0,0)
=
b = f (0,1)
c = f (1,0)
d = f (1,1)
j=0
Sisteme de calcul şi operare
Au fost incluse: funcţia zero şi funcţia unitate.
Bazele logice ale calculatoarelor
Exemplul 8.
Mulţimea funcţiilor de două variabile este prezentată în tabelul 5.2.
Dacă f : B2 X B2 X ... X B2 → B2 este o funcţie de n variabile,
analizând tabelul 5.2, putem spune că principalele funcţii elementare sunt:
3) Funcţia ŞI: f1 (x1, x2,..., xn) = x1 . x2 . ... . xn, această funcţie are
valoarea logică 1 dacă toate variabilele au valoarea logică 1.
5) Funcţia ŞI-NU, are valoarea logică 1 dacă cel puţin o variabilă are
valoarea logică 0:
f14 ( x1 , x2 , .. , x n ) = x1 x2 ⋅ .. ⋅ = x1 + x2 + .. + x n
⋅ xn
f 8 ( x1 , x2 , .., x n ) = x1 + x2 + .. + = x1 x2 ⋅ .. ⋅ x n
xn ⋅
7) Funcţia INHIBARE:
8) Funcţia IMPLICARE:
Tabelul 5.2
Denumirea
x 0 0 1 1 Funcţia FCD
funcţiei
y 0 1 0 1
f0 0 0 0 0 f0=0 f0=0 ZERO
f1 0 0 0 1 f1=xy f1=m3 ŞI
f2 0 0 1 0 f2=m2 INHIBARE
f2= x y
f3 0 0 1 1 f3=x f3=m2+m3 IDENTITATE
f4 0 1 0 0 f4=m1 INHIBARE
f4= x y
f5 0 1 0 1 f5= y f5=m1+m3 IDENTITATE
f6 0 1 1 0 f6= x ⊕y f6=m1+m2 SAU EXCLUSIV
f7 0 1 1 1 f7= x + y f7=m1+m2+m3 SAU [INCLUSIV]
f8 1 0 0 0 f8=m0 SAU-NU [NICI,NOR]
f8= x + y
f9 1 0 0 1
f9= x y + xy f9=m0+m3 COINCIDENŢĂ
f10 1 0 1 0 f10=m0+m2 NU
f10= y
f11 1 0 1 1 f11=m0+m2+m3 IMPLICARE
f11= x + y
f12 1 1 0 0 f12= x f12=m0+m1 NU
f13 1 1 0 1 f13=m0+m1+m3 IMPLICARE
f13= x + y
f14 1 1 1 0 f14=m0+m1+m2 ŞI-NU [NAND]
f14= x ⋅ y
f15 1 1 1 1 f15=1 f15=m0+m1+m2+m3 UNU
5.6.1 Introducere
Simplificarea (minimizarea) funcţiilor logice are ca efect obţinerea
unor funcţii în formă elementară cu un număr minim de variabile şi
elemente constitutive. Minimizarea se poate face fie prin calcul direct
utilizând procedee algebrice elementare, fie utilizând diagrame ce conduc la
proceduri rapide de simplificare.
Bazele logice ale calculatoarelor
Exemplul 9.
Să se minimizeze funcţia:
f(x, y, z) = x y z + x y z + x y z = x y z
Rezolvare.
Se ştie că:
x y z+ x y z = x y z (proprietatea de idempotenţă).
f(x,y,z)= x y z + x y z + x y z + x y z + x y z + x y z
f(x,y,z)= x y ( z + z ) + x z ( y + y ) + y z ( x + x )
f(x,y,z)= x y + x z + y z .
FCD FCC
Bazele logice ale calculatoarelor
Exemplul 10.
Exemplul 11.
Rezolvare.
Vom atribui valoarea logică 1 pentru contact închis şi valoarea
logică 0 pentru contact deschis. Tabelul de adevăr pentru funcţia cerută este
prezentat în tabelul 5.3.
Sisteme de calcul şi operare
Tabelul 5.3
a b c f(a,b,c)
0 0 0 1
0 0 1 - La o funcţionare normală,
aceste combinaţii
nu pot să apară
0 1 0 -
0 1 1 -
1 0 0 0
1 0 1 -
1 1 0 1
1 1 1 0
0 +5 V +5 V 0V
Nivelul de tensiune -5 V 0V 0V -5 V
-5 V +5 V +5 V -5 V
x f(x)= x
0 1
1 0
Sisteme de calcul şi operare
Circuitul logic ŞI
x1 x2 f(x1,x2)= x1 x2
0 0 0
0 1 0
1 0 0
1 1 1
x1 x2 f(x1,x2) = x1 + x2
0 0 0
0 1 1
1 0 1
1 1 1
Bazele logice ale calculatoarelor
x1 x2 f(x1,x2)= x1 x2
0 0 1
0 1 1
1 0 1
1 1 0
хI х2 f(хI,х2)= хI + х2
0 0 1
0 1 0
1 0 0
1 1 0
хI х2 f(хI, х2)= хI х2
0 0 0
0 1 1
1 0 1
1 1 0
Bazele logice ale calculatoarelor
Dacă se va nega una din intrările unei porţi ŞI se obţine circuitul logic
de INHIBARE.
Prin negarea uneia din intrările unui circuit logic SAU se va obţine
un circuit logic de IMPLICARE.
Observaţie.
Utilizând circuitul logic NAND sau NOR se pot obţine implementări
pentru funcţiile NU, ŞI (figura 5.14), SAU.
Aşa cum poarta (ŞI, SAU etc.) este element combinaţional de bază,
circuitul basculant bistabil este folosit ca element de bază pentru memorare
(memorie RAM de un bit).
Circuitul basculant bistabil (CBB) se caracterizează prin două stări
stabile. Trecerea dintr-o stare în alta se face prin aplicarea unei comenzi
exterioare.
Din categoria circuitelor basculante mai avem:
Circuite basculante monostabile, ce se caracterizează printr-o
singură stare stabilă. Cu ajutorul unei comenzi exterioare se
poate trece într-o altă stare, în care va rămâne un interval de timp
determinat de elementele circuitului, după care revine în starea
iniţială. Acestea sunt utilizate ca elemente de temporizare.
Circuite basculante astabile, nu prezintă nici o stare stabilă.
Trecerea dintr-o stare în alta se realizează fără o comandă
exterioară. Perioada semnalelor generate depinde de valorile
parametrilor circuitului. Acestea sunt folosite drept circuite
oscilante.
Sisteme de calcul şi operare
S(t) 0 0 0 0 1 1 1 1
R(t) 0 0 1 1 0 0 1 1
Q(t-τ) 0 1 0 1 0 1 0 1
Q(t) 0 1 0 0 1 1 ? ?
Bazele logice ale calculatoarelor
Q(t) = S(t) R(t) Q(t-τ) +S(t) R(t) Q(t-τ) +S(t) R(t) Q(t-τ)
Circuitul bistabil JK
Bistabilul RST
Bistabilul JKT
5.8.1 Registrul
Tabelul de adevăr
Tabelul 5.4
Intrări Qi Ieşirea
Modul de
operare
PL CE CP DS D0-D7 Q0 Q1-Q6 Q7
Încărcarea L * * * L L L L
paralelă L * * * H H H H
Deplasarea H L L-H L * L Q0-Q5 Q6
serială H L L-H H * H Q0-Q5 Q6
Starea
H H * * * Q0 Q1-Q6 Q7
nemodificată
Bazele logice ale calculatoarelor
5.8.2 Numărătorul
Stările
Impuls Valoarea
Q3 Q2 QI
ceas zecimală
T1 0 0 0 0
T2 0 0 1 1
T3 0 1 0 2
T4 0 1 1 3
T5 1 0 0 4
T6 1 0 1 5
T7 1 1 0 6
T8 1 1 1 7
c)
Figura 5.27 Numărător asincron direct
a) schema b) diagrama de semnale c) stările
Dezavantaj: limitarea vitezei de lucru, din cauza timpului mare de
propagare.
Avantaje:
impulsurile de numărare acţionează asupra unui singur CBB şi
deci nu este necesară o putere mare a generatorului de impulsuri;
controlul numărării este foarte simplu, fiind suficientă oprirea
basculării primului CBB din lanţ pentru ca numărarea să fie
oprită.
Bazele logice ale calculatoarelor
Stările
Impuls Valoarea
Q3 Q2 QI
ceas zecimală
T1 0 0 0 0
T2 1 1 1 7
T3 1 1 0 6
T4 1 0 1 5
T5 1 0 0 4
T6 0 1 1 3
T7 0 1 0 2
T8 0 0 1 1
c)
Numărătoare reversibile
Intrări Ieşiri
ai bi Ti Si Ti+1
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
Sisteme de calcul şi operare
utilizare:
matrice pentru codificare;
matrice pentru decodificare;
matrice pentru selecţie;
matrice pentru distribuţie.
Tabel de adevăr
Tabelul 5.5
Intrarea Ieşirile codificatorului
Cifra octală A B C
C0 0 0 0
C1 0 0 1
C2 0 1 0
C3 0 1 1
C4 1 0 0
C5 1 0 1
C6 1 1 0
C7 1 1 1
Tabelul. 5.6
Familia de CI Circuite combinaţionale Circuite secvenţiale
Porţi: NU, ŞI, SAU, NAND, Circuite basculante
NOR bistabile
6.1 Introducere
6.2 Topologii
Topologia broadcast
Placa de reţea
Repetorul (repeater)
Hub-ul
Hub-ul acţionează tot la nivel de bit şi de regenerare a semnalelor,
fiind denumit, de fapt, repetor multi-port, deoarece prezintă un port de
intrare, dar mai multe porturi de ieşire. Introducerea unui hub în reţea
creează un punct de conexiune centrală (la care sunt legate toate gazdele) şi
măreşte fiabilitatea. Hub-urile pot fi de mai multe tipuri, unele fiind hub-uri
active, ce folosesc energie electrică pentru a regenera semnalele, în timp alte
hub-uri sunt hub-uri pasive care doar împart semnalele la mai mulţi
utilizatori. Hub-urile pasive nu regenerează biţii, nu extind lungimea cablării
şi nu permit ca două sau mai multe gazde să fie conectate pe acelaşi segment
de cablu. Există, de asemenea, şi hub-uri inteligente, care pot fi programate
pentru a se administra traficul în reţea.
Bridge-ul
Bridge-ul acţionează la un nivel superior (nivelul 2 din modelul OSI,
model pe care îl vom prezenta în secţiunea 6.2.3), conectând două segmente
de reţea. De asemenea, un bridge filtrează traficul în reţea pe baza adreselor
MAC, regula generală fiind următoarea: traficul local (ce provine din acelaşi
segment de reţea) este menţinut local iar traficul din afara segmentului de
reţea este direcţionat în afara segmentului de reţea. Un bridge creează şi
administrează nişte tabele de adrese MAC pe baza cărora poate face filtrarea
traficului după regula de mai sus.
Switch-ul
Switch-ul este tot un echipament de reţea ce acţionează la nivelul 2
din modelul OSI, fiind denumit şi bridge multi-port. Deciziile de
direcţionare a traficului din reţea se fac tot pe baza adreselor MAC,
comutarea semnalelor transmise făcându-se către portul unde este conectat
calculatorul destinaţie (cel căruia i se adresează pachetul de date).
Switch-urile arată oarecm asemănător cu un hub dar administrează
transmisiunile de pachete de date mult mai eficient, combinând capacitatea
de conectivitate a hub-ului cu reglarea traficului din reţea (pe care o face un
bridge) la nivelul fiecărui port de conexiune.
Router-ul
Router-ul este un echipament de reţea mai complex (şi mai scump, de
asemenea) ce acţionează la nivelul 3 din modelul OSI. Acest dispozitiv
poate lua decizii de direcţionare a pachetelor de date din reţea pe bază de
clase de adrese logice (adrese IP), putând conecta diferite tehnologii de nivel
Sisteme de calcul şi operare
6.4.1 Introducere
grupuri. Primul grup, format din cele trei nivele superioare defineşte modul
de comunicare între aplicaţiile de pe staţiile terminale din reţea şi modul de
comunicare cu utilizatorii. Cel de-al doilea grup, format din cele 4 nivele
inferioare defineşte modul de transmitere a datelor de la o sursă la o
destinaţie. În figura 6.9 sunt prezentate cele 7 nivele ale modelului OSI
împreună cu câteva caracteristici principale ale fiecărui nivel.
Modalitatea de funcţionare a nivelelor din modelul OSI este
următoarea: fiecare nivel oferă servicii nivelului imediat superior (nivelul
fizic oferă servicii nivelului legătură de date, nivelul legătură de date oferă
servicii nivelului reţea ş.a.m.d.), excepţie făcând nivelul aplicaţie care nu are
un alt nivel superior. Comunicarea între două sisteme terminale din reţea se
face, de asemenea, pe baza unor protocoale corespunzătoare nivelelor din
modelul OSI la care acestea activează. Astfel, nivelul aplicaţie al uni sistem
terminal comunică cu nivelul aplicaţie al celuilalt sistem, nivelul reţea cu
nivelul reţea, etc.
Vom face în continuare o analiză mai detaliată pentru fiecare nivel
din modelul OSI în parte, pe baza modelului top-down, plecând de la nivelul
aplicaţie (de vârf) şi ajungând la nivelul fizic (de bază).
Nivelul aplicaţie
Nivelul prezentare
Nivelul sesiune
• Modul simplex implică faptul că transmisia de date se face într-un singur sens între staţia
sursă şi cea destinaţie. Modul half-duplex oferă posibilitatea transmisiei în ambele sensuri
între două sisteme terminale, dar într-un singur sens la un moment dat, în timp ce modul
full-duplex semnifică faptul că transmisia se poate efectua în ambele sensuri la acelaşi
moment dat.
Reţele de calculatoare
Nivelul transport
Controlul fluxului
Transmiţător Receptor
Se trimite SYN
Secvenţa m
ACK=n+1
Se recepţionează SYN
Secvenţa m
ACK=m+1
porţi (gateway) către destinaţie. În acest din urmă caz, fie poarta de
transmitere fie destinaţia pot deveni aglomerate iar cauza problemei nu
provine de la un singur sistem terminal. Congestia în reţea este similară cu
traficul de maşini de pe o autostradă: un număr prea mare de maşini ce
utilizează autostrada conduce la un trafic aglomerat şi la apariţia de gâtuiri
ale traficului (aşa numitele ambuteiaje). În momentul în care o staţie din
reţea recepţionează datagrame (structuri de date) prea rapid pentru a le
putea procesa, acestea sunt stocate într-o zonă de memorie tampon numită
buffer. Această modalitate de a copia datagramele în memoria tampon
rezolvă problema doar dacă acest trafic supraaglomerat este de scurtă
durată. Dacă supraîncărcarea persistă, memoria tampon va deveni
insuficientă pentru stocarea tuturor datagramelor primite şi datagramele
ulterioare primite se vor pierde. Tocmai pentru a se evita astfel de pierderi
de date a fost creată funcţia de transport ce controlează fluiditatea traficului
de date din reţea.
Un alt procedeu utilizat pentru transmiterea datelor de la o sursă la o
destinaţie se numeşte windowing. Deoarece viteza efectivă de transfer a
datelor ar fi prea înceată dacă staţia care transmite ar aştepta o confirmare
pentru fiecare segment de date trimis, după iniţierea comunicaţiei se pot
transmite mai multe pachete de date înainte de a primi o confirmare din
partea destinatarului. Numărul de segmente transmise până la primirea unei
confirmări poartă numele de window (îi vom spune fereastră de date).
Există mai multe tipuri de folosire a acestei tehnici: în timp ce unele
protocoale cuantifică informaţia trimisă într-o fereastră de date ca multiplu
de pachete, alte protocoale (între care şi TCP/IP) folosesc multiplii de octeţi
pentru ferestrele de date. Figura 6.11 ilustrează acest procedeu folosind două
dimensiuni window: 1 şi 3. În cazul unui window de mărime 1,
transmiţătorul aşteaptă o confirmare pentru fiecare segment de date transmis
înainte de a trimite alt segment de date. În cazul unui window de
dimensiune 3, se vor transmite 3 pachete de date fără a se aştepta
confirmarea.
Reţele de calculatoare
Transmiţător Receptor
Se trimit 3 pachete
Se recepţionează 3
pachete şi se trimite
confirmarea
Se recepţionează
confirmarea şi se trimit
alte 3 pachete
Se recepţionează 3
pachete şi se trimite o
nouă confirmare
ACK=m+1
Se recepţionează
confirmarea şi se
continuă procedeul
Nivelul reţea
227
Reţele de calculatoare
228
Sisteme de calcul şi operare
Nivelul legăturii de date (data link) din modelul OSI are două
funcţiuni principale: asigură faptul că mesajele sunt transmise dispozitivului
corespunzător şi translatează aceste mesaje provenite de la nivelul superior
(nivelul reţea) în biţi pe care îi transmite mai departe nivelului fizic.
Mesajele sunt formatate în cadre de date (data frames) şi li se adaugă un
header ce conţine adresele hardware pentru destinaţie şi pentru sursă. Aceste
informaţii adiţionale formează un fel de înveliş (capsulă) ce înconjoară
mesajul original, de aceea acest procedeu se mai numeşte şi procedeul de
încapsulare a datelor.
Dispozitivele ce activează la nivelul 2 OSI se numesc switch-uri
(comutatoare) şi bridge-uri (punţi). Dacă ruterele ce activează la nivelul
reţea iau decizii privind direcţionarea pachetelor de date inter-reţele,
switch-urile şi bridge-urile se ocupă cu identificarea destinaţiei pachetelor în
cadrul reţelei locale. Atunci când un sistem terminal sursă doreşte să
transmită date către un sistem terminal destinaţie, nivelul legătură de date
foloseşte adresarea hardware (spre deosebire de nivelul reţea care foloseşte
adresarea software). Atunci când un pachet de date este schimbat între două
rutere, este transformat într-un cadru prin adăugarea informaţiei de control
la nivelul legătură de date, dar această informaţie este înlăturată de către
ruterul destinaţie şi este considerat doar pachetul original de date. Acest
procedeu de încapsulare în cadre a pachetului continuă până ce pachetul
ajunge la destinaţie. Este important să înţelegem că pachetul de date rămâne
intact pe toată durata transportului, încapsularea cu diverse tipuri de
informaţie de control (în funcţie de mediul de transmisie) neafectând
conţinutul său.
Nivelul legătură de date are două subnivele:
Subnivelul MAC (Media Access Control) 802.3 care defineşte
modalitatea în care pachetele sunt trimise spre mediul de transmisie.
Accesul la mediul de transmisie (pe scurt, mediu) se face pe baza regulii
primul venit, primul servit, atunci când este partajată întreaga lăţime de
bandă. Tot aici se defineşte şi adresarea fizică precum şi topologia locală.
229
Reţele de calculatoare
Nivelul fizic
230
Sisteme de calcul şi operare
amplificat şi trimis apoi către toate porturile hub-ului. În acest caz, toate
dispozitivele ataşate hub-ului spunem că se află în acelaşi domeniu de
coliziuni şi în acelaşi domeniu broadcast. Un domeniu broadcast este un
domeniu în care echipamentele din segmentul de reţea respectiv „ascultă”
toate semnalele de tip broadcast de pe acel segment. La fel ca şi repetoarele,
hub-urile nu analizează traficul de date pe timpul retransmiterii lor.
Hub-urile generează o reţea fizică de tip stea (star) în care hub-ul este
nodul central la care sunt conectate dispozitivele în formă de stea.
Standardul Ethernet pentru reţele LAN foloseşte o topologie logică de tip
magistrală (bus), în care semnalele sunt transmise de la un capăt la altul al
reţelei şi fiecare echipament conectat la hub „ascultă” dacă un alt
echipament transmite date.
Introducere
231
Reţele de calculatoare
OSI TCP/IP
Aplicaţie
Nivele legate de
Prezentare
aplicaţii Aplicaţie
Protocoale
Sesiune
Transport Transport
Reţea Internet
Nivele legate de
fluxul de date
Legătură de Reţea
date Gazdă-la-reţea
Fizic
Nivelul aplicaţie
232
Sisteme de calcul şi operare
Nivelul transport
Este următorul nivel de sus în jos după nivelul aplicaţie şi este astfel
conceput încât să permită conversaţii între entităţile pereche din sistemul
terminal sursă şi cel destinaţie, într-un mod asemănător cu nivelul transport
din modelul OSI. La acest nivel se află implementate două protocoale: TCP
(Transmission Control Protocol) şi UDP (User Datagram Protocol). TCP
este protocolul sigur şi fiabil orientat pe conexiune care permite ca un flux
de octeţi trimişi de la o sursă să ajungă la destinaţie fără erori, în timp ce
UDP este un protocol nesigur, fără conexiune, destinat aplicaţiilor care
doresc să utilizeze propria lor secvenţiere şi control al fluxului şi nu cele
oferite de TCP.
Nivelul Internet
Nivelul gazdă-la-reţea
235
Reţele de calculatoare
236
Sisteme de calcul şi operare
237
Reţele de calculatoare
Unul din termenele cele mai folosite atunci când este vorba de o
reţea de calculatoare sau de Internet este termenul de „protocol”. Vom
prezenta în continuare o definiţie şi câteva exemple pentru a putea identifica
un protocol. Probabil că cea mai bună modalitate de a înţelege noţiunea de
protocol este aceea de a considera pentru început o serie de analogii cu
intercomunicarea din lumea umană. Să considerăm exemplul în care
întrebăm pe cineva unde se află o anume stradă (Figura 6.13).
Bunele maniere (protocolul uman) ne fac să spunem întâi „Bună
ziua!” pentru a începe comunicarea cu o altă persoană. Răspunsul ar trebui
să fie, desigur, tot „Bună ziua!”, ca o confirmare a faptului că este acceptată
comunicarea. Interpretarea răspunsului ca un accept al comunicării ne
permite acum să formulăm întrebarea care ne interesează. Dacă răspunsul
iniţial al persoanei căreia îi adresăm „Bună ziua!” ar fi fost „Lasă-mă în
pace, sunt ocupat!” sau ceva asemănător, atunci ar fi însemnat că nu există
posibilitatea comunicării. În acest caz, nu mai are rost să formulăm
întrebarea al cărei răspuns dorim să-l aflăm. Uneori este posibil să nu
primim nici un răspuns la o întrebare, caz în care de regulă renunţăm a mai
repeta întrebarea.
Regulile intercomunicării umane (protocolul uman) sunt astfel
reprezentate de mesajele pe care le trimitem şi de acţiunile specifice pe care
le întreprindem corespunzătoare răspunsului primit de la interlocutor sau
producerii altor evenimente. Mesajele transmise şi cele recepţionate joacă
un rol fundamental în cazul protocoalelor umane; dacă o persoană are
obiceiuri diferite sau foloseşte un limbaj străin altei persoane, atunci
protocoalele diferite nu vor permite intercomunicarea între respectivele
persoane. Acelaşi lucru este valabil şi în cazul comunicării între entităţile
dintr-o reţea de calculatoare. Pentru a putea comunica, respectivele entităţi
trebuie să folosească (să ruleze) acelaşi protocol de reţea.
Un protocol de reţea este asemănător unui protocol uman, excepţie
făcând obiectele comunicării: în loc să avem de-a face cu oameni, avem de-
a face cu componente hardware sau software ale reţelei. Toate activităţile
dintr-o reţea de calculatoare (deci şi din Internet) sunt bazate pe
funcţionarea unui anumit set de protocoale. De exemplu, comunicarea dintre
două calculatoare în reţea se face prin protocoale implementate în hardware
la nivelul plăcii de reţea pentru controlul fluxurilor de biţi transmişi prin
intermediul suportului fizic; protocoalele de control al congestiilor au grijă
să controleze viteza de transmitere a datelor între un transmiţător şi un
receptor iar protocoalele de poştă electronică guvernează modalitatea de
transmitere şi de recepţie a mesajelor de tip e-mail.
238
Sisteme de calcul şi operare
239
Reţele de calculatoare
240
Sisteme de calcul şi operare
241
Reţele de calculatoare
242
Sisteme de calcul şi operare
243
Reţele de calculatoare
244
Sisteme de calcul şi operare
245
BIBLIOGRAFIE
246