[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [PROGRAMMERING] [C++]heap allokering?



Bo Simonsen <sslug@sslug> writes:

> Ja korrekt, men hvad gør man i single process operativ systemer? Der må
> formentlig benyttes ovenstående princip.. Altså central registering af
> memory allokeringer.. men selvføglelig ikke i OS'et men i selve
> processen.

Aner det ikke, jeg har aldrig kodet til DOS. Mit gæt er noget ala:

Man slår virtuel hukommelse fra, indlæser programmet på adresse
0x400000 og giver programmet frit råderum derover. Så må programmøren
selv fedte med detaljerne.

>> Det kan nemlig være relativt dyrt at bede kernen om mere eller
>> mindre hukommelse, derfor forsøger man ikke at gøre det for tit.
>
> Det er vel kun hvis heap har behov for at vokse?

Jeg ved det faktisk ikke. Jeg kan godt forestille mig måder at styre
hukommelse på hvor det tager lige så meget bogholderi at frigive en
side hukommelse som at allokerer den.

Men hvis man frigiver hukommelse til kernen for tidligt, så kommer man
let ud for at ret hurtigt skulle bede om en ny blok. Derfor trimmer
man kun når man har et vist overskud i toppen af heapen.

> sbrk er også nævnt i ikke-ansi udgaven af K&R.

Tilgengæld er den bevidst udeladt af POSIX.1

> Men det kan da ikke være rigtigt at et hukommelseskrævet program bliver
> nødt til at stoppe under kørselen fordi der ikke er mere hukommelse pga.
> free's ikke bliver registeret. Eller misforstår jeg dig?

Hvis man programmerer embedded-ting uden MMU skal man ikke forvente at
kunne lave general-purpose programmering.

-- 
 Peter Makholm     |                                              What if:
 sslug@sslug |     IBM bought Xenix from Microsoft instead of buying
 http://hacking.dk |                                                  DOS?


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 22:44 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *