Systemy operacyjne: Różnice pomiędzy wersjami
Linia 163: | Linia 163: | ||
#*# Przykłady implementacji systemu plików (CP/M, FAT, ISO 9660, Unix, NTFS) | #*# Przykłady implementacji systemu plików (CP/M, FAT, ISO 9660, Unix, NTFS) | ||
#* Najważniejsze pojęcia i zagadnienia: plik, typ pliku, struktura pliku, dostęp sekwencyjny, dostęp bezpośredni, dostęp indeksowy, strefa, katalog, przydział ciągły, przydział listowy, przydział indeksowy, FAT, cylinder, ścieżka, sektor, pozycjonowanie, czas wyszukiwania, opóźnienie obrotowe, algorytm planowania (SSTF, SCAN, LOOK, N-step-SCAN, FSCAN), RAID, paskowanie. | #* Najważniejsze pojęcia i zagadnienia: plik, typ pliku, struktura pliku, dostęp sekwencyjny, dostęp bezpośredni, dostęp indeksowy, strefa, katalog, przydział ciągły, przydział listowy, przydział indeksowy, FAT, cylinder, ścieżka, sektor, pozycjonowanie, czas wyszukiwania, opóźnienie obrotowe, algorytm planowania (SSTF, SCAN, LOOK, N-step-SCAN, FSCAN), RAID, paskowanie. | ||
# Współbieżność (1 godz.) | # [[SOP_wyk_nr_11-toc|Współbieżność i synchronizacja procesów]] (1 godz.) | ||
#* Treść wykładu | #* Treść wykładu | ||
#*# Istota przetwarzania współbieżnego i synchronizacji | #*# Istota przetwarzania współbieżnego i synchronizacji |
Wersja z 10:36, 16 sie 2006
Forma zajęć
wykład (30 godzin) + laboratorium (30 godzin)
Opis
Celem przedmiotu jest przedstawienie roli i zadań systemu operacyjnego w oprogramowaniu komputera oraz omówienie zagadnień realizacji — algorytmów, struktur danych i ich implementacji. Prezentowane są techniki zarządzania podstawowymi zasobami sprzętowymi komputera — procesorem, pamięcią operacyjną oraz wirtualną i urządzeniami wejścia-wyjścia — oraz ich wpływ na efektywność funkcjonowania systemu jako całości. W kontekście zarządzania zasobami wprowadzana jest również koncepcja procesu oraz wątku. Następnie omawiana jest koncepcja pliku oraz realizacja systemu plików — warstwy logicznej i fizycznej — wraz z przykładami konkretnych implementacji (CP/M, FAT-12/16/32, ISO 9660, Unix, NTFS). Osobnym zagadnieniem, integralnie związanym z realizacją systemu operacyjnego, jest współbieżności i synchronizacja w sensie koordynacji przepływu sterowania. W kontekście podstawowych problemów synchronizacji, takich jak wzajemne wykluczania oraz ograniczone buforowanie, omawiane są podejścia do synchronizacji procesów bazujące na współdzielonych zmiennych, podejścia wspierane przez system operacyjny — semafory, oraz podejścia wymagające wsparcia w konstrukcjach programowych języków wysokopoziomowych — monitory, regiony krytyczne i spotkania (ang. rendezvous). Następnie realizowane są zadania, polegające na zastosowaniu omawianych mechanizmów do rozwiązania klasycznych problemów synchronizacji (problem producenta-konsumenta, czytelników i pisarzy, pięciu filozofów, śpiących fryzjerów itp.). Omawiany jest również problem wynikający z dostępu współbieżnych procesów do zasobów — zakleszczenie oraz podejścia do rozwiązywania tego problemu.
Sylabus
Autorzy
- Jerzy Brzeziński
- Dariusz Wawrzyniak
Wymagania wstępne
- Wstęp do programowania
- Umiejętność programowania w języku C
- Elementarna wiedza z zakresu architektur komputerów
Zawartość
Wykład
- Rola i zadania systemu operacyjnego oraz jego umiejscowienie w strukturze oprogramowania systemu komputerowego
- Klasyfikacja systemów operacyjnych
- Ogólna zasada działania systemu operacyjnego — sposób przekazywania sterowania do programu jądra
- Koncepcja procesu i zasobu oraz ich opis i identyfikacja
- Zarządzanie procesorem — szeregowanie zadań
- Zarządzanie pamięcią operacyjną — podział pamięci, przydział, zjawisko fragmentacji, segmentacja i stronicowanie
- Realizacja pamięci wirtualnej — obsługa błędu strony, problem wymiany stron i wznawiania rozkazów, implementacja algorytmów wymiany
- Zarządzanie urządzeniami wejścia-wyjścia — podsystem wejścia-wyjścia, sposoby interakcji jednostki centralnej z urządzeniami wejścia-wyjścia, buforowanie i spooling
- Urządzenia dyskowe — funkcjonowanie i parametry dysku, algorytmy sterowania ruchem głowic, macierze dyskowe
- System plików — pojęcie pliku, jego struktury i typu, organizacja logiczna systemu plików, organizacja fizyczna systemu plików, przykłady implementacji
- Ochrona zasobów — domeny ochrony, macierz dostępów i jej implementacja
- Współbieżność — instrukcje atomowe, przeplot i istota synchronizacji
- Poprawność programów współbieżnych — bezpieczeństwo i żywotność
- Wzajemne wykluczanie — algorytmy Dekkera, Dijkstry, Petersona, Lamporta
- Instrukcje atomowe test&set oraz exchange
- Semafory — klasyfikacja i implementacja
- Mechanizmy standardu POSIX (rygle, zmienne warunkowe)
- Monitory i regiony krytyczne
- Zakleszczenie — warunki konieczne, zapobieganie, unikanie, detekcja i usuwanie.
Laboratorium
- Użytkowanie uniksopodobnego systemu operacyjnego: poruszanie się w systemie plików, obsługa plików i katalogów, obsługa procesów, potoki i filtry, skrypty powłoki
- Programowanie z wykorzystaniem funkcji jądra uniksopodobnego systemu operacyjnego: tworzenie i dostęp do plików, tworzenie i obsługa procesów, uruchamianie programów, wątki i ich synchronizacja, sygnały, komunikacja strumieniowa za pośrednictwem łączy, mechanizmy grupy IPC
Literatura
Wykład
- G. Nutt. Operating Systems. A Modern Perspective. wydanie 2, Addison Wesley Longman, Inc., 2002.
- W. Stallings. Systemy operacyjne. Robomatic, Wrocław, 2004.
- L. Bic, A. C. Shaw. The Logical Design of Operating Systems. Prentice-Hall, Inc, 1988.
- A. Silberschatz, J.L. Peterson, G. Gagne. Podstawy systemów operacyjnych. WNT, Warszawa, 2005.
- A. S. Tanenbaum. Modern Operating Systems. wydanie 2, Prentice-Hall, Inc, 2001.
- M. J. Bach. Budowa systemu operacyjnego Unix®. WNT, Warszawa, 1995.
- B. Goodheart, J. Cox. Sekrety magicznego ogrodu. UNIX® System V Wersja 4 od środka. WNT, Warszawa, 2001.
- U. Vahalia. Jądro systemu UNIX®. Nowe horyzonty. WNT, Warszawa, 2001.
- D. A. Solomon, M. E. Russinovich. Microsoft Windows® 2000 od środka. Helion, Gliwice, 2003.
- R. Lowe. Kernel Linux. Przewodnik programisty. Helion, Gliwice, 2004.
Laboratorium — użytkowanie
- C. Sobaniec. System operacyjny Linux — przewodnik użytkownika. Nakom, Poznań, 2002.
- J. Marczyński. UNIX użytkowanie i administrowanie. wydanie 2, Helion, Gliwice, 2000.
- P. Silvester. System operacyjny Unix™. WNT, Warszawa, 1990.
- Z. Królikowski, M. Sajkowski. UNIX dla początkujących i zaawansowanych. Nakom, Poznań, 1996.
Laboratorium — programowanie
- W. R. Stevens. Programowania w środowisku systemu UNIX. WNT, Warszawa, 2002.
- J. S. Gray. Komunikacja między procesami w Unixie. ReadMe, Warszawa, 1998.
- M. J. Rochkind. Programowanie w systemie Unix dla zaawansowanych. WNT, Warszawa, 1993.
- Z. Guźlewski, T. Weiss. Programowanie współbieżne i rozproszone w przykładach i zadaniach. WNT, Warszawa, 1993.
- R. W. Stevens. Programowanie zastosowań sieciowych w systemie Unix. WNT, Warszawa, 1995.
- M. Gabassi, B. Dupouy. Przetwarzanie rozproszone w systemie Unix. Lupus, Warszawa, 1995.
Moduły
Wykład
- Wstęp (2 godz.)
- Treść wykładu
- Definicja systemu operacyjnego
- Miejsce systemu operacyjnego w organizacji oprogramowania komputera
- Ogólna struktura systemu operacyjnego
- Zadania systemu operacyjnego
- Klasyfikacja systemów operacyjnych
- Zasada działania systemu operacyjnego
- Najważniejsze pojęcia i zagadnienia: wielowarstwowa organizacja oprogramowania komputera, system operacyjny (wsadowy, interaktywny, wielozadaniowy), jądro systemu operacyjnego, cykl rozkazowy, przerwanie (zewnętrzne, programowe, diagnostyczne), ochrona pamięci.
- Treść wykładu
- Procesy, zasoby i wątki (2 godz.)
- Treść wykładu
- Koncepcja procesu i zasobu
- Zarządca procesów i zarządca zasobu
- Struktury danych na potrzeby zarządzania procesami i zasobami
- Klasyfikacja zasobów
- Stany procesu i cykl zmian stanów
- Kolejki procesów
- Przełączanie kontesktu
- Planiści: krótkoterminowy, śrdednioterminowy i długoterminowy
- Wątki
- Użytkownicy
- Najważniejsze pojęcia i zagadnienia: proces, kontekst procesu, deskryptor procesu, zarządca procesów, stan procesu, kolejka procesów, planista, zasób (odzyskiwalny, nieodzyskiwalny, wywłaszczalny, niewywłaszczalny), deskryptor zasobu, zarządca zasobu, wątek, użytkownik (końcowy, programista, administrator).
- Treść wykładu
- Planowanie przydziału procesora (3 godz.)
- Treść wykładu
- Ogólna koncepcja planowania przydziału procesora
- Komponenty jądra na potrzeby planowania przydziału procesora
- Planowanie wywłaszczające i niewywłaszczające
- Funkcja priorytetu i jej parametry
- Kryteria oceny algorytmów planowania przydziału procesora
- Przykłady algorytmów planowania przydziału procesora
- Implementacja algorytmów planowania
- Planowanie przydziału procesora w systemach Unix, Linux i Windows
- Najważniejsze pojęcia i zagadnienia: priorytet procesu, wywłaszczanie, planowanie priorytetowe, planowanie rotacyjne, wykorzystanie procesora, przepustowość, czas oczekiwania, czes reakcji, czas cyklu przetwarzania.
- Treść wykładu
- Przykłady implementacji planowania przydziału procesora
- Zarządzanie pamięcią operacyjną (2 godz.)
- Treść wykładu
- Pamięć a przestrzeń adresowa
- Obraz procesu w pamięci
- Problem ochrony i współdzielenia pamięci
- Podział i przydział pamięci
- Fragmentacja
- Stronicowanie i segmentacja
- Najważniejsze pojęcia i zagadnienia: hierachia pamięci, przestrzeń adresowa, adres logiczny i fizyczny, wiązanie adresu, transformacja adresu, fragmentacja pamięci (zewnętrzna i wewnętrzna), strona pamięci, segment pamięci.
- Treść wykładu
- Pamięć wirtualna (3 godz.)
- Treść wykładu
- Stronicowanie na żądanie
- Błąd strony i jego obsługa
- Problem zastępowania i wznawiania rozkazów
- Algorytmy wymiany i ich klasyfikacja
- Anomalia Belady'ego
- Problemy implementacji algorytmów wymiany
- Zarządzanie pamięcią w systemach Unix, Linux i Windows
- Najważniejsze pojęcia i zagadnienia: stronicowanie na żądanie, bit poprawności, błąd strony, wymiana stron, problem wznawiania rozkazów, bit modyfikacji, bit odniesienia, algorytm wymiany, zbiór roboczy, wstępne sprowadzanie, efektywność działania systemu pamięci wirtualnej.
- Treść wykładu
- Urządzenia wej-wyj (2 godz.)
- Treść wykładu
- Właściwości i klasyfikacja urządzeń wejścia-wyjścia
- Struktura mechanizmu wejścia-wyjścia
- Interakcja jednostki centralnej z urządzeniami wejścia-wyjścia
- odpytywanie
- sterowanie przerwaniami
- bezpośredni dostęp do pamięci
- Buforowanie, spooling i przechowywanie podręczne
- Wirtualne wejście-wyjście
- Najważniejsze pojęcia i zagadnienia: sterownik, moduł sterujący, odpytywanie, przerwania od urządzeń, bezpośredni dostęp do pamięci, buforowanie, spooling, przechowywanie podręczne.
- Treść wykładu
- System plików — warstwa logiczna (4 godz.)
- System plików — warstwa fizyczna
- System plików — przykłady implementacji
- Treść wykładów
- Pojęcie pliku i jego atrybuty
- Atrybuty plik
- Logiczny i fizyczny obraz pliku
- Metody dostępu do pliku
- Podstawowe operacje na plikach
- Uniksowy interfejs dostępu do pliku
- Logiczna organizacja systemu plików
- Urządzenia o dostępie sekwencyjnym i bezpośrednim
- Budowa i parametry dysku
- Czas dostępu do danych na dysku
- Metody (algorytmy) planowania dostępu do dysku
- Macierze dyskowe
- Fizyczna organizacja systemu plików na dysku
- przydział miejsca na dysku
- zarządzanie wolną przestrzenią
- implementacja katalogu
- Przechowywanie podręczne w systemie plików
- Integralność systemu plików
- Semantyka spójności i synchronizacja współbieżnego dostępu do pliku
- Przykłady implementacji systemu plików (CP/M, FAT, ISO 9660, Unix, NTFS)
- Najważniejsze pojęcia i zagadnienia: plik, typ pliku, struktura pliku, dostęp sekwencyjny, dostęp bezpośredni, dostęp indeksowy, strefa, katalog, przydział ciągły, przydział listowy, przydział indeksowy, FAT, cylinder, ścieżka, sektor, pozycjonowanie, czas wyszukiwania, opóźnienie obrotowe, algorytm planowania (SSTF, SCAN, LOOK, N-step-SCAN, FSCAN), RAID, paskowanie.
- Treść wykładów
- Współbieżność i synchronizacja procesów (1 godz.)
- Treść wykładu
- Istota przetwarzania współbieżnego i synchronizacji
- Poprawność programów współbieżnych
- Klasyfikacja mechanizmów synchronizacji
- mechanizmy operate na zmiennych współdzielonych
- mechanizmy wspierane przez system operacyjny
- mechanizmy ze wsparciem językowym
- Główne problemy synchronizacji procesów (wzajemne wykluczanie, ograniczone buforowanie)
- Najważniejsze pojęcia i zagadnienia: instrukcja atomowa, przeplot, bezpieczeństwo, żywotność, uczciwość, wzajemne wykluczanie (sekcja krytyczna), ograniczone buforowanie.
- Treść wykładu
- Wzajemne wykluczanie (2 godz.)
- Treść wykładu
- Definicja problemu wzajemnego wykluczania (sekcji krytycznej)
- Schemat algorytmu wzajemnego wykluczania
- Klasyczne algorytmy wzajemnego wykluczania oparte o zapis/odczyt zmiennych współdzielonych
- algorytm Dekkera
- algorytm Dijkstry
- algorytm Petersona
- algorytm Lamporta
- Rozwiązanie problemu wzajemnego wykluczania w oparciu o instrukcje
test&set
orazexchange
- Najważniejsze pojęcia i zagadnienia: poprawność algorytmu wzajmnego wykluczania (bezpieczeństwo, postęp, ograniczone czekanie), aktywne czekanie, wsparcie sprzętowe w rozwiązaniu problemu wzajemnego wykluczania.
- Treść wykładu
- Mechanizmy synchronizacji wspierane przez system operacyjny (2 godz.)
- Treść wykładu
- Definicja i klasyfikacja semaforów
- Implementacja semaforów
- Zastosowanie semaforów do rozwiązania głównych problemów synchronizacji procesów
- Mechanizmy synchronizacji wątków standardu POSIX
- zamki (rygle, ang. locks, mutex locks)
- zmienne warunkowe (ang. conditionals)
- Zastosowanie mechanizmów POSIX do rozwiązania głównych problemów synchronizacji procesów
- Najważniejsze pojęcia i zagadnienia: semafor ogólny, semafor binarny, podnoszenie i opuszczanie semafora, zamek, zmienna warunkowa.
- Treść wykładu
- Mechanizmy synchronizacji ze wsparciem językowym (1 godz.)
- Treść wykładu
- Monitory (definicja i zasada działania)
- Zastosowanie monitorów do rozwiązania problemu ograniczonego buforowania
- Regiony krytyczne
- Zastosowanie regionów krytycznych do rozwiązania problemu ograniczonego buforowania
- Najważniejsze pojęcia i zagadnienia: monitor, zmienna warunkowa w monitorze, region krytyczny, warunkowy region krytyczny.
- Treść wykładu
- Zakleszczenie (4 godz.)
- Treść wykładu
- Definicja problemu zakleszczenia
- Warunki konieczne wystąpienia zakleszczenia
- Graf przydziału zasobów
- Rozwiązywanie problemu zakleszczenia
- zapobieganie zakleszczeniom
- unikanie zkleszczeń
- detekcja i likwidacja zakleszczeń
- Podejście hybrydowe do rozwiązywania problemu zakleszczenia
- Najważniejsze pojęcia i zagadnienia: stan osiągalny, zablokowanie procesu, warunki konieczne wystąpienia zakleszczenia, zapobieganie zakleszczeniom, unikanie zakleszczeń, algorytm Bankiera, graf oczekiwania, likwidacja zakleszczenia (usuwanie procesów, wywłaszczanie zasobów)
- Treść wykładu
- Ochrona zasobów (1 godz.)
- Treść wykładu
- Cel ochrony
- Polityka i mechanizm
- Domenty ochrony
- Macierz dostępu
- Implementacja macierzy dostępu
- Najważniejsze pojęcia i zagadnienia: polityka ochrony, mechanizm ochrony, prawo dostępu, domena ochrony, macierz dostępu, przenoszenie praw dostępu, prawo własności, prawo kontroli, lista kontroli dostępów (ang. access kontrol list), lista uprawnień (capability list), mechanizm zamka i klucza.
- Treść wykładu
Laboratorium
Użytkowanie uniksopodobnego systemu operacyjnego (Linux)
- Instalacja systemu operacyjnego (1 godz.) - PDF
- Treść zajęć laboratoryjnych
- Instalacja systemu
- Podział na partycje
- Program ładujący
- Treść zajęć laboratoryjnych
- Wstęp oraz obsługa plików i katalogów (3 godz.) - PDF
- Treść zajęć laboratoryjnych
- Logowanie do systemu
- Pomoc systemowa – polecenie
man
- Programy pomocnicze -- polecenia
whatis
,whereis
,apropos
- Znaki specjalne
- Struktura katalogów w systemie
- Przemieszczanie się po strukturze katalogów – polecenia:
pwd
,ls
,cd
- Tworzenie, usuwanie, zmiana nazwy plików – polecenia
touch
,rm
,mv
,cp
- Tworzenie, usuwanie, zmiana nazwy katalogów – polecenia
mkdir
,rmdir
- Wyszukiwanie plików – polecenia
locate
,find
- Dowiązania – polecenie
ln
- Opanowane umiejętności: logowanie, korzystanie z pomocy systemowej, poruszanie się w systemie plików, kopiowanie, usuwanie i przesuwanie plików, tworzenie i usuwanie katalogów, przeszukiwanie systemu plików.
- Treść zajęć laboratoryjnych
- Obsługa procesów w systemie (1 godz.) - PDF
- Treść zajęć laboratoryjnych
- Identyfikatory procesów w systemie operacyjnym
- Lista procesów w systemie – polecenie
ps
- Hierarchia procesów w systemie – polecenie
pstree
- Wyszukiwanie procesów – polecenie
pgrep
- Priorytety procesów – polecenia
nice
,renice
- Uruchamianie procesów w tle – znak
&
i poleceniafg
,bg
- Sygnały i ich obsługa
- Opanowane umiejętności: wyszukiwanie i identyfikacja procesów, usuwanie (zabijanie) procesów, zmiana priorytetu, uruchamianie procesów pierwszo- i drugoplanowych.
- Treść zajęć laboratoryjnych
- Filtry, strumienie standardowe oraz przetwarzanie potokowe (4 godz.) - PDF
- Treść zajęć laboratoryjnych
- Strumienie standardowe i ich przekierowywanie
- Podstawowe filtry – polecenia
cat
,head
,tail
,grep
,wc
,tr
,cut
,sort
,uniq
- Przetwarzanie potokowe z zastosowaniem filtrów systemowych
- Opanowane umiejętności: uruchamianie procesów z przekierowaniem wejścia lub wyjścia do pliku, łączenie procesów w potoki, zastosowanie podstawowych filtrów
- Treść zajęć laboratoryjnych
- Tworzenie skryptów powłoki systemu operacyjnego (4 godz.) - PDF
- Treść zajęć laboratoryjnych
- Zmienne środowiskowe oraz ich eksportowanie – polecenia
set
,env
,echo
,export
- Argumenty wywołania skryptów
- Instrukcja warunkowa
- Pętle
while
orazfor
- Pobieranie wartości w trakcie wykonywania skryptów
- Uruchamianie skryptów z debugowaniem
- Zmienne środowiskowe oraz ich eksportowanie – polecenia
- Opanowane umiejętności: tworzenie skryptów w języku powłoki, urchamianie skryptów, przekazywanie i obsługa parametrów.
- Treść zajęć laboratoryjnych
Programowanie w języku C z wykorzystaniem funkcji jądra uniksopodobnego systemu operacyjnego (Linux)
- Obsługa systemu plików (2 godz.) - PDF
- Treść zajęć laboratoryjnych
- Otwieranie plików i ich deskryptory – funkcja
open
- Tworzenie plików
- Odczyt i zapis do plików – funkcje
read
,write
- Implementacja przykładowych programów obsługi plików
- Otwieranie plików i ich deskryptory – funkcja
- Opanowane umiejętności: tworzenie plików oraz dostęp do zawartości plików.
- Treść zajęć laboratoryjnych
- Obsługa procesów w systemie (2 godz.) - PDF
- Treść zajęć laboratoryjnych
- Procesy macierzyste i potomne
- Tworzenie procesów potomnych – funkcja
fork
,wait
- Uruchamianie programów – funkcje
exec
- Przekierowywanie strumieni standardowych
- Implementacja przykładowych programów obsługi procesów
- Opanowane umiejętności: tworzenie procesów, urchamianie programów w procesach oraz przekierowanie wyników standardowych programów uniksowych do pliku.
- Treść zajęć laboratoryjnych
- Obsługa potoków (4 godz.) - PDF
- Treść zajęć laboratoryjnych
- Tworzenie potoków nienazwanych – funkcja
pipe
- Tworzenie potoków nienazwanych – funkcja
mkfifo
- oraz ich otwieranie - Przykłady przetwarzania potokowego
- Implementacja przykładowych programów obsługi potoków
- Tworzenie potoków nienazwanych – funkcja
- Opanowane umiejętności: realizacja komunikacji potokowej (strumieniowej) między lokalnymi procesami.
- Treść zajęć laboratoryjnych
- Tworzenie i obsługa wątków (4 godz.) - PDF
- Treść zajęć laboratoryjnych
- Tworzenie wątków – funkcja
pthread_create
- Przekazywanie parametrów do funkcji wątków i pobieranie wyników – funkcaj
pthread_join
- Synchronizacja wątków – grupa funkcji
pthread_mutex
ipthread_cond
- Implementacja przykładowych programów obsługi wątków
- Tworzenie wątków – funkcja
- Opanowane umiejętności: tworzenie i usuwanie wątków, synchronizacja wątków (wzajemne wykluczanie, usypianie i budzenie).
- Treść zajęć laboratoryjnych
- Mechanizmy IPC: kolejki komunikatów (2 godz.) - PDF
- Treść zajęć laboratoryjnych
- Tworzenie kolejek komunikatów – funkcja
msgget
- Wysyłanie i odbieranie komunikatów – funkcje
msgsnd
,msgrcv
- Parametry i usuwanie kolejek komunikatów – funkcja
msgctl
- Obsługa mechanizmów IPC w konsoli systemu – polecenia
ipcs
,ipcrm
- Implementacja przykładowych programów obsługi kolejek komunikatów
- Tworzenie kolejek komunikatów – funkcja
- Opanowane umiejętności: realizacja przekazywania komunikatów pomiędzy lokalnymi procesami.
- Treść zajęć laboratoryjnych
- Mechanizmy IPC: pamięć współdzielona (2 godz.) - PDF
- Treść zajęć laboratoryjnych
- Tworzenie i obsługa pamięci współdzielonej – funkcja
shmget
- Przyłączanie pamięci współdzielonej do procesu – funkcja
shmat
- Odłączanie pamięci współdzielonej od procesu – funkcja
shmdt
- Parametry pamięci współdzielonej – funkcja
shmctl
- Implementacja przykładowych programów obsługi pamięci współdzielonej
- Tworzenie i obsługa pamięci współdzielonej – funkcja
- Opanowane umiejętności: tworzenie i udstępnianie segmentów pamięciu w celu przkazywania danych pomiędzy lokalnymi procesami
- Treść zajęć laboratoryjnych
- Mechanizmy IPC: semafory (2 godz.) - PDF
- Treść zajęć laboratoryjnych
- Zasada działania semaforów binarnych i uogólnionych
- Tworzenie semaforów – funkcja
semget
- Operacje na semaforach – funkcja
semop
- Parametry semaforów i ich inicjowanie – funkcja
semctl
- Przykłady podstawowych problemów synchronizacji
- Implementacja przykładowych programów z synchronizacją wykorzystująca semafory
- Opanowane umiejętności: tworzenie i inicjalizowanie semafrów w celu synchronizacji współbieżnych procesów (między innymi w dostępie do współdzielonej pamięci).
- Treść zajęć laboratoryjnych