PDA

Prikaži potpunu verziju : Sta je stek ?


beliorao
30.6.2012, 17:39
Pozdrav svima...

Nedavno sam poceo da se interesujem za arhitekturu racunara pa resih da konsultujem i ovaj forum kako bi resio jednu nedoumicu,a to je sta je stek?
Ono sto znam je to da je stek prostor u koji racunar skladisti privremene podatke,a ono sto ne znam je to da li je stek poseban fizicki registar u mikroarhitekturi racunara ili je to prostor u RAM memoriji?

Sinisa Cubrilo
30.6.2012, 18:49
Stek- memorija ili magacinska memorija jeste bezadresna registarska memorija sa bezadresna registarska memorija sa sekvencijalnim pristupom. Kod ove memorije registri formiraju jednodimenzionalni niz u kome su susedni registri povezani kolima za paralelni
prenos prenos binarnih re binarnih reččii tako da se u njima tako da se u njima
upis i čitanje vrši po principu ‚‚poslednji upisan – prvi pročitan” (eng. LIFO – Last In – First Out).

dzangrizalo
30.6.2012, 18:58
Mislim da se "Stek"-ovi rasporedjuju u RAM. Evo ti sta sam uspeo da nadjem na wiki : "
There are many variations on the basic principle of stack operations. Every stack has a fixed location in memory at which it begins. As data items are added to the stack, the stack pointer is displaced to indicate the current extent of the stack, which expands away from the origin.
Stack pointers may point to the origin of a stack or to a limited range of addresses either above or below the origin (depending on the direction in which the stack grows); however, the stack pointer cannot cross the origin of the stack. In other words, if the origin of the stack is at address 1000 and the stack grows downwards (towards addresses 999, 998, and so on), the stack pointer must never be incremented beyond 1000 (to 1001, 1002, etc.). If a pop operation on the stack causes the stack pointer to move past the origin of the stack, a stack underflow occurs. If a push operation causes the stack pointer to increment or decrement beyond the maximum extent of the stack, a stack overflow occurs."
Evo ti i linka ka strani, pa imas tu bas detaljno ako te zanima.


http://en.wikipedia.org/wiki/Stack_%28abstract_data_type%29#Basic_architecture_ of_a_stack

orange47
30.6.2012, 20:07
kolko se secam, kod zx spectruma je stack u RAM memoriji. a jedan od registara je pokazivac na kraj (ili mozda pocetak) stack-a. isto je kod Amiga racunara, tamo mozes za svaki program(cic) u workbenchu da odredis velicinu stack-a, jer naravno nece raditi ako je premali (a opet treba stedeti memoriju za druge stvari).
mislim da se cesto koristi kod interrupt-a odnosno raznih subrutina, za cuvanje adrese sa koje se skace, da bi CPU znao gde da se vrati po zavrsetku potprograma.

Danilo023
30.6.2012, 23:35
koristi se svuda, npr. kod poziva potprograma, na steku se čuva povratna adresa, lokalne promenljive, sačuvani registri procesora, povratne vrednosti itd....
stek je jako širok pojam, ali onaj osnovni pojam se vezuje za RAM, tamo se prave stekovi za potprograme...inače stek je i kontejnerska klasa, koje je ustvari spregnuta lista, koja ima push i pop instrukcije, pokazivač steka je pokazivač na posledni element liste i tako....mnogo je stek odmakao od tog osnovnog pojma, i videćeš da se pominje i na višem nivou od arhitekture računara...

kontam da ovo sad ništa nije jasno, i da je nalupano....ali neka suština je, da stek ustvari nije neka posebna fizička komponenta, već jedan deo obične (ram) memorije, koji se koristi na specifičan način :)

beliorao
1.7.2012, 17:13
Hvala svima na brzom odgovoru,sad mi je jasnije, vidim da tu ima jos dosta da se uci ali za pocetak ovo je sasvim ok.

Inace mislim da bi trebalo u casopisu, a i na forumu dati malo vise prostora tome kako funkcionisu racunari da se govori bar o osnovnim konceptima.

voodoo_
1.7.2012, 18:21
To sve piše na vikipediji, tako da bi bilo traćenje prostora.

http://en.wikipedia.org/wiki/Stack_%28abstract_data_type%29

Takođe, ne može se tek tako iznebuha pisati o ovim stvarima bez ikakvog uvoda (jer otkud znaš na kom nivou je znanja neko ko će čitati taj tekst). Sa druge strane, kvalitetan uvod bi oduzeo previše prostora jer materijala fala bogu ima za nekoliko udžbenika.

http://rti.etf.bg.ac.rs/

beliorao
1.7.2012, 18:39
Nisam razmisljao o tome koliko je to siroka oblast za jedan casopis, generalno casopis je ok.

Neutrino
1.7.2012, 18:56
Nisam razmisljao o tome koliko je to siroka oblast za jedan casopis, generalno casopis je ok.

Na elektrotehnici i softveraškim smerovima stack je nešto što se provlači kroz priču od prvog trenutka kad se pomene pa sve do kraja školovanja. Zato ga nije moguće tek tako objasniti u nekoliko rečenica jer postoje čak i celi udžbenici koji se njime bave.

wladimir98se
1.7.2012, 22:04
Stek je stog (kao stog sena) :) Kao sto se na stog seno nabacuje pa se zatim skida po potrebi od vrha, tako isto i u steku po LIFO principu. last in first out

beliorao
2.7.2012, 22:55
da stvari su jasnije, shvatio sam sta me je zbunjivalo mislio sam da registri LV i SP cine stek, a u stvari to su samo pokazivaci steka (stek se nalazi u RAM-u) tj. LV i SP pokazuju okvir steka tj pocetnu i krajnju adresu promenjivih na steku.

Woof
4.7.2012, 21:56
Stek je stog (kao stog sena) :) Kao sto se na stog seno nabacuje pa se zatim skida po potrebi od vrha, tako isto i u steku po LIFO principu. last in first out


hahaha, ja kad sam ORT ucio zamisljao sam stek kao teglu u koju slazes razne stvari, pa posle vadis :)

Neutrino
4.7.2012, 22:16
hahaha, ja kad sam ORT ucio zamisljao sam stek kao teglu u koju slazes razne stvari, pa posle vadis :)
To je LIFO ("Last In First Out") stack a postoji i FIFO ("First In First Out") koji možeš da zamisliš kao teglu bez dna u kojoj prvi krastavčić koji ubaciš i izlazi prvi :)

Iris
5.7.2012, 10:35
Interesantno, čim je pomenuo stek, prva stvar na koju sam pomislila je:

http://www.kulturystyka.org.pl/fotki/stek-roberta-burneiki.jpg



Nisam znala da ima i drugo značenje :D

ZoNi
5.7.2012, 10:56
Interesantno, čim je pomenuo stek, prva stvar na koju sam pomislila je
Hehe, a ja sam pomislio da je neka priča o "šteku", samo sa ošišanom latinicom :)

Beagle
5.7.2012, 11:16
Nisam znala da ima i drugo značenje :D

Nije isti spell i izgovor. Steak [stejk] - snicla, odrezak. Stack [staek] - stek, stog, plast :).

@Zoni
Upravo tako je moja profesorka programiranja iz srednje opisala stek :D

ZoNi
5.7.2012, 11:22
materijala fala bogu ima za nekoliko udžbenika.

http://rti.etf.bg.ac.rs/

Nikad mi neće biti jasno kako IT firme i ostale institucije (kao npr. ETF) mogu da imaju stranu na Netu bez naslova? Zar je problem ubaciti to? :confused:

voodoo_
5.7.2012, 22:25
Nije, ali radi se o stranicama na koje se dolazi čisto namenski i samo da se pokupe konkretne informacije, tako da lickanje zarad privlačenja slučajnih prolaznika kako bi se ubrao poneki klik više i zaradilo na reklamama nije prioritet.

ZoNi
5.7.2012, 23:43
lickanje zarad privlačenja slučajnih prolaznika kako bi se ubrao poneki klik više i zaradilo na reklamama nije prioritet.
Lickanje? Klik, reklame? Ko je pričao o tome? Ne postoji razlog da strana nema naslov.

voodoo_
5.7.2012, 23:56
Hoću da kažem, ti si verovatno prvi koji je uopšte primetio da strana nema naslov, što govori i o svrsi strane i o tipu njenih posetioca.

Neutrino
6.7.2012, 0:05
Lickanje? Klik, reklame? Ko je pričao o tome? Ne postoji razlog da strana nema naslov.
Ko kaže da stranica nema naziv? :D Ima ga čak dva puta samo je nažalost prvi prazan a on se računa :D

<HTML>
<HEAD>
<meta name="GENERATOR" content="HTML Portable Editor">
<TITLE></TITLE>
<!--META HTTP-EQUIV="REFRESH" CONTENT="5"-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<TITLE>Katedra za Računarsku tehniku i informatiku</TITLE>
</HEAD>

ZoNi
6.7.2012, 10:32
Hehe, nisam gledao source, nego sam samo odmah primetio tu banalnu grešku, kojoj nema mesta na sajtu fakulteta kao što je ETF.

Beagle
6.7.2012, 12:51
Hehe, nisam gledao source, nego sam samo odmah primetio tu banalnu grešku, kojoj nema mesta na sajtu fakulteta kao što je ETF.

LOL... Vidi se da nisi bas zalazio po ETF-u :kreza:

ZoNi
6.7.2012, 13:53
Heh, iskreno - mislim da nikada nisam ulazio u ETF, ali sam hteo da kažem da je to nedopustivo za instituciju kakva bi trebalo da je ETF. Bolje? :)

Beagle
6.7.2012, 14:42
Veruj mi na rec, tamo se desavaju kojekakve gluposti koje bi bila sramota za takvu instituciju. Cinjenica je da se tamo uce neke stvari sa kojima se razvijaju vijuge i formira inzenjerski nacin razmisljanja, ali organizacija i IT podrska im je tuga... Barem iz nekog mog iskustva sa njima.

GrimReaper
14.7.2012, 14:07
To je LIFO ("Last In First Out") stack a postoji i FIFO ("First In First Out") koji možeš da zamisliš kao teglu bez dna u kojoj prvi krastavčić koji ubaciš i izlazi prvi :)

Ali ne postoji FIFO stek, ako je FIFO, onda je to red. :)

player1
14.7.2012, 17:52
Uopsteno, stack je memorijska struktura sa LIFO pristupom.

Ako na prazan stek uradis:
Push x
Push y
Push z

imaces u memoriji: x, y, z

Sad ako uradis:
Pop a
Pop b
Pop c

a ce dobiti vrednost z (tj. poslednje uneto na stek), b dobiti y, a c dobiti x, dok ce u memoriji stek sad opet biti prazan


P.S.
Push i pop su asemblerske komande za "stavi na stek", i "pokupi sa steka".

Neutrino
14.7.2012, 18:05
Ali ne postoji FIFO stek, ako je FIFO, onda je to red. :)

Postoji još kako. Element koji prvi uđe prvi će i da izađe na zahtev i to sve dok se ne popuni prostor rezervisan za stack. Negde se ovaj tip zove i queue ali se mnogo češće koristi termin "FIFO stack" ili samo FIFO.

player1
14.7.2012, 19:24
Mene su na faksu ucili da je to red. ;)

Neutrino
14.7.2012, 19:59
Mene su na faksu ucili da je to red. ;)

Možeš da ga zoveš kako god hoćeš dok se ponaša kao stack.

player1
14.7.2012, 20:02
Možeš da ga zoveš kako god hoćeš dok se ponaša kao stack.

Red se ponasa kao red, a stek kao stek karata. ;)
Poslednju koji stavis, prvu dizes.

Neutrino
14.7.2012, 20:11
Red se ponasa kao red, a stek kao stek karata. ;)
Poslednju koji stavis, prvu dizes.
Ma možeš koliko god hoćeš da rekapituliraš školsku literaturu kad sam ja do sada uradio bar tuce implementacija FIFO stack-ova. Nazovi ga red (queue) ili FIFO stack (stack sa zadrškom) to ti je isto. Poenta je da ne dođe do prepucavanja oko terminologije kad ti neko na projektu zada da implementiraš FIFO stack a ti počneš da se raspravljaš sa njim jer ste na fakultetu učili da FIFO stack ne postoji ;)

AleksandarCoder
3.8.2012, 19:53
Iako sam školu i fakultet završio odavno, jedno je sigurno, ono što se kod nas uči je mlaćenje prazne slame. Mnoge stvari su zastarele pa čak i pogrešne, ali šta ćeš kad su kod nas glupi profesori, koji su jedino u stanju da ponavljaju kao papagaji ono što su naučili odavno, a nešto novo nisu u stanju da nauče kako treba.

voodoo_
3.8.2012, 21:58
Po srednjim školama da, a po fakultetima ih i te kako ima koji znaju. To što su ludi, ne znači da su glupi :kreza:

sale94
3.8.2012, 23:42
Nemate vi svi pojma stek je :rofl::rofl::rofl::rofl::rofl::rofl::rofl: Google je uvek u pravu. http://www.dodaj.rs/f/40/SM/2ZtHF37C/stek-roberta-burneiki.jpg

Neutrino
3.8.2012, 23:45
Nemate vi pojma stek je :rofl::rofl::rofl::rofl::rofl::rofl::rofl: Google je uvek u pravu. http://www.dodaj.rs/f/40/SM/2ZtHF37C/stek-roberta-burneiki.jpg
Ajde što si lupio istu stvar kao neko u ovoj temi na prethodnoj stranici ali što si lupio i istu sliku? :icon_scra

sale94
4.8.2012, 9:59
Ajde što si lupio istu stvar kao neko u ovoj temi na prethodnoj stranici ali što si lupio i istu sliku? :icon_scra

Fail nisam primetio da je neko vec postavio tu sliku .:rofl::rofl::rofl::kreza: