Dawno mówią: gdzie Bóg, tam zgoda. Orzechowski

[ Pobierz całość w formacie PDF ]

" tablica otwartych plików (open file table): tablica plików otwrtych przez
zadanie
Procesy i wątki 109
Jądro systemu GNU/Linux: tworzenie zadania
Proces użytkownika tworząc nowy proces lub wątek wywołuje funkcję fork()
lub pthread create(), które wykorzystują funkcję clone2() w celu wykonania
potrzebnych czynności:4
int clone2(flags, ustack-base, ustack-size)
CLONE VM If set, the address space is shared between the parent and the child
CLONE FS If set, the filesystem info is shared between the parent and the child
CLONE FILES If set, the open file table is shared between the parent and the child
CLONE SIGHAND If set, the set of pending signals and the signal handle table are shared
between the parent and the child
CLONE THREAD If set, the child is part of the same task group as the parent
CLONE SIGNAL Combines the effect of CLONE SIGHAND and CLONE THREAD
CLONE PTRACE If set, the child is also being traced if the parent is being traced
CLONE VFORK If set, the parent does not get scheduled for execution until the child
invoke the execve() system call
CLONE PARENT If set, the new task becomes a sibling of the caller (the caller and
the new task share the same parent)
CLONE PID If set, the child has the same task PID as the parent.
4
Funkcja clone2() jest wzorowana na odpowiednim wywołaniu systemowym stosowanym w systemie operacyjnym Plan 9.
Procesy i wątki 110
Jądro systemu GNU/Linux: tworzenie zadania (cd)
Tworzenie nowego zadania obejmuje:
" przydzielenie pamięci nowemu zadaniu
" rozpoczęcie procesu inicjowanie zadania
" tworzenie wątku
" zakończenie procesu inicjowania zadania
" wprowadzenie nowego zadania do kolejki zadań bieżących (run queue)
Procesy i wątki 111
Jądra wielobieżne
" Jądra uniksowe są wielobieżne (wielowejściowe, reentrant): kilka pro-
cesów może się wykonywać w trybie jądra w tym samym czasie.
" W systemie jednoprocesorowym tylko jeden proces może działać, in-
ne mogą czekać na CPU lub na zakończenie operacji wej-wyj (będąc
zablokowanymi w trybie jądra).
" Wystąpienie przerwania sprzętowego pozwala jądru wielobieżnemu na za-
trzymanie aktualnego procesu, nawet jeśli znajduje się on w trybie jądra.
Wpływa to na zwiększenie szybkości obsługi urządzeń zewnętrznych.
" Linux (z jądrem w wersji 2.4) jest systemem operacyjnym z wy-
właszczaniem procesów, ale bez wywłaszczania jądra. Jądro 2.6 jest
już wielowejściowe.
Procesy i wątki 112
Procesy serwera Apache (httpd)
Fragment pliku konfiguracyjnego /etc/httpd/conf/httpd.conf:
# prefork MPM
# StartServers: number of server processes to start
# MinSpareServers: minimum number of server processes which are kept spare
# MaxSpareServers: maximum number of server processes which are kept spare
# MaxClients: maximum number of server processes allowed to start
# MaxRequestsPerChild: maximum number of requests a server process serves
StartServers 8
MinSpareServers 5
MaxSpareServers 20
MaxClients 150
MaxRequestsPerChild 1000
Procesy i wątki 113
Procesy serwera Apache (httpd) Fragment pliku konfiguracyjnego
/etc/httpd/conf/httpd.conf:
# worker MPM
# StartServers: initial number of server processes to start
# MaxClients: maximum number of simultaneous client connections
# MinSpareThreads: minimum number of worker threads which are kept spare
# MaxSpareThreads: maximum number of worker threads which are kept spare
# ThreadsPerChild: constant number of worker threads in each server process
# MaxRequestsPerChild: maximum number of requests a server process serves
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadsPerChild 25
MaxRequestsPerChild 0
Zarządzanie procesami 114
Algorytmy przydziału procesora
Jeśli dwa lub więcej procesów znajdują się w stanie gotowy do wykonania,
to o kolejności przydziału jednostki centralnej decyduje planista (schedu-
ler).
Planista powinien gwarantować:
1. sprawiedliwość przydziału CPU
2. dobrą wydajność CPU
3. mały czas odpowiedzi
4. mały czas przetwarzania (turnaround time)
5. dużą przepustowość (throughput)
Zarządzanie procesami 115
Klasyfikacja procesów I:
" związane z urządzeniami I/O (I/O-bound)
" związane z procesorem (CPU-bound)
Klasyfikacja procesów II:
" interaktywne
" wsadowe
" czasu rzeczywistego
W systemach Unix/Linux planista zwykle jawnie faworyzuje procesy ogra-
niczone wejściem-wyjściem.
Zarządzanie procesami 116
Systemy operacyjne z procesami:
" bez wywłaszczania (nonpreemptive)  planista jest wywoływany tylko
wówczas kiedy proces dobrowolnie zrezygnuje z CPU (wczesne systemy
wsadowe stosowały podejście run to completion).
" z wywłaszczaniem (preemptive)  system operacyjny odbiera CPU pro-
cesowi i wywołuje planistę
Jeśli wykonuje się zadanie o niskim priorytecie, a jest gotowe do wy-
konania zadanie o wyższym priorytecie, to zadanie o niskim priorytecie
jest wywłaszczane.
Zarządzanie procesami 117
Planowanie przydziału procesora:
" rotacyjne (round-robin scheduling)
" priorytetowe (polityka planowania i mechanizm planowania)
" pierwszy nadszedł, pierwszy obsłużony (FIFO, first in, first out)
" najkrótsze zadanie najpierw (SJF, shortest job first) [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • jungheinrich.pev.pl
  • Wątki

    Cytat


    Ibi patria, ibi bene. - tam (jest) ojczyzna, gdzie (jest) dobrze
    Dla cierpiącego fizycznie potrzebny jest lekarz, dla cierpiącego psychicznie - przyjaciel. Menander
    Jak gore, to już nie trza dmuchać. Prymus
    De nihilo nihil fit - z niczego nic nie powstaje.
    Dies diem doces - dzień uczy dzień.