stiva de apel

Stiva de apel (din limba engleză stivă de apeluri ;. În ceea ce privește procesoarele - pur și simplu „stivă“) - în informatică, LIFO-stivă. stocarea de informații pentru a reveni controlul rutine (proceduri) în cadrul programului (sau subrutina cu apeluri imbricate sau recursive) și / sau pentru a reveni la programul de gestionare a întreruperilor (inclusiv la comutarea sarcinilor într-un mediu multitasking).

Stiva de apel este, de obicei, implementat de către una dintre aceste metode:

În absența stivei sau adâncimea sa limitat sau apeluri imbricate excluse numărul lor este limitat. Dacă este necesar, stiva de apel mai multe cuiburi sau extinderea acestuia pot fi puse în aplicare de software.

apel subrutina și să se întoarcă de la subrutine întrerupți stivuitoare. de obicei, efectuate de instrucțiuni procesor specializate. De asemenea, documentul apeluri și se întoarce, de multe ori procesoare au instrucțiuni pentru utilizarea stiva de apel și, de asemenea, pentru salvarea datelor - plasarea lor într-o stivă, retragerea din stivă, conținutul teanc de modificarea.

apel Manual, retur și de lucru cu stiva pot varia în funcție de dimensiunea datelor stocate (în acest caz, folosiți instrucțiunile corespunzătoare între ele sau echivalentele lor).

întoarce Uneori, dintr-o subrutină sau să întrerupă procedurile handler diferă unul de altul, și necesită de asemenea comenzi diferite (de exemplu, întoarcere de întrerupere este adesea necesară pentru a restabili steagurile registrului stivă și / sau să permită prelucrarea de întreruperi competitive, care poate fi interzisă în mod automat atunci când handler de apel).

În absența unor instrucțiuni specifice (procesor într-un set de instrucțiuni redus) recomandă, se întoarce și alte lucrări cu stiva de apel pus în aplicare prin operarea de memorie convențională instrucțiuni / registrele de control și de transmisie.

stiva de apel

Un caz tipic de utilizare a stivei într-un înalt nivel procedură limbaj apel Exemplu argumente «A, B, C» (acorduri numesc Pascal), comparativ cu limbajul de asamblare

Utilizarea stivei în sistemele multitasking

În sistemele multitasking, fiecare sarcină are de obicei propria stiva, iar la comutarea sarcinilor indicatorul procesorului stiva-l rearanjate.

utilizarea non-standard

Stiva poate fi utilizat in afara cutiei, de exemplu:

utilizarea alternativă

Într-o utilizare alternativă, indicatorul stivă este rearanjat pe zona de date, precum și instrucțiuni pentru lucrul cu stiva este folosită ca operațiunile șir de prelucrare a datelor seriale în memorie.

Într-o utilizare alternativă a prelucrării de întrerupere nu este posibilă, adică. K. a evita întreruperea de corupere a datelor ar trebui să fie interzisă.

  • Obligatorii limbaje de programare de nivel înalt, de regulă, nu au capacitatea de a opera o stivă de apel explicit, dar există și excepții. De exemplu, în Forth cu acces direct la stiva de apel de sistem (numit „întoarcere stivă“, spre deosebire de „stivă de date“ a limbii).