System plików

Interfejs systemu plików i strumieniowe wejście/wyjście #

Zakres wykładu #

  • Koncepcja pliku. Struktury, atrybuty i podstawowe operacje na pliku.
  • Otwieranie pliku. Sesja pliku. Blokada pliku.
  • Tryby dostępu do pliku: sekwencyjny, bezpośredni (random access), indeksowy.
  • Organizacja systemu plików: partycje, katalagi, formatowanie.
  • Organizacja katalogów: cele i implementacje: jedno- i dwupoziomowa, drzewiasta, struktura grafu acyklicznego bądź dowolnego grafu.
  • Montaż systemu plików.
  • Współdzielenie dostępu do pliku: koncepcja, semantyka, ochrona.

Niskopoziomowe API POSIX:

  • Otwieranie i zamykanie sesji plikowej: open(), close()
  • Atrybuty plików w systemie UNIX i funkcje odpytywania: stat(), lstat(),fstat()
  • Funkcje odczytu/zapisu: read(), write(), pread(), pwrite(), readv(), writev()
  • Swobodny dostęp: lseek()
  • Duplikowanie deskryptorów: dup(), dup2()
  • Zmiany w tablicach deskryptorów, otwartych plików i i-węzłów związane z wywołaniem open(), dup()/dup2(), fork()
  • Związki pomiędzy strumieniami, a deskryptorami: fdopen(), fileno()
  • Synchronizacja deskryptorów: fsync(), sync()

Standardowe API języka C:

  • Strumienie a deskryptory dostępu do pliku.
  • Buforowanie strumieni.
  • Otwieranie/zamykanie strumieni. Wykrywanie/kasowanie znaczników końca danych (EOF) i błędów.
  • Pozycjonowanie w strumieniu i operacje odczytu/zapisu.
  • Katalogi POSIX: koncepcja, katalog bieżący i główny procesu.
  • Strumień katalogu i operacje na nim.

Materiały #

  1. Podręcznik: rozdział 11 (Interfejs systemu plików).
  2. Prezentacja wykładowa (PDF)
  3. Programy wykładowe
  4. The GNU C library documentation: Input/output concepts
  5. The GNU C library documentation: Low-Level Input/Output (13.1-13.5,13.8)
  6. Fragmenty standardu “POSIX IEEE Std 1003.1 2017” - definicje pojęć związanych z procesami
  7. Stare slajdy: FS_interfejs.pdf, IO_1.pdf IO_2.pdf