Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so:laboratoare:laborator-05 [2020/03/24 00:28]
andrei.baronescu [Exercițiul 6 - Stack overflow]
so:laboratoare:laborator-05 [2022/03/02 09:32] (current)
teodor_stefan.dutu [Exercițiul 0 - GSOC]
Line 1: Line 1:
 ====== Laborator 05 - Gestiunea memoriei ====== ====== Laborator 05 - Gestiunea memoriei ======
    
-===== Materiale ajutătoare ===== 
  
-  *[[http://​elf.cs.pub.ro/​so/​res/​laboratoare/​lab05-slides.pdf | lab05-slides.pdf]] 
-  *[[http://​elf.cs.pub.ro/​so/​res/​laboratoare/​lab05-refcard.pdf | lab05-refcard.pdf]] 
  
 ==== Nice to read ==== ==== Nice to read ====
Line 332: Line 329:
  DIE (mat == NULL, "​HeapAlloc"​);​  DIE (mat == NULL, "​HeapAlloc"​);​
      
- for (i = 0; i < n; i++) {+ for (i = 0; i < m; i++) {
  mat[i] = HeapAlloc(processHeap,​ 0, n * sizeof(**mat));​  mat[i] = HeapAlloc(processHeap,​ 0, n * sizeof(**mat));​
  if (mat[i] == NULL) {  if (mat[i] == NULL) {
Line 857: Line 854:
 ====== Exerciții ====== ====== Exerciții ======
  
 +<note important>​
 +În cadrul laboratoarelor vom folosi repository-ul de git al materiei SO - https://​github.com/​systems-cs-pub-ro/​so. Va trebui sa clonați repository-ul pe masinile virtuale folosind comanda: ''​git clone https://​github.com/​systems-cs-pub-ro/​so''​. Dacă doriți să descărcați repositoryul în altă locație, folosiți comanda ''​git clone https://​github.com/​systems-cs-pub-ro/​so ${target}''​.
  
-===== Linux =====+Pentru a actualiza repository-ul,​ folosiți comanda ''​git pull origin master''​ din interiorul directorului în care se află repository-ul. Recomandarea este să îl actualizați cât mai frecvent, înainte să începeți lucrul, pentru a vă asigura că aveți versiunea cea mai recentă. În cazul în care gitul detectează conflicte la nivelul vreunui fişier, folosiți următoarele comenzi pentru a vă păstra modificările:​ 
 +<​code>​ 
 +git stash 
 +git pull origin master 
 +git stash pop 
 +</​code>​
  
-<note important>​În rezolvarea laboratorului folosiți arhiva ​de sarcini [[http://elf.cs.pub.ro/​so/​res/​laboratoare/​lab05-tasks.zip | lab05-tasks.zip]]</​note>​+Pentru mai multe informații despre folosirea utilitarului git, urmați ghidul ​de la https://gitimmersion.com. 
 +</​note>​
  
 <note tip>​Pentru a vă ajuta la implementarea exercițiilor din laborator, în directorul ''​utils''​ din arhivă există un fișier ''​utils.h''​ cu funcții utile. <note tip>​Pentru a vă ajuta la implementarea exercițiilor din laborator, în directorul ''​utils''​ din arhivă există un fișier ''​utils.h''​ cu funcții utile.
 </​note>​ </​note>​
 +
 +==== Exercițiul 0 - GSOC ====
 +
 +Google Summer of Code este un program de vară în care studenții
 +(indiferent de anul de studiu) sunt implicați în proiecte Open Source
 +pentru a își dezvolta skill-urile de programare, fiind răsplătiți cu o
 +bursă a cărei valoare [[https://​developers.google.com/​open-source/​gsoc/​help/​student-stipends|depinde de țară]]
 +([[https://​developers.google.com/​open-source/​gsoc|pagină principală GSOC]]).
 +
 +UPB se află în top ca număr de studenți acceptați; în fiecare an fiind
 +undeva la aprox. 30-40 de studenți acceptați.
 +Vă încurajăm să aplicați!
 +
 +===== Linux =====
 +
 ==== Exercițiul 1 - Zone de stocare a variabilelor ==== ==== Exercițiul 1 - Zone de stocare a variabilelor ====
  
 Intrați în directorul ''​1-counter''​ și implementați funcția ''​inc()''​ care întoarce de fiecare dată un întreg reprezentând numărul de apeluri până în momentul respectiv al funcției ''​inc''​ (**nu** aveți voie să folosiți variabile globale). Intrați în directorul ''​1-counter''​ și implementați funcția ''​inc()''​ care întoarce de fiecare dată un întreg reprezentând numărul de apeluri până în momentul respectiv al funcției ''​inc''​ (**nu** aveți voie să folosiți variabile globale).
- 
  
 ==== Exercițiul 2 - Spațiul de adresă al unui proces ==== ==== Exercițiul 2 - Spațiul de adresă al unui proces ====
Line 1042: Line 1061:
 <note tip>​Pentru rularea programului de test, nu uitați să exportați ''​LD_LIBRARY_PATH''​ (revedeți secțiunea de [[so:​laboratoare-2013:​laborator-01#​biblioteci in linux | biblioteci partajate din laboratorul 1]])</​note>​ <note tip>​Pentru rularea programului de test, nu uitați să exportați ''​LD_LIBRARY_PATH''​ (revedeți secțiunea de [[so:​laboratoare-2013:​laborator-01#​biblioteci in linux | biblioteci partajate din laboratorul 1]])</​note>​
  
-===== Soluții ===== 
- 
-[[http://​elf.cs.pub.ro/​so/​res/​laboratoare/​lab05-sol.zip | lab05-sol.zip]] 
  
 ===== Resurse utile ===== ===== Resurse utile =====
so/laboratoare/laborator-05.1585002480.txt.gz · Last modified: 2020/03/24 00:28 by andrei.baronescu
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