03-25-2014
How does the Operating System handle memory?
Hey everyone. Ok, so I know that from inside of any particular program, it see's through virtualized memory, a full range of available memory. It is given the ability then to place variables, data, user input etc, on the Stack, Heap, BSS, or Code segment of it's range. My question is what does the OS then do with this clump of requested memory? Does the OS itself have it's own form of data segementation like the stack and heap? What if the OS wants to run a service or something, where does it store it's variables, and user input?
9 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I need the Unix operating system on disc as im new to unix. Im studying unix and x windows next year at Sheffield University and would like to get a head start.
Any suggestions would be appreciated (2 Replies)
Discussion started by: jeffersno1
2 Replies
2. Programming
Hi,
I need to know what is the right way of handling out of memory conditions. If a program is not able to dynamically allocate memory (new fails), is it right to wait for some amount of time (say 5 sec) and then try again to allocate memory? Or should we kill the process and again restart it?... (1 Reply)
Discussion started by: diganta
1 Replies
3. UNIX for Dummies Questions & Answers
Which is much more powerful as an operating system:
1. Windows 2000
2. Windows 98
3. Windows XP
4. Windows ME
5. Unix
6. Linux
and why is it much more powerful than the other operating systems that i have mentioned.
thanks for your info... (1 Reply)
Discussion started by: alecks1975
1 Replies
4. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
Write a C program that accepts 3 parameters. Each parameter indicates the quantity of product to be
produced.... (1 Reply)
Discussion started by: paradise
1 Replies
5. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
Write a C program that accepts 3 parameters. Each parameter indicates the quantity of product to be
produced.... (0 Replies)
Discussion started by: paradise
0 Replies
6. UNIX for Advanced & Expert Users
Hello All,
I want to install Linux on my machine, so please tell me one thing which is the best to install-
1.)Red Hat
2.)Cent OS
3.)Red Hat
4.)Ubuntu
5.)Fedora
except that if there is any please tell me. (1 Reply)
Discussion started by: parthmittal2007
1 Replies
7. UNIX for Advanced & Expert Users
Can we know the operating given the IP address or DNS of the host.
All I have is
file://myserver/myapp (4 Replies)
Discussion started by: mohtashims
4 Replies
8. Android
From Wikipedia (FYI): (0 Replies)
Discussion started by: Neo
0 Replies
9. UNIX and Linux Applications
Anyone know anything about "Advanced Plus Operating Environment".
Preferably release 10 Revision 522Gcd probably dated 2003. (4 Replies)
Discussion started by: jgt
4 Replies
CHMEM(1) General Commands Manual CHMEM(1)
NAME
chmem - change memory allocation
SYNOPSIS
chmem [+] [-] [=] amount file
EXAMPLES
chmem =50000 a.out # Give a.out 50K of stack space
chmem -4000 a.out # Reduce the stack space by 4000 bytes
chmem +1000 file1 # Increase each stack by 1000 bytes
DESCRIPTION
When a program is loaded into memory, it is allocated enough memory for the text and data+bss segments, plus an area for the stack. Data
segment growth using malloc , brk , or sbrk eats up stack space from the low end. The amount of stack space to allocate is derived from a
field in the executable program's file header. If the combined stack and data segment growth exceeds the stack space allocated, the pro-
gram will be terminated.
It is therefore important to set the amount of stack space carefully. If too little is provided, the program may crash. If too much is
provided, memory will be wasted, and fewer programs will be able to fit in memory and run simultaneously. MINIX does not swap, so that
when memory is full, subsequent attempts to fork will fail. The compiler sets the stack space to the largest possible value (for the Intel
CPUs, 64K - text - data). For many programs, this value is far too large. Nonrecursive programs that do not call brk , sbrk , or malloc ,
and do not have any local arrays usually do not need more than 8K of stack space.
The chmem command changes the value of the header field that determines the stack allocation, and thus indirectly the total memory required
to run the program. The = option sets the stack size to a specific value; the + and - options increment and decrement the current value by
the indicated amount. The old and new stack sizes are printed.
SEE ALSO
install(1), brk(2).
CHMEM(1)