Sunteți pe pagina 1din 21

Subiecte

1. Polimorfism .apare doar in contextul mostenirii.


Polimorfism: poli-multe morphos-forme
-proprietatea unei aplicatii de a se comporta diferit in functie de conditiile din momentul
rularii
-pb apare in momentul in care se apeleaza o metoda( cu nume si parametrii cunoscuti ) a
unui obiect dar nu se cunoaste tipul obiectului
-acest lucru este posibil numai in cazul pointerilor la clase de baza care pot tine adresa atat a
unor obiecte ale clasei de baza cat si a oricaror ob derivate din ac clasa de baza
polimorfismul apare numai in contextul mostenirii

Mostenire= creearea unei clase numita extinsa sau derivata , din alta clasa numita clas a de
baza
Polimorfism=tratarea uniforma a obiectelor din clase diferite.. Exista la clasa diferite
derivate din aceesi clasa de baza.Polimorfismul este implementat printr-un apel al unei
metode care executa metode distincte pt obioecte din clase distincte
Este posibil prin redefinirea metodelor si datelor private prin mostenire.

De ce nu e suficient optimizare locala


Paralelismul la nivelul basic blockurilor este scazut, 2-3 instructiuni, deoarece majoritatea
programelor HLL sunt scrise in limbaje imperative si pt masini secventiale cu un nr limitat
de registre gradul de dependenta dintre instr adiacente este ridicat.
Asadar pt marirea nivelului de paraleslism este necesara suprapunerea executiei unor instr
situate in basic blockuri diferite, ceea ce conduce la ideea optimizarii globale
Tehnici: Trace-scheduling, Loop unrolling si Software pipeling

2. Arbori de cautare euristica.


Volovici p. 50, 66, 22
Leg dintre abstractizare si mostenire.

Arbori de cautare euristica


Cautarea euristica.
Algoritmul A*.
O alta modalitate ar fi implementarea unui algoritm de tip A*. Acesta este un algoritm de
gasire a unui drum spre o stare finala. Se bazeaza pe o estimare euristica a distantei de la o
anumita stare la starea finala.
Aceasta estimare poate sa fie optimista (mai mica decit distanta reala de la starea respectiva
la solutie) sau pesimista (mai mare).
Algoritmul A* bazindu-se pe o estimare optimista va conduce intotdeauna la o solutie
minima ca numar de pasi (dar insa si nu ca timp de executie).
De exemplu daca stabilim distanta de la o stare oarecare la starea finala ca fiind mereu 1
vom obtine o estimare optimista, insa vom sfirsi prin a face o cautare pe toate variantele de
mutari("brute-force").

1
-Se cauta in spatiul starilor
-se cauta in arborii AND/OR

Leg dintre abstractizare si mostenire.

Asa cum am vazut mai sus, conceptul de mostenire este o notiune foarte naturala si pe care o
intalnim in viata de zi cu zi. In C++ intalnim notiunea de derivare, care este in fapt o
abstractizare a notiunii de mostenire. O clasa care adauga proprietati noi la o clasa deja
existenta vom spune ca este derivata din clasa originala. Clasa originala poarta denumirea de
clasa de baza.
Clasa derivata mosteneste toate datele si functiile membre ale clasei de baza; ea poate
adauga noi date la cele existente si poate suprascrie sau adauga functii membre. Clasa de
baza nu este afectata in nici un fel in urma acestui proces de derivare si ca urmare nu trebuie
recompilata. Declaratia si codul obiect sunt suficiente pentru crearea clasei derivate, ceea ce
permite reutilizarea si adaptarea usoara a codului deja existent, chiar daca fisierul sursa nu
este disponibil. Astfel, nu este necesar ca programatorul unei clase derivate sa cunoasca
modul de implementare a functiilor membre din componenta clasei de baza.

O notiune noua legata de derivare este cea de supraincarcare sau suprascriere a functiilor
membre. Aceasta se refera, in mod evident, la redefinirea unor functii a clasei de baza in
clasa derivata. De notat este faptul ca functiile originale din clasa parinte sunt in continuare
accesibile in clasa derivata, deci caracteristicile clasei de baza nu sunt pierdute.

Dintr-o clasa de baza pot fi derivate mai multe clase si fiecare clasa derivata poate servi mai
departe ca baza pentru alte clase derivate. Se poate astfel realiza o ierarhie de clase, care sa
modeleze adecvat sisteme complexe. Pornind de la clase simple si generale, fiecare nivel al
ierarhiei acumuleaza caracteristicile claselor "parinte" si le adauga un anumit grad de
specializare. Mai mult decat atat, in C++ este posibil ca o clasa sa mosteneasca simultan
proprietatile mai multor clase, procedura numita mostenire multipla. Construirea ierarhiei de
clase reprezinta activitatea fundamentala de realizare a unei aplicatii orientate obiect,
reprezentand in fapt faza de proiectare a respectivului sistem

3. Analiza, in cadrul ingineriei software.


Sima- el ing. Soft p.24, 6
clarificarea cerintelor
construirea unui model al sist independent de limbaj
faza de stabilire a cerintelor
analiza obiectuala

Predictie dinamica- statica

4. Fis text.
Fisierul text este o succesiune de caractere ASCII încheiata cu caracterul ^Z, care are rol de
marcator de sfârsit de fisier. Deci, componentele elementare ale fisierelor text sunt
caracterele, grupate în linii. Lungimea liniilor nu este fixa, pentru separarea lor utilizându-se
un marcaj de sfârsit de linie (caracterele CR/LF).
Fisierele text pot fi create prin intermediul editoarelor si sunt direct afisabile.

Arhitectura cache , mapare directa, semi asoc.


Mihu p.37, p.43, 80

2
5. Principii proiectare obiectuala.
1.Descompunerea
2.Ierarhizarea
3.Abstractizarea

Metoda Boch de analiza si proiectare OO


Abstractizare se evidentiaza caracteristicile unui obiect care il difereantiaza de celelalte
Incapsulare- procesul de compartizare a elementelor unei abstractii,elemente care constituie
structura acestei abstractii
Modularizarea- abstrcatizarile se plaseaza in module pt a obtine arhitectura fiyica a
obiectului
Ierarhizarea - clasele sunt noduri in ierarhii care descriu relatiile dintre ele

Principii ale proiectarii claselor


OCP - Open Closed
open pt a fi extins
closed la modificarea codului sursa
LSP - substitutiei lui Liskov
Subclasele tre sa poata substitui clasele de baza
DIP - Principiul Dependentei inverse
Sa depinzi de abstract si nu de concret
ISP -Principiul segregarii interfetelor
mai multe interfete specifice sunt de preferat uneia generale
Principii arhitecturii pachetelor
Principii de coeziune
Principii de cuplare
.........p. 57

Caract microcontroler-elor.
Microcontrolerul este un dispozitiv electronic complex care integreaza, pe langa unitatea
centrala de procesare ( microprocesor ), memorie, linii de intrare/iesire, comparatoare,
numaratoare, seriala, etc.
Toate aparatele inteligente fabricate astazi dispun de astfel de microcontrolere. Pot include
aici televizoarele, masinile de spalat, imprimantele, sistemele de alarma, majoritatea
aparatelor ce pot fi programate si care citesc anumiti parametri ce se modifica in timp.
Caracteristicile microcontrolerelor
· Optimizate pentru control in timp real si pentru sarcini de manipulare a datelor;
· Executie predictibila, in functie de arhitectura;
· Microcontrolerele se comporta bine la intreruperi, mai ales la evenimente externe
asincrone;
· Mai multe caracteristici de I/O, inclusiv manipularea bitilor;
· Marime mare a programului, deseori se aplica HLL;
· Set bogat de periferice on-chip.

3
6. Caracteristica metodei relationale a BD.(bazei de date)
Modelul relaţional a fost introdus de E.F. Codd în 1970 şi a constituit un moment de
răscruce în managementul datelor. Abordarea propusă de Codd era complet diferită de cele
anterioare. În modelul relaţional structura de date era reprezentată de o tabelă, de tip
spreadsheet, constituită din linii şi coloane. Fiecare linie identifică un articol şi fiecare
coloană un câmp din articol.

În limbajul relaţional tabela este realţia, linia este tuplul iar coloana atributul. Astfel
modelul relaţional este perfect fundamentat matematic de algebra relaţiilor. O tabelă este
unic identificată de o cheie primară, respectiv o coloană (câmp, atribut) sau o combinaţie
de coloane cu proprietatea că nu există două linii din tabelă care să aibe aceeaşi valoare
pentru cheia primară. Un domeniu este o mulţime de valori posibile pentru atribute
specifice relaţiei.
Cheia primară este un caz special de cheie candidată (candidate key). O cheie candidată
pentru o relaţie R este o submulţime K de atribute ale lui R cu proprietatea de unicitate şi de
ireductibilitate. Proprietatea de unicitate spune că nu există două tuple din R care să aibe
aceaşi valoare pentru K, iar proprietatea deireductibilitate constă în faptul că nici un subset
propriu al lui K nu are proprietatea de unicitate.
Cheia străină (foreign key) este un atribut sau o combinatie de atribute ale unei relatii R2
ale caror valori trebuie sa se potriveasca cu cele ale unei chei primare dintr-o alta relatie R1.
relatiile R1 si R2 nu sunt neaparat distincte. Cheia straina si cheia primara trebuie sa fie
definite neaparat pe acelasi domeniu.

Solutii C, C++ de tratare a exceptiilor.

Modul client Modul nucleu


try{
} throw (numele exceptiei)
catch
{
}
tratarea traditionala a erorilor:
-terminarea aplicatiei
-returnarea unui cod de eroare
-pozitionarea unui indicator global
-ignorarea erorii
-invocare handler specializat
Modul nucleu:
-modul care contine resurse apelabile
Modul client:
-utilizeaza resurse ale modulului nucleu
-nucleul detecteaza execptiile dar nu ofera solutii de tratare
-clientul nu poate detecta execptiile dar le trateaza

7. Pointeri.
tip *nume tipul spre care< pinteaza
acces la info *p
operatorul &
&p= adresa lui p
Proprietati
se pot face atribuiri

4
pointerul poate primi valoarea NULL
comparatii intre pointeri de acelasi tip
adunarea intre un pointer si un intreg
incrementarea-decrementarea
diferenta intre doi pointeri de acelasi tip
pointeri la functii
o varoabila pointer contine o adresa

Tehnici principale de reutilizare dinamica a instr. HLL.


Exploateaza fen de repetitie dinamica a instr, reducand astfel cantitatea de cod masina
-reutiliz instr este relativ frecventa si se datoreaz amodului compact de scriere a programelor
precum si caracteristicilor intrinseci ale structurilor de date
-o instr dinamica este reutilizabila dc ea opereaza asupra acelorasi intrari si produce acelasi
rezultat precum o instanta anterioara a aceleiasi instructiuni
A. sodani si G. Sohi 3 scheme de reutilizare dinamica: primele 2 la nivel de instructiune iar
a treia la nivel de lant de instr dependente RAW
Instr exec sunt memorate intr-un mic cahe(RB-reuse buffer). Ac se adreseaza cu PC pe
timpul fazei IF. Rb trebuie sa iaba mecanism de testare a reutilizabilitatii si de invalidare
selectiva
-modul de inserarea a instr in RB poate fi selectiv sau nerestrictiv
-mentinerea consistentei informatiilor in RB depinde de schema de reutilizare. In general
RB este multiport pt a permite reutiliz mai multor instr

-trace-cache

8. Leg polimorfism-mostenire
-proprietatea unei aplicatii de a se comporta diferit in functie de conditiile din momentul
rularii
-pb apare in momentul in care se apeleaza o metoda( cu nume si parametrii cunoscuti ) a
unui obiect dar nu se cunoaste tipul obiectului
-acest lucru este posibil numai in cazul pointerilor la clase de baza care pot tine adresa atat a
unor obiecte ale clasei de baza cat si a oricaror ob derivate din ac clasa de baza
polimorfismul apare numai in contextul mostenirii

Mostenire= creearea unei clase numita extinsa sau derivata , din alta clasa numita clas a de
baza
Polimorfism=tratarea uniforma a obiectelor din clase diferite.. Exista la clasa diferite
derivate din aceesi clasa de baza.Polimorfismul este implementat printr-un apel al unei
metode care executa metode distincte pt obioecte din clase distincte
Este posibil prin redefinirea metodelor si datelor private prin mostenire.

Arbori de joc
Trasaturi fundamentale:
-exista 2 jucatori care muta pe rand
--la fiecare mutare, regulile definesc atat ce mutari sunt legale , cat si efectul pe care l-ar
avea fiecare mutare posibila
-fiecare jucator are informatia completa despre pozitia adversarului, inclusiv despre alegerile
pe care acesta le-ar putea face
-jocul incepe dintr-o stare specificata, adesea o anumita configuratie a pieselor pe tabla
-se sfarseste prin castigul unui jucator si pierderea celuilalt, sau prin egalitate

5
Un arbore de joc complet este o reprezentare a tuturor partidelor posibile ale unui astfel de
joc. Modul radacina este starea initiala, in care este randul primului jucator la mutare.
Succesorii sai sunt starile in care se poate ajunge din el printr-o singura mutare, succesorii
acestor stari fiind starile rezultate din replicile posibile ale celuilalt jucator...
Starile finale sunt acelea care duc la o victorie, infrangere sau remiza
-fiecare cale completa de la nodul radacina la un nod terminal da o partida completa
-un arbore se reprezinta din pdvd al unui singur jucator:
-nodurile posibile ale acestuia sunt reprezentate prin noduri OR
-mutarile pe care le poate primi in replica sunt noduri AND pt ca reprezinta
mutari la care jucatorul trebuie sa le faca fata
Fomalismul min-max
-tehnica de cautare in arborii de joc
-datorita modului in care sunt evaluate modurile jucatorul A este adesea numit max iar
jucatorul B min

9. Functii, declaratii
prototip tip_rez ume_functie(tip1,tip2,...)
corp functie

Microprocesoare superscalare.De ce au success commercial mai mare VLIW


Dificultatile modelului VLIW:
-paralelismul limitat al aplicatiei ceea ce determina ca unitatile de executie sa nu fie ocupate
permanent(valabil si la modelul superscalar)
-icompatibiltate soft cu modele succesive si compatibile de procesoare care nu pot avea un
model VLIW identic datorita faptului ca paralelismul la nivelul instr depinde de latentele
operatiilor proc scalar, de nr unuitatilor functionale si de alte caract hardware
-dificultati deosebite in reaorganizarea aplicatiei in vederea det unor instr independente sau
cu grad scazut de dependenta
-cresterea complexitatii harware si a costurilor ca urmare a resurselor multiplicate
-cresterea necesitatilor de memorarea a progr datorita reorganizarilor soft si impachetarii
instr primitive in cadrul unor instr multiple care necesita introducerea unor instr NOP

10. Alocarea dinamica a memoriei.


new , delete , calloc, malloc

Nivelul retea
controlul functionarii subretelei de comunicatie
alegerea rutei sursa-dest
dirijare - statica tabela cablata
- dinamica algoritmi de rutare
spargerea pachetelor mari in subpachete , daca reteaua intermediara nu suporta pachete mari

11. Depozite de date. Moisil –Baze de date p. 18


Reprezintă o bază de date care conţine mai multe informaţii statistice pe baza cărora se obţin
rapoarte privind o anumită situaţie
("un depozit de date este o colecţie de date destinate fundamentării deciziei manageriale") şi
o caracterizare ("o astfel de colecţie de date este: (1) tematică, (2) integrată, (3) plasată
într-un context temporal şi (4) permanentă").

Genul proxim: o colecţie de date. Datele din data warehouse provin în principal din datele

6
capturate din sistemul operaţional, dar mai pot proveni din datele de arhivă (în perioada de
constituire a depozitului) precum şi din surse externe, cum ar fi baze de date publice. Câteva
exemple posibile: date demografice (obţinute în urma unui recensământ), date statistice
(furnizate de institute specializate), date de prognoză economică (furnizate de instituţii
orientate pe studiul pieţei), date obţinute în urma unor sondaje de opinie, etc. Aceste date pot
fi cumpărate, pot fi preluate pe bază de abonament sau pot fi date publice gratuite.

Diferenţa specifică: destinate fundamentării deciziei manageriale. Spre deosebire de


colecţiile de date utilizate de sistemul operaţional - orientate spre optimizarea şi siguranţa
procesării datelor - datele dintr-un depozit de date sunt organizate într-o manieră care să
permită analizarea lor, deci extragerea semnificaţiei economice pe care o poartă. Rolul unui
depozit de date este de a oferi o imagine coerentă asupra datelor relative la activitatea unei
organizaţii şi a contextului în care acesta acţionează. Utilizarea acestei colecţii poate consta
din extragerea unor rapoarte (la cerere sau pe baza unui "abonament" cu o anumită
periodicitate), extragerea unor date pentru a fi utilizate de aplicaţiile de birotică (programe
de calcul tabelar, procesoare de text, programe de prezentare, etc), dar mai ales pentru a fi
utilizate de către aplicaţii specializate de analiză. Acestea ar putea fi împărţite în două
categorii: instrumente de analiză on-line (OLAP - On Line Analytical Processing - aplicaţii
axate pe analiză multidimensională) şi instrumente pentru "minerit" în date (data mining -
aplicaţii axate pe descoperirea unor şabloane semnificative în colecţii de date).
Dar partea cea mai consistentă a enunţului lui Inmon constă în caracterizarea acestor colecţii
de date destinate analizei. Le vom examina deci, în cele ce urmează.

Orientare tematică
Să remarcăm pentru început că datele operaţionale sunt orientate pe aplicaţii, în sensul că
organizarea lor este optimizată pentru a servi procesului tranzacţional, dinamicii sistemului.
În contrast, depozitul de date este orientat pe subiectele importante ale procesului economic,
cum ar fi: clienţi, furnizori, produse, activităţi.
Un exemplu simplu poate fi edificator: o comandă lansată de un client va fi consemnată de
sistemul operaţional printr-un set de înregistrări care vor conţine informaţii despre client,
informaţii despre produsele sau serviciile comandate, informaţii despre modul de transport şi
modul de plată, etc. Atenţia sistemului tranzacţional este orientată către consistenta cheilor,
astfel încât operaţia să păstreze consistenta. Multe dintre datele esenţiale din perspectivă
operaţională (numărul comenzii, poziţiile liniilor în cadrul comenzii, etc) sunt complet
lipsite de relevantă din perspectivă informaţională.
O consecinţă importantă a acestei orientări este redundanţa datelor. Dacă în sistemul
operaţional redundanţa este eliminată (prin procesul de normalizare) pentru a evita
anomaliile de actualizare, în depozitul de date redundanţa este creată în mod intenţionat
(prin denormalizare şi rezumare) pentru a permite un acces tematic mai facil.

Integrare
Este cel mai important aspect al depozitului de date şi, în cele din urmă, raţiunea pentru care
acesta este creat. Datele sunt adunate aici pentru a răspunde nevoilor informaţionale ale
întregii organizaţii, asigurând faptul că rapoartele generate pentru diverse compartimente
vor conţine aceleaşi rezultate. Sistemul operaţional este de cele mai multe ori format din
subsisteme semi-independente, create la momente diferite, de echipe diferite, în maniere
diferite, rezultând o babilonie care, deşi funcţională, este imposibil de folosit pentru analiză.
Contextul temporal
Sistemul operaţional al unei organizaţii tinde mereu să reflecte realitatea curentă. Astfel, el

7
se află într-o continuă evoluţie iar datele pe care le conţine sunt relevante doar pentru
momentul în care sunt accesate. Orizontul de timp pe care îl acoperă este de regulă de 60
până la 90 de zile, deoarece după acest interval tranzacţiile efectuate sunt arhivate, fiind
considerate deja de domeniul istoriei, deci neinteresante din perspectivă operativă.
Pentru nevoile analizei economice, dimpotrivă, informaţiile cu caracter istoric sunt
esenţiale, deoarece ele pun în evidentă tendinţe care reprezintă fundamentul unei prognoze
corecte. Depozitul de date se constituie într-un istoric al sistemului operaţional, constituit
dintr-o serie de "instantanee", imagini la diverse momente în timp. Orizontul de timp pe care
îl acoperă depozitul de date este de cel puţin cinci ani, ajungând uneori la zece ani, în funcţie
de dinamica evoluţiei pieţei şi, deci, de relevanta datelor cu caracter istoric pentru nevoile
analizei.
Din punct de vedere tehnic, acesta implică faptul că orice înregistrare din depozitul de date
poate fi plasată în timp. Orice cheie de acces cuprinde şi o variabilă temporală.

Permanenţa
Esenţa aplicaţiilor operaţionale este actualizarea continuă a colecţiilor de date, actualizare
realizată în general pe bază tranzacţională. Orice tranzacţie procesată implică inserarea unor
noi înregistrări, modificarea sau eventual ştergerea altora, etc. Cu totul altfel stau lucrurile în
cazul depozitului de informaţii, unde o astfel de dinamică lipseşte. Practic singura
actualizare care se realizează aici este adăugarea periodică a unor date extrase din sistemele
operative. Din punctul de vedere al aplicaţiilor care folosesc depozitul de date, accesul la
date este doar pentru citire.
Din punctul de vedere al proiectării, această diferenţă este extrem de importantă. În sistemul
operaţional, o tranzacţie trebuie să ducă colecţia de date dintr-o stare consistentă într-o altă
stare consistentă, iar această implică mecanisme extrem de complexe de menţinere a
integrităţii datelor, mai ales în situaţia sistemelor intens concurenţiale: mecanisme de
jurnalizare, mecanisme de salvare/restaurare/refacere, mecanisme de detectare a blocărilor
circulare (dead lock), etc. În cazul depozitelor de date, aceste mecanisme sunt inutile, astfel
că gradul de libertate câştigat poate fi utilizat pentru optimizarea accesului la date prin
denormalizare, statistici ale accesării datelor şi reorganizare dinamică a indexării, etc

12. Design Pattern explicatii not Singleton, Adapter…


p. 71, sima
pattern=o solutie comuna a unei probleme intr-un anumit context

formatul unui sablon - nume, scop, motivatia,problema,solutia,consecintele

clasificare:
creationale - modul de creeare a obiectelor
structurale- compozitia claselor si a obiectelor
comportamentale- modul in care obiectele si clasele colaboreaza pentru indeplinirea unei
anumite sarcini

Scop domeniu de creationale Structurale Comportamentale


aplicare
clasa Factory method Adapter Interpreter
Tempalate Method
Obiect abstractFactory Adapter Chain of responsabilty
Builder Bridge Command
Prototype Composite Iterator
Singleton Decorator Mediator

8
Facade memento
Flyweight Observer
Proxy State
Strategy
Visitor

Medii de comunicare,enumerare si topologii.


Topologii: stea, inel, magistrala, punct la punct, cu puncte multiple si topologia
ierarhica

13. Instructiunea case, if, while


Instructiunea CASE permite alegerea unei actiuni dintr-un grup, în functie de valorile pe
care le poate lua un selector
Instrucţiunea condiţională IF este folosită pentru a compare două valori şi a realiza acţiuni
diferite în baza rezultatelor testului. Instrucţiunea urmează sintaxa (are forma) IF - THEN -
ELSE. Partea IF testează o condiţie. Dacă aceasta este adevărată, atunci este urmată ramura
THEN. În caz contrar se merge pe ramura ELSE.
Instructiunea WHILE este repetitivã cu un numãr necunoscut de pasi, al cãrei corp poate sã
nu fie executat niciodatã, dacã expresia logicã are de la început valoarea FALSE

Cadre si scenarii.
Cadrele asigură o structură prin care datele noi sunt interpretate pe baza conceptelor
achiziţionate în experienţele anterioare
Scenarile sunt structuri asemănătoare cadrelor, proiectate special petru reprezentarea
secvenţelor de evenimente

se bazeaza pe gruparea cunostintelor in manunchiuri (bundle).Pt fiecare manunchi se


folosesc anumite tehnice de reprezentare si fiecare cadru poate avea o alta rep de cunostinte
Cadru este identificat prtintr-un nume si o multime de etichete (pt identificara atributelor)
Fiecare atribut are o pozitie (slot) si fiecare slot are atasta o valoare

14. Stiva ,tabele de dispersie


Stiva - LIFO
Tabela hash - key

O stiva este o structura de date de tip "container" (depoziteaza obiecte de un anumit tip)
organizata dupa principiul LIFO (Last In First Out). Operatiile de acces la stiva (push -
adauga un element in stiva si pop -scoate un element din stiva) sint create astfel incit pop
scoate din stiva elementul introdus cel mai recent Tabela de dispersie:
- pentru regasirea eficienta a unui obiect cand acesta nu are o valoare numerica de
identificare utilizabila direct ca indice ıntr-un tablou
– ideea: gasirea unei functii h cu o valoare numerica unica pentru fiecare obiect considerat,
ıntr-un domeniu restrans (utilizabil ca indice)

Etapele proiectarii unei BD


Prezentarea mea p. 16 sb 36

15. Domenii de vizualizare, durata de viata, diferenta dintre ele.

9
Var. locale, var globale
Variabile locale:
-variabile declarate in interiorul functiei
-valabile in interiorul functiei
-sunt init cu valori neprecizate
-sunt generate intr-o zona de memorie de tip stiva(LIFO)
Variabile globale:
-var declarate in afara fct
-sunt init cu valori nule
-pot fi folosite in orice cu fct cu exceptia functiilor in care apar variabile locale cu
acelasi nume(in astfel de situatii, au prioritate cele locale)

Rolul SO
Sistemul de operare reprezintă o interfaţă între utilizator şi hardware.
-SO este un program care se comporta ca un intermediar intre utilizatorul calc si hardware
Scopul unui SO este de a furniza un mediu in care un utilizator poate executa programul
-scopul principal al unui sistem de operare este in cz de a face sitemul mai usor de utilizat
-un al doilea scop este utilizarea hardware-ului intr-o maniera cat mai eficienta
-SO poate fi privit ca un alocator de resurse
-un SO este un program de control care controleaza exec progr user cu scopul prevenirii
erorilor
- o def mai comuna este aceea ca SO este un program care ruleaza tot timpul pe calculator,
de obicei numit kernell, toate celelalte programe fiind aplicatii

16. Mostenirea.
Dpdvd al relatiei de mostenire clasele implicate se numesc clase de baza si clase derivata.
Mebrii mosteniti sunt membrii propriuzisi ai clasei rezultate
-membrii noi adaugat au drepturile de acces corespunzatoare mediului de definire a lor
-tipuri de derivare: public,
Protected: privat pt incapsulare, public pt mostenire
Private
Avantajele derivarii:
-economia si reutilizarea de cod
-extensibiliatea
-polimorfism
-compromis inchis-deschis

Cautarea euristica
in cautarea oarba numarul de noduri dezvoltate este prea mare.
1)se decide ce nod urmeaza a fi dezvoltat (nu in adancime sau latime)
2) nu se genereaza orb tori succesorii
3)taierea unor noduri din arborii de cautare (prunning)
functia f de evaluare a nodurilor
A* in acelasi context f(n)=g(n)+h(n)
p. 50, 66 volovici

Reprezintă o metodă de căutare care foloseşte informaţie euristică.


Informaţiile euristice reprezintă acele informaţii despre proprităţile domeniului specific

10
17. Variabile locale si globale
Variabile locale:
-variabile declarate in interiorul functiei
-valabile in interiorul functiei
-sunt init cu valori neprecizate
-sunt generate intr-o zona de memorie de tip stiva(LIFO)
Variabile globale:
-var declarate in afara fct
-sunt init cu valori nule
-pot fi folosite in orice cu fct cu exceptia functiilor in care apar variabile locale cu
acelasi nume(in astfel de situatii, au prioritate cele locale)

Memoria virtuala, implementarea la nivel de SO.


Mecanism care permite mărirea spaţiului adresabil memoriei. Se foloseşte mecanismul de
paginare. (memoria este împărţită în pagini)
Tehnica de organizare a mem prin intermediul careia programatorul vede un spati virtual de
adreasare f mare si care, fara ca programatorul sa simta, este mapat in memoria fizic
disponibila
Este implementata in mod obisnuit prin demand paging:
-un sist dem paging este similar cu un sistem de paginare cu swapping
-cand un proces se doreste a fi executat acesta este adus in memorie
-un swaper manipuleaza procese intregi in timp ce un pager manipuleaza paginiile unui
singur proces
Suportul hardware:
-logical memory
-page table: bit valid/invalid
-phisycal memory
Page fault:
1.Se verifica tabela interna a procesului pt a determina dc referinta a fost un acces la mem
valid sau invalid.
2.Dc referinta a fost invalida se termina procesul. Dc a fost valida dar nu am adus inca acea
pagina o sa fie adusa in urmatorii pasi
3.gasim o intrare libera
4.programam o operatie disk pt a citi pagina dorita in noua intrare alocata
5. cand citirea de pe disk e completa se modifica tabela interna tinuta de proces si tabel ade
pagini care indica acum ca pg este in memorie
6. restartam instructiunea care a fost intrerupta de legall address trap
Inainte de page fault se salveaza starea procesului(regsitrii, IC, codul de conditie)(precise si
imprecise)

18. Design pattern-sablon creational


Sima-p. 71
clase -FactoryMethod
obiecte- AbstractFactory
Builder
Singleton

Sisteme de gestiune a memoriei.


MMU

11
19. Diferenta dintre C++ si Java dpvd al mem interne.
Java garbage Colector
C++ alocare si eliberarea se afce explicit de catre programator

Medii de comunicatie, arhitecturi de retea, alocarea mem. Virtuale.

20. Ce se intelege prin uses case?


Pg 25- elemente de inginerie software- sima
determina functiile sist dpdv al utilizatorului
scenariul utilizarii
use case= set de scenarii care apar impreuna cand util foloseste sit pentru a-si atinge un
scop
actori
diagrame use-case

Retele semantice.
Volo P 140
Formate din noduri si arce care conecteaza nodurile. Ambele pot avea etichete. Nodurile
reprezinta ob, concepte sau situatii iar arcele sunt realtii intre acestea. Similaritatea
superficiala a acestor notatii este tot ce au in comun unele sisteme de tip retea semantica.
Sunt la ora actuala o schema de reprezentare f populara. Structura nod-legatura capteaza
ceva esential despre simb si pointeri din cadrul simb si despre asociatii din psihologia mem
-Ce semnifica de fapt un nod
-Cum trebuie reprezentata trecerea timpului
-care sunt regulile pt mostenirea proprietatii in retele

 Retele semantice simple


 Retele semantice sortate
 Retele semantice extinse

21. Fisiere text:declaratie, accesare


File *f
f=fopen(„.....”, [w,r, b])
fclose(denumire);
fread-citeste un bloc(nume fisier, din ce var, cati octeti)
fwrite
fscanf-citeste pe valori
fprintf
Cadre si scenarii
Volovici p. 166

22. Instantierea claselor cu op. new, rolul acestora


-se cunoaste dimensiunea obiectului
-apeleaza constructorul obiectului si astfel acesta este initializat
Tranzactie, ACID-proprietati.
Tranzacţia reprezintă o secventă de acţiuni dintr-un program, care citeşte sau scrie în baza
de date şi care satisface testul ACID :
a. A – atomicitate: o tranzacţie fie se execută în întregime fie nu se execută deloc
b. C – consistenţă: după execuţia unei tranzacţii baza de date rămâne tot într-o stare de
consistenţă
c. I – izolare: este legată de execuţia tranzacţiei concurente
d. D – durabilitate: actualizările tranzacţiei încheiate nu sunt pierute

12
Atomicitate - o tranzactie este executata fie in integime, fie deloc
Consistenta- conservarea semantica a bazei de date.Bd este consistenta daca toate
restrictiile legate de integritate sunt sarisfacute
Izolarea- protajarea rezultatelor in cazul unor tranzactii concurente
Durabilitatea - actualizarile tranzactiilor efectuate cu succes nu sunt niciodata pierdute

23. Siruri de caract cu terminatie nula, declaratie

Concurenta la SGBD

24. Instructiuni repetitive C,C++


1) While (expresie)
instructiune- cu test initial; trebuie sa se modifice valorile expresiei
2) Do...
Instructiuni
While(expresie)-cu test final
3) for(expr1; expr2;expr3) instructiuni expr1: de initializare;
expr2: de testare ;
expr3: de actualizare
---------------------------------------------------------------

Sincronizarea proceselor. P. 5...barbat


Problema sincronizarii se aplica atit la firele de executie cat si la procese, atunci cand se
folosesc resurse partajate sau cand dorim sa secventiem activitati executate in procese (sau
fire) distincte.

25. Recursivitate.
Este procedeul prin care o functie se auto-apeleaza.
- In toate subprogramele recusive exista o conditie de oprire care impiedica autoapelarea la
infinit
- recursivitatea foloseste structura de date numita stiva
- recursivitatea poate fi – directa sau indirecta (backtracking)

proprietatea unui program de a se autuapela


directa
indirecta

Invatarea pe de rost.
Volovici, p. 174
Poate fi privita in 2 modalitati:
-memorarea este o necesitate atat de fundamentala pt un program inteligentincat ea nu poate
fi considerata un proces separat de invatare
-memorarea este un subiect complex , vital pt orice sistem cognitiv si el trebuie studiat si
modelat bine
CZ: proces elementar de invatare, nu suficient de puternic pt a obtine invatrea inteligenta in
sine, dar care este o p. Inerenta si imp in orice sistem
Lucreaza prin luarea pb oe care el de performanta le-a rezolvat si prin memorarea pb si a
solutiei sale

13
Pb de proiectare a astfelor de sist:
-organizarea mem: invatarea pe de rost este utile numai dc ia mai putin timp invatarea pe
de rost decat recalcularea rez
-stabilirea mediului si pb cadrului: un sistem trebuie sa fie capabil sa fie capabil sa
detecteze atunci cand lumea s-a schimbat atat de mult incat informatia nu mai e valida
-memorare sau calcul: trebuie decis la momentul la care inf este disponibila pt prima oara
dc ea trebuie sau nu memorata(analiza cost-benefici sau met uitarii selective)

memorare- se salveaza cunostintele noi astfel incat atunci cand sunt din nou necesare
singura problema va fi gasirea lor si nu un calcul repetat
probleme:
organizarea memoriei
stabilirea mediului si problema carului
memorare sau calcul

26. Rolul protocoalelor de acces la mediu?

Tabela met virtuale . VMT


-Compilatorul construieste o tabela pt fiecare clasa care contine metodele virtuale ale clasei
respective si include in fiecare instanta a clasei un pointer VMTptr spre tabela VMT
corespunzatoare clasei
-pt o metoda virtuala legarea este neconditionat dinamica(compilatorul si editorul de leg fac
corespondenta intre numele met si adresa ac din segmentul de cod prin intemrediul unei
tabele de adrese posibile de salt-alegerea se face in mom rularii in fct de ob)
-dim. Unui ob cu metode virtuale este egala cu dim var membru +dim unui pointer VMTptr
Met virtuale si ierarhiile de clasa
1. redefinirea unei met virtuale tot cu una avand atributul virtual inlocuieste in VMT cea
veche cu cea noua
2. redefinirea unei met virtuale tot cu una neavand atributul virtual la fel
3. neredefinirea unei met virtuale pastreaza in VMt ultima varianta posibila

27. Recursivitate, backtracking, legatura dintre ele


proprietatea unui program de a se autuapela
directa
indirecta: apeleaza o fct care apeleaza din nou fct de inceput
Backtrakingu se poate implementa recursiv

Ce se intelege prin BD distribuite?


Moisil, p 12
Un sistem distributi este orice sistem implicand mai multe siteuri conectate impreuna intr-un
anumit fel de retea de comunicatie in care un utilizator din orice site poate procesa date
memorate in oricare alt site al sistemului. Un sistem distribuit de calc face posibila
prelucrarea distribuita adica exista un set de procese ditstribuite de-a lungul calc din sistem
si acest eprocese comunica pt a realiza un anumit obiectiv
- la inceput bd distribuite permiteau executia tranzactiilor traversandu-se mai
multe baze de date si servere de BD folosindu-se SGBD-uri de acelasi tip
provenite de la aceeasi firma. Ele se numea BD distribuite omogene
- BD distribuite heterogene suporta la nivelul SD lucrul cooperativ al unor SGBD-
uri provenind de la vanzatori diferiti implicand de regula si modele dif de baze de
date

14
Avantaje
-datele sunt memorate aproape de locul unde sunt cel mai des utilizate; eficienta
procesarii
-creste accesibiltatea la date

28. Instructiuni conditionale in C, C++


a) If(expr) instr1
Else instr2
b)if (expr) instr
if(expr1) {if expr2 instr}
else instr 3
c)switch(expresie)
{case const1: instr1; break;
Case const2: instr2; break
.....n
Default: instr n+1
}
------------------
if (expr){}
switch (var)
{ case valoare: {}
.......
default : {}}

Partitionarea HDD.Scop si realizare.

29. Durate de viata si domeniul de vizibilitate.


Variabile globale şi locale
Domeniul de vizibilitate a unui variabile: zona de program în care acesta recunoaşte o
variabilă
Variabile locale:
-variabile declarate in interiorul functiei
-valabile in interiorul functiei
-sunt init cu valori neprecizate
-sunt generate intr-o zona de memorie de tip stiva(LIFO)
Variabile globale:
-var declarate in afara fct
-sunt init cu valori nule
-pot fi folosite in orice cu fct cu exceptia functiilor in care apar variabile locale cu acelasi
nume(in astfel de situatii, au prioritate cele locale)

Nivelul aplicatie.
cel mai inalt nivel OSI, serveste drept fereastra prin care aplicatiile au acces la serviciile de
retea.reprezinta serviciile oferite direct aplicatiilor utilizator

Nivelul 7: Aplicaţie
Nivelul de vârf al modelului de referinţă OSI se numeşte nivel Aplicaţie. În ciuda numelui
său, acest nivel nu include aplicaţii. În schimb, el asigură interfaţa dintre aplicaţiile
respective şi serviciile reţelei.
Acest nivel poate fi considerat motivul iniţierii sesiunii de comunicare. De exemplu, un
client de e-mail ar putea genera o cerere de preluare a mesajelor noi de pe serverul de e-
15
mail. Această aplicaţie client generează automat o cerere către protocolul (protocoalele) de
nivel 7 corespunzător (corespunzătoare) şi lansează o sesiune de comunicaţii pentru a obţine
fişierele necesare.

30. Operatori C, C++.


Clasificare:
-unari
-binari
-se pot defini
Operatori ARITMETICI: +,-, *, ?, %.....
Operatori relationali: <, >,<=, >=
Operatori de egalitate: ==, !=
Operatori logici: &&, ||
Operatori logici la nivel de bit: &-si, |-sau, ^-XOR, ~NOT
Op. Incrementare, decrementare: ++, --
Op. Atribuire: valoare=exepresie
Op. Shiftare: <<, >> st, dr
Op. Conditional(min=a<b?a:b), virgula,
sizeof-dim in octeti a unei marimii,
de conversie- (tip) expresie
int a, b, c; float v; v= (float)a/b
[]-pt vectori
 . pt structuri
*, & pt pointeri

Notiunea de preemtivitate la planificarea UC.


Alocarea nonpreemptiva. Este o strategie bazata pe “bunul simt” al programelor de a ceda
voluntar UC cand apreciaza ca se pot dispensa temporar de ea. O astfel de strategie se poate
aplica avand o marita grija la robustete.
Alocarea preemtiva. Este strategia dominanta in cazul SO pentru sistemele de calcul
individual SCI. SO isi asigura in intregime responsabilitatea alocarii resurselor comune. SO
distribuie timpul in UC. Rezulta un dublu salt calitativ privind:
- Robustetea. SO detine controlul total. Trecerea de la un fir la altul se executa
automat, fara participarea firelor, deci robust.
- Eficienta. Se evita riscul alocarii UC pentru o aplicatie care nu o poate folosi decat
pentru a o ceda din nou. Pe langa timp UC functional se mai economiseste si timp
tehnologic.

31. Legatura dintre mostenire si abstractizare


Uneori se pune pb sa proiectam clase cu un caracter de generalitate
-in clasa de baza se prinde comportamentul comun si prin derivare si polimorfism se
particularizeaza ciomportamentul pt clasele derivate specializate
-pt a evita instantierea clasei de baza incomplet definita se introduce notiunea de metoda
pura pt metodele virtuale
-o metoda virtuala se numeste pura dc la declarare corpul ei se face egal cu 0
- o metoda nu se implementeaz ain cls respectiva, ea fiind inlocuita in clasele derivate
-clasa abstracta: o clasa cu cel putin o metoda pura
-clasele abstracte nu pot fi instantiate
-rolul ei este sa fie mostenita intr-o cls derivata care sa inlocuiasca toate metodele pure

16
De ce nu ajunge optimizarea basic-blocurilor?
Optimizare locala=optimizare la nivel de basic blockuri
Paralelismul la nivelul basic blockurilor este scazut, 2-3 instructiuni, deoarece majoritatea
programelor HLL sunt scrise in limbaje imperative si pt masini secventiale cu un nr limitat
de registre gradul de dependenta dintre instr adiacente este ridicat.
Asadar pt marirea nivelului de paraleslism este necesara suprapunerea executiei unor instr
situate in basic blockuri diferite, ceea ce conduce la ideea optimizarii globale

32. Stiva , arbori binari de cautare, tabela de dispersie.Care ofera operatii mai eficiente.
Stiva LIFO - cautarea ia mult timp stiva nu este ordonata
arbori binari - log2(N+1), cautare ,
tabela hash - coliziuni, cautare rapida, adaugarea la fel

Rolul SO si rolul hardware in tratarea unei exceptii Page Fault.


Exceptia Page Fault apare in momentul in care se incearca translatarea unei adrese virtuale
intr-o adresa reala, iar adresa reala nu se gaseste in MP
Fiecarei pagini virtuale ii este asignata o pagina reala. Anumite pagini virtuale raman
neasignate sau neutilizate. Atunci cand o pagina virtuala este accesta de catre procesor:
-mai intai este activat hardware-ul care implementeaza tabela de translatare aferenta
paginilor din MP; dc aceasta se gaseste rezidenta intr-o pagina reala, va fi referita
-in cazul in care pagina nu se gaseste, va fi activata o rutina soft(de regula printr-o
rutina de exceptie page fault) care va cauta domiciliul paginii virtuale. Se transfera pagina
reala din MS in pagina reala corespunzatoare(libera) din MP
- dc MP este complet ocupata, se evacueaza intai o pagina din MP(se scrie la locul ei
in MS)

Sistemul de operare reprezintă o interfaţă între utilizator şi hardware.


Atunci când sunt referite datele dintr-o pagină şi pagina nu se află în memorie se
activează mecanismul de Page Fault

33. Operatori in limbajele de programare- Caracteristici.


Clasificare:
-unari
-binari
-se pot defini
Operatori ARITMETICI: +,-, *, ?, %.....
Operatori relationali: <, >,<=, >=
Operatori de egalitate: ==, !=
Operatori logici: &&, ||
Operatori logici la nivel de bit: &-si, |-sau, ^-XOR, ~NOT
Op. Incrementare, decrementare: ++, --
Op. Atribuire: valoare=exepresie
Op. Shiftare: <<, >> st, dr
Op. Conditional(min=a<b?a:b), virgula,
sizeof-dim in octeti a unei marimii,
de conversie- (tip) expresie
int a, b, c; float v; v= (float)a/b
[]-pt vectori
 . pt structuri

17
*, & pt pointeri

Arbori de joc. P.34

Trasaturi fundamentale:
-exista 2 jucatori care muta pe rand
--la fiecare mutare, regulile definesc atat ce mutari sunt legale , cat si efectul pe care l-ar
avea fiecare mutare posibila
-fiecare jucator are informatia completa despre pozitia adversarului, inclusiv despre alegerile
pe care acesta le-ar putea face
-jocul incepe dintr-o stare specificata, adesea o anumita configuratie a pieselor pe tabla
-se sfarseste prin castigul unui jucator si pierderea celuilalt, sau prin egalitate
Un arbore de joc complet este o reprezentare a tuturor partidelor posibile ale unui astfel de
joc. Modul radacina este starea initiala, in care este randul primului jucator la mutare.
Succesorii sai sunt starile in care se poate ajunge din el printr-o singura mutare, succesorii
acestor stari fiind starile rezultate din replicile posibile ale celuilalt jucator...
Starile finale sunt acelea care duc la o victorie, infrangere sau remiza
-fiecare cale completa de la nodul radacina la un nod terminal da o partida completa
-un arbore se reprezinta din pdvd al unui singur jucator:
-nodurile posibile ale acestuia sunt reprezentate prin noduri OR
-mutarile pe care le poate primi in replica sunt noduri AND pt ca reprezinta
mutari la care jucatorul trebuie sa le faca fata
Fomalismul min-max
-tehnica de cautare in arborii de joc
-datorita modului in care sunt evaluate modurile jucatorul A este adesea numit max iar
jucatorul B min

34. Overwriting

Nivelul retea. Protocol.


Nivelul Reţea este responsabil de stabilirea rutei care va fi utilizată între calculatorul iniţial
şi cel de destinaţie. Acest nivel nu are inclus nici un mecanism de detecţie/corecţie a erorilor
de transmisie şi este obligat să se bazeze pe serviciul fiabil de transmisie cap-la-cap al
nivelului Legătură de date.
Nivelul Reţea este utilizat pentru stabilirea comunicaţiilor cu sistemele de calculatoare care
se găsesc dincolo de segmentul LAN local. El poate face acest lucru pentru că are propria
arhitectură de adresare pentru rutare, care este separată şi diferită de adresarea
calculatoarelor la nivelul 2.
Printre protocoalele de rutare numim:
 IP
 IPX
 AppleTalk
Utilizarea acestui nivel este opţională. Acesta este necesar numai dacă sistemele de
calculatoare se află în segmente ale reţelei separate printr-un router.

35. [1] De ce mostenirea multipla creeaza un graf?


O clasa mosteneste mai multe clase de baza. O clasa nu poate mosteni aceeasi clasa de mai
multe ori.

18
Pentru a realiza o mostenire multipla este suficient sa se specifice dupa numele clasei
derivate o lista de clase de baza, separate prin virgula. Apelul constructorilor claselor de
baza se face in ordinea enumerarii claselor de baza

[2] Fire de executie in comparatie cu procese.


Trebuie stabilita si exprimata interactiunea activitatilor paralele;
- Componenta de baza a interactiunii este firul care este pur sevential;
- Desfasurarea unui fir poate fi afectata de alte fire numai in anumite momente;
- Punctele de innadire a firelor sunt foarte importante deoarece acolo apare
interactiunea dintre ele: pentru unele fire are caracter pasiv (asteapta ca altul sa
realizeze ceva), iar pentru altele – caracter activ (intreprinde ceea ce se asteapta de la
el);
- Dupa ce se stabileste ce trebuie sa se execute in paralel (pentru a raspunde cerintelor
aplicatiei), se stabileste si ce se poate sa se execute in paralel (pentru a reduce timpul
de raspuns);
- Trebuie hotarate modalitatile de comunicare si sincronizare, distingand cu grija intre
ce este sigur, probabil, aleator si imprevizibil.
Crearea proceselor
La lansarea in executie, uzuala, a unui program, SO creaza numai doua obiecte pentru
entitati de cod: procesul ca atare si firul sau principal; tot restul se creaza dinamic. Spre
deosebire de functiile care creaza alte obiecte, aici rezultatul este boolean, indicand
(in)succesul operatiei (nu se furnizeaza manerul obiectului nou creat).
Motivul: procesele au viata lor si nu sunt proprietatea nimanui; ele exista pruin ele insele,
nu numai prin nevoile altora (nu se distrug decat cand s-au inchis toate manerele din alte
procese si cand s-au terminat intre ele)

36. Ce relatie exista intre structurile:coada cu prioritati, lista sortata.


Coada - FIFO
elementele sunt ordonate dupa valoarea unei chei
O coada poate fi implementata cu ajutorul unei liste sortate.

Etape de proiectare a BD.


Proiect eu-p. 16
proiectare conceptuala diag E-R
proiectarea logica
tabele ,normalizare
proiectarea fizica

37. [1] Drepturi de acces intr-o clasa.


Clasa: entitate asemanatoare cu o structura, cu diferenta ca membrii unei structuri sunt implicit
publici, iar membrii unei clase sunt implicit privati
 Public: membrii cu acest atribut pot fi accesati atat din interiorul cat si din exteriorul clasei
 Private: membrii cu acest atribut pot fi accesati numai din interiorul clasei
Pt mostenire si incapsulare
 Protected: se comporta ca si privat pentru incapsulare dar ca si public pt mostenire

[2]Caracteristicile modelului relational pt BD


Modelul relaţional a fost introdus de E.F. Codd în 1970 şi a constituit un moment de
răscruce în managementul datelor. Abordarea propusă de Codd era complet diferită de cele
anterioare. În modelul relaţional structura de date era reprezentată de o tabelă, de tip
spreadsheet, constituită din linii şi coloane. Fiecare linie identifică un articol şi fiecare
coloană un câmp din articol.

19
În limbajul relaţional tabela este realţia, linia este tuplul iar coloana atributul. Astfel
modelul relaţional este perfect fundamentat matematic de algebra relaţiilor. O tabelă este
unic identificată de o cheie primară, respectiv o coloană (câmp, atribut) sau o combinaţie
de coloane cu proprietatea că nu există două linii din tabelă care să aibe aceeaşi valoare
pentru cheia primară. Un domeniu este o mulţime de valori posibile pentru atribute
specifice relaţiei.
Cheia primară este un caz special de cheie candidată (candidate key). O cheie candidată
pentru o relaţie R este o submulţime K de atribute ale lui R cu proprietatea de unicitate şi de
ireductibilitate. Proprietatea de unicitate spune că nu există două tuple din R care să aibe
aceaşi valoare pentru K, iar proprietatea deireductibilitate constă în faptul că nici un subset
propriu al lui K nu are proprietatea de unicitate.
Cheia străină (foreign key) este un atribut sau o combinatie de atribute ale unei relatii R2
ale caror valori trebuie sa se potriveasca cu cele ale unei chei primare dintr-o alta relatie R1.
relatiile R1 si R2 nu sunt neaparat distincte. Cheia straina si cheia primara trebuie sa fie
definite neaparat pe acelasi domeniu.

38. Ce sunt blocurile try-catch si ce rol au. Barbat….?


Sunt niste instructiuni care se folosesc pentru captarea si tratarea exceptiilor.
In blocul try se cuprinde secventa de instructiuni in care se considera ca pot sa apara
exceptii. Apoi, in blocurile fiecarei clauze catch, se pun secventele de instructiuni prin care
se trateaza unul dintre tipurile de exceptii care pot interveni

Principiul memoriei virtuale, rolul resurelor hard,soft, TLB.


Mihu 71…..
Memoria ierarhizata revendica o metoda de gestiune care sa asigure incarcarea in MP a
informatiilor ce urmeaza a fi accesate de catre processor. Aceste tehnici de gestiune, care
actioneaza in principal la nivelul interfetei memorie principala-memorie secundara, sunt
referite cu termenul managementul memoriei.
-cea mai simpla strategie: transferul de programe sau secvente din memoria secundara(MS)
in memoria principala(MP)
-solutie pt reducerea nr de transferuri: dotarea sistemului cu o MP de capacitate f mare
MMU(Memmory Management Unit):
-gestiunea transferurilor de informatie din cadrul memoriei ierarhizate MP-MS
-Asigurarea unui mecanism eficient de protectii la nivelul memoriei

Memoria virtuala: metoda standard de gestionare a memoriei ierarhizate


-face in asa fel incat intreaga memorie(MP+MS) sa para un sigur spatiu de memorie.
Creeaza impresia unui spatiu de memorie f extins(virtual) sub care se ascunde spatiul real
-spatiile real si virtual sunt divizate in blocuri de cuvinte(dimensiune 64 bytes- 4 kb)
denumite pagini
-ambele tipuri de adrese sunt impartite in 2 pagini: page(nr paginii) si line(cuvantul in
cadrul paginii)
-procesorul genereaza adrese virtuale(fiecare adresa virtuala are o adresa reala
corespondenta in mem fizica)
-pentru inregistrarea corespondentelor se folosesc tabele stocate in MP
-printr-o referinta la tabela de pagini, fiecare adresa vituala genereata de catre proc va fi
translatata in una reala selecteaza o locatie dintr-o pagina reala:
-dc e in MP se va incarca de acolo
- dc nuexceptie page fault(incarca in MP pagina de pe disc)
TLB:MP capacitate maretabela de translatare are f multe locatiiimposibila
implementarea ei intr-un hardware f. Rapid

20
-actioneaza ca un cahe de date retinand adresele care vor fi cel mai probabil referite(celor
mai uitilizate pagini trebuie sa fie translatate in hardware)
TLB are 2 functii:
-translatarea ultrarapida a adreselor virtuale localizate in TLB
-un algoritm de inlocuire a liniilor TLB atunci cand o noua adresa virtuala trebuie
actualizata in TLB
Translatarea adreselor: mapare directa
Complet asociativa
In seturi asociative
Utilizatorului i se creeaza impresia unui unic spatiu de memorie inttinsa. Numai paginile
celemai folosite sunt translatate in hardware
TLB= tabela de viteza mare(cache) care retine intrarile in paginile cele mai utilizate
proc emite adrese virtuale tabela de translatare o transforma in adresa reala, daca PR nu
este in MP atunci ea trebuie adusa (exceptie page fault). Tabela de translatare a dreselor de
pe disk si tabela de translatare a adreselor din memorie.
TLB necesar deoarece spatiul adrselor din MP este prea mare.

21

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