Podcast Beta
Questions and Answers
Care sunt cele 3 categorii de operatori în C/C++?
Ce este un pointer?
Un pointer este o variabilă care conține adresa altei variabile.
Un pointer poate primi valoarea null.
True
Operatorul * în C/C++ este utilizat pentru dereferențiere și întoarce _______ înregistrată la adresa respectivă.
Signup and view all the answers
Potrivirea tipurilor de pointeri cu descrierile lor:
Signup and view all the answers
Care este rolul nivelului de rețea în stiva OSI?
Signup and view all the answers
IP (Internet Protocol) este utilizat pentru interconectarea rețelelor de Internet.
Signup and view all the answers
Ce rol are nivelul aplicație din stiva OSI?
Signup and view all the answers
Algoritmul produce o funcție care stabilește corespondența între datele de intrare și rezultate scop. Acest proces se numește învățare ______.
Signup and view all the answers
Potrivirea subdomeniilor ale inteligenței artificiale cu descrierile lor:
Signup and view all the answers
Ce reprezintă algoritmul LRU în contextul cache-ului și cum se implementează?
Signup and view all the answers
Care sunt caracteristicile esențiale ale arhitecturilor RISC și CISC?
Signup and view all the answers
Ce este necesar la activarea excepției page fault pentru algoritmul FIFO: FIFO va evacua pagina din MP care se află de cea mai ______ durată.
Signup and view all the answers
Procesoarele superscalare sunt mai ușor de scalat decât cele cu paralelism exploatat prin optimizări de program.
Signup and view all the answers
Corelați arhitecturile cu caracteristicile corespunzătoare:
Signup and view all the answers
Ce reprezintă BPB în contextul predicției de salturi?
Signup and view all the answers
Care sunt principalele tipuri de predictoare de valori utilizate?
Signup and view all the answers
Un fir de execuție este similar cu un proces în sensul că poate rula independent.
Signup and view all the answers
Partiționarea unui HDD constă în împărțirea fizică a acestuia în mai multe ____________.
Signup and view all the answers
Potrivirea următoarelor tipuri de predictoare cu descrierile lor:
Signup and view all the answers
Ce este preemptivitatea în planificarea unității centrale?
Signup and view all the answers
Ce reprezintă memoria virtuală în cadrul unui sistem de operare?
Signup and view all the answers
Care sunt proprietățile unei tranzacții?
Signup and view all the answers
Study Notes
Limbaje de Programare
- Operatorii în C/C++:
- Unari: un operand, de ex. +1
- Binari: 2 operanzi, de ex. 1+1
- Ternari: operatorul de in-line if, de ex. A > B ? True : False
- Categorii de operatori:
- Aritmetici: +, -, *, /, %
- Relaționali: , =
- De egalitate: ==, !=
- Logici: && (și), || (sau)
- La nivel de bit: &, ^ (XOR), |
- De incrementare sau decrementare: ++, --
- De atribuire: =, *=, +=, etc.
- Tipul pointer:
- Declarare: un pointer se declară folosind tip *numePointer, astfel pointer-ul va indica spre o variabilă de tipul specificat
- Proprietăți: se pot face atribuiri, pointerul poate primi valoarea null, se pot face comparații între pointeri de același tip, etc.
Programare Orientată pe Obiect
- Moștenirea multiplă:
- Crează un graf orientat aciclic
- Permite tratamente uniforme a obiectelor din clase diferite
- Clase și obiecte:
- Clasa: entitate asemănătoare cu o structură, cu diferența că membrii unei structuri sunt implicit publici, iar membrii unei clase sunt implicit privați
- Obiect: instanță a unei clase
- Drepturi de acces:
- Public: membrii cu acest atribut pot fi accesați atât din interiorul clasei cât și din afara acesteia
- Privat: membrii cu acest atribut pot fi accesați doar din interiorul clasei
- Protected: comportament ca și privat pentru incapsulare, dar ca și public pentru moștenire
- Moștenirea:
- Permite refolosirea codului unei clase de către alta nouă
- Clasa de bază și cea derivată
- Polimorfism:
- Tratarea uniformă a obiectelor din clase diferite, dar legate printr-o clasă de bază comună
- Clasele derivate pot fi tratate ca și clasele de bază
- Constructori și destructori:
- Constructor: metoda cu numele clasei și care nu are tip returnat
- Destructor: metoda cu numele clasei precedat de caracterul tilda, fără tip returnat
Durata de Viață și Vizibilitatea Variabilelor
- Variabile globale:
- Durata de viață: pe toată durata execuției programului
- Vizibilitate: în toate metodele, însă doar în modulul curent
- Variabile locale:
- Durata de viață: de la locul declarării și până la ieșirea din corpul funcției sau a structurii delimitată cu acolade
- Vizibilitate: în interiorul funcției sau al structurii în care a fost declarată
- Variabile statice:
- Durata de viață: valorile lor rămân și la ieșirea din funcție, iar la apelul următor aceasta poate fi folosită în continuare
- Vizibilitate: doar în interiorul funcției
- Variabile externe:
- Durata de viață: pe toată durata execuției programului
- Vizibilitate: în toate modulele unde este declarată
Tratarea Excepțiilor
- Mecanismul try-catch:
- În blocul try adăugăm secvența de cod care ar putea arunca o excepție
- În blocul catch prindem excepția și o gestionăm, fie prin trimiterea unui mesaj de eroare sau prin alte metode care permit continuarea rulării programului
- Se poate adăuga și un bloc finally, care se execută indiferent dacă avem o excepție sau nu
Paradigme de Programare
- RISC:
- Set redus de instrucțiuni care include instrucțiuni simple
- Memorii cache on chip, număr mare de registre, un compilator care maximizează utilizarea registrelor și încearcă optimizarea cu structura pipeline
- CISC:
- Set amplu de instrucțiuni, multe moduri de adresare, formate de instrucțiuni de lungime variabilă
- Nu necesită compilator complicat, lucrează mai eficient cu memoria folosind mai puține instrucțiuni ca la RISC
- Arhitectura lui Tomasulo:
- Superscalar, având mai multe unități de execuție, însă algoritmul de control al acestei structuri stabilește momentul în care instrucțiunea poate fi lansată în execuție și respectiv unitatea de execuție care va procesa instrucțiunea
- BTB (Branch Prediction):
- Metoda de predicție numită “branch target buffer” (BTB)
- Un BTB este constituit dintr-un BPB (branch prediction buffer) care conține lângă biții de predicție noul PC de după instrucțiunea de salt
- Arhitecturi superscalare vs paralele:
- Procesoare paralele: existența mai multor unități de execuție paralele care pot avea latențe diferite
- Procesoare superscalare: procesoare paralele pentru care decodificarea instrucțiunilor, detecția dependențelor de date dintre ele, rutarea și lansarea lor în execuție din bufferul de prefetch se fac prin hardware### Dificultatea detectării reutilizabilității funcțiilor HLL prin schemele de reutilizare dinamică a instrucțiunilor
- Funcțiile HLL (High Level Language) sunt dificil de detectat datorită apelurilor indirecte de funcții și utilizării switch-case-uri.
- Reutilizarea dinamică a instrucțiunilor permite economisirea timpului și reducerea penalităților datorate predicției eronate a adreselor destinate.
Avantaje ale tehnicilor de predicție dinamică a valorilor
- Reducerea hazardurilor RAW;
- Exploatarea gradului de localitate pentru instrucțiunile ALU;
- Predicția valorii reducând timpul de acces la memorie și necesarul de lărgime de bandă al memoriei.
Tipuri de predictoare
- Computaționale: prezic pe baza valorilor anterioare;
- Contextuale: prezic pe baza unui pattern generat repetitiv în secvența de valori;
- Hibride: folosesc 2 sau mai multe predictoare diferite.
Sistem de Operare (SO)
- Partiționarea HDD: scopul și metoda de realizare;
- Partiția = zona contiguă pe disc delimitată de două adrese;
- Scopul partiționării: organizarea discului, folosirea discurilor mai mari decât pot fi manipulate de structura logică a SO.
Noțiunea de preemptivitate în planificarea unității centrale
- Preemptivitate = trăsătura SO de a putea interveni și de a muta cu forța un proces în defavoarea celorlalte.
Memoria Virtuală
- Memoria Virtuală (MV) = Memoria Reală (MR) suplimentată de cea externă prin tehnica de swapping;
- Avantaje: simularea unei memorii mai mari decât cea fizică existentă, îmbunătățirea folosirii resurselor sistemului de calcul.
Rolul SO și hardware în tratarea unei excepții page fault
- Page fault = întreruperea determinată de încercarea de accesare a unei pagini care nu este în memorie și va trebui adusă pe disc;
- Rutina de tratare a întreruperii de pagină execută: examinează adresa solicitată, caută un cadru liber, solicită o operație I/O de încărcare a paginii, modifică tabela de pagini.
Sistem de Gestiune a Bazelor de Date (SGBD)
- Caracteristicile modelului relațional pentru baze de date:
- DB reprezintă o modalitate de stocare și organizare a datelor pe un suport extern;
- Datele sunt memorate în tabele;
- Concurența DB: când mai mulți utilizatori vor să acceseze aceleași date simultan;
- SGBD asigură concurența la modul următor: utilizatorul care efectuează primul modificarea datelor le blochează.
Proiectarea DB
- Proiectare = transformarea modelelor informaționale în modele dependente de sisteme de gestiune a bazelor de date;
- Etapele de proiectare a unei DB:
- Proiectarea conceptuală;
- Proiectarea logică;
- Proiectarea fizică.
Tranzacție și proprietăți ACID
- Tranzacție = secvență de acțiuni dintr-un program care citește și/ sau scrie date în baza de date;
- ACID: Atomicitate, Consistență, Izolare, Durabilitate.
Baze de Date Distribuite și Baze de Date Orientate pe Obiect
- Baze de Date Distribuite: DB logic integrate dar fizic distribuite pe mai multe sisteme de calcul;
- Baze de Date Orientate pe Obiect: permit crearea de obiecte complexe din componente simple, fiecare având propriile atribute și propriul comportament.
Nivelele ISO-OSI (Stiva OSI) ale rețelei de calculatoare
- Nivelul fizic: transmite datele de la un calculator la altul prin intermediul unui mediu de comunicare;
- Nivelul legătură de date: corectează erorile de transmitere apărute la nivelul 1;
- Nivelul rețea: asigură dirijarea unităților de date între nodul sursă și nodul destinație;
- Nivelul transport: face conexiunea între 2 host-uri detectând și corectând erorile pe care nivelul 3 nu le tratează;
- Nivelul sesiune: permite utilizatorilor de pe mașini diferite să stabilească între ei sesiune de comunicare;
- Nivelul prezentare: face operații de transformare a datelor în formate înțelese de entitățile care intervin într-o conexiune;
- Nivelul aplicație: rol de fereastră de comunicare între utilizatori.### Învățare Supervizată
- Învățare supervizată produce o funcție care stabilește corespondența între datele de intrare și rezultate scop
- Un exemplu este o problemă de clasificare, unde sistemul de învățare etichetează o serie de valori folosind mai multe clase
Învățare Nesupervizată
- Învățare nesupervizată se realizează pe un set de exemplu format numai din intrări de sistem, fără informații despre categoriile acestor exemple
- Sistemul trebuie să fie capabil să recunoască modele pentru a eticheta noile intrări
Învățare Parțial Supervizată
- Învățare parțial supervizată combină cele două tipuri menționate mai sus pentru a clasifica datele în mod corespunzător
- Aceasta ia în considerare date etichetate și neetichetate
Învățare pe de Rost
- Învățare pe de rost = memorare, salvarea cunoștințelor noi astfel încât atunci când sunt din nou necesare singura problemă va fi găsirea lor și nu un calcul repetat
- Poate fi văzută ca un proces elementar de învățare, nu suficient de puternic pentru a obține o învățare inteligentă în sine, dar reprezintă o parte importantă în orice sistem de învățare
Cadre și Scenarii
- Cadru = șablon general, în care datele noi sunt interpretate în termenii sau conceptele experienței dobândite anterior
- Scenariu = modalitate de reprezentare a cunoașterii ce descrie o secvență stereotipă de evenimente într-un anumit context
Arbori de Joc
- Arbori de joc se aplică doar în cazul jocurilor care au 2 jucători care mută pe rând, cunoscând la fiecare mutare pozițiile și alegerile posibile ale adversarului
- Jocul începe cu o stare specifică și se termină cu victoria unui jucător, sau egalitate
- Există reguli care definesc dacă o mutare e legală și care sunt efectele ei
Aplicații ale Inteligenței Artificiale
- Rezolvă probleme dificile în chimie, matematică, geologie, inginerie, biologie, medicina la nivelul de performanță al experților umani
- Manipulează roboții pentru a realiza sarcini motoare repetitive
- Recunoașterea automată a formelor și sunetelor
- Algoritmi genetici
- Teoria jocurilor
- Rețele neuronale
- Sistemele expert
- Agenți inteligenți
Subdomenii ale Inteligenței Artificiale
- Rezolvarea problemelor, de exemplu în domeniul jocurilor (dame, șah)
- Înțelegerea limbajului, de exemplu programe de traducere care acumulează cunoștințe prin citirea de texte scrise și prin construirea unei DB interne
- Programare automată, folosite la sistemele care pot scrie programe pentru a descrie scopul lor
- Robotică: mișcarea brațului unui robot, recunoașterea obiectelor și a umbrelor în scene vizuale
Reprezentarea Cunoștințelor
- Reprezentare = mulțime de convenții pentru a descrie obiectele, în IA reprezintă o combinație de structuri de date pentru memorarea informației în programe și de proceduri de utilizare a acestor structuri pentru realizarea de interfețe
- Reprezentările sunt alese de programator în funcție de date
- Reprezentările sunt de două tipuri: declarative și procedurale
Algoritmi de Căutare
- De obicei, spațiul stărilor este reprezentat printr-un graf orientat în care fiecare nod este o stare și fiecare arc reprezintă aplicarea unui operator de transformare a unei stări într-o stare succesor
- O soluție este o cale de la o stare start la o stare scop
- Căutarea oarbă în spațiul stărilor: dacă ordinea în care se iau în considerare stările e arbitrară, nefolosind informația specifică domeniului pentru a presupune (sau calcula) unde este mai probabil să se găsească soluția
- Căutarea euristică în spațiul stărilor: dacă ordinea în care se iau în considerare se face ținând cont de o informație suplimentară despre proprietățile domeniului specific (informație euristică)
Căutarea în Arbori de Joc
- Căutarea în arbori de joc: este generat un arbore de joc, fiecare nod reprezintă o poziție în joc
- Cea mai bună mutare este cea care duce la un nod cu valoare maximă
Rețele Semantice
- Rețele semantice: sunt folosite ca o formă de reprezentare a cunoștințelor
- Este reprezentată printr-un graf care are noduri și arce
- Nodurile reprezintă obiecte, concepte sau situații ale domeniilor, iar arcele sunt relații între acestea
Regula Min-Max și Alfa
- Procedura min-max e o tehnică de căutare în arbori de joc
- Numele acestei proceduri vine din felul în care sunt evaluate nodurile
- Procedura alfa-beta încearcă să optimizeze numărul de noduri care sunt evaluate prin folosirea procedurii min-max
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Întrebări pentru licență 2024 despre calculatoare, limbaje de programare și operatorii în C/C++. Acest quiz acoperă tipurile de operatori și exemplele acestora.