Pino ja kasa ero

Kirjoittaja: Laura McKinney
Luomispäivä: 1 Huhtikuu 2021
Päivityspäivä: 13 Saattaa 2024
Anonim
Sa Re Ga Ma on Harmonium|Sargam on piano |सरगम कैसे बजाये पियानो पर
Video: Sa Re Ga Ma on Harmonium|Sargam on piano |सरगम कैसे बजाये पियानो पर

Sisältö


Pino ja Heap ovat muistisegmenttejä, joita käytetään muistin allokointitekniikoissa. Ensisijainen ero pinon ja kasan välillä on, että pinoon sisältyy staattisessa muistin allokoinnissa käytetyn muistin lineaarinen ja peräkkäinen allokointi, kun taas kasa toimii tallennusalueena, joka allokoi muistin satunnaisesti (dynaaminen muistin allokointi).

Nopeus on tärkein parametri, joka erottaa pinon ja kasan; pino on huomattavasti nopeampi kuin kasa.

  1. Vertailutaulukko
  2. Määritelmä
  3. Keskeiset erot
  4. johtopäätös

Vertailutaulukko

Vertailun perusteetPinoPino
perustiedotMuisti on varattu (LIFO) viimeiseksi ensimmäiseksi.Muisti allokoidaan satunnaisessa järjestyksessä.
Kohdentaminen ja jakoAutomaattinenmanuaalinen
KustannusVähemmänLisää
ToteutuskovaHelppo
käynnistyvääPÄÄLLÄ)O (1)
OngelmaMuistin puuteMuistin pirstoutuminen
ReferenssipaikkaErinomainenriittävä
JoustavuusKiinteä koko eikä ole joustavaKoon muuttaminen on mahdollista
Kirjautumisaikanopeampihitaampi


Määritelmä Pino

Pinojen allokointi noudattaa LIFO-strategiaa (viimeinen ensimmäisellä ulos) muistin osoittamiseksi prosesseille push and pop -toiminnon avulla. Jokainen muistin lohko on kiinteä kokoinen, jota ei voida laajentaa tai supistaa. Viimeinen merkintä pinossa on käytettävissä milloin tahansa. Pino käyttää vierekkäistä muistia, jossa pinon tukikohtaksi nimetty osoitin osoittaa pinon ensimmäiseen merkintään ja toinen pinon yläosaksi nimetty osoitin osoittaa pinon viimeiseen merkintään.

Pino tukee myös toimintopuheluita. Toimintopuhelu voi pitää pinomerkintöjen kokoelmaa, joka tunnetaan pinokehyksenä. Pinokehyksen toinen nimi on aktivointitietue kääntäjän kokoonpanossa, koska se tallentaa ohjelman kokoamishetkellä käytetyt tiedot. Aina kun toimintoa kutsutaan, pinokehys työnnetään pinoon.


Pinokehys koostuu joko osoitteista tai toiminnon parametrin arvoista ja palautusosoitteesta, joka tarkoittaa sitä, mihin ohjaus tulisi palauttaa toiminnon suorittamisen jälkeen.

Määritelmä Heap

Kasojen allokointi ei noudata mitään tarkkaa lähestymistapaa; pikemminkin se sallii muistin satunnaisen kohdistamisen ja purkamisen. Prosessin osoituspyyntö antaa osoittimen avulla takaisin varatulle muistialueelle kasassa, ja prosessi käyttää allokoitua muistialuetta osoittimen kautta.

Jakaminen tapahtuu kaupanvarauspyynnön kautta, joka eroaa pinosta, jossa muisti jaetaan automaattisesti. Kasa kehittää reikiä muistin allokoinnissa, kun tietorakenteita rakennetaan ja vapautetaan. Sitä käytetään suorituksen aikana.

  1. Pinossa allokoinnin ja jakamisen suorittaa CPU ja se on automaattinen, kun taas kasassa se on tehtävä ohjelmoijalle manuaalisesti.
  2. Kasaan rungon käsittely on kalliimpaa kuin pinon rungon käsittely.
  3. Pino on monimutkaista. Toisaalta kasan toteutus on yksinkertaista.
  4. Pinossa oleva toimintokutsu vie O (N) -aikaa. Sitä vastoin vie O (1) aikaa kasassa.
  5. Pinojen toteutus kärsii pääasiassa muistin puutteesta. Päinvastoin, kasan pääkysymys on pirstoutuminen.
  6. Pinokehykseen pääsy on helpompaa kuin kasa, koska pino on rajoitettu pienelle muistialueelle ja se osuu aina välimuistiin, mutta kasakehykset ovat hajallaan muistissa, joten muistin käyttö voi aiheuttaa enemmän välimuistin puutteita.
  7. Pino ei ole joustava, muistin kokoa ei voi muuttaa. Toisaalta kasa on joustava ja varattua muistia voidaan muuttaa.
  8. Kasa vie enemmän käyttöaikaa kuin pino.

johtopäätös

Pinojen jakaminen on nopeampaa, mutta monimutkaista. Toisaalta kasa on hitaampi, mutta sen toteutus on yksinkertaisempaa kuin pino. Kasa on tehokkaampi kuin pino.