2.1 Pojęcie wątku Modele wielowątkowości Wybrane zagadnienia wielowątkowości Wątki POSIX... 18

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

Download "2.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"

Transkrypt

1 Spis treści Spis treści 1 Procesy Definicja procesu Operacje na procesach Planowanie procesów Procesy współpracujące Komunikacja międzyprocesowa Komunikacja w systemach klient serwer Problemy Watki Pojęcie wątku Modele wielowątkowości Wybrane zagadnienia wielowątkowości Wątki POSIX Procesy 1.1 Definicja procesu Rys historyczny Systemy wsadowe System wykonuje jedno zadanie (program użytkownika), po jego zakończeniu przechodzi do następnego Brak współbieżności, brak wieloprogramowości - jedno zadanie w systemie, pozostałe czekają na wczytanie z pamięci masowej Systemy wieloprogramowe Rys historyczny Uruchomionych jest wiele zadań Przełączanie zadań jeśli musiały oczekiwać na wykonanie operacji we/wy Zadania aktywne - wykonywane przez procesor (procesory) Pozostałe uruchomione zadania oczekują - przechowywane w pamięci operacyjnej Nieuruchomione zadania znajdują się w pamięci masowej Systemy z podziałem czasu Uruchomionych jest wiele zadań Zadanie jest realizowane przez pewien czas, po czym następuje jego przełączenie wywłaszczenie Oczekujące zadania przechowywane są w pamięci roboczej Duża częstotliwość przełączania zadań stanowi podstawę współbieżności Procesy współbieżne mogą się ze sobą komunikować 1

2 Proces Kod programu Licznik rozkazów Stos procesu Dane Proces a program Sam kod programu nie stanowi procesu, a jedynie jego treść. Dopiero kod programu, licznik rozkazów i dane (zasoby pamięci) razem definiują proces. Zasoby procesu Dla realizacji procesu niezbędne są zasoby: czas procesora, pamięć operacyjna, pliki, urządzenia wejścia/wyjścia. Stan procesu Uruchomiony w systemie proces może w danej chwili znajdować się w jednym z kilku stanów: aktywny aktualnie trwa jego przetwarzanie przez procesor gotowy oczekuje na przydział procesora czekajacy oczekuje na wystąpienie zdarzenia (np. przerwania od urządzenia we/wy) zakończony tuż po zakończeniu działania procesu, ale przed ostatecznym usunięciem z pamięci odłożony* proces usunięty z pamięci i przeniesiony do pliku wymiany Możliwe przejścia pomiędzy różnymi stanami opisuje diagram stanów procesu Stan procesu Diagram stanów procesu Blok kontrolny procesu Stan procesu (gotowy, aktywny, etc) Licznik rozkazów Rejestry procesora Planowanie przydziału procesora (m. in. priorytet zadania) Zarządzanie pamięcią Rozliczenia (czas procesora, identyfikacja użytkownika) Informacje o wejściu/wyjściu 2

3 Rysunek 1: Diagram stanów procesu 1.2 Operacje na procesach Operacje na procesach System operacyjny musi umożliwiać dynamiczne tworzenie i usuwanie procesów. Proces tworzący nowy proces nazywa się rodzicem Proces utworzony nazywa się potomkiem Każdy nowy proces może tworzyć dalsze nowe procesy. Drzewo procesów Przedstawia zależność rodzic potomek pomiędzy procesami w systemie. Zwykle wszystkie procesy w systemie mają wspólnego przodka (root process w systemie UNIX proces Init) Drzewo procesów Tworzenie procesów Zachowanie procesu rodzica: Rodzic działa współbieżnie z potomkiem Rodzic oczekuje na zakończenie procesu potomka Zachowanie procesu potomka: Proces potomny staje się kopią procesu macierzystego Proces potomny otrzymuje nowy program Przydział zasobów: 3

4 Rysunek 2: Drzewo procesów Przydział zasobów przez system operacyjny Przydział zasobów z puli należącej do procesu rodzica Kończenie procesów Przyczyny zakończenia procesu: Proces wykonał swój program i wywołał funkcję systemową exit() Został zakończony przez proces rodzica (funkcja systemowa abort()) Proces wykonał niedozwoloną operację (np. dzielenie przez zero, naruszenie ochrony pamięci) Został zabity przez użytkownika (polecenie kill) Co zrobić z procesami potomnymi: Zakończyć razem z procesem rodzica kończenie kaskadowe Pozostawić w systemie znajdując nowego rodzica Zakończenie procesu powinno być obsłużone przez rodzica Operacje na procesach w systemie UNIX Funkcja systemowa fork() fork() Funkcja systemowa fork() tworzy nowy proces, będący kopią procesu macierzystego. W procesie rodzica zwrócony zostaje PID procesu dziecka, w procesie potomnym wartość 0. W przypadku błędu zwrócona zostaje wartość -1. Fork bomb Proces, który namnaża się bez kontroli wykorzystując funkcję fork() nazywany jest fork-bomba. Działanie takie prowadzi do szybkiego wyczerpania zasobów systemu i jego załamania. Bywa ono intencjonalne (atak typu DOS) lub jest wynikiem błędu programisty. 4

5 Operacje na procesach w systemie UNIX Funkcja systemowa wait() wait() Proces rodzica powinien oczekiwać na zakończenie procesów potomków. W tym celu wykorzystuje się funkcję wait(). Oczekuje ona na zakończenie procesu potomka, a gdy ono nastąpi zwracany jest PID zakończonego procesu, oraz kod zakończenia. Jeśli brak zakończonego potomka zwrócona zostanie wartość 0. Proces zombie Proces potomny, który zakończył się, ale jego zakończenie nie zostało obsłużone przez proces rodzica przy użyciu funkcji wait nazywa się procesem zombie. Procesy zombie Proces posiada wpis w tablicy procesów. zabezpieczenie przed powtórnym użyciem PID bez wiedzy procesu rodzica procesu będącego w stanie zombie nie można usunąć poleceniem kill W razie zakończenia procesu rodzica, jako nowy rodzic zostaje wyznaczony proces init. Uwaga! Pisząc program współbieżny należy pamiętać o właściwym obsłużeniu kończących się procesów potomnych (funkcja wait() lub pokrewna). 1.3 Planowanie procesów Planowanie procesów Ilość równocześnie aktywnych procesów jest determinowana przez ilość CPU w systemie. System operacyjny musi organizować dostęp do zasobów: CPU urządzeń wejścia/wyjścia Z każdym zasobem kojarzona jest kolejka procesów oczekujących na udostępnienie zasobu Kolejki planowania Kolejka procesów gotowych Kolejka procesów oczekujących na przydział procesora. Procesy znajdują się w stanie gotowy. Kolejki urzadzeń wejścia/wyjścia oraz zasobów Kolejka procesów oczekujących na przydział urządzenia we/wy, zakończenie operacji (czyli na wystąpienie przerwania) bądź dostępność zasobu. Procesy znajdują się w stanie czekający. W zależności od zaawansowania mechanizmów planowania procesów, system kolejek może być mniej lub bardziej rozbudowany. Kolejki planowania 5

6 Rysunek 3: Kolejki planowania procesów Planowanie procesów Procesy ograniczone przez wejście/wyjście Procesy wykonujące przez większość czasu operacje I/O: kopiowanie plików pobieranie danych z sieci Zwykle oczekują na gotowość urządzeń wejścia/wyjścia. Procesy ograniczone przez procesor Procesy intensywnie wykorzystujące procesor (obliczeniowe): przetwarzanie obrazu obliczenia symulacyjne Są w stanie zająć dowolną ilość czasu procesora. Planowanie procesów Planowanie długoterminowe Wybór puli procesów realizowanych w systemie. Dąży się do utworzenia zrównoważonej mieszanki procesów (równomierne wykorzystanie procesora i urządzeń wejścia/wyjścia). Planowanie krótkoterminowe Wybór następnego procesu, któremu zostanie przydzielony czas procesora. 6

7 Rysunek 4: Kolejki planowania procesów z planowaniem średnioterminowym Planowanie procesów Dokończenie Planowanie średnioterminowe Bieżące modyfikowanie puli procesów wymiana procesów: poprawa wykorzystania pamięci Usunięcie z pamięci procesów, które nie są aktualnie potrzebne, aby uzyskać dodatkowe zasoby dla aktualnie wykonywanych procesów. poprawa składu mieszanki procesów Doraźne poprawianie wykorzystania CPU i urządzeń wejścia/wyjścia w zależności od zapotrzebowania na nie. Odłożone procesy umieszczane są w pamięci masowej (plik/partycja wymiany, swap). Kolejki planowania Uwzględnienie planowania średnioterminowego Kontekst procesu Kontekst procesu Zbiór informacji w pełni opisujących stan procesu. Obejmuje: Stan procesu (aktywny, oczekujący, itp) Zawartość rejestrów procesora (w tym licznika rozkazów) Informacje o zarządzaniu pamięcią Kontekst procesu jest przechowywany w bloku kontrolnym procesu (PCB) Przełaczanie kontekstu Przełaczanie kontekstu Ciąg operacji mających na celu przełączenie procesora między procesami: zapis kontekstu starego procesu w jego bloku kontrolnym 7

8 Rysunek 5: Przełączanie kontekstu odtworzenie wcześniej zapisanego kontekstu nowego procesu Pracochłonne czas przełączania kontekstu bezpośrednio wpływa na wydajność systemu. Niektóre architektury wspomagają operację sprzętowo: wiele przełączanych zestawów rejestrów zapis/odtwarzanie wszystkich rejestrów jedną instrukcją procesora Przełaczanie kontekstu 1.4 Procesy współpracujace Procesy niezależne i współpracujace Proces niezależny Proces, który nie może wpływać na działanie innych procesów w systemie oraz nie podlega ich wpływowi. Proces jest niezależny jeśli nie dzieli żadnych danych z innymi procesami. Proces współpracujacy Proces, który może oddziaływać na inne procesy w systemie lub podlega ich wpływowi. Każdy proces dzielacy dane z innymi procesami jest procesem zależnym. 8

9 Cele współpracy Dzielenie informacji wykorzystanie danych przez wiele procesów (użytkowników) Zwiększenie wydajności podział zadania między wiele elementów wykonawczych (CPU, urządzenia we/wy) Modularność podział zadania na elementy prostsze w implementacji, pozwalające na łatwiejsze zrozumienie i utrzymanie oprogramowania Wygoda wykorzystanie mechanizmów współbieżności np. w celu uruchomienia jednocześnie kilku aplikacji. Niezbędne środki Współpracujące procesy muszą mieć możliwość komunikowania się ze sobą implementacja przez programistę udogodnienia implementowane w systemie operacyjnym komunikacja międzyprocesowa (IPC) Do realizacji niektórych operacji niezbędna jest synchronizacja procesów Komunikacja międzyprocesowa IPC Procesy wymieniają komunikaty poprzez łącze komunikacyjne Proces wysyłający komunikaty nazywa się nadawcą Proces odbierający komunikaty nazywa się odbiorcą send() - wysłanie komunikatu recive() - odebranie komunikatu Charakterystyka łacza komunikacyjnego Komunikacja bezpośrednia lub pośrednia Komunikacja symetryczna lub asymetryczna Buforowanie automatyczne lub jawne Wysyłanie kopii lub wskaźnika Komunikaty o stałej lub zmiennej długości Komunikacja bezpośrednia Komunikujące się procesy jawnie określają nadawcę i odbiorcę komunikatu Nadawca określa do kogo wysyła komunikat Odbiorca odbierając komunikat: określa nadawcę adresowanie symetryczne otrzymuje identyfikator nadawcy adresowanie asymetryczne Właściwości: 9

10 łącze komunikacyjne jest tworzone automatycznie, łącze dotyczy zawsze dwóch procesów, między każdą parą procesów istnieje zawsze jedno łącze Problematyczna modularność komunikujące się procesy muszą znać swoje identyfikatory. Komunikacja pośrednia Komunikacja odbywa się za pośrednictwem skrzynek pocztowych (portów). Proces nadawcy umieszcza komunikat w skrzynce Proces odbiorcy pobiera komunikat ze skrzynki Właściwości: łącze istnieje między dwoma procesami jeśli posiadają wspólną skrzynkę łącze może dotyczyć większej ilości procesów między parą procesów może istnieć wiele łączy (każde z własną skrzynką) Jeśli ze skrzynki korzysta kilka procesów i dwa chcą odebrać komunikat, to do kogo powinien on trafić? Komunikacja pośrednia Ciag dalszy Rozróżnia się właściciela i użytkownika skrzynki: właściciel może tylko odbierać komunikaty użytkownik może tylko umieszczać komunikaty Skrzynki pocztowe mogą być własnością procesu lub systemu operacyjnego. Skrzynki należące do procesów są usuwane z systemu przy zakończeniu procesu właściciela Skrzynka należąca do systemu operacyjnego nie jest usuwana po zakończeniu procesu, który ją utworzył. Proces tworzący taką skrzynkę staje się jej domyślnym właścicielem. Komunikacja synchroniczna i asynchroniczna Operacje send() i recive() mogą odbywać się z blokowaniem (synchronicznie) lub bez blokowania (asynchronicznie) nadawanie z blokowaniem proces nadawczy zostaje wstrzymany do momentu odbioru komunikatu lub umieszczenia go w skrzynce nadawanie bez blokowania proces nadawczy wysyła komunikat i kontynuuje działanie odbiór z blokowaniem odbiorca czeka do momentu kiedy może odebrać komunikat odbiór bez blokowania odbiorca otrzymuje komunikat bądź informację o braku oczekujących komunikatów 10

11 Buforowanie Bufor zeroelementowy proces wysyłający komunikat zawsze czeka na jego odebranie przez odbiorcę Bufor o skończonej pojemności jeśli w buforze jest miejsce na komunikat zostanie on przyjęty, a proces nadawcy będzie wykonywał się dalej jeśli w buforze brak miejsca - proces nadawcy zostanie wstrzymany aż do momentu przyjęcia komunikatu Bufor nieograniczony nadawca nigdy nie jest blokowany Długość komunikatów Komunikaty o stałej długości + łatwa implementacja kłopotliwe z punktu widzenia programisty Komunikaty o zmiennej długości + proste wykorzystanie przez programistę bardziej skomplikowana obsługa po stronie systemu operacyjnego Komunikacja w systemach klient serwer Komunikacja w systemach klient serwer Systemy rozproszone wymagają komunikacji pomiędzy procesami pracującymi na różnych komputerach. Komunikację taką udostępniają poniższe mechanizmy: Gniazda (Socket) RPC (Remote Procedure Call) RMI (Remote Method Invocation) Gniazda Służą do przesyłania danych pomiędzy procesami przesyłany jest ciąg bajtów komunikacja jest dwukierunkowa Gniazdo jest identyfikowane adresem IP i numerem portu Komunikacja połączeniowa: zostaje nawiązane połączenie pomiędzy gniazdami gniazda są dedykowane danemu połączeniu funkcje systemowe send(), recv() protokół TCP 11

12 Rysunek 6: Schemat działania RPC Komunikacja bezpołączeniowa: gniazdo może służyć komunikacji z wieloma partnerami pisząc do gniazda podaje się adres odbiorcy sendto() odczytując pobiera się adres nadawcy recvfrom() protokół UDP RPC i RMI Serwer udostępnia zestaw procedur (metod) zdalnych Klient wysyła dane potrzebne do wykonania procedury po stronie serwera Serwer odsyła wynik działania RPC opiera się na programowaniu proceduralnym, przesyłany jest zestaw parametrów wspierany przez mechanizm portmappera (rejestracja usług) pierwotnie opracowany przez firmę Sun (implementacja NFS) RMI jest techniką obiektową, przesyłane mogą być całe obiekty wspierany przez Rejestr RMI natywnie wykorzystywany przez Javę RPC Schemat działania 12

13 1.4.3 Problemy Problemy w programowaniu współbieżnym Wzajemne wykluczanie i zagłodzenia Dostęp wielu procesów do niepodzielnego zasobu Wyścig do zasobów wzajemne nadpisywanie danych bardzo trudne w diagnostyce Zakleszczenia (deadlock, blokada wzajemna) wiele procesów starających się o te same zasoby Tematyka synchronizacji procesów oraz wykrywania i zapobiegania powyższym problemom będzie dokładniej omówiona na następnym wykładzie. 2 Watki 2.1 Pojęcie watku Geneza W tradycyjnych ujęciu, w procesie występował tylko jeden wątek sterowania. Złożone problemy wymagały podejścia współbieżnego... Przełączanie kontekstu obniża wydajność Zwykle wykonywany jest ten sam kod, używane te same dane i pliki... Pełne przełączanie kontekstu jest zbędne Definicja watku Watek We współczesnych systemach operacyjnych proces może mieć więcej niż jeden watek sterowania. Wątek taki (nazywany procesem lekkim) posiada własny licznik rozkazów, zestaw rejestrów procesora oraz stos, dzieląc z pozostałymi wątkami w ramach procesu kod programu, dane i otwarte pliki. Proces vs Watek Zalety wielowatkowości Zdolność do reagowania jeden wątek obsługuje interakcje pozostałe wykonują czasochłonne operacje Dzielenie zasobów kilka wątków może działać w oparciu o te same dane Ekonomika 13

14 Rysunek 7: Proces a wątek tworzenie procesu wymaga zasobów (czas procesora, pamięć) przełączanie procesu zajmuje więcej czasu od przełączania wątku Wykorzystanie architektur wieloprocesorowych wątki mogą być wykonywane przez różne procesory Watki użytkownika i watki jadra Wątki mogą być implementowane na dwóch poziomach: Wątki użytkownika - udostępniane przez bibliotekę systemową (a więc powyżej jądra) szybsze działanie brak wsparcia ze strony systemu operacyjnego zwykle operacja blokująca w jednym z wątków blokuje cały proces Np. biblioteka pthread Wątki jądra - implementowane w systemie operacyjnym jądro obsługuje tworzenie i zarządzanie wątkami wolniejsze system operacyjny może wpływać na przydział wątków do procesorów operacje blokujące blokują tylko dany wątek 14

15 Rysunek 8: Modele wielowątkowości: wiele na jeden 2.2 Modele wielowatkowości Modele wielowatkowości Zależnie od implementacji, wątki użytkownika mogą być rzutowane na różną liczbę wątków jądra: wiele na jeden jeden na jeden wiele na wiele Modele wielowatkowości Model wiele na jeden Zarządzanie wątkami w przestrzeni użytkownika Brak współbieżności w ramach procesu: niemożliwa praca na wieloprocesorze wywołanie systemowe blokuje wszystkie wątki Stosowany często tam, gdzie brak wątków jądra Modele wielowatkowości Model jeden na jeden Zarządzanie procesami po stronie jądra SO Wątki realizowane są współbieżnie: możliwa praca na wieloprocesorze wywołania systemowe realizowane niezależnie Zwykle ograniczona liczba 15

16 Rysunek 9: Modele wielowątkowości: jeden na jeden Modele wielowatkowości Model wiele na wiele Multipleksacja wątków użytkownika na tyle samo lub mniej wątków jądra Elastyczne, łączą zalety obydwu poprzednich modeli: wątki realizowane współbieżnie brak ograniczeń ilościowych 2.3 Wybrane zagadnienia wielowatkowości Wywołania systemowe fork() i exec() Czy w wyniku funkcji fork() ma być powielony tylko aktualny wątek czy cały proces ze wszystkimi wątkami? Czy funkcja exec() ma zastąpić całą treść procesu, czy tylko bieżącego wątku? Kasowanie watków Kiedy można bezpiecznie wymusić zakończenie wątku? Zakończenie asynchroniczne: wątek kończony jest natychmiastowo teoretycznie powinny być zwolnione wszystkie przydzielone zasoby co, jeśli wątek operował na wspólnych danych procesu? Zakończenie odroczone: wątek cyklicznie sprawdza, czy powinien się zakończyć programista określa punkty, w których takie sprawdzenie powinno nastąpić 16

17 Rysunek 10: Modele wielowątkowości: wiele na wiele Dygresja - sygnały W systemach klasy UNIX sygnały powiadamiają o zajściu zdarzeń. Sygnały synchroniczne informują o błędach krytycznych spowodowanych przez proces (wątek): dzielenie przez zero niedozwolony dostęp do pamięci Sygnały asynchroniczne informują o zdarzeniach zewnętrznych względem procesu: wciśnięcie kombinacji CTRL + C upływ czasu Proces (wątek) może określać, jakie sygnały będzie odbierać a jakie ignorować. Każdy sygnał ma domyślną procedurę obsługi Użytkownik może użyć własnej procedury obsługi sygnału Obsługa sygnałów przez watki Do którego wątku sygnał powinien być dostarczony? do tego, którego sygnał się odnosi? do wszystkich wątków w procesie? do niektórych wątków w procesie? wydzielić wątek do obsługi sygnałów? Jak postępować z sygnałami synchronicznymi? Jak postępować z sygnałami asynchronicznymi? 17

18 Pule watków W serwerach usług zwykle kolejne żądania obsługuje się w różnych wątkach Tworzenie wątku wymaga czasu (utworzenie wątku, inicjalizacja) Usprawnienie: Zalety: tworzymy pewną liczbę wątków wykonawczych, zaliczamy je do puli i usypiamy przy nadchodzącym żądaniu budzimy wątek z puli i zlecamy mu wykonanie zadania jeśli brak wolnego wątku czekamy na zwolnienie oszczędniejsze gospodarowanie wątkami wymusza ograniczenie ilości wątków w systemie większa wydajność Dane specyficzne dla watku Standardowo wątek dzieli pamięć danych w ramach całego procesu W niektórych sytuacjach potrzebna jest kopia danych specyficzna dla konkretnego wątku Odpowiednie wsparcie definiują biblioteki pthread oraz win Watki POSIX Watki POSIX Watki POSIX (Pthreads, P-watki) Standard POSIX specyfikuje interfejs programowy (API) do tworzenia wątków i ich synchronizacji. Standard nie określa implementacji ta ściśle zależy od możliwości systemu operacyjnego. Wątki w standardzie POSIX dostępne są w większości systemów klasy UNIX, a także w postaci odrębnego oprogramowania - w systemach z rodziny Windows. Wątki POSIX działają w przestrzeni użytkownika. Dziękuję za uwagę! 18

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

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ółowo

Proces y i y w i ąt ą ki

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

Bardziej szczegółowo

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu. Blok kontrolny procesu

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

Bardziej szczegółowo

Stan procesu. gotowy - czeka na przydział procesora, zakończony - zakończył działanie.

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

Bardziej szczegółowo

5. Model komunikujących się procesów, komunikaty

5. 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ółowo

Systemy operacyjne III

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

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

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Klient-Serwer Komunikacja przy pomocy gniazd

Klient-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ółowo

Procesy, wątki i zasoby

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

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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

Bardziej szczegółowo

projektowanie systemu

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

Bardziej szczegółowo

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

Od 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ółowo

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

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

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

Bardziej szczegółowo

4. Procesy pojęcia podstawowe

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

1.1 Definicja procesu

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

Bardziej szczegółowo

Procesy i wątki. Wątki. Procesy

Procesy i wątki. Wątki. Procesy 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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Zarządzanie procesami i wątkami

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

Bardziej szczegółowo

Działanie systemu operacyjnego

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Architektura komputerów

Architektura 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ółowo

Koncepcja procesu. Procesy i wątki. Diagram stanów procesu. Stan procesu. Blok kontrolny procesu Process Control Block (PCB)

Koncepcja 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ółowo

Programowanie 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 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ółowo

System operacyjny MACH

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

Bardziej szczegółowo

Działanie systemu operacyjnego

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

Przerwania. 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ółowo

Przerwania. Przerwania. Budowa systemu komputerowego. Zdarzenia powodujące przerwanie: Wektor przerwań

Przerwania. 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ółowo

Procesy, zasoby i wątki

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

Bardziej szczegółowo

Procesy, zasoby i wątki

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

Bardziej szczegółowo

Procesy, zasoby i wątki

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

Bardziej szczegółowo

Działanie systemu operacyjnego

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

Bardziej szczegółowo

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Akademia 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ółowo

Systemy 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. 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ółowo

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Struktura 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ółowo

Tryby 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 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ółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA 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ółowo

Budowa systemów komputerowych

Budowa 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ółowo

Jadro monolityczne vs. mikrojadro. Mikrojadro. Olga Kowalczuk. 9 grudnia 2008

Jadro 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ółowo

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Systemy 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ółowo

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

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

Bardziej szczegółowo

Systemy operacyjne III

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

Bardziej szczegółowo

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe Wykład 7: Transport: protokół TCP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 7 1 / 23 W poprzednim odcinku Niezawodny transport Algorytmy

Bardziej szczegółowo

Komunikacja za pomocą potoków. Tomasz Borzyszkowski

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

Bardziej szczegółowo

Przesyłania danych przez protokół TCP/IP

Przesyłania danych przez protokół TCP/IP Przesyłania danych przez protokół TCP/IP PAKIETY Protokół TCP/IP transmituje dane przez sieć, dzieląc je na mniejsze porcje, zwane pakietami. Pakiety są często określane różnymi terminami, w zależności

Bardziej szczegółowo

Jądro systemu operacyjnego

Ją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ółowo

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Podstawy 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ółowo

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Architektura 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ółowo

Działanie systemu operacyjnego

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

Bardziej szczegółowo

Systemy operacyjne III

Systemy operacyjne III Systemy operacyjne III Jan Kazimirski 1 Opis zajęć Prezentacja budowy i zasad działania współczesnego systemu operacyjnego Prezentacja podstawowych elementów systemów operacyjnych i zasad ich implementacji

Bardziej szczegółowo

IPC: Kolejki komunikatów

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

Bardziej szczegółowo

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

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

Bardziej szczegółowo

Architektura komputerów. Układy wejścia-wyjścia komputera

Architektura 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ółowo

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski Struktura systemu operacyjnego Schemat budowy systemu operacyjnego model warstwowy Schemat budowy systemu operacyjnego części składowe Większość systemów operacyjnych opiera się o koncepcję jądra, która

Bardziej szczegółowo

Komputery przemysłowe i systemy wbudowane

Komputery 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ółowo

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2 Programowanie Urządzeń Mobilnych Część II: Android Wykład 2 1 Aplikacje w systemie Android Aplikacje tworzone są w języku Java: Skompilowane pliki programów ( dex ) wraz z plikami danych umieszczane w

Bardziej szczegółowo

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych Mechanizm wywołania Wywoływanie procedur zdalnych main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) int zabij_proces (int pid){ int stat; stat = kill(pid,

Bardziej szczegółowo

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności 1.1 Motywacja Przewiduje się że w dalszej perspektywie głównym motorem wzrostu mocy przetwarzania komputerów

Bardziej szczegółowo

Systemy rozproszone. na użytkownikach systemu rozproszonego wrażenie pojedynczego i zintegrowanego systemu.

Systemy 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ółowo

Wprowadzenie do programowania współbieżnego

Wprowadzenie do programowania współbieżnego Wprowadzenie do programowania współbieżnego Marcin Engel Instytut Informatyki Uniwersytet Warszawski Zamiast wstępu... Zamiast wstępu... Możliwość wykonywania wielu akcji jednocześnie może ułatwić tworzenie

Bardziej szczegółowo

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Dodatek 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ółowo

Zarządzanie procesorem

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!

Bardziej szczegółowo

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1

Przetwarzanie wielowątkowe przetwarzanie współbieżne. Krzysztof Banaś Obliczenia równoległe 1 Przetwarzanie wielowątkowe przetwarzanie współbieżne Krzysztof Banaś Obliczenia równoległe 1 Problemy współbieżności wyścig (race condition) synchronizacja realizowana sprzętowo (np. komputery macierzowe)

Bardziej szczegółowo

Kolejki FIFO (łącza nazwane)

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

Bardziej szczegółowo

Programowanie współbieżne i rozproszone

Programowanie współbieżne i rozproszone Programowanie współbieżne i rozproszone WYKŁAD 6 dr inż. Komunikowanie się procesów Z użyciem pamięci współdzielonej. wykorzystywane przede wszystkim w programowaniu wielowątkowym. Za pomocą przesyłania

Bardziej szczegółowo

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

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

Bardziej szczegółowo

Systemy operacyjne. Paweł Pełczyński

Systemy 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ółowo

Wstęp do programowania 2

Wstę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ółowo

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

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

Bardziej szczegółowo

2013-04-25. Czujniki obiektowe Sterowniki przemysłowe

2013-04-25. Czujniki obiektowe Sterowniki przemysłowe Ogólne informacje o systemach komputerowych stosowanych w sterowaniu ruchem funkcje, właściwości Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i transportowej

Bardziej szczegółowo

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1 Cel wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działanie systemu operacyjnego

Bardziej szczegółowo

Logiczny model komputera i działanie procesora. Część 1.

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

Bardziej szczegółowo

WYKŁAD: Przetwarzanie rozproszone typu klient-serwer.

WYKŁAD: Przetwarzanie rozproszone typu klient-serwer. WYKŁAD: Przetwarzanie rozproszone typu klient-serwer. Przetwarzanie rozproszone: - różnorodne zasoby w różnych lokalizacjach - wiele procesów obliczeniowych dedykowanych do tych zasobów (typowe programy

Bardziej szczegółowo

Opis protokołu RPC. Grzegorz Maj nr indeksu:

Opis protokołu RPC. Grzegorz Maj nr indeksu: Opis protokołu RPC Grzegorz Maj nr indeksu: 236095 1 Streszczenie Niniejszy dokument opisuje specyfikację protokołu RQP (Remote Queues Protocol). W jego skład wchodzą: opis celów protokołu; opis założeń

Bardziej szczegółowo

41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego

41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego 41. System operacyjny. Postrzeganie systemu operacyjnego przez warstwę oprogramowania użytkowego Pierwsze komputery, budowane według zasad określonych przez Johna von Neumanna, nie były kompatybilne dla

Bardziej szczegółowo

76.Struktura oprogramowania rozproszonego.

76.Struktura oprogramowania rozproszonego. 76.Struktura oprogramowania rozproszonego. NajwaŜniejsze aspekty obiektowego programowania rozproszonego to: Współdziałanie (interoperability) modułów programowych na róŝnych maszynach. Wielokrotne wykorzystanie

Bardziej szczegółowo

Wywoływanie procedur zdalnych

Wywoływanie procedur zdalnych Wywoływanie procedur zdalnych Mechanizm wywołania main(int argc, char* argv[]){ int id, status; id = atoi(argv[1]); status = zabij_proc(id); exit(status) }... int zabij_proces (int pid){ int stat; stat

Bardziej szczegółowo

Wprowadzenie do systemów operacyjnych

Wprowadzenie 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ółowo

Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów współbieżnych.

Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów współbieżnych. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów

Bardziej szczegółowo

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco 1. Liczby 3456.0012 i 0.000076235 w zapisie zmiennoprzecinkowym przedstawia się następująco a) 0.34560012 10 4 i 0.76235 10 4 b) 3.4560012 10 3 i 7.6235 10 5 c) 3.4560012 10 3 i 7.6235 10 5 d) po prostu

Bardziej szczegółowo

Stworzenie klasy nie jest równoznaczne z wykorzystaniem wielowątkowości. Uzyskuje się ją dopiero poprzez inicjalizację wątku.

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).

Bardziej szczegółowo

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system. Wstęp Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system. Przedstawienie architektur sprzętu wykorzystywanych do

Bardziej szczegółowo

L4Ka::Pistachio Mikrojądra mogą być wydajne

L4Ka::Pistachio Mikrojądra mogą być wydajne L4Ka::Pistachio Mikrojądra mogą być wydajne Marek Materzok Instytut Informatyki Uniwersytetu Wrocławskiego Spotkanie Koła Studentów Informatyki 8 grudnia 2005 Architektura monolityczna Jądro jednolitym

Bardziej szczegółowo

Zarządzanie procesami (omawiane zagadnienia)

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

Bardziej szczegółowo

Programowanie współbieżne i równoległe. dr inż. Marcin Wilczewski 2013

Programowanie współbieżne i równoległe. dr inż. Marcin Wilczewski 2013 Programowanie współbieżne i równoległe dr inż. Marcin Wilczewski 2013 1 Tematyka wykładu Wprowadzenie. Podstawowe pojęcia Wątki i procesy. Metody i modele synchronizacji Klasyczne problemy współbieżne

Bardziej szczegółowo

Mogą pracować w środowisku: Scentralizowanym -mikrokontroler Rozproszonym sieć sterująca, systemy hierarchiczne. Komunikacja z syst.

Mogą pracować w środowisku: Scentralizowanym -mikrokontroler Rozproszonym sieć sterująca, systemy hierarchiczne. Komunikacja z syst. J. Ułasiewicz Programowanie aplikacji współbieżnych 1 1 Podstawowe definicje i pojęcia współbieżności Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów

Bardziej szczegółowo

Mikroprocesor Operacje wejścia / wyjścia

Mikroprocesor Operacje wejścia / wyjścia Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych

Bardziej szczegółowo

Systemy operacyjne III

Systemy 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ółowo

Systemy rozproszone System rozproszony

Systemy 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ółowo

współbieżność - zdolność do przetwarzania wielu zadań jednocześnie

współ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ółowo

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

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

Bardziej szczegółowo

5. Algorytm genetyczny przykład zastosowania

5. Algorytm genetyczny przykład zastosowania 5. Algorytm genetyczny przykład zastosowania Zagadnienie magicznych kwadratów Opis działania algorytmu Zagadnienie magicznych kwadratów polega na wygenerowaniu kwadratu n n, w którym elementami są liczby

Bardziej szczegółowo

Programownie współbieżne i rozproszone Jędrzej Ułasiewicz 1. Komunikacja. Model procesów komunikujących się poprzez pamięć dzieloną

Programownie współbieżne i rozproszone Jędrzej Ułasiewicz 1. Komunikacja. Model procesów komunikujących się poprzez pamięć dzieloną Programownie współbieżne i rozproszone Jędrzej Ułasiewicz 1 Komunikacja 1 Podstawowe modele przetwarzania Obecnie stosuje się następujące modele przetwarzania: Model procesów i komunikatów Model procesów

Bardziej szczegółowo