Systemy operacyjne: Różnice pomiędzy wersjami
opis części modułów wykładowych |
opis modułów laboratoryjnych |
||
Linia 138: | Linia 138: | ||
=== Laboratorium === | === Laboratorium === | ||
==== Użytkowanie uniksopodobnego systemu operacyjnego (Linux) ==== | |||
# Wstęp oraz obsługa plików i katalogów (3 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Logowanie do systemu | |||
#*# Pomoc systemowa – polecenie <code>man</code> | |||
#*# Programy pomocnicze -- polecenia <code>whatis</code>, <code>whereis</code>, <code>apropos</code> | |||
#*# Znaki specjalne | |||
#*# Struktura katalogów w systemie | |||
#*# Przemieszczanie się po strukturze katalogów – polecenia: <code>pwd</code>, <code>ls</code>, <code>cd</code> | |||
#*# Tworzenie, usuwanie, zmiana nazwy plików – polecenia <code>touch</code>, <code>rm</code>, <code>mv</code>, <code>cp</code> | |||
#*# Tworzenie, usuwanie, zmiana nazwy katalogów – polecenia <code>mkdir</code>, <code>rmdir</code> | |||
#*# Wyszukiwanie plików – polecenia <code>locate</code>, <code>find</code> | |||
#*# Dowiązania – polecenie <code>ln</code> | |||
#* 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. | |||
# Obsługa procesów w systemie (1 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Identyfikatory procesów w systemie operacyjnym | |||
#*# Lista procesów w systemie – polecenie <code>ps</code> | |||
#*# Hierarchia procesów w systemie – polecenie <code>pstree</code> | |||
#*# Wyszukiwanie procesów – polecenie <code>pgrep</code> | |||
#*# Priorytety procesów – polecenia <code>nice</code>, <code>renice</code> | |||
#*# Uruchamianie procesów w tle – znak <code>&</code> i polecenia <code>fg</code>, <code>bg</code> | |||
#*# 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. | |||
# Filtry, strumienie standardowe oraz przetwarzanie potokowe (4 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Strumienie standardowe i ich przekierowywanie | |||
#*# Podstawowe filtry – polecenia <code>cat</code>, <code>head</code>, <code>tail</code>, <code>grep</code>, <code>wc</code>, <code>tr</code>, <code>cut</code>, <code>sort</code>, <code>uniq</code> | |||
#*# 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 | |||
# Tworzenie skryptów powłoki systemu operacyjnego (4 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Zmienne środowiskowe oraz ich eksportowanie – polecenia <code>set</code>, <code>env</code>, <code>echo</code>, <code>export</code> | |||
#*# Argumenty wywołania skryptów | |||
#*# Instrukcja warunkowa | |||
#*# Pętle <code>while</code> oraz <code>for</code> | |||
#*# Pobieranie wartości w trakcie wykonywania skryptów | |||
#*# Uruchamianie skryptów z debugowaniem | |||
#* Opanowane umiejętności: tworzenie skryptów w języku powłoki, urchamianie skryptów, przekazywanie i obsługa parametrów. | |||
==== Programowanie w języku C z wykorzystaniem funkcji jądra uniksopodobnego systemu operacyjnego (Linux) ==== | |||
# Obsługa systemu plików (2 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Otwieranie plików i ich deskryptory – funkcja <code>open</code> | |||
#*# Tworzenie plików | |||
#*# Odczyt i zapis do plików – funkcje <code>read</code>, <code>write</code> | |||
#*# Implementacja przykładowych programów obsługi plików | |||
#* Opanowane umiejętności: tworzenie plików oraz dostęp do zawartości plików. | |||
# Obsługa procesów w systemie (2 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Procesy macierzyste i potomne | |||
#*# Tworzenie procesów potomnych – funkcja <code>fork</code>, <code>wait</code> | |||
#*# Uruchamianie programów – funkcje <code>exec</code> | |||
#*# 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. | |||
# Obsługa potoków (4 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Tworzenie potoków nienazwanych – funkcja <code>pipe</code> | |||
#*# Tworzenie potoków nienazwanych – funkcja <code>mkfifo</code> - oraz ich otwieranie | |||
#*# Przykłady przetwarzania potokowego | |||
#*# Implementacja przykładowych programów obsługi potoków | |||
#* Opanowane umiejętności: realizacja komunikacji potokowej (strumieniowej) między lokalnymi procesami. | |||
# Tworzenie i obsługa wątków (4 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Tworzenie wątków – funkcja <code>pthread_create</code> | |||
#*# Przekazywanie parametrów do funkcji wątków i pobieranie wyników – funkcaj <code>pthread_join</code> | |||
#*# Synchronizacja wątków – grupa funkcji <code>pthread_mutex</code> i <code>pthread_cond</code> | |||
#*# Implementacja przykładowych programów obsługi wątków | |||
#* Opanowane umiejętności: tworzenie i usuwanie wątków, synchronizacja wątków (wzajemne wykluczanie, usypianie i budzenie). | |||
# Mechanizmy IPC: kolejki komunikatów (2 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Tworzenie kolejek komunikatów – funkcja <code>msgget</code> | |||
#*# Wysyłanie i odbieranie komunikatów – funkcje <code>msgsnd</code>, <code>msgrcv</code> | |||
#*# Parametry i usuwanie kolejek komunikatów – funkcja <code>msgctl</code> | |||
#*# Obsługa mechanizmów IPC w konsoli systemu – polecenia <code>ipcs</code>, <code>ipcrm</code> | |||
#*# Implementacja przykładowych programów obsługi kolejek komunikatów | |||
#* Opanowane umiejętności: realizacja przekazywania komunikatów pomiędzy lokalnymi procesami. | |||
# Mechanizmy IPC: pamięć współdzielona (2 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Tworzenie i obsługa pamięci współdzielonej – funkcja <code>shmget</code> | |||
#*# Przyłączanie pamięci współdzielonej do procesu – funkcja <code>shmat</code> | |||
#*# Odłączanie pamięci współdzielonej od procesu – funkcja <code>shmdt</code> | |||
#*# Parametry pamięci współdzielonej – funkcja <code>shmctl</code> | |||
#*# Implementacja przykładowych programów obsługi pamięci współdzielonej | |||
#* Opanowane umiejętności: tworzenie i udstępnianie segmentów pamięciu w celu przkazywania danych pomiędzy lokalnymi procesami | |||
# Mechanizmy IPC: semafory (2 godz.) | |||
#* Treść zajęć laboratoryjnych | |||
#*# Zasada działania semaforów binarnych i uogólnionych | |||
#*# Tworzenie semaforów – funkcja <code>semget</code> | |||
#*# Operacje na semaforach – funkcja <code>semop</code> | |||
#*# Parametry semaforów i ich inicjowanie – funkcja <code>semctl</code> | |||
#*# 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). |
Wersja z 23:50, 15 cze 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
Autor
- 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
- Monitory
- Regiony krytyczne
- Spotkania
- Zakleszczenie — warunki konieczne, zapobieganie, unikanie, detekcja i usuwanie.
Ćwiczenia
- Użytkowanie systemu operacyjnego Unix: 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 systemowych jądra Unixa: 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.
Ćwiczenia — 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.
Ćwiczenia — 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
- 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 i zasoby
- 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
- Szeregowanie
- 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
- Zarządzanie pamięcią
- 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
- 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
- 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
- Dyski
- System plików
- Współbieżność
- Wzajemne wykluczanie
- Semafory
- Monitory i regiony krytyczne
- Zakleszczenie
- Ochrona
Laboratorium
Użytkowanie uniksopodobnego systemu operacyjnego (Linux)
- Wstęp oraz obsługa plików i katalogów (3 godz.)
- 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.)
- 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.)
- 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.)
- 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.)
- 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.)
- 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.)
- 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.)
- 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.)
- 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.)
- 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.)
- 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