Procesy i wątki. Wątki. Procesy
|
|
- Helena Jabłońska
- 6 lat temu
- Przeglądów:
Transkrypt
1 Procesy i wątki Procesy Koncepcja procesu. Planowanie procesów. Działania na procesach. Procesy współpracujące. Komunikacja międzyprocesowa. Wątki Implementacja wątków. Modele wielowątkowości. Schematy wielowątkowości. Zagadnienia dotyczące wątków. Przykłady implementacji wątków. Wiesław Płaczek Systemy Operacyjne: Wykład 3 1
2 Koncepcja procesu Jak nazwać wszystkie czynności procesora? Ø System wsadowy: zadania (jobs); Ø System z podziałem czasu: programy użytkownika (user programs) lub prace (tasks). Terminy zadanie i proces czasami używane są zamiennie obecnie preferowany jest termin proces. Proces program w trakcie wykonywania; jednostka pracy w większości systemów; program sam z siebie nie jest procesem jest obiektem pasywnym (plik z listą instrukcji), a proces jest obiektem aktywnym. W skład procesu wchodzi: Kod programu (text section); Licznik rozkazów (program counter); Stos procesu (process stack) dane tymczasowe. Sekcja danych (data section) zmienne globalne. Wiesław Płaczek Systemy Operacyjne: Wykład 3 2
3 Stan procesu Wykonujący się proces zmienia swój stan (state). Każdy proces może się znajdować w jednym z następujących stanów: Nowy: proces jest tworzony; Gotowy: proces czeka na przydział procesora; Aktywny: są wykonywane instrukcje; Czekający: proces czeka na wystąpienie jakiegoś zdarzenia (np. zakończenie operacji WE/WY); Zakończony: proces zakończył działanie. Na jednym procesorze w każdej chwili tylko jeden proces może być aktywny, ale wiele procesów może być gotowych do działania lub czekających. Wiesław Płaczek Systemy Operacyjne: Wykład 3 3
4 Diagram stanów procesu Nowy Przyjęcie Zakończony Przerwanie Wyjście Gotowy Aktywny Obsłużenie zdarzenia lub operacji WE/WY Decyzja planisty Czekający Oczekiwanie na zdarzenie lub na wykonanie operacji WE/WY Wiesław Płaczek Systemy Operacyjne: Wykład 3 4
5 Blok kontrolny procesu Proces jest reprezentowany w systemie przez blok kontrolny procesu (process control block PCB), który zawiera następujące informacje: Stan procesu: nowy, gotowy, aktywny itd. Licznik rozkazów: wskazuje adres następnego rozkazu do wykonania w procesie. Rejestry procesora: akumulatory, rejestry indeksowe, wskaźniki stosu, rejestry ogólnego przeznaczenia, rejestry warunków; ich typy i liczba zależy od architektury komputera. Informacje o planowaniu przydziału procesora: priorytet procesu, wskaźniki do kolejek planowania i inne parametry planowania. Informacje o zarządzaniu pamięcią: zawartości rejestrów granicznych, tablice stron lub segmentów zależnie od stosowanego systemu pamięci. Informacje do rozliczeń: ilość zużytego czasu procesora i czasu rzeczywistego, ograniczenia, numery kont, numery procesów itd. Informacje o stanie WE/WY: informacje o urządzeniach WE/WY przydzielonych do procesu, wykaz otwartych plików itd. Wiesław Płaczek Systemy Operacyjne: Wykład 3 5
6 Blok kontrolny procesu Stan procesu Numer procesu Licznik rozkazów Rejestry Ograniczenia pamięci Wykaz otwartych plików. Wiesław Płaczek Systemy Operacyjne: Wykład 3 6
7 Przełączanie procesora od procesu do procesu Proces P0 System Operacyjny Proces P1 Wykonywanie Przerwanie lub wywołanie systemowe Bezczynność Wykonywanie Przechowaj stan w bloku kontrolnym 0 Odtwórz stan z bloku kontrolnego 1 Przerwanie lub wywołanie systemowe Przechowaj stan w bloku kontrolnym 1 Odtwórz stan z bloku kontrolnego 0 Bezczynność Wykonywanie Bezczynność Wiesław Płaczek Systemy Operacyjne: Wykład 3 7
8 Planowanie procesów Celem planowania procesów jest jak najlepsze wykorzystanie procesora szczególnie ważne w systemach wieloprogramowych z podziałem czasu. Kolejki planowania zbiory procesów czekających na jakieś zdarzenia: Kolejka zadań (job queues): zbiór wszystkich procesów w systemie. Kolejka procesów gotowych (ready queue): zbiór procesów rezydujących w pamięci operacyjnej, gotowych i czekających na wykonanie (ma postać listy powiązanej). Kolejka do urządzenia (device queue): zbiór procesów czekających na konkretne urządzenie WE/WY każde urządzenie ma własną kolejkę. Ø Procesy wędrują między różnymi kolejkami. Wiesław Płaczek Systemy Operacyjne: Wykład 3 8
9 Kolejki procesów Nagłówek kolejki Blok kontrolny 7 Blok kontrolny 2 Kolejka Czoło procesów gotowych Ogon Rejestry Rejestry Jednostka taśmowa 0 Jednostka taśmowa 1 Czoło Ogon Czoło Ogon Blok kontrolny 3 Blok kontrolny 14 Blok kontrolny 6 Jednostka dyskowa 0 Jednostka terminalu 0 Czoło Ogon Czoło Ogon Blok kontrolny 5 Wiesław Płaczek Systemy Operacyjne: Wykład 3 9
10 Diagram kolejek planowania procesów Kolejka procesów gotowych CPU WE/WY Kolejka operacji WE/WY Zamówienie operacji WE/WY Zużycie kwantu czasu Proces potomny działa Powołanie procesu potomnego Obsługa przerwania Wystąpienie przerwania Wiesław Płaczek Systemy Operacyjne: Wykład 3 10
11 Planiści (Schedulers) Planista (program szeregujący) program systemowy wybierający procesy z kolejek. Planista długoterminowy (long-term scheduler) lub planista zadań (job scheduler) wybiera procesy z puli zadań (zwykle na dyskach) i ładuje do pamięci operacyjnej (do kolejki procesów gotowych); w niektórych systemach nieobecny, np. UNIX, MS Windows. Ø Wywoływany jest rzadziej (sekundy, minuty) może być wolny. Ø Nadzoruje stopień wieloprogramowości, tj. liczbę procesów w pamięci (bardzo ważne dla wydajności systemu komputerowego). Planista krótkoterminowy (short-term scheduler) lub planista przydziału procesora (CPU scheduler) wybiera jeden proces spośród procesów gotowych do wykonania i przydziela mu procesor. Ø Wywoływany jest często (milisekundy) musi być szybki! Procesy można podzielić na: Procesy związane z WE/WY (I/O-bound) większość czasu spędzają na wykonywaniu operacji WE/WY, a mniej używają procesora. Procesy związane z procesorem (CPU-bound) większość czasu spędzają na operacjach wykonywanych przez procesor, a tylko sporadycznie korzystają z WE/WY. Wiesław Płaczek Systemy Operacyjne: Wykład 3 11
12 Planowanie średnioterminowe Planista średnioterminowy (mid-term scheduler) odpowiedzialny za wymianę (swapping) procesów między pamięcią operacyjną a dyskiem może być stosowany w niektórych systemach, zwłaszcza z podziałem czasu. Sprowadź do pamięci Usunięte procesy częściowo wykonane Usuń z pamięci Kolejka procesów gotowych CPU Koniec WE/WY Kolejka operacji oczekujących na WE/WY Wiesław Płaczek Systemy Operacyjne: Wykład 3 12
13 Przełączanie kontekstu Przełączanie procesora do innego procesu wymaga przechowania stanu starego procesu i załadowania przechowanego stanu nowego procesu przełączanie kontekstu (context switch). Czas przełączania kontekstu jest czystą daniną na rzecz systemu system nie wykonuje żadnej użytecznej pracy podczas tej czynności. Wartość czasu przełączania zależy od możliwości sprzętu (typowo kilka milisekund). Niektóre procesory mają po kilka zbiorów rejestrów: przełączanie kontekstu zmiana wartości wskaźnika do bieżącego zbioru rejestrów (np. Sun UltraSPARC). Przełączanie kontekstu jest nierzadko wąskim gardłem w systemach operacyjnych rozwiązanie: wątki. Wiesław Płaczek Systemy Operacyjne: Wykład 3 13
14 Działania na procesach Proces macierzysty (parent process) tworzy procesy potomne (children processes) przy użyciu wywołania systemowego a te mogą tworzyć dalsze procesy drzewo procesów. Dzielenie zasobów możliwości: Proces macierzysty i procesy potomne dzielą wszystkie zasoby. Procesy potomne dzielą podzbiór zasobów procesu macierzystego. Proces macierzysty i potomny nie dzielą żadnych zasobów. Wykonywanie możliwości: Proces macierzysty i procesy potomne wykonują się współbieżnie. Proces macierzysty czeka na zakończenie procesów potomnych. Przestrzeń adresowa możliwości: Proces potomny staje się kopią procesu macierzystego (UNIX: fork). Proces potomny otrzymuje nowy program (UNIX: exec). Wiesław Płaczek Systemy Operacyjne: Wykład 3 14
15 Drzewo procesów w systemie UNIX Proces root Proces pagedemon Proces swapper Proces init Proces Proces Proces Wiesław Płaczek Systemy Operacyjne: Wykład 3 15
16 Kończenie procesu Proces wykonuje ostatnią komendę i prosi system operacyjny (poprzez funkcję exit), aby go usunął. Proces może przekazać dane (wyjście) do procesu macierzystego (za pomocą funkcji wait). Wszystkie zasoby procesu zostają odebrane przez system operacyjny. Proces macierzysty może zakończyć wykonywanie procesu potomnego (np. funkcją abort), gdy: Potomek nadużył któregoś z przydzielonych zasobów; Wykonywane przez potomka zadanie stało się zbędne; Proces macierzysty kończy swoje działanie, a system operacyjny nie pozwala potomkowi na dalsze działanie; ü W niektórych systemach następuje tzw. kaskadowe kończenie wszystkich procesów będących potomkami (aż do ostatniego pokolenia) zakończonego procesu macierzystego zwykle inicjowane jest przez system operacyjny. Wiesław Płaczek Systemy Operacyjne: Wykład 3 16
17 Procesy współpracujące Proces niezależny (independent) proces, który nie może oddziaływać na inne procesy w systemie. Proces współpracujący (cooperating) proces, który może wpływać na inne procesy lub inne procesy mogą wpływać na niego, np. przez współdzielenie danych. Ø Zalety współpracy procesów: J dzielenie informacji (np. plików); J przyspieszanie obliczeń (podział zadania na podzadania i wykonywanie równoległe przy wielu procesorach itd.); J modularność (modularny system z podziałem na osobne procesy); J wygoda (np. możliwość wykonywania wielu zadań równolegle). Wiesław Płaczek Systemy Operacyjne: Wykład 3 17
18 Problem producent-konsument Proces producent (producer) wytwarza informacje, które zużywa proces konsument (consumer) popularny wzorzec współpracujących procesów (np. program drukujący wytwarza znaki, które są pobierane przez program obsługi drukarki). Potrzebny jest bufor, który może być zapełniany przez producenta, a opróżniany przez konsumenta: Bufor nieograniczony (unbounded buffer) brak praktycznych ograniczeń na rozmiar bufora; Bufor ograniczony (bounded buffer) ma ustaloną długość. Bufor może być dostarczony przez system operacyjny za pomocą mechanizmu komunikacji międzyprocesowej (IPC) lub stworzony przez programistę w pamięci dzielonej. Procesy producenta i konsumenta muszą podlegać synchronizacji, aby wszystkie jednostki towaru mogły być wiernie przekazane od producenta do konsumenta. Wiesław Płaczek Systemy Operacyjne: Wykład 3 18
19 Komunikacja międzyprocesowa Komunikacja międzyprocesowa (interprocess communication IPC) mechanizm systemu operacyjnego umożliwiający procesom łączność i synchronizację. System przekazywania komunikatów (message system) procesy komunikują się między sobą bez odwoływania się do zmiennych współdzielonych. Mechanizm IPC dostarcza dwie operacje: Ø nadaj(komunikat) rozmiar komunikatu może być stały lub zmienny; Ø odbierz(komunikat) Jeżeli procesy P i Q chcą się ze sobą komunikować, to muszą: Utworzyć między sobą łącze komunikacyjne (communication link); Wymieniać komunikaty przy użyciu operacji nadaj/odbierz. Implementacja łącza komunikacyjnego: Fizyczna (np. pamięć dzielona, szyna sprzętowa, sieć); Logiczna (logiczne cechy łącza). Wiesław Płaczek Systemy Operacyjne: Wykład 3 19
20 Pytania implementacyjne Jak ustawia się połączenia? Patrz Metody logicznej implementacji poniżej. Czy łącze może być powiązane z więcej niż dwoma procesami? Ile może być łączy między każdą parą procesów? Jaka jest pojemność łącza? Czy łącze ma jakiś obszar buforowy? Jeśli tak, to jak duży? Jaki jest rozmiar komunikatów? Czy łącze akceptuje komunikaty stałej czy zmiennej długości? Czy łącze jest jednokierunkowe, czy dwukierunkowe? Metody logicznej implementacji: Komunikacja bezpośrednia lub pośrednia; Komunikacja synchroniczna lub asynchroniczna; Komunikacja symetryczna lub asymetryczna (nadaj odbierz); Buforowanie automatyczne lub jawne; Wysyłanie na zasadzie tworzenia kopii lub odsyłacza; Komunikaty stałej lub zmiennej długości. Wiesław Płaczek Systemy Operacyjne: Wykład 3 20
21 Komunikacja bezpośrednia W komunikacji bezpośredniej (direct communication) proces musi jawnie nazwać nadawcę lub odbiorcę: Ø nadaj(p, komunikat) nadaj komunikat do procesu P; Ø odbierz(q, komunikat) odbierz komunikat od procesu Q. Własności łącza komunikacyjnego: Łącze jest ustawiane automatycznie (wystarczy aby procesy znały swoje identyfikatory); Łącze dotyczy dokładnie dwu procesów; Między każdą parą procesów istnieje dokładnie jedno łącze; Łącze może być jednokierunkowe, choć zwykle jest dwukierunkowe. L Wada: ograniczona modularność zmiana identyfikatora jednego procesu może pociągać za sobą konieczność zweryfikowania definicji wszystkich innych procesów. Wiesław Płaczek Systemy Operacyjne: Wykład 3 21
22 Komunikacja pośrednia W komunikacji pośredniej (indirect communication) komunikaty są nadawane i odbierane za pomocą skrzynek pocztowych (mailboxes), zwanych także portami (ports). Każda skrzynka pocztowa ma jednoznaczną identyfikację; Procesy mogą się komunikować tylko wtedy, gdy mają jakąś wspólną skrzynkę pocztową. Operacje nadawania i odbioru komunikatów: Ø nadaj(a, komunikat) nadaj komunikat do skrzynki A; Ø odbierz(a, komunikat) odbierz komunikat ze skrzynki A. Własności łącza komunikacyjnego: Łącze między procesami jest ustawiane tylko wtedy, gdy dzielą one jakąś skrzynkę pocztową; Łącze może być związane z więcej niż dwoma procesami; Każda para komunikujących się procesów może mieć wiele łączy; Łącze może być jednokierunkowe lub dwukierunkowe. Wiesław Płaczek Systemy Operacyjne: Wykład 3 22
23 Zagadnienia komunikacji pośredniej Dzielenie skrzynki pocztowej: Procesy P1, P2 i P3 dzielą skrzynkę A. Proces P1 wysyła komunikat, a procesy P2 i P3 go odbierają. Ø Kto otrzyma komunikat? Możliwe rozwiązania: Zezwalać na łącza tylko między dwoma procesami. Zezwalać tylko jednemu procesowi na wykonanie w danej chwili operacji odbierz. Pozwolić, aby system wybierał arbitralnie lub według pewnego algorytmu (np. rotacyjnego) odbiorcę komunikatu, powiadamiając nadawcę, kto został odbiorcą. Kto może być właścicielem skrzynki pocztowej? Proces: proces właściciel może tylko odbierać, proces użytkownik może tylko nadawać komunikaty (skrzynka znika wraz z właścicielem). System operacyjny musi dostarczać mechanizmów do: ü tworzenia nowej skrzynki; ü nadawania i odbierania komunikatów za pośrednictwem skrzynki; ü usuwania skrzynki. Wiesław Płaczek Systemy Operacyjne: Wykład 3 23
24 Synchronizacja i buforowanie Synchronizacja Przekazywanie komunikatów może być: blokujące, czyli synchroniczne (synchronous); nieblokujące, czyli asynchroniczne (asynchronous). Operacje nadaj i odbierz mogą być blokujące lub nieblokujące. Buforowanie Łącze ma pewną pojemność; komunikaty są w nim ułożone w postaci kolejki możliwe pojemności: Pojemność zerowa: maksymalna długość kolejki wynosi 0, czyli nadawca musi czekać aż odbiorca odbierze komunikat (synchronizacja typu rendezvous) komunikacja bez buforowania. Pojemność ograniczona: kolejka ma skończoną długość n; nadawca musi czekać kiedy kolejka jest pełna (blokowanie). Pojemność nieograniczona: kolejka ma (potencjalnie) nieskończoną długość nadawca nigdy nie jest blokowany. Wiesław Płaczek Systemy Operacyjne: Wykład 3 24
25 Przykład system Mach Ø Mach (Carnegie-Mellon University): system operacyjny oparty na komunikatach jądro umożliwia tworzenie wielu zadań, które są podobne do procesów, ale mają wiele wątków sterowania. Większość komunikacji odbywa się poprzez przesyłanie komunikatów (nawet wywołania systemowe są wykonywane za pomocą komunikatów). Komunikaty przekazywane są za pośrednictwem skrzynek pocztowych, nazywanych portami. Przy tworzeniu każdego zadania powstają dwie skrzynki pocztowe: Skrzynka jądra (kernel mailbox) używana przez jądro do komunikacji z zadaniem. Skrzynka zawiadomień (notify mailbox) do niej jądro wysyła zawiadomienia o występujących zdarzeniach. Do przesyłania komunikatów służą trzy funkcje systemowe: port_allocate tworzy nową skrzynkę i przydziela pamięć na kolejkę jej komunikatów; zadanie tworzące skrzynkę zostaje jej właścicielem i dostaje prawo odbioru z niej komunikatów; komunikaty składają z nagłówka o stałej długości i danych o różnej długości od tego samego nadawcy są ustawiane w kolejce FIFO (first-in, firt-out), ale od różnych nadawców mogą być w dowolnym porządku. msg_send wysyła komunikat do skrzynki pocztowej. msg_receive odbiera komunikat ze skrzynki pocztowej. Ø Ponadto, do zdalnego wywołania procedury (RPC) służy funkcja msg_rpc. Wiesław Płaczek Systemy Operacyjne: Wykład 3 25
26 Przykład system MS Windows XP/Vista/7/8 System operacyjny Windows XP/Vista/7/8 tworzy zaplecze dla wielu środowisk operacyjnych, czyli podsystemów, z którymi programy użytkowe komunikują się drogą przekazywania komunikatów (są klientami serwera podsystemu). Do łączności między dwoma procesami na tej samej maszynie służy mechanizm lokalnego wywołania procedury (local procedure call LPC) podobny do RPC, ale zoptymalizowany i specyficzny dla środowiska MS Windows. Do ustanowienia i utrzymywania połączenia między dwoma procesami używany jest obiekt portu (jak w systemie Mach). Są dwa rodzaje portów: porty połączeń i porty komunikacyjne w istocie takie same, ale w zależności od sposobu użycia nadaje się im różne nazwy. Porty połączeń, zwane obiektami, są widoczne dla wszystkich procesów i umożliwiają aplikacji utworzenie kanału komunikacyjnego. Komunikacja staje się możliwa po utworzeniu/uzyskaniu uchwytu do portu. Stosowane są dwie techniki przekazywania komunikatów: Kopiowanie komunikatów między procesami za pośrednictwem kolejki komunikatów portu dla małych komunikatów, do 256 B. Za pośrednictwem obiektu sekcji (pamięci dzielonej) wysyłany jest tylko mały komunikat zawierający wskaźnik i rozmiar danych w obiekcie sekcji; stosowana przy przesyłaniu większych komunikatów szybsza, ale bardziej skomplikowana! Komunikacja może odbywać się synchronicznie lub asynchronicznie (callback). Wiesław Płaczek Systemy Operacyjne: Wykład 3 26
27 Lokalne wywołanie procedury (LPC) MS Windows XP/Vista/7/8 Żądanie połączenia Port połączeń Uchwyt Klient Uchwyt Port komunikacyjny klienta Port komunikacyjny serwera Uchwyt Serwer Obiekt sekcji dzielonej (> 256 bajtów) Wiesław Płaczek Systemy Operacyjne: Wykład 3 27
28 Komunikacja w systemach klient-serwer Gniazda (sockets) BSD UNIX: Gniazdo jest zdefiniowane jako punkt końcowy komunikacji; Gniazdo posiada adres: połączenie adresu IP i numeru portu, np. gniazdo :1625 dotyczy portu 1625 na maszynie ; Komunikacja odbywa się między parami gniazd. Zdalne wywołania procedur (remote procedure call RPC): Zdalne wywołanie procedury jest uogólnieniem mechanizmu wywołania procedury na systemy sieciowe. Komunikat zawiera identyfikator funkcji oraz parametry, które mają być jej przekazane i jest adresowany do demona RPC w odległym systemie. Klient wysyła komunikat do serwera, a serwer wykonuje odpowiednią funkcję i odsyła wyniki do klienta w oddzielnym komunikacie. Zdalne wywołania metod (remote method invocation RMI): RMI jest mechanizmem systemu Java podobnym do RPC. RMI pozwala programowi Javy działającemu na jednej maszynie wywołać metodę w zdalnym obiekcie (na innej JVM, innym komputerze). Wiesław Płaczek Systemy Operacyjne: Wykład 3 28
29 Wątki (Threads) Wątek (thread), zwany także procesem lekkim (lightweight process LWP), jest podstawową jednostką wykorzystania CPU posiada swoje indywidualne zasoby: identyfikator wątku, licznik rozkazów, zbiór rejestrów i obszar stosu. Wątek dzieli wraz z innymi równorzędnymi wątkami: sekcję kodu, sekcję danych oraz zasoby systemowe (otwarte pliki, sygnały itd.). Tradycyjny proces, tzw. ciężki (heavyweight), posiada jeden wątek. Jeżeli proces ma wiele wątków, to może wykonywać więcej niż jedno zadanie w tym samym czasie. Ø Zalety wątków: J Dzielenie zasobów sprawia, że przełączanie między wątkami oraz tworzenie wątków jest tanie w porównaniu z procesami ciężkimi. J Oszczędne wykorzystanie zasobów systemu dzięki ich współużytkowaniu. J Współpraca wielu wątków pozwala zwiększyć przepustowość i poprawić wydajność (np. jeśli jeden wątek jest zablokowany, to może działać inny). J Lepsze wykorzystanie architektury wieloprocesorowej/wielordzeniowej (wątek procesor/rdzeń) oraz dedykowanej technologii Hyper-Threading. Wiesław Płaczek Systemy Operacyjne: Wykład 3 29
30 Zadania jedno- i wielowątkowe kod dane pliki kod dane pliki rejestry stos rejestry rejestry rejestry stos stos stos wątek wątek Zadanie jednowątkowe Zadanie wielowątkowe Wiesław Płaczek Systemy Operacyjne: Wykład 3 30
31 Implementacja wątków Wątki poziomu użytkownika (user-level threads) tworzone za pomocą funkcji bibliotecznych; przełączanie między wątkami nie wymaga wzywania systemu operacyjnego. Ø Zalety: J Szybkie przełączanie między wątkami. J Wydajne obsługiwanie wielu zamówień. Ø Wady: L Przy jednowątkowym jądrze każde odwołanie wątku poziomu użytkownika do systemu powoduje wstrzymanie całego zadania. L Nieadekwatny przydział czasu procesora (zadanie wielowątkowe i jednowątkowe mogą dostawać tyle samo kwantów czasu). Wątki jądra (kernel threads) obsługiwane przez jądro systemu (np. systemy Windows XP/Vista/7/8, Linux, Solaris, Mac OS X). J Zalety: Wydajniejsze planowanie przydziału czasu procesora. L Wady: Wolniejsze przełączanie wątków zajmuje się tym jądro (za pośrednictwem przerwań). Wiesław Płaczek Systemy Operacyjne: Wykład 3 31
32 Modele wielowątkowości Model wiele na jeden (many-to-one): Wiele wątków poziomu użytkownika odwzorowanych na jeden wątek jądra (np. biblioteka green threads w Solaris, GNU Portable Threads). Może być stosowany w systemach nie posiadających wątków jądra. Model jeden na jeden (one-to-one): Każdy wątek poziomu użytkownika odwzorowany wzajemnie jednoznacznie na jeden wątek jądra. q Przykłady: systemy Windows XP/Vista/7/8, Linux, OS/2, Solaris od wersji 9. Model wiele na wiele (many-to-many): Wiele wątków poziomu użytkownika jest multipleksowanych na mniejszą lub równą liczbę wątków jądra. Pozwala systemowi operacyjnemu utworzyć dostateczną liczbę wątków jądra dobra współbieżność i dobra wydajność. Często występuje poziom pośredni w postaci procesów lekkich (LWP), będących dla wątków użytkownika czymś w rodzaju wielowątkowych wirtualnych procesorów z każdym LWP związany jest jeden wątek jądra, natomiast zwykły proces może składać się z jednego lub więcej LWP. q Przykłady: systemy Solaris do wersji 8, IRIX, HP-UX, Tru64 UNIX. Wiesław Płaczek Systemy Operacyjne: Wykład 3 32
33 wątek poziomu użytkownika Schematy wielowątkowości wątek jądra J J J J J J wiele na jeden jeden na jeden wiele na wiele Wiesław Płaczek Systemy Operacyjne: Wykład 3 33
34 Zagadnienia dotyczące wątków Kasowanie wątków (thread cancellation) Kasowanie asynchroniczne dany wątek kończy natychmiast wątek obrany za cel (target thread); może być niebezpieczne dla dzielonych zasobów przez wątki ( niespójność danych itd.). Kasowanie odroczone (deferred cancellation) wątek obrany za cel może okresowo sprawdzać, czy powinien się zakończyć, co daje mu możliwość zakończenia w sposób uporządkowany, np. wątki Pthreads posiadają punkty, w których można je bezpiecznie kasować, tzw. punkty kasowania (cancellation points). Wiesław Płaczek Systemy Operacyjne: Wykład 3 34
35 Zagadnienia dotyczące wątków c.d. Obsługa sygnałów Ø Sygnał (signal) służy w systemach uniksowych do powiadamianiu o wystąpieniu konkretnego zdarzenia (więcej na ten temat na ćwiczeniach). Ø Sygnały synchroniczne są dostarczanie do procesu, który wykonał operację powodującą sygnał, natomiast asynchroniczne pochodzą od zdarzeń zewnętrznych. Ø Możliwości dostarczania sygnałów do procesów wielowątkowych: Dostarczyć sygnał tylko do tego wątku, do którego się on odnosi. Dostarczyć sygnał do wszystkich wątków w procesie. Dostarczyć sygnał do niektórych wątków, np. tych, które go nie blokują. Przydzielić specjalny wątek do odbierania wszystkich sygnałów do procesu. Ø Różne systemy realizują różne możliwości; zależy to też od rodzaju sygnału. q Systemy MS Windows nie implementują jawnie sygnałów, można je emulować za pomocą asynchronicznych wywołań procedur (asynchronous procedure call APC) adresowane do konkretnych wątków; dodatkowo umożliwiają przekazanie funkcji, która może być wywołana przez wątek docelowy. Wiesław Płaczek Systemy Operacyjne: Wykład 3 35
36 Zagadnienia dotyczące wątków c.d. Pule wątków (thread pools) Ø Wielowątkowość jest powszechnie stosowana w serwerach WWW kiedy taki serwer otrzymuje zamówienie, wtedy tworzy wątek do jego obsługi. v Brak ograniczeń dotyczących wątków może doprowadzić do wyczerpania zasobów systemu, takich jak pamięć lub czas procesora. ü Jednym z rozwiązań jest zastosowanie puli wątków w chwili uruchomienia proces tworzy pewną liczbę wątków (pulę), które oczekują na zamówienia; kiedy nadchodzi zamówienie, wątek z puli jest budzony przez serwer, a po obsłużeniu zamówienia wraca do puli i czeka na kolejne zlecenie. J Zwykle łatwiej jest obsłużyć zamówienie za pomocą istniejącego wątku niż tworzyć do tego celu nowy wątek. J Pula wątków ogranicza liczbę wątków, co chroni przed wyczerpaniem zasobów systemowych, a także spadkiem wydajności systemu. q Np. Windows thread pool API w systemach MS Windows. Wiesław Płaczek Systemy Operacyjne: Wykład 3 36
37 Zagadnienia dotyczące wątków c.d. Lokalna pamięć wątku (thread-local storage TLS) Ø Wątki należące do procesu dzielą jego dane, co jest zaletą wielowątkowości. ü W pewnych sytuacjach wątek może potrzebować własnej kopii jakichś danych (np. identyfikator transakcji w wielowątkowych systemach transakcyjnych) lokalna pamięć wątku umożliwia każdemu wątkowi posiadanie swojej własnej kopii danych (podobna do danych typu static), np. Pthreads, Windows API, Java. Wiesław Płaczek Systemy Operacyjne: Wykład 3 37
38 Przykłady implementacji wątków P-wątki (Pthreads) specyfikacja (API) wątków standardu POSIX: Dostępne głównie w systemach uniksowych (np. Linux, Solaris, Mac OS X). MS Windows na ogół ich nie udostępniają, ale można je zainstalować korzystając z oprogramowania shareware. Udostępniane jako biblioteka poziomu użytkownika lub poziomu jądra zależnie od implementacji w danym systemie (więcej szczegółów na ćwiczeniach). Biblioteka NPTL (Native POSIX Thread Library) bardzo wydajna obsługa (tworzenie, przełączanie) dużej liczby wątków na poziomie jądra, lepsze wsparcie dla systemów wieloprocesorowych i wielordzeniowych; opracowana przez firmę Red Hat, zintegrowana z jądrem Linuksa od wersji 2.6 (część biblioteki GNU C); używa wywołania systemowego clone. Wątki w Windows XP/Vista/7/8 dostępne poprzez interfejs Windows API: Aplikacja Windows działa jako osobny proces, który może zawierać jeden lub więcej wątków stosowane jest odwzorowanie jeden na jeden. Dostarczana jest także biblioteka włókien (fiber library) stosująca odwzorowanie wątków według modelu wiele na wiele. Wiesław Płaczek Systemy Operacyjne: Wykład 3 38
39 Przykłady implementacji wątków c.d. Wątki Linuksa od wersji 2.2: Oprócz funkcji systemowej fork do powielania procesów, Linux posiada funkcję systemową clone, która umożliwia tworzenie oddzielnego procesu dzielącego przestrzeń adresową procesu macierzystego (co ma być dzielone określa się za pomocą parametrów funkcji) taki proces zachowuje się bardzo podobnie jak oddzielny wątek. Linux nie rozróżnia procesów i wątków przy odnoszeniu się do przepływu sterowania w programie używany jest na ogół terminu zadanie lub praca (task). Wątki Javy wątki na poziomie języka programowania, realizowane przez JVM; odwzorowanie w wątki jądra zależy od implementacji JVM w danym systemie. Wiesław Płaczek Systemy Operacyjne: Wykład 3 39
40 Zagadnienia 1. Czym jest proces, co wchodzi w jego skład i jakie są jego podstawowe stany? Jaka struktura reprezentuje proces w systemie, co zawiera i jak jest używana w systemach z podziałem czasu? 2. Co jest celem planowania (szeregowania) procesów? Do czego służą kolejki planowania i jakie są ich rodzaje? Scharakteryzować podstawowych planistów procesów. Na czym polega przełączanie kontekstu i jaki jest jego wpływ na wydajność systemu? 3. Jakie działania podejmuje system operacyjny przy tworzeniu oraz kończeniu procesów. 4. Jakie są zalety współpracy procesów? Na czy polega problem,,producentakonsumenta? Jakie są rodzaje komunikacji międzyprocesowej? Podać zalety oraz wady każdej z nich. 5. Co to jest wątek, jaka jest jego relacja do procesu i jakie są jego zalety? Jakie są metody implementacji wątków oraz modele wielowątkowości? Podać przykłady implementacji wątków w różnych systemach. 6. W jaki sposób realizowane jest kasowanie wątków, obsługa sygnałów przez wątki, do czego służą pule wątków, co to są dane specyficzne wątku? Wiesław Płaczek Systemy Operacyjne: Wykład 3 40
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
Bardziej szczegółowoProces 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
Bardziej szczegółowoProcesy 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
Bardziej szczegółowoStan 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
Bardziej szczegółowoprojektowanie 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
Bardziej szczegółowoKoncepcja procesu. Procesy i wątki. Diagram stanów procesu. Stan procesu. Blok kontrolny procesu Process Control Block (PCB)
Procesy i wątki Koncepcja procesu Koncepcja procesu Szeregowanie procesów (process scheduling) Operacje na procesach Procesy współpracujące Komunikacja między procesami Komunikacja w systemach typu Klient
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ółowo2.1 Pojęcie wątku... 13 2.2 Modele wielowątkowości... 15 2.3 Wybrane zagadnienia wielowątkowości... 16 2.4 Wątki POSIX... 18
Spis treści Spis treści 1 Procesy 1 1.1 Definicja procesu............................................. 1 1.2 Operacje na procesach.......................................... 3 1.3 Planowanie procesów...........................................
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ół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ół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ół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ółowoPrzerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań
Budowa systemu komputerowego Przerwania Jednostka centralna Sterownik dysku Szyna systemowa (magistrala danych) Sterownik drukarki Sterownik pamięci operacyjnej Pamięć operacyjna Sterownik sieci Przerwanie
Bardziej szczegółowoPrzerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań
Budowa systemu komputerowego Przerwania Jednostka centralna Sterownik dysku Szyna systemowa (magistrala danych) Sterownik drukarki Sterownik pamięci operacyjnej Pamięć operacyjna I NIC Sterownik sieci
Bardziej szczegółowoZarzą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!
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ół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ółowo5. Model komunikujących się procesów, komunikaty
Jędrzej Ułasiewicz str. 1 5. Model komunikujących się procesów, komunikaty Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów komunikujących się poprzez pamięć
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ółowoStan procesu. Procesy i zarządzanie procesorem. Koncepcja procesu. Diagram stanów procesu
Procesy i zarządzanie procesorem Stan procesu Koncepcja procesu i wątku Szeregowanie procesów (process scheduling) Operacje na procesach Procesy współpracujące Komunikacja między procesami Komunikacja
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ół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ół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ół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ół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ółowoStruktury systemów operacyjnych
Struktury systemów operacyjnych Zadania s.o. Usługi s.o. Budowa s.o. Podejście warstwowe Przykładowe konstrukcje Funkcje systemowe Programy systemowe Maszyny wirtualne Tworzenie i uruchamianie s.o. Procesy
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ół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ółowoProgramowanie równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz
Programowanie równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 23 października 2009 Spis treści Przedmowa...................................................
Bardziej szczegółowoSystemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy
Systemy operacyjne Systemy operacyjne Dr inż. Ignacy Pardyka Literatura Siberschatz A. i inn. Podstawy systemów operacyjnych, WNT, Warszawa Skorupski A. Podstawy budowy i działania komputerów, WKiŁ, Warszawa
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ółowoKlient-Serwer Komunikacja przy pomocy gniazd
II Klient-Serwer Komunikacja przy pomocy gniazd Gniazda pozwalają na efektywną wymianę danych pomiędzy procesami w systemie rozproszonym. Proces klienta Proces serwera gniazdko gniazdko protokół transportu
Bardziej szczegółowoStruktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami
Rok akademicki 2015/2016, Wykład nr 6 2/21 Plan wykładu nr 6 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2015/2016
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ółowoPodstawy informatyki. System operacyjny. dr inż. Adam Klimowicz
Podstawy informatyki System operacyjny dr inż. Adam Klimowicz System operacyjny OS (ang. Operating System) Program komputerowy bądź zbiór programów, który zarządza udostępnianiem zasobów komputera aplikacjom.
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ół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ółowoStruktury systemów operacyjnych
Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS
Bardziej szczegółowoSystemy operacyjne. Paweł Pełczyński
Systemy operacyjne Paweł Pełczyński ppelczynski@swspiz.pl 1 Program przedmiotu Wprowadzenie Struktura systemów operacyjnych Procesy i Wątki Komunikacja międzyprocesowa Szeregowanie procesów Zarządzanie
Bardziej szczegółowoSystemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.
Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową..
Bardziej szczegółowoBudowa systemów komputerowych
Budowa systemów komputerowych Krzysztof Patan Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski k.patan@issi.uz.zgora.pl Współczesny system komputerowy System komputerowy składa
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ółowoLEKCJA TEMAT: Zasada działania komputera.
LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem
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ółowoSystemy rozproszone System rozproszony
Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową.
Bardziej szczegółowowspółbieżność - zdolność do przetwarzania wielu zadań jednocześnie
Systemy rozproszone Wg Wikipedii: System rozproszony to zbiór niezależnych urządzeń (komputerów) połączonych w jedną, spójną logicznie całość. Połączenie najczęściej realizowane jest przez sieć komputerową.
Bardziej szczegółowoPrzełą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,
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ółowoJądro systemu operacyjnego
Jądro systemu operacyjnego Jądro (ang. kernel) jest to podstawowa część systemu operacyjnego, która jest odpowiedzialna za wszystkie jego zadania. Zapewnia ono usługi systemowe takie jak: komunikacja między
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Tydzień 11 Wejście - wyjście Urządzenia zewnętrzne Wyjściowe monitor drukarka Wejściowe klawiatura, mysz dyski, skanery Komunikacyjne karta sieciowa, modem Urządzenie zewnętrzne
Bardziej szczegółowoArchitektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)
Struktury systemów komputerowych Architektura systemu komputerowego Działanie systemu komputerowego Struktura we/wy Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Architektura 2.1 2.2 Działanie
Bardziej szczegółowoStruktura systemów komputerowych
Struktura systemów komputerowych Działanie systemu komputerowego Struktury WE/WY Struktura pamięci Hierarchia pamięci Ochrona sprzętowa Ogólna architektura systemu Wykład 6, Systemy operacyjne (studia
Bardziej szczegółowoDefinicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego
Systemy operacyjne wprowadzenie 1 Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) System operacyjny jest zbiorem ręcznych i automatycznych procedur, które pozwalają grupie osób na
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ół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ółowoSystemy operacyjne Procesy i wątki
Systemy operacyjne Procesy i wątki [2] Proces w systemie operacyjnym Procesem nazywamy wykonujący się program wraz z jego środowiskiem obliczeniowym. Proces stanowi podstawowy obiekt dynamiczny w systemie
Bardziej szczegółowoOd uczestników szkolenia wymagana jest umiejętność programowania w języku C oraz podstawowa znajomość obsługi systemu Windows.
Kod szkolenia: Tytuł szkolenia: PS/WIN Programowanie systemowe w Windows Dni: 5 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów tworzących aplikacje w systemach z rodziny Microsoft Windows,
Bardziej szczegółowoArchitektura komputerów. Układy wejścia-wyjścia komputera
Architektura komputerów Układy wejścia-wyjścia komputera Wspópraca komputera z urządzeniami zewnętrznymi Integracja urządzeń w systemach: sprzętowa - interfejs programowa - protokół sterujący Interfejs
Bardziej szczegółowoArchitektura i administracja systemów operacyjnych
Architektura i administracja systemów operacyjnych Wykład 1 Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Informacje wstępne Prowadzący
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ółowoInformatyka. informatyka i nauki komputerowe (computer science)
Informatyka informacja i jej reprezentacje informatyka i nauki komputerowe (computer science) algorytmika efektywność algorytmów poprawność algorytmów złożoność obliczeniowa, problemy NP-trudne (NP-zupełne)
Bardziej szczegółowoStworzenie 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).
Bardziej szczegółowo1. Etapy rozwoju systemów komputerowych
1 Sieciowe Systemy Operacyjne Wprowadzenie do wykładu, podstawowe definicje, rola 1 systemu operacyjnego Procesy POSIX, zarządzanie procesami 2 Pliki, komunikacja przez pliki, blokowanie 1 Łącza nazwane
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ółowoAkademia Techniczno-Humanistyczna w Bielsku-Białej
Akademia Techniczno-Humanistyczna w Bielsku-Białej Wydział Budowy Maszyn i Informatyki Laboratorium z sieci komputerowych Ćwiczenie numer: 9 Temat ćwiczenia: Aplikacje klient-serwer. 1. Wstęp teoretyczny.
Bardziej szczegółowoJadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008
Jadro monolityczne vs. mikrojadro 9 grudnia 2008 Jadro monolityczne vs. mikrojadro Jadro monolityczne vs. mikrojadro Jadro monolityczne vs. mikrojadro Jadro monolityczne Aplikacje użytownika wywołania
Bardziej szczegółowoTryby komunikacji między procesami w standardzie Message Passing Interface. Piotr Stasiak Krzysztof Materla
Tryby komunikacji między procesami w standardzie Message Passing Interface Piotr Stasiak 171011 Krzysztof Materla 171065 Wstęp MPI to standard przesyłania wiadomości (komunikatów) pomiędzy procesami programów
Bardziej szczegółowoKomunikacja 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
Bardziej szczegółowoSystemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych
Systemy operacyjne Systemy operacyjne Inżynieria obliczeniowa, II rok Krzysztof Wilk Katedra Informatyki Stosowanej i Modelowania wilk@agh.edu.pl Wykłady: 7 tygodni po 2 h, s. 209, B-4 Projekty: 2 godziny
Bardziej szczegółowoMariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1
Mariusz Rudnicki mariusz.rudnicki@eti.pg.gda.pl PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1 Przedmiot PSCR Przedmiot PSCR Wykład do połowy semestru Laboratorium od połowy semestru Projekt Zaliczenie
Bardziej szczegółowoSieciowe Systemy Operacyjne
1 Sieciowe Systemy Operacyjne 1. Etapy rozwoju systemów komputerowych System scentralizowany System sieciowy System rozproszony 1.1 System scentralizowany Zastosowane duże komputery (mainframes ) Użytkownicy
Bardziej szczegółowoWieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów
Wieloprogramowanie Systemy Operacyjne Procesy i wątki dr inż. Tomasz Jordan Kruk T.Kruk@ia.pw.edu.pl Instytut utomatyki i Informatyki Stosowanej Politechnika Warszawska One program counter B C D switch
Bardziej szczegółowoSystem operacyjny System operacyjny
System operacyjny System operacyjny (ang. operating system) jest programem (grupą programów), który pośredniczy między użytkownikiem komputera a sprzętem komputerowym. Jest on niezbędny do prawidłowej
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ół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ółowoWspółbieżność w środowisku Java
Współbieżność w środowisku Java Wątki i ich synchronizacja Zagadnienia Tworzenie wątków Stany wątków i ich zmiana Demony Synchronizacja wątków wzajemne wykluczanie oczekiwanie na zmiennych warunkowych
Bardziej szczegółowoSoftware RAID funkcje dostarcza zaimplementowane oprogramowanie, bez wykorzystania z dedykowanych kontrolerów.
Jakub Młynarczyk Software RAID funkcje dostarcza zaimplementowane oprogramowanie, bez wykorzystania z dedykowanych kontrolerów. Hardware RAID polega na zastosowaniu odpowiednich kontrolerów do których
Bardziej szczegółowoZiMSK. VLAN, trunk, intervlan-routing 1
ZiMSK dr inż. Łukasz Sturgulewski, luk@kis.p.lodz.pl, http://luk.kis.p.lodz.pl/ dr inż. Artur Sierszeń, asiersz@kis.p.lodz.pl dr inż. Andrzej Frączyk, a.fraczyk@kis.p.lodz.pl VLAN, trunk, intervlan-routing
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak 1
Dariusz Wawrzyniak Politechnika Poznańska Instytut Informatyki ul. Piotrowo 2 (CW, pok. 5) 60-965 Poznań Dariusz.Wawrzyniak@cs.put.poznan.pl Dariusz.Wawrzyniak@put.edu.pl www.cs.put.poznan.pl/dwawrzyniak
Bardziej szczegółowoSieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski
Sieci komputerowe Wykład 5: Warstwa transportowa: TCP i UDP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 5 1 / 22 Warstwa transportowa Cechy charakterystyczne:
Bardziej szczegółowoKomputery przemysłowe i systemy wbudowane
Komputery przemysłowe i systemy wbudowane Systemy operacyjne w systemach wbudowanych 2 KSEM WETI PG October 7, 2015 System operacyjny System operacyjny (OS) - opcjonalny w systemach wbudowanych. zbiór
Bardziej szczegółowoSystemy operacyjne III
Systemy operacyjne III WYKŁAD Jan Kazimirski Pamięć wirtualna Stronicowanie Pamięć podzielona na niewielki bloki Bloki procesu to strony a bloki fizyczne to ramki System operacyjny przechowuje dla każdego
Bardziej szczegółowoObliczenia równoległe i rozproszone. Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz
Obliczenia równoległe i rozproszone Praca zbiorowa pod redakcją Andrzeja Karbowskiego i Ewy Niewiadomskiej-Szynkiewicz 15 czerwca 2001 Spis treści Przedmowa............................................
Bardziej szczegółowoInformatyka, systemy, sieci komputerowe
Informatyka, systemy, sieci komputerowe Systemy operacyjne wykład 2 Procesy i wątki issk 1 SO koncepcja procesu i zasobu Proces jest elementarną jednostką pracy zarządzaną przez system operacyjny, wykonującym
Bardziej szczegółowoWprowadzenie do systemów operacyjnych
SOE - Systemy Operacyjne Wykład 1 Wprowadzenie do systemów operacyjnych dr inż. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW System komputerowy Podstawowe pojęcia System operacyjny
Bardziej szczegółowoSystemy Operacyjne. wykład 1. Adam Kolany. Październik, Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu
Systemy Operacyjne wykład 1. Adam Kolany Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu dr.a.kolany@wp.pl Październik, 2007 Literatura DrAK (PWSZ) Systemy Operacyjne 11 Październik,
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ółowoSystemy Operacyjne - zarządzanie procesami
Katedra Informatyki, Politechnika Świętokrzyska w Kielcach Kielce, 26 października 2010 1 1 Proces sekwencyjny 2 Cykl życia procesu 3 Deskryptor procesu 4 współbieżne 2 3 1 Motywacja 2 Kolejki 3 Planiści
Bardziej szczegółowoWstęp do programowania 2
Wstęp do programowania 2 wykład 10 Zadania Agata Półrola Wydział Matematyki UŁ 2005/2006 http://www.math.uni.lodz.pl/~polrola Współbieżność dotychczasowe programy wykonywały akcje sekwencyjnie Ada umożliwia
Bardziej szczegółowoDodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych
Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych B.1. Dostęp do urządzeń komunikacyjnych Sterowniki urządzeń zewnętrznych widziane są przez procesor jako zestawy rejestrów
Bardziej szczegółowoArchitektura systemu komputerowego
Architektura systemu komputerowego Klawiatura 1 2 Drukarka Mysz Monitor CPU Sterownik dysku Sterownik USB Sterownik PS/2 lub USB Sterownik portu szeregowego Sterownik wideo Pamięć operacyjna Działanie
Bardziej szczegółowoSystem komputerowy. Sprzęt. System komputerowy. Oprogramowanie
System komputerowy System komputerowy (ang. computer system) to układ współdziałaniadwóch składowych: sprzętu komputerowegooraz oprogramowania, działających coraz częściej również w ramach sieci komputerowej.
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ół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ółowoWprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,
Bardziej szczegółowoSystemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008
Systemy operacyjne oparte na mikrojądrze na przykładzie Minix3. Maciej Łaszcz, Wojciech Łowiec, Patryk Spanily 2 XII 2008 Systemy oparte na mikrojądrze Jądro systemu jest bardzo małe Architektura mocno
Bardziej szczegółowoWprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera
Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Miejsce, rola i zadania systemu operacyjnego
Bardziej szczegółowoWprowadzenie do systemów operacyjnych. mgr inż. Krzysztof Szałajko
Wprowadzenie do systemów operacyjnych mgr inż. Krzysztof Szałajko Co to jest system operacyjny? Co to jest system komputerowy? 2 / 37 Definicja: system operacyjny System operacyjny jest programem pośredniczącym
Bardziej szczegółowo