9. KOORDYNACJA PROCESÓW WSPÓŁBIEŻNYCH PRZY UŻYCIU INTERPRETATORA

Slides:



Advertisements
Podobne prezentacje
Wirtualizacja zasobów w systemach operacyjnych
Advertisements

System interfejsu RS – 232C
Związki w UML.
Mechanizmy pracy równoległej
Wzorce.
Układ sterowania otwarty i zamknięty
SYSTEMY OPERACYJNE WSTĘP
Systemy rozproszone W. Bartkiewicz
Semafory Autorzy : Michał Winciorek Łukasz Jackowicz.
PROGRAMOWANIE STRUKTURALNE
1 Linux jako system wielozadaniowy i wielodostępny.
Zapis danych.
Wprowadzenie do Unix’a
Wprowadzenie do SystemC
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Wykład nr 2: Struktura systemu komputerowego a system operacyjny
Systemy operacyjne.
Podstawowe komendy UNIXA
SO – LAB3 Wojciech Pieprzyca
Język ANSI C Operacje we/wy
ZARZĄDZANIE PROCESAMI
12. GNIAZDA BSD Biblioteka funkcji związanych z gniazdami jest interfejsem programisty do obsługi protokołów komunikacyjnych. Została utworzona dla Unixa.
Semafory według normy POSIX
10. PROSTE MECHANIZMY KOORDYNACJI DOSTĘPNE W JĘZYKU C W systemie Unix użytkownikowi (nie będącemu administratorem) nie wolno wykonywać bezpośrednio żadnych.
1 Podstawy informatyki H. P. Janecki- 2006_ Systemy Operacyjne W6.
WINDOWS 95 WYCINEK AUTOSTART TWORZENIE POWIĄZAŃ PLIKÓW Z APLIKACJAMI
Wprowadzenie do programowania w języku Turbo Pascal
Procesy odrębne –Unikatowy PID ( ) –Zmienne –Zbiory deskryptorów plików –Przestrzeń stosu (lokalne zmienne, wywołania funkcji) –Środowisko –Licznik.
Wątki.
Pamięć wspólna Przegląd stosowanych rozwiązań Marcin Kamiński, Michał Kotra Wydział EAIiE Katedra Automatyki Kraków, 2008.
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Konsole wirtualne, terminale.
Tworzenie nowych kont lokalnych i domenowych, oraz zarządzanie nimi
Linux - polecenia.
Wielodostępność systemu operacyjnego Linux
Wielozadaniowowść systemu operacyjnego Linux
Systemy operacyjne.
Zasada działania komputera
Edytor Vi.
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Automatyka i Robotyka Systemy czasu rzeczywistego Wykład 4.
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
MAKRA 1.
Buforowanie D e f i n i c j a.
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Sieciowe systemy operacyjne - UNIX
Podstawy informatyki 2013/2014
Wykład 7 Synchronizacja procesów i wątków
W ą t e k (lekki proces) thread.
PL/SQL – dalsza wędrówka
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
Systemy operacyjne (wiosna 2014)
Bariery synchronizacyjne Bariery są obiektami synchronizacyjnymi pakietu pthread służącymi do wyrównywania czasów pracy wątków wykonujących wspólne zadanie.
Systemy rozproszone  Rozdzielenie obliczeń między wiele fizycznych procesorów.  Systemy luźno powiązane – każdy procesor ma lokalną pamięć; procesory.
System plików.
Systemy Operacyjne Seminarium Dyplomowe Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Telekomunikacji Kraków, 9 listopada 2012 Adam Halwa.
Procesor, pamięć, przerwania, WE/WY, …
Procesy, wątki Program a proces Proces: Przestrzeń adresowa, kod, dane, stos (część pamięci do przechowania zmiennych lokalnych i niektórych adresów) Otwarte.
Iga Lewandowska I EMII MU
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Operacje na plikach i folderach
Polecenie chmod change mode - zmiana atrybutu. chmod [opcje] uprawnienia plik Opis klas użytkowników u - użytkownik (user) g - grupa (group) o - inni.
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
1 Architektury Komputerów i Systemy Operacyjne Prowadzący przedmiot: dr inż. Rafał Stankiewicz Data:
Metody posługiwania się środkami i narzędziami TI.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Maciej Romanowski. Wirusy komputerowe to programy tworzone specjalnie do zakłócania pracy komputera, rejestrowania, uszkadzania lub rozprzestrzeniania.
Piotr Kawałek , Mateusz Śliwowski
Podstawowe komendy „unixowych”
Zapis prezentacji:

9. KOORDYNACJA PROCESÓW WSPÓŁBIEŻNYCH PRZY UŻYCIU INTERPRETATORA KOMEND SYSTEMU UNIX Podstawowe parametry procesu unixowego: - identyfikator procesu PID (Process ID) - identyfikator procesu rodzicielskiego PPID (Parent Process ID) - rzeczywisty identyfikator użytkownika UID (User ID) - efektywny identyfikator użytkownika EUID (Effective User ID) - rzeczywisty identyfikator grupy użytkowników GID (Group ID) - efektywny identyfikator grupy użytkowników EGID (Effective Group ID) - identyfikator grupy procesów PGRP (Process Group) - wskaźnik do struktury terminala. Terminal ten nazywamy terminalem sterującym dla danego procesu. Proces może nie mieć terminala sterującego - w takim przypadku wskaźnik do struktury terminala ma wartość NULL.

Struktura terminala zawiera między innymi bieżący identyfikator grupy terminala (Current Terminal Process Group) - nie ma ustalonego skrótu, na potrzeby wykładu przyjmijmy CTPGRP. Proces interpretatora komend, który zostaje uruchomiony w wyniku zalogowania się do systemu, nazywany jest shellem zgłoszonym. Na początku pracy jest procesem sterującym terminala, z którego nastąpiło zalogowanie, czyli przywódcą grupy terminala (zachodzi dla niego PID = PGRP = CTPGRP). Proces nazywamy pierwszoplanowym (foreground process), jeżeli jego PGRP jest równy CTPGRP wskazywanego przez niego terminala. W przeciwnym przypadku proces nazywamy drugoplanowym, lub wykonującym się w tle (background process). Procesy pierwszoplanowe mogą odczytywać znaki z terminala i zapisywać znaki do terminala (to jest pliku specjalnego odpowiadającego terminalowi). Procesy drugoplanowe nie mogą odczytywać znaków z terminala (są zawieszane przy próbie czytania), natomiast zazwyczaj mogą zapisywać znaki do terminala (jest to zależne od systemu i aktualnych ustawień w strukturze terminala). Uwaga. Zazwyczaj w każdej chwili istnieje dokładnie jeden proces pierwszoplanowy terminala.

Pojedynczą komendę lub pojedynczy potok komend uruchomiony z linii poleceń shella nazywamy pracą (job). Shell ma własność sterowania pracami (job control), jeżeli posiada możliwość zmiany CTPGRP terminala, z którego został uruchomiony. Polecenia: komenda - uruchamia proces pierwszoplanowy; komenda & - uruchamia proces drugoplanowy (komenda &) - uruchamia proces drugoplanowy korzystając z podshella Ctrl-Z - zawiesza proces pierwszoplanowy Ctrl-Y - zawiesza proces pierwszoplanowy w chwili rozpoczęcia czytania bg praca (lub praca &) - uruchamia zawieszony proces w tle fg praca (lub praca ) - uruchamia zawieszony proces na pierwszym planie kill -9 praca - powoduje zakończenie procesu (działającego lub zawieszonego) Uwaga. Można uruchomić kilka procesów jednocześnie z jednej linii poleceń (pisząc na przykład komenda1 & komenda2 & ).

Proste mechanizmy koordynacji procesów w shellu: 1) polecenia exit i wait exit liczba - kończy działanie procesu i przesyła jednobajtową liczbę (kod wyjścia) do jego procesu rodzicielskiego wait praca - powoduje zawieszenie procesu w oczekiwaniu na zakończenie jego procesu potomnego i odbiera jego kod wyjścia 2) polecenia kill i trap kill sygnał praca - powoduje wysłanie sygnału do procesu (z tej samej grupy) trap komenda sygnał - powoduje przechwycenie przysłanego sygnału (jeśli to możliwe) i wykonanie komendy

3) łącza nienazwane (bezimienne) komenda1 | komenda2 | ... | komendan - potok (może być utworzony przy założeniu, że komendy korzystają ze standardowego wejścia/wyjścia) 4) łącza nazwane (kolejki FIFO) mkfifo nazwa (lub mknod nazwa p) - tworzy kolejkę FIFO Zapis/odczyt oraz usunięcie odbywają się dla kolejki FIFO tak samo, jak dla zwykłego pliku (mogą to robić wszystkie procesy, które mają odpowiednie prawa dostępu do kolejki). Musi zachodzić synchronizacja operacji zapisu i odczytu. Uwaga. 1) Łącza są realizowane jako bufory plików i mają ograniczoną pojemność. Mogą być widziane jako „pliki nietrwałe” - odczyt porcji informacji z łącza usuwa ją jednocześnie z łącza. 2) Łącza nazwane są uwidocznione w systemie plików jako szczególny rodzaj plików (o wielkośći 0). Łącza nienazwane nie są uwidocznione (istnieją tylko w czasie wykonywania potoku).