Przejdź do treści

SCR Systemy Operacyjne L/S 2018/2019

Punktacja


 

Tematy prezentacji

Grupa: wtorek 17:05
  • 27.11.18
    • Aleksander A. Podsystem Windows dla systemu Linux
    • Mikołaj W. Podpisy cyfrowe
  • 04.12.18
    • Wojciech S. Wykorzystanie Lua w C/C++
    • Miłosz C. Yocto – tworzenie własnego systemu
    • Patrycja B. GRUB – czym jest i jak go skonfigurować
    • Mateusz Z. Architektura procesorów
    • Mariusz K. Ochrona systemów operacyjnych przed utratą danych
  • 11.12.18
    • Filip D. Algorytm RSA
    • Łukasz P. Filozofia Javy
    • Artur K. Android – system operacyjny na urządzenia mobilne
    • Mariusz P. Wewnętrzna budowa mikrokontrolera
    • Piotr B. Systemy rozproszone
  • 18.12.18
    • Wojciech K. Armia hakerów Korei Północnej
    • Radosław B. VPN
    • Mateusz P. Wzorce projektowe i dobre praktyki pisania kodu
    • Michał P.Czy inteligentne domy i pojazdy są bezpieczne?
    • Filip M. Bezpieczeństwo w systemach komputerowych
  • 08.01.19
    • Robert K. Dystrybucje Linuxa
    • Damian S. Test Driven Development jako technika wytwarzania oprogramowania
    • Rafał W. Systemy operacyjne czasu rzeczywistego i ich zastosowania
    • Maciej G. Maszyny wirtualne – rodzaje i zastosowania
  • 15.01.19
    • Marcel S. Sieci neuronowe
    • Paweł K. Darknet: zastosowania, niebezpieczeństwa, przeglądarka Tor
    • Paweł P. Komputery w kosmosie
    • Aleksandra R. Protokół Kerberos
  • 22.01.19
    • Tomasz D. Przyszłość technologii blockchain – praktyczne zastosowania łańcucha bloków
    • Dawid P. Linux jako podstawa oprogramowania do nowoczesnych samochodów
    • Maciej J. Programowanie funkcyjne
  • 29.01.19
    • Sebastian Z. Szyfrowanie SSL

 

Komunikacja między procesami – szkielet

[code lang=”cpp”]
#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
}
[/code]

Kryteria oceny – laboratorium

Lista nr 8

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

Max 10 pkt

Lista nr 9
  • 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 10 pkt

Lista nr 10
  • 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
 

Skala ocen

5.5   >=  100%
5.0  >=  90%
4.5  >=  80%
4.0  >=  70%
3.5  >=  60%
3.0  >=  50%

Strona kursu