Programy: Systemy Operacyjne
Projekt
Tematem projektu jest "środowisko do kooperatywnej edycji tekstów". Składa się z serwera w C i klienta w Qt3 (C++). Kilka klientów podłącza się do jednego serwera i wspólnie edytują plik tekstowy na serwerze; wszystkie modyfikacje dokonane przez jednego użytkownika są automatycznie rozsyłane do pozostałych klientów.
Ten program jest na licencji GPL. Pełny tekst licencji można znaleźć tutaj tutaj, a bardziej czytelną wersję na Wikipedii.
- medit-server-0.2.tar.gz (12.6 KB) - kod serwera (C)
- medit-client-0.2.tar.gz (24.6 KB) - kod klienta (Qt3)
- dokumentacja.html (12.3 KB) - dokumentacja
Referat
- sysopy-sygnaly.html (15 KB) - referat o sygnałach
Laborki
Opisy poszczególnych zadań są tutaj.
- Laborka 1: shell, Awk, Sed, Perl
- zad1 (332 B) - skrypt shella, który znajduje wszystkie pliki o podanym rozszerzeniu i zmienia im rozszerzenie na inne
- zad2 (454 B) - skrypt shella, który liczy ilość procesów w terminalach i zapisuje to do pliku
- zad3a (365 B) - skrypt Seda, który zamienia wszystkie wystąpienia "Unix" na "Linux"
- zad3b (378 B) - skrypt Seda, który znajduje linie z liczbą i kropką na początku i dodaje słowo "Rozdział" przed nimi
- zad4a (402 B) - skrypt Awka, który wypisuje wybrane linie z pliku
- zad4b (98 B) - skrypt Awka, który podaje liczbę użytkowników, którzy używają shella csh
- zad4c (309 B) - skrypt Awka, który liczy ilość piątków trzynastego w podanym roku
- zad5 (502 B) - skrypt Perla, który liczy ilość wystąpień poszczególnych słów w pliku
- zad6 (576 B) - skrypt Perla, który znajduje słowo położone przed n-tym wystąpieniem danego słowa
- syst-lab1-shell.zip (2.8 KB) - wszystkie pliki
- Laborka 2: GCC, GDB i Make
- Laborka 3: pomiar czasu
- syst-lab3-time.zip (3.3 KB) - różne funkcje mierzące czas
- Laborka 4: operacje na plikach
- Laborka 5: procesy
- zad1.c (416 B) - proces rodzica tworzy proces potomny, następnie obydwa wypisują swoje zmienne środowiskowe
- monfile.c (806 B) - program, który monitoruje plik i tworzy jego kopie w przypadku jego modyfikacji
- zad3.c (883 B) - proces rodzica tworzy dwa procesy potomne, które wykonują jakieś operacje i zwracają wyniki do rodzica
- syst-lab5-process.zip (1.4 KB) - wszystkie pliki
- Laborka 6: sygnały
- sigint1.c (389 B) - program, który przechwytuje sygnał SIGINT (wersja z signal())
- sigint2.c (381 B) - program, który przechwytuje sygnał SIGINT (wersja z sigaction())
- zad2.c (851 B) - program, który tworzy kilka procesów potomych, a później ubija je SIGKILLem
- sigusr-v1.c (1.3 KB) - dwa programy komunikujące się sygnałami SIGUSR
- sigusr-v2.c (2 KB) - jw., inna wersja
- syst-lab6-signals.zip (2.7 KB) - wszystkie pliki
- Laborka 7: potoki (pipes)
- zad1.c (1.5 KB) - pisarz i czytelnik, komunikujący się przez potok
- zad2.c (1 KB) - pięć procesów potomnych komunikuje się z rodzicem przez potoki
- zad3.c (646 B) - dwa programy komunikujące się przez kolejkę FIFO
- syst-lab7-pipes.zip (1.9 KB) - wszystkie pliki
- Laborka 8: IPC
- syst-lab8-ipc.zip (1.6 KB) - klient i serwer komunikujące się przez kolejkę wiadomości IPC
- Laborka 9: pamięć dzielona
- syst-lab9-sharedmem.zip (1.4 KB) - dwa procesy komunikujące się przez obszar pamięci dzielonej
- Laborka 10: wątki (pthread)
- prod-cons.c (2.5 KB) - producent i konsument wykorzystujące wątki
- reader-writer.c (2.1 KB) - czytelnicy i pisarze wykorzystujący wątki
- Wszystko: os-all.zip (36.3 KB)
