Architektury systemów komputerowych lato 2024/25

Język wykładowy Polski
Opiekun Artur Kraska
Liczba godzin 30 (wyk.) 30 (ćw.) 15 (prac.)
Rodzaj Informatyczny 1
ECTS 8
Polecany dla I roku Nie
Egzamin Tak
Tagi ASK (Architektury systemów komputerowych)
Grupy efektów kształcenia Architektury systemów komputerowych

Opis przedmiotu:

Celem przedmiotu jest wprowadzenie słuchaczy do budowy i zasad działania komputerów z punktu widzenia programisty. Studenci nabędą wiedzy z zakresu programowania niskopoziomowego. Głównym celem przedmiotu jest przekazanie wiedzy na temat: * reprezentacji programów i danych na dysku i w pamięci komputera, * wpływu architektury komputera na wydajność aplikacji, * mechanizmów sprzętowych używanych do implementacji systemów operacyjnych, * jak unikać pisania programów podatnych na ataki. ##### Program 1. Reprezentacja danych * reprezentacja danych w pamięci komputera * arytmetyka na liczbach binarnych w systemie uzupełnień do dwóch * arytmetyka na liczbach zmiennopozycyjnych standardu IEEE754 * problemy wynikające z ograniczeń reprezentacji maszynowych typów numerycznych 2. Programowanie niskopoziomowe * translacja konstrukcji języka C do asemblera procesorów x86-64 (wyrażenia, instrukcje sterujące, typy rekordowe i tablicowe) * konwencja wołania procedur i organizacja stosu wywołań (ABI) 3. Konsolidacja i ładowanie * proces kompilacji, konsolidacji i ładowania programów (sekcje, relokacje, układ pamięci) * reprezentacja programów – format plików ELF * biblioteki i konsolidator dynamiczny (ld.so) 4. Podatności programów na ataki * błąd przepełnienia stosu * wykorzystywanie podatności (wstrzykiwanie kodu, programowanie zorientowane na powroty) * sprzętowe i programowe techniki zapobiegania podatnościom 5. Pamięć podręczna * hierarchia pamięci i lokalność dostępów * organizacja pamięci podręcznej (zbiór, blok, znacznik, bity dodatkowe) * polityka wymiany bloków (LRU) * polityka zapisu (write-back, write-through) * analiza i optymalizacja programów pod kątem lokalności dostępów 6. Translacja adresów i pamięć wirtualna * motywacja: zarządzanie pamięcią, izolacja, leniwe sprowadzanie danych * przestrzeń adresowa i mechanizm translacji adresów * zbiór roboczy i rezydentny, błąd strony * hierarchiczna reprezentacja tablicy stron * przyspieszanie procesu translacji dzięki TLB * przełączanie przestrzeni adresowych * problemy na styku translacji adresów i pamięci podręcznej (homonimy i synonimy) 7. Wpływ mikroarchitektury procesora na wydajność programów * przetwarzanie superskalarne (procesory Out-of-Order, spekulacja) * modelowanie obliczeń grafem przepływu danych * przewidywanie skoków ##### Zajęcia Zajęcia do przedmiotu będą prowadzone w postaci ćwiczeń z deklaracjami. Na pracowniach programistycznych pojawią się: * programowanie w asemblerze x86-64 * znajdowanie błędów w programach z użyciem [gdb](https://www.gnu.org/software/gdb/) * przeprowadzanie ataków na podatne oprogramowanie * optymalizacja programów w języku C

Wykłady

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Artur Kraska
wt 14:00-16:00 (s. 25) 151 46 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Ćwiczenia

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Kuba Nowak
pn 14:00-16:00 (s. 105) 20 10 0
Artur Kraska
wt 12:00-14:00 (s. 141) 20 19 0
Marek Materzok
śr 16:00-18:00 (s. 5) 20 17 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.

Pracownie

Lista
Prowadzący Termin zajęć Limit Zapisani Kolejka
Artur Kraska
wirtualna — termin nieistotny
pn 10:00-11:00 (s. wirtualna1) 15 14 0
Artur Kraska
wirtualna — termin nieistotny
pn 11:00-12:00 (s. wirtualna1) 15 15 0
Piotr Witkowski
wirtualna — termin nieistotny
cz 14:00-15:00 (s. wirtualna1) 15 7 0
Piotr Witkowski
wirtualna — termin nieistotny
cz 15:00-16:00 (s. wirtualna1) 15 9 0

UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.


Konsultacje prowadzących:


Imię i nazwisko Pokój Konsultacje
Artur Kraska 204 Środa 13-14 (wcześniej należy poinformować mnie mailowo).
Marek Materzok 336 Po uzgodnieniu przez e-mail
Piotr Witkowski 311 Po wcześniejszym umówieniu się pocztą elektroniczną.
Kuba Nowak 340 Po wcześniejszym umówieniu pocztą elektroniczną.