Asignación de memoria

La asignación de memoria consiste en el proceso de asignar memoria para propósitos específicos, ya sea en tiempo de compilación o de ejecución. Si es en tiempo de compilación es estática, si es en tiempo de ejecución es dinámica y si son variables locales a un grupo de sentencias se denomina automática.[1]

Asignación estática de memoria

La asignación estática de memoria consiste en el proceso de asignar memoria en tiempo de compilación antes de que el programa asociado sea ejecutado, a diferencia de la asignación dinámica o la automática donde la memoria se asigna a medida que se necesita en tiempo de ejecución.[2]

Una aplicación de esta técnica conlleva que un módulo de programa (por ejemplo función o subrutina) declara datos estáticos de forma local, de forma que estos datos son inaccesibles desde otros módulos a menos que se les pasen referenciados como parámetros o que les sean devueltos por la función. Se mantiene una copia simple de los datos estáticos, accesible a través de llamadas a la función en la cual han sido declarados.

El uso de variables estáticas dentro de una clase en la programación orientada a objetos permite que una copia individual de tales datos se comparta entre todos los objetos de esa clase.

Las constantes conocidas en tiempo de compilación, como literales de tipo cadena, se asignan normalmente de forma estática. En programación orientada a objetos, el método usual para las tablas de clases también es la asignación estática de memoria.

Asignación automática de memoria

Las variables automáticas son variables locales a un bloque de sentencias (subrutina, función o procedimiento). Pueden ser asignadas automáticamente en la pila de datos cuando se entra en el bloque de código. Cuando se sale del bloque, las variables son automáticamente desasignadas.[3]​ Las variables automáticas tendrán un valor sin definir cuando son declaradas, por tanto es buena práctica de programación inicializarlas con un valor válido antes de usarlas.

Asignación dinámica de memoria

En ciencia de la computación, asignación dinámica de la memoria es la asignación de almacenamiento de memoria para utilización por parte de un programa de computador durante el tiempo de ejecución de ese programa. Es una manera de distribuir la propiedad de recursos de memoria limitada entre muchas piezas de código y datos. Un objeto asignado dinámicamente permanece asignado hasta que es desasignado explícitamente, o por el programador o por un recolector de basura; esto es notablemente diferente de la asignación automática de memoria y de la asignación estática de memoria (la de las variables estáticas). Se dice que tal objeto tiene tiempo de vida dinámico.[4]

Soluciones para los problemas de asignación

La tarea de satisfacer una petición de asignación, la cual conlleva encontrar un bloque de memoria sin usar de cierto tamaño en el heap, es un problema complicado. Se han propuesto una amplia variedad de soluciones, incluyendo listas de bloques libres, Paginación, y Asignación buddy de memoria.

El problema principal para la mayoría de algoritmos de asignación de memoria dinámica es evitar la fragmentación interna y externa mientras se mantiene la eficiencia del algoritmo. También, la mayoría de algoritmos en uso tienen el problema de que un número grande de pequeñas asignaciones pueden causar el desaprovechamiento del espacio debido a la recolección de metadatos; así la mayoría de los programadores intentan evitar esto, a veces usando una estrategia llamada chunking.

Asignación de bloques de tamaño fijo

Una solución es tener una lista enlazada LIFO de bloques de memoria de tamaño fijo. Esto funciona bien para sistemas empotrados simples.

Algoritmo Buddy

Otra solución es tener un asignador buddy de bloques binarios. En este sistema, la memoria se asigna desde un gran bloque de memoria que es tamaño potencia de dos. Si el bloque es más del doble de grande de lo necesario, se parte en dos. Se selecciona una de las dos mitades, y el proceso se repite (comprobando el tamaño otra vez y partiendo si se necesita) hasta que el bloque sea justamente el necesitado.

Todos los segmentos de memoria de un tamaño particular son guardados en una lista enlazada ordenada o una estructura de datos en árbol. Cuando se libera un bloque, se compara con su buddy(vecino). Si los dos están libres, son combinados y colocados en la lista de bloques buddy de siguiente mayor tamaño. (Cuando un bloque es asignado, el asignador empezará con el bloque grande suficientemente pequeño para evitar romper bloques innecesariamente).

Nótese que los asignadores buddy de bloques no son únicamente para los Sistemas Operativos de Tiempo-Real (RTOS); ellos también son usados en sistemas operativos de propósito general (tales como Microsoft Windows y Linux).

Asignación de memoria basada en Heap

En la asignación de memoria basada en heap, la memoria es asignada desde un gran área común de memoria libre (sin usar) llamada heap (también llamada almacén de libres o 'memoria del montón'). "El heap" no tiene nada que ver con la estructura de datos Heap (o Montículo). El tamaño de la asignación de memoria puede ser determinado en tiempo de ejecución, y el tiempo de vida de la asignación no es dependiente del procedimiento actual o del marco de pila. La región de memoria asignada es accedida indirectamente, normalmente por medio de una referencia. El algoritmo preciso usado para organizar el área de memoria y asignar y desasignar los trozos está oculto detrás de una interfaz abstracta y puede usar cualquiera de los métodos descritos antes.

En contraste, la memoria de la pila de llamadas es normalmente de tamaño limitado y el tiempo de vida de la asignación depende de la duración de las funciones correspondientes.

Véase también

Referencias

  1. Definición de Asignación de memoria Archivado el 21 de agosto de 2008 en Wayback Machine.
  2. Alfred V. Aho,, Alfred V.; Ravi Sethi, Jeffrey D Ullman, Pedro Flores Suárez, Pere Botella i López (1998). Compiladores. ISBN 9684443331. pag. 413. 
  3. Louden, Kenneth C. Construcción de compiladores. ISBN 9706862994. pag.301. 
  4. Tanenbaum, Andrew S.; Roberto Escalona García (2004). Sistemas operativos modernos. ISBN 9702603153. pag. 198. 

Read other articles:

Protests against family separation policyPart of protests against Donald TrumpDateJune 30, 2018 (2018-06-30) (key rally) and other datesLocationWashington, D.C., and over 700 other U.S. cities, and others worldwide[1][2]TypeDemonstration (protest)ThemeOpposition to family separationCauseTrump administration family separation policyOrganized bygrassroots support, Families Belong Together, and other organizationsParticipantsprotestors across the United States and...

 

 

Wilayah Samudra Hindia Britania British Indian Ocean Territory Bendera Lambang Semboyan: In tutela nostra Limuria (Latin)Limuria dalam tanggung jawab kamiLagu kebangsaan: God Save the KingIbu kota(dan kota terbesar)Diego GarciaBahasa resmiBahasa InggrisKelompok etnik (2001[1])95.88% Orang Britania / Amerika4.12% lainnyaPemerintahanWilayah Seberang Laut Britania• Monarki Charles III• Komisaris Ben Merrick• Pengelola Linsey Billing[2]•&...

 

 

Chemical compound ButaclamolClinical dataATC codenoneIdentifiers IUPAC name (3S,4aS,13bS)-3-(2-Methyl-2-propanyl)-2,3,4,4a,8,9,13b,14-octahydro-1H-benzo[6,7]cyclohepta[1,2,3-de]pyrido[2,1-a]isoquinolin-3-ol CAS Number36504-93-5PubChem CID37459IUPHAR/BPS62ChemSpider34364UNIIA7A2802VNLChEBICHEBI:73298 YChEMBLChEMBL479587 YCompTox Dashboard (EPA)DTXSID5048429 Chemical and physical dataFormulaC25H31NOMolar mass361.529 g·mol−13D model (JSmol)Interactive image SMILES CC(C)(C)C1(CC...

2003 novel by Sarah Dunant This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: The Birth of Venus novel – news · newspapers · books · scholar · JSTOR (March 2019) The Birth of Venus: A Novel First edition book cover, Random HouseAuthorSarah DunantCountryUnited StatesLanguageEnglishPublisherRandom ...

 

 

Campeonato Brasileiro Série C 1997 Competizione Campeonato Brasileiro Série C Sport Calcio Edizione 8ª Organizzatore CBF Date dal 30 agosto 1997al 30 novembre 1997 Luogo  Brasile Partecipanti 64 Risultati Vincitore  Sampaio Corrêa(1º titolo) Promozioni  Sampaio Corrêa Juventus-SP Statistiche Incontri disputati 260 Gol segnati 632 (2,43 per incontro) Cronologia della competizione 1996 1998 Manuale Il Campeonato Brasileiro Série C 1997 è stata l'ottava ...

 

 

Disambiguazione – Se stai cercando il figlio, vedi Wes Unseld (1975). Questa voce sugli argomenti allenatori di pallacanestro statunitensi e cestisti statunitensi è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti dei progetti di riferimento 1, 2. Wes Unseld Wes Unseld con la maglia dei Washington Bullets Nazionalità  Stati Uniti Altezza 201 cm Peso 111 kg Pallacanestro Ruolo CentroAllenatoreGeneral manager Termine carriera 1...

School district in North Carolina, United States CCMMS redirects here. For the museum with the abbreviation CCMMS, see Chinese Canadian Military Museum Society. Wake County Public School SystemThe main office of Wake County Public School SystemAddress5625 Dillard Drive Cary, North Carolina, 27518United StatesCoordinates35°45′14.51″N 78°44′13.67″W / 35.7540306°N 78.7371306°W / 35.7540306; -78.7371306District informationEstablished1976; 48 years...

 

 

Military ship Destroyer José Luis Diez History Spain NameJosé Luis Díez NamesakeJosé Luis Díez y Pérez Muñoz BuilderSECN, Naval Dockyard, Cartagena, Spain Launched25 August 1928 Completed1929 Commissioned1929 Decommissioned1965 IdentificationJD Nickname(s)Pepe el del puerto FateScrapped in 1965 General characteristics Class and typeChurruca-class destroyer Displacement1,650 tons (normal); 2,067 tons (maximum) Length101 m (331 ft 4 in) Beam9.6 m (31 ft 6...

 

 

Labial glandsThe labial coronary arteries, the glands of the lips, and the nerves of the right side seen from the posterior surface after removalDetailsArteryInferior labialIdentifiersLatinglandulae labiales orisTA98A05.1.02.014TA22813FMA71613Anatomical terminology[edit on Wikidata] The labial glands are minor salivary glands situated between the mucous membrane and the orbicularis oris around the orifice of the mouth. They are circular in form, and about the size of small peas; their duc...

Type of rigging of Indonesian sailing vessels Pinisi, art of boatbuilding in South SulawesiUNESCO Intangible Cultural HeritagePinisi boats at the port of Paotere in Makassar, 1994CountryIndonesiaCriteriaOral traditions and expressions, Social practices, rituals and festive events, and Traditional craftsmanshipReference1197RegionAsia and the PacificInscription historyInscription2017 (12th session)ListRepresentative Pinisi, or the Art of Boatbuilding in South Sulawesi, refers to the rig and sai...

 

 

Constituency of the National Assembly of France Ain's 3rd constituencyConstituencyfor the National AssemblyBoundary of Ain's 3rd constituency in AinLocation of Ain within FranceDepartmentAinRegionAuvergne-Rhône-AlpesElectorate148,574 (2017)[1]Current constituencyDeputyOlga GivernetPolitical party  REParliamentary group  RE The 3rd constituency of the Ain is a French legislative constituency in the Ain département. Members elected Election Member Party 1958 Émile Dubuis Po...

 

 

Sajji (bahasa Baluchi: سجی) adalah hidangan yang berasal dari provinsi Balochistan, Pakistan.[1] Hidangan ini terdiri dari daging kambing utuh, domba atau ayam, ditusuk sate (lemak dan daging utuh), dibumbui hanya dengan garam, kadang ditutup dengan pasta pepaya hijau, diisi nasi, lalu dipanggang di atas bara api. Disajikan dengan roti spesial Kaak, roti atau naan, yang dipanggang dalam oven, dililitkan dengan batu tandoor. Sajji adalah makanan favorit orang Baloch dan tersedia...

Klas Pontus ArnoldsonThông tin chungSinh(1844-10-27)27 tháng 10 năm 1844Gothenburg, Thụy ĐiểnMất20 tháng 2 năm 1916(1916-02-20) (71 tuổi)Stockholm, Thụy Điển Mộ K.P. Arnoldson ở nghĩa trang Norra, Solna. Klas Pontus Arnoldson (27 tháng 10 năm 1844 – 20 tháng 2 năm 1916), là một ký giả, chính trị gia, nghị sĩ quốc hội, tác giả người Thụy Điển và là người theo chủ nghĩa hòa bình. Arnoldson là con của Olof A...

 

 

Hindu temple in Kerala, India Sri Thrikkuratty Mahadevan | Sheeveli Thidambu | Mannar Thrikkuratty Mahadeva Temple. Mannar Thrikkuratti Mahadeva TempleMain Temple StructureReligionAffiliationHinduismDistrictAlappuzhaDeityShiva, KrishnaFestivalsMaha ShivaratriLocationLocationMannar, ParumalaStateKeralaCountry IndiaThrikkuratti Mahadeva Temple, Mannar, Alappuzha, KeralaGeographic coordinates9°19′11″N 76°32′01″E / 9.3195895°N 76.5337397°E / 9.3195895; 76....

 

 

Jérôme Boateng Boateng bersama Bayern pada tahun 2019Informasi pribadiNama lengkap Jérôme Agyenim Boateng[1]Tanggal lahir 3 September 1988 (umur 35)[2]Tempat lahir Berlin, Jerman BaratTinggi 1,90 m (6 ft 3 in)[3]Posisi bermain Bek[4]Informasi klubKlub saat ini SalernitanaNomor 5Karier junior1994–2002 Tennis Borussia Berlin2002–2006 Hertha BSCKarier senior*Tahun Tim Tampil (Gol)2006–2007 Hertha BSC II 24 (1)2007 Hertha BSC 10 (0)20...

Serie B 2022-2023Dettagli della competizioneSport Pallacanestro OrganizzatoreLNP Federazione FIP Periodoottobre 2022 —giugno 2023 VerdettiPromozioni Pall. Vigevano  LUISS Roma Retrocessioni Langhe Roero  Green B. Palermo  Virtus Pozzuoli  Campus Varese  Pescara Basket  Viola R. Calabria  Tigers Romagna  Junior Casale  Bergamo B. 2014  Virtus Ragusa  USE Empoli  Etrusca S. Miniato  Basket Corato  ANB Monopoli ...

 

 

vteArmy units and organizationSubordinatedelement Fireteam / Crew  Ø  Squad  ●  Section / Patrol  ●● Platoon / Troop / Flight ●●●  Staffel / Echelon  ●●●●  Unit Company / Battery / Squadron ❘  Battalion / Squadron / Cohort ❘ ❘  Regiment / Group  ❘ ❘ ❘   Formation Brigade / Group / Wing ☓  Division / Legion ☓☓  Corps ☓☓☓  Command Field army...

 

 

American singer/songwriter (born 1995) Not to be confused with Felly Kilingi. FellyBackground informationBirth nameChristian Robert Felner[1]Born (1995-09-02) September 2, 1995 (age 29)Trumbull, Connecticut, U.S.Genres Hip hop rap jazz rap Occupations Rapper singer Instruments Vocals piano guitar Years active2013–presentLabels Same Plate Entertainment Sony Websitewww.fellymusic.comMusical artist Christian Robert Felner (known professionally as Felly) is an American rapper, sing...

Cet article est une ébauche concernant un lac, la montagne et le volcanisme. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article ne cite pas suffisamment ses sources (mai 2014). Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de c...

 

 

Russian volleyball player Iuliia MorozovaPersonal informationNationality RussiaBorn (1985-01-08) January 8, 1985 (age 39)Chelyabinsk, Soviet UnionHeight1.92 m (6 ft 3+1⁄2 in)Weight79 kg (174 lb)Volleyball informationCurrent clubDynamo MoscowCareer YearsTeams 2000–11 2011–Avtodor-Metar Dynamo MoscowNational team 2007–2013Russia Honours European Championship 2013 Germany Team 2007 Charleroi-Luxembourg Team World Grand Prix 2009 Japan Team Iuliia Mo...