Zbigniew S. Szewczak Podstawy Systemów Operacyjnych. Wykład 6 Procesy.

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

Download "Zbigniew S. Szewczak Podstawy Systemów Operacyjnych. Wykład 6 Procesy."

Transkrypt

1 Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Wykład 6 Procesy. Toruń, 2004

2 Odrabianie wykładów czwartek, , S7, g za czwartek, , S7, g za 12.05

3 Składowe systemu Zarządzanie procesami (ang. process management) Zarządzanie pamięcią operacyjną (ang. main memory management) Zarządzanie plikami (ang. file management) Zarządzanie systemem we/wy (ang. I/O system management) Zarządzanie pamięcią pomocniczą (ang. secondary-storage management)

4 Procesy Koncepcja procesu Planowanie procesów Działania na procesach Procesy współpracujące Komunikacja międzyprocesowa Wątki

5 Koncepcja procesu System operacyjny wykonuje wykonuje różne programy system wsadowy - zadania system z podziałem czasu - programy użytkownika (ang. user programs) lub prace (ang. tasks) Będziemy utożsamiać zadanie i proces! Proces - program wykonywany sekwencyjnie Koncepcja procesu zawiera licznik rozkazów (ang. program counter) stos (ang. stack) procesu - parametry, adresy powrotu sekcję danych (ang. data section) - zmienne globalne

6 Procesy a zasoby A B C pamięć wirtualna zasoby procesor we/wy we/wy pamięć

7 Stan procesu Wykonujący się proces zmienia swój stan (ang. state) nowy (ang. new): proces został utworzony aktywny (ang. running): są wykonywane instrukcje oczekiwanie (ang. waiting): proces czeka na zdarzenie (np. zakończenie we/wy) gotowy (ang. ready): proces czeka na przydział procesora zakończony (ang. terminated): proces zakończył działanie

8 Diagram stanów procesu nowy przyjęcie przerwanie wyjście zakończony gotowy aktywny obsłużenie zadrzenia lub operacja we/wy decyzja planisty czekający oczekiwanie na zdarzenie lub na wykonanie operacji we/wy

9 Diagram stanów procesu - SVR5 brak pamięci gotowy swap out wakeup uśpiony swap out utworzony (fork) swap in swap out swap out fork gotowy wakeup uśpiony w pamięci wywłaszczony decyzja planisty return preempt aktywny (kernel) sleep exit return aktywny (user) zombie przerwanie, funkcja systemowa przerwanie, powrót z przerwania

10 Blok kontrolny procesu (PCB) Każdy proces w systemie operacyjnym jest reprezentowany przez blok kontrolny procesu (ang. process control block - PCB) zawierający stan procesu - gotowy, nowy, aktywny, czekający, zatrzymany licznik rozkazów - adres następnego rozkazu do wykonania w procesie rejestry procesora - zależą od architektury komputera: akumulatory, rejestry (ogólne, bazowe, indeksowe) wskaźniki stosu przechowywane aby proces mógł być kontynuowany po przerwaniu

11 Blok kontrolny procesu (PCB) (c.d.) informacje o planowaniu przydziału procesora - priorytet procesu, wskaźniki do kolejek porządkujących zamówienia informacje o zarządzaniu pamiecią - zawartości rejestrów granicznych, tablice stron, tablice segmentów w zależności od systemu używanej pamięci informacje do rozliczeń - ilość zużytego czasu procesora i czasu rzeczywistego, ograniczenia czasowe, numery kont, numery zadań informacje o stanie we/wy - lista zaalokowanych urządzeń, wykaz otwartych plików

12 Blok kontrolny procesu (c.d.) wskaźnik stan procesu numer procesu licznik rozkazów rejestry ograniczenia pamięci wykaz otwartych plików...

13 Przełączanie procesora wykonywanie proces A system operacyjny przerwanie lub wywołanie systemowe proces B... przechowaj stan w bloku kontrolnym 0 odtwórz stan z bloku kontrolnego 1 bezczynność bezczynność przerwanie lub wywołanie systemowe wykonywanie... przechowaj stan w bloku kontrolnym 1 odtwórz stan z bloku kontrolnego 0 bezczynność wykonywanie

14 Struktura tablic kontrolnych pamięć urządzenia pliki procesy tablice pamięci tablice we/wy tablice plików tablica procesu proces 1 proces 2... proces n obraz procesu proces 1 obraz procesu proces n

15 Przykład - IBM/360 & OS/MVT TCB TCB task A save save link ep=a link ep=b TCB task B save return attach ep=c, ECB=E TCB task C return wait 1,E return post E Supervisor ECB

16 Kolejki planowania procesu Wchodzące do systemu procesy tworzą kolejkę zadań (ang. job queue) Gotowe do działania procesy oczekujące w pamięci głównej na wykonanie tworzą kolejkę procesów gotowych (ang. ready queue) Procesy czekające na konkretne urządzenie tworzą kolejkę do urządzenia (ang. device queue) Procesy migrują między kolejkami

17 Kolejka zadań i kolejki do urządzeń we/wy kolejka procesów gotowych jednostka taśmowa jednostka dyskowa 0 czoło ogon czoło ogon czoło ogon blok kontrolny 7 blok kontrolny 2 rejestry... rejestry blok kontrolny 3 blok kontrolny 14 blok kontrolny 6... jednostka dyskowa 1 jednostka terminali czoło ogon czoło ogon blok kontrolny 2

18 Diagram kolejek Diagram kolejek służy do opisu planowania procesów prostokąt określa kolejkę; kółko to zasoby; strzałka to przepływ nowy proces jest w kolejce procesów gotowych zostaje wybrany (ang. dispatched) i otrzymuje procesor proces może zamówić we/wy i trafia do kolejki oczekujących na we/wy proces może utworzyć potomka i czekać na jego zakończenie proces może zostać wywłaszczony wskutek przerwania i przeniesiony do kolejki procesów gotowych

19 Diagram kolejek w planowaniu procesów kolejka procesów gotowych CPU we/wy kolejka operacji we/wy zamówienia operacji we/wy zużycie kwantu czasu potomek działa powołanie procesu potomnego wystąpienie przerwania czekanie na przerwanie

20 Planiści Planista długoterminowy (ang. long-term scheduler) lub planista zadań (ang. job scheduler) - wybiera procesy, które powinny być sprowadzone do pamięci z kolejki procesów gotowych Planista krótkoterminowy (ang. short-term scheduler) lub planista przydziału procesora (ang. CPU scheduler) - wybiera proces następny do wykonania z kolejki procesów gotowych i przydziela mu procesor

21 Planiści (c.d.) Planista krótkoterminowy jest wołany bardzo często (milisekundy) dlatego musi być bardzo szybki Planista długoterminowy jest wołany rzadko (sekundy, minuty) dlatego może nie być szybki Planista długoterminowy nadzoruje stopień wieloprogramowości (liczbę procesów w pamięci)

22 Planiści (c.d.) Proces może być opisany jako jeden z ograniczony przez we/wy (ang. I/O bound) - więcej czasu zajmuje we/wy niż dostęp do procesora ograniczony przez dostęp do procesora (ang. CPU bound) - więcej czasu zajmują obliczenia, we/wy sporadyczne Planista długoterminowy powinien dobrać mieszankę procesów (ang. process mix) zawierającą zarówno procesy ograniczone przez we/wy jak i procesor Planista średnioterminowy(ang. medium-term scheduler) - swapping (wymiana) w celu uzyskania lepszego doboru procesów

23 Planista średnioterminowy sprowadź do pamięci (swap in) usunięte procesy częściowo wykonane usuń z pamięci (swap out) kolejka procesów gotowych CPU koniec we/wy kolejki procesów oczekujących na we/wy

24 Przełączanie kontekstu Gdy procesor przełącza do innego procesu system musi zachować stan starego procesu i załadować zachowany stan nowego procesu. Czynność tę nazywamy przełączaniem kontekstu (ang. context switch) Przełączanie kontekstu jest ceną za wieloprogramowość; system operacyjny nie wykonuje wtedy żadnej użytecznej pracy Czas przełączenia kontekstu zależy od sprzętu (zwykle od 1 do 1000 milisekund)

25 Działania na procesach - tworzenie procesu Proces macierzysty (ang. parent process) tworzy nowy proces - potomka (ang. child process) i każdy nowy proces może tworzyć nowe procesy, które tworzą drzewo procesów Dzielenie zasobów proces macierzysty i potomek dzielą wszystkie zasoby proces macierzysty i potomek dzielą część zasobów proces macierzysty i potomek nie dzielą żadnych zasobów

26 Drzewo procesów w UNIXie proces root proces pagedaemon proces swapper proces init proces użytkownika 1 proces użytkownika 2 proces użytkownika 3

27 Tworzenie procesu (c.d.) Wykonanie proces macierzysty i potomek działają współbieżnie proces macierzysty czeka aż potomek zakończy Przestrzeń adresowa nowego procesu potomek jest kopią procesu macierzystego potomek ładuje do przestrzeni adresowej nowy program

28 Przykłady UNIX funkcja systemowa fork tworzy nowy proces zawierający kopię przestrzeni adresowej procesu pierwotnego funkcja systemowa execlp użyta po fork powoduje zastąpienie zawartości pamięci przez nowy program (ładuje plik binarny do pamięci niszcząc obraz pamięci zawierający wywołanie execlp) proces macierzysty czeka aż potomek skończy (funkcja systemowa wait) w kolejce procesów gotowych Przykład pod Cygwinem

29 Przykład - Unix #include <stdio.h> int main(void) { int pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed\n"); exit(-1); } else if (pid == 0) { /* child process */ execlp("/bin/ls","ls",null); } else { /* parent process */ /* parent will wait for the child to complete */ wait(null); } } printf("child Complete\n"); exit(0);

30 Przykład new.c int main() { } execlp("/bin/ps","ps",0); gcc -o new new.c./new ps

31 Przykład - prosty shell #define TRUE 1 while (TRUE) { /* pętla */ type_prompt( ); /* prompt */ read_command (command, parameters) /*czytaj komendę */ if (fork()!= 0) { /* proces potomny */ /* Kod rodzica */ waitpid( -1, &status, 0); /* czekaj */ } else { /* Kod potomka */ execve (command, parameters, 0); /* wykonaj komendę */ } }

32 Przykłady (c.d.) DEC VMS tworzy proces i ładuje do niego program Windows NT - oba modele duplikowanie przestrzeni adresowej procesu macierzystego proces macierzysty może określić nazwę programu do załadowania do przestrzeni adresowej nowego procesu

33 Kończenie procesu Proces kończy się (ang. terminate) wówczas, gdy wykona swoją ostatnią instrukcję i za pomocą funkcji systemowej exit poprosi system operacyjny aby go usunął a także aby przekazał dane wyjściowe z potomka do procesu macierzystego (za pośrednictwem funkcji systemowej wait wydanej w procesie macierzystym) wszystkie zaalokowane zasoby (pamięć fizyczna i wirtualna, otwarte pliki, bufory we/wy) odebrał potomkowi

34 Kończenie procesu (c.d.) Proces macierzysty wywołuje funkcję systemową abort bowiem potomek nadużył zasobów wykonywanie potomka stało się jałowe proces macierzysty kończy się system operacyjny nie pozwala potomkowi na działanie jeśli proces macierzysty kończy działanie system operacyjny wymusza zakończenie wszystkich potomków - kończenie kaskadowe (ang. cascading termination)

35 Zombie zombie.c #include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main () { pid_t child_pid; } /* Create a child process. */ child_pid = fork (); if (child_pid > 0) { /* This is the parent process. Sleep for a minute. */ sleep (60); } else { /* This is the child process. Exit immediately. */ exit (0); } ps -al

36 Procesy współpracujące Procesy współbieżne mogą być niezależne (ang. independent) lub współpracujące (ang. cooperating) Procesy współpracujące mogą oddziaływać na inne procesy w systemie lub inne procesy w systemie mogą oddziaływać na nie Korzyści ze współpracy procesów dzielenie informacji przyspieszanie (obliczeń) modularność - możliwość konstruowania systemów wygoda - użytkownik może mieć wiele procesów

37 Problem producent-konsument Paradygmat procesów współpracujących: proces-producent wytwarza do bufora informację, którą proces-konsument zużywa (z bufora) nieograniczony bufor (ang. unbounded-buffer) - producent wytwarza nieustannie jednostki do nieograniczonego bufora ograniczony bufor (ang. bounded-buffer) - producent wytwarza jednostki do bufora ograniczonego rozmiaru (n), który konsument opróżnia Dostęp do bufora np. przy pomocy pamięci dzielonej (IPC)

38 Rozwiązanie problemu - bufor ograniczony Proces konsumenta i producenta korzystają z wspólnych zmiennych #define BUFFER_SIZE 10 typedef struct {... } item; item buffer[buffer_size]; int in = 0; int out = 0; # in - następne wolne miejsce w buffer # out - pierwsze zajęte miejsce w buffer # in=out - buffer jest pusty # in+1 mod n = out - buffer jest pełny

39 Proces producenta item nextproduced; while (1) { /* produce an item in nextproduced */ while (((in + 1) % BUFFER_SIZE) == out) ; /* do nothing */ buffer[in] = nextproduced; in = (in + 1) % BUFFER_SIZE; }

40 Proces konsumenta item nextconsumed; while (1) { while (in == out) ; /* do nothing */ } nextconsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; /* consume the item in nextconsumed */

41 Komunikacja międzyprocesowa Komunikacja międzyprocesowa (ang. interprocess-communication - IPC) udogodnienia systemu pozwalające współpracującym procesom na kontaktowanie się ze sobą System przekazywania komunikatów (ang. message system) - sposób realizacji komunikacji międzyprocesorowej pozwalający nie odwoływać się do zmiennych dzielonych

42 Komunikacja międzyprocesowa Komunikacja międzyprocesowa dostarcza dwóch operacji nadaj (komunikat) (ang. send (message)) odbierz(komunikat) (ang. receive(message)) Jeśli procesy P i Q chcą się skomunikować to muszą ustanowić łącze komunikacyjne nadawać i odbierać komunikaty Implementacja fizyczna (np. pamięć dzielona, szyna sprzętowa) logiczna (np. własności logiczne)

43 Problemy związane z implementacją Jak ustanawiać połączenia Czy łącze może być powiązane z więcej niż dwoma procesami? Ile może być łączy na każdą parę procesów Jaka jest pojemność łącza? Czy łącze ma obszar buforowy? Jak duży? Jaki jest rozmiar komunikatów (stały, zmienny)? Czy łącze jest jest jedno- czy dwukierunkowe Komunikacja (bez)pośrednia, (a)symetryczna?

44 Komunikacja bezpośrednia Proces musi jawnie nazwać odbiorcę nadaj(p,komunikat) - nadaj komunikat do procesu P odbierz(q,komunikat) - odbierz komunikat od procesu Q Własności łącza łącze jest ustanawiane automatycznie, do komunikowania wystarczy znajomość identyfikatorów łącze dotyczy dokładnie dwóch procesów między każdą parą procesów istnieje dokładnie jedno łącze łącze jest zwykle dwukierunkowe, ale może być jednokierunkowe

45 Komunikacja pośrednia Komunikaty są nadawane i odbierane za pomocą skrzynek pocztowych (ang. mailboxes) nazywanych także portami (ang. ports) każda skrzynka ma swój unikalny identyfikator procesy komunikują się jeśli mają wspólną skrzynkę Własności łącza łącze jest ustanawiane jedynie wtedy gdy procesy dzielą skrzynkę łącze może być związane z więcej niż dwoma procesami każda para procesów może mieć kilka łączy z których każdy odpowiada jakiejś skrzynce łącze może być jedno- lub dwukierunkowe

46 Komunikacja pośrednia (c.d) System operacyjny dostarcza mechanizmów do tworzenia nowej skrzynki nadawania i odbierania komunikatów za pomocą skrzynki likwidowania skrzynki Dzielenie skrzynki : P, Q, R dzielą skrzynkę A P nadaje; Q i R odbierają który proces otrzyma komunikat nadany przez P? Rozwiązanie zezwalać jedynie na łącza między dwoma procesami pozwalać najwyżej jednemu procesowi na odbiór pozwalać aby system wybrał i poinformował odbiorcę

47 Buforowanie Łącze ma pojemność określającą maksymalną liczbę komunikatów, które mogą w nim przebywać dlatego musimy mieć kolejkę komunikatów Metody implementacji kolejki pojemność zerowa - nadawca musi czekać aż odbiorca odbierze komunikat pojemność ograniczona - nadawca musi poczekać jeśli kolejka jest pełna pojemność nieograniczona - nadawca nigdy nie czeka

48 Sytuacje wyjątkowe Zakończenie procesu system musi powiadamiać o zakończeniu procesu Utrata komunikatów system powinien wykryć utratę komunikatu proces nadawczy powinien umieć powtórzyć komunikat system zawiadamia proces nadawczy Zniekształcenie komunikatów sumy kontrolne, sprawdzanie parzystości, CRC

49 System Mach System oparty na komunikatach nadawanych i odbieranych przez skrzynki pocztowe zwane portami Każde zadanie ma dwie specjalne skrzynki skrzynka jądra (ang. kernel mailbox) do komunikowania się z zadaniem skrzynka zawiadomień (ang. notify mailbox) do wysyłania zawiadomień o zdarzeniach Funkcje systemowe msg_send, msg_receive, msg_rpc (wysyła i czeka na odpowiedź), port_allocate (tworzy skrzynkę) przykład wykorzystania mechanizmu RPC do komunikowania między systemami via msg_rpc

50 System Mach (c.d.) Jeśli skrzynka jest pełna to wątek nadawczy czeka aż się zwolni miejsce w skrzynce czeka co najwyżej n mililsekund nie czeka czasowo przechowuje komunikat Słaba wydolność systemu powodowana kopiowaniem komunikatu od nadawcy do skrzynki a potem ze skrzynki do odbiorcy rozwiązanie: odwzorowanie przestrzeni adresowej nadawanego komunikatu na przestrzeń odbiorcy, można tak zrobić jedynie dla komunikatów systemowych

51 Windows 2000 Modularny system operacyjny, w którym programy użytkowe kontaktują się za pomocą mechanizmu przekazywania komunikatów Udogodnienie wywoływania procedur lokalnych (ang. local procedure call facility - LPC) służy do komunikacji między procesami na tej samej maszynie przypomina mechanizm RPC, ale jest zoptymalizowane wykorzystuje obiekt portu łączącego i komunikacyjnego

52 Windows 2000 (c.d.) Komunikacja klient zaopatruje się w uchwyt do obiektu portu łączącego podsystemu klient wysyła prośbę o połączenie serwer tworzy dwa prywatne porty komunikacyjne i przekazuje klientowi uchwyt do jednego z nich klient i serwer korzystają z odpowiednich uchwytów portowych w celu wysyłania komunikatów lub przywołań oraz nasłuchiwania odpowiedzi Trzy typy komunikacji zależnie od wielkości komunikatu

53 Komunikacja klient/serwer - implementacje Gniazda (ang. sockets) przykład w Javie: time-of-day serwer RPC (ang. Remote Procedure Calls) RMI (ang. Remote Method Invocation) przykład w Javie: time-of-day serwer

54 Klient - gniazda import java.net.*; import java.io.*; public class DateClient { public static void main(string[] args) throws IOException { InputStream in = null; BufferedReader bin = null; Socket sock = null; try { sock = new Socket(" ",6013); in = sock.getinputstream(); bin = new BufferedReader(new InputStreamReader(in)); } } String line; while( (line = bin.readline())!= null) System.out.println(line); } catch (IOException ioe) { System.err.println(ioe); } finally { sock.close(); }

55 import java.net.*; import java.io.*; public class DateServer { public static void main(string[] args) throws IOException { Socket client = null; ServerSocket sock = null; try { sock = new ServerSocket(6013); // now listen for connections while (true) { client = sock.accept(); System.out.println("server = " + sock); System.out.println("client = " + client); } } // we have a connection PrintWriter pout = new PrintWriter(client.getOutputStream(),true); // write the Date to the socket pout.println(new java.util.date().tostring()); pout.close(); client.close(); } } catch (IOException ioe) { System.err.println(ioe); } finally { if (sock!= null) sock.close(); if (client!= null) client.close(); }

56 RPC Wywołania procedur między systemami Namiastka (ang. stub, proxy) po stronie klienta do przekazania parametrów zdalnej procedurze oraz po stronie serwera do wywołania procedury Klient: namiastka procedury zdalnej lokalizuje port na serwerze i przetacza (ang. marshall) opakowane parametry i komunikaty Serwer: namiastka procedury na serwerze rozpakowuje parametry, wywołuje procedurę i zwraca wynik w ten sam sposób

57 Architektura RPC aplikacja klienta zdalna aplikacja serwera odpowiedź lokalna odpowiedź lokalna odpowiedź lokalna lokalne wywołanie procedury lokalne wywołanie procedury aplikacja lokalna lub system operacyjny namiastka mechanizm RPC przetaczanie RPC namiastka mechanizm RPC

58 RPC - implementacja Sun użytkownik zleca jądru wysłanie komunikatu RPC do procedury X jądro wysyła komunikat do demona randezvous z pytaniem o numer portu from: klient; to: serwer port: randezvous re: adres dla RPC X randezvous otrzymuje komunikat i przygotowuje odpowiedź jądro wstawia port P do komunikatu RPC użytkownika from: serwer; to: klient port: kernel; re: adres adres dla RPC X <P> randezvous odpowiada klientowi: port P jądro wysyła komunikat RPC użytkownika from: klient; to: serwer port: P ; <treść> demon nasłuchujący na porcie P otrzymuje komunikat jądro otrzymuje odpowiedź i przekazuje ją do użytkownika from: RPC; port: P to: klient; port: jądro <wyniki> demon obsługuje żądanie i przygotowuje wyniki klient komunikaty serwer

59 RMI Realizacja RPC na maszynie Javy Pozwala jednej maszynie wywołać metodę na zdalnym obiekcie Klient: namiastka (ang. stub) tworzy paczkę (ang. parcel) zawierającą nazwę metody wywoływanej na serwerze oraz parametry i przetacza je do serwera Serwer: szkielet (ang. skeleton) odpowiada za rozpakowanie parametrów i wywołanie metody

60 RMI - przetaczanie klient zdalny obiekt val=serwer.metoda(a,b) boolean metoda(obiekt x, Obiekt y) { implementacja metody metoda } namiastka szkielet A, B metoda zmienna boolowska

61 Serwer - implementacja import java.rmi.*; import java.rmi.server.unicastremoteobject; import java.util.date; public class RemoteDateImpl extends UnicastRemoteObject implements RemoteDate { public RemoteDateImpl() throws RemoteException { } public Date getdate() throws RemoteException { return new Date(); } public static void main(string[] args) { try { /* we only need to install this to distribute classes * System.setSecurityManager(new RMISecurityManager());*/ RemoteDate dateserver = new RemoteDateImpl(); // Bind this object instance to the name "DateServer" Naming.rebind("DateServer", dateserver); //Naming.rebind("//localhost:1099/DateServer", dateserver); } } System.out.println("DateServer bound in registry"); } catch (Exception e) { System.err.println(e); }

62 Serwer - kompilacja, rejestracja RemoteDate.java import java.util.date; import java.rmi.*; public interface RemoteDate extends Remote { public abstract Date getdate() throws RemoteException; } javac RemoteDate*.java rmic RemoteDateImpl rmiregistry &

63 Klient - kompilacja RMIClient.java import java.rmi.*; public class RMIClient { public static void main(string args[]) { try { /* We only need this for loading remote classes * System.setSecurityManager(new RMISecurityManager());*/ String host = "rmi:// /dateserver"; RemoteDate dateserver = (RemoteDate)Naming.lookup(host); System.out.println(dateServer.getDate()); } catch (Exception e) { System.err.println(e); } } } cp../server/remotedateimpl_stub.class. cp../server/remotedate.class. javac RMIClient.java

64 RMI - uruchomienie (Cygwin) W oknie serwera java RemoteDateImpl DataServer bound in registry netstat W oknie klienta netstat port 1099 java RMIClient Thu Mar 18 09:55:29 CET 2004 Ctrl-C w oknie serwera

65 Wątki Wątek (ang. thread) nazywany niekiedy procesem lekkim (ang. lightweight process - LWP) jest podstawową jednostką wykorzystania procesora. W skład tej jednostki wchodzą licznik rozkazów zbiór rejestrów obszar stosu

66 Wątki (c.d.) Wątek współużytkuje z innymi równorzędnymi wątkami sekcję kodu sekcję danych zasoby systemu (takie jak otwarte pliki i sygnały) zwane wspólnie zadaniem (ang. task) Proces tradycyjny lub ciężki (ang. heavyweight) to zadanie o jednym wątku

67 Wątki - przykład #include <pthread.h> #include <stdio.h> int sum; /* this data is shared by the thread(s) */ void *runner(void *param); /* the thread */ main(int argc, char *argv[]) { pthread_t tid; /* the thread identifier */ pthread_attr_t attr; /* set of attributes for the thread */ if (argc!= 2) { fprintf(stderr,"usage: a.out <integer value>\n"); exit(); } if (atoi(argv[1]) < 0) { fprintf(stderr,"argument %d must be non-negative\n",atoi(argv[1])); exit(); } /* get the default attributes */ pthread_attr_init(&attr);

68 Wątki - przykład (c.d.) /* create the thread */ pthread_create(&tid,&attr,runner,argv[1]); /* now wait for the thread to exit */ pthread_join(tid,null); printf("sum = %d\n",sum); } /** * The thread will begin control in this function */ void *runner(void *param) { int upper = atoi(param); int i; sum = 0; if (upper > 0) { for (i = 1; i <= upper; i++) sum += i; } } pthread_exit(0);

69 Procesy wielowątkowe kod dane pliki kod dane pliki rejestry stos rejestry rejestry rejestry stos stos stos

70 Wątki - korzyści W zadaniu wielowątkowym (ang. multithreaded task) w czasie gdy wątek serwer jest zablokowany i oczekuje, drugi wątek tego samego zadania może się wykonywać współpraca wielu wątków w tym samym zadaniu zwiększa przepustowość oraz polepsza wydajność systemu program użytkowy wykorzystujący wspólny bufor (np. producent-konsument) stosuje wątki

71 Przykład RPC - jeden wątek czas żądanie RPC żądanie RPC proces serwer 1 serwer 2 zablokowany, oczekuje na odpowiedź od RPC zablokowany, oczekuje na procesor używany przez wątek B wykonywany

72 Przykład RPC - dwa wątki czas żądanie RPC serwer 1 wątek A proces wątek B żądanie RPC serwer 2 zablokowany, oczekuje na odpowiedź od RPC zablokowany, oczekuje na procesor używany przez wątek B wykonywany

73 Wątki a proces Zablokowanie procesu powoduje zablokowanie wszystkich jego wątków albowiem dzielą one tę samą przestrzeń adresową Zakończenie procesu wiąże się z zakończeniem wszystkich jego wątków

74 Wątki - działanie Wątki mogą tworzyć wątki potomne (ang. spawn) i blokować (ang. block) się do czasu zakończenia wywołań systemowych Działanie wątków przypomina działanie procesów (gotowe, zablokowane, aktywne (ang. unblock), kończące (ang. finish)) jednak wątki nie są niezależne od siebie np. oczekiwanie na we/wy przechowanie kontekstu: rejestry, licznik i stos wybranie nowego wątku z kolejki wątków gotowych

75 Typy wątków Wątki (ang. kernel-level) obsługiwane przez jądro Mach, OS/2, Windows 9x/NT/2K, Linux, BeOS Wątki tworzone na poziomie użytkownika (ang. user-level) za pomocą funkcji bibliotecznych system Andrew POSIX: Pthreads, Mach: C-threads, Solaris 2: UI-threads zaleta: szybsze przełączanie, wada: planowanie wątków Hybrydowe podejście - Solaris 2 Wątki zarządzane przez JVM

76 Relacje międzywątkowe przestrzeń użytkownika biblioteka wątków biblioteka wątków P przestrzeń jądra P P wątki poziomu użytkownika wątki poziomu jądra wątki mieszane wątek poziomu użytkownika wątek poziomu jądra P proces P

77 Sposoby odwzorowań wątków Wiele do jednego (ang. Many-to-One) Jeden do jednego (ang. One-to-One) OS/2, Windows 9x/NT/2K Wiele do wielu (ang. Many-to-Many) Solaris 2, IRIX, HP-UX, Windows NT/2K (ThreadFiber)

78 Many-to-One wątek użytkownika wątek jądra

79 One-to-one wątek użytkownika wątek jądra

80 Many-to-many wątek użytkownika wątek jądra

81 Solaris 2 - wątki Solaris 2 jest klonem UNIXa realizującym zarówno wątki na poziomie jądra jak i użytkownika, symetryczne wieloprzetwarzanie i planowanie w czasie rzeczywistym Solaris 2 definiuje pośredni poziom wątków: między wątkami użytkownika i jądra występują procesy lekkie w skrócie LWP którymi zawiaduje biblioteka wątków Każde zadanie ma przynajmniej jeden proces lekki (LWP) do którego są podłączone wątki poziomu użytkownika

82 Solaris 2 - wątki (c.d.) Zasoby potrzebne wątkom wątek jądrowy (podlega planowaniu i może być przypięty (ang. pinned) do procesora) mała struktura danych i stos przełączanie wątków nie wymaga informacji o pamięci przełączanie stosunkowo szybkie proces lekki (LWP) blok kontrolny procesu z danymi rejestrowymi informacje rozliczeniowe informacje dotyczące pamięci przełączanie kontekstu dość wolne wątek użytkownika stos i licznik rozkazów szybkie gdyż jądro nie jest angażowane w ich planowanie

83 Solaris 2 - wątki (c.d.) wątek użytkownika proces lekki wątek jądrowy procesor

84 Java - wątki Język Java dostarcza mechanizmów do tworzenia i zarządznie wątkami Rozszerzenie klasy Thread html Zarządzanie wątkami przez JVM Odwzorowanie wątków: jądro - JVM W9x/NT/2K - one-to-one Solaris 2 - many-to-one (green threads)

85 Podsumowanie (1) Proces to wykonywany program, który może znajdować się w jednym z następujących stanów: nowy, gotowy, aktywny, oczekiwania lub zakończony Proces, który nie jest wykonywany jest umieszczany w kolejce oczekujących na coś kolejka zamówień we/wy kolejka procesów gotowych (oczekujących na procesor) Proces jest reprezentowany przez blok kontrolny procesu, który to blok jest elementem listy bloków kontrolnych procesów gotowych

86 Podsumowanie (2) Planowanie długoterminowe - dopuszczanie procesów do rywalizacji o procesor krótkoterminowe - wybieranie procesów gotowych Procesy mogą działać współbieżnie i być niezależne lub współpracować Procesy współpracujące komunikują się za pomocą pamięci dzielonej za pomocą systemu komunikatów

87 Podsumowanie (3) Procesy współpracujące, które dzielą logiczną przestrzeń adresową można implementować w postaci procesów lekkich, czyli wątków Wątek jest podstawową jednostką wykorzystania procesora, która dzieli z innymi równorzędnymi wątkami swoją sekcję kodu i danych oraz zasoby systemu operacyjnego - łącznie nazywa się to zadaniem Wykorzystanie wątków pozwala na uniknięcie kosztownego przełączania kontekstu w procesach ciężkich

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

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

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

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

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

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

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

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

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

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych model systemu Wywoływanie metod zdalnych aplikacja kliencka interfejs obiekt serwer Podejście obiektowe do budowy systemów rozproszonych proxy szkielet sieć Istota podejścia

Bardziej szczegółowo

Wywoływanie metod zdalnych

Wywoływanie metod zdalnych Wywoływanie metod zdalnych Podejście obiektowe do budowy systemów rozproszonych Wywoływanie metod zdalnych model systemu obiekt aplikacja kliencka interfejs serwer proxy szkielet sieć Istota podejścia

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

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

Remote Method Invocation 17 listopada 2010

Remote Method Invocation 17 listopada 2010 Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja klienckak interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

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

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak (IIPP) 1 Mechanizm

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

Podejście obiektowe do budowy systemów rozproszonych

Podejście obiektowe do budowy systemów rozproszonych Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Dariusz Wawrzyniak 1 Mechanizm RMI umożliwia

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć Podejście obiektowe do budowy systemów rozproszonych interfejs (w języku Java), wywiedziony z Remote obiekt aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

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

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

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu Zdalne wywołanie metod - koncepcja Oprogramowanie systemów równoległych i rozproszonych Wykład 7 RMI (Remote Method Invocation) - obiektowe RPC, dostarcza klientowi interfejs do obiektu, implementacja

Bardziej szczegółowo

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka interfejs serwer stub szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Wykład 7 p. 1/2 Oprogramowanie systemów równoległych i rozproszonych Wykład 7 Dr inż. Tomasz Olas olas@icis.pcz.pl Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Zdalne wywołanie

Bardziej szczegółowo

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć interfejs (w języku Java), wywiedziony z Remote obiekt Podejście obiektowe do budowy systemów rozproszonych aplikacja kliencka stub interfejs serwer szkielet sieć Mechanizm RMI umożliwia tworzenie obiektów

Bardziej szczegółowo

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1 P d jś i bi kt d b d t ó Podejście obiektowe do budowy systemów rozproszonych Dariusz Wawrzyniak (IIPP) 1 interfejs (w języku Java),wywiedziony idi z Remote obie kt aplikacja klie ncka interfe js serw

Bardziej szczegółowo

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1 Obiektowe programowanie rozproszone Java RMI Krzysztof Banaś Systemy rozproszone 1 Java RMI Mechanizm zdalnego wywołania metod Javy (RMI Remote Method Invocation) posiada kilka charakterystycznych cech,

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

Programowanie rozproszone w języku Java

Programowanie rozproszone w języku Java Wstęp Gniazda RMI Podsumowanie Programowanie rozproszone w języku Java Wojciech Rząsa wrzasa@prz-rzeszow.pl Katedra Informatyki i Automatyki, Politechnika Rzeszowska 25 maja 2015 Wojciech Rząsa, KIiA PRz

Bardziej szczegółowo

Struktury systemów operacyjnych

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

Stan procesu. Procesy i zarządzanie procesorem. Koncepcja procesu. Diagram stanów procesu

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

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

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

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów

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

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

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

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

Bardziej szczegółowo

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2. Aplikacje RMI Część 2 Budowa aplikacji rozproszonych http://java.sun.com/j2se/1.5.0/docs/guide/rmi/socketfactory/index.html I. Implementacja gniazd dziedziczących po Socket i ServerSocket oraz produkcji

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

Aplikacje RMI Lab4

Aplikacje RMI   Lab4 Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Lab4 Dr inż. Zofia Kruczkiewicz Programowanie aplikacji internetowych 1 1. Koncepcja budowy aplikacji RMI (aplikacja rozproszonych

Bardziej szczegółowo

Systemy Rozproszone - Ćwiczenie 6

Systemy Rozproszone - Ćwiczenie 6 Systemy Rozproszone - Ćwiczenie 6 1 Obiekty zdalne Celem ćwiczenia jest stworzenie obiektu zdalnego świadczącego prostą usługę nazewniczą. Nazwy i odpowiadające im punkty końcowe będą przechowywane przez

Bardziej szczegółowo

Aplikacja wielowątkowa prosty komunikator

Aplikacja wielowątkowa prosty komunikator Aplikacja wielowątkowa prosty komunikator Klient 0 (host 1) Wątek 0 Komponent serwera Wątek pochodny 3.1 Klient 1 (host 2) Wątek 1 Komponent serwera Wątek pochodny 3.2 Host 4 Serwer Wątek 3 Klient 2 (host

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

Przykłady interfejsu TCP i UDP w Javie

Przykłady interfejsu TCP i UDP w Javie Przykłady interfejsu TCP i UDP w Javie W Javie interfejsy TCP i UDP znajdują się w pakiecie java.net http://docs.oracle.com/javase/6/docs/api/java/net/packagesummary.html 1 Przykład interfejsu UDP Protokół

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run().

Wątki. Definiowanie wątków jako klas potomnych Thread. Nadpisanie metody run(). Wątki Streszczenie Celem wykładu jest wprowadzenie do obsługi wątków w Javie. Czas wykładu 45 minut. Definiowanie wątków jako klas potomnych Thread Nadpisanie metody run(). class Watek extends Thread public

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Współbieżność w środowisku Java

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

Java programowanie w sieci. java.net RMI

Java programowanie w sieci. java.net RMI Java programowanie w sieci java.net RMI Programowanie sieciowe OSI WARSTWA APLIKACJI (7) WARSTWA PREZENTACJI(6) WARSTWA SESJI (5) WARSTWA TRANSPORTU (4) DoD Warstwa aplikacji (HTTP) Transport (gniazdka)

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

RMI-2. Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems SYSTEMY ROZPROSZONE

RMI-2. Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems SYSTEMY ROZPROSZONE Java Remote Method Invocation (RMI) na podstawie m.in. podręcznika firmy Sun Microsystems www.cs.agh.edu.pl/~slawek/zrodla_rmi2.zip Kilka pytań Co mamy? rok 2005-ty, gotową wersję 2 programu NoteBoard.

Bardziej szczegółowo

Systemy operacyjne Procesy i wątki

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

Kurs programowania. Wykład 8. Wojciech Macyna

Kurs programowania. Wykład 8. Wojciech Macyna Wykład 8 Program bez watków, jeden procesor, trzy zadania Program z watkami, jeden procesor, trzy zadania Procesory wielordzeniowe, każde zadanie na osobnym procesorze Trzy zadania uruchomione w watkach

Bardziej szczegółowo

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu

Bardziej szczegółowo

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1

Zdalne wywołanie procedur. Krzysztof Banaś Systemy rozproszone 1 Zdalne wywołanie procedur Krzysztof Banaś Systemy rozproszone 1 RPC Komunikacja za pomocą gniazd jest wydajna, gdyż korzystamy z funkcji systemowych niewygodna, gdyż musimy wyrażać ją za pomocą jawnego

Bardziej szczegółowo

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego.

Proxy (pełnomocnik) Cel: Zastosowanie: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Proxy (pełnomocnik) Cel: Dostarczyć zamiennik pewnego obiektu, pozwalający kontrolować dostęp do niego. Zastosowanie: Wszędzie tam, gdzie oczekujemy bardziej zaawansowanego odwołania do obiektu, niż zwykły

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

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

Interfejsy w Javie. Przykład zastosowania interfejsów:

Interfejsy w Javie. Przykład zastosowania interfejsów: 1 Plan wykładu 1. Interfejsy w Javie. 2. Zdalne wywołanie metod (Remote Method Invocation). interfejsy w RMI, architektura RMI, przykładowa aplikacja korzystająca z RMI, przekazywanie parametrów, dystrybucja

Bardziej szczegółowo

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5. Schemat Internetu R R R R R R R 2 Model Internetu 3 Protokoły komunikacyjne stosowane w sieci Internet Protokoły warstwy

Bardziej szczegółowo

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1

Języki i Techniki Programowania II. Wykład 7. Współbieżność 1 Języki i Techniki Programowania II Wykład 7 Współbieżność 1 Programy, Procesy, Wątki Program to zestaw instrukcji do wykonania, dane do przetworzenia, mechanizmy sterujące (stos) Proces w komputerze to

Bardziej szczegółowo

Platformy Programistyczne Zagadnienia sieciowe i wątki

Platformy Programistyczne Zagadnienia sieciowe i wątki Platformy Programistyczne Zagadnienia sieciowe i wątki Agata Migalska 27/28 maja 2014 Komunikacja sieciowa 1 Komunikacja sieciowa 2 Wiele wątków 3 Serializacja Architektura typu klient-serwer Architektura

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

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Komunikacja z użyciem gniazd aplikacje klient-serwer

Komunikacja z użyciem gniazd aplikacje klient-serwer Programowanie obiektowe Komunikacja z użyciem gniazd aplikacje klient-serwer Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Architektura

Bardziej szczegółowo

Serwer współbieżny połączeniowy

Serwer współbieżny połączeniowy Serwery współbieżne 1. Serwery współbieżne serwery połączeniowe, usuwanie zakończonych procesów, serwery bezpołączeniowe, 2. Jednoprocesowe serwery współbieżne. koncepcja i implementacja. 1 Serwer współbieżny

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

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści Kolejki planowania procesów Diagram kolejek Kolejka zadań (job queue) - tworzą ją procesy wchodzące do systemu. Kolejka procesów gotowych (ready queue) - procesy gotowe do działania, umieszczone w pamięci,

Bardziej szczegółowo

Tworzenie aplikacji rozproszonej w Sun RPC

Tworzenie aplikacji rozproszonej w Sun RPC Tworzenie aplikacji rozproszonej w Sun RPC Budowa aplikacji realizowana jest w następujących krokach: Tworzenie interfejsu serwera w języku opisu interfejsu RPCGEN Tworzenie: namiastki serwera namiastki

Bardziej szczegółowo

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy Wykład 3, część 3 1 Język JAVA podstawy Plan wykładu: 1. Konstrukcja kodu programów w Javie 2. Identyfikatory, zmienne 3. Typy danych 4. Operatory, instrukcje sterujące instrukcja warunkowe,

Bardziej szczegółowo

sieć 4) Mechanizm RMI jest zazwyczaj wykorzystywany w rozwiązaniach typu klient-serwer.

sieć 4) Mechanizm RMI jest zazwyczaj wykorzystywany w rozwiązaniach typu klient-serwer. RMI (Remote Method Invocation) zdalne wywołanie metod Część 1 1) RMI jest mechanizmem, który pozwala danej aplikacji: wywoływać metody obiektów zdalnych oraz uzyskać dostęp do obiektów zdalnych (np. w

Bardziej szczegółowo

Tworzenie i wykorzystanie usług

Tworzenie i wykorzystanie usług Strona 1 Co to jest usługa w systemie Android? Usługi HTTP Obsługa wywołania HTTP GET Obsługa wywołania HTTP POST Obsługa wieloczęściowego wywołania HTTP POST Usługi lokalne Usługi zdalne Tworzenie usługi

Bardziej szczegółowo

Java. Programowanie Obiektowe Mateusz Cicheński

Java. Programowanie Obiektowe Mateusz Cicheński Java Programowanie Obiektowe Mateusz Cicheński Wielowątkowość Proces a wątek? Thread vs Runnable sleep(), interrupt(), join() Problemy wielowątkowości Obiekty niemodyfikowalne (immutable) Serializacja

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

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )

RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego

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

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

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016

Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016 Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa

Bardziej szczegółowo

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne

Zdalne wywołania procedur. Jarosław Kuchta Programowanie Współbieżne Zdalne wywołania procedur Jarosław Kuchta Programowanie Współbieżne Podstawy RPC Remote Procedure Call Wywołanie procedur jednego procesu z innego procesu. Proces wywoływany serwer Proces wywołujący -

Bardziej szczegółowo

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

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej dr inż. Paweł Czarnul pczarnul@eti.pg.gda.pl Architektury usług internetowych laboratorium

Bardziej szczegółowo

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Ćwiczenie 1. Kolejki IBM Message Queue (MQ) Ćwiczenie 1. Kolejki IBM Message Queue (MQ) 1. Przygotowanie Przed rozpoczęciem pracy, należy uruchomić "Kreator przygotowania WebSphere MQ" oraz przejść przez wszystkie kroki kreatora, na końcu zaznaczając

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

... Ireneusz Mrozek. Wydział Informatyki

... Ireneusz Mrozek. Wydział Informatyki Ireneusz Mrozek Wydział Informatyki Proces wykonujcy si program Proces jednostka pracy systemu zarzdzan przez system operacyjny. W skład procesu wchodz: - program; - dane - zawarto rejestrów, stosu; -

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

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury

Rozproszone systemy internetowe. Wprowadzenie. Koncepcja zdalnego wywołania procedury Rozproszone systemy internetowe Wprowadzenie. Koncepcja zdalnego wywołania procedury Zakres tematyczny przedmiotu Aplikacje rozproszone Technologie /standardy internetowe Programowanie obiektowe 2 Co będzie

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

Zarządzanie pamięcią operacyjną

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

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

Informatyka, systemy, sieci komputerowe

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

Aplikacja wielow tkowa prosty komunikator

Aplikacja wielow tkowa prosty komunikator Aplikacja wielow tkowa prosty komunikator Klient 0 (host 1) W tek 0 Komponent serwera W tek pochodny 3.1 Klient 1 (host 2) W tek 1 Komponent serwera W tek pochodny 3.2 Host 4 Serwer W tek 3 Klient 2 (host

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