Wątki, sygnały i szeregowanie w systemach UNIX, Linux
|
|
- Wiktoria Karczewska
- 6 lat temu
- Przeglądów:
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 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ółowoObsł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ółowoWykł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ółowo1. 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ółowoInstrukcja 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ółowoProgramowanie 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ółowoTemat 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ółowoprocesy 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ółowoSzeregowanie 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ółowoPOSIX: 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ółowoZarzą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ółowoProgramowanie 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ółowo1. 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ółowow 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ółowoProcesy 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ółowoWykł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ółowoSygnał 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ółowoSystemy 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ółowoProcesy, 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ółowo7. 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ółowoPROGRAMOWANIE 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ółowoProcesy, 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ółowoSygnał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ółowoProcesy, 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ółowo4. 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ółowoProcesy, 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ółowoProcesy. 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ółowoProcesy, 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ółowoPoniż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ółowoJ. 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ółowo7. 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ółowoMETODY 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ółowoPrzykł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ółowoSYSTEMY 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ółowoSOE 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ółowoprzydział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ółowo4. 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ółowoPrezentacja 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ółowo1. 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ółowoWykł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ółowoLinux: 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ółowoprzerwany 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ółowoLaboratorium 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ółowoWykł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ółowoPROGRAMOWANIE 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ółowoPlan 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ółowoSystemy 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ółowo1.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ółowoUŻ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ółowoPlanowanie 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ółowoUŻ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ółowoJę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ółowoSystemy 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ółowo4. 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ółowoModel 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ółowoProcesy 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ółowoDział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ółowoPlanowanie 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ółowoZarzą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ółowoTworzenie 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ółowoCelem 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ółowoSystem 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ółowoSYSTEMY 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ółowoLinux 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ółowoIPC: 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ółowoOd 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ółowoZarzą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ółowoWą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ółowoProgramowanie 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ółowoProjektowanie 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ółowoPodstawy 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ółowoDział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ółowoSystemy 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ółowoDział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ółowoDział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ółowoTworzenie 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ółowoJadro 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ółowoPlanowanie 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ółowoSUMA 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ółowoWą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ółowoFunkcja (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ółowoPamięć 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ółowoMechanizmy 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ółowoProgramowanie 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ółowoAutor: 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ółowoSYSTEMY 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ółowoLaboratorium 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ółowoUNIX. 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ółowoSYSTEMY 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ółowoJedrzej 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ółowoZarzą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ółowoMariusz 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ółowo2. 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ółowo1. 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ółowoPlan 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ółowoLaboratorium 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ółowoOgó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ółowoTemat: 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ółowoSYSTEMY 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.
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