Re: OS/2 i zarzadznie pamiecia

Autor: Przemyslaw Dobrowolski (dobrawka_at_asua.org.pl)
Data: Mon 03 Jul 2000 - 23:23:35 MET DST


On Mon, 3 Jul 2000 18:11:09 +0200 (MET DST), Tomasz Szczesniak wrote:

>Jak os/2 zarzadza przydzielaniem i zwalnianiem pamieci?
>Jak mam liste kilkudziesieciu tysiecy kilkunastobajtowych elementow i na kazdy
>rezerwuje pamiec odzielna funkcja malloc() to czy w rzeczywistosci struktury
>jadra zwiazane z istnieniem tylu fragmentow pamieci nie pozeraja jej drugie
>tyle? Czy lepiej jest zarezerowac pewien ciagly obszar pamieci z gory i ew.
>kiedy stanie sie za maly zwiekszyc go realloc()? (lista ma zmienna dlugosc, moze
>miec 100 elementow, ale i 100 tysiecy)

Odpowiem w bardzo dużym skrócie/uogólnieniu:
Nie używasz API OS/2 - DosAlloc(Shared)Mem, DosSetMem itd. Gdybyś używał w/w
funkcje to mogłoby się zdażyć że zabraknie Ci pamięci - DosAllocMem alokuje
_conajmniej_ 64kB pamięci. Lecz funkcją DosSetMem możesz sobie ją podzielić na
kawałki.
Większość (wszystkie ;-) OeSowych kompilatorów (bibliotek runtime) funkcje malloc
tworzy z DosAllocMem i DosSetMem, więc nie musisz martwić się o obszary pamięci
ponieważ pomyśleli o tym wszystkim twórcy OS/2 i kompilatora (ów);-)

A jeżeli masz dużo czasu to możesz sam napisać funkcje alokacji pamięci ale i tak wg
Twojego myślenia zrobisz identycznie jak Twoi poprzdnicy ;-)

>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 możliwość lecz tylko z poziomu sterownika.
Z drugiej strony bardzo dobrze, że tak nie ma tak jak chciałbyś zrobić, bo na przykład
jeśli każdy z programistów pomyśli że program będzie chodził szybciej jak będzie coś
przetrzymywane w pamięci fizycznej to bardzo szybko pamięci fizycznej by zabrakło, a
z drugiej strony to w jaki sposób wyobrażałbyś sobie obsługę pamięci przez jądro
(stabliność), jeśli programy z ringu3 będą sobie korzystały bez żadnych ograniczeń z
ringu0?

---
*Przemek/2* - dobrawka_at_asua.org.pl - ICQ: 18642806
Asua Programmers http://www.asua.org.pl
TeamOS/2pl http://www.teamos2.org.pl
This OS/2 system uptime is 0d 0h 28m 48s 710ms (en).


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