Re: OS/2 i zarzadznie pamiecia

Autor: Grzegorz Szyszlo (znik_at_avalon.wbc.lublin.pl)
Data: Tue 04 Jul 2000 - 12:47:38 MET DST


Tomasz Szczesniak wrote:
>
> Hello All.
>
> Jak os/2 zarzadza przydzielaniem i zwalnianiem pamieci?
> Jak mam liste kilkudziesieciu tysiecy kilkunastobajtowych elementow i na kazdy
> rezerwuje pamiec odzielna funkcja malloc()

w rzeczywistosc, funkcje typu *alloc() jesli rezerwua duzy kawalek ramu,
pobieraja go bezposrednio od systemu. jesli zas kawalek ramu jest maly,
pobieraja wiecej (zadeklarowany obszar), i tna go sobie na malutkie
fragmenciki. od funkcji bibliotecznych zalezy w jaki sposob jest to
robione.
w kompilatorach GNU C, stosowane sa dodatkowe zmienne, ktore wplywaja
na sposob przydzialu pamieci. w ten sposob kernel systemu nie jest
zameczany tysiacami malych przydzialow ramu, gdyz z reguly jest to
operacja czasochlonna.

> to czy w rzeczywistosci struktury
> jadra zwiazane z istnieniem tylu fragmentow pamieci nie pozeraja jej drugie
> tyle?

jesli przydzielasz po 4ry bajty, to tak :)))

> Czy lepiej jest zarezerowac pewien ciagly obszar pamieci z gory i ew.
> kiedy stanie sie za maly zwiekszyc go realloc()?

To jest oplacalne ale tylko wtedy, kiedy rezerwujesz obszary dla
jednolitego
rodzaju danych o jednakowej wielkosci. inaczej koszty zwiazane z
algorytmem
zarzadzania moga przewyzszac te, ktore sa standardowo (z reguly)
wbudowane
w *alloc() .

>(lista ma zmienna dlugosc, moze
> miec 100 elementow, ale i 100 tysiecy)

to niewazne. wazne by elementy byly jednakowej wielkosci.

> I drugie pytanie: Czy jest mozliwosc trzymania jakiegos fragmentu pamieci (dane
> i kod) zawsze w pamiec fizycznej? (innymi slowy, zeby system go nigdy nie
> wyswapowal?)

jest taka mozliwosci, ale nie wiem na czym to polega.

-- 
 /===================================\    oOOo    (C) Publikacja tego
 | http://avalon.wbc.lublin.pl/~znik/ \===\__/==\ artykulu lub jego
 | Grzegorz Szyszlo   mailto:znik_at_wbc.lublin.pl | fragmentow w Gaz.Wyb.
 \==============================================/ surowo wzbroniona.


To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:28:02 MET DST