wykład obieralny
semestr letni roku akademickiego 2023/2024
Szczegóły organizacyjne
Wykład: Janina Mincer-Daszkiewicz (email: jmd@mimuw.edu.pl)
Laboratorium:
- Andrzej Jackowski (email: a.jackowski@mimuw.edu.pl)
- Wojciech Ciszewski (email: w.ciszewski2@uw.edu.pl)
- Maciej Matraszek (email: m.matraszek@mimuw.edu.pl)
Konsultacje: proszę się umawiać mailowo
Strona przedmiotu w USOSweb
ZSO na Wykładzie o wykładach (nagranie z 2022: od 19:00 do 27:18)
Grafik zajęć
Wykłady są otwarte dla wszystkich chętnych
Wykład (początek 14:15)
Laboratorium (początek 16:00)
Wtorek |
27.02 |
05.03 |
12.03 |
19.03 |
26.03 |
02.04 |
09.04 |
16.04 |
23.04 |
30.04 |
07.05 |
14.05 |
21.05 |
28.05 |
04.06 |
11.06 |
18.06 |
12.09 |
Wykłady |
w1 |
w2 |
w3 |
w4 |
w5 |
Wielkanoc |
w6 |
w7 |
w8 |
w9 |
w10 |
w11 |
w12 |
w13 |
-- |
w14 |
--- |
--- |
Laby |
lab1 |
lab2 |
lab3 |
lab4 |
lab5 |
Wielkanoc |
lab6 |
lab7 |
lab8 |
lab9 |
lab10 |
lab11 |
lab12 |
lab13 |
-- |
lab14 |
--- |
--- |
Zad udostępnienie |
Zad1 |
--- |
--- |
--- |
Zad2 |
--- |
--- |
--- |
--- |
Zad3 |
--- |
--- |
--- |
--- |
--- |
--- |
--- |
--- |
Zad termin oddania |
--- |
--- |
--- |
--- |
Zad1 |
--- |
--- |
--- |
--- |
Zad2 |
--- |
--- |
--- |
--- |
Zad3 |
--- |
--- |
--- |
Zad - ostateczny termin oddania |
--- |
--- |
--- |
--- |
--- |
--- |
Zad1 |
--- |
--- |
--- |
--- |
Zad2 |
--- |
--- |
--- |
--- |
Zad3 |
--- |
-
Wykład 1:
Wprowadzenie:
Zadania SO, UNIX i Linux - historia, cechy, budowa, eBPF, podstawowe pojęcia: kontekst wykonania, funkcje systemowe, raporty nt jądra
-
Wykład 2:
Trochę o sprzęcie (na przykładzie Intela): procesor i pamięć, adresowanie, pamięć podręczna procesora, architektura komputerów
-
Wykład 3:
Zarządzanie pamięcią i procesami: Inicjowanie pracy jądra, stronicowanie w Linuksie, struktury danych procesu
-
Wykład 4:
Zarządzanie pamięcią i procesami: Struktury danych procesu, przestrzeń adresowa procesu, fork(), błąd braku strony
-
Wykład 5:
Zarządzanie pamięcią: Pamięć fizyczna, wypełnianie tablic stron, zarządzanie ramkami, strefy, pamięć wysoka, zarządzanie nieciągłymi obszarami pamięci
-
Wykład 6:
Zarządzanie pamięcią: System bliźniaków, alokator płytowy
-
Wykład 7:
Zarządzanie procesami: Synchronizacja na poziomie jądra
-
Wykład 8:
Zarządzanie plikami: Wirtualny system plików, interfejs, struktury danych
-
Wykład 9:
Zarządzanie plikami: Wirtualny system plików, montowanie, pamięć podręczna katalogów, i-węzły w pamięci
-
Wykład 10:
Zarządzanie pamięcią: Podręczna pamięć stron, wymiana stron
-
Wykład 11:
Zarządzanie pamięcią: THP (Transparent Huge Pages);
Zarządzanie plikami: systemy plików ext2, ext3 i ext4
-
Wykład 12:
Warstwa blokowego wejścia-wyjścia i szeregowanie żądań wejścia-wyjścia
-
Wykład 13:
Szeregowanie procesów: przestrzeń nazw PID, wprowadzenie do szeregowania procesów w Linuksie, planista O(N), O(1), RSDS
-
Wykład 14:
Szeregowanie procesów: planista CFS, BFS, MuQSS, Deadline; co nowego w szeregowaniu procesów?
- Pytania i odpowiedzi
Początek
W ramach wykładów będziemy omawiać (w celach porównawczych) różne wersje Linuksa, w tym najnowszą (ostatnia stabilna to 6.7.6, mainline to 6.8-rc5, na lab będzie używany Debian 11 z jądrem 6.7.6).
Początek
Są nowsze książki, ale ich nie znam, więc nie mogę rekomendować.
-
R. Love, Linux Kernel Development,
Addison-Wesley, 2010 (trzecie wydanie, wersja jądra 2.6.34)
Wersja elektroniczna
-
W. Mauerer, Professional Linux Kernel Architecture,
Wiley Inc., 2008 (pierwsze wydanie, wersja jądra 2.6.24).
Wersja elektroniczna
-
D.P. Bovet, M. Cesati, Understanding the Linux Kernel, O'Reilly,
November 2005 (trzecie wydanie, wersja jądra 2.6.11).
Wersja elektroniczna
-
A. Rubini, J. Corbet, G. Kroah-Hartman,
Linux Device Drivers, O'Reilly, 2005 (trzecie wydanie, wersja jądra 2.6.10).
Wersja elektroniczna
-
R. Love, Linux System Programming: Talking Directly to the Kernel and C Library,
O'Reilly, 2013 (drugie wydanie, wersja jądra 3.0).
Wersja elektroniczna
Początek
Początek
Oczekuję aktywnego udziału w wykładzie, dyskusji, zadawania pytań. Każda obecność na wykładzie jest premiowana anulowaniem jednego dnia 'karnego' za opóźnienie w dostarczeniu zadania zaliczeniowego (łącznie można w ten sposób zyskać 14 dodatkowych dni na realizację zadań).
Obecność na laboratorium jest obowiązkowa. Wykonywanie w trakcie zajęć zadań przewidzianych scenariuszami
jest premiowane anulowaniem jednego dnia 'karnego' za opóźnienie w dostarczeniu zadania zaliczeniowego (łącznie można w ten sposób zyskać ok. 7 dodatkowych dni na realizację zadań).
Będą trzy zadania laboratoryjne, każde oceniane na 10 punktów. Warunkiem koniecznym zaliczenia laboratorium w pierwszym terminie jest uzyskanie co najmniej 3 punktów z KAŻDEGO zadania (chodzi o punkty przyznane w wyniku oceny przez sprawdzającego, przed uwzględnieniem kar czy bonusów) oraz co najmniej 18 punktów w sumie za wszystkie zadania. Ponadto, ocena zależy od punktów w następujący sposób:
Punkty od | Ocena |
28.0 | 5 |
25.5 | 4+ |
23.0 | 4 |
20.5 | 3+ |
18.0 | 3 |
0 | 2 |
Terminy oddawania zadań - do końca dnia wskazanego w grafiku.
Każdy dzień opóźnienia w oddaniu zadania skutkuje przemnożeniem otrzymanej
liczby punktów przez 0.9 (czyli przy założeniu, że przysługuje maksymalna liczba
10 punktów, 1 dzień po terminie oznacza to 9 punktów, 2 dni - 8.1, 5 dni 5.9,
10 dni - 3,5, 14 dni (maksymalne dopuszczalne opóźnienie w oddaniu zadania) - 2,3).
Można poprawić uzyskaną liczbę punktów, przesyłając *jedno* zadanie do (ponownego) sprawdzenia w terminie poprawkowym (jest to ostatnia data wskazana w grafiku, nie stosują się żadne bonusy). Uzyskana liczba punktów zostanie przemnożona przez 0,8. Nowa liczba punktów za to zadanie *bezwarunkowo* zastępuje punkty z pierwszego terminu. Warunkiem koniecznym zaliczenia laboratorium w drugim terminie jest uzyskanie co najmniej 3 punktów z KAŻDEGO zadania (chodzi o punkty przyznane w wyniku oceny przez sprawdzającego, przed uwzględnieniem kar czy bonusów) oraz co najmniej 18 punktów w sumie za wszystkie zadania.
Aktualny stan punktów można śledzić w USOSweb w module Sprawdziany.
Początek