1
Procesy Opis i
zarządzanie
Opracowanie wykładu: Zbigniew Sołtys na podst. Systemy Operacyjne - W.
Stallings
Niewiedza nie jest prostym brakiem wiedzy,
lecz postawą, postawą odmowy,
jest niezgodą na przyjęcie wiedzy.
2
Wymagania w stosunku
do systemu
operacyjnego
•
Wykonywanie wielu procesów w
celu pełnego wykorzystania czasu
procesora przy zapewnieniu
krótkiego czasu odpowiedzi.
•
Przydzielanie zasobów procesom
•
Wspieranie komunikacji pomiędzy
procesami i tworzenia procesów
przez użytkowników.
3
Zarządzanie
wykonywaniem aplikacji
•
Zasoby są dostępne dla wielu
aplikacji
•
Procesor jest przełączany
pomiędzy wiele aplikacji
•
Procesor i urządzenia I/O mogą
dzięki temu być
wykorzystywane optymalnie
4
Proces
•
Jest to program w stadium
wykonywania
•
Instancja programu uruchomionego
na komputerze
•
Instancja ta jest przypisana do
procesora i wykonywana z jego
użyciem
•
Zadanie charakteryzujące się
wykonywaniem sekwencji poleceń,
aktualnym stanem i przypisanym
zbiorem instrukcji systemowych.
5
Elementy Procesu
•
Identyfikator
•
Stan
•
Priorytet
•
Licznik programowy
•
Wskaźniki do pamięci
•
Dane kontekstowe
•
Informacja o stanie I/O
•
Informacje rozliczeniowe
(accounting)
6
Blok kontrolny Procesu
•
Zawiera informacje o procesie
•
Jest tworzony i zarządzany
przez system
•
Pozwala obsługiwać wiele
procesów w systemie
7
Process Control Block
8
Śledzenie wykonywania
procesu (trace)
•
Sekwencja instrukcji
wykonywanych w ramach
procesu
•
Zarządca przełącza procesor
pomiędzy procesami
9
Example Execution
10
Trace of Processes
11
12
Dwustanowy model
Procesu
•
Proces może być w jednym ze
stanów
Wykonywany
Nie wykonywany
13
Proces nie wykonywany
– w kolejce
14
Tworzenie procesu
- okoliczności
15
Kończenie procesu
16
Kończenie procesu
17
Procesy
•
Nie wykonywane
–
Gotowe do wykonania
•
Zablokowane
–
Oczekujące na I/O
•
Zarządca nie może wybierać
procesów z kolejki według
długości czasu oczekiwania
ponieważ niektóre procesy mogą
być zablokowane.
18
Pięciostanowy Model
Procesu
•
Running - wykonywany
•
Ready – gotowy do wykonania
•
Blocked - zablokowany
•
New – nowo utworzony
•
Exit – zakończenie procesu
19
Pięciostanowy Model
Procesu
20
Stany Procesu
21
Dwie kolejki
22
Wiele kolejek
zablokowanych
procesów
23
Procesy zawieszone
•
Procesor jest szybszy niż I/O może się
więc zdarzyć że wszystkie procesy
będą oczekiwać na I/O
•
Wymiata się te procesy na dysk w
celu uwolnienia pamięci (i
załadowania nowych procesów)
•
Stan zablokowany ma miejsce gdy
zawieszony proces jest wymiatany
•
Nowe stany procesu to
–
Zablokowany/zawieszony
–
Gotowy/zawieszony
24
Pojedynczy stan
zawieszenia
25
Podwójny stan
zawieszenia
26
Powody zawieszenia
27
Procesy i zasoby
28
Struktury kontrolne
systemu operacyjnego
•
Aktualna informacja o bieżącym
stanie każdego procesu i
zasobów
•
Tabele utrzymywane dla
każdego uruchomionego
procesu
29
Tablice pamięci
•
Służą alokacji głównej pamięci
dla procesów
•
Służą alokacji pomocniczej
pamięci dla procesów
•
Zawierają atrybuty pozwalające
udostępniać pamięć
•
Zawierają informacje potrzebne
do zarządzania pamięcią
wirtualną
30
Tablice I/O
•
Informacje czy I/O jest dostępne
czy też przypisane do procesu
•
Status operacji I/O
•
Lokalizacja w pamięci głównej
używanej jako zasób w
operacjach transferu do lub z
I/O
31
Tablice plików
•
Istnienie plików
•
Lokalizacja w pamięci
pomocniczej
•
Aktualny stan
•
Atrybuty
•
Te informacje są zazwyczaj
zarządzane przez podsystem
obsługi plików
32
Tablice procesów
•
Lokalizacja procesu
•
Attributes bloku kontrolnego
procesu
–
Program
–
Dane
–
Stos
33
Process Image
34
35
Blok kontrolny procesu
•
Identyfikacja procesu
–
Identyfikatory
•
W bloku kontrolnym procesu są:
–
Identyfikator procesu
–
Identyfikator przodka procesu (parent
process)
–
Identyfikator użytkownika – właściciela
procesu
36
Blok kontrolny procesu
•
Informacja o stanie procesu
–
Rejestry dostępne przez
użytkownika
•
Są to rejestry dostępne z poziomu
języka maszynowego podczas
wykonywania procesu w trybie
użytkownika
•
Zazwyczaj jest od 8 do 32 takich
rejestrów, niektóre rozwiązania RISC
mogą posiadać ponad 100 rejestrów.
37
Blok kontrolny procesu
•
Informacje o stanie procesora
–
Rejestry kontroli i stanu
Jest to zbiór rejestrów procesora
wykorzystywanych do kontroli operacji na
procesorze . Są to:
•
Licznik programowy: Zawiera adres
następnej instrukcji do wykonania
•
Kody stanu: Wynik ostatniej operacji
arytmetycznej lub logicznej (np. znak, zero,
równy, przepełnienie)
•
Informacja o stanie: Stan obsługi przerwań
aktywny/pasywny, flagi, tryb wykonywania
38
Blok kontrolny procesu
•
Informacje o stanie procesora
–
Wskaźniki stosu
•
Każdy proces posiada przypisany do
niego jeden lub więcej last-in-first-out
(LIFO) stos systemowy. Stos jest
używany do przechowywania
parametrów i adresów odwołań dla
procedur i wywołań systemowych.
Wskaźnik stosu wskazuje na adres
wierzchołka.
39
Blok kontrolny procesu
•
Informacje kontrolne o procesie
–
Informacje o stanie i szeregowaniu
Potrzebne do realizacji szeregowania przez system
operacyjny. Są to:
•
Stan procesu: określa gotowość procesu do
szeregowania w celu wykonania (np. uruchomiony,
gotowy, oczekujący, zatrzymany).
•
Priorytet: Jedno lub więcej pól określających priorytet
procesu. W niektórych systemach potrzebne jest kilka
wartości (np. domyślna, aktualna, maksymalna
dopuszczalna)
•
Informacje związane z szeregowaniem: Zależą od
użytego algorytmu szeregowania. Np. czas oczekiwania
procesu, czas wykorzystany procesora, ostatni czas
dostępu.
•
Wydarzenie: Informacja o wydarzeniu na które oczekuje
proces w stanie zawieszenia
40
Blok kontrolny procesu
•
Informacje kontrolne o procesie
–
Struktura danych
•
Procesy mogą być powiązane z innymi
procesami poprzez kolejki, pętle lub
inne struktury. Np.. Wszystkie procesy
oczekujące o tym samym priorytecie
mogą być powiązane w kolejkę. Procesy
mogą również wskazywać na relacje
potomek – przodek z innymi procesami.
W bloku kontrolnym mogą znajdować
się wskaźniki do tych procesów.
41
Blok kontrolny procesu
•
Informacje kontrolne o procesie
–
Komunikacja pomiędzy procesami
•
Flagi, sygnały i wiadomości mogą być
związane z komunikacją pomiędzy dwoma
niezależnymi procesami. Niektóre z tych
informacji są przechowywane w bloku
kontrolnym procesu.
•
Uprawnienia procesów
Procesy mają uprawnienia w znaczeniu –
pamięć która może być użyta, typy
instrukcji które mogą być wykonane, a
także zasoby i usługi systemowe które
mogą być użyte .
42
Blok kontrolny procesu
•
Informacje kontrolne o procesie
–
Zarządzanie pamięcią
•
This section may include pointers to
segment and/or page tables that describe
the virtual memory assigned to this
process.
–
Resource Ownership and Utilization
•
Resources controlled by the process may
be indicated, such as opened files. A
history of utilization of the processor or
other resources may also be included; this
information may be needed by the
scheduler.
43
Processor State
Information
•
Contents of processor registers
–
User-visible registers
–
Control and status registers
–
Stack pointers
•
Program status word (PSW)
–
contains status information
–
Example: the EFLAGS register on
Pentium machines
44
Pentium II EFLAGS
Register
45
Modes of Execution
•
User mode
–
Less-privileged mode
–
User programs typically execute
in this mode
•
System mode, control mode, or
kernel mode
–
More-privileged mode
–
Kernel of the operating system
46
Process Creation
•
Assign a unique process identifier
•
Allocate space for the process
•
Initialize process control block
•
Set up appropriate linkages
–
Ex: add new process to linked list
used for scheduling queue
•
Create of expand other data
structures
–
Ex: maintain an accounting file
47
When to Switch a
Process
•
Clock interrupt
–
process has executed for the
maximum allowable time slice
•
I/O interrupt
•
Memory fault
–
memory address is in virtual
memory so it must be brought into
main memory
48
When to Switch a
Process
•
Trap
–
error or exception occurred
–
may cause process to be moved to
Exit state
•
Supervisor call
–
such as file open
49
Change of Process
State
•
Save context of processor including
program counter and other registers
•
Update the process control block of
the process that is currently in the
Running state
•
Move process control block to
appropriate queue – ready; blocked;
ready/suspend
•
Select another process for execution
50
Change of Process
State
•
Update the process control
block of the process selected
•
Update memory-management
data structures
•
Restore context of the selected
process
51
Execution of the
Operating System
•
Non-process Kernel
–
Execute kernel outside of any process
–
Operating system code is executed as a
separate entity that operates in
privileged mode
•
Execution Within User Processes
–
Operating system software within
context of a user process
–
Process executes in privileged mode
when executing operating system code
52
53
Execution of the
Operating System
•
Process-Based Operating
System
–
Implement operating system as a
collection of system processes
–
Useful in multi-processor or multi-
computer environment
54
UNIX SVR4 Process
Management
•
Most of the operating system
executes within the environment of a
user process
55
UNIX Process Image
56
57
58
UNIX Process States
59