Differences

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

Link to this comparison view

sd-ca:teme:tema1-2024 [2024/03/22 20:25]
matei.mantu [Checker] diacritice :)
sd-ca:teme:tema1-2024 [2024/03/27 21:24] (current)
maria.sfiraiala [Actualizări]
Line 13: Line 13:
  
   * Eliminare mesaj de eroare INVALID_COMMAND:​ **22.03.2024**   * Eliminare mesaj de eroare INVALID_COMMAND:​ **22.03.2024**
 +  * Publicare checker: **22.03.2024** 
 +  * Update checker: **26.03.2024** 
 +  * Mențiune privind obligativitatea eliminării blocurilor la alocare din vectorul de liste: **27.03.2024**
 ===== Obiective ===== ===== Obiective =====
  
Line 53: Line 55:
       - Adresele din heap vor fi în intervalul [heap_base, heap_base + heap_size).       - Adresele din heap vor fi în intervalul [heap_base, heap_base + heap_size).
     * Parametrul <​tip_reconsituire>​ va fi relevant pentru cerința FREE, găsiți mai multe detalii la secțiunea acesteia.     * Parametrul <​tip_reconsituire>​ va fi relevant pentru cerința FREE, găsiți mai multe detalii la secțiunea acesteia.
 +
 +<​note>​
 +<​adresă_start_heap>​ reprezintă un număr pozitiv, nenul.
 +</​note>​
  
 <​note>​ <​note>​
Line 214: Line 220:
 <​code>​ <​code>​
 Fie situația în care avem un singur bloc liber, de dimensiune 16 bytes, Fie situația în care avem un singur bloc liber, de dimensiune 16 bytes,
-care începe de la adresa ​0x0.+care începe de la adresa ​0x1.
  
 MALLOC 6 MALLOC 6
 ---> Se fragmentează blocul de 16 bytes într-o parte de 6 bytes ---> Se fragmentează blocul de 16 bytes într-o parte de 6 bytes
      ce va fi alocată și o parte de 10 bytes ce rămâne liberă      ce va fi alocată și o parte de 10 bytes ce rămâne liberă
-     Se întoarce adresa ​0x0.+     Se întoarce adresa ​0x1.
 MALLOC 5 MALLOC 5
 ---> Se fragmentează blocul de 10 bytes într-o parte de 5 bytes ---> Se fragmentează blocul de 10 bytes într-o parte de 5 bytes
      ce va fi alocată și o parte de 5 bytes ce rămâne liberă      ce va fi alocată și o parte de 5 bytes ce rămâne liberă
-     Se întoarce adresa ​0x6+     Se întoarce adresa ​0x7
-FREE 0x6+FREE 0x7
 ---> Se alipește fragmentul de 5 bytes cu fragmentul liber de ---> Se alipește fragmentul de 5 bytes cu fragmentul liber de
      5 bytes.      5 bytes.
      ​Rezultă un bloc de dimensiune 10 bytes.      ​Rezultă un bloc de dimensiune 10 bytes.
-FREE 0x0+FREE 0x1
 ---> Se alipește fragmentul de 6 bytes cu fragmentul liber de ---> Se alipește fragmentul de 6 bytes cu fragmentul liber de
      10 bytes.      10 bytes.
Line 238: Line 244:
 <​code>​ <​code>​
 Fie situația în care avem un singur bloc liber, de dimensiune 16 bytes, Fie situația în care avem un singur bloc liber, de dimensiune 16 bytes,
-care începe de la adresa ​0x0.+care începe de la adresa ​0x1.
  
 MALLOC 6 MALLOC 6
 ---> Se fragmentează blocul de 16 bytes într-o parte de 6 bytes ---> Se fragmentează blocul de 16 bytes într-o parte de 6 bytes
      ce va fi alocată și o parte de 10 bytes ce rămâne liberă      ce va fi alocată și o parte de 10 bytes ce rămâne liberă
-     Se întoarce adresa ​0x0.+     Se întoarce adresa ​0x1.
 MALLOC 5 MALLOC 5
 ---> Se fragmentează blocul de 10 bytes într-o parte de 5 bytes ---> Se fragmentează blocul de 10 bytes într-o parte de 5 bytes
      ce va fi alocată și o parte de 5 bytes ce rămâne liberă      ce va fi alocată și o parte de 5 bytes ce rămâne liberă
-     Se întoarce adresa ​0x6+     Se întoarce adresa ​0x7
-FREE 0x0+FREE 0x1
 ---> Se creează un bloc nou de dimensiune 6 bytes. ---> Se creează un bloc nou de dimensiune 6 bytes.
      ​Există 2 liste cu câte un bloc fiecare, unul de 5 bytes și unul de 6 bytes.      ​Există 2 liste cu câte un bloc fiecare, unul de 5 bytes și unul de 6 bytes.
-FREE 0x6+FREE 0x7
 ---> Se alipește fragmentul de 5 bytes cu fragmentele de 5 și 6 bytes. ---> Se alipește fragmentul de 5 bytes cu fragmentele de 5 și 6 bytes.
      ​Există o singură listă, cu un singur bloc, de dimensiune 16      ​Există o singură listă, cu un singur bloc, de dimensiune 16
Line 280: Line 286:
  
   * Este **obligatorie** construirea unei implementări care folosește conceptul de **vector de liste dublu înlănțuite**.   * Este **obligatorie** construirea unei implementări care folosește conceptul de **vector de liste dublu înlănțuite**.
 +
 +  * Este **obligatoriu** să realizați eliminarea blocurilor din vectorul de liste atunci când acestea sunt alocate.
  
   * Nerespectarea acestor constrângeri va conduce la **notarea temei cu 0 puncte**.   * Nerespectarea acestor constrângeri va conduce la **notarea temei cu 0 puncte**.
sd-ca/teme/tema1-2024.1711131959.txt.gz · Last modified: 2024/03/22 20:25 by matei.mantu
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