System operacyjny Linux (Wersja 2.4.7)
Prezentacje i zadania


Spis treści

  1. PROCESY
    1. Zarządzanie procesami
    2. Tworzenie i niszczenie procesów
    3. Struktury danych i funkcje do obsługi procesów
    4. Zmiany stanów procesów
    5. Przełączanie kontekstu - makro switch_to
    6. Struktury danych i funkcje do obsługi procesów
    7. Kolejki oraz usypianie i budzenie procesów
    8. Implementacja kolejek
    9. Szeregowanie procesów - algorytm schedule()
    10. Szeregowanie procesów - algorytm schedule()
    11. Szeregowanie procesów
    12. Al gorytm fork()
    13. Algorytm exec()
    14. Algorytm wait()
    15. Algorytm exit()
    16. Semafory systemowe
    17. Algorytm exec
    18. Algorytm exit
    19. Funkcje fork(), vfork() i clone(); przełączanie kontekstu
    20. Tworzenie procesów
    21. Uruchamianie procesów

  2. PAMIĘĆ
    1. Obsługa tablic stron
    2. Obsługa tablic ramek
    3. Przydzielanie i zwalnianie bloków pamięci
    4. Pamięć - cd
    5. Zarządzanie pamięcią wirtualną
    6. Pamięć wirtualna - ramki, strony, błąd braku strony, wymiana stron
    7. (a) Algorytm tłumaczenia adresu (Intel)
      (b) Obsługa tablicy stron
      (c) Obsługa tablicy ramek
    8. Obsługa stronicowania
    9. Algorytm tłumaczenia adresu (Intel)
    10. Algorytm tłumaczenia adresu i obsługa tablic stron
    11. Zarządzanie wolnymi ramkami
    12. (a) Obsługa pamięci wirtualnej procesu
      (b) Obsługa pamięci podręcznej stron
      (c) Odwzorowywanie plików do pamięci
    13. Wirtualna przestrzeń adresowa procesu
    14. Wirtualna przestrzeń adresowa procesu
    15. Wirtualna przestrzeń adresowa procesu
    16. Przydział i zwalnianie bloków stronicowych, demon kswapd
    17. Algorytm postarzania stron, demon kswapd
    18. Obsługa dynamicznego przydziału i zwalniania pamięci przez jądro:
      (a) System bliźniaków: get_free_pages(), free_pages()
      (b) Alokator płytowy: kmalloc(), kfree()
      (c) Zarządzanie nieciągłymi obszarami: vmalloc(), vfree()
    19. Zajmowanie bloków pamięci - get_free_pages()
      Zwalnianie bloków pamięci - free_pages()
    20. Algorytmy kmalloc() i kfree()
    21. Alokacja pamięci dla jądra
    22. Przydział i zwalnianie pamięci dla jądra
      Obsługa plików i urządzeń wymiany

  3. PLIKI
    1. Wirtualny system plików
    2. (a) Wirtualny system plików
      (b) Algorytm open(), creat(), close(), read(), write()
      (c) Algorytm mknode()
    3. Wirtualny system plików
    4. Funkcje open() i close()
    5. Funkcje open(), close(), read() i write()
    6. Algorytm przekształcania nazwy ścieżkowej w i-węzeł namei()
    7. Algorytm przekształcania nazwy ścieżkowej w i-węzeł namei()
    8. Podręczna pamięć buforowa
    9. Podręczna pamięć buforowa
    10. Operacje getblk(), bread i breada
    11. Nagłówki buforów, obsługa list LRU, list wolnych buforów. Algorytmy getblk i brelse
    12. (a) Algorytmy czytania bloków - bread() i breada()
      (b)
      Podręczna pamięć buforowa katalogów
    13. Mechanizm buforowania
    14. Czytanie z wyprzedzeniem
    15. (a) Obsługa pamięci podręcznej katalogów
      (b) Przekształcanie nazwy ścieżkowej na i-węzeł namei()
      (c) System plików proc
    16. Wirtualny system plików
    17. System plików proc
    18. System plików proc
    19. (a) Funkcje iget(), iput(), ialloc()
      (b) System plików proc
    20. I_węzły, algorytm iget(), iput(), ialloc() i ifree()
    21. (a) Algorytm pobrania i-węzła z pamięci iget()
      (b) Algorytm zwolnienia i-węzła z pamięci iput()
      (c) Algorytm przydzielania i-węzła na dysku ialloc()
      (d) Algorytm zwalniania i-węzła na dysku ifree()
    22. Algorytmy iget() i iput()
    23. Alokowanie i zwalnianie i-węzła na dysku w systemie ext2
    24. System ext2:
      (a) obsługa map bitowych
      (b) algorytm zwalniania bloku dyskowego
      (c) algorytm przydziału bloku dyskowego
    25. (a) Zarządzanie mapą bitową zajętości bloków
      (b) Algorytm alokacji bloków dyskowych - ext2_new_block
      (c) Algorytm dealokacji bloków dyskowych - ext2_free_block
    26. Struktury ext2, algorytm ext2_new_block i ext2_free_block

  4. URZĄDZENIA
    1. Podsystem wejścia-wyjścia
    2. Ogólny opis urządzeń blokowych i znakowych
    3. Urządzenia we-wy: obsługa urządzeń znakowych i blokowych
    4. Urządzenia blokowe i znakowe
    5. Urządzenia, pliki urządzeń, tablice rozdzielcze
    6. Obsługa plików specjalnych i tablic rozdzielczych
    7. Obsługa plików specjalnych i tablic rozdzielczych
    8. Obsługa urządzeń blokowych i znakowych
    9. Podprogram obsługi urządzenia. Sterownik urządzenia znakowego
    10. (a) Obsługa plików specjalnych
      (b) Obsługa tablic rozdzielczych
      (c) Podprogram obsługi urządzenia
    11. Funkcje block_read() i block_write()
    12. Instrukcje wejścia-wyjścia (funkcje block_read() i block_write())
      Załączniki
    13. (a) Szeregowanie żądań do urządzeń blokowych
      (b) Urządzenie mem
    14. Szeregowanie żądań do urządzeń blokowych
      Urządzenie mem
    15. Szeregowanie żądań do urządzeń blokowych
      Urządzenie mem
    16. (a) Szeregowanie żądań do urządzeń blokowych
      (b) Urządzenie mem

Zobacz też: Budowa systemu operacyjnego Linux
Zobacz też: Laboratorium systemu operacyjnego Linux
Zobacz też: System operacyjny Linux - Prezentacje i wręczałki
Zobacz też: System operacyjny Linux - Podręcznik
Zobacz też: System operacyjny Linux - Algorytmy + Struktury danych

Pliki projektu LinuxZadania (tylko prezentacje, bez zadań) są dostępne w postaci zbioru tgz (łącznie prawie 6 M).
Wlaścicielką praw autorskich do projektu LinuxZadania jest, w imieniu studentów IIUW, Janina Mincer-Daszkiewicz, pod opieką której projekt był realizowany. Do niej należy kierować wszelką korespondencję. 
Autorzy: studenci III roku informatyki w roku akademickim 2001/2002

Janina Mincer-Daszkiewicz