29
parengė N. Sarafinienė 1 Procesai ir gijos 2 skyrius 2.1 Ką vadiname procesu 2.2 Proceso būviai 2.3 Procesų eilės 2.4 OS kontrolės struktūros 2.5 Vykdymo modos 2.6 Gijos: procesai, gijos 2.7 Gijų tipai

Procesai ir gijos

  • Upload
    aneko

  • View
    81

  • Download
    2

Embed Size (px)

DESCRIPTION

Procesai ir gijos. 2.1 Ką vadiname procesu 2.2 Proceso būviai 2 .3 Procesų eilės 2 .4 OS kontrolės struktūros 2 .5 Vykdymo modos 2 .6 Gijos: procesai, gijos 2 .7 Gijų tipai. 2 skyrius. Proceso sąvoka. Procesas tai programa vykdymo metu. Procesų pavyzdžiai: OS branduolys - PowerPoint PPT Presentation

Citation preview

Page 1: Procesai ir gijos

parengė N. Sarafinienė1

Procesai ir gijos

2 skyrius

2.1 Ką vadiname procesu2.2 Proceso būviai2.3 Procesų eilės2.4 OS kontrolės struktūros2.5 Vykdymo modos2.6 Gijos: procesai, gijos2.7 Gijų tipai

Page 2: Procesai ir gijos

parengė N. Sarafinienė2

Proceso sąvoka

• Procesas tai programa vykdymo metu.• Procesų pavyzdžiai:

– OS branduolys– OS apvalkalas (shell)– Programa, vykdoma po kompiliavimo– www-naršyklė

• OS vykdomas procesų valdymas apima:– Išteklių priskyrimą– Planavimą: garantuoti jų vykdymą (stebėti procesoriaus

panaudojimą, atsakymo laikus)– Užtikrinti komunikacijas tarp procesų, sinchronizaciją (stebėti,

kad nesusidarytų mirties taškai)

Page 3: Procesai ir gijos

parengė N. Sarafinienė3

Dviejų būvių proceso modelis

• Procesas gali rastis viename iš dviejų būvių– Vykdomas, nevykdomas– Nevykdomas procesas yra eilėje

Page 4: Procesai ir gijos

parengė N. Sarafinienė4

Ką veikia nevykdomi procesai?

Page 5: Procesai ir gijos

parengė N. Sarafinienė5

Realiai yra daug eilių

• I/O veiksmai yra žymiai lėtesni nei CPU operacijų vykdymas• Kas bus, jei visi procesai lauks I/O pabaigos ir visa atmintinė yra užimta?• Arba jei nepakanka vietos atmintinėje visų procesų vykdymui?• Arba, jei....

Page 6: Procesai ir gijos

parengė N. Sarafinienė6

Atidėti procesai• Idėja: Permesti (swap) šiuos procesus į diską tuo

atlaisvinant atmintinę naujų procesų priėmimui.• Procesą permetus į diską procesas iš būvio

blokuotas pereina į būvį atidėtas (suspend).

Page 7: Procesai ir gijos

parengė N. Sarafinienė7

Du atidėti būviai

Page 8: Procesai ir gijos

parengė N. Sarafinienė8

Proceso atidėjimo priežastys

• OS turi atlaisvinti pakankamai vietos pagrindinėje atmintinėje norėdama įkelti procesą, kuris yra pasiruošęs vykdymui.

• OS gali atidėti foninį ar paslaugos procesą, kuris kelia problemą (tuo išvengiant mirties taško).

• Vartotojas gali atidėti programos vykdymą derinimo tikslais ar norėdamas panaudoti išteklį.

• Procesas gali būti vykdomas periodiškai (pvz. apskaitos procesas) ir todėl jis gali būti atidedamas iki kito laiko momento.

• Tėvo procesas gali norėti atidėti vaiko proceso vykdymą, siekdamas jį patikrinti ar modifikuoti.

Page 9: Procesai ir gijos

parengė N. Sarafinienė9

UNIX procesų diagrama

Page 10: Procesai ir gijos

parengė N. Sarafinienė10

OS kontrolės struktūros

Ko reikia procesui, kad jis galėtų būti vykdomas (proceso įvaizdis):– Programa– Duomenys– Stekas– Proceso kontrolės blokas

(kontekstas – daugiaprograminiam režimui

OS turi saugoti tokią informaciją: – Informaciją apie kiekvieno

proceso ir išteklio būvį.– Tam konstruojamos

atitinkamos lentelės.

Page 11: Procesai ir gijos

parengė N. Sarafinienė11

Proceso lentelė bei kitos OS lentelės

Kitos OS lentelės talpina informaciją, liečiančią išteklius:

– Kaip priskirta pagrindinė/antrinė atmintinė

– I/O įrenginių būklė– Buferiai atmintinėje– Failų būviai, vieta,

parametrai,...

Kiekvienas įėjimas talpina inf.:•Kur procesas yra patalpintas •Parametrus, reikalingus jo valdymui

– Proceso ID–Proceso būvį– proceso vietą atmintinėje–proceso kontrolės blokas

Page 12: Procesai ir gijos

parengė N. Sarafinienė12

Proceso kontrolės blokas (PCB)PCB talpina:

– Identifikatorius (proceso, tėvo proceso, vartotojo,...)

– Proceso būvio informaciją (registrų reikšmės: turi būti kopijuojamos ir atstatomos esant perėjimams: vykdomas↔pasiruošęs,…)

– Kitą proceso kontrolės informaciją:

• Skirstymo ir būvio informacija (prioritetas, laukiamas įvykis, …)

• Proceso atmintinės lentelės• ištekliai (atidaryti failai,

priklausomybė, …)• Nuorodos (į kitus procesus eilėje,

…)• Privilegijos

Page 13: Procesai ir gijos

parengė N. Sarafinienė13

Proceso sukūrimasPavyzdžiai:

– Pradedama vykdyti sukompiliuota vartotojo programa

– Prisijungia vartotojas (pradedama vykdyti apvalkalo-shell programa)

– Sukuriamas procesas tam tikros paslaugos atlikimui (pvz. spausdinimas: vartotojas vykdo lpr komandą)

– Procesass sukuria naują procesą (pvz. shell sukuria lpr; vartotojų programos irgi gali kurti procesus)

OS privalo:– Priskirti procesui unikalų identifikatorių– Procesui išskirti erdvę atmintinėje– Inicializuoti proceso kontrolės bloką– Sukurti tinkamus sąryšius– Įjungti procesą į sistemą (į kažkurias

eiles,...)

Page 14: Procesai ir gijos

parengė N. Sarafinienė14

Kada nutraukiamas vykdomo proceso vykdymas

• Laikrodžio mechanizmo generuojami pertraukimai– Procesas visą maksimalų vykdymui skirto laiko kvantą

• I/O pertraukimas• Atmintinės klaida

– Adresas gali būti nurodytas į virtualią atmintinę, taigi gali kilti reikalas įkelti kažkurią dalį į pagrindinę atmintinę.

• Vidinės priežastys– Įvyko klaida– Procesas baigė savo veiksmų vykdymą ir turi būti baigtas

• Sisteminiai kvietiniai– Kaip pavyzdžiui, atidaryti failą.

Page 15: Procesai ir gijos

parengė N. Sarafinienė15

Proceso perjungimas (konteksto perjungimas)

vykdomas→kitas– Išsaugomas procesoriaus turinys įskaitant PC ir kitų

registrų turinius procesų kontrolės bloke (PCB)– PCB perkeliamas į atitinkamą eilę (pasiruošę, blokuoti,

…)– Vykdymui išrenkamas kitas procesas – Į PCB įrašoma informacija apie išrinktą procesą – • Update memory-management data structures

• • Restore context (in processor) of the selected process

Page 16: Procesai ir gijos

parengė N. Sarafinienė16

Vykdymo būsenos (modes)

• Vartotojo būsena– Tai mažesnių privilegijų būsena– Vartotojo programos paprastai vykdomos šioje

būsenoje • Sisteminė, kontrolės arba branduolio būsena

– Būsena su didesnėmis privilegijomis– Vykdomas OS branduolys

Page 17: Procesai ir gijos

parengė N. Sarafinienė17

OS vykdymas• Ne-procesinis branduolys

– OS kodas vykdomas kaip atskira esybė, kuri vykdoma privilegijuotoje būsenoje.

• Vykdymas vartotojo procesuose– OS programinė įranga vartotojo

proceso kontekste– Procesas vykdomas privilegijuotoje

būsenoje kai jis vykdo OS kodą . • Procesais pagrįsta OS

– Dauguma branduolio funkcijų yra atskiri procesai.

– Gerai tinka esant keliems procesoriams.

Page 18: Procesai ir gijos

parengė N. Sarafinienė18

Gijos

Page 19: Procesai ir gijos

parengė N. Sarafinienė19

Procesai ir gijos• Daug gijų: sudaroma prielaida tam, kad daugiau nei viena

esybė turi vykdymo galimybę tame pačiame procese.

Vienetu ....• vykdant CPU laiko skirstymą yra gija.• … išteklių valdyme yra procesas.

Page 20: Procesai ir gijos

parengė N. Sarafinienė20

Procesas turi ... Gija turi ...• Virtualią adresinės erdvę,

kurioje yra proceso įvaizdis.• Globalius kintamuosius,

failus, vaikų procesus, signalus ir signalų doroklius.

• Vykdymo būvį, steką ir kontekstą (išsaugomą, kai nėra vykdoma) • Prieigą prie atmintinės ir jos proceso išteklių.

– visos proceso gijos tuo naudojasi bendrai.

• Tam tikrą gijai skirtą atmintinės sritį lokalių kintamųjų saugojimui.

Page 21: Procesai ir gijos

parengė N. Sarafinienė21

Atidėjimas ir pabaiga

• Proceso atidėjimas ( Suspending a process) apima visas proceso gijas nes visos proceso gijos naudojasi ta pačia adresinės erdve.

• Procesą užbaigiant yra baigiamos visos proceso gijos.

Page 22: Procesai ir gijos

parengė N. Sarafinienė22

Nauda taikant gijas

• Kadangi to paties proceso gijos dalinasi atmintine ir failais, jos gali komunikuoti viena su kita nesikreipdamos į branduolį.

• Gali suteikti veiksmų išlygiagretinimą procese– I/O ir skaičiavimo veiksmai gali persidengti– Gali būti vykdomas vykdymas esant keletui procesorių

• Reikalauja mažiau laiko– Sukuriant / užbaigiant giją nei procesą– Pereinant tarp gijų tame pačiame procese.

Page 23: Procesai ir gijos

parengė N. Sarafinienė23

Gijų panaudojimas

• Perdengiant aktyvų (foreground) darbą su foniniu. • Vykdant asinchroninį apdorojimą (pav. darant

atsarginę kopiją ir tuo pačiu metu redaguojant) .• Greitas proceso vykdymas (lygiagretūs

nepriklausomi veiksmai).• Užtikrinant modulinę programos struktūrą. • Klausimas: ar galima pasiekti proceso veiksmų

išlygiagretinimą nenaudojant gijų?

Page 24: Procesai ir gijos

parengė N. Sarafinienė24

Gijos vartotojo erdvėje• Branduolys nežino apie gijų egzistavimą.

• Vykdymo meto ( Run-time) sistema (gijų biblioteka) yra atsakinga už apskaitą (bookkeeping), gijų skirstymą (scheduling) , leidžia vartotojišką skirstymą.• Gali būti naudojamos bet kurioje OS.• Bet kyla problemos blokuojant sisteminius kvietinius (užsiblokavus kažkuriai gijai, blokuojamas visas procesas, kitos to paties proceso gijos negali būti vykdomos).

Page 25: Procesai ir gijos

parengė N. Sarafinienė25

Branduolio lygio gijos• Branduolys saugo kontekstinę informaciją apie

procesus ir gijas.• CPU laiko skirstymas daromas gijų atžvilgiu.• Nėra blokavimo problemos• Mažiau efektyvu nei vartotojo-lygio gijos (branduolys įjungiamas kuriant gijas, jas užbaigiant, pereinant tarp gijų).

Page 26: Procesai ir gijos

parengė N. Sarafinienė26

Hibridinė realizacija

• Sutankinant (Multiplexing) vartotojo-lygio gijas į branduolio-lygio gijas.

•Išnaudojami abiejų metodų privalumai.

Page 27: Procesai ir gijos

parengė N. Sarafinienė27

Vartotojo lygio ir branduolio lygio gijos

Page 28: Procesai ir gijos

parengė N. Sarafinienė28

Pavyzdžiai

• Posix Pthreads: (IEEE) standartas:– Specifikuoja sąsają– Diegimas (naudojant vartotojo/branduolio lygio gijas)

priklauso nuo projektuotojų.– Daugiau įprastos UNIX sistemose.

• Win32 gijų biblioteka:– Branduolio lygio biblioteka, “windows” sistemos.

• Java gijos:– Palaikomos JVM (VM: vykdymo laiko sistema)– Diegimas priklauso nuo projektuotojų

Page 29: Procesai ir gijos

parengė N. Sarafinienė29

Pavyzdžiai• Solaris: hibridinis modelis

– Vartotojo-lygio gijos– Lengvasvoriai procesai– Branduolio lygio gijos

• W2K: hibridinis modelis– gija: branduolio (naudoja win32 API)

• Fiber: Vartotojo-lygio gijos (biblioteka)• Linux: Tik branduolio lygio– clone sist. kvietinys: Naudoja parametrus nusakant bendrą išteklių naudojimąamount of– Clone kartais gali būti lygiavertus fork.