Processes and Threads - PowerPoint PPT Presentation

1 / 66
About This Presentation
Title:

Processes and Threads

Description:

Chapter 2 Processes and Threads 2.1 Processes 2.2 Threads 2.3 Interprocess communication 2.4 Classical IPC problems 2.5 Scheduling Processes The Process Model ... – PowerPoint PPT presentation

Number of Views:134
Avg rating:3.0/5.0
Slides: 67
Provided by: SteveAr2
Category:

less

Transcript and Presenter's Notes

Title: Processes and Threads


1
Processes and Threads
  • Chapter 2

2.1 Processes 2.2 Threads 2.3 Interprocess
communication 2.4 Classical IPC problems 2.5
Scheduling
2
ProcessesThe Process Model
  • Multiprogramming of four programs
  • Conceptual model of 4 independent, sequential
    processes
  • Only one program active at any instant

3
Process 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

4
Proceso 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.

5
Proceso 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.

6
Proceso deskriptorius
  • proceso identifikatorius,
  • proceso busena,
  • duomenys apie proceso privilegijas,
  • kodo segmento vieta.

7
Process Termination
  • Conditions which terminate processes
  • Normal exit (voluntary)
  • Error exit (voluntary)
  • Fatal error (involuntary)
  • Killed by another process (involuntary)

8
Procesu 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.

9
Pagrindines procesu planavimo algoritmu grupes
  • algoritmai, pagristi kvantavimu,
  • algoritmai, pagristi prioritetais .

10
Kvantavimu 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.

11
Proceso busenu grafas (kvantavimo algoritmas)
12
Algoritmai, 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.

13
Dvi prioritetiniu algoritmu grupes
  • algoritmai, naudojantys santykinius priori-tetus,
  • algoritmai, naudojantys absoliutinius
    prio-ritetus.

14
Algoritmai, naudojantys santykinius prioritetus
  • Procesas vykdomas tol, kol jis pats nepaliks
    procesoriaus, pereidamas i LAUKIMO busena arba
    neivyks klaida, arba procesas nepasibaigs.

15
Algoritmo su santykiniais prioritetais busenu
grafas
16
Algoritmai, 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.

17
Algoritmo su absoliutiniais prioritetais busenu
grafas
18
Pagrindiniai procesu planavimo proceduru tipai
  • išstumiancios (preemptive),
  • neišstumiancios (non-preemptive).

19
Neiš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.

20
Iš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)
22
Process 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

23
Process States (1)
  • Possible process states
  • running
  • blocked
  • ready
  • Transitions between states shown

24
Process States (2)
  • Lowest layer of process-structured OS
  • handles interrupts, scheduling
  • Above that layer are sequential processes

25
Implementation of Processes (1)
  • Fields of a process table entry

26
Implementation of Processes (2)
  • Skeleton of what lowest level of OS does when an
    interrupt occurs

27
Procesu sinchronizavimas ir saveika
  • Sinchronizavimo problema
  • vienas procesas gali perduoti duomenis kitam,
  • keli procesai gali apdoroti duomenis iš bendro
    failo (bendru resursu naudojimas).

28
Procesu sinchronizavimas ir saveika (2)
  • Procesu sinchronizavimo problemos sprendimo
    budai
  • Procesu pristabdymas ir atkyvavimas,
  • Eiliu organizavimas,
  • Resursu blokavimas ir atlaisvinimas.

29
Sinchronizavimo uždavinio pvz.
30
Lenktyniu efektas
31
Kritine 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.

32
Paprasciausias š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.

33
ThreadsThe Thread Model (1)
  • (a) Three processes each with one thread
  • (b) One process with three threads

34
The Thread Model (2)
  • Items shared by all threads in a process
  • Items private to each thread

35
The Thread Model (3)
  • Each thread has its own stack

36
Thread Usage (1)
  • A word processor with three threads

37
(No Transcript)
38
Thread Usage (2)
  • A multithreaded Web server

39
Thread Usage (3)
  • Rough outline of code for previous slide
  • (a) Dispatcher thread
  • (b) Worker thread

40
Thread Usage (4)
  • Three ways to construct a server

41
Implementing Threads in User Space
  • A user-level threads package

42
Implementing Threads in the Kernel
  • A threads package managed by the kernel

43
Hybrid Implementations
  • Multiplexing user-level threads onto kernel-
    level threads

44
Scheduler 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)

45
Pop-Up Threads
  • Creation of a new thread when message arrives
  • (a) before message arrives
  • (b) after message arrives

46
Making Single-Threaded Code Multithreaded (1)
  • Conflicts between threads over the use of a
    global variable

47
Making Single-Threaded Code Multithreaded (2)
  • Threads can have private global variables

48
Interprocess CommunicationRace Conditions
  • Two processes want to access shared memory at
    same time

49
Critical 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

50
Critical Regions (2)
  • Mutual exclusion using critical regions

51
Barriers
  • Use of a barrier
  • processes approaching a barrier
  • all processes but one blocked at barrier
  • last process arrives, all are let through

52
SchedulingIntroduction to Scheduling (1)
  • Bursts of CPU usage alternate with periods of I/O
    wait
  • a CPU-bound process
  • an I/O bound process

53
Introduction to Scheduling (2)
  • Scheduling Algorithm Goals

54
Scheduling in Batch Systems (1)
  • An example of shortest job first scheduling

55
Scheduling in Batch Systems (2)
  • Three level scheduling

56
Scheduling in Interactive Systems (1)
  • Round Robin Scheduling
  • list of runnable processes
  • list of runnable processes after B uses up its
    quantum

57
Scheduling in Interactive Systems (2)
  • A scheduling algorithm with four priority classes

58
Scheduling 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

59
Thread Scheduling (1)
  • Possible scheduling of user-level threads
  • 50-msec process quantum
  • threads run 5 msec/CPU burst

60
Aklavietes (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.

61
Pvz. 2 procesai, 2 resursai
62
Aklavieciu problema jungia šiuos uždavinius
  • Aklavieciu išvengimas,
  • Aklavieciu atpažinimas,
  • Sistemos atstatymas po aklavieciu.

63
Aklavieciu 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

64
Aklavieciu 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.

65
Recovery 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

66
Recovery 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
Write a Comment
User Comments (0)
About PowerShow.com