Pateiktis įkeliama. Prašome palaukti

Pateiktis įkeliama. Prašome palaukti

Procesai ir gijos ROMAN CHRUŠČIOV IT 1 GR. Vilniaus Universitetas

Panašios pateiktys


Pateikčių temos: "Procesai ir gijos ROMAN CHRUŠČIOV IT 1 GR. Vilniaus Universitetas"— Pateikties kopija:

1 Procesai ir gijos ROMAN CHRUŠČIOV IT 1 GR. Vilniaus Universitetas
Matematikos ir informatikos fakultetAS

2 Procesai Procesas yra veikianti programa.
Kiekvienas procesas saugo tokią informaciją kaip: Dabartinės programos skaitiklis; Registrų reikšmės; Kintamųjų reikšmės ir pan. Procesai gali būti vykdomi skirtingu dažnumu. Tai leidžia padaryti procesų prioritetai, kurie nusako, kuriems procesams skirti daugiau dėmesio.

3 Sisteminiai procesai ir demonai
Procesai, kurie yra paleidžiami operacinės sistemos jai užsikraunant ar valdant jos darbą, yra vadinami sisteminiais; Procesai, kurie veikia “fone” be vartotojo sąsajos – vadinami demonais;

4 Procesų valdymas Kad operacinė sistema galėtų valdyti visus procesus ir juos tvarkyti, yra sudaroma procesų lentelė; Joje saugoma informacija apie visus procesus: Proceso būsena; Programų skaitiklis; Steko rodyklė; Skirta atmintis; Atvirų failų būsena; ...

5 Gijos (Threads) Gijos – tai atskirai valdomi elementai, kurie dirba su procesoriumi; Gijos dar vadinamos lengvaisiasi procesais; Terminas daugiagijis nusako, kad viename procese veikia kelios gijos, kurios naudojasi bendra adresų erdve, atvirais failais ir kitais bendrais resursias.

6 Gijų tarpusavio sąveika
Gijos yra labiau susietos tarpusavyje nei procesai, nes vienu metu geba dalintis tais pačiais resursais ir adresų erdve; Gijų veikimo pavyzdžiai: darbas tekstiniame redaktoriuje MS Word, kuris be to, kad leidžia jums dirbti su juo, laikas nuo laiko dar išsaugo patį failą, neįtakodamos jūsų darbo su juo ir pan. Interneto serveriuose, kad vieni vartotojai mažiau įtakotų kitus, kiekvienai užklausai aptarnauti yra kuriama nauja gija

7 Gijų sukūrimas Tam, kad sukurti giją naudojama funkcija CreateThread kuri priima kelis parametrus: rodyklę į funkciją, kuri bus vykdoma gijoje; rodyklę į kintamąjį, kuris bus perduotas į funkciją HANDLE hThread; hThread = CreateThread( NULL, //no security attributes 0, // use default stack size ThreadFunc, // thread function &dwThrdParam, // argument to thread function 0, // use default creation flags &dwThreadId); // returns the thread identifier

8 Gijų sukūrimas Viename procese dažniausiai galima sukurti apie 2000 gijų. Toks apribojimas yra dėl to, kad vienai gijai išskiriama 1MB vietos atmintyje. 1MB x 2000 = apytiksliai 2GB. Tai yra maksimumas atminties kurią naudotojo procesas gali užimti pagal nutylėjimą. Sekantis pavyzdis sukūria gijas iki tol, kol pasiekia limitą.

9 #include "stdafx.h" #include <process.h> #include <conio.h> #include <windows.h> unsigned int __stdcall myThread (LPVOID params) { printf ("Inside thread"); Sleep (INFINITE); return 0; } int _tmain(int argc, _TCHAR* argv[]) { int i = 0; unsigned int dwThreadId = 0; while (true) { HANDLE h = (HANDLE) _beginthreadex (NULL, 0, myThread, NULL, 0, &dwThreadId); if (h == NULL) break; ++i; printf ("\n\nI spawned %d threads", i); Sleep (10000);

10 Ačiū už dėmesį!


Atsisiųsti ppt "Procesai ir gijos ROMAN CHRUŠČIOV IT 1 GR. Vilniaus Universitetas"

Panašios pateiktys


Google reklama