Wykład 2 Proces, stany procesu i przejścia pomiędzy nimi. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
|
|
- Gabriela Mazur
- 8 lat temu
- Przeglądów:
Transkrypt
1 Wykład 2 Proces, stany procesu i przejścia pomiędzy nimi. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
2 Przypomnienie z poprzedniego semestru W systemach jednoprogramowych (MS-DOS) proces. Wywołuje funkcję systemu w celu wykonania-operacji we-wy. System operacyjny inicjalizuje operację i czeka aż się ona zakończy. Następuje powrót do procesu.. W systemach wieloprogramowych rzecz jest o wiele bardziej skomplikowana Proces A: Wywołuje funkcję systemu w celu wykonania-operacji we-wy. System operacyjny inicjalizuje operację, i wprowadza proces w stan zawieszenia (zapamiętanie kontekstu). Mówimy że jądro usypia (ang. sleep) proces A.. System wybiera inny proces gotowy do wykonania i następnie przekazuje mu procesor (przełącza kontekst do tego procesu). Po pewnym czasie zakończenie operacji We-Wy sygnalizowane jest (na ogół) przerwaniem. W handlerze obsługi przerwania jądro budzi (ang wakeup) proces A. Po pewnym czasie proces otrzymuje ponownie procesor. Cel dzisiejszego wykładu: Opisać działanie tego mechanizmu w jądrze Linuxa Wojciech Kwedlo, Systemy Operacyjne II -2- Wydział Informatyki PB
3 Struktura task_struct Jest zdefiniowana w include/linux/sched.h. Zawiera wszystkie niezbędne informacje o procesie. Dla każdego procesu w Linuksie musi istnieć odpowiadająca mu instancja struktury task_struct Wektor (tablica zadań) jest zdefiniowany w tym pliku jako extern struct task_struct *task[nr_tasks]; Wartość stałej NR_TASKS zdefinowana w jako include/linux/tasks.h jako 512. Zdefiniowana jest również zmienna (tak naprawdę makrodefinicja z uwagi na systemy wieloprocesorowe SMP) current będąca wskaźnikiem do bieżącego procesu. Struktura task_struct zawiera bardzo wiele pól (proszę nie wpadać w panikę), część z nich zostanie omówiona na dzisiejszym wykładzie, część na kolejnych Wojciech Kwedlo, Systemy Operacyjne II -3- Wydział Informatyki PB
4 Stan procesu Pierwsze (i najważniejsze) pole w strukturze task_struct to state. Przechowuje ono informacje o aktualnym stanie procesu. Możliwe wartości, zdefiniowane w include/linux/sched.h to, TASK_RUNNING : proces albo aktualnie się wykonuje na procesorze, albo jest gotowy do wykonania i czeka na otrzymanie procesora. Brak rozróżnienia stanu aktywnego i gotowego (ale możemy porównać się ze wskaźnikiem current). Tylko procesy w stanie TASK_RUNNING są brane pod uwagę przez planistę procesora (funkcję schedule) przy poszukiwaniu procesu do którego przełączyć procesor. TASK_INTERRUPTIBLE : proces oczekuje na zajście zdarzenia lub na jakiś zasób, może otrzymać sygnał. TASK_UNINTERRUPTIBLE : proces oczekuje na zajście zdarzenia lub na jakiś zasób nie reaguje na sygnały. TASK_STOPPED : proces został zatrzymany (np. przez sygnał SIGSTOP). TASK_ZOMBIE : proces zakończył pracę, ale jego task_struct jest nadal obecny w pamięci. Ten dodatkowy stan jest potrzebny do poprawnego zaimplementowania funkcji systemowej wait. TASK_SWAPPING : nie używane Wojciech Kwedlo, Systemy Operacyjne II -4- Wydział Informatyki PB
5 Diagram zmiany stanów procesów Wykorzystanie przydzielonego kwantu CPU (wywłaszczenie) TASK_RUNNING Uśpienie (ang. sleep) Obudzenie (ang. wakeup) TASK_INTERRUPTIBLE Zakończenie pracy TASK_ZOMBIE Wojciech Kwedlo, Systemy Operacyjne II -5- Wydział Informatyki PB
6 Tryb jądra oraz tryb użytkownika Wywołanie systemowe Kod jądra Dane jądra Kod procesu Dane procesu Powrót z wywołania systemowego Proces wykonujący swoje własne instrukcje wykonuje się w trybie użytkownika. W tym trybie może następić wywłaszczenie procesu (w wyniku przerwania zegarowego). Proces ma dostęp wyłącznie do swoich danych i kodu. Kod i dane jądra są zamapowane w przestrzeni adresowej procesu, jednak próba dostępu powoduje błąd. Z chwilą wywołanie systemowego, zaczynją wykonywać się instrukcję jądra. Pomimo, że CPU wykonuje kod jądra, to mówimy, że proces wykonuje się w trybie jądra. W tym trybie możliwy jest dostęp zarówno do kodu i danych procesu oraz jądra. Proces nie może zostać wywłaszczony. Problemy z bezpieczeństwem, np. Co się stanie gdy jako argument funkcji read podamy adres wskazujący na pamięć jądra Wojciech Kwedlo, Systemy Operacyjne II -6- Wydział Informatyki PB
7 Listy dwukierunkowe Wszystkie procesy w systemie tworzą listę dwukierunkową. Pola prev_task oraz next_task w strukturze task_struct to wskaźniki na poprzedni i następny element tej listy. Początek listy to Wszyskie procesy w stanie TASK_RUNNING tworzą listę dwukierunkową. Pola prev_run oraz next_run w strukturze task_struct to wskaźniki na poprzedni i następny element tej listy. Początek listy to Lista ta wykorzystywana jest przez planistę procesora (funkcja schedule). Pozycja o numerze 0 w tablicy wskaźników task jest zarezerwowana dla procesu systemowego bezczynnego. Wskazuje ona na zmienną init_task. init_task jest pierwszym i ostatnim elementem dla obydwu list dwukierunkowych. Stąd np. makrodefinicja iterująca wszyskie procesy ma postać: #define for_each_task(p) \ for (p = &init_task ; (p = p->next_task)!= &init_task ; ) Wojciech Kwedlo, Systemy Operacyjne II -7- Wydział Informatyki PB
8 Kolejki procesów oczekujących na zdarzenie (ang. wait queues) Uśpione procesy oczekujące na zdarzenie przechowywane są w kolejce. W plikach /include/linux/wait.h oraz include/linux/sched.h zdefiniowane są: struct wait_queue { struct task_struct * task; struct wait_queue * next; }; Kolejka procesów oczekujących na zdarzenie jest zaimplementowana jako lista cykliczna takich struktur. Aby wykorzystać z kolejki należy zadeklarować zmienną struct wait_queue * p będącą (wkaźnikiem na) początkiem kolejki. Do operacji na kolejkach służą następujące funkcje: void init_waitqueue(struct wait_queue **q) // inicjalizacja kolejki // Dodanie elementu wait do kolejki p; void add_wait_queue(struct wait_queue ** p, struct wait_queue * wait) // Usunięcie elementu wait z kolejki p; void remove_wait_queue(struct wait_queue ** p, struct wait_queue *wait) Praca domowa: przeanalizuj kod tych funkcji i zauważ że blokują one przerwania (funkcja cli()) na czas modyfikacji kolejki (dlaczego jest to konieczne?) Wojciech Kwedlo, Systemy Operacyjne II -8- Wydział Informatyki PB
9 Usypianie procesu - scenariusz 1. Proces wywołuje funkcje systemową read() - przypuśćmy że jest to odczyt znaku z konsoli. 2. Jądro wywołuje sterownik konsoli. 3. Sterownik konsoli wywołuje funkcję interruptible_sleep_on(console_queue), gdzie console_queue jest kolejką procesów oczekujących na dane z konsoli. 4. Uwaga: ten punkt zostaje wykonany dopiero gdy: Proces zostanie obudzony (np. w procedurze obsługi przerwania klawiatury) Planista (funkcja schedule) wybierze ten proces do wykonywania. Następuje skopiowanie znaków z bufora klawiatury do przestrzeni użytkownika i powrót z wywołania systemowego. Pomiędzy punktami 3 i 4 zachodzą więc dwa przełączenia kontesktu usypianego i ponownie do procesu usypianego) (od procesu Wojciech Kwedlo, Systemy Operacyjne II -9- Wydział Informatyki PB
10 interruptible_sleep_on Pełna definicja w kernel/sched.c, uproszczony kod ma postać: void interruptible_sleep_on(struct wait_queue **q) { } //element kolejki reprezentujący bieżące zadanie struct wait_queue entry={current, NULL}; current->state=task_interruptible; add_wait_queue(q,&entry); schedule(); // BARDZO WAŻNE: Planista procesora remove_wait_queue(q,&entry); // *** Funkcja schedule (a) wyszukuje inny proces o stanie TASK_RUNNIING i (b) przełącza do niego kontekst (kod częściowo zależny od sprzętu). Aby proces kontynuował wykonanie (od linii //***) Stan procesu musi zostać zmieniony ponownie na TASK_RUNNING. Musi zostać ponownie wywołana funkcja schedule np. W sytuacji gdy inny proces wykona *_sleep_on lub inny proces zużyje swój kwant czasu procesora, co jest sprawdzane przy obsłudze przerwania zegarowego. Ponadto funkcja schedule musi zdecydować, że procesor należy się właśnie temu procesowi. Wojciech Kwedlo, Systemy Operacyjne II -10- Wydział Informatyki PB
11 Budzenie procesu - scenariusz Następuje przerwanie klawiatury. Procedura obsługi przerwania klawiatury sprawdza, że nastąpiło wprowadzenie nowego znaku i wywołuje funkcję wake_up_interruptible(console_queue) budzącą wszystkie procesy czekające na kolejce console_queue. Procesy te otrzymują stan TASK_RUNNING. Oznacza to, że mogą one zostać wybrane do wykonywania przy kolejnym wywołaniu planisty schedule. Mamy do czynienia z asymetrią: Uśpienie procesu => utrata procesora Obudzenie procesu => to wcale nie jest przydzielenie procesora (bieżący proces wskazywany przez current kontynuuje pracę). To danie szansy na przydział procesora przy następnym wywołaniu schedule. Wojciech Kwedlo, Systemy Operacyjne II -11- Wydział Informatyki PB
12 wake_up_interruptible } void wake_up_interruptible(struct wait_queue **q) { struct wait_queue *next; struct wait_queue *head; next = *q; head = WAIT_QUEUE_HEAD(q); while (next!= head) { struct task_struct *p = next->task; next = next->next; if (p->state == TASK_INTERRUPTIBLE) { unsigned long flags; } } save_flags(flags); cli(); p->state = TASK_RUNNING; if (!p->next_run) add_to_runqueue(p); restore_flags(flags); Generalnie algorytm polega na nadaniu wszystkim procesom w kolejce stanu TASK_RUNNING. Funkcja add_to_runqueue umieszcza proces na dwukierunkowej liście procesów gotowych do wykonania pola next_run oraz struktury. Wojciech Kwedlo, Systemy Operacyjne II -12- Wydział Informatyki PB
13 Synchronizacja kodu jądra - wersja jednoprocesorowa Często do danych struktur jądra np. dane sterownika możemy odwoływać się z np. (A) różnych ścieżek wykonania jądra (np. dwa procesy wykonujące się z trybu jądra piszą do tego samego urządzenia) (B) ze ścieżki jądra (proces pisze do urządzenia) i z handlera przerwania. W takiej sytuacji musimy zapewnić synchronizację dostępu do danych jądra - tworząc sekcje krytyczne. Linuks w wersji 2.0.x wykorzystuje rozwiązanie znane z klasycznego Uniksa. W przypadku (A) synchronizację zapewnia prosta zasada: proces wykonujący się w trybie jądra nie może zostać wywłaszczony. Przez wywłaszczenie rozumiemy odebranie procesu bez jego zgody i wiedzy. Proces może jedynie zrzec się procesora wywołując funkcję schedule. Oczywiście powyższa zasada nie dotyczy procesów wykonujących się w trybie użytkownika. Uwaga niektóre funkcje np. kmalloc z drugim argumentem GFP_KERNEL mogą uśpić proces wykonując algorytm _sleep_on i i pośrednio wywołać schedule. W takiej sytuacji możemy skorzystać z semaforów jądra. W przyadku (B) sychronizację zapewnia możliwość wykorzystania pary funkcji cli()/sti() blokujących i odblokowujących przerwania. Wojciech Kwedlo, Systemy Operacyjne II -13- Wydział Informatyki PB
14 Przykład wykorzystania operacji usypiania i budzenia: semafory jądra Jest to jeden z mechanizmów jądra wykorzystywany do ochrony krytycznych danych. Rozważmy sytuacje w której proces, wykonywujący się w trybie jądra, jest w trakcie modyfikacji jakiejś struktury danych, z pewnych przyczyn (nie mówimy jakich) zasypia. Wówczas możliwy jest scenariusz, w którym planista schedule przekaże procesor innemu procesowi, który wywoła funkcje systemową, wejdzie w tryb jądra i spróbuje zmodyfikować tę samą strukturę. Rozwiązanie: chronić dostęp do danych krytycznych przy pomocy semforów. API semaforów jest zdefiniowane w /include/asm-i386/semaphore.h. Składa się z następujących funkcji: void down(struct semaphore * sem); void up(struct semaphore * sem); oraz z makrodefinicji MUTEX inicjalizującej strukturę struct semaphore. Funkcja down rezerwuje, a up zwalnia semafor. Wojciech Kwedlo, Systemy Operacyjne II -14- Wydział Informatyki PB
15 Implementacja operacji semaforowych Rzeczywista implementacja uwzględnia systemy wieloprocesorowe i jest zoptymalizowana w assemblerze, przy założeniu jednego procesora możemy ją uprościć do postaci: struct semaphore { int count; struct wait_queue wait; } void down(struct semaphore *sem) { // wejście do semafora while(sem->count<=0) sleep_on(sem->wait); sem->count--; } void up(struct semaphore *sem) { // wyjście z semafora sem->count++; wake_up(&sem->wait); } Przypominam, że proces wykonujący się w trybie jądra nie może zostać wywłaszczony. Stąd gwarancja atomiczności operacji down oraz up. Wojciech Kwedlo, Systemy Operacyjne II -15- Wydział Informatyki PB
16 Przykład wykorzystania operacji semaforowych Pierwszy proces w trybie jądra: down(&semafor); // Kod sekcji krytycznej... // kmalloc może uśpić proces kmalloc(n,gfp_kernel) // Ciąg dalszy sekcji krytycznej... // Koniec sekcji krytycznej up(&semafor); Drugi proces w trybie jądra: down(&semafor); // Kod sekcji krytycznej... // Koniec sekcji krytycznej up(&semafor); Gdyby nie kmalloc lub inne tego typu funkcje, nie ma potrzeby stosowania semaforów (jądro nie jest wywłaszczalne!!!). W tej chwili gdy proces po lewej stronie zostanie uśpiony w wyniku wywołania funkcji kmalloc (w oczekiwaniu na odzyskanie wolnej pamięci), proces po prawej stronie zostanie uśpiony na semaforze - i nie wejdzie do sekcji krytycznej. Gdy pamięć się znajdzie (jeżeli nie, to blokada :) ) proces pierwszy zostanie obudzony, wróci z funkcji malloc, wyjdzie z sekcji krytycznej i pozwoli procesowi drugiemu (czekającemu na semaforze) na wejście Wojciech Kwedlo, Systemy Operacyjne II -16- Wydział Informatyki PB
17 long counter; long priority; Dalsze pola struktury task_struct (1) Wykorzystywane przez planistę counter. unsigned long signal; unsigned long blocked; Obsługa sygnałów POSIX. Maska bitowa zgłoszonych i zablokowanych sygnałów. unsigned long flags; Flagi procesu (proces monitorowany, ropoczynany, kończony). int errno; Kod błędu ostatniego wywołania systemowego. int pid,pgrp,session,leader; Identyfikator procesu, grupy procesów, sesji i lidera sesji. Unsigned short uid,gid,euid,egid; Identyfikator użytkownika i grupy oraz dwa identyfikatory rzeczywiste. Wojciech Kwedlo, Systemy Operacyjne II -17- Wydział Informatyki PB
18 Dalsze pola struktury task_struct (2) struct wait_queue *wait_child_exit; Kolejka wykorzystywana przez funkcje rodziny wait czekające na zakończenie procesu potomnego struct files_struct *files; Informacje o otwartych plikach postaci: struct files_struct { int count; fd_set close_on_exec; fd_set open_fds; struct file * fd[nr_open]; } NR_OPEN=256, count jest liczbą aktualnie otwartych plików, open_fds jest maską bitową otwartych plików, close_on_execl maska bitowa plików które muszą być zamknięte po wywołaniu exec, ma rozmiar 32 bajtów, typ fd_set (256 bitów) Wojciech Kwedlo, Systemy Operacyjne II -18- Wydział Informatyki PB
19 Dalsze pola struktury task_struct (3) init-+-5*[agetty] -bash---mc-+-bash---pstree `-cons.saver -crond -gpm -kerneld -kflushd -klogd -kswapd -syslogd `-update Powyższy listing to wynik polecenia pstree. struct task_struct *p_opptr,*p_pptr,*p_cptr,*p_ysptr,*p_osptr; Wskaźniki do oryginalnego rodzica, rodzica, najmłodszego potomka, najmłodszego brata i najstarszego brata procesu. Wojciech Kwedlo, Systemy Operacyjne II -19- Wydział Informatyki PB
20 Dygresja wątki jądra (ang. kernel thread) Wątek jądra proces nie mający części użytkownika Nie posiada pamięci użytkownika zatem wykonuje się w trybie jądra i jest częścią jądra. Posiada własny task_struct i podlega planowaniu przez planistę jak zwykłe procesy. Widoczny jest po wykonaniu polecenia ps. Tworzymy go przy pomocy funkcji: pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) Wątek jądra rozpoczyna się od funkcji fn. argument arg zostanie przekazany funkcji fn. Jeżeli wątek jądra zostanie stworzony z kontekstu zwykłego procesu (a nie innego wątku jądra), to pamięć tego procesu zostanie zwolniona dopiero wtedy, gdy wątek oraz proces zakończą pracę!!! Wojciech Kwedlo, Systemy Operacyjne II -20- Wydział Informatyki PB
21 Następny wykład Sygnały Sterownik urządzenia znakowego Wojciech Kwedlo, Systemy Operacyjne II -21- 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
Systemy operacyjne II
Systemy operacyjne II Wojciech Kwedlo Wydział Informatyki PB, p. 205 wkwedlo@ii.pb.bialystok.pl aragorn.pb.bialystok.pl/~wkwedlo Pracownia specjalistyczna: Wojciech Kwedlo Krzysztof Bandurski Wojciech
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
Wykład 7 Podręczna pamięć buforowa (ang. buffer cache) w systemie Linuks. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
Wykład 7 Podręczna pamięć buforowa (ang. buffer cache) w systemie Linuks Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Wstęp Przyczyną wprowadzenia pamięci buforowej są ogromne różnice
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,
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.
Wykład 13. Linux 2.0.x na maszynach SMP. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
Wykład 13 Linux 2.0.x na maszynach SMP Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Architektura SMP Skrót od słów Symmetric Multiprocessing (Symetryczne Przetwarzenie Wieloprocesorowe)
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
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
Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne
Synchronizacja procesów Przeplot Przeplot wątków współbieżnych Cel i metody synchronizacji procesów Problem sekcji krytycznej Semafory Blokady 3.1 3.3 Wątki współbieżne Cel i metody synchronizacji procesów
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
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
Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 4 Synchronizacja procesów (i wątków) cześć I Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Potrzeba synchronizacji Procesy wykonują się współbieżnie. Jeżeli w 100% są
Futex (Fast Userspace Mutex) Łukasz Białek
Futex (Fast Userspace Mutex) Łukasz Białek Futex informacje podstawowe Stworzony w 2002 roku przez Hubertusa Franke, Matthew Kirkwooda, Ingo Molnára i Rustiego Russella. Jest mechanizmem w Linuxie, który
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
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,
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
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
Wielozadaniowość w systemie Microsoft Windows
Wielozadaniowość w systemie Microsoft Windows mgr inż. Tomasz Jaworski tjaworski@kis.p.lodz.pl http://tjaworski.kis.p.lodz.pl/ Idea wielozadaniowości Proces główny Wątki Algorytm szeregowania ustala kolejność
Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces
Procesy pojęcia podstawowe 1 1.1 Jak kod źródłowy przekształca się w proces W języku wysokiego poziomu tworzy się tak zwany kod źródłowy który po zapisaniu będzie plikiem z programem źródłowym. Plik źródłowy
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ć
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
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
Programowanie równoległe i rozproszone. Monitory i zmienne warunku. Krzysztof Banaś Programowanie równoległe i rozproszone 1
Programowanie równoległe i rozproszone Monitory i zmienne warunku Krzysztof Banaś Programowanie równoległe i rozproszone 1 Problemy współbieżności Problem producentów i konsumentów: jedna grupa procesów
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
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
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ę
Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 4 Synchronizacja procesów (i wątków) cześć I Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Procesy wykonują się współbieżnie Potrzeba synchronizacji Jeżeli w 100% są
Wykład 5. Synchronizacja (część II) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 5 Synchronizacja (część II) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wady semaforów Jeden z pierwszych mechanizmów synchronizacji Generalnie jest to mechanizm bardzo
projektowanie systemu
projektowanie systemu cel użytkownika: system operacyjny powinien być wygodny, łatwy w użyciu, prosty do nauczenia, niezawodny, bezpieczny i szybki cel producenta: system operacyjny powinien być łatwy
Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu
Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz
Podstawy programowania komputerów
Podstawy programowania komputerów Wykład 14: Programowanie współbieżne w C Definicja programowania współbieżnego Programowanie współbieżne jest tworzeniem programów, których wykonanie powoduje uruchomienie
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
Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska
Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów Iwona Kochańska Mechanizm synchronizacji wątków/procesów Wykorzystanie semaforów zapobiega niedozwolonemu wykonaniu
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
Wykład 13. Systemy wieloprocesorowe. Wojciech Kwedlo Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 13 Systemy wieloprocesorowe Wojciech Kwedlo Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Ograniczenia w zwiększaniu szybkości procesorów Ograniczenie związane z prędkością światła:
Synchronizacja procesów i wątków
SOE Systemy Operacyjne Wykład 12 Synchronizacja procesów i wątków dr inŝ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Problem sekcji krytycznej Podstawowy problem synchronizacji
Proces y i y w i ąt ą ki
Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz
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
Dynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.
Laboratorium 7 Wstęp Jednym z podstawowych własności Javy jest wielowątkowość. Wiąże się to z możliwością współbieżnego wykonywania różnych operacji w ramach pojedynczej wirtualnej maszyny Javy (JVM).
Wykład 14. Rozwój systemu w kolenych wersjach jądra. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
Wykład 14 Rozwój systemu w kolenych wersjach jądra Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Plan wykładu Wstęp Zmiany związane z urządzeniami wejścia wyjścia. Pamięć podręczna
Laboratorium 5: Wątki jądra i mechanizmy synchronizacji (jedne zajęcia) dr inż. Arkadiusz Chrobot
Laboratorium 5: Wątki jądra i mechanizmy synchronizacji (jedne zajęcia) dr inż. Arkadiusz Chrobot 9 kwietnia 2019 Spis treści Wprowadzenie 1 1. Wątki jądra 1 1.1. Opis API.............................................
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
Wykład 12. Zarządzanie pamięcią (część III) oraz urządzenia sieciowe. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB
Wykład 12 Zarządzanie pamięcią (część III) oraz urządzenia sieciowe Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Funkcja mmap na pliku specjalnym Funkcje systemową mmap możemy również
Kurs programowania. Wykład 8. Wojciech Macyna
Wykład 8 Program bez watków, jeden procesor, trzy zadania Program z watkami, jeden procesor, trzy zadania Procesory wielordzeniowe, każde zadanie na osobnym procesorze Trzy zadania uruchomione w watkach
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
Kolejki FIFO (łącza nazwane)
Kolejki FIFO (łącza nazwane) Systemy Operacyjne 2 laboratorium Mateusz Hołenko 6 listopada 2011 Plan zajęć 1 Łącza w systemie Linux kolejki FIFO vs. potoki specyfika łączy nazwanych schemat komunikacji
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
Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB
Wykład 8 Pamięć wirtualna Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB Wprowadzenie Podstawowa idea: System operacyjny pozwala na wykorzystanie pamięci o pojemności większej,
Systemy operacyjne III
Systemy operacyjne III WYKŁAD 3 Jan Kazimirski 1 Współbieżność 2 Współbieżność Wielozadaniowość - zarządzanie wieloma procesami w ramach jednego CPU Wieloprocesorowość - zarządzanie wieloma zadaniami w
Systemy operacyjne. Zajęcia 11. Monitory
Systemy operacyjne. Zajęcia 11. Monitory 1. Monitor to mechanizm zamykający całą pamięć wspólną i synchronizację w pojedynczym module. 2. Monitor posiada całą pamięć wspólną jako część 'prywatną': dostępu
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
Program 6. Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje:
Program 6 Program wykorzystujący strukturę osoba o polach: imię, nazwisko, wiek. W programie wykorzystane są dwie funkcje: Funkcja pobierz_osobe wczytuje dane osoby podanej jako argument. Funkcja wypisz_osobe
IdyllaOS. Prosty, alternatywny system operacyjny. www.idyllaos.org. Autor: Grzegorz Gliński. Kontakt: milyges@gmail.com
IdyllaOS www.idyllaos.org Prosty, alternatywny system operacyjny Autor: Grzegorz Gliński Kontakt: milyges@gmail.com Co to jest IdyllaOS? IdyllaOS jest to mały, prosty, uniksopodobny, wielozadaniowy oraz
Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86
Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86 Spis treści Wprowadzenie... 11 1. Architektura procesorów rodziny x86... 17 1.1. Model procesoró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
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
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
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
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
Wykład 10 Zarządzanie pamięcią
Wykład 10 Zarządzanie pamięcią część pierwsza: pamięć jądra Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Sprzeczności przy projektowaniu systemu zarządzania pamięcią Implementuj możliwie
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
Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.4
Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.4 Synchronizacja wątków Omawiane zagadnienia Czym jest synchronizacja wątków? W jakim celu stosuje się mechanizmy
Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora
Planowanie przydziału procesora W pamięci operacyjnej znajduje się kilka procesów jednocześnie. Kiedy jakiś proces musi czekać, system operacyjny odbiera mu procesor i oddaje do dyspozycji innego procesu.
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()
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
Planowanie przydziału procesora
Planowanie przydziału procesora W pamięci operacyjnej znajduje się kilka procesów jednocześnie. Kiedy jakiś proces musi czekać, system operacyjny odbiera mu procesor i oddaje do dyspozycji innego procesu.
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
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ć
projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro
projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro Rygorystyczny (twardy) system operacyjny czasu rzeczywistego. Jego charakterystyczną
Semafor ustaw_semafor(key_t nazwa, int start); Semafor usun_semafor(semafor sem); void signal(semafor sem); void wait(semafor sem);
Semafory przypomnienie semafory służą ochronie dostępu procesów do sekcji krytycznej; na semaforach dostępne są dwie operacje: podniesienie semafora signal, opuszczenie semafora wait opuszczony semafor
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ść
Proces z sekcją krytyczną. Synchronizacja procesów. Synchronizacja procesów, cd. Synchronizacja procesów, cd. Synchronizacja procesów, cd
Synchronizacja procesów Proces producenta - zmodyfikowany (licznik) produkuj jednostka w nast_p while licznik =n do nic_nie_rob; bufor [we] := nast_p; we=we+1 mod n; licznik:=licznik+1; Zmodyfikowany proces
Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.
Procesy i wątki Proces Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz
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
Zarządzanie procesorem
Zarządzanie procesorem 1. Koncepcja procesu 2. Blok kontrolny procesu 3. Planowanie (szeregowanie) procesów! rodzaje planistów! kryteria planowania 4. Algorytmy planowania! FCFS! SJF! RR! planowanie priorytetowe!
Podstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie
Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu
Proces Procesy i wątki Proces jest wykonywanym programem. Wykonanie procesu musi przebiegać w sposób sekwencyjny ( w dowolnej chwili na zamówienie naszego procesu może być wykonany co najwyżej jeden rozkaz
Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.
Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na
PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec
PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty
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.
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
Wątki jądra. Maciej Szwaja
Wątki jądra Maciej Szwaja Czym są wątki jądra? Lekkie procesy, działające asynchronicznie w przestrzeni jądra (podobnie jak zwykłe wątki w przestrzeni użytkownika), niezwiązane z żadnym procesem użytkownika
Pliki. Funkcje tworzące pliki i operujące na nich opisane są w części 2 pomocy systemowej. Tworzenie i otwieranie plików:
Pliki W celu wykonania jakiejkolwiek operacji na istniejącym pliku, plik ten musi zostać otwarty, natomiast jeśli plik jeszcze nie istnieje, to musi zostać utworzony. Plik może zostać otwarty w trybie:
Pomoc dla użytkowników systemu asix 6 i 7. Drajwer Bufor. Dok. Nr PLP6021 Wersja:
Pomoc dla użytkowników systemu asix 6 i 7 www.asix.com.pl Drajwer Bufor Dok. Nr PLP6021 Wersja: 2012-03-16 ASKOM i asix to zastrzeżone znaki firmy ASKOM Sp. z o. o., Gliwice. Inne występujące w tekście
Kompilator języka C na procesor 8051 RC51 implementacja
Kompilator języka C na procesor 8051 RC51 implementacja Implementowane typy danych bit 1 bit char lub char signed 8 bitów char unsigned 8 bitów int lub signed int 16 bitów unsigned int 16 bitów long lub
Komunikacja za pomocą potoków. Tomasz Borzyszkowski
Komunikacja za pomocą potoków Tomasz Borzyszkowski Wstęp Sygnały, omówione wcześniej, są użyteczne w sytuacjach błędnych lub innych wyjątkowych stanach programu, jednak nie nadają się do przekazywania
Materiały pomocnicze 1
JĄDRO SYSEMU Jądro systemu stanowi główny interfejs między sprzętem (surową maszyną), a systemem operacyjnym. JĄDRO SYSEMU inne elementy systemu jądro systemu surowa maszyna 2 PODSAWOWE UDOGODIEIA SPRZĘOWE
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ę
Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści
Kolejki planowania procesów Diagram kolejek Kolejka zadań (job queue) - tworzą ją procesy wchodzące do systemu. Kolejka procesów gotowych (ready queue) - procesy gotowe do działania, umieszczone w pamięci,
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
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ęć
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
9. Problem wzajemnego wykluczania i sekcji krytycznej
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 9. Problem wzajemnego wykluczania i sekcji krytycznej 9.1 Przeplot i współużywalność zasobów Wyróżniamy dwa rodzaje zasobów: 1. Zasoby współużywalne
Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post blokuje aplikację.
J. Ułasiewicz Programowanie aplikacji współbieżnych 1 11 11.1 abstrakcyjne Semafor nie jest mechanizmem strukturalnym. Aplikacje pisane z użyciem semaforów są podatne na błędy. Np. brak operacji sem_post
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
Podstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 12 Struktury, unie, pola bitowe 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Struktury 2 Struktury Struktury to złożone typy danych
Mechanizmy z grupy IPC
Mechanizmy z grupy IPC Podobnie jak łącza, IPC (Inter Process Communication) jest grupą mechanizmów komunikacji i synchronizacji procesów działających w ramach tego samego systemu operacyjnego. W skład
Wykład 11 Zarządzanie pamięcią
Wykład 11 Zarządzanie pamięcią część druga: przestrzeń adresowa procesu Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB Pamięć wirtualna Idea: W danej chwili większość procesów potrzebuje