Title: Processes and Threads
1Processes and Threads
2.1 Processes 2.2 Threads 2.3 Interprocess
communication 2.4 Classical IPC problems 2.5
Scheduling
2ProcessesThe Process Model
- Multiprogramming of four programs
- Conceptual model of 4 independent, sequential
processes - Only one program active at any instant
3Process Creation
- Principal events that cause process creation
- System initialization
- Execution of a process creation system
- User request to create a new process
- Initiation of a batch job
4Proceso sukurimas
- Programinis kodas bus pradetas vykdyti tik ta-da,
kai jam OS bus sukurtas procesas - Sukurti informacines strukturas, aprašancias
procesa, t.y. jo deskriptoriu ir konteksta - Itraukti naujo proceso deskriptoriu i paruoš-tu
procesu eile - Užkrauti proceso kodo segmenta i operaty-viaja
atminti arba svopingo sriti.
5Proceso kontekstas - operacines aplinkos busena
- registru ir programinio skaitiklio busena,
- procesoriaus darbo režimo busena,
- atidarytu failu rodikliu busenos,
- informacija apie neužbaigtas ivedimo-išve-dimo
operacijas, - šio proceso vykdomu sisteminiu užklausu klaidu
kodai ir t.t.
6Proceso deskriptorius
- proceso identifikatorius,
- proceso busena,
- duomenys apie proceso privilegijas,
- kodo segmento vieta.
7Process Termination
- Conditions which terminate processes
- Normal exit (voluntary)
- Error exit (voluntary)
- Fatal error (involuntary)
- Killed by another process (involuntary)
8Procesu planavimo algoritmai
- Planuojant procesus, reikia išspresti šiuos
uždavinius - Nustatyti vykdomo proceso pakeitimo laika
- Iš paruoštu procesu eiles išrinkti procesa
vykdymui - Seno ir naujo procesu kontekstu perjungimas.
9Pagrindines procesu planavimo algoritmu grupes
- algoritmai, pagristi kvantavimu,
- algoritmai, pagristi prioritetais .
10Kvantavimu pagristuose algoritmuose aktyvus
procesas pakeiciamas, jeigu
- Procesas pasibaige ir paliko sistema,
- Ivyko klaida,
- Procesas perejo i LAUKIMO busena,
- Pasibaige procesorinio laiko kvantas, skirtas
šiam procesui.
11Proceso busenu grafas (kvantavimo algoritmas)
12Algoritmai, pagristi procesu prioritetais
- Prioritetas tai skaicius, charakterizuojantis
proceso privilegiju laipsni, naudojantis
kompiu-terines sistemos resursais, pvz.,
procesoriniu laiku kuo aukštesnis prioritetas,
tuo aukštesnes privilegijos.
13Dvi prioritetiniu algoritmu grupes
- algoritmai, naudojantys santykinius priori-tetus,
- algoritmai, naudojantys absoliutinius
prio-ritetus.
14Algoritmai, naudojantys santykinius prioritetus
- Procesas vykdomas tol, kol jis pats nepaliks
procesoriaus, pereidamas i LAUKIMO busena arba
neivyks klaida, arba procesas nepasibaigs.
15Algoritmo su santykiniais prioritetais busenu
grafas
16Algoritmai, naudojantys absoliutinius prioritetus
- Sistemose, su absoliutiniais prioritetais,
akty-vaus proceso vykdymas nutraukiamas dar
vie-nu atveju jeigu pasiruošusiu procesu eileje
at-siranda procesas, kurio prioritetas
aukštesnis, nei aktyvaus proceso. Šiuo atveju
pertrauktas procesas pereina i PARUOŠTU busena.
17Algoritmo su absoliutiniais prioritetais busenu
grafas
18Pagrindiniai procesu planavimo proceduru tipai
- išstumiancios (preemptive),
- neišstumiancios (non-preemptive).
19Neišstumiantis daugiaužduotiškumas
- Neišstumiantis daugiaužduotiškumas
(non-preemptive multitasking) tai procesu
pla-navimo budas, kai aktyvus procesas vykdo-mas
tol, kol jis pats (savo iniciatyva) neati-duos
valdymo OS planuotojui, kad šis iš ei-les
išrinktu kita, pasiruošusi vykdymui pro-cesa.
20Išstumiantis daugiaužduotiškumas
- Išstumiantis daugiaužduotiškumas (preemp-tive
multitasking) tai toks budas, kai sprendima
perjungti procesoriu kito proceso vykdymui priima
OS planuotojas, o ne pats aktyvus procesas.
21(No Transcript)
22Process Hierarchies
- Parent creates a child process, child processes
can create its own process - Forms a hierarchy
- UNIX calls this a "process group"
- Windows has no concept of process hierarchy
- all processes are created equal
23Process States (1)
- Possible process states
- running
- blocked
- ready
- Transitions between states shown
24Process States (2)
- Lowest layer of process-structured OS
- handles interrupts, scheduling
- Above that layer are sequential processes
25Implementation of Processes (1)
- Fields of a process table entry
26Implementation of Processes (2)
- Skeleton of what lowest level of OS does when an
interrupt occurs
27Procesu sinchronizavimas ir saveika
- Sinchronizavimo problema
- vienas procesas gali perduoti duomenis kitam,
- keli procesai gali apdoroti duomenis iš bendro
failo (bendru resursu naudojimas).
28Procesu sinchronizavimas ir saveika (2)
- Procesu sinchronizavimo problemos sprendimo
budai - Procesu pristabdymas ir atkyvavimas,
- Eiliu organizavimas,
- Resursu blokavimas ir atlaisvinimas.
29Sinchronizavimo uždavinio pvz.
30Lenktyniu efektas
31Kritine sekcija
- Svarbi procesu sinchronizavimo savoka yra
kritine programos sekcija. Kritine sekcija
tai programos dalis, kurioje naudojamasi bendrais
duomenimis. - Kad išvengti lenktyniu efekto tam tikro resurso
atžvilgiu, reikia užtikrinti, kad kiekvienu
momentu kritineje sekcijoje, susietoje su šiuo
resursu, butu tik vienas procesas.
32Paprasciausias šios problemos sprendimo budas
- Leisti procesui, esanciam kritineje sekcijoje,
uždrausti visus pertraukimus - Trukumaspavojinga patiketi sistemos valdyma
vartotojo procesui jis gali ilgam užimti
procesoriu, o pakibus procesui kritineje
sekcijoje, kracha patirs visa sistema, kadangi
pertraukimai niekada nebus ivykdyti.
33ThreadsThe Thread Model (1)
- (a) Three processes each with one thread
- (b) One process with three threads
34The Thread Model (2)
- Items shared by all threads in a process
- Items private to each thread
35The Thread Model (3)
- Each thread has its own stack
36Thread Usage (1)
- A word processor with three threads
37(No Transcript)
38Thread Usage (2)
- A multithreaded Web server
39Thread Usage (3)
- Rough outline of code for previous slide
- (a) Dispatcher thread
- (b) Worker thread
40Thread Usage (4)
- Three ways to construct a server
41Implementing Threads in User Space
- A user-level threads package
42Implementing Threads in the Kernel
- A threads package managed by the kernel
43Hybrid Implementations
- Multiplexing user-level threads onto kernel-
level threads
44Scheduler Activations
- Goal mimic functionality of kernel threads
- gain performance of user space threads
- Avoids unnecessary user/kernel transitions
- Kernel assigns virtual processors to each process
- lets runtime system allocate threads to
processors - Problem Fundamental reliance on kernel
(lower layer) - calling procedures in user space (higher
layer)
45Pop-Up Threads
- Creation of a new thread when message arrives
- (a) before message arrives
- (b) after message arrives
46Making Single-Threaded Code Multithreaded (1)
- Conflicts between threads over the use of a
global variable
47Making Single-Threaded Code Multithreaded (2)
- Threads can have private global variables
48Interprocess CommunicationRace Conditions
- Two processes want to access shared memory at
same time
49Critical Regions (1)
- Four conditions to provide mutual exclusion
- No two processes simultaneously in critical
region - No assumptions made about speeds or numbers of
CPUs - No process running outside its critical region
may block another process - No process must wait forever to enter its
critical region
50Critical Regions (2)
- Mutual exclusion using critical regions
51Barriers
- Use of a barrier
- processes approaching a barrier
- all processes but one blocked at barrier
- last process arrives, all are let through
52SchedulingIntroduction to Scheduling (1)
- Bursts of CPU usage alternate with periods of I/O
wait - a CPU-bound process
- an I/O bound process
53Introduction to Scheduling (2)
- Scheduling Algorithm Goals
54Scheduling in Batch Systems (1)
- An example of shortest job first scheduling
55Scheduling in Batch Systems (2)
56Scheduling in Interactive Systems (1)
- Round Robin Scheduling
- list of runnable processes
- list of runnable processes after B uses up its
quantum
57Scheduling in Interactive Systems (2)
- A scheduling algorithm with four priority classes
58Scheduling in Real-Time Systems
- Schedulable real-time system
- Given
- m periodic events
- event i occurs within period Pi and requires Ci
seconds - Then the load can only be handled if
59Thread Scheduling (1)
- Possible scheduling of user-level threads
- 50-msec process quantum
- threads run 5 msec/CPU burst
60Aklavietes (deadlocks, clinch)
- Jeigu rašytojas pirmas ieis i kritine sekcija
ir nustatys, kad nera laisvu buferiu jis lauks,
kol skaitytojas paims eilini iraša iš buferio,
bet skaitytojas negales to padaryti, nes
negales ieiti i kritine sekcija, iejimas i kuria
užblokuotas proceso rašytojas.
61Pvz. 2 procesai, 2 resursai
62Aklavieciu problema jungia šiuos uždavinius
- Aklavieciu išvengimas,
- Aklavieciu atpažinimas,
- Sistemos atstatymas po aklavieciu.
63Aklavieciu išvengimas
- Resursus procesams išskirti ta pacia seka
- Kitas aklavieciu išvengimo budas vadina-mas
dinaminiu ir jo esme priskirti resur-sus
procesams, naudojantis tam tikromis taisyklemis,
pvz., resursai gali buti išski-riami tam tikra
tvarka, bendra visiems procesams
64Aklavieciu atpažinimas
- Egzistuoja formalus, programiškai realizuoti
aklavieciu atpažinimo metodai, pagristi bendru
resursu lenteliu ir užklausu i užimtus resursus
lenteliu naudojimu. Analizuojant šias leneteles,
galima aptikti tarpusavio blokavimus.
65Recovery from Deadlock (1)
- Recovery through preemption
- take a resource from some other process
- depends on nature of the resource
- Recovery through rollback
- checkpoint a process periodically
- use this saved state
- restart the process if it is found deadlocked
66Recovery from Deadlock (2)
- Recovery through killing processes
- crudest but simplest way to break a deadlock
- kill one of the processes in the deadlock cycle
- the other processes get its resources
- choose process that can be rerun from the
beginning