CHMEM.1
上传用户:datang2001
上传日期:2007-02-01
资源大小:53269k
文件大小:2k
源码类别:

操作系统开发

开发平台:

C/C++

  1. .TH CHMEM 1
  2. .SH NAME
  3. chmem - change memory allocation
  4. .SH SYNOPSIS
  5. fBchmemfR [fB+fR]fR [fB-fR] [fB=fR] fIamount filefR
  6. .br
  7. .de FL
  8. .TP
  9. \fB\$1\fR
  10. \$2
  11. ..
  12. .de EX
  13. .TP 20
  14. \fB\$1\fR
  15. # \$2
  16. ..
  17. .SH EXAMPLES
  18. .EX "chmem =50000 a.out" "Give fIa.outfP 50K of stack space"
  19. .EX "chmem -4000 a.out" "Reduce the stack space by 4000 bytes"
  20. .EX "chmem +1000 file1" "Increase each stack by 1000 bytes"
  21. .SH DESCRIPTION
  22. .PP
  23. When a program is loaded into memory, it is allocated enough memory
  24. for the text and data+bss segments, plus
  25. an area for the stack.
  26. Data segment growth using 
  27. .I malloc ,
  28. .I brk ,
  29. or
  30. .I sbrk 
  31. eats up stack space from the low end.
  32. The amount of stack space to allocate is derived
  33. from a field in the executable program's file header.
  34. If the combined stack and data segment growth exceeds the stack space
  35. allocated, the program will be terminated.
  36. .PP
  37. It is therefore important to set the amount of stack space carefully.
  38. If too little is provided, the program may crash.
  39. If too much is provided, memory will be wasted, and fewer programs will be able
  40. to fit in memory and run simultaneously.
  41. s-2MINIXs+2
  42. does not swap, so that when memory is full, subsequent attempts to fork will
  43. fail.
  44. The compiler sets the stack space
  45. to the largest possible value (for the Intel CPUs, 64K - text - data).
  46. For many programs, this value is far too large.
  47. Nonrecursive programs that do not call
  48. .I brk ,
  49. .I sbrk ,
  50. or
  51. .I malloc ,
  52. and do not have any local arrays usually do not need more than 8K of stack
  53. space.
  54. .PP
  55. The
  56. .I chmem
  57. command changes the value of the header field that determines the stack allocation, and
  58. thus indirectly the total memory required to run the program.
  59. The = option sets the stack size
  60. to a specific value; the + and - options increment and decrement the
  61. current value by the indicated amount.
  62. The old and new stack sizes are printed.
  63. .SH "SEE ALSO"
  64. .BR install (1),
  65. .BR brk (2).