|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
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. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
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). |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
"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. > |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
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. |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
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" |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
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" |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
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 |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
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 |
|
![]() |
| Outils de la discussion | |
|
|