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. Algorytm tłumaczenia adresu (Intel)
    9. Algorytm tłumaczenia adresu i obsługa tablic stron
    10. Zarządzanie wolnymi ramkami
    11. (a) Obsługa pamięci wirtualnej procesu
      (b) Obsługa pamięci podręcznej stron
      (c) Odwzorowywanie plików do pamięci
    12. Wirtualna przestrzeń adresowa procesu
    13. Wirtualna przestrzeń adresowa procesu
    14. Wirtualna przestrzeń adresowa procesu
    15. Przydział i zwalnianie bloków stronicowych, demon kswapd
    16. Algorytm postarzania stron, demon kswapd
    17. 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()
    18. Zajmowanie bloków pamięci - get_free_pages()
      Zwalnianie bloków pamięci - free_pages()
    19. Algorytmy kmalloc() i kfree()
    20. Alokacja pamięci dla jądra
    21. 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. Algorytmy czytania bloków - bread() i breada()
    11. Podręczna pamięć buforowa katalogów
    12. Czytanie z wyprzedzeniem
    13. Mechanizm buforowania
    14. (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
    15. Wirtualny system plików
    16. System plików proc
    17. System plików proc
    18. (a) Funkcje iget(), iput(), ialloc()
      (b) System plików proc
    19. I_węzły, algorytm iget(), iput(), ialloc() i ifree()
    20. Algorytm pobrania i-węzła z pamięci iget()
    21. Algorytm zwolnienia i-węzła z pamięci iput()
    22. Algorytm przydzielania i-węzła na dysku ialloc()
    23. Algorytm zwalniania i-węzła na dysku ifree()
    24. Algorytmy iget() i iput()
    25. Alokowanie i zwalnianie i-węzła na dysku w systemie ext2
    26. System ext2:
      (a) obsługa map bitowych
      (b) algorytm zwalniania bloku dyskowego
      (c) algorytm przydziału bloku dyskowego
    27. Zarządzanie mapą bitową zajętości bloków
    28. Algorytm alokacji bloków dyskowych - ext2_new_block
    29. Algorytm dealokacji bloków dyskowych - ext2_free_block
    30. 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. (a) Obsługa plików specjalnych
      (b) Obsługa tablic rozdzielczych
      (c) Podprogram obsługi urządzenia
    9. Funkcje block_read() i block_write()
    10. Instrukcje wejścia-wyjścia (funkcje block_read() i block_write())
      Załączniki
    11. Szeregowanie żądań do urządzeń blokowych
    12. Urządzenie mem
    13. Szeregowanie żądań do urządzeń blokowych
      Urządzenie mem
    14. Szeregowanie żądań do urządzeń blokowych
      Urządzenie mem
    15. Szeregowanie żądań do urządzeń blokowych
    16. 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

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