Processes and Memory Organisation
2016-02-24 00:28
253 查看
CODE(静态存储区域)
Also known as the TEXT SegmentUsually starts at or near address 0 and does not change size during the lifetime of the process
Contains:
the machine instructions for the problem
STACK
Used to pass data between functions, and to store temporary variables local to a given routineThe stack often starts at a very high address and grows torwards smaller addresses (this may seem to waste a large amount of space. However, it does not, because the use of virtual memory means that unused addresses below the stack do not need to be mapped in memory)
HEAP
Dynamic memory which allocated by the process at run time(the most complicated type of memory)Usually allocated starting just beyond the end of the code segment, and grows up in memory towards the stack
The end of heap is sometimes called the process break point (usually using malloc()/free() to manage this task)
Stack vs Heap Pros and Cons
Stack
very fast accessdon’t have to explicitly de-allocate variables
space is managed efficiently by CPU, memory will not become fragmented
local variables only
limit on stack size (OS-dependent)
variables cannot be resized
Heap
variables can be accessed globallyno limit on memory size
(relatively) slower access
no guaranteed efficient use of space, memory may become fragmented overtime as blocks of memory are allocated, then freed
you must manage memory (you’re in charge of allocating and freeing variables)
variables can be resized using realloc()
相关文章推荐
- LINUX操作系统如何启动HTTPD服务
- hdu5372 Segment Game (树状数组)
- 【Android】多媒体编程——MediaPlayer音频播放
- jar包的解压、压缩
- LINUX操作系统如何启动HTTPD服务
- Linux内核分析作业 NO.1
- STL详解
- 【Android】Intent过滤器
- CodeForces 132A Turing Tape
- LeetCode 226. Invert Binary Tree
- understanding the Euler Lagrange equation
- (java)Minimum Path Sum
- 多态
- Unity学习之路(一)太空大战类游戏制作5
- 解决:BeanNotOfRequiredTypeException办法 @Autowired和@Resource注解的不同
- 【Android】BroadcastReceiver的生命周期
- HDU 2819 Swap(二分图最大匹配)
- 【Android】Activity启动模式
- servlet web.xml 配置方式
- 《推荐系统实践》二刷开始,顺便做个规划