This shows you the differences between two versions of the page.
|
sd-ca:teme:tema1-2023 [2023/03/22 23:07] maria.sfiraiala |
sd-ca:teme:tema1-2023 [2023/04/05 23:30] (current) radu.nichita [Virtual Memory Allocator] |
||
|---|---|---|---|
| Line 8: | Line 8: | ||
| * Data publicării: **22.03.2023 22:00:00** | * Data publicării: **22.03.2023 22:00:00** | ||
| - | * Deadline **HARD**: **10.04.2023 23:55:00** | + | * Deadline **HARD**: <del>**10.04.2023 23:55:00**</del> **12.04.2023 23:55:00** |
| + | |||
| + | ===== Actualizări ===== | ||
| + | * Adăugare mesaje de eroare (INVALID_ALLOC_BLOCK): **28.03.2023** | ||
| + | * Adăugare clarificări arenă: **24.03.2023** | ||
| Line 129: | Line 133: | ||
| * INVALID_ALLOC_BLOCK | * INVALID_ALLOC_BLOCK | ||
| + | * Dacă adresa de început a blocului ce se dorește a fi alocat depășește dimensiunea arenei, se va afișa **"The allocated address is outside the size of arena\n"**. | ||
| + | * Dacă adresa de final a blocului ce se dorește a fi alocat depășește dimensiunea arenei, se va afișa **"The end address is past the size of the arena\n"**. | ||
| * Dacă există cel puțin o adresă din zona de memorie [adresă_din_arenă, adresă_din_arenă + dimensiune) care a fost alocată anterior, se va afișa **“This zone was already allocated.\n”**. | * Dacă există cel puțin o adresă din zona de memorie [adresă_din_arenă, adresă_din_arenă + dimensiune) care a fost alocată anterior, se va afișa **“This zone was already allocated.\n”**. | ||
| * INVALID_ADDRESS_FREE | * INVALID_ADDRESS_FREE | ||
| Line 164: | Line 170: | ||
| ALLOC_BLOCK 12298 10 | ALLOC_BLOCK 12298 10 | ||
| PMAP | PMAP | ||
| - | WRITE 4096 25 Observ sisteme de operare | + | WRITE 4096 26 Observ sisteme de operare |
| READ 4096 14 | READ 4096 14 | ||
| FREE_BLOCK 12298 | FREE_BLOCK 12298 | ||
| Line 263: | Line 269: | ||
| * Eliberarea memoriei se va verifica folosind utilitarul Valgrind. O temă ce conține memory leaks va atrage după sine punctaj de **0p pe testul respectiv**. | * Eliberarea memoriei se va verifica folosind utilitarul Valgrind. O temă ce conține memory leaks va atrage după sine punctaj de **0p pe testul respectiv**. | ||
| + | <note warning> | ||
| + | |||
| + | * Este **obligatorie** construirea unei implementări care folosește conceptul de listă în listă. | ||
| + | |||
| + | * Orice tentativă de alocare a unui vector liniar, contiguu și de simulare a operațiilor aplicate arenei pe acesta este **interzisă**. Arena există doar la nivel conceptual, task-urile temei aplicându-se pe lista dublu înlănțuită de block-uri, respectiv miniblock-uri. | ||
| + | |||
| + | * Nerespectarea acestor constrângeri va conduce la **notarea temei cu 0 puncte**. | ||
| + | |||
| + | </note> | ||
| ===== Checker ===== | ===== Checker ===== | ||
| Line 275: | Line 290: | ||
| * fișier **Makefile** cu două reguli: | * fișier **Makefile** cu două reguli: | ||
| * regula **build**: în urma căreia se generează un executabil numit **vma** | * regula **build**: în urma căreia se generează un executabil numit **vma** | ||
| + | * regula **run_vma**: în urma căreia va rula executabilul **vma** | ||
| * regula **clean** care şterge executabilul si fișierele obiect | * regula **clean** care şterge executabilul si fișierele obiect | ||
| * Compilarea trebuie sa se realizeze cu flagurile **-Wall -Wextra -std=c99** | * Compilarea trebuie sa se realizeze cu flagurile **-Wall -Wextra -std=c99** | ||
| * fișier **README** care să conțină detalii despre implementarea temei | * fișier **README** care să conțină detalii despre implementarea temei | ||