Punktacja
Tematy prezentacji
Grupa: wtorek 7:30
- 21.11.17
- 28.11.17
- P. Knapik, Zasada działania i zastosowania RTOS'ów na przykładzie FreeRTOS i mikrokontrolera STM32
- P. Rzepka, Android - system operacyjny na urządzenia mobilne
- 5.12.17
- M. Malec, Mobilne systemy operacyjne
- A. Zema, Macierzyste systemy plików
- J. Kosowski, Protokół Kerberos
- D. Czajkowski, GRUB - czym jest i jak go skonfigurować
- B. Klag, VPN
- 12.12.17
- W. Sobieszek, Zalety i wady platform gier komputerowych
- P. Marczewski, Wirtualizacja serwerów i kontenery
- P. Szczepański, Porównanie platform embedded w zastosowaniach IoT
P. Dłuski, ...- K. Dudziak, Czy inteligentne domy i pojazdy są bezpieczne?
- 19.12.17
- J. Machowski, Budowa centrum multimedialnego w oparciu o system openELEC i program Kodi
- T. Kiewra, Wydajność systemów operacyjnych
- M. Babski, Konie trojańskie - trojany
- W. Lisowski, Jądro linuxa
- B. Michalak, Wstęp do ROS'a - czyli robot z własnym systemem operacyjnym
- 9.01.18
- A. Hajdasz, Bezpieczeństwo w systemach komputerowych - szyfrowanie, podpisy cyfrowe
- K. Dembski, Maszyny wirtualne - rodzaje i zastosowania
- R. Orozco, Algorytmy szeregowania zadań w rozproszonych systemach komputerowych
- J. Kuśka, Metody włamań do systemów komputerowych
- N. Herkt, Rootowanie systemu Android
- 16.01.18
- B. Jakubowski, Exploity i rootkity
- M. Drząkowski, Bezpieczeństwo danych, kopie zapasowe
- N. Celiński, Python - czyli język do szybkich rozwiązań
- A. Postawka, Podsystem Windows dla systemu Linux
- C. Królikowski, Machine learning
- 23.01.18
- M. Zakrzewska, Zabezpieczenia na stronach internetowych
- M. Kubica, Jak być anonimowym w internecie?
Grupa: piątek 7:30
- 01.12.17
- M. Wiadomski, Projektowanie systemów wbudowanych, wybór rozwiązania w zależności od wymagań aplikacji
- M. Żurowski, IoT - czy dobrze jest mieć dom w internecie?
- M. Szymczak, Systemy operacyjne na Raspberry Pi - ich działanie oraz możliwe wykorzystanie
- M. Głowacki, Cechy systemu plików btrfs
- 08.12.17
- J. Walecki, Konteneryzacja aplikacji; docker & kubernetes
- M. Bajger, Wirusy
- M. Rędzia, VPN
- R. Nowak, Systemy czasu rzeczywistego w przemyśle
- M. Brzozowy, Bezpieczeństwo w systemach komputerowych, odzyskiwanie danych/systemu po awarii/włamaniu
- 15.12.17
- M. Wójcik, Bezpieczeństwo w systemach komputerowych - ochrona przed atakami i złośliwym oprogramowaniem, analiza powłamaniowa
- M. Gottschling, Tego nie zobaczycie na studiach, czyli najdziwniejsze języki programowania
- P. Mędyk, Tor, VPN, serwer proxy - anonimowość w internecie
- B. Matysik, Technologia blockchain. Właściwości. Zastosowania. Przyszłość?
- R. Madeja, Sposoby wyłudzania danych w internecie
- 22.12.17
- M. Filipowicz, Wine - wszędzie tam gdzie Linux nie może
- J. Jarek, Oprogramowanie nowoczesnych samochodów
- K. Lisakowska, Środowiska graficzne
- A. Matyśkiewicz, Kontrola użytkownika w nowoczesnych systemach
- A. Paździor, Bezpieczeństwo w systemach komputerowych- szyfrowanie, algorytm RSA
- 05.01.18 (prawdopodobnie zajęcia będą musiały być przesunięte)
- A. Wiśniowski, Dystrybucje Linuxa
- A. Matyśkiewicz, Kontrola użytkownika w nowoczesnych systemach
- M. Gotszalk, Protokół Kerberos
- M. Marciniak, Algorytmy kompresji
- M. Skoczylas, Bezpieczeństwo w systemach mobilnych
- 12.01.18
- S. Kuprasz, Technologie sieciowe do zastosowań przemysłowych, systemów czasu rzeczywistego i systemów wbudowanych
- Ł. Lechowicz, Maszyny wirtualne – rodzaje, możliwości i zastosowania
- J. Cycoń, Android -System operacyjny na urządzenia mobilne
- E. Michalski, Mobilne systemy operacyjne - iOS
- F. Wojtowicz, Metody włamań do systemów komputerowych
- 19.01.18
Kryteria oceny - laboratorium
Lista nr 4
- Punktacja podana w instrukcji
Max 16 pkt
Lista nr 5
Zad 1
- Utworzenie procesu nadrzędnego i podprocesu - 2 pkt
- Utworzenie potoku i poprawne przesłanie danych między procesami - 4 pkt
- Przekierowanie strumienia stdin na potok i uruchomienie programu do wyświetlania obrazków - 2 pkt
- Styl: formatowanie kodu, odpowiednie nazwy zmiennych, kompilacja bez ostrzeżeń - 2 pkt
Zad 2
- Utworzenie potoku FIFO i poprawne przesłanie danych między procesami - 6 pkt
- Obsługa wielu plików w pętli nieskończonej - 2 pkt
- Styl: formatowanie kodu, odpowiednie nazwy zmiennych, kompilacja bez ostrzeżeń - 2 pkt
Max 20 pkt
Lista nr 6
- Utworzenie procesu nadrzędnego i podprocesu - 1 pkt
- Utworzenie pliku wymiany - 1 pkt
- Ustawienie odpowiedniej wielkości pliku wymiany - 2 pkt
- Zmapowanie pliku wymiany do obszaru pamięci - 3 pkt
- Wczytanie obrazu do zmapowanego obszaru pamięci wspólnej - 3 pkt
- Poprawne wyświetlenie kolejnych obrazów - 3 pkt
- Styl: formatowanie kodu, odpowiednie nazwy zmiennych, kompilacja bez ostrzeżeń - 2 pkt
Max 15 pkt
Lista nr 7
Max 15 pkt
Komunikacja między procesami - szkielet
#include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <sys/mman.h> #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> #define MAX_FILENAME_LEN 100 #define SHM_FILE "shm1" // It'll be placed in /dev/shm #define SHM_FILE_PATH "/dev/shm/"SHM_FILE void parent_process(); void child_process(); // The program consists of two processes: a child and a parent. // It creates the file and maps it to virtual memory adresses. // The partent process asks user for names of files which will be readed // and stored in shared memory. On the other hand, the subprocess reads // data from mapped memory and displays images. int main(void) { pid_t pid; if ((pid = fork()) == -1) { fprintf(stderr, "Error: couldn't create a subprocess.\n"); exit(-2); } if (pid > 0) { parent_process(); } else { child_process(); } return 0; } void parent_process() { char file_name[MAX_FILENAME_LEN]; // Create file used for data sharing while ((option != 'q') && (option != EOF)) { // Unmap memory if necessary printf("\nPlease enter the name of the image file.\n"); scanf("%s", file_name); if ((image_file = open(file_name, O_RDONLY)) == -1) { fprintf(stderr, "Error: Incorrect file path.\n"); exit(-3); } // Get the image file statistic and resize memory file // Create a new mapping in virtual address space // Read data from file and write it to the memory. printf("\nPush 't' to load next file. Otherwise push 'q'.\n"); while ((option = getc(stdin)) == '\n'); } } void child_process() { // Check if first image has been written and print all received images }
Sygnały
Generowanie podstawowych sygnałów:
Ctrl-C --> SIGINT (domyślnie zamyka proces)
Ctrl-Z --> SIGTSTP (domyślnie zawiesza proces)
Ctrl-\ --> SIGQUIT (domyślnie zamyka proces)
// The simple example of specific reaction definition // on received signal (SIGQUIT in this case) #include <stdio.h> #include <signal.h> #include <unistd.h> #include <stdlib.h> // The function used as a handler. void message(int sig) { printf("\nReceived signal nr=%d, sig"); } int main() { struct sigaction act; act.sa_handler = message; // Pointer to handler sigemptyset(&act.sa_mask); // Clears the mask of signals sigaction(SIGQUIT, &act, NULL); // Sets the signal bit in signals mask while (1) { sleep(2); } }
Skala ocen
5.5 >= 100%
5.0 >= 90%
4.5 >= 80%
4.0 >= 70%
3.5 >= 60%
3.0 >= 50%
Strona kursu: http://sequoia.ict.pwr.wroc.pl/~witold/opsys/