Купа (нерозділена пам'ять)

}

Купа (англ. heap) — в інформатиці та програмуванні область зарезервованого адресного простору, умовна назва структури даних, поверх якої реалізована динамічна пам'ять програми.

Купа використовує пам'ять, виділену статично або запитану динамічно у операційної системи. Ця пам'ять використовується для розміщення об'єктів, динамічно створених програмою.

У будь-який момент часу існування купи вся пам'ять, на якій працює купа, розділена на зайняту і вільну. Зайнята пам'ять використана під розміщення об'єктів, вже створених і ще не звільнених до цього моменту часу. З обсягу вільної пам'яті примітиви роботи з купою можуть виділяти пам'ять під нові об'єкти. Для зберігання даних про приналежність пам'яті до зайнятої або вільною зазвичай використовується додаткова область пам'яті.

Для розміщення і видалення динамічних об'єктів використовуються примітиви «створити об'єкт» (наприклад, malloc) і «видалити об'єкт» (наприклад, free). Крім того, перед початком роботи програми виконується ініціалізація купи, в ході якої вся спочатку виділена під купу пам'ять відзначається як вільна.

При розміщенні об'єкта реалізація примітиву «створити об'єкт» переглядає доступну купі вільну пам'ять у пошуках можливості розмістити в ній об'єкт необхідного розміру. Багато реалізації примітивів купи можуть у разі браку власної вільної пам'яті запитати додаткову пам'ять у операційної системи. У випадку, якщо з тих чи інших причин розмістити об'єкт неможливо, примітив «створити об'єкт» повідомляє про помилку (наприклад, malloc повертає 0). Обрана область пам'яті відзначається як зайнята. Примітив повертає адресу початку виділеної області. Під час видалення об'єкта реалізація примітиву «видалити об'єкт» зазначає, що область, раніше використана видаляється об'єктом, тепер вільна.

У проміжках між викликами примітивів «створити об'єкт» і «видалити об'єкт» виділена під об'єкт область пам'яті не може бути віддана ні під який інший об'єкт. Тому програма може вільно користуватися виділеної йому областю пам'яті. У той же час, після виклику примітиву «видалити об'єкт» звільнена область може бути використана повторно або віддана операційній системі, тому використання покажчика, отриманого раніше від примітиву «створити об'єкт» буде призводити до збоїв або непередбачуваною роботі програми.

Виклики функцій бібліотек зазвичай відбуваються швидше і вимагають менше ресурсів на виконання, ніж виклики операційних систем.

Купа є довгий відрізок адрес пам'яті, поділений на підряд йдуть блоки різних розмірів. Блоки бувають вільні і зайняті. Для можливості виділення пам'яті шляхом повторного використання вільного блоку (без дорогого збільшення купи в цілому — вимагає системного виклику) у тому чи іншому вигляді потрібен список вільних блоків.

Для скорочення списку вільних блоків з метою зменшення часу його обходу завжди має сенс зливати 2 або 3 поспіль вільних блоку в один. Якщо вільний наступний блок, то його легко знайти, відступивши вперед на розмір який вивільняється блоку. З попереднім блоком все складніше, і тому має сенс зберігати розмір попереднього блоку (для його пошуку) в заголовку будь-якого блоку.

Список вільних блоків може бути організований по-різному, і від його організації прямо залежить продуктивність купи. Справа в тому, що головний час у операції виділення витрачається саме на пошук в цьому списку.

Дуже гарною реалізацією є кілька списків, кожен для свого розміру. Це дозволяє швидко проігнорувати явно занадто маленькі вільні блоки цілими списками, без перевірки кожного персонально.

Посилання

Read other articles:

PausInosensius IVAwal masa kepausan25 Juni 1243Akhir masa kepausan7 Desember 1254PendahuluSelestinus IVPenerusAleksander IVInformasi pribadiNama lahirSinibaldo de FieschiLahirca. 1180/90Manarola, ItaliaWafat7 Desember 1254Naples, Italia Inosensius IV, nama lahir Sinibaldo de Fieschi (Manarola, Italia, ca. 1180/90 – Naples, Italia, 7 Desember 1254), adalah Paus Gereja Katolik Roma sejak 25 Juni 1243[1] sampai 7 Desember 1254. Referensi ^ Salinan arsip. Diarsipkan dari versi asli tang...

 

 

زين الدين زيدان Zinédine Zidane زيدان في عام 2017 معلومات شخصية الاسم الكامل زين الدين يزيد زيدان[1] الميلاد 23 يونيو 1972 (العمر 51 سنة)[2]مارسيليا، فرنسا الطول 1.85 م (6 قدم 1 بوصة)[3] مركز اللعب وسط مهاجم الإقامة مدريد، إسبانيا الجنسية فرنسي[أ] الديانة الإسلام[6]...

 

 

Administrative entry restrictions A Brazilian Passport A Brazilian Identity Card issued by Identification Institutes from Federative Units with less than ten years from date of issue and as long as it corresponds to the bearer's biometric status is considered valid as a travel document for almost all South American countries. Visa requirements for Brazilian citizens are administrative entry restrictions by the authorities of other states placed on citizens of Brazil. As of 2024, Brazilian cit...

Cet article est une ébauche concernant une commune de la Seine-Maritime. Vous pouvez partager vos connaissances en l’améliorant (comment ?). Le bandeau {{ébauche}} peut être enlevé et l’article évalué comme étant au stade « Bon début » quand il comporte assez de renseignements encyclopédiques concernant la commune. Si vous avez un doute, l’atelier de lecture du projet Communes de France est à votre disposition pour vous aider. Consultez également la page d�...

 

 

Европейская сардина Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеГруппа:Костные рыбыКласс:Лучепёрые рыбыПодкласс:Новопёры...

 

 

Kontes Lagu Eurovision 1972 adalah Kontes Lagu Eurovision tahunan ke-17. Acara tersebut diadakan di Edinburgh, Britania Raya. Meskipun Monako memenangkan kontes tahun sebelumnya dan memiliki hak untuk menjadi tuan rumah, kepangeranan tersebut tak dapat memenuhi tuntutan untuk menjadi tuan rumah dari acara tersebut. Referensi Pranala luar Wikimedia Commons memiliki media mengenai Eurovision Song Contest 1972. Situs web resmi lbsKontes Lagu Eurovision 1972NegaraFinal(menurut hasil akhir) Luksem...

Part of a series onAnthropology OutlineHistory Types Archaeological Biological Cultural Linguistic Social Archaeological Aerial Aviation Battlefield Biblical Bioarchaeological Environmental Ethnoarchaeological Experiential Feminist Forensic Maritime Paleoethnobotanical Zooarchaeological Biological Anthrozoological Biocultural Evolutionary Forensic Molecular Neurological Nutritional Paleoanthropological Primatological SocialCultural Applied Art Cognitive Cyborg Development Digital Ecological ...

 

 

Slush beverage Slush puppy redirects here. For the song, see Slush Puppy (song). Slush PuppieBranding for Slush Puppie productsCompany typeSubsidiaryIndustryFood and beverageFounded1970; 54 years ago (1970)FounderWill RadcliffOwnerJ&J Snack Foods Slush Puppie (stylized as SLUSH PUPPiE) is a slush beverage created in 1970, and marketed both directly by the Slush Puppie division of J&J Snack Foods, and through its Slush Puppie distributors in the United States. A Slush...

 

 

Questa voce sull'argomento calciatori macedoni è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Goran Maznov Nazionalità  Macedonia del Nord Altezza 185 cm Peso 75 kg Calcio Ruolo Attaccante Termine carriera 2016 CarrieraSquadre di club1 1999-2001 Sloga Jugomagnat21 (4)2001 Spartak Mosca0 (0)2002 Torpedo-ZIL5 (0)2003-2004 Baltika56 (11)2005 Rabotnički12 (7)2005-2006 ...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Bahrenfeld – news · newspapers · books · scholar · JSTOR (November 2011) (Learn how and when to remove this message) Quarter of Hamburg in GermanyBahrenfeld Quarter of Hamburg Street in Bahrenfeld(in background Hermes agency building, Ottensen)Location of Bahre...

 

 

 本表是動態列表,或許永遠不會完結。歡迎您參考可靠來源來查漏補缺。 潛伏於中華民國國軍中的中共間諜列表收錄根據公開資料來源,曾潛伏於中華民國國軍、被中國共產黨聲稱或承認,或者遭中華民國政府調查審判,為中華人民共和國和中國人民解放軍進行間諜行為的人物。以下列表以現今可查知時間為準,正確的間諜活動或洩漏機密時間可能早於或晚於以下所歸�...

 

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Oktober 2016. Ashtabula furcillata Klasifikasi ilmiah Kerajaan: Animalia Filum: Arthropoda Kelas: Arachnida Ordo: Araneae Famili: Salticidae Genus: Ashtabula Spesies: Ashtabula furcillata Nama binomial Ashtabula furcillataCrane, 1949 Ashtabula furcillata adalah spes...

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: Belizean society – news · newspapers · books · scholar · JSTOR (April 2023) Belize's social structure is marked by enduring differences in the distribution of wealth, power, and prestige. Because of the small size of Belize's population and the intima...

 

 

1966 studio album by Bobby TimmonsThe Soul Man!Studio album by Bobby TimmonsReleased1966RecordedJanuary 20, 1966StudioVan Gelder Studio, Englewood Cliffs, New JerseyGenreJazzLength40:32LabelPrestigeProducerCal LampleyBobby Timmons chronology Chicken & Dumplin's(1965) The Soul Man!(1966) Soul Food(1966) The Soul Man! is an album by American jazz pianist Bobby Timmons recorded in 1966 and released on the Prestige Records.[1] Reception The Allmusic review by Ron Wynn awarded ...

 

 

French singer-songwriter (born 1944) This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (November 2013) (Learn how and when to remove this message) Michel PolnareffPolnareff in 2007Background informationBirth nameMichel PolnareffAlso known asThe AdmiralBorn (1944-07-03) 3 July 1944 (age 79)OriginNérac (Lot-et-Garonne), FranceGenres Folk rock rock psychedeli...

Eparki Kothamangalamകോതമംഗലം രൂപതMar George AlencherryLokasiNegara IndiaProvinsi gerejawiErnakulam-AngamalyMetropolitErnakulam-AngamalyStatistikLuas4.840 km2 (1.870 sq mi)Populasi- Total- Katolik(per 2011)748.920219,800 (29.3%)Paroki116InformasiRitusRitus Siro-MalabarPendirian29 Juli 1956KatedralKatedral St. George, Kothamangalam, KeralaPelindungHati Kudus MariaKepemimpinan kiniPausFransiskusUskup agung mayorMar George Alencherry...

 

 

Lake in Surat, Gujarat, India Gopi TalavGopi talav in the eveningGopi TalavLocationSurat, IndiaCoordinates21°11′18.9″N 72°49′45.8″E / 21.188583°N 72.829389°E / 21.188583; 72.829389Typeartificial lakeEtymologyMalik GopiCatchment area35,300 m2 (0.0136 sq mi)Managing agencySurat Municipal CorporationBuilt1510Max. length212 metres (696 ft)Water volume120,000,000 L (26,000,000 imp gal; 32,000,000 US gal)SettlementsSur...

 

 

Синтезатор с аналоговым моделированием Access Virus Ti Polar Рабочая станция Alesis Fusion HD8 Исполнительский синтезатор Roland Juno D Интерактивный синтезатор Yamaha Tyros У этого термина существуют и другие значения, см. Синтезатор (значения). Запрос «Электронная клавиатура» перенаправляется �...

Precursors to Gnosticism   Part of a series onGnosticism Gnostic concepts Adam kasia Adam pagria Aeon Anima mundi Archon Barbelo Demiurge Five Seals Gnosis Kenoma Luminary Manda Monad Ogdoad Pleroma Sophia Uthra World of Light World of Darkness Yaldabaoth Gnostic sects and founders List of Gnostic sects Proto-Gnosticism Maghāriya Thomasines Judean / Israelite Adam Mandaeism Elksai Elkasaites Samaritan Baptist Dositheos Simon Magus (Simonians) Menander Quqites Christian Gnosticism Apelle...

 

 

American mathematician (1932–2014) For other people named Edward Nelson, see Edward Nelson (disambiguation). Edward NelsonEdward NelsonBorn(1932-05-04)May 4, 1932Decatur, GeorgiaDiedSeptember 10, 2014(2014-09-10) (aged 82)Princeton, New JerseyCitizenshipAmericanAlma mater University of Chicago (MS, 1953) University of Chicago (PhD, 1955) Known for Internal set theory Stochastic quantum mechanics Stochastic quantization Hadwiger–Nelson problem Nelson's axioms Spouses Nancy W...