This is an old revision of the document!


Anunțuri

24 decembrie 2019: Examenul final (practic) de IOCLA în sesiunea iarnă 2019-2020 vor avea loc în săli de laborator din facultate astfel:

  • 2CC: sâmbătă, 18 ianuarie 2020, 09:00-11:30 și 11:30-14:00
  • 2CB: joi, 30 ianuarie 2020, 09:00-11:30 și 11:30-14:00
  • 2CA: joi, 6 februarie 2020, 09:00-11:30 și 11:30-14:00
  • 2CD: vineri, 7 februarie 2020, 14:00-17:30 și 17:30-20:00

Informații complete despre desfășurarea examenelor sunt în pagina de reguli.

10-15 decembrie 2019: Laboratorul 11 se va tine dupa vacanta. Luni, 9 decembrie 2019 este ultima zi de laboratoare de IOCLA din 2019, pentru a incheia saptamana a 10-a.

2 decembrie 2019: Lucrarea de curs 3 va avea loc în perioada 3-5 decembrie 2019, astfel:

* marți, 3 decembrie 2019, 08:05-08:25, sala AN030, seria CD

* marți, 3 decembrie 2019, 12:05-12:25, sala A02 Leu, seria CA

* miercuri, 4 decembrie 2019, 14:05-14:25, sala EC004, seria CB

* joi, 5 decembrie 2019, 16:05-16:25, sala AN030, seria CC

Lucrarea 3 va conține 6 întrebări din cursurile 9 (partea a doua), 10, 11 și 12. Detalii despre desfășurarea lucrării găsiți în secțiunea aferentă din pagina de reguli[1].

[1] https://ocw.cs.pub.ro/courses/iocla/reguli-notare?fbclid=IwAR2GuVxf2AjJWccvn8khcSQVF_PQzPUAlXX-3UuAVbULWJkrDvniPsXclHQ#lucrari_de_curs

14 noiembrie 2019: Găsiți în catalog notele pentru lucrarea de curs 2. Dacă vi se pare că nota nu evaluează corect lucrarea voastră, puteți solicita o recorectare pe acest thread până cel târziu vineri, 17 noiembrie 2019, ora 23:55.

Atenție! Înainte să solicitați o recorectare, asigurați-vă că ați dat răspunsuri corecte, complete, concise și argumentate. Au fost multe situații în care răspunsurile erau corecte, dar neargumentate. Aceste întrebări au primit punctajul 0.

1 noiembrie 2019: Lucrarea de curs 2 va avea loc în perioada 5-7 noiembrie 2019, astfel:

  • marți, 5 noiembrie 2019, 08:05-08:25, sala AN030, seria CD
  • marți, 5 noiembrie 2019, 12:05-12:25, sala A02 Leu, seria CA
  • miercuri, 6 noiembrie 2019, 14:05-14:25, sala EC004, seria CB
  • joi, 7 noiembrie 2019, 16:05-16:25, sala AN030, seria CC

Lucrarea 2 va conține 6 întrebări din cursurile 6, 7, 8 și 9. Detalii despre desfășurarea lucrării găsiți în secțiunea aferentă din pagina de reguli[1].

[1] https://ocw.cs.pub.ro/courses/iocla/reguli-notare#lucrari_de_curs

23 octombrie 2019: Găsiți în catalog notele pentru lucrarea de curs 1. Dacă vi se pare că nota nu evaluează corect lucrarea voastră, puteți solicita o recorectare pe acest thread până cel târziu vineri, 25 octombrie 2019, ora 23:55.

Înainte să solicitați o recorectare, asigurați-vă că v-ați uitat pe lista de greșeli des întâlnite la lucrarea 1 de curs de mai jos: În urma corectării lucrării de curs 1 de IOCLA, am remarcat o serie de răspunsuri incorecte/incomplete care s-au repetat frecvent. Mai jos am făcut o grupare a acestora.

  1. Noțiunea de little endian se aplică la tipuri de date, nu la vectori.
  • Dacă avem un șir de caractere “IOCLA”, la adresa A se va afla “I”, la adresa A+1 se va afla “O” și așa mai departe.
  • Dacă avem numărul 0x12345678, atunci la adresa A se va afla 0x78, la adresa A+1 se va afla 0x56, la adresa A+2 se va afla 0x34, la adresa A+3 se va afla 0x12.
  • Dacă avem de reprezentat vectorul de short-uri {0x1234, 0x5678}, atunci se vor reprezenta în little endian fiecare număr în parte, începând cu primul, adică la adresa A se va afla 0x34, la adresa A+1 se va afla 0x12, la adresa A+2 se va afla 0x78, la adresa A+3 se va alfa 0x56. Atenție! Dacă vectorul era de int-uri, atunci la adresa A+2 se afla 0x00, la A+3 tot 0x00 și abia după începea reprezentarea celui de-al doilea element din vector.
  • De asemenea, noțiunea de little endian se referă la bytes, nu la biți. Little endian nu înseamnă scrierea numărului în binar de la coadă la cap.
  1. Zona de cod conține, într-adevăr, instrucțiuni (cod), iar zona de date conține date, însă acest lucru este adevărat în orice moment, fie că inspectăm programul static (fără să-l rulăm), fie că îl rulăm (adică avem un proces). Diferența dintre zona de date și zona de cod în momentul încărcării programului în imaginea unui proces constă în faptul că zona de cod are doar permisiuni RX, iar zona de date are permisiunile RW. Deși instrucțiunile codificate sunt mai greu de înțeles decât datele codificate, nu este corect să spunem că zona de date este reprezentată în format human readable deoarece în memorie găsim doar bytes. În esență, un snippet din zona de date nu e cu nimic diferit față de unul din zona de cod.
  2. Noțiunea de pipeline se referă la faptul că dacă avem mai 2 sau mai multe instrucțiuni consecutive, ele se vor executa “în paralel” în așa fel încât rezultatul celor N instrucțiuni se va obține mai repede decât dacă instrucțiunea i+1 ar fi așteptat să se termine instrucțiunea i integral. Pipeline-ul e o optimizare la nivel de ansamblu, nu la nivel de instrucțiune. Aceeași instrucțiune se va executa în același număr de cicli de ceas și dacă folosim pipeline, și dacă nu.
  3. Registrul EFLAGS este un registru special pe arhitectura X86 care conține mai multe flaguri utile derulării programului precum SF (Sign Flag), ZF (Zero flag). O greșeală frecvent întâlnită în lucrările de curs este un răspuns care atestă faptul că flagul ZF/SF se activează atunci când numărul este 0(zero)/cu semn. Acest răspuns este incomplet. Termenul “numărul” se poate referi la orice, fie că este vorba de un număr arbitrar din memorie, fie un număr care se află într-un registru, fie că este un rezultat al unei operații. Răspunsul corect și complet la acest gen de întrebare este că un flag se activează doar în urma unei instrucțiuni/operații care produce rezultatul zero (pentru ZF), respectiv un număr cu semn (pentru SF).
  4. Un pointer este în esență o adresă de memorie. Din această cauză, pointerii au dimensiuni diferite în funcție de arhitectură. Pe o arhitectură de 32 de biți, pointerii ocupă 4 bytes, iar pe una de 64 de biți ocupă 8 bytes. Nu contează ce tip de pointer declarăm (fie char, int, long, float - excludem pointerii la funcții), pointerul va conține o adresă de memorie care ocupă atâția bytes cât este cuvântul procesorului.

17 octombrie 2019: Vă reamintim că mâine, 18 octombrie 2019 are loc prima lucrare de curs la seria CC. Aceasta se va desfășura în felul următor:

  • grupa 321CC se va duce în sala PR705
  • grupa 322CC se va duce în sala PR706
  • celelalte grupe și restul se vor duce în sala EC101

Lucrarea 1 va conține 6 întrebări din cursurile 1, 2, 3, 4 și 5. Detalii despre desfășurarea lucrării găsiți în secțiunea aferentă din pagina de reguli.

6 octombrie 2019: Studentii care nu sunt inscrisi la cursul de IOCLA pe acs.curs.pub.ro se pot inscrie singuri la cursul corespunzator seriei lor cautand cursul in sectiunea “Pagina principala”.

Exista două tipuri de cursuri:

a) curs per-serie, precum cel al seriei 2CC, înrolabil de studenți înșiși (open enrolment); acestea nu vor fi folosite decat pentru feedback.

b) cursul meta unde fiecare student este înrolat automat după inscrierea la cursul unei serii; aici au loc toate discuțiile și sunt prezente toate resursele materiei

27 septembrie 2019: Am terminat de configurat cursul de IOCLA pe acs.curs.pub.ro.

Exista cate un curs pentru fiecare serie (folosit pentru înrolarea studenților, pentru feedback la nivelul seriei), plus un curs meta (comun pentru toate seriile; se înscriu automat aici studenții înscriși pe un curs al unei serii). Fiecare student ar trebui sa aiba acces la cursul seriei sale si la cursul meta.

23 septembrie 2019: Studenții care refac materia în cadrul anului universitar curent și care doresc păstrarea punctajului de laborator/teme din anul universitar anterior sunt rugați să urmeze indicațiile de pe forumul general de pe acs.curs.pub.ro până la data de 25 octombrie 2019.

23 septembrie 2019: Am actualizat catalogul pentru anul universitar în curs.

20 septembrie 2019: Bun venit în noul an universitar și în lumea fascinantă a calculatoarelor și limbajelor de asamblare! În acest semestru, în cadrul cursului de Introducerea în organizarea calculatoarelor și limbaje de asamblare (IOCLA) vom face primii pași în înțelegerea modului în care funcționează un sistem de calcul și cum putem să-l programăm la nivelul cel mai apropiat de hardware.

Resursa cea mai importantă pentru IOCLA este instanța curentă de wiki. Pagini importante, pe lângă cea de start, sunt cea de Need to Know, anunțuri și calendar.

Cursurile de IOCLA încep de marți, 24 septembrie 2019. Laboratoarele de IOCLA încep de marți, 1 octombrie 2019.

iocla/anunturi.1577221672.txt.gz · Last modified: 2019/12/24 23:07 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0