Wątki, sygnały i szeregowanie w systemach UNIX, Linux

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wątki, sygnały i szeregowanie w systemach UNIX, Linux"

Transkrypt

1 SOE Systemy Operacyjne Wykład 6 Wątki, sygnały i szeregowanie w systemach UNIX, Linux dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW

2 Wątki w systemie Solaris Modele implementacji wątków model mieszany -do Solaris 8 włącznie model 1-1 -Solaris 8, 9 i 10

3 Wątki w systemie Solaris Wątki jądra podstawowe obiekty jądra niezależnie szeregowane i wykonywane równolegle na wielu procesorach realizują wewnętrzne funkcje jądra (np. usługi systemowe) wspierają wykonywanie procesów lekkich atrybuty wątku zawartość rejestrów z poziomu jądra informacje o priorytecie i algorytmie szeregowania wskaźniki do sąsiednich wątków w kolejce wskaźnik do stosu wskaźniki do związanych struktur lwp i proc

4 Wątki w systemie Solaris Procesy lekkie (lightweight process -LWP) wspierany przez jądro wątek z poziomu użytkownika interfejs pomiędzy wątkami użytkownika i wątkami jądra każdy proces lekki może obsługiwać jeden lub kilka wątków użytkownika w ramach jednego procesu każdy proces lekki jest związany z własnym wątkiem jądra atrybuty procesu lekkiego identyfikator zawartość rejestrów informacje o sposobie obsługi sygnałów informacje o zużyciu zasobów budziki czasu wirtualnego wskaźnik do struktury związanego wątku jądra wskaźnik do struktury procesu proc

5 Wątki w systemie Solaris Wątki użytkownika zarządzane przez bibliotekę wątków, bez udziału jądra tworzenie i usuwanie, szeregowanie, synchronizacja obsługiwane przez procesy lekkie wątek związany - związany na stałe z procesem lekkim wątek niezwiązany - współdzieli pulę procesów lekkich w procesie atrybuty wątku identyfikator zawartość rejestrów stos użytkownika, przydzielony przez bibliotekę priorytet maska blokowanych sygnałów dane prywatne wątku, zarządzane przez bibliotekę

6 Wątki w systemie Solaris Proces 1 Proces 2 Proces 3 L L L L L jądro CPU CPU CPU

7 Szeregowanie w systemie Solaris Koncepcja wielopoziomowego planowania kolejek Szeregowaniu podlegają wątki jądra a nie procesy Klasy szeregowania lokalne priorytety w klasie algorytm szeregowania w klasie Globalne szeregowanie priorytetowe globalne priorytety wybór wątku o najwyższym priorytecie wywłaszczanie

8 Klasy szeregowania Klasa szeregowania Priorytety globalne Kategoria wątków sprzętowe wątki przerwań RT wątki czasu rzeczywistego SYS wątki systemowe jądra IA 0-59 wątki interaktywne TS 0-59 wątki w klasie z podziałem czasu FX 0-59 FSS 0-59

9 Klasy szeregowania Klasa RT (wątki czasu rzeczywistego) algorytmy szeregowania: FCFS lub RR wywłaszczanie Klasa SYS (wątki systemowe) szeregowanie priorytetowe Klasa TS (wątki z podziałem czasu) szeregowanie priorytetowe z kwantem czasu kwant czasu odwrotnie proporcjonalny do priorytetu postarzanie - obniżanie priorytetu po wyczerpaniu kwantu czasu

10 Informacje o parametrach szeregowania ps -c[opcje] dispadmin -l dispadmin -c klasa -g [-r rozdzielczosc] priocntl -l priocntl -d [-i typ_id] [lista]

11 Modyfikacja parametrów szeregowania dispadmin -c klasa -s plik priocntl -s [-c klasa] [opcje] [-i typ_id ] [ lista] priocntl -e [-c klasa] [opcje] cmd [arg ]

12 Wątki w systemie Linux Model 1-1 Procesy i wątki traktowane identycznie przez jądro Funkcja clone() tworzy nowy proces tradycyjny lub wątek int clone(int (*fn)(void *), void *child_stack, int flags, void *arg); argumenty wywołania określają zakres współdzielenia zasobów

13 Szeregowanie w systemie Linux (jądro 2.4) Koncepcja wielopoziomowego planowania kolejek 2 kategorie procesów procesy zwykłe procesy czasu rzeczywistego Atrybuty planowania policy -algorytm szeregowania rt_priority -priorytet statyczny priority -początkowy priorytet dynamiczny counter -czas procesora przyznany procesowi, używany jako priorytet dynamiczny procesu

14 Szeregowanie w systemie Linux (jądro 2.4) Szeregowanie priorytetowe z wywłaszczaniem priorytet efektywny -waga procesu waga = rt_priority -procesy RT waga = counter -procesy zwykłe Procesy czasu rzeczywistego rt_priority > 0 algorytmy szeregowania: FCFS lub RR

15 Szeregowanie w systemie Linux (jądro 2.4) Procesy zwykłe rt_priority = 0 planowanie priorytetowe z przyznawanym czasem procesora wartość początkowa counter = priority w każdym takcie zegara counter = counter -1 ponowne przeliczenie priorytetów, gdy counter = 0 dla wszystkich procesów gotowych counter = counter/2 + priority mechanizm postarzania procesów

16 Szeregowanie w systemie Linux (jądro 2.6.8) Atrybuty planowania procesu static_prio -priorytet statyczny prio -priorytet dynamiczny sleep_avg -miara czasu uśpienia timeslice -przydział czasu procesora Ustawianie priorytetu statycznego domyślna wartość początkowa: static_prio = 0 ustawiona przez użytkownika: static_prio = nice zakres wartości nice: <-20, 19> ustawianie wartości nice funkcja systemowa nice() polecenia nice i renice

17 Szeregowanie w systemie Linux (jądro 2.6.8) Ustawianie priorytetu dynamicznego bonus lub kara za korzystanie z procesora tylko procesy zwykłe (nie RT) CURRENT_BONUS = sleep_avg * MAX_BONUS / MAX_SLEEP_AVG bonus = CURRENT_BONUS MAX_BONUS / 2 prio = static_prio bonus Obliczanie przydziału czasu procesora na podstawie priorytetu statycznego timeslice = MIN_TIMESLICE + (MAX_TIMESLICE MIN_TIMESLICE) * (MAX_PRIO 1 static_prio) / MAX_USER_PRIO -1

18 Szeregowanie w systemie Linux (jądro 2.6.8) Kolejki procesów gotowych przydzielonych do poszczególnych procesorów oddzielna kolejka na każdego CPU wskaźniki na dwie tablice priorytetów prio_array_t *active procesy aktywne, które nie wyczerpały jeszcze swoich przydziałów czasu procesora prio_array_t *expired procesy, które wyczerpały już swoje przydziały czasu procesora

19 Szeregowanie w systemie Linux (jądro 2.6.8) Tablica priorytetów unsigned int nr_active liczba aktywnych procesów unsigned long bitmap[bitmap_size] bitmapa priorytetów struct list_head queue[max_prio] tablica list procesów dla poszczególnych wartości priorytetu

20 Szeregowanie w systemie Linux (jądro 2.6.8) Funkcja scheduler_tick() uruchamiana po każdym przerwaniu zegarowym sprawdza, czy proces wyczerpał swój przydział czasu procesora Funkcja schedule() główna funkcja szeregowania procesów uruchamiana, gdy: proces zwalnia CPU w wyniku wywołania funkcji systemowej proces wyczerpał przydział czasu procesora - stwierdzone przez scheduler_tick() Złożoność obliczeniowa O(1)

21 Standardy implementacji biblioteki wątków POSIX - standard POSIX IEEE Std :1996 i IEEE Std :2001 opisuje interfejs programowania wielowątkowego w systemach uniksowych biblioteka funkcji: libpthread funkcje pthread_xxx Solaris - standard UI (UNIX International) opracowany dla systemu Solaris z uwzględnieniem specyfiki jego implementacji modelu m-n biblioteka funkcji: libthread funkcje thr_xxx

22 Podstawowe operacje na wątkach (POSIX) Tworzenie wątku Pobieranie i modyfikacja atrybutów Kończenie wątku Oczekiwanie na zakończenie wątku Odłączanie wątku

23 Tworzenie wątku int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_func)(void *), void *arg); tworzy nowy wątek z domyślnym zestawem atrybutów zwraca identyfikator przez thread nowy wątek działa współbieżnie z wątkiem bieżącym (wołającym funkcję) nowy wątek wykonuje podaną funkcję start_func() z argumentem arg

24 Atrybuty wątku Atrybut Wartości Znaczenie scope detachstate PTHREAD_SCOPE_PROCESS PTHREAD_SCOPE_SYSTEM PTHREAD_CREATE_JOINABLE (domyślnie) wątek szeregowany na poziomie procesu, nie związany na stałe z procesem lekkim LWP (unbound) wątek szeregowany na poziomie jądra, związany na stałe z procesem lekkim LWP (bound) wątek dołączalny, inne wątki mogą oczekiwać na jego zakończenie i odebrać status (synchronizować się) PTHREAD_CREATE_DETACHED wątek odłączony, inne wątki nie mogą oczekiwać na jego zakończenie (synchronizować się)

25 Atrybuty wątku c.d. Atrybut Wartości Znaczenie stackaddr NULL (domyślnie) adres początkowy stosu (domyślnie: stos alokowany przez system) stacksize NULL (domyślnie) rozmiar stosu (domyślnie: 1 MB) schedpolicy SCHED_OTHER (domyślnie) planowanie priorytetowe SCHED_FIFO SCHED_RR planowanie FCFS planowanie rotacyjne RR schedparam inheritsched parametry szeregowania wątku PTHREAD_EXPLICIT_SCHED parametry szeregowania ustawiane na podstawie argumentów wywołania funkcji pthread_create() PTHREAD_INHERIT_SCHED parametry szeregowania dziedziczone po procesie macierzystym

26 Kończenie wątku Powrót z wykonywanej funkcji start_func() Zakończenie procesu poprzez _exit() Wywołanie funkcji pthread_exit() void pthread_exit(void *retval); wątki dołączalne - zasoby pamięci zwalniane po odebraniu statusu przez inny wątek wątki odłączone - zasoby pamięci są zwalniane natychmiast

27 Oczekiwanie na zakończenie wątku int pthread_join(pthread_t thread, void **thread_return); wstrzymuje wołający wątek do momentu zakończenia wątku wskazanego przez thread zwraca status zakończenia int pthread_detach(pthread_t thread); odłącza wskazany wątek

28 Przykład 1 1 wątek roboczy /* Silberschatz, Galvin and Gagne: Operating System Concepts, 2003 */ /* modyfikacje: A. Wielgus */ #include <pthread.h> int sum; /* zmienna współdzielona przez wątki */ void *runner(void *param); /* funkcja wątku */ main(int argc, char *argv[]) { pthread_t tid; /* identyfikator wątku */ pthread_attr_t attr; /* zbiór atrybutów */

29 Przykład 1 1 wątek roboczy /* pobranie domyślnych atrybutów */ pthread_attr_init(&attr); if (argc!= 2){ printf("niewłaściwa liczba argumentów\n"); exit(1); } /* tworzenie wątku */ if (pthread_create(&tid,&attr,runner,argv[1])) perror("pthread_create"); /* oczekiwanie na zakończenie wątku */ if (pthread_join(tid,null)) perror("pthread_join"); printf("sum = %d\n",sum); }

30 Przykład 1 1 wątek roboczy /* funkcja wątku */ void* runner(void*param) { int upper = atoi(param); int i; sum = 0; if (upper > 0) { for (i = 1; i <= upper; i++) sum += i; } pthread_exit(0); }

31 Przykład 2 wiele wątków roboczych #include <pthread.h> #define N 10 void *runner(void *param); /* funkcja watku roboczego */ main(int argc, char *argv[]) { pthread_t tid[n]; /* tablica identyfikatorow watkow */ pthread_attr_t attr; /* zbior atrybutow watkow */ int i, *stat[n]; if (argc > N+1) { printf("nieprawidlowa liczba argumentow\n"); exit(1); }

32 Przykład 2 wiele wątków roboczych /* get the default attributes */ pthread_attr_init(&attr); /* tworzenie watkow roboczych - jeden watek na kazdy argument wywolania */ for (i=1; i<argc; i++) { if (pthread_create(&tid[i-1],&attr,runner,argv[i])) perror("watek"); } /* oczekiwanie na zakonczenie watkow roboczych */ for (i=1; i<argc; i++) { pthread_join(tid[i-1],(void**)&(stat[i-1])); printf("pid=%d tid=%d ",getpid(), pthread_self()); printf("sum(%d) = %d\n", atoi(argv[i]), *stat[i-1]); } }

33 Przykład 2 wiele wątków roboczych void *runner(void *param) { int upper = atoi(param); int i; int sum; } sum = 0; if (upper > 0) { for (i = 1; i <= upper; i++) sum += i; } printf("pid=%d tid=%d sum = %d\n",getpid(), pthread_self(), sum); pthread_exit(&sum);

34 Proces a wątek Tradycyjny proces proces jednowątkowy Rozwidlanie procesu wielowątkowego: powielanie wszystkich wątków funkcja fork() (Solaris) powielanie tylko wątku wołającego funkcja fork() (POSIX) funkcja fork1()

35 Tworzenie programów wielowątkowych Wątki POSIX Plik nagłówkowy #include <pthread.h> Makrodefinicja #define _REENTRANT -D _REENTRANT Wywołanie kompilatora gcc [opcje... ] plik... lpthread...

36 Przesyłanie i obsługa sygnałów Sygnały Obsługa sygnałów w procesach Obsługa sygnałów w wątkach

37 Sygnały Sygnał asynchroniczna informacja dla procesu o zajściu zdarzenia Generacja sygnałów wyjątki (przerwania programowe) przerwania z terminala (ctrl c, ctrl \, ctrl z) inne procesy powiadomienia (zakończenie operacji we-wy) budziki

38 Przegląd wybranych sygnałów Nazwa sygnału Numer sygnału Znaczenie Domyślna reakcja procesu SIGHUP 1 Zerwanie połączenia z terminalem sterującym Zakończenie procesu SIGINT 2 Przerwanie Zakończenie procesu SIGQUIT 3 Zakończenie procesu Zakończenie procesu i zrzut obrazu pamięci do pliku core SIGILL 4 Nielegalna instrukcja w kodzie Zakończenie procesu SIGKILL 9 Zabicie procesu Bezwzględne zakończenie procesu SIGSEGV 11 Przekroczenie dopuszczalnego adresu pamięci Zakończenie procesu SIGALRM 14 Alarm programowy Ignorowanie SIGTERM 15 Przerwanie programowe Zakończenie procesu

39 Przegląd wybranych sygnałów Nazwa sygnału Numer sygnału Znaczenie Domyślna reakcja procesu SIGCONT Wznowienie wykonywania procesu Wznowienie wykonywania procesu SIGSTOP Bezwzględne zatrzymanie procesu Bezwzględne wstrzymanie wykonywania procesu SIGTSTP SIGCHLD zależny od implementacji Zatrzymanie procesu w wyniku wprowadzenie z terminala sekwencji Ctrl-z Informacja o zakończeniu (śmierci) procesu potomnego Wstrzymanie wykonywania procesu Ignorowanie SIGUSR1 Sygnał definiowany przez użytkownika Niezdefiniowana SIGUSR2 Sygnał definiowany przez użytkownika Niezdefiniowana

40 Obsługa sygnałów w procesach Sprawdzanie nadesłanych sygnałów maska nadesłanych sygnałów (w strukturze proc) tylko proces wykonywany może obsłużyć sygnały przed powrotem do trybu użytkownika z funkcji systemowej lub obsługi przerwania tuż przed uśpieniem lub tuż po obudzeniu procesu Sposoby obsługi domyślna ignorowanie własna funkcja obsługi wyjątki: SIGKILL i SIGSTOP

41 Obsługa sygnałów w procesach Blokowanie sygnałów maska blokowanych sygnałów (w strukturze proc) jądro przechowuje informacje o nadesłanych sygnałach wyjątki: SIGKILL i SIGSTOP

42 Obsługa sygnałów w wątkach Wspólne funkcje obsługi sygnałów (ustawione dla wszystkich wątków w procesie) Odrębne maski blokowanych sygnałów Sygnały spowodowane przez pułapki (SIGILL, SIGSEGV itp.) obsługiwane przez wątek, który spowodował pułapkę Sygnały spowodowane przez przerwania czyli zdarzenia zewnętrzne (SIGIO, SIGINT itp.) obsługiwane przez jeden dowolny wątek, którego maska na to pozwala następny sygnał, w trakcie obsługi poprzedniego, obsługiwany przez następny wątek

43 Wysyłanie sygnałów do procesu int kill(pid_t pid, int sig); Wysyła sygnał sig do procesu lub grupy procesów: pid > 0 pid = 0 pid = -1 pid < -1 -do procesu o identyfikatorze pid -do wszystkich procesów w grupie procesu wysyłającego -do wszystkich procesów w systemie z wyjątkiem procesu init (PID=1) -do wszystkich procesów w grupie o identyfikatorze pgid = -pid

44 Wysyłanie sygnałów do wątków int pthread_kill(pthread_t thread, int sig); Wysyła sygnał do wskazanego wątku w tym samym procesie

45 Ustawianie obsługi int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); struct sigaction { } void (*sa_handler)(int); sigset_t sa_mask; int sa_flags; -sposób obsługi sygnału -maska sygnałów blokowanych -flagi Ustawia sposób obsługi sygnału sig przez sa_handler: SIG_DFL obsługa domyślna SIG_IGN ignorowanie wskaźnik do własnej funkcji obsługi (nazwa funkcji) Blokuje sygnał sig oraz inne sygnały sa_mask na czas obsługi

46 Ustawianie obsługi Ustawienie obsługi jednokrotne void (*signal(int sig, void (*handler)(int)))(int); Ustawienie obsługi na stałe (do odwołania) void (*sigset(int sig, void (*handler)(int)))(int);

47 Ustawianie maski blokowanych sygnałów int sigprocmask(int how, const sigset_t *set, sigset_t *oset); int pthread_sigmask(int how, const sigset_t *set, sigset_t *oset); Ustawia lub pobiera maskę blokowanych sygnałów w wątku w zależności od wartości argumentu how: SIG_BLOCK SIG_UNBLOCK SIG_SETMASK -dodaje zbiór sygnałów set do maski -usuwa zbiór sygnałów set z maski -ustawia zbiór sygnałów set jako maskę jeśli set==null, funkcja tylko zapisuje aktualną maskę w oset

48 Ustawianie maski blokowanych sygnałów Operacje na masce int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int sigaddset(sigset_t *set, int signo); int sigdelset(sigset_t *set, int signo); int sigismember(sigset_t *set, int signo);

49 Uzyskanie informacji o niezałatwionych sygnałach int sigpending(sigset_t *set); Pobiera zbiór niezałatwionych sygnałów set, które zostały wysłane do procesu, ale ich dostarczenie było zablokowane Funkcja sigismember() pozwala zbadać obecność konkretnego sygnału w zbiorze set

50 Wstrzymywanie procesu w oczekiwaniu na sygnał int pause(void); Funkcja wstrzymuje proces w oczekiwaniu na sygnał int sigsuspend(const sigset_t *mask); Funkcja podmienia maskę blokowanych sygnałów na mask i wstrzymuje proces w oczekiwaniu na sygnał int sigwait(sigset_t *set); int sigwait(const sigset_t *set, int *sig); Funkcja pobiera jeden niezałatwiony sygnał ze zbioru set lub wstrzymuje wątek w oczekiwaniu na sygnał ze zbioru. Pobrany sygnał jest usuwany ze zbioru sygnałów niezałatwionych, a numer sygnału jest zwracany jako wartość funkcji lub zapisywany w sig. Działanie funkcji jest niezależne od maski blokowanych sygnałów, czyli wątek może czekać synchronicznie na sygnał.

51 Przykład sygnały w procesie jednowątkowym (1) #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <signal.h> #include <errno.h> void Obsluga(int); int licznik; int main(void) { struct sigaction nowaakcja; sigset_t maska; sigfillset(&maska); nowaakcja.sa_handler = Obsluga; nowaakcja.sa_mask = maska; if (sigaction(sigint, &nowaakcja, NULL)) perror("blad sigaction"); sigdelset(&maska, SIGINT);

52 Przykład sygnały w procesie jednowątkowym (2) } while(1) sigsuspend(&maska); return(0); void Obsluga(int numersygnalu) { } licznik++; printf("odebralem %d sygnal SIGINT (%d).\n", licznik, numersygnalu);

53 Obsługa sygnałów Obsługa asynchroniczna ustawienie funkcji obsługi sygnału w procesie sigaction() wykonuje dowolny wątek (zwykle główny) dotyczy wszystkich wątków można ustawić blokowanie sygnałów poza jednym wybranym wątkiem Obsługa synchroniczna zablokowanie sygnałów we wszystkich wątkach w wybranym wątku: sigwait() obsługa sygnału bezpośrednio w kodzie

54 Funkcje obsługi sygnałów - zalecenia Stosować wywołania funkcji bezpiecznych przy obsłudze sygnałów (ang. Async-Signal-Safe) atrybut MT-level w man Stosować bezpieczne typy zmiennych globalnych (o dostępie atomowym) volatile sig_atomic_t typ integer oraz wskaźniki można uznać za bezpieczne

55 Odmierzanie czasu Budziki systemowe dla procesu ITIMER_REAL -budzik czasu rzeczywistego odmierza czas rzeczywisty sygnał SIGALRM ITIMER_VIRTUAL -budzik czasu wirtualnego odmierza czas wykonywania procesu w trybie użytkownika sygnał SIGVTALRM ITIMER_PROF -budzik profilowania odmierza czas wykonywania procesu w trybie użytkownika i w trybie jądra sygnał SIGPROF ITIMER_REALPROF -budzik profilowania czasu rzeczywistego

56 Odmierzanie czasu int getitimer(int which, struct itimerval *value); int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue); Odczytuje lub ustawia jeden z budzików unsigned int alarm(unsigned int sec); int usleep(useconds_t useconds); W procesach jednowątkowych ustawia budzik czasu rzeczywistego procesu W procesach wielowątkowych -> nanosleep() int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); Usypia bieżący wątek

57 Odmierzanie czasu struct itimerval { struct timeval it_interval; /* timer interval */ struct timeval it_value; /* current value */ }; struct timeval { time_t tv_sec; /* seconds */ suseconds_t tv_usec; /* microseconds */ }; struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ } timespec_t;

Sygnały. 7. Sygnały (2005/2006)

Sygnały. 7. Sygnały (2005/2006) Sygnały Sygnał jest to informacja dla procesu, że wystąpiło jakieś zdarzenie. Sygnały mogą być wysyłane: z procesu do innego procesu (grupy procesów) z procesu do siebie samego z jądra do procesu Sygnały

Bardziej szczegółowo

Obsługa sygnałów. Tomasz Borzyszkowski

Obsługa sygnałów. Tomasz Borzyszkowski Obsługa sygnałów Tomasz Borzyszkowski Wprowadzenie Zaawansowane systemy operacyjne często realizując duże zadania, wykorzystują do ich realizacji wiele współdziałających ze sobą programów/procesów. Do

Bardziej szczegółowo

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 3 Procesy i wątki Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Pojęcie procesu Program = plik wykonywalny na dysku Proces = uruchomiony i wykonywany program w pamięci

Bardziej szczegółowo

1. Uruchom poniższy program tworzący pojedynczy wątek:

1. Uruchom poniższy program tworzący pojedynczy wątek: 9 Wątki 1. Uruchom poniższy program tworzący pojedynczy wątek: #include #include #include void* worker(void* info) int i; for(i=0; i

Bardziej szczegółowo

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi) Instrukcja do laboratorium Systemów Operacyjnych (semestr drugi) Ćwiczenie drugie (jedne zajęcia) Temat: Procesy i sygnały w Linuksie. Opracowanie: mgr in ż. Arkadiusz Chrobot Wprowadzenie 1. Budowa procesu

Bardziej szczegółowo

Programowanie Współbieżne

Programowanie Współbieżne Programowanie Współbieżne Pthread http://www.unix.org/version2/whatsnew/threadsref.html Oraz strony podręcznika systemowego man 1 Wątki W tradycyjnym modelu w systemie Unix, jeżeli proces wymaga, by część

Bardziej szczegółowo

Temat zajęć: Tworzenie i obsługa wątków.

Temat zajęć: Tworzenie i obsługa wątków. Temat zajęć: Tworzenie i obsługa wątków. Czas realizacji zajęć: 180 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Tworzenie wątków, przekazywanie parametrów do funkcji wątków i pobieranie

Bardziej szczegółowo

procesy odrębne dzielone

procesy odrębne dzielone procesy odrębne Unikatowy PID (2-32000) Zmienne Zbiory deskryptorów plików Przestrzeń stosu (lokalne zmienne, wywołania funkcji) Środowisko Licznik rozkazów dzielone Kod programu brak możliwości zapisu

Bardziej szczegółowo

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski Szeregowanie zadań w Linux Kernel 2.6 Daniel Górski Przemysław Jakubowski Plan prezentacji Szeregowanie procesów - Szeregowanie - Cele szeregowania - Scheduler 2.6 - Struktury danych używane w 2.6 - Multiprocesorowość

Bardziej szczegółowo

POSIX: IEEE Std 1003.1 2001 (Issue 6, 2004 edition)

POSIX: IEEE Std 1003.1 2001 (Issue 6, 2004 edition) POSIX: IEEE Std 1003.1 2001 (Issue 6, 2004 edition) Podstawowe rekomendacje przejęte z UNIXa wielodostęp wielozadaniowość system plików terminal gniazda Rekomendacje dla obszaru czasu rzeczywistego strategie

Bardziej szczegółowo

Zarządzanie procesami i wątkami

Zarządzanie procesami i wątkami SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) Program zbiór instrukcji dla procesora

Bardziej szczegółowo

Programowanie Współbieżne. W Linuxie/Unixie

Programowanie Współbieżne. W Linuxie/Unixie Programowanie Współbieżne W Linuxie/Unixie Identyfikatory pid numer identyfikacyjny procesu zwykle od 0 do 32K przydzielany przez system każdemu nowemu procesowi uzyskać możemy go przez int getpid() 0

Bardziej szczegółowo

1. Timery i zdarzenia

1. Timery i zdarzenia Sygnały 1 1. Timery i zdarzenia 1.1 Funkcje i programowanie timerów Jedną z najczęściej spotykanych funkcji systemu jest generowanie zdarzeń które w ustalonym czasie uruchomić mają określone akcje systemu.

Bardziej szczegółowo

w odróżnieniu od procesów współdzielą przestrzeń adresową mogą komunikować się za pomocą zmiennych globalnych

w odróżnieniu od procesów współdzielą przestrzeń adresową mogą komunikować się za pomocą zmiennych globalnych mechanizmy posix Wątki w odróżnieniu od procesów współdzielą przestrzeń adresową należą do tego samego użytkownika są tańsze od procesów: wystarczy pamiętać tylko wartości rejestrów, nie trzeba czyścić

Bardziej szczegółowo

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Krzysztof Banaś Obliczenia równoległe 1 Procesy i wątki Proces: ciąg rozkazów (wątek główny) i ewentualnie inne wątki stos (wątku głównego) przestrzeń adresowa dodatkowe elementy tworzące

Bardziej szczegółowo

Wykład 5 Przerwania i wywołania systemowe. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Wykład 5 Przerwania i wywołania systemowe. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Wykład 5 Przerwania i wywołania systemowe Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Porty wejścia-wyjścia Intel x86 posiada 65536 portów wejścia-wyjścia, do których dostęp możliwy

Bardziej szczegółowo

Sygnał mechanizm asynchronicznego powiadamiania procesów o zdarzeniach zwykle awaryjnych.

Sygnał mechanizm asynchronicznego powiadamiania procesów o zdarzeniach zwykle awaryjnych. J. Ułasiewicz 1 1. 1 INFORMACJE WSTĘPNE Sygnał mechanizm asynchronicznego powiadamiania procesów o zdarzeniach zwykle awaryjnych. Metoda powiadamiania procesów za pomocą sygnałów wywodzi się z systemu

Bardziej szczegółowo

Systemy Operacyjne 1 Laboratorium 2 Procesy i sygnały w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot

Systemy Operacyjne 1 Laboratorium 2 Procesy i sygnały w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot Systemy Operacyjne 1 Laboratorium 2 Procesy i sygnały w Linuksie (jeden tydzień) dr inż. Arkadiusz Chrobot października 2018 Wstęp W tej instrukcji zawarte są informacje na temat tworzenia i obsługiwania

Bardziej szczegółowo

Procesy, wątki i zasoby

Procesy, wątki i zasoby Procesy, wątki i zasoby Koncepcja procesu i zasobu, Obsługa procesów i zasobów, Cykl zmian stanów procesu i kolejkowanie, Klasyfikacja zasobów, Wątki, Procesy i wątki we współczesnych systemach operacyjnych.

Bardziej szczegółowo

7. Szeregowanie procesów w systemie QNX6 Neutrino

7. Szeregowanie procesów w systemie QNX6 Neutrino J. Ułasiewicz Programowanie aplikacji współbieżnych 1 7. Szeregowanie procesów w systemie QNX6 Neutrino 7.1 PRIORYTETY Każdy z procesów wykonywanych w systemie RTS ma przyporządkowany priorytet. W systemie

Bardziej szczegółowo

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: THREADS Mariusz Rudnicki 2016 1. Przygotowanie platformy i środowiska IDE. Przed uruchomieniem własnego kodu zwiększ priorytet procesu qconn

Bardziej szczegółowo

Procesy, pliki, potoki, sygnały - uzupełnienie

Procesy, pliki, potoki, sygnały - uzupełnienie Procesy, pliki, potoki, sygnały - uzupełnienie dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych na: http://wazniak.mimuw.edu.pl/

Bardziej szczegółowo

Sygnały i ich obsługa

Sygnały i ich obsługa J. Ułasiewicz Programowanie aplikacji współbieżnych 1 i ich obsługa 1. i ich obsługa...2 1.1 Informacje wstępne...2 1.2 Standardy obsługi sygnałów...3 1.3 Wysyłanie sygnałów...6 1.4 Maskowanie sygnałów...10

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów Wątki Procesy i wątki

Bardziej szczegółowo

Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011

Procesy. Systemy Operacyjne 2 laboratorium. Mateusz Hołenko. 9 października 2011 Procesy Systemy Operacyjne 2 laboratorium Mateusz Hołenko 9 października 2011 Plan zajęć 1 Procesy w systemie Linux proces procesy macierzyste i potomne procesy zombie i sieroty 2 Funkcje systemowe pobieranie

Bardziej szczegółowo

Procesy, zasoby i wątki

Procesy, zasoby i wątki Dariusz Wawrzyniak Koncepcja procesu i zasobu Obsługa procesów i zasobów Cykl zmian stanów procesu i kolejkowanie Klasyfikacja zasobów Wątki Procesy i wątki we współczesnych systemach operacyjnych Plan

Bardziej szczegółowo

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej.

Poniższe funkcje opisane są w 2 i 3 części pomocy systemowej. Procesy Proces (zwany też zadaniem) jest jednostką aktywną, kontrolowaną przez system operacyjny i związaną z wykonywanym programem. Proces ma przydzielone zasoby typu pamięć (segment kodu, segment danych,

Bardziej szczegółowo

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

J. Ułasiewicz Programowanie aplikacji współbieżnych 1 J. Ułasiewicz Programowanie aplikacji współbieżnych 1 7. procesów W środowisku systemu pracuje zwykle więcej procesów gotowych do wykonania niż dostępnych jest procesorów. Stąd istnieje potrzeba decydowania

Bardziej szczegółowo

7. Szeregowanie procesów w systemie QNX6 Neutrino

7. Szeregowanie procesów w systemie QNX6 Neutrino J. Ułasiewicz Programowanie aplikacji współbieżnych 1 7. Szeregowanie procesów w systemie QNX6 Neutrino 7.1 Priorytety Każdy z procesów wykonywanych w systemie RTS ma przyporządkowany priorytet. W systemie

Bardziej szczegółowo

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02 METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się

Bardziej szczegółowo

Przykłady implementacji planowania przydziału procesora

Przykłady implementacji planowania przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Tradycyjne szeregowanie w systemie UNIX Szeregowanie w systemie Linux z jądrem

Bardziej szczegółowo

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

SYSTEMY CZASU RZECZYWISTEGO - VxWorks WZAJEMNE WYKLUCZANIE Wiele metod. Np. wyłączanie przerwań: funkcja() //... Int blokada = intlock(); // Obszar krytyczny, któremu nie możemy przerwać intunlock(blokada); wyłączanie wywłaszczania: funkcja()

Bardziej szczegółowo

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pamięć wirtualna Stronicowanie na żądanie większość współczesnych systemów

Bardziej szczegółowo

przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Tradycyjne szeregowanie w systemie UNIX Szeregowanie w systemie Linux z jądrem 2.6 Szeregowanie w systemie Windows 2000/XP (2) Szeregowanie

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Prezentacja systemu RTLinux

Prezentacja systemu RTLinux Prezentacja systemu RTLinux Podstawowe założenia RTLinux jest system o twardych ograniczeniach czasowych (hard real-time). Inspiracją dla twórców RTLinux a była architektura systemu MERT. W zamierzeniach

Bardziej szczegółowo

1. Timery i zdarzenia

1. Timery i zdarzenia J. Ułasiewicz Komputerowe systemy sterowania 1 1. Timery i zdarzenia 1.1 Funkcje i programowanie timerów Jedną z najczęściej spotykanych funkcji systemu czasu rzeczywistego jest generowanie zdarzeń które

Bardziej szczegółowo

Wykład 6 Planista procesora funkcja schedule. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Wykład 6 Planista procesora funkcja schedule. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Wykład 6 Planista procesora funkcja schedule Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Typowe punkty wywołania planisty Procedura sleep_on (usypanie procesu). Powrót z wywołania

Bardziej szczegółowo

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013 Linux: Procesy Systemy Operacyjne Mateusz Hołenko 26 marca 2013 Plan zajęć Co to jest sygnał? Polecenia systemowe Sygnały Zadania Mateusz Hołenko Linux: Procesy [2/18] Co to jest proces? Co to jest proces?

Bardziej szczegółowo

przerwany proces móg l zareagować na określone zdarzenie. Można je traktować jako software owe wersje przerwań sprz etowych.

przerwany proces móg l zareagować na określone zdarzenie. Można je traktować jako software owe wersje przerwań sprz etowych. c Wies law P laczek 9 3 Sygna ly 3.1 Opis sygna lów Najprostsz ametod akomunikacjimi edzyprocesowej w systenie UNIX s sygna ly. Umożliwiaj aoneasynchroniczne przerwanie dzia lania procesu przez inny proces

Bardziej szczegółowo

Laboratorium Procesy w systemach UNIX 3.2 Polecenia związane z procesami

Laboratorium Procesy w systemach UNIX 3.2 Polecenia związane z procesami Laboratorium 3 3.1 Procesy w systemach UNIX 3.2 Polecenia związane z procesami 1 3.1 Procesy w systemach UNIX Z systemami unixowymi związane jest pojęcie procesu. W takim ujęciu, proces, rozumiany jest

Bardziej szczegółowo

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wykład 6 Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Rodzaje planowania Planowanie długoterminowe. Decyzja o

Bardziej szczegółowo

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO LABORATORIUM Temat: QNX Neutrino Interrupts Mariusz Rudnicki 2016 Wstęp W QNX Neutrino wszystkie przerwania sprzętowe przechwytywane są przez jądro systemu. Obsługę

Bardziej szczegółowo

Plan wykładu. Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 1 p. Wzajemne wykluczanie. Procesy współbieżne

Plan wykładu. Obliczenia równoległe w zagadnieniach inżynierskich. Wykład 1 p. Wzajemne wykluczanie. Procesy współbieżne Plan wykładu Obliczenia równoległe w zagadnieniach inżynierskich Wykład 1 Podstawowe pojęcia i model programowania Sposoby realizacji watków w systemach operacyjnych Tworzenie watów i zarzadzanie nimi

Bardziej szczegółowo

Systemy Operacyjne I: Procesy

Systemy Operacyjne I: Procesy Politechnika Poznańska 4 kwietnia 2013 Materiały Prezentacja oraz inne materiały zostały przygotowane na podstawie: Użytkowanie systemu operacyjnego UNIX - dr D.Wawrzyniak Systemy operacyjne - skrypt -

Bardziej szczegółowo

1.1 Definicja procesu

1.1 Definicja procesu 1 Procesy pojęcia podstawowe 1 1.1 Definicja procesu Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

UŻYCIE I ZARZĄDZANIE WĄTKAMI

UŻYCIE I ZARZĄDZANIE WĄTKAMI Proces jako pewna instancja programu, w trakcie wykonania, ze swej natury w każdym systemie operacyjnym wyróżniają: prawa własności zasobu a jednym z fundamentalnych zadań systemu jest ochrona przed jednoczesnym

Bardziej szczegółowo

Planowanie przydziału procesora

Planowanie przydziału procesora Planowanie przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak Plan wykładu Komponenty jądra związane z szeregowaniem Ogólna koncepcja planowania Kryteria oceny uszeregowania Algorytmy

Bardziej szczegółowo

UŻYCIE I ZARZĄDZANIE WĄTKAMI

UŻYCIE I ZARZĄDZANIE WĄTKAMI Proces jako pewna instancja programu, w trakcie wykonania, ze swej natury w każdym systemie operacyjnym wyróżniają: prawa własności zasobu a jednym z fundamentalnych zadań systemu jest ochrona przed jednoczesnym

Bardziej szczegółowo

Jędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1. Wątki

Jędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1. Wątki Jędrzej Ułasiewicz Programownie aplikacji współbieżnych str. 1 1 Informacje wstępne...2 2 Rodzaje wątków...7 poziomu jądra...7 poziomu użytkownika...8 Rozwiązania mieszane...8 3 Biblioteka pthreads...12

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III WYKŁAD 2 Jan Kazimirski 1 Procesy w systemie operacyjnym 2 Proces Współczesne SO w większości są systemami wielozadaniowymi. W tym samym czasie SO obsługuje pewną liczbę zadań procesów

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe 4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa

Bardziej szczegółowo

Model procesu w systemie Linux. Tomasz Borzyszkowski

Model procesu w systemie Linux. Tomasz Borzyszkowski Model procesu w systemie Linux Tomasz Borzyszkowski Definicja procesu klasyka Definicja [M.Bach WNT95] Proces jest wykonaniem programu i składa się ze zbiorowości bajtów, które CPU interpretuje jako instrukcje

Bardziej szczegółowo

Procesy w systemach UNIX i Linux

Procesy w systemach UNIX i Linux SOE Systemy Operacyjne Wykład 5 Procesy w systemach UNIX i Linux dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Procesy Proces wykonujący się program identyfikator PID Procesy

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej I NIC sieci Pamięć operacyjna Przerwania Przerwania

Bardziej szczegółowo

Planowanie przydziału procesora

Planowanie przydziału procesora Dariusz Wawrzyniak Plan wykładu Komponenty jądra związane z szeregowaniem Ogólna koncepcja planowania Kryteria oceny algorytmów planowania Algorytmy planowania (2) 1 Komponenty jądra w planowaniu Planista

Bardziej szczegółowo

Zarządzanie procesami (omawiane zagadnienia)

Zarządzanie procesami (omawiane zagadnienia) Zarządzanie procesami (omawiane zagadnienia) Pojęcie procesu Stany procesu Blok kontrolny procesu Tworzenie procesu Sygnały Kończenie wykonania procesu Działanie interpretatora poleceń (shell-a) Koncepcja

Bardziej szczegółowo

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1 Metodologia programowania równoległego Przykłady podziałów zadania na podzadania: Podział ze względu na funkcje (functional

Bardziej szczegółowo

Celem wykładu jest wprowadzenie fundamentalnych pojęć, integralnie związanych z systemem operacyjnym, na których opiera się przetwarzanie we

Celem wykładu jest wprowadzenie fundamentalnych pojęć, integralnie związanych z systemem operacyjnym, na których opiera się przetwarzanie we Celem wykładu jest wprowadzenie fundamentalnych pojęć, integralnie związanych z systemem operacyjnym, na których opiera się przetwarzanie we współczesnych systemach komputerowych pojęcia procesu i pojęcia

Bardziej szczegółowo

System operacyjny MACH

System operacyjny MACH Emulacja w systemie MCH System operacyjny MCH 4. SD Systemu V HP/UX MS-DOS VMS inne Mikrojądro Zbigniew Suski Zbigniew Suski Podstawowe cele projektu MCH! Dostarczenie podstawy do budowy innych systemów

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

Linux Adam Bułak Ha Nhat Viet Damian Klata

Linux Adam Bułak Ha Nhat Viet Damian Klata Linux 2.6.8.1 Adam Bułak Ha Nhat Viet Damian Klata 1. Wstp Wieloprocesowe systemy: - z moliwoci wydzierawiania (ang. preemption) Unix, Linux te oczywicie - bez takiej moliwoci proces sam oddaje procesor

Bardziej szczegółowo

IPC: Kolejki komunikatów

IPC: Kolejki komunikatów IPC: Kolejki komunikatów Systemy Operacyjne 2 laboratorium Mateusz Hołenko 7 listopada 2011 Plan zajęć 1 Mechanizmy IPC kolejki komunikatów pamięć współdzielona semafory 2 Kolejki komunikatów kolejka komunikat

Bardziej szczegółowo

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux.

Od uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Linux. Kod szkolenia: Tytuł szkolenia: PS/LINUX Programowanie systemowe w Linux Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemie Linux, którzy chcą poznać

Bardziej szczegółowo

Zarządzanie procesami

Zarządzanie procesami Zarządzanie procesami Proces, najogólniej rzecz ujmując, jest wykonywanym programem. Na linuxowy proces składają się: Liniowa przestrzeń adresowa, w której z kolei można wydzielić sekcję tekstu zawierającą

Bardziej szczegółowo

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować

Bardziej szczegółowo

Programowanie współbieżne Wykład 2. Iwona Kochańska

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI plan Cechy, właściwości procesów Multitasking Scheduling Fork czym jest proces? Działającą instancją programu Program jest kolekcją

Bardziej szczegółowo

Podstawy programowania współbieżnego. 1. Wprowadzenie. 2. Podstawowe pojęcia

Podstawy programowania współbieżnego. 1. Wprowadzenie. 2. Podstawowe pojęcia Podstawy programowania współbieżnego Opracowanie: Sławomir Samolej, Tomasz Krzeszowski Politechnika Rzeszowska, Katedra Informatyki i Automatyki, Rzeszów, 2010 1. Wprowadzenie Programowanie współbieżne

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej Pamięć

Bardziej szczegółowo

Systemy Operacyjne 2: Wątki pthreads. dr inż. Arkadiusz Chrobot

Systemy Operacyjne 2: Wątki pthreads. dr inż. Arkadiusz Chrobot Systemy Operacyjne 2: Wątki pthreads dr inż. Arkadiusz Chrobot 18 kwietnia 2013 1. Wprowadzenie Wątki podobnie jak procesy umożliwiają współbieżną realizację czynności w wykonywanym programie. Domyślnie

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Działanie systemu operacyjnego Budowa systemu komputerowego I NIC Jednostka centralna Sterownik dysku Sterownik drukarki Sterownik sieci Szyna systemowa (magistrala danych) Sterownik pamięci operacyjnej

Bardziej szczegółowo

Działanie systemu operacyjnego

Działanie systemu operacyjnego Budowa systemu komputerowego Działanie systemu operacyjnego Jednostka centralna dysku Szyna systemowa (magistrala danych) drukarki pamięci operacyjnej sieci Pamięć operacyjna Przerwania Przerwania Przerwanie

Bardziej szczegółowo

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych Krzysztof Banaś Obliczenia równoległe 1 Tworzenie programów równoległych W procesie tworzenia programów równoległych istnieją dwa kroki o zasadniczym znaczeniu: wykrycie

Bardziej szczegółowo

Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14

Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14 Jadro Linux 2.6 a zadania czasu rzeczywistego Artur Lewandowski al167167@students.mimuw.edu.pl Jądro Linux 2.6 p.1/14 1 Wprowadzenie Linux 2.6 wprowadza dużo nowych cech polepszajacych wydajność zadań

Bardziej szczegółowo

Planowanie przydziału procesora

Planowanie przydziału procesora Planowanie przydziału procesora Ogólna koncepcja planowania Tryb decyzji określa moment czasu, w którym oceniane i porównywane są priorytety procesów i dokonywany jest wybór procesu do wykonania. Funkcja

Bardziej szczegółowo

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq)

SUMA KONTROLNA (icmp_cksum) NUMER KOLEJNY (icmp_seq) Program my_ping: wysłanie komunikatu ICMP z żądaniem echa Struktura icmp (plik netinet/ip_icmp.h) 0 7 8 15 16 31 TYP (icmp_type) KOD (icmp_code) IDENTYFIKATOR (icmp_id) SUMA KONTROLNA (icmp_cksum) NUMER

Bardziej szczegółowo

Wątki. S. Samolej: Wątki 1

Wątki. S. Samolej: Wątki 1 Wątki dr inż. Sławomir Samolej Katedra Informatyki i Automatyki Politechnika Rzeszowska Program przedmiotu oparto w części na materiałach opublikowanych na: http://wazniak.mimuw.edu.pl/ oraz na materiałach

Bardziej szczegółowo

Funkcja (podprogram) void

Funkcja (podprogram) void Funkcje Co to jest funkcja? Budowa funkcji Deklaracja, definicja i wywołanie funkcji Przykłady funkcji definiowanych przez programistę Przekazywanie argumentów do funkcji Tablica jako argument funkcji

Bardziej szczegółowo

Pamięć współdzielona

Pamięć współdzielona Pamięć współdzielona Systemy Operacyjne 2 Piotr Zierhoffer 17 listopada 2011 Mechanizmy IPC IPC Inter Process Communication kolejki komunikatów, pamięć współdzielona semafory polecenia bash: ipcs, ipcrm

Bardziej szczegółowo

Mechanizmy pracy równoległej. Jarosław Kuchta

Mechanizmy pracy równoległej. Jarosław Kuchta Mechanizmy pracy równoległej Jarosław Kuchta Zagadnienia Algorytmy wzajemnego wykluczania algorytm Dekkera Mechanizmy niskopoziomowe przerwania mechanizmy ochrony pamięci instrukcje specjalne Mechanizmy

Bardziej szczegółowo

Programowanie aplikacji równoległych i rozproszonych. Wykład 1

Programowanie aplikacji równoległych i rozproszonych. Wykład 1 Wykład 1 p. 1/52 Programowanie aplikacji równoległych i rozproszonych Wykład 1 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Plan wykładu

Bardziej szczegółowo

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1 Wątki 1. Wątki - wprowadzenie Wątkiem nazywamy sekwencyjny przepływ sterowania w procesie, który wykonuje dany program np. odczytywanie i zapisywanie plików Program Javy jest wykonywany w obrębie jednego

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

SYSTEMY OPERACYJNE WYKLAD 6 - procesy Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - procesy Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 Zasoby: PROCES wykonujący się program ; instancja programu

Bardziej szczegółowo

Laboratorium systemów operacyjnych ćwiczenie nr 3. [ilość modułów: 1] Temat zajęć: Procesy w systemie operacyjnym

Laboratorium systemów operacyjnych ćwiczenie nr 3. [ilość modułów: 1] Temat zajęć: Procesy w systemie operacyjnym Temat zajęć: Procesy w systemie operacyjnym Czas realizacji zajęć: 45 min. Zakres materiału, jaki zostanie zrealizowany podczas zajęć: Pojęcie procesu, procesy w systemie, usuwanie procesów, priorytety

Bardziej szczegółowo

UNIX. mgr inż. Marcin Borkowski

UNIX. mgr inż. Marcin Borkowski UNIX Cel Przedmiotu Doskonalenie umiejętności poprawnego programowania w systemach klasy UNIX Nabycie i rozwinięcie technik pisania przenośnego kodu w C Opanowanie standardu POSIX w zakresie funkcji systemowych

Bardziej szczegółowo

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy)

SYSTEMY OPERACYJNE I laboratorium 3 (Informatyka stacjonarne 2 rok, semestr zimowy) Procesy i shell. Polecenia ps, sleep, exit, jobs, bg, fg, top, kill, bash, tcsh, which, type, whereis, touch. Metaznak & i >>. Dowiązania miękkie i twarde. Proces jest programem, który jest wykonywany

Bardziej szczegółowo

Jedrzej Ułasiewicz Komputerowe systemy sterowania 1

Jedrzej Ułasiewicz Komputerowe systemy sterowania 1 Jedrzej Ułasiewicz Komputerowe systemy sterowania 1 1 Przerwania 1.1 Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Bardziej szczegółowo

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią operacyjną SOE Systemy Operacyjne Wykład 7 Zarządzanie pamięcią operacyjną dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Hierarchia pamięci czas dostępu Rejestry Pamięć podręczna koszt

Bardziej szczegółowo

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.2

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.2 Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.2 Architektura - Procesy Proces program załadowany do pamięci; identyfikowany przez id procesu, zwykle nazywany

Bardziej szczegółowo

2. Zarządzanie procesami

2. Zarządzanie procesami J. Ułasiewicz Komputery i systemy równoległe 1 2. Zarządzanie procesami 2.1 Funkcje zarządzania procesami Administrowanie procesami obejmuje następujące czynności: Tworzenie procesu. Testowanie atrybutów

Bardziej szczegółowo

1. Kolejki komunikatów POSIX

1. Kolejki komunikatów POSIX Jędrzej Ułasiewicz IIAiR Politechnika Wrocławska 1 1. Kolejki komunikatów POSIX 1.1 Podstawowe własności Kolejki FIFO maja następujące wady: Komunikaty pozbawione struktury Nie można testować stanu kolejki

Bardziej szczegółowo

Plan wykładu. Programowanie aplikacji równoległych i rozproszonych. Wykład 1 p. Wzajemne wykluczanie. Procesy współbieżne

Plan wykładu. Programowanie aplikacji równoległych i rozproszonych. Wykład 1 p. Wzajemne wykluczanie. Procesy współbieżne Plan wykładu Programowanie aplikacji równoległych i rozproszonych Wykład 1 Podstawowe pojęcia i model programowania Sposoby realizacji watków w systemach operacyjnych Tworzenie watów i zarzadzanie nimi

Bardziej szczegółowo

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach

Laboratorium Systemów Operacyjnych. Ćwiczenie 4. Operacje na plikach Laboratorium Systemów Operacyjnych Ćwiczenie 4. Operacje na plikach Wykonanie operacji wymaga wskazania pliku, na którym operacja ma zostać wykonana. Plik w systemie LINUX identyfikowany jest przez nazwę,

Bardziej szczegółowo

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu Planowanie przydziału procesora Ogólna koncepcja planowania Tryb decyzji określa moment czasu, w którym oceniane i porównywane są priorytety procesów i dokonywany jest wybór procesu do wykonania. Funkcja

Bardziej szczegółowo

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych. 1. Rodzaje pamięci używanej w programach Pamięć komputera, dostępna dla programu,

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

SYSTEMY OPERACYJNE WYKLAD 6 - wątki Wrocław 2007 SYSTEMY OPERACYJNE WYKLAD 6 - wątki Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl www.equus.wroc.pl/studia.html 1 PLAN: 1. Wątki 2. Planowanie przydziału procesora (szeregowanie

Bardziej szczegółowo

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi.

Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Przykład: $ ls more Łącza nienazwane(potoki) Łącza nienazwane mogą być używane tylko pomiędzy procesami ze sobą powiązanymi. Tworzenie łącza #include int pipe(int filedes[2]); Przykład: int

Bardziej szczegółowo