PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > comp.lang.c > Regarding brk and sbrk
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Regarding brk and sbrk

Réponse
 
LinkBack Outils de la discussion
Vieux 17/10/2007, 11h24   #1
venkat
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Regarding brk and sbrk

Hi folks,

Can some in understanding brk and sbrk. how does these are
implemeted(means how the memeory will be allocated). How malloc will
call these brk and sbrk. Please also give any example C program, where
brk and sbrk are used to allocate memory.

Appreciate your in this regard,


Thanks,
Vikas.

  Réponse avec citation
Vieux 17/10/2007, 11h34   #2
vipvipvipvip.ru@gmail.com
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

On Oct 17, 1:24 pm, venkat <venkatavi...@gmail.com> wrote:
> Can some in understanding brk and sbrk. how does these are
> implemeted(means how the memeory will be allocated). How malloc will
> call these brk and sbrk. Please also give any example C program, where
> brk and sbrk are used to allocate memory.


brk() and sbrk() are not defined in the C Standard and are
deliberately
excluded from the POSIX.1 standard (see paragraphs B.1.1.1.3 and B.
8.3.3).

  Réponse avec citation
Vieux 17/10/2007, 13h21   #3
cr88192
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk


"venkat" <venkatavikas@gmail.com> wrote in message
news:1192616693.746964.168270@v23g2000prn.googlegr oups.com...
> Hi folks,
>
> Can some in understanding brk and sbrk. how does these are
> implemeted(means how the memeory will be allocated). How malloc will
> call these brk and sbrk. Please also give any example C program, where
> brk and sbrk are used to allocate memory.
>


as noted, these are not standard.
following this, they are not even a good idea...

now, for general info:
malloc implementations tend to grab chunks of memory from the OS, and brk
and sbrk were one such method (they worked by sliding a pointer, and
generally mapping in pages as needed and so on).

another, generally better, method, is the use of mmap (on linux and
friends).

on windows, a general way to grab raw memory is through VirtualAlloc.

however, all this is a generally non-portable issue, and so, the exact
answers will depend highly on the target OS...

or such...


> Appreciate your in this regard,
>
>
> Thanks,
> Vikas.
>



  Réponse avec citation
Vieux 17/10/2007, 15h45   #4
CBFalconer
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

venkat wrote:
>
> Can some in understanding brk and sbrk. how does these are
> implemeted(means how the memeory will be allocated). How malloc
> will call these brk and sbrk. Please also give any example C
> program, where brk and sbrk are used to allocate memory.


This is off-topic. These calls normally appear in some Unix-like
OS, and are used to expand (or possibly contract) the memory
available to a process.

You can see one example in nmalloc, a malloc/free/realloc system
for DJGPP using sbrk, available at:

<http://cbfalconer.home.att.net/download/>

Since such calls are system dependent, try a news group that deals
with your system if more data is needed.

--
Chuck F (cbfalconer at maineline dot net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net>



--
Posted via a free Usenet account from http://www.teranews.com

  Réponse avec citation
Vieux 17/10/2007, 20h48   #5
user923005
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

On Oct 17, 3:24 am, venkat <venkatavi...@gmail.com> wrote:
> Hi folks,
>
> Can some in understanding brk and sbrk. how does these are
> implemeted(means how the memeory will be allocated). How malloc will
> call these brk and sbrk. Please also give any example C program, where
> brk and sbrk are used to allocate memory.


Try over on news:comp.unix.programmer, where they will promptly tell
you not to use those functions.

  Réponse avec citation
Vieux 18/10/2007, 01h10   #6
pete
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

venkat wrote:
>
> Hi folks,
>
> Can some in understanding brk and sbrk. how does these are
> implemeted(means how the memeory will be allocated). How malloc will
> call these brk and sbrk. Please also give any example C program, where
> brk and sbrk are used to allocate memory.


In chapter 8 of The C Programming Language, there is
an example of a general purpose storage allocator function.

The general purpose storage allocator function,
calls a function named morecore.

The definition of morecore, shows a call to sbrk.

--
pete
  Réponse avec citation
Vieux 19/10/2007, 10h21   #7
karthikbalaguru
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

On Oct 17, 3:24 pm, venkat <venkatavi...@gmail.com> wrote:
> Hi folks,
>
> Can some in understanding brk and sbrk. how does these are
> implemeted(means how the memeory will be allocated). How malloc will
> call these brk and sbrk. Please also give any example C program, where
> brk and sbrk are used to allocate memory.
>
> Appreciate your in this regard,
>
> Thanks,
> Vikas.



brk, sbrk - you need unistd.h
They change the amount of space allocated for the
calling process's data segment. They change data segment
size .

int brk(void *end_data_segment);
void *sbrk(ptrdiff_t increment);

brk sets the end of the data segment to the value specified by
end_data_segment, when that value is reasonable, the system does have
enough memory and the process does not exceed its max data size (see
setrlimit(2)).

sbrk increments the program's data space by increment bytes. sbrk
isn't a system call, it is just a C library wrapper. Calling sbrk with
an increment of 0 can be used to find the current location of the
program break.

On success, brk returns zero, and sbrk returns a pointer to the start
of the new area. On error, -1 is returned, and errno is set to
ENOMEM.

The amount of allocated space increases as the break value
increases. Newly allocated
space is set to zero. If, how-ever, the same memory space is
reallocated to the same pro-
cess its contents are undefined.

When a program begins execution using execve() the break is set at
the highest location
defined by the program and data storage areas.

getrlimit and setrlimit get and set resource limits respectively. Each
resource has an associated soft and hard limit, as defined by the
rlimit structure (the rlim argument to both getrlimit() and
setrlimit()):

struct rlimit {
rlim_t rlim_cur; /* Soft limit */
rlim_t rlim_max; /* Hard limit (ceiling
for rlim_cur) */
};


The soft limit is the value that the kernel enforces for the
corresponding resource. The hard limit acts as a ceiling for the soft
limit: an unprivileged process may only set its soft limit to a value
in the range from 0 up to the hard limit, and (irreversibly) lower its
hard limit. A privileged process may make arbitrary changes to either
limit value.

Have a look at these links ->
1) http://linux.about.com/library/cmd/blcmdl2_brk.htm
2) http://www.minix3.org/manpages/man2/brk.2.html

Karthik Balaguru

  Réponse avec citation
Vieux 19/10/2007, 10h33   #8
Keith Thompson
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

karthikbalaguru <karthikbalaguru79@gmail.com> writes:
> On Oct 17, 3:24 pm, venkat <venkatavi...@gmail.com> wrote:
>> Can some in understanding brk and sbrk. how does these are
>> implemeted(means how the memeory will be allocated). How malloc will
>> call these brk and sbrk. Please also give any example C program, where
>> brk and sbrk are used to allocate memory.

>
> brk, sbrk - you need unistd.h

[...]

And therefore topical in comp.unix.programmer, not here.

--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
  Réponse avec citation
Vieux 19/10/2007, 18h01   #9
Barry Schwarz
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

On Wed, 17 Oct 2007 10:24:53 -0000, venkat <venkatavikas@gmail.com>
wrote:

>Hi folks,
>
>Can some in understanding brk and sbrk. how does these are
>implemeted(means how the memeory will be allocated). How malloc will
>call these brk and sbrk. Please also give any example C program, where
>brk and sbrk are used to allocate memory.
>
>Appreciate your in this regard,


Since neither is a standard C function, you might have better luck
asking in a newsgroup related to whatever system they are defined on.


Remove del for email
  Réponse avec citation
Vieux 20/10/2007, 00h39   #10
Tor Rustad
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

venkat wrote:
> Hi folks,
>
> Can some in understanding brk and sbrk.


man man

> how does these are
> implemeted(means how the memeory will be allocated).


There are a number of open sources UNIX'es, why not take a look?

> How malloc will
> call these brk and sbrk. Please also give any example C program, where
> brk and sbrk are used to allocate memory.


GNU provide an open source C library, why not take a look?

http://g.oswego.edu/dl/html/malloc.html

--
Tor <torust [at] online [dot] no>

"I have stopped reading Stephen King novels. Now I just read C code instead"
  Réponse avec citation
Vieux 24/10/2007, 15h13   #11
karthikbalaguru
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

On Oct 17, 3:24 pm, venkat <venkatavi...@gmail.com> wrote:
> Hi folks,
>
> Can some in understanding brk and sbrk. how does these are
> implemeted(means how the memeory will be allocated). How malloc will
> call these brk and sbrk. Please also give any example C program, where
> brk and sbrk are used to allocate memory.
>
> Appreciate your in this regard,
>


The data region corresponds to the data-bss sections(initialized and
uninitialized data, Static
variables) of the executable file.

Its size can be changed with the brk(2) system call.

If the expansion of the bss data or the user stack exhausts available
memory,
the process is blocked and is rescheduled to run again with a larger
memory
space. New memory is added between the data and stack segments.

Karthik Balaguru

  Réponse avec citation
Vieux 24/10/2007, 16h48   #12
Walter Roberson
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

In article <1193235183.432476.97530@y27g2000pre.googlegroups. com>,
karthikbalaguru <karthikbalaguru79@gmail.com> wrote:
>The data region corresponds to the data-bss sections(initialized and
>uninitialized data, Static
>variables) of the executable file.


>Its size can be changed with the brk(2) system call.


>If the expansion of the bss data or the user stack exhausts available
>memory,
>the process is blocked and is rescheduled to run again with a larger
>memory
>space. New memory is added between the data and stack segments.


I don't know what system you are describing, but
A) It isn't defined by C; and
B) Matters are handled in *completely* different ways on some systems; and
C) The part about blocking isn't even the way things get handled
on the Unix systems I've used.
--
"Is there any thing whereof it may be said, See, this is new? It hath
been already of old time, which was before us." -- Ecclesiastes
  Réponse avec citation
Vieux 25/10/2007, 04h54   #13
CBFalconer
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Regarding brk and sbrk

karthikbalaguru wrote:
> venkat <venkatavi...@gmail.com> wrote:
>
>> Can some in understanding brk and sbrk. how does these are
>> implemeted (means how the memeory will be allocated). How malloc
>> will call these brk and sbrk. Please also give any example C
>> program, where brk and sbrk are used to allocate memory.

>
> The data region corresponds to the data-bss sections (initialized
> and uninitialized data, Static variables) of the executable file.
>
> Its size can be changed with the brk(2) system call.
>
> If the expansion of the bss data or the user stack exhausts
> available memory, the process is blocked and is rescheduled to
> run again with a larger memory space. New memory is added
> between the data and stack segments.


This only applies to some specific operating systems, and is
off-topic for c.l.c. Please don't give off-topic info here - it is
better to refer the asker to some other newsgroup where answers
will be properly vetted.

--
Chuck F (cbfalconer at maineline dot net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net>



--
Posted via a free Usenet account from http://www.teranews.com

  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 11h21.


Édité par : vBulletin® version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières ©2000-2008
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,25882 seconds with 21 queries