4. Procesy pojęcia podstawowe

Podobne dokumenty
4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe

1.1 Definicja procesu

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

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

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

1 Podstawowe definicje i pojęcia współbieżności

Procesy pojęcia podstawowe. 1.1 Jak kod źródłowy przekształca się w proces

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

Systemy operacyjne III

Procesy, wątki i zasoby

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

projektowanie systemu

Prezentacja systemu RTLinux

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

Działanie systemu operacyjnego

Zarządzanie procesami i wątkami

Systemy operacyjne. Paweł Pełczyński

Programowanie współbieżne i rozproszone

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

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

Zarządzanie pamięcią operacyjną

Zarządzanie pamięcią w systemie operacyjnym

Wprowadzenie do programowania współbieżnego

Systemy Operacyjne. wykład 1. Adam Kolany. Październik, Instytut Techniczny Państwowa Wyższa Szkoła Zawodowa w Nowym Sączu

Mikroprocesor Operacje wejścia / wyjścia

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

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

Działanie systemu operacyjnego

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

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

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

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

Procesy, zasoby i wątki

Paweł Skrobanek. C-3, pok

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

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.

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

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

1. Szeregowanie w systemach czasu rzeczywistego

Procesy i wątki. Krzysztof Banaś Obliczenia równoległe 1

Wstęp do Informatyki. Klasyfikacja oprogramowania

Organizacja typowego mikroprocesora

Zaawansowane programowanie w C++ (PCP)

Wielozadaniowość w systemie Microsoft Windows

Zarządzanie procesorem

Podstawy Informatyki Systemy operacyjne

Wstęp do programowania 2

Algorytmy i Struktury Danych

Zarządzanie zasobami pamięci

LEKCJA TEMAT: Zasada działania komputera.

Działanie systemu operacyjnego

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

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

Budowa systemów komputerowych

Równoległość i współbieżność

Równoległość i współbieżność

Planowanie przydziału procesora

Planowanie przydziału procesora

Analiza ilościowa w przetwarzaniu równoległym

ZASADY PROGRAMOWANIA KOMPUTERÓW

Programowanie współbieŝne. Paweł Rogaliński Politechnika Wrocławska

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

Działanie systemu operacyjnego

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Proces y i y w i ąt ą ki

Informatyka, systemy, sieci komputerowe

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Podstawowe zagadnienia

Programowanie współbieżne Wykład 10 Synchronizacja dostępu do współdzielonych zasobów. Iwona Kochańska

Systemy operacyjne Procesy i wątki

Systemy Operacyjne - zarządzanie procesami

System operacyjny MACH

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

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

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

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

Metody obsługi zdarzeń

Mikroinformatyka. Wielozadaniowość

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

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów

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

Stronicowanie w systemie pamięci wirtualnej

Systemy operacyjne. wykład 1- System operacyjny i jego zadania. dr Marcin Ziółkowski

Technologie informacyjne (2) Zdzisław Szyjewski

Planowanie przydziału procesora

Transkrypt:

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 zwykle w jednym z wielu języków programowania. Program = algorytm + struktury danych Program jest strukturą statyczną zapisaną na jakimś nośniku. Proces jest wykonującym się programem. Proces - wykonujący się program Proces jest aktywną strukturą dynamiczną istniejącą tylko w środowisku działającego komputera. Aby proces mógł się wykonywać potrzebne są co najmniej następujące zasoby: procesor pamięć operacyjna urządzenia wejścia / wyjścia Rodzaje procesów: 1. Procesy transformacyjne Procesy skończone które wykonują obliczenie czyli pobierają dane które mają przekształcić w wyniki. Kryterium poprawności: przekształcenie danych zgodnie ze specyfikacją w skończonym czasie 2. Procesy reaktywne Wykonują się dowolnie długo (być może w nieskończoność) i ich celem jest interakcja z otoczeniem (wymiana danych). Kryterium poprawności: Prawidłowa interakcja z otoczeniem - czasowa i dotycząca przekształcania danych.

4.2 Podstawowe definicje współbieżności Procesy sekwencyjne (ang. Sequential processes) Procesy są sekwencyjne jeżeli następny proces ze zbioru procesów rozpoczyna się po zakończeniu procesu poprzedniego. Rys. 4-1 Procesy i wykonywane są sekwencyjnie Procesy współbieżne (ang. Concurrent processes) Dwa procesy są współbieżne jeżeli jeden z nich rozpoczyna się przed zakończeniem drugiego. Rys. 4-2 Procesy i wykonywane są współbieżnie Procesy równoległe (ang.paralell processes) Dwa procesy są równoległe jeżeli jeden z nich rozpoczyna się przed zakończeniem drugiego i wykonywane są jednocześnie na oddzielnych procesorach.

Rodzaje równoległości: Rzeczywista równoległość procesy wykonywane są na oddzielnych procesorach Pozorna równoległość procesy wykonywane są na jednym procesorze pracującym z podziałem czasu. Procesor 1 Procesor 2 Rys. 4-3 Procesy i wykonywane są równolegle. Rodzaje współbieżności Współbieżność konkurencyjna procesy nie współpracują ze sobą. Ich oddziaływanie polega tylko na konkurowaniu o dostęp do zasobów których potrzebują. Współbieżność kooperacyjna procesy współpracują ze sobą działając w ramach aplikacji jednej współbieżnej. Komunikują i synchronizują się ze sobą w celu wykonania pewnego zadania. 4.3 Skutki stosowania współbieżności Korzyści wynikające z zastosowania współbieżności: 1. Polepszenie wykorzystania zasobów. Gdy jakiś proces czeka na niedostępny w danej chwili zasób, procesor może wykonywać inny proces. 2. Umożliwienie przetwarzania równoległego. Podział zadania na procesy umożliwia wykonywanie ich na oddzielnych maszynach. Prowadzi to do zrównoleglenia przetwarzania. 3. Ułatwienia projektowania i implementacji. Podział dużego zadanie na wiele mniejszych komunikujących się procesów prowadzi do dekompozycji problemu. Przez co ułatwia ich implementację, uruchamianie i testowanie przez wielu niezależnych programistów.

Problemy powstające przy implementacji aplikacji współbieżnych: problem sekcji krytycznej problem synchronizacji procesów problem zakleszczenia Procesy tworzące aplikację nie działają w izolacji. Muszą jakoś ze sobą współpracować co prowadzi do: Konieczności wzajemnej wymiany informacji - komunikacja międzyprocesowa. Zapewnienia określonej kolejności wykonania pewnych akcji - problem synchronizacji. 4.4 Przełączanie procesów Współczesne komputery są na tyle wydajne że bez trudności mogą wykonywać wiele procesów które współdzielą czas procesora. Mówimy że procesy wykonywane są w trybie przeplotu. P3 Rys. 4-4 Procesy,, P3 wykonujące się w trybie przeplotu Podstawowym mechanizmem umożliwiającym taki tryb pracy są przerwania. Czas Przełączenia procesów wykonywane są przez system operacyjny. Pojedynczy przełączenie składa się z trzech faz:

1. Zachowania kontekstu procesu dotychczas wykonywanego. 2. Podjęcie decyzji który z procesów wznowić. 3. Przywrócenie kontekstu nowego procesu. Kontekst procesu wszystkie informacje potrzebne do wznowienia zawieszonego wcześniej procesu. przywrócenie kontekstu zachowanie kontekstu zachowanie kontekstu decyzja szeregująca Czas Rys. 4-5 Fazy przełączania kontekstu procesów przywrócenie kontekstu Przełączenia mają miejsce w następujących sytuacjach: 1. Wystąpiło przerwanie zegarowe i system stwierdził że wykonywany proces wyczerpał już swój kwant czasu. 2. Wystąpiło przerwanie zewnętrzne (na przykład od kontrolera wejścia / wyjścia pewnego urządzenia) sygnalizujące zakończenie się zleconej wcześniej operacji. 3. Wystąpiło przerwanie wewnętrzne - proces bieżący wykonał pewną niedozwoloną operację polegającą na naruszeniu systemu ochrony zasobów procesora (na przykład wystąpiła próba odwołania do nieprzydzielonego segmentu pamięci 4. Wykonywany proces wykonał wywołanie systemowe zmieniające status gotowości przynajmniej jednego procesu. Może to być żądanie pewnych niedostępnych w tej chwili zasobów lub też ich zwolnienie.

UWAGA! Przełączenia procesów występują w nie dających się przewidzieć momentach czasu. Stąd nie można czynić założeń że pewien ciąg instrukcji danego procesu nie zostanie przerwany. Szeregowanie wywłaszczające taki sposób organizacji pracy procesów że proces bieżący może być w nie dającym się przewidzieć momencie czasu przełączony na inny proces (wywłaszczony). Szeregowanie kooperacyjne taki sposób organizacji pracy procesów że proces bieżący przełączany jest na inny tylko poprzez wykonanie określonych funkcji systemowych. 4.5 Kanoniczne stany procesów Proces może być w jednym z trzech podstawowych stanów: Wykonywany (ang. Running), Gotowy (ang. Ready) Zablokowany (ang. Blocked). 1 Wykonywany 2 3 Zablokowany 4 Gotowy Rys. 4-6 Przejścia pomiędzy podstawowymi stanami procesów 1. Proces żąda zasobu który nie jest dostępny. 2. Wystąpiło przerwanie (proces został wywłaszczony) lub też proces dobrowolnie zwolnił procesor. 3. Procedura szeregująca zdecydowała że ten proces ma być wykonywany. 4. Zasób którego brakowało do kontynuacji procesu stał się dostępny. Przejście zostało zainicjowane przez przerwanie od urządzenia wejścia / wyjścia lub też proces aktualnie wykonywany.

4.6 Struktury danych używane przez proces Proces utrzymuje w pamięci następujące struktury danych: Segment kodu - (ang. code segment) segment pamięci w którym przechowywane są instrukcje kodu maszynowego procesu. 1. Segment danych - (ang. data segment) segment pamięci w którym przechowywane są statyczne dane procesu (statyczne znaczy tyle że dane te istnieją poprzez cały czas istnienia procesu) 2. Segment stosu - (ang. stack segment) segment pamięci w którym przechowywane są chwilowe dane procesu. Na stosie utrzymywane są zmienne lokalne procedur, parametry procedur i inne chwilowe dane. Przydział i zwalnianie pamięci na stosie odbywa się atomatycznie. 3. Segment sterty - (ang. heap) segment pamięci w którym przechowywane są chwilowe dane procesu jawnie przydzielane i zwalniane przez programistę. 4. Deskryptor procesu - (ang. process descriptor) rekord w którym system operacyjny utrzymuje wszystkie informacje niezbędne do zarządzania procesem. Kod 1 Pamieć Deskryptor procesu Dane 1 Stos 1 Rys. 4-7 Struktury danych procesu

Deskryptor procesu System operacyjny musi prowadzić administrację procesami. Procesy są tworzone, wykonywane, wznawiane, zawieszane i kończone. Muszą być utrzymywane struktury danych zawierające wszystkie informacje ku temu niezbędne. Next-P Next-P Next-P NIL Pierwszy P 1 P 2 P 3 P n Ostatni Rys. 4-8 Kolejka deskryptorów procesów deskryptory Zawartość deskryptora: - Identyfikator procesu PID (ang. Process Identifier) - Bieżący stan procesu (wykonywany, gotowy, zablokowany, itd. ) - Wskaźniki do poprzedniego i następnego deskryptora w kolejce wszystkich deskryptorów. - Wskaźniki do poprzedniego i następnego procesu w danej kolejce (procesów gotowych, zablokowanych,itd ). - Informacje dla procedur szeregowania (priorytet procesu, typ szeregowania). - Informacje dotyczące obsługi sygnałów (sygnały dostarczone, zablokowane,.). - Informacje na temat hierarchii procesów (proces macierzysty, potomne, itd ). - Kontekst sprzętowy procesu (rejestry procesora). - Informacje rozliczeniowe o czasie procesora zużytym przez proces. - Nazwa pliku z którego utworzono proces. - Informacje uwierzytelniające jak rzeczywisty i efektywny identyfikator użytkownika i grupy (UID, GID, EUID, EGID). Zarządzanie pamięcią: - Rozmiar segmentu kodu, danych, stosu. - Położenie segmentu kodu, danych, stosu. - Informacje o stronach zajmowanych przez proces. Zarządzanie plikami: - Katalog bieżący. - Katalog macierzysty. - Informacja o terminalu sterującym. - Wzorzec tworzenia nowych plików (UMASK) - Wskaźnik na tablicę deskryptorów otwartych plików.