Systemy komputerowe lato 2024/25
Język wykładowy | Polski |
---|---|
Opiekun | Piotr Witkowski |
Liczba godzin | 30 (wyk.) 30 (ćw.) |
Rodzaj | Informatyczny 1 |
ECTS | 6 |
Polecany dla I roku | Nie |
Egzamin | Tak |
Tagi | ASK (Architektury systemów komputerowych) SO (Systemy operacyjne) |
Grupy efektów kształcenia | Architektury systemów komputerowych Systemy operacyjne |
Opis przedmiotu:
Celem wykładu jest przedstawienie studentom najważniejszych idei, algorytmów i struktur danych wykorzystywanych w systemach komputerowych, głównie w sprzęcie, systemach operacyjnych i narzędziach systemowych. **Uwaga**: Mimo, iż przedmiot pokrywa efekty kształcenia przedmiotów ASK i SO, to podejście do poruszanych tematów jest zasadniczo odmienne. Ten wykład skierowany jest głównie do studentów z zacięciem teoretycznym. Zasady przyznawania punktów dla osób, które zaliczyły już przynajmniej jeden z powyższych przedmiotów: 1. Osoby, które zaliczyły ASK oraz SO, otrzymają za SyK 0 ECTS, a 2. Osoby, które zaliczyły ASK albo SO, otrzymają za SyK 4 ECTS. Program wykładu opracowano wspólnie z **Krystianem Bacławskim**. ### Tematy wykładów 1. Sprzętowa implementacja operacji arytmetycznych: szybkie algorytmy dodawania (sumatory carry-lookahead i Ling'a), mnożenia (drzewa Wallace'a i kodowanie Booth'a) i dzielenia (non-restoring division, SRT division). 2. Niskopoziomowa reprezentacja programów (kod trójadresowy, graf przepływu sterowania), analiza przepływu danych (obliczenia stałopunktowe). 3. Architektura współczesnego procesora (przetwarzanie potokowe i *out-of-order*). Graf przepływu danych i algorytm Tomasulo. 4. Spekulatywne wykonywanie instrukcji, przewidywanie skoków (perceptron, TAGE), atak Spectre. 5. Instrumentacja kodu, profilowanie (graf wywołań funkcji) i optymalizacja kodu (algorytm *local value numbering*). 6. Struktury pamięci podręcznych, algorytmy *cache-oblivious*. 8. Algorytmy szeregowania wątków i balansowania obciążenia procesorów (algorytm ULE, kolejka kalendarzowa). 9. Translacja adresów, wielopoziomowa i odwrócona tablica stron. 10. Pamięć wirtualna, algorytmy zastępowania stron (algorytm WSCLOCK, aging, Clock-Pro). 11. Algorytmy dynamicznego przydziału pamięci (buddy systems, boundary tags). Algorytmy odśmiecania (mark and sweep, algorytm kopiujący). 12. Struktury danych systemów plików (grupy bloków, i-node, B-drzewo, journaling). Planowanie operacji I/O (budget-fair queueing). 13. Przetwarzanie współbieżne. Implementacja środków synchronizacji (synchronizacja pamięci podręcznych, exponential backoff). 14. Kontrola przepływności w protokole TCP. Obliczanie sum kontrolnych i kodów korekcyjnych. 15. Sieci w układach scalonych: topologia i trasowanie pakietów.Wykłady
ListaProwadzący | Termin zajęć | Limit | Zapisani | Kolejka |
---|---|---|---|---|
Piotr Witkowski
zdalna |
śr 12:00-14:00 (s. wirtualna6) | 54 | 43 | 0 |
UWAGA! Wyższa liczba oznacza wyższy priorytet, po zapisaniu do grupy zostajemy usunięci z kolejek o niższym priorytecie.
Ćwiczenia
ListaProwadzący | Termin zajęć | Limit | Zapisani | Kolejka |
---|---|---|---|---|
Piotr Witkowski
zdalna |
śr 10:00-12:00 (s. wirtualna1) | 22 | 21 | 0 |
Piotr Witkowski
zdalna |
śr 17:00-19:00 (s. wirtualna6) | 22 | 22 | 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 |
---|---|---|
Piotr Witkowski | 311 | Po wcześniejszym umówieniu się pocztą elektroniczną. |