• Nie Znaleziono Wyników

Systemy Operacyjne 2

N/A
N/A
Protected

Academic year: 2022

Share "Systemy Operacyjne 2"

Copied!
31
0
0

Pełen tekst

(1)

Systemy Operacyjne 2

laboratorium

Mateusz Hołenko

25 września 2011

(2)

Organizacja zajęć

(3)

Plan zajęć I

[26.09.2011] Zajęcia organizacyjne, Obsługa plików (1/2) [03.10.2011] Obsługa plików (2/2)

[10.10.2011] Procesy [17.10.2011] Potoki [24.10.2011] Kolejki FIFO [31.10.2011] Kolokwium I

[07.11.2011] IPC — Kolejki komunikatów

[14.11.2011] Sygnały, Opis projektu zaliczeniowego

(4)

Plan zajęć II

[21.11.2011] IPC — Pamięć współdzielona [28.11.2011] IPC — Semafory

[05.12.2011] Zadania praktyczne z synchronizacji (1/2) [12.12.2011] Kolokwium II

[19.12.2011] Zadania praktyczne z synchronizacji (2/2) [02.01.2012] Wątki

[09.01.2012] GDB (?)

[16.01.2012] Zaliczanie projektu, Wpisy

Mateusz Hołenko Systemy Operacyjne 2 [3/16]

(5)

Zasady zaliczenia

2x kolokwium zadania domowe projekt zaliczeniowy aktywność na zajęciach

Obecność

Dopuszcza się maksymalnie dwie nieusprawiedliwione nieobecności na zajęciach!

(6)

Zasady zaliczenia

2x kolokwium zadania domowe projekt zaliczeniowy aktywność na zajęciach

Obecność

Dopuszcza się maksymalnie dwie nieusprawiedliwione nieobecności na zajęciach!

Mateusz Hołenko Systemy Operacyjne 2 [4/16]

(7)

Zasady zaliczenia

2x kolokwium zadania domowe projekt zaliczeniowy aktywność na zajęciach

Obecność

Dopuszcza się maksymalnie dwie nieusprawiedliwione nieobecności na zajęciach!

(8)

Zasady zaliczenia

2x kolokwium zadania domowe projekt zaliczeniowy aktywność na zajęciach

Obecność

Dopuszcza się maksymalnie dwie nieusprawiedliwione nieobecności na zajęciach!

Mateusz Hołenko Systemy Operacyjne 2 [4/16]

(9)

Materiały

http://www.cs.put.poznan.pl/akobusinska/

http://www.cs.put.poznan.pl/csobaniec/

http://www.cs.put.poznan.pl/dwawrzyniak/

http://www.cs.put.poznan.pl/sop/

http://www.cs.put.poznan.pl/mholenko/

Warto zobaczyć

http://www.refcards.com/

(10)

Środowisko pracy

(11)

Środowisko pracy

1 Wymagania systemowe

2 Uruchamianie i zatrzymywanie aplikacji

3 Korzystanie z pomocy systemowej

4 Programowanie

pierwszy program po wakacjach kompilacja i uruchomienie wczytywanie parametrów funkcjagetopt

obsługa błędów

(12)

Środowisko pracy

1 Wymagania systemowe

2 Uruchamianie i zatrzymywanie aplikacji

3 Korzystanie z pomocy systemowej

4 Programowanie

pierwszy program po wakacjach kompilacja i uruchomienie wczytywanie parametrów funkcjagetopt

obsługa błędów

Mateusz Hołenko Systemy Operacyjne 2 [7/16]

(13)

Wymagania systemowe

dowolny system operacyjny z rodziny Linux (?) zainstalowany natywnie

maszyna wirtualna (np. VirtualBox)

dostęp zdalny (np. SSH,PuTTY,WinSCP)

serwer dydaktyczny

unixlab.cs.put.poznan.pl

nazwa użytkownika i hasło z LDAP’a (inf...)

(14)

Wymagania systemowe

dowolny system operacyjny z rodziny Linux (?) zainstalowany natywnie

maszyna wirtualna (np. VirtualBox)

dostęp zdalny (np. SSH,PuTTY,WinSCP)

serwer dydaktyczny

unixlab.cs.put.poznan.pl

nazwa użytkownika i hasło z LDAP’a (inf...)

Mateusz Hołenko Systemy Operacyjne 2 [8/16]

(15)

Uruchamianie i zatrzymywanie aplikacji

uruchamianie

przez podanie nazwy aplikacji i niezbędnych parametrów np. mv stara_nazwa_pliku nowa_nazwa_pliku

przez podanie ścieżki do aplikacji i niezbędnych parametrów

np. ./mojprogram parametr_do_mojego_programu

zatrzymywanie

sygnałSIGINT:Ctrl-C zabija proces na śmierć

sygnałSIGSTP:Ctrl-Z wstrzymuje działanie procesu i przenosi go w tło

(16)

Uruchamianie i zatrzymywanie aplikacji

uruchamianie

przez podanie nazwy aplikacji i niezbędnych parametrów np. mv stara_nazwa_pliku nowa_nazwa_pliku

przez podanie ścieżki do aplikacji i niezbędnych parametrów

np. ./mojprogram parametr_do_mojego_programu

zatrzymywanie

sygnałSIGINT:Ctrl-C zabija proces na śmierć

sygnałSIGSTP:Ctrl-Z wstrzymuje działanie procesu i przenosi go w tło

Mateusz Hołenko Systemy Operacyjne 2 [9/16]

(17)

Korzystanie z pomocy systemowej

polecenie man

sekcja 2 — funkcje systemowe (np. man 2 write) sekcja 3 — funkcje biblioteczne (np. man 3 printf) sekcjaSYNOPSIS — wymagane pliki nagłówkowe

(18)

Korzystanie z pomocy systemowej

polecenie man

sekcja 2 — funkcje systemowe (np. man 2 write) sekcja 3 — funkcje biblioteczne (np. man 3 printf) sekcjaSYNOPSIS — wymagane pliki nagłówkowe

Mateusz Hołenko Systemy Operacyjne 2 [10/16]

(19)

Programowanie

Pierwszy program po wakacjach:



#include <stdio.h> 1

2

int main(int argc, char* argv[]) { 3

printf("Witaj Szkoło!\n"); 4

5

return 0; 6

} 7

 

(20)

Programowanie

Pierwszy program po wakacjach:



#include <stdio.h> 1

2

int main(int argc, char* argv[]) { 3

printf("Witaj Szkoło!\n"); 4

5

return 0; 6

} 7

 

Mateusz Hołenko Systemy Operacyjne 2 [11/16]

(21)

Kompilacja i uruchomienie

kompilacja

standardowa gcc source.c -o myapp ścisła gcc -Wall source.c -o myapp debug gcc -g source.c -o myapp

uruchomienie ./myapp

(22)

Kompilacja i uruchomienie

kompilacja

standardowa gcc source.c -o myapp ścisła gcc -Wall source.c -o myapp debug gcc -g source.c -o myapp

uruchomienie ./myapp

Mateusz Hołenko Systemy Operacyjne 2 [12/16]

(23)

Wczytywanie parametrów

sygnatura funkcjimain



int main(int argc, char* argv[])

 

(24)

Wczytywanie parametrów

sygnatura funkcjimain



int main(int argc, char* argv[])

 

Mateusz Hołenko Systemy Operacyjne 2 [13/16]

(25)

Funkcja

getopt

funkcja getoptparsuje argumenty linii poleceń

obsługiwany format argumentów

jednoznakowe: myapp -a -b,myapp -ab

posiadające wartość: myapp -a value,myapp -avalue, myapp -a „value with whitespaces”

z opcjonalną wartością

przykładowy ciągoptstring: a::bc:d:012



int getopt(int argc, char* argv[], char* optstring)

 

(26)

Funkcja

getopt

funkcja getoptparsuje argumenty linii poleceń

obsługiwany format argumentów

jednoznakowe: myapp -a -b,myapp -ab

posiadające wartość: myapp -a value,myapp -avalue, myapp -a „value with whitespaces”

z opcjonalną wartością

przykładowy ciągoptstring: a::bc:d:012



int getopt(int argc, char* argv[], char* optstring)

 

Mateusz Hołenko Systemy Operacyjne 2 [14/16]

(27)

Funkcja

getopt

funkcja getoptparsuje argumenty linii poleceń

obsługiwany format argumentów

jednoznakowe: myapp -a -b,myapp -ab

posiadające wartość: myapp -a value,myapp -avalue, myapp -a „value with whitespaces”

z opcjonalną wartością

przykładowy ciągoptstring: a::bc:d:012



int getopt(int argc, char* argv[], char* optstring)

 

(28)

Przykład użycia funkcji

getopt

#include<stdio.h> 1

2

#include<unistd.h>

3 intmain (intargc,char*argv[]) {

4 intopt;

5 opterr = 0; //disable error massages

6 while((opt = getopt(argc, argv,":i:f::r")) != -1) {

7 switch(opt) {

8 case’i’:

9 printf("Include: %s\n", optarg);

10 break;

11 case’r’:

12 printf("Option: %c\n", opt);

13 break;

14 case’f’:

15 if(optarg)

16 printf("Filename: %s\n", optarg);

17 else

18 printf("Option %c with no filename\n", opt);

19 break;

20 case’:’:

21 printf("Option %c needs a value\n", optopt);

22 break;

23 case’?’:

24 printf("Unknown option: %c\n", optopt);

break; 25

26 }

} 27

28 for(; optind < argc; optind++)

29 printf("Argument: %s\n", argv[optind]);

30 return0;

31

} 

Mateusz Hołenko Systemy Operacyjne 2 [15/16]

(29)

Obsługa błędów

funkcje systemowe zwracają wartość -1 w przypadku błędu zmienna globalna errnozawiera szczegółowy kod błędu (zdefiniowana w pliku nagłówkowymerrno.h)

funkcja perrnobada zawartość zmiennej errnoi wyświetla tekstowy opis błędu



fd = open("przyklad.txt", O_RDONLY); 1 if (fd == -1) 2

{ 3

printf("Kod: %d\n", errno); 4 perror("Otwieranie pliku"); 5 return -1; 6

} 7

 

(30)

Obsługa błędów

funkcje systemowe zwracają wartość -1 w przypadku błędu zmienna globalna errnozawiera szczegółowy kod błędu (zdefiniowana w pliku nagłówkowymerrno.h)

funkcja perrnobada zawartość zmiennej errnoi wyświetla tekstowy opis błędu



fd = open("przyklad.txt", O_RDONLY); 1 if (fd == -1) 2

{ 3

printf("Kod: %d\n", errno); 4 perror("Otwieranie pliku"); 5 return -1; 6

} 7

 

Mateusz Hołenko Systemy Operacyjne 2 [16/16]

(31)

Obsługa błędów

funkcje systemowe zwracają wartość -1 w przypadku błędu zmienna globalna errnozawiera szczegółowy kod błędu (zdefiniowana w pliku nagłówkowymerrno.h)

funkcja perrnobada zawartość zmiennej errnoi wyświetla tekstowy opis błędu



fd = open("przyklad.txt", O_RDONLY); 1 if (fd == -1) 2

{ 3

printf("Kod: %d\n", errno); 4 perror("Otwieranie pliku"); 5 return -1; 6

} 7

 

Cytaty

Powiązane dokumenty

Spopularyzowanie obliczeń czasu rzeczywistego, choć pierwsze tego typu systemy pojawiły się w 1964r.. SYSTEMY CZASU

Przykładowo, jeżeli w bazie istnieją 2 gwiazdy w gwiazdozbiorze Wolarza, to trzecia z nich otrzyma katalogową nazwę gamma Wolarza (nazwa składa się z litery greckiej oraz

• Średni czas oczekiwania na ogół nie jest minimalny i może się znacznie różnić, jeśli czasy procesora w procesach znacznie się różnią.. • Efekt konwoju – wszystkie

• Gdy jeden proces jest wykonywany w sekcji krytycznej, żaden inny proces nie może być wykonywany we własnej sekcji krytycznej.. • Problemem sekcji krytycznej jest zaprojektowanie

• Jeśli wątek zażąda zasobu, który jest obecnie dostępny, może nadal wymagać oczekiwania → wykorzystanie zasobów może być niższe..

• Wartość w rejestrze relokacji jest dodawana do każdego adresu wygenerowanego przez proces użytkownika w momencie wysyłania adresu do pamięci..

• Gdy używane jest stronicowanie, adres logiczny jest dzielony na dwie części: numer strony i. przesunięcie w

• zadania klasy SCHED_FIFO – gotowe do uruchomienia zadanie tej klasy jest szeregowane przez zadaniami SCHED_OTHER i nie otrzymują kwantu czasu (wykonują się do zawieszenia lub