Systemy Operacyjne i Sieci Komputerowe

Podobne dokumenty
Systemy Operacyjne i Sieci Komputerowe

Systemy Operacyjne i Sieci Komputerowe

Zarządzanie procesorem

Zarządzanie procesami i wątkami

Procesy, wątki i zasoby

projektowanie systemu

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Systemy operacyjne III

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

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

4. Procesy pojęcia podstawowe

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Informatyka, systemy, sieci komputerowe

4. Procesy pojęcia podstawowe

1.1 Definicja procesu

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

Planowanie przydziału procesora

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Planowanie przydziału procesora

System operacyjny MACH

Proces y i y w i ąt ą ki

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

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

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Planowanie przydziału procesora

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Systemy operacyjne Procesy i wątki

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Wielozadaniowość w systemie Microsoft Windows

... Ireneusz Mrozek. Wydział Informatyki

Planowanie przydziału procesora CPU scheduling. Koncepcja szeregowania. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler

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

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

4. Procesy pojęcia podstawowe

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

Działanie systemu operacyjnego

Działanie systemu operacyjnego

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

Planowanie przydziału procesora

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2009/2010

Działanie systemu operacyjnego

Systemy Operacyjne - zarządzanie procesami

Struktury systemów operacyjnych

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

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

Struktury systemów operacyjnych

Jądro systemu operacyjnego

Wykład 3: Implementacja programów wbudowanych

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

WYKŁAD 4 SEMAPHORES (CIĄG DALSZY) Przykład 6 Problem czytelników i pisarzy. Wykład 4 strona 1/24

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

Pytania do treści wykładów:

Działanie systemu operacyjnego

System komputerowy. System komputerowy

Simulator of Operating System

Wprowadzenie do systemów operacyjnych

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

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

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

WYKŁAD 3 Jądro systemu i procesy. Marcin Tomana Wyższa Szkoła Informatyki i Zarządzania

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

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

Informatyka. informatyka i nauki komputerowe (computer science)

Zarządzanie procesami (omawiane zagadnienia)

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

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

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

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

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Systemy operacyjne. Paweł Pełczyński

Podstawowe zagadnienia

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

Zarządzanie pamięcią w systemie operacyjnym

Podstawy Informatyki Systemy operacyjne

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

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

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.3

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 2. Zasoby i procesy w systemach i sieciach komputerowych

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Program wykładów. Strona WWW przedmiotu: Program ćwiczeń projektowych

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

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

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

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

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

DYNAMICZNE PRZYDZIELANIE PAMIECI

Planowanie przydziału procesora

Procesy, zasoby i wątki

Laboratorium systemów operacyjnych ćwiczenie nr 3. [ilość modułów: 1] Temat zajęć: Procesy w systemie operacyjnym

Prezentacja systemu RTLinux

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

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

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

Przykłady implementacji planowania przydziału procesora

Systemy operacyjne III

Transkrypt:

Systemy Operacyjne i Sieci Komputerowe Sprzęt komputerowy Prowadzący: System Operacyjny + Programy Łatwe użytkowanie szmurlor@iem.pw.edu.pl GE 229 1

Architektury systemów The IBM 360 was a revolutionary advance in computer system architecture, enabling a family of computers covering a wide range of price and performance. www.crowl.org/lawrence/history/ 2

Systemy operacyjne oczami architekta Systemy operacyjne oczami architekta: architektury systemów operacyjnych procesy (definicja, organizacja, zarządzanie, planowanie) obsługa urządzeń przez system operacyjny zarzadzanie i organizacja pamięci zarządzanie przestrzenią dyskową (co to jest DOS) synchronizacja, zakleszczenia, bezpieczeństwo, i inne, 3

Architektury SO Jednolita (monolityczna) Warstwowa Klient-Serwer 4

Jednolita 5

Warstwowa 6

Klient-serwer 7

Hybrydowa Stanowi połączenie architektury jednolitej z architekturą typu klient-serwer (z mikrojądrem). The basic Windows NT architecture: Architektura systemu Windows NT. Na podstawie: http://oreilly.com/catalog/securwinserv/chapter/ch01.html 2001, O'Reilly & Associates, Inc. Windows NT is a multithreaded, micro-kernel-based[8] operating system. The term micro-kernel implies that the kernel component is very small, and provides only basic functions such as thread dispatching and hardware exception handling. Hardware-specific code is kept in a separate layer called the Hardware Abstraction Layer (HAL). The HAL simplifies porting of the operating system to new processor architectures like the IA-64. The core operating system code runs in privileged processor mode. This mode is also known as protected mode (when referring to the CPU), or kernel mode (when referring to a process or thread). Protected mode provides direct access to system memory and other hardware. Applications run in a nonprivileged processor mode known as user mode and have no direct hardware access. Applications have to use the system calls -- the API (Application Programming Interface) -- in the underlying operating system to perform tasks such as reading or writing to memory or to the screen. 8

Procesy... 9

Procesy Proces jest elementarną jednostką pracy (aktywności) zarządzaną przez system operacyjny, która ubiega się o zasoby systemu komputerowego w celu wykonania programu. Proces jest to program w trakcie wykonywania, który do wykonania określonego zadania potrzebuje pewnych zasobów: procesor, pamięć, pliki, urządzenia wejścia-wyjścia (klawiatura,ekran,skaner,karta sieciowa,port szeregowy lub równoległy itp.) Synonimami procesu, które są stosowane w literaturze są: praca (job) lub zadanie (task). Zadanie odnosi sie żazwyczaj do systemów wsadowych, w danej chwili może być wykonywane tylko jedno, Praca - systemy z podziałem czasu (czas wykorzystania zasobów w tym procesora) jest dzielony na wiele prac (multitasking). 10

Definicje: elementy składowe procesu program definiuje zachowanie procesu, ( Proces jest czymś więcej niż samym kodem programu (sekcją tekstu - text section) ). Program jest obiektem pasywnym, natomiast proces jest obiektem aktywnym. dane zbiór wartości przetwarzanych oraz wyniki, stos procesu (przechowuje dane tymczasowe). sterta - Sekcja danych (zawiera zmienne globalne). zbiór zasobów tworzących środowisko wykonawcze, (np. zawartość rejestrów procesora, kontekst procesora) blok kontrolny procesu (PCB, deskryptor) opis bieżąca czynność reprezentowana przez wartość licznika rozkazów. (rejestr PC program counter). 11

Definicje: Blok kontrolny procesu Struktura przechowująca informację o procesie. Blok kontrolny procesu przechowuje następujące informacje: Stan procesu Licznik rozkazów (pozycja aktualnie wykonywanej instrukcji) Rejestry procesora (akumulatory,rejestry indeksowe,wskaźniki stosu) Informacje o planowaniu przydziału procesora (np. priorytet procesu) Informacje o zarządzaniu pamięcią (rejestry graniczne, tablice stron, lub tablice segmentów) Informacje do rozliczeń (ilość zużytego procesora i czasu rzeczywistego, ograniczenia czasowe,numery kont,numery zadań,numery procesów) Informacje o stanie wejścia-wyjścia Stan procesu Wskaźnik Numer procesu (PID) Licznik rozkazów (PC) Rejestry Ograniczenia pamięci Wykaz otwartych plików......... 12

Definicje: Stan procesu 13

Definicje: Operacje na procesach Każdy system operacyjny udostępnia następujące podstawowe operacje: Załadowanie, wykonanie Zakończenie, zaniechanie Utworzenie procesu, zakończenie Pobranie atrybutów, określenie atrybutów, Czekanie czasowe, (np. CTRL+D czyli zawieszenie) Oczekiwanie na zdarzenie, Przydział i zwolnienie pamięci 14

Zarządzanie procesami System operacyjny zarządza procesami szeregując je w odpowiednich kolejkach procesów. System zarządza kolejnością procesów w kolejkach. 15

Planowanie przydziału procesora Planiści Planista - Algorytm szeregowania (ang. scheduler - planista) to algorytm rozwiązujący jedno z najważniejszych zagadnień informatyki - jak rozdzielić czas procesora i dostęp do innych zasobów pomiędzy zadania, które w praktyce zwykle o te zasoby konkurują. Planista zajmuje się przenoszeniem procesów między kolejkami oraz szereguje procesy w samych kolejkach. Planiści np.: Planista długoterminowy (ang. long term scheduler) Planista krótkoterminowy (ang. short term scheduler) Kryteria planowania: wykorzystanie procesora, przepustowość, czas cyklu przetwarzania, czas oczekiwania, czas odpowiedzi Przykładowe algorytmy planowania: Pierwszy zgłoszony pierwszy obsłużony (FCFS first come first serve) Najpierw najkrótsze zadanie (SJF - Shortest Job First) Planowanie priorytetowe Planowanie rotacyjne (RR round-robin) 16

Planiści w szczegółach Planista krótkoterminowy, planista przydziału procesora (ang. CPU scheduler) zajmuje się wyborem procesu z kolejki procesów gotowych, dla którego ma być przydzielony aktualnie procesor. Planista średnioterminowy (ang. medium-term scheduler) zajmuje się wymianą procesów pomiędzy pamięcią główną a pamięcią zewnętrzną (np. Dyskiem). Wykorzystywany we wszystkich systemach z pamięcią wirtualną. Planista długoterminowy, planista zadań (ang. long-term scheduler, job scheduler) zajmuje się ładowaniem nowych programów do pamięci i kontrolą liczby zadań w systemie oraz ich odpowiednim doborem w celu zrównoważenia wykorzystania zasobów. 17

Planiści: Definicje Kwant czasu - minimalny przedział czasu, który jest wyznaczany przerwaniem zegara, ang. timer) Opóźnienie ekspedycji (dispatch latency) czas od momentu zgłoszenia do momentu rozpoczęcia wykonywania zadania. Czas oczekiwania całkowity czas od momentu zgłoszenia, do momentu zakończenia procesu NIE użytkowany przez dany proces. Czas wykonania zadania całkowity czas od momentu zgłoszenia zadania do jego zakończenia. 18

Pierwszy zgłoszony pierwszy obsłużony Załóżmy że procesy P1, P2, P3, nadejdą (zostanie zgłoszone żądanie wykonania) w tym samym momencie (czyli w tej samej chwili) w kolejności P1,P2,P3. Załóżmy niezbędny czas użycia procesora dla procesów: P1-24 [kwanty czasu], P2 3 [kwanty czasu], P3 3 [kwanty czasu] 19

Najpierw najkrótsze zadanie Załóżmy cztery procesy o czasach użycia procesora w kwantach czasu: P1 6, P2 8, P3 7, P4-3 20

Planowanie priorytetowe Sam algorytm nie ma dużego wpływu na średni czas oczekiwania, ale odpowiedni dobór priorytetów pozwala osiągnąć odpowiedni wynik. Załóżmy następujący przypadek procesów: Proces P1 P2 P3 P4 P5 Czas trwania 10 1 2 1 5 Priorytet 3 1 3 4 2 21

Planowanie rotacyjne (RR - round-robin) Planowanie sprawiedliwe z wywłaszczaniem. Wymaga specjalnej architektury sprzętowej. Wykorzystywane we wszystkich współczesnych systemach wielozadaniowych, oczywiście z pewnymi modyfikacjami (Gang Scheduling). Dla ustalonego kwantu czasu: 4ms, oraz dla założonych procesów: P1 24, P2-3, P3-3 Planowanie tylko dla systemów z podziałem czasu! (Wymagane jest wywłaszczanie.) 22

Wątki... 23

Wątek Definicja Wątek (ang. thread) - jest innym rodzajem procesu, wykonywanego współbieżnie w obrębie jednego zadania (programu). W jednym procesie może być wiele wątków. Wątki tego samego procesu korzystają ze wspólnego kodu i danych, mają jednak oddzielne stosy. W systemach wieloprocesorowych, a także w systemach z wywłaszczaniem, wątki mogą być wykonywane równocześnie (współbieżnie). Równoczesny dostęp do wspólnych danych grozi jednak utratą spójności danych i w konsekwencji błędem działania programu. Do zapobiegania takim sytuacjom wykorzystuje się mechanizmy synchronizacji wątków: semafory, muteksy, sekcje krytyczne. 24

Wątki Proces Wątek (inaczej zwany procesem lekkim) jest to jednostka wykorzystania procesora w skład której wchodzą: własny licznik rozkazów, własny zbiór rejestrów, własny obszar stosu. Wątki uruchamiane są w ramach jednego procesu oraz współużytkują: sekcję kodu, sekcję danych, zasoby systemu Poziom na którym następuje zarządzanie wątkami: Wątki ma poziomie jądra systemu operacyjnego Wątki zewnętrzne, (w zewnętrznych bibliotekach) Dane (Sterta) Kod Wątek 4 Licznik Rozkazów Wątek 1 Licznik Rozkazów Rejestry Stos Danych Zasoby Systemu Wątek 2 Licznik Rozkazów Rejestry Stos Danych Rejestry Stos Danych Wątek 3 Licznik Rozkazów Rejestry Stos Danych 25

Wątki w Solaris Trzywarstwowa struktura: wątki użytkownika procesy lekkie wątki poziomu jądra 26

Przykład tworzenia procesu w Unix W unix tworzenie procesów jest efektywne i mało kosztowne obliczeniowo. Funkcja tworząca kopię procesu macierzystego. #include <stdio.h> void main() { int fork_return; int count = 0; fork_return = fork(); system("ps"); if( fork_return > 0) { printf("utworzylem proces potomny o pid=%d.\n", fork_return); } else { sleep(200); printf( Jestem procesem potomnym.\n ); } } 27

Tworzenie procesu w Windows W Windows tworzenie procesów jest kosztowne czasowo, dlatego bardzo intensywnie wykorzystywane są wątki. #include <windows.h> #include <stdio.h> void main( VOID ) { STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); // Start the child process. if(!createprocess( NULL, // No module name (use command line). TEXT("MyChildProcess"), // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. FALSE, // Set handle inheritance to FALSE. 0, // No creation flags. NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi ) // Pointer to PROCESS_INFORMATION structure. ) { printf( "CreateProcess failed (%d).\n", GetLastError() ); return; } // Wait until child process exits. WaitForSingleObject( pi.hprocess, INFINITE ); // Close process and thread handles. CloseHandle( pi.hprocess ); CloseHandle( pi.hthread ); } 28

Synchronizacja zadań - Problem ucztujących filozofów Problem ucztujących filozofów (znany też jako problem pięciu filozofów) to informatyczny problem synchronizacji, przedstawiony przez E. Dijkstrę w 1965 roku, o następującej treści: Przy okrągłym stole siedzi pięciu filozofów. Na stole, przed każdym z ucztujących, znajduje się talerz oraz pomiędzy każdymi dwoma sąsiadami - widelec. Oprócz tego na środku stołu znajduje się miska z makaronem (różne wersje tego problemu mówią o rybie lub ryżu i pałeczkach). Aby przystąpić do konsumpcji makaronu filozof musi zaopatrzyć się w dwa, dobierane pojedynczo, widelce. Po spożyciu pokarmu filozof odkłada oba widelce i oddaje się własnym rozważaniom, aż do czasu gdy ponownie zgłodnieje. Problem polega na opracowaniu takiego algorytmu działań uczestników uczty, aby żaden z nich nie został zagłodzony oraz aby nie doszło do blokady całego systemu (w sytuacji, gdy każdy z filozofów ma po jednym widelcu). Problem ucztujących filozofów jest prezentacją problemu synchronizacji pracujących współbieżnie procesów. Istnieje kilka możliwych rozwiązań tego problemu, między innymi wykorzystujące arbitrów lub grupy semaforów. 29

Procesy oczami użytkownika... 30

Blok kontrolny procesu (PCB Process Control Block) Struktura przechowująca informację o procesie. Blok kontrolny procesu przechowuje następujące informacje: Stan procesu Licznik rozkazów (pozycja aktualnie wykonywanej instrukcji) Rejestry procesora (akumulatory,rejestry indeksowe,wskaźniki stosu) Informacje o planowaniu przydziału procesora (np. priorytet procesu) Informacje o zarządzaniu pamięcią (rejestry graniczne, tablice stron, lub tablice segmentów) Informacje do rozliczeń (ilość zużytego procesora i czasu rzeczywistego, ograniczenia czasowe,numery kont,numery zadań,numery procesów) Informacje o stanie wejścia-wyjścia Stan procesu Numer procesu (PID) Licznik rozkazów (PC) Wskaźnik Rejestry Ograniczenia pamięci Wykaz otwartych plików......... 31

Komendy do zarządzania procesami w Unixie Podstawą jest PID identyfikator procesu Komendy: monitorowanie: ps [-aux], pstree, top uruchamianie w tle: & zawieszanie CTRL+Z, przywracanie na wierzchu: fg (od foreground) przywracanie w tle: bg (od background) Wyświetla wszystkie procesy uruchomione w systemie wraz ze szczegółami (np. użytkownicy i nazwy komend) Wyświetla drzewo procesów (czyli informacje o procesach macierzystych i potomnych) Wyświetla szczegółowe informacje o chwilowym i średnim wykorzystaniu zasobów systemu. wysyłanie komunikatów: kill kill -9 [PID] sprawdzanie otwartych plików: lsof -p [PID] uruchamianie z niższym priorytetem: nice śledzenie wywołań systemowych: strace Usuwa dany proces z systemu. (Zabija go.) 32

Zarządzanie Procesami Windows Przydatna opcja: /SVC pozwala wyświetlić informacje o usługach związanych z każdym procesem 33

Zarządzanie Procesami Unix 34

Zarządzanie Procesami Unix 35

Priorytety Procesów Unix Dwie liczby: priorytet, uprzejmość (nice). Liczba o mniejszej wartości ma wyższy priorytet. Komenda: nice Windows 6 poziomów 36

Interakcja Jeżeli coś cię zainteresowało i chciałbyś aby na następnym wykładzie zostało rozszerzone, powtórzone, omówione dokładniej, to nie krępuj się i napisz maila: szmurlor@iem.pw.edu.pl Jeżeli coś było nie jasne, napisz maila: szmurlor@iem.pw.edu.pl Jeżeli coś cię znudziło, napisz maila: szmurlor@iem.pw.edu.pl 37