1 / 24

Procesy

Procesy. Wykład 3. Użycie wątków w systemach lokalnych. Przełączanie kontekstu w wyniku komunikacji międzyprocesowej (IPC). Implementacja wątku. Połączenie procesów lekkich poziomu jądra z wątkami poziomu użytkownika. Serwery wielowątkowe (1).

cosmo
Download Presentation

Procesy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procesy Wykład 3

  2. Użycie wątków w systemach lokalnych • Przełączanie kontekstu w wyniku komunikacji międzyprocesowej (IPC)

  3. Implementacja wątku • Połączenie procesów lekkich poziomu jądra z wątkami poziomu użytkownika.

  4. Serwery wielowątkowe (1) • Serwer wielowątkowy w modelu ekspedytor-pracownik.

  5. Serwery wielowątkowe (2) • Trzy sposoby budowania serwera.

  6. SystemX-Window • Podstawowa organizacja systemu X-Window

  7. Przezroczystość rozproszenia po stronie klienta • Możliwe podejście do przezroczystego zwielokrotniania obiektu poprzez rozwiązanie po stronie klienta

  8. Serwery: Ogólne zagadnienia projektowe 3.7 • Wiązanie klient serwer z wykorzystaniem demona (DCE) • Wiązanie klient serwer z wykorzystaniem superserwera (UNIX)

  9. Adapter obiektu (1) • Organizacja serwera obiektowego, umożliwiającego różną politykę uaktywnień

  10. Adapter obiektu (2) /* Definitions needed by caller of adapter and adapter */#define TRUE#define MAX_DATA 65536 /* Definition of general message format */struct message { long source /* senders identity */ long object_id; /* identifier for the requested object */ long method_id; /* identifier for the requested method */ unsigned size; /* total bytes in list of parameters */ char **data; /* parameters as sequence of bytes */}; /* General definition of operation to be called at skeleton of object */typedef void (*METHOD_CALL)(unsigned, char* unsigned*, char**); long register_object (METHOD_CALL call); /* register an object */void unrigester_object (long object)id); /* unrigester an object */void invoke_adapter (message *request); /* call the adapter */ • Plik nagłówkowyheader.h, używany przez adapter i każdy program wywołujący adapter.

  11. Adapter obiektu (3) typedef struct thread THREAD; /* hidden definition of a thread */ thread *CREATE_THREAD (void (*body)(long tid), long thread_id);/* Create a thread by giving a pointer to a function that defines the actual *//* behavior of the thread, along with a thread identifier */ void get_msg (unsigned *size, char **data);void put_msg(THREAD *receiver, unsigned size, char **data);/* Calling get_msg blocks the thread until of a message has been put into its *//* associated buffer. Putting a message in a thread's buffer is a nonblocking *//* operation. */ • Plikthread.hużywany przez adapter przy korzystaniu z wątków.

  12. Adapter obiektu (4) • Główna część adaptera, która realizuje politykę wątek na obiekt.

  13. Powody wędrówki kodu • Zasada dynamicznego konfigurowania klienta z serwerem komunikacyjnym. Klient najpierw pobiera niezbędne oprogramowanie, po czym wywołuje serwer.

  14. Modele wędrówki kodu • Możliwe sposoby wędrówki kodu

  15. Wędrówka a zasoby lokalne Wiązanie zasobu z maszyną Wiązanie procesu z zasobem GR – utwórz globalną referencję systemową PZ – przenieś zasób KW – skopuj wartość zasobu ZL – zwiąż na nowo z zasobem dostępnym lokalnie • Działania dot. odniesień do zasobów lokalnych, podejmowane przy wędrówce kodu na inną maszynę

  16. Wędrówka w systemach heterogenicznych 3-15 • Zasada utrzymywania stosu wędrówki w celu umożliwienia wędrówki segmentu wykonania w środowisku heterogenicznym

  17. Wędrówka kodu w systemie D'Agents (1) proc factorial n { if ($n  1) { return 1; } # fac(1) = 1 expr $n * [ factorial [expr $n – 1] ] # fac(n) = n * fac(n – 1) } set number … # tells which factorial to compute set machine … # identify the target machine agent_submit $machine –procs factorial –vars number –script {factorial $number } agent_receive … # receive the results (left unspecified for simplicity), blocks • Prosty przykład agenta Tcl w systemie D'Agents, przesyłający skrypt zdalnej maszynie

  18. Wędrówka kodu w systemie D'Agents(2) all_users $machines proc all_users machines { set list "" # Create an initially empty list foreach m $machines { # Consider all hosts in the set of given machines agent_jump $m # Jump to each host set users [exec who] # Execute the who command append list $users # Append the results to the list } return $list # Return the complete list when done} set machines … # Initialize the set of machines to jump toset this_machine # Set to the host that starts the agent # Create a migrating agent by submitting the script to this machine, from where# it will jump to all the others in $machines. agent_submit $this_machine –procs all_users -vars machines -script { all_users $machines } agent_receive … #receive the results (left unspecified for simplicity) • An example of a Tel agent in D'Agents migrating to different machines where it executes the UNIX who command (adapted from [gray.r95])

  19. Zagadnienia implementacyjne (1) • Architektura systemu D'Agents.

  20. Zagadnienia implementacyjne (2) • Części wchodzące w skład stanu agenta w systemie D'Agents.

  21. Agenci programowi w SR • Niektóre ważne cechy, za pomocą których można scharakteryzować agentów.

  22. Technologia agentów • Ogólny model platformy agentów.

  23. Języki komunikacji agentów (1) • Przykłady komunikatów w języku FIPA ACL.

  24. Języki komunikacji agentów (2) • Prosty przykład komunikatu FIPA ACL, przesyłanego między dwoma agentami (w Prologu).

More Related