05-05-2010
Quote:
Originally Posted by
Sendil Kumar
Hi All,
From C++, I just want to find the address space size that a process is allowed to use. For ex, in 32 bit OS the allowed address space is 4GB and in 64 bit OS I guess this is 16GB or more.
To expand on achenle's suggestion, 4GB in a 32-bit system is the physical limit. There are 4GB
possible different addresses a process can possibly have in its' address space in a 32-bit address space. Doesn't mean the OS will actually let it have that much.
9 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hello,
Please help me to know, How to find out the how much amount of process addres space is required/is used for/by a process.
Tnx & Regards
Vishwa. (1 Reply)
Discussion started by: S.Vishwanath
1 Replies
2. AIX
Hi,
I have migrated some processing from true64 --> AIX 5.3. my problem is to process large files in memory by diff or awk program. I need to load app. 1.3 GB of data into memory but it fails that there is not enough memory.
I need following:
diff file1 file2
orig. aix diff err... (2 Replies)
Discussion started by: Petr
2 Replies
3. Programming
Hi,
I am looking to work on unix systems which include (hp-ux, ibm aix, solaris and linux). I want to get the total virtual address space of a process, the used virtual memory i am able to get without any problem. I have tried using getrlimit and getrlimit64, but that gives only ... (4 Replies)
Discussion started by: uiqbal
4 Replies
4. UNIX for Advanced & Expert Users
Can kernel process access user address space ? (2 Replies)
Discussion started by: subhotech
2 Replies
5. Web Development
Any clues on how to get rid of this PHP error?
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71 bytes) in /website/www/includes/functions_manpages.php on line 58
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 71... (4 Replies)
Discussion started by: Neo
4 Replies
6. Shell Programming and Scripting
While running script I am getting an error like
Few lines in data are not being processed.
After googling it I came to know that adding such line would give some memory to it
ini_set("memory_limit","64M");
my input file size is 1 GB.
Is that memory limit is based on RAM we have on... (1 Reply)
Discussion started by: elamurugu
1 Replies
7. Shell Programming and Scripting
I have this script. (options is an array) It works fine. It responds fine to all items that are stored in the array. But when I press spacebar when I am asked for input. It will not give an error only run the function again. While I put : || ] in the script to capture the space. What am I missing... (6 Replies)
Discussion started by: Alex400
6 Replies
8. Programming
Suppose I have 3 gb of ram and 250 gb hard disk in my pc.
Now I wrote a simple C program having only one statement malloc() to allocate 4 gb of memory as 32 bit os can address 4gb address space then will the malloc succeed?
If yes then how it will get extra 1 gb of memory?
Does the process gets... (3 Replies)
Discussion started by: rupeshkp728
3 Replies
9. Solaris
Hi ,
In a server /tmp has almost reached 75% and i can see the File system utilization is 48Mb only , so i believe some process is using the /tmp space. I would like to know which process is using /tmp space.
# df -h /tmp
Filesystem size used avail capacity Mounted on
swap ... (9 Replies)
Discussion started by: chidori
9 Replies
LEARN ABOUT SUSE
arch_prctl
ARCH_PRCTL(2) Linux Programmer's Manual ARCH_PRCTL(2)
NAME
arch_prctl - set architecture-specific thread state
SYNOPSIS
#include <asm/prctl.h>
#include <sys/prctl.h>
int arch_prctl(int code, unsigned long addr);
int arch_prctl(int code, unsigned long *addr);
DESCRIPTION
The arch_prctl() function sets architecture-specific process or thread state. code selects a subfunction and passes argument addr to it;
addr is interpreted as either an unsigned long for the "set" operations, or as an unsigned long *, for the "get" operations.
Sub functions for x86-64 are:
ARCH_SET_FS
Set the 64-bit base for the FS register to addr.
ARCH_GET_FS
Return the 64-bit base value for the FS register of the current thread in the unsigned long pointed to by addr.
ARCH_SET_GS
Set the 64-bit base for the GS register to addr.
ARCH_GET_GS
Return the 64-bit base value for the GS register of the current thread in the unsigned long pointed to by addr.
RETURN VALUE
On success, arch_prctl() returns 0; on error, -1 is returned, and errno is set to indicate the error.
ERRORS
EFAULT addr points to an unmapped address or is outside the process address space.
EINVAL code is not a valid subcommand.
EPERM addr is outside the process address space.
CONFORMING TO
arch_prctl() is a Linux/x86-64 extension and should not be used in programs intended to be portable.
NOTES
arch_prctl() is only supported on Linux/x86-64 for 64-bit programs currently.
The 64-bit base changes when a new 32-bit segment selector is loaded.
ARCH_SET_GS is disabled in some kernels.
Context switches for 64-bit segment bases are rather expensive. It may be a faster alternative to set a 32-bit base using a segment selec-
tor by setting up an LDT with modify_ldt(2) or using the set_thread_area(2) system call in kernel 2.5 or later. arch_prctl() is only
needed when you want to set bases that are larger than 4GB. Memory in the first 2GB of address space can be allocated by using mmap(2)
with the MAP_32BIT flag.
As of version 2.7, glibc provides no prototype for arch_prctl(). You have to declare it yourself for now. This may be fixed in future
glibc versions.
FS may be already used by the threading library.
SEE ALSO
mmap(2), modify_ldt(2), prctl(2), set_thread_area(2)
AMD X86-64 Programmer's manual
COLOPHON
This page is part of release 3.25 of the Linux man-pages project. A description of the project, and information about reporting bugs, can
be found at http://www.kernel.org/doc/man-pages/.
Linux 2007-12-26 ARCH_PRCTL(2)