14
Sisteme de Operare Curs nr. 2 2. Structura unui sistem de operare Datorită complexităţii lor, conform ingineriei software, sistemul de operare trebuie împărţit în subsisteme care se pot analiza, proiecta şi realiza separat, ţinându-se cont de legăturile dintre subsisteme. Orice sistem de operare conţine două mari părţi: partea de control şi partea de servicii. a) partea de control: se execută în mod master şi realizează legătura cu sistemul de calcul; - întreruperi: ansamblu de rutine, fiecare dintre ele fiind activată la apariţia unui anumit semnal de întrerupere; HARDWARE Gestiunea tehnică a SO Gestiunea economică a SO Compilatoare; Asambloare; Link-editoare; Loadere Interpretoare; Macroprocesoare (preprocesoare); Editoare de texte; Rutine de depanare Utilitare; Biblioteci de programe; Baze de date; Alte aplicaţii Interfaţa cu utilizatorul Medii de programare Biblio- tecar Utilizator Operator uman Parte de servicii Parte de control Planificare procese şi alocare resurse Gestiune fişiere I/O la nivel fizic Gestiune memorie Întreruperi; Gestiune procese; Dispecer procesoare Fig. 2.1. Structura generală a unui sistem de operare

SO-Curs2

Embed Size (px)

DESCRIPTION

sisteme de operare

Citation preview

  • Sisteme de Operare

    Curs nr. 2

    2. Structura unui sistem de operare

    Datorit complexitii lor, conform ingineriei software, sistemul de operare trebuie mprit n subsisteme care se pot analiza, proiecta i realiza separat, inndu-se cont de legturile dintre subsisteme. Orice sistem de operare conine dou mari pri: partea de control i partea de servicii.

    a) partea de control: se execut n mod master i realizeaz legtura cu sistemul de calcul; - ntreruperi: ansamblu de rutine, fiecare dintre ele fiind activat la

    apariia unui anumit semnal de ntrerupere;

    HARDWARE

    Gestiunea tehnic a

    SO

    Gestiunea economic

    a SO

    Compilatoare; Asambloare; Link-editoare; Loadere

    Interpretoare; Macroprocesoare (preprocesoare); Editoare de texte; Rutine de depanare

    Utilitare; Biblioteci de programe; Baze de date; Alte aplicaii

    Interfaa cu utilizatorul Medii de

    programare Biblio-tecar

    Utilizator

    Operator uman

    Parte de servicii

    Parte de control

    Planificare procese i alocare resurse

    Gestiune fiiere

    I/O la nivel fizic

    Gestiune memorie

    ntreruperi; Gestiune procese; Dispecer procesoare

    Fig. 2.1. Structura general a unui sistem de operare

  • Sisteme de Operare

    - gestiune procese: creeaz procese i rezolv problemele privind cooperarea i concurena acestora;

    - dispecer procesoare: la sistemele multiprocesor, repartizeaz sarcinile de calcul solicitate de procese procesoarelor care sunt libere i pot executa sarcinile;

    - gestiune memorie: aloc necesarul de memorie intern solicitat de procese i asigur protecia memoriei folosite de procese;

    - I/O la nivel fizic: asigur efectuarea operaiilor elementare de I/O cu toate tipurile de periferice din sistem, realiznd acolo unde este posibil desfurarea simultan a uneia sau mai multor operaii de I/O. Este puternic dependent de hardware i conine rutine de interfa numite drivere care realizeaz compatibilizarea conveniilor de I/O ntre sistemul de calcul i echipamentele periferice;

    - gestiune fiiere: asigur deschiderea, nchiderea i accesul utilizatorului la fiierele aflate pe diferite suporturi de stocare a informaiei;

    - planificare procese i alocare resurse: asigur planificarea proceselor astfel nct ele s poat obine necesarul de resurse individual sau partajat cu alte procese; are influen i asupra gestiunii proceselor, memoriei, sistemului de I/O;

    - gestiune tehnic a SO: pstreaz evidena erorilor hard aprute la echipamentele sistemului de calcul precum i informaii privind gradul de utilizare a componentelor sistemului de calcul;

    - gestiune economic a SO: pstreaz evidena utilizatorilor care folosesc sistemul, resursele consumate;

    b) partea de servicii: se execut n mod slave, folosind facilitile parii de

    control i asigur legtura cu utilizatorul; - compilatoarele: - asamblorul: - link-editorul sau editorul de legturi: - loader: este un program special al sistemului de operare care are

    urmtoarele sarcini: citirea unui program executabil de pe un anumit suport, ncrcarea acestuia n memorie, lansarea n execuie. Dac programul este segmentat, loader-ul ncarc la nceput segmentul rdcin al programului, dup care, la cerere, ncarc fiecare segment solicitat n memorie;

    - interpretor: program care execut pas cu pas instruciunile descrise ntr-un anumit limbaj;

    - macroprocesor (preprocesor): - editorul de texte: - rutine de depanare: - bibliotecarul: utilitar cu ajutorul cruia utilizatorul poate comanda

    pstrarea programelor proprii n fiiere de tip bibliotec; - mediile de programare: - interfaa cu utilizatorul:

  • Sisteme de Operare

    Exemplu: Windows 2000 are un mikrokernel modificat: - nu are un microkernel pur;

    multe din funciile sistemului sunt n afara mikrokernel-ului i ruleaz n modul kernel; modulele pot fi terse, nnnoite, nlocuite fr a fi necesar rescrierea ntregului sistem Structura este pe nivele (layere):

    - Hardware abstraction layer (HAL): izoleaz sistemul de operare de specificul platformei hardware;

    - Mikrokernel - Drivere: transform apelurile funciilor I/O ale utilizatorului n cereri

    specifice componentei hardware;

    Unix:

    Fig. 2.2. Arhitectura Windows 2000

    Fig. 2.3. Arhitectura general a unui sistem UNIX

  • Sisteme de Operare

    Complexitatea sistemelor de operare face ca acelai sistem s apar cu diferite organizri din puncte de vedere diferite:

    - organizarea codului surs; - organizarea memoriei; - condiiile de execuie; - interaciunea dintre componente; - adaptabilitatea la configuraia hardware.

    2.1. Organizarea memoriei

    O anumit parte a oricrui sistem de operare trebuie s se gseasc permanent n memorie n timpul funcionrii sistemului de calcul. Aceast parte se numete partea rezident i conine procedurile care trateaz serviciile critice ca planificarea proceselor, tratarea erorilor, verificarea securitii precum i tratarea iniial a apelurilor sistem. Aceste componente se mai numesc i nucleul sistemului sau kernel, dei pot exista i alte componente care pot fi rezidente n memorie. De regul acestea ocup o zon fix a memoriei, care include regiunea cu adresele cele mai mici, regiune n care se gsesc vectorii de ntrerupere.

    Componentele mai puin utilizate ale sistemului de operare, ca de exemplu cele specializate n gestionarea sistemului de fiiere sau cele legate de interfa prin comezi, sunt ncrcate la cerere i se numesc componentele tranzitorii. Aceste componente pot avea o zon de memorie rezervat sau pot fi ncrcate n orice zon de memorie disponibil, intrnd astfel n competiie cu programele utilizator.

    Unele arhitecturi au rezervat o poriune a spaiului de adrese pentru I/O mapate n memorie (memory mapped I/O). Aceste adrese fac referin la registrele din interfeele hardware cu echipamentele periferice fiind rezervate pentru sistemul de operare.

    Modul de utilizare a memoriei interne este ilustrat n continuare prin prezentarea hrilor de memorie (memory maps), avnd n vedere 3 aspecte distincte: - coninutul spaiului virtual de adrese cnd este n execuie un program utilizator;

    - coninutul spaiului virtual de adrese cnd este n execuie o component a sistemului de operare;

    - coninutul memoriei fizice; Exemplu:organizarea memoriei la diferite sisteme de operare

    La CP/M, memoria direct adresabil n sistem este de 64koctei, limit impus de arhitectura procesorului 8080. Sistemul de operare folosete primii 256 octei pentru vectorii de ntrerupere i pentru informaii de sistem (tamponul pentru linia de comand). Componenetele rezidente BIOS (Basic Input / Output System) i BDOS (Basic Disk Operating System) ocup aproximativ 10 koctei din zona superioar a spaiului de adrese. Programele utilizator i rezerv propria stiv. Interpretorul de comenzi CCP (Command Control Processor) este ncrcat cnd este necesar n zona trranzitorie i

    BIOS

    BDOS

    CCP

    Nefolosit

    Program + date aplicaii

    Zona de comand

    64k

    ~54k

    256

    0

    Fig. 2.4. Harta memoriei la CP/M

  • Sisteme de Operare

    ocup circa 2 koctei. Programele de aplicaie se ncarc de la adresa 256 (100h) a memoriei.

    Procesorul 8086 permite adresarea direct a 1Moctet de memorie. Sistemul

    MS-Dos rezerv zona peste 640K pentru memoria video i pentru programe memorate n ROM (o serie de programe de test activate la pornirea calculatorului). Zona de comunicaii (vectorii de ntrerupere i o zon tampon de 512 octei) ocup primii 1536 octei Partea rezident ocup zona ncepnd de la 1536, include i o poriune din interpretorul de comenzi, restul acestuia fiind n partea superioar a memoriei fizice. Partera tranzitorie a interpretorului de comenzi poate fi acoperit de programele de aplicaie.

    Pentru un proces spaiul de adrese este limitat la 4 segmente de 64Ko fiecare, unul fiind rezervat pentru cod, unul pentru stiv i dou pentru date. Frecvent se folosete un singur element pentru stiv i date. Din segmentul de program primii 256 octei formeaz zona de comunicaii.

    BIOS (ROM)

    Memoria video

    Interpretor comenzi tranzitoriu

    Nefolosit

    Program + date aplicaii

    Zona de comunicaii

    1M

    640K

    1536

    0

    Fig. 2.5. Harta memoriei la MS-DOS

    Rezident SO

    Nefolosit

    Stiva aplicaie

    Date aplicaie

    0

    64K

    0

    Nefolosit

    Program aplicaie

    64K

    Zona de comunicaii 256

    Fig. 2.6. Adrese virtuale ntr-un proces

    Stiva

    Program aplicaie 0

    max

    Fig. 2.7.UNIX - Adrese virtuale ntr-un proces

    Date

    0

    Sistem de operare rezident

    max

    Fig. 2.8.UNIX - Adrese virtuale n sistemul de operare

  • Sisteme de Operare

    Harta de memorie la UNIX nu este prezentat deoarece trebuie inut cont de caracteristicile arhitecturale ale calculatorului gazd, astfel nct s se pstreze n memoria fizic n fiecare moment informaia necesar. Tehnicile de swapping i/sau memorie virtual se utilizeaz att pentru sistemul de operare, ct i pentru programele utilizator.

    Din spaiul de adrese al unui proces nu este vizibil nici o poriune a sistemului de operare.

    n cazul Linux, pentru procesoarele 386, folosind memoria paginat, fiecare

    proces poate accesa 4GB de memorie (232).

    0x110000 Liber memory_end sau high_ memory mem_map mem_init( ) inode_table inode_init( ) device data device_init( ) 0x100000 pg_tables paging_init( ) 0x0A0000 Rezervat 0x060000 Liber low_memory_start 0x006000 kernel code + data floppy_track_buffer bad_pg_table

    bad_page

    utilizat de page_fault_handlers pentru orirea proceselor cind nu mai exist memorie liber disponibil

    0x002000 pg0 first kernel page table 0x001000 swapper_pg_dir kernel page directory 0x000000 null page

    0xc0000000 kernel rezervat stiva iniial spaiu pentru creterea stivei 4 pagini 0x60000000 biblioteci

    brk nefolosit malloc memory end_data date neiniializate end_code date iniializate 0x00000000 text

    Fig. 2.9. Harta de memorie la Linux

    Fig. 2.10. Memoria vazut de un proces

  • Sisteme de Operare

    Sistemul OS/MVT pentru calculatoarele IBM System/360, este

    multiprogramat, fr memorie virtual, cu spaiul de adresare de maxim 16 Moctei. Fiecare task are alocat o zon continu de memorie, n care se afl programul, datele i informaiile de comand ale task-ului. ntreg spaiul de adrese este vizibil fiecrui proces, dar exist o schem simpl de protecie (cu suport hardware).

    n sistemul OS/MVS pentru calculatoarele IBM System/370 ntregul spaiu de adrese virtuale de 16 Moctei este vizibil oricrui proces. Sistemul de operare este utilizat n comun de toate procesele i ocup poriunile de la extremiti. Restul spaiului este privat fiecrui proces i conine programul, datele i informaiile de comand ale procesului.

    2.2. Interaciunea componentelor la execuie

    Sistemul de operare poate fi privit ca o colecie de rutine invocate prin apeluri sistem sau ca urmare a unor ntreruperi. Apelurile sistem difer de apelurile normale de rutine, deoarece duc la creterea nivelului de privilegii n timpul execuiei. Rutinele sistemului pot folosi toate instruciunile, au acces la toate registrele i la toate locaiile de memorie.

    Apelurile sistem au un mecanism de declanare care este analog producerii unor ntreruperi, dar sursa este n program i nu n afara acestuia. Toate apelurile sistem au acelai punct de intrare n sistemul de operare. Fiecare apel este nsoit de informaii suplimentare (codul apelului) transmise prin registrele calculatorului.

    2(16) M Zona tranzitorie

    Task aplicaie

    Task aplicaie

    Task aplicaie

    Task sistem

    Task sistem

    Info control sistem

    Zona tranzitorie

    Nucleu 0

    2(16) M

    Info comand sistem

    Zona tranzitorie

    a) OS/MVT

    Fig. 2.11. Hri de memorie la sistemele IBM

    Program + date aplicaie

    Zona tranzitorie

    Nucleu 0

    Info comand aplicaie

    b) OS/MVS

  • Sisteme de Operare

    Codul apelului este folosit de dispecer pentru a selecta rutina adecvat tratrii apelului.

    Sistemul de operare trebuie s gestioneze activiti care trebuie s continue o

    perioad mai lung de timp n paralel cu execuia programelor utilizator (tiprirea). Acestea sunt organizate ca procese distincte numite procese de sistem, care au o prioritate de planificare mai mare.

    Organizarea unei pri a codului sistemului de operare n procese sistem este i o cale de reducere a erorilor n proiectarea i implementarea sistemului.

    2.3. Structura pe nivele a componentelor

    Dac am avea o structur fr restricii, orice procedur a unui sistem de operare ar putea apela orice alt procedur sau ar putea face acces la orice structur de date ceea ce ar duce la o mare dificultate n determinarea efectelor schimbrilor n proceduri sau n structurile de date.

    Sistemele de operare sunt structurate pe nivele deoarece fiecare nivel poate fi dezvoltat i testat separat.

    4. Programe de aplicaie 3. Intrare/ieire 2. Consola utilizator 1. Memoria virtual 0. Planificare procese; ntreruperi

    Nu exist reguli generale n repartizarea funciilor pe fiecare nivel, dar

    sarcinile critice ca planificarea proceselor, gestiunea memoriei, protecia, trebuie s apar pe un nivel mai jos dect cele ca gestiunea fiierelor i interfaa cu utilizatorul. De asemenea, nici numrul de niveluri nu poate fi prescris prin reguli fixe.

    dispecer

    apel sistem rutine de serviciu

    ntreruperi

    Fig. 2.12. Declanarea execuiei rutinelor sistemului de operare

    Fig. 2.13. Sistemul de operare THE realizat de E.Dijkstra

  • Sisteme de Operare

    2.4. Adaptabilitatea la configuraia hardware

    Deoarece depind n mare masur de suportul hardware pe care ruleaz, este de dorit ca sistemele de operare s fie ct mai portabile. Sistemul de operare trebuie s fie adaptat la orice configuraie, lucru care uneori poate duce la unele modificri n codul surs sau doar la o specificare a unor anumii parametri la iniializarea sistemului. Este de dorit ca sistemele de operare s detecteze automat caracteristicile hardware ale sistemului s se autoconfigureze la ncrcare.

    3. Procese

    Procesul este un program n execuie. Un program este o secven de instruciuni. Pentru un program dat (fiier executabil) pot exista unul sau mai multe procese asociate numite instane. Procesul reprezint invocarea dinamic a unui program mpreun cu resursele necesare pentru lansarea n execuie. Resursele includ: stiva utilizator, stiva sistem, memorie, identificatori de fiier, etc.

    Fiecare proces se execut ntr-un spaiu de adrese propriu. Spaiul de adrese virtual este cuprins ntre 0 i adresa virtual maxim accesibil i este format din urmtoarele zone(segmente):

    - Segmentul text codul programului, este protejat la scriere; - Segmentul de date - date predefinite (cunoscute la compilare) sau date

    alocate dinamic; - Segmentul de stiv conine argumente, variabile locale i alte date pentru

    execuia funciilor n modul utilizator Pe sistemele uniprocesor execuia unui proces este secvenial. Dac sistemul

    de operare este multitasking, atunci pe un procesor se pot executa mai multe procese, fiecare proces avnd alocat o cuant de timp pentru execuie dup care urmeaz altul. n acest caz execuia se numete secvenial concurent sau aparent paralel.

    Execuia unui proces se poate face n dou moduri: - Modul utilizator: procesele au acces numai la propria zon de cod, date i

    stiv urilizator; - Modul nucleu: procesul conine instruciuni privilegiate i poate avea

    acces la structurile de date ale nucleului. Procesele sunt create:

    - la iniializarea sistemului (reboot); - la execuia unui apel de funcie pentru creare de procese (fork); - la cererea unui utilizator de creare a unui nou proces; - la iniializarea unui job.

    Procesele sunt terminate: - normal terminarea programului (voluntar) - eroare terminare cu eroare (voluntar) - fatal error divide by 0, core dump (involuntar) - terminat de un alt proces (involuntar) Se pot stabili i unele ierarhii de procese: cazul n care un proces printe

    creeaz un proces fiu; procesul fiu poate crea propriile sale procese Exemplu: n UNIX exist conceptul de grup de procese" (process group).

  • Sisteme de Operare

    3.1.Strile unui proces

    Starea unui proces evideniaz activitatea procesului. Un proces care se execut este n starea run. Dac procesul este implicat ntr-o operaie de I/O i dispozitivul periferic nu este liber sau pur i simplu este lent sau nu este pregtit, procesul este trecut n starea bloked (blocat). Dac sistemul este multitasking, atunci un proces folosete procesorul pe durata unor cuante de timp fiind oprit de ctre sistemul de operare care alege alt proces pentru execuie. Starea n care este trecut procesul se numete ready (pregtit sau gata de execuie).

    run

    bloked

    ready

    suspendat

    planificat Ateptare resurs

    Fig. 3.1. Diagrama de stare simplificat pentru un proces

    Run (mod utilizator)

    Run (mod kernel)

    Terminat (zombie)

    Ready preemptat

    Ready

    Ateptare (wait, asleep)

    Ateptare (suspendat) -

    pe disk

    Ready suspendat

    Creat

    exit

    ntrerupere apel funcie sistem ntrerupere

    returnreturn

    planificare proces

    preempie

    sleep

    trezire (wake up)

    trezire (wake up)

    swap out swap out swap in

    memorie intern suficient

    memorie intern insuficient

    fork

    n memoria intern

    n memoria extern

    Fig. 3.3. Strile unui proces

    New Ready Running Exit

    Suspend Bloked

    Admit Dispatch

    Timeout

    Terminare

    Activare

    suspendare

    Apariie eveniment Ateptare eveniment

    Fig. 3.2. Strile unui proces cu o singur stare de suspendare

  • Sisteme de Operare

    Un proces va trece din starea ready n run mod nucleu pe baza unei prioriti (se termin activitatea funciei fork). Prioritile sunt dinamice i se calculeaz din secund n secund astfel:

    prioritate = baza + utilizare_recent_CPU / constant + valoare_nice

    unde baza = 60 (ceasul ntrerupe de 60 ori/sec); valoare_nice se presupune nul; nucleul calculeaz utilizare_recent_CPU prin mprirea numrului de taci la 2 n momentul calculului prioritii; constanta este 2.

    La terminarea funciei de apel, procesul va fi trecut n starea run mod utilizator, stare din care poate reveni n run n mod nucleu dac apare o ntrerupere sau procesul apeleaz o funcie sistem.

    Dac ceasul sistem genereaz o ntrerupere, procesul care se execut n modul utilizator este trecut n run n mod nucleu. Dup rezolvarea cererii de ntrerupere nucleul poate decide s fie trecut n execuie alt proces, iar procesul analizat va trece n ready preemptat. n aceast stare ajung procesele care sunt executate n mod nucleu i trebuie s revin n mod utilizator, dar este planificat pentru execuie un alt proces mai prioritar.

    Imaginea unui proces conine pe lng zonele text, date i stiv i o zon numit Process Control Block al crei rol este de a furniza date cu privire la:

    - identificarea procesului: pid, uid, real uid, real gid, effective uid, efective gid

    - informaiile de stare: regitrii vizibili utilizatorului, de obicei de la 8 la 32, uneori pe unele maini RISC peste 100

    - informaiile de control al procesului:

    state

    memory

    accounting

    priority

    user

    CPU registers storage

    text

    data

    heap

    stack

    PSW

    IR

    PC

    SP

    general purpose registers

    PCB CPU kernel user

  • Sisteme de Operare

    3.2. Structuri de date pentru gestiunea proceselor

    Pentru gestiunea proceselor, nucleul aloc n memoria intern n mod static, o tabel unic numit tabela proceselor. Dimensiunea tabelei este fixat la generarea sistemului i limiteaz numrul de procese pe care nucleul le poate gestiona pe sistemul respectiv.

    Tabela proceselor conine urmtoarele cmpuri: - starea procesului; - localizarea procesului n memoria intern sau n memoria secundar

    folosit pentru swapping; - dimensiunea procesului; - identificatorii ataai utilizatorului i grupului su; - identificatorul procesului; - descriptorul evenimentului care a produs trecerea procesului n starea de

    ateptare; - parametrii de planificare pentru obinerea procesorului; - semnalele trimise procesului, dar nc netratate; - diferii timpi care indic timpul de execuie n mod utilizator i n mod

    nucleu pentru calculul prioritii procesului; un cmp este folosit pentru SIGALARM.

    Zona u este generat i ataat unui proces la crearea lui, este accesibil

    nucleului numai n timpul execuiei procesului la care este ataat. Variabila u folosit de nucleu conine adresa virtual a zonei u a procesului n curs de execuie. Cmpurile zonei conin:

    - un pointer la intrarea n tabela proceselor corespunztoare procesului la care este ataat zona u;

    - identificatorul utilizatorului real i efectiv, n funcie de care se stabilesc drepturile de acces la fiiere, cozile de mesaje, memorie comun, semafoare, etc.

    Tabela proceselor

    Tabela regiunilor per proces (1/proces)

    Tabela regiunilor (1/sistem)

    zona u

    Memoria fizic

    Fig. 3.4 Structurile de date pentru procese

  • Sisteme de Operare

    - timpii de execuie ai procesului i descendenilor si n mod utilizator i nucleu;

    - modul de reacie a procesului la semnale (ignorate, prelucrate, tratare de nucleu);

    - identificatorul terminalului de control (login terminal) asociat cu procesul;

    - eroarea aprut n timpul apelului unei funcii de sistem; - valoarea returnat de o funcie de sistem; - parametrii de I/O: tipul transferului, adresa din spaiul procesului unde/de

    unde se transfer, deplasamentul n fiier etc; - directorul curent; - tabela descriptorilor de fiiere utilizator (TDFU); - dimensiunea limit a procesului i a fiierelor; - masca pentru drepturile de acces la fiierele create. Tabela regiunilor este gestionat de nucleu. O intrare n tabel conine

    informaiile necesare identificrii unei regiuni n memoria fizic intern. O regiune este o zon contigu din spaiul de adrese virtual, care este tratat ca un obiect distinct ce poate fi partajat sau protejat. Cmpurile unei intrri n tabela regiunilor sunt:

    - un pointer la i-node-ul fiierului al crui coninut se gsete n regiune; - tipul regiunii: text, date, memorie partajat, stiv; - dimensiunea regiunii; - adresa regiunii n memoria intern; - starea regiunii (poate fi o comninaie de: blocat, n cerere, n curs de

    ncrcare, valid coninutul este ncrcat n memorie i accesibil); - numrul de procese care refereniaz regiunea. Operaiile asupra unei regiuni sunt: - alocarea unei regiuni; - blocarea / deblocarea; - ataarea la un proces; - creterea dimensiunii regiunilor care conin date; - ncrcarea coninutului unui fiier n regiune; - eliberarea unei regiunii; - detaarea unei regiuni; - duplicarea unei regiuni; Fiecare proces are o tabel numit tabela regiunilor per proces . Fizic ea poate

    intra n tabela proceselor, n zona u, sau ntr-o zon de memorie alocat acestui scop. Cele mai multe implementri plaseaz aceast zon n tabela proceselor.

    O intrare n tabela regiunilor per proces conine: - un pointer la intrarea corespunztoare n tabela regiunilor; - adresa virtual de nceput (start) a regiuni; pentru procese diferite, o

    regiune partajat poate vedea adrese virtuale de nceput diferite (fig. 3.5); - drepturile de acces la regiune: read-only, read-write, read-execute.

  • Sisteme de Operare

    Conceptul de regiune este independent de tehnica de gestionare a memoriei prin paginare la cerere, prin partiionare dinamic i swapping, prin segmentare etc.

    Proces 1

    10K

    20K

    40K Stiva

    Date

    Text

    4K

    16K

    32K Stiva

    Date

    Text

    Proces 2

    Tabela regiunilor per proces

    Regiuni

    b

    a

    c

    d

    e

    Fig. 3.5. Partajarea unei regiuni