Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. Zadania - zestaw 1
  2. Zarządzanie pamięcią, biblioteki, pomiar czasu
  3. Zadanie 1. Ksiazka adresowa
  4.  
  5. Zaprojektuj i przygotuj zestaw funkcji (bibliotekę) do zarzadzania "ksiazka kontaktowa" przechowujaca kontakty zawierajace: Imię, Nazwisko, Date urodzenia, email, telefon, adres w postaci
  6.  
  7. a) drzewa binarnego
  8.  
  9. b) listy dwukierunkowej
  10.  
  11. Biblioteka powinna umozliwiac:
  12.  
  13. - tworzenie i usuwanie ksiazki kontaktowej
  14.  
  15. - dodanie i usuniecie kontaktu do/z ksiazki (bez utraty innych kontaktow i bez wyciekow pamieci)
  16.  
  17. - wyszukiwanie elementu w ksiazce
  18.  
  19. - sortowanie/przebudowanie ksiazki wg wybranego pola (Nazwisko, Data urodzenia, email, telefon)
  20.  
  21. Przygotuj plik Makefile, zawierający polecenia kompilujące pliki źródłowe biblioteki oraz tworzące biblioteki w dwóch wersjach: statyczną i dzieloną.
  22. Zadanie 2. Program korzystający z biblioteki
  23.  
  24. Napisz program testujący działanie funkcji z biblioteki z zadania 1.
  25.  
  26. Program powinien stworzyc ksiazki adresowe skladajace sie z 1000 elementow a realizowane w postaci listy dwukierunkowej oraz drzewa binarnego. Dane możesz wygenerowac chocby na stronkach typu generatedata.com albo uzyc danych losowych.
  27.  
  28. W programie zmierz i wypisz czasy realizacji podstawowych operacji:
  29.  
  30. - stworzenie ksiazki adresowej,
  31.  
  32. - dodanie pojedynczego elementu (czasy mierz dla dodawania po kolei kazdego elementu)
  33.  
  34. - usuwanie kontaktu z ksiazki (zmierz czasy dla przypadku optymistycznego oraz pesymistycznego)
  35.  
  36. - wyszukanie elementu w ksiazce (zmierz czasy dla przypadku optymistycznego oraz pesymistycznego)
  37.  
  38. - przesortowanie/przebudowanie ksiazki
  39.  
  40. Mierzac czasy pokaz trzy wartosci: czas rzeczywisty, czas uzytkownika i czas systemowy.
  41.  
  42. Zadanie 3. Testy i pomiary
  43.  
  44. a) Przygotuj plik Makefile, zawierający polecenia kompilujące program z zad 2 na trzy sposoby:
  45. - z wykorzystaniem bibliotek statycznych,
  46. - z wykorzystaniem bibliotek dzielonych (dynamiczne, ładowane przy uruchomieniu programu),
  47. - z wykorzystaniem bibliotek ładowanych dynamicznie (dynamiczne, ładowane przez program),
  48. oraz uruchamiający testy.
  49.  
  50. Wyniki pomiarow zbierz w pliku results.txt. Plik zalacz jako element rozwiazania.
  51.  
  52. b) Rozszerz plik Makefile z punktu 3a) dodajac mozliwosc skompilowania programu na roznych poziomach optymalizacji -O0...-Os. Przeprowadz ponownie pomiary kompilujac i uruchamiajac program na roznych poziomach iotymalizacji.
  53.  
  54. Wyniki pomiarow dodaj do pliku results.txt. Otrzymane wyniki krotko skomentuj.
  55. Zadanie 4. Analiza pliku core
  56.  
  57. Zmodyfikuj program z punktu 2 tak aby wygenerowany został zrzut pamieci (plik core). Korzystajac z gdb oraz zrzutu pamieci znajdz w programie miejsce i stan programu powodujace blad krytyczny i zrzut pamieci. Do oddawanego zestawu dodaj plik tekstowy gdb.txt a w nim: wskaz w jaki sposob zmodyfikowales program z punktu 2 i jaka operacja powoduje blad i zrzut pamieci (ew jakie kroki podczas uruchamiania programu należy wykonac aby blad i zrzut wystapily) a także opisz w jaki sposob posluzyles się/nalezy posluzyc sie gdb do analizy pliku core oraz wskaz/zalacz te elementy zrzuconego obrazu pamieci które potwierdzaja fakt oraz okolicznosci wystapienia (prefabrykowanego) bledu.
  58.  
  59. Uwaga. Jesli program z p.2 zrzuca cora – nie zostanie to zaliczone jako rozwiazanie punktu 4 :)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement