stivă hardware
Stiva - un dispozitiv de memorie. din care elementele sunt eliminate în ordinea inversă a plasării lor în stivă. Stiva poate fi reprezentat ca un teanc de foi pe fiecare dintre care se înregistrează unul dintre elementele stocate. În partea de sus a stivei este umplut cu ultimul element.
Stiva poate fi reprezentat ca un tub cu un fund arc, aranjate vertical. Capătul superior al tubului este deschis, poate fi adăugat la acesta, sau, după cum a spus împinge elemente. termeni comuni în engleză în acest sens este foarte colorat, adăugați elementul de operare în stivă este notată de împingere. tradus „pentru a împinge, împinge.“ Noul element adăugat împinge elementul plasat în stivă de mai sus, o poziție în jos. Când eliminați elemente din stivă ca și în cazul în care acestea sunt împinse în sus, în limba engleză pop ( „off“).
suna apelul subrutina și a reveni la revenirea echipei
Hardware stivă și variabile locale ale subrutina
Având în vedere că stiva hardware-ul se află în memoria RAM, este posibil să se plaseze un program de variabile normale. Plasarea variabilelor locale într-un teanc are o serie de avantaje în comparație cu variabilele de plasare statice la puncte fixe de RAM. După cum sa menționat mai sus, acest lucru vă permite să organizați recursivitate. În plus, arhitectura modernă de o importanță fundamentală pentru a sprijini procesele concurente care rulează pe variabile statice partajate. Această așa-numitele procese ușoare sau fire (filet), care funcționează în paralel într-un singur program. Cu privire la utilizarea de fire, de exemplu, se bazează activitatea tuturor aplicațiilor grafice în sistemul Microsoft Windows 32: un fir de procese de sistem grafic de mesaje (apăsând pe butoanele tastaturii și mouse-ului, redesenarea de ferestre, eșantion comenzile dintr-un meniu, etc.), alte fire sunt angajate în calcule, comunicarea în rețea, animație etc.
Diverse fir funcționează în paralel pe date statice comune, astfel efectuarea unor lucrări împreună. În acest caz, aceeași rutină pot fi apelate din fire diferite. Spre deosebire de variabilele statice, care sunt comune tuturor componentelor, o stivă separată pentru fiecare fir este alocat. Când utilizați firul este foarte important ca variabilele locale ale subrutina introduse pe stivă. În caz contrar, nu ar fi posibil, în paralel, pentru a determina aceeași rutină din fire diferite: apelul subrutinei repetate se execută deja într-un alt fir, ar distruge un set static de variabile locale ale subrutina. Iar atunci când se utilizează seturile de date stivă locale ale aceluiași subrutina numit din fire diferite, diferite deoarece acestea sunt aranjate în diferite stive. Astfel, un alt fir de lucru cu diferite seturi de variabile locale, fără a interfera unele cu altele.
Să ne gândim mai detaliat modul în care variabilele locale sunt plasate în stivă subrutina prin exemplul limbajului C. În rutine C numite funcții. Funcția poate avea argumente și variabile locale, de exemplu, variabile care există numai în timpul executării funcției. De exemplu, considerăm funcția f. în funcție de două argumente x intrare și tip întreg y care utilizează trei variabile locale o. b și c și tipul întreg. Funcția returnează o valoare întreagă.
Să presupunem că la un moment dat în program se numește cu argumentele funcției f x = 222, y = 333:
Apelantul elimină stiva valorile reale de argument x și y. plasat pe stivă înainte de a apela funcția f.