
计算机体系
文章平均质量分 77
小尼人00
人生一直在不断的探索中,才知道一些东西的真正含义,为了在探索的路途中少走弯路,早日达到心中的愿景,我认为没有什么比开阔眼界更重要的了。
展开
-
[OS] 堆栈、堆、数据段、代码段
上图是进程的虚拟地址空间示意图。堆栈段: 1. 为函数内部的局部变量提供存储空间。 2. 进行函数调用时,存储“过程活动记录”。 3. 用作暂时存储区。如计算一个很长的算术表达式时,可以将部分计算结果压入堆栈。数据段(静态存储区): 包括BSS段的数据段,BSS段存储未初始化的全局变量、静态变量。数据段存储经过初始化的全局和静态变量。转载 2013-01-31 18:57:33 · 782 阅读 · 0 评论 -
[OS] malloc()函数的工作机制
malloc函数的实质体现在,它有一个将可用的内存块连接为一个长长的列表的所谓空闲链表。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块。然后,将该内存块一分为二(一块的大小与用户请求的大小相等,另一块的大小就是剩下的字节)。接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话)返回到连接表上。调用free函数时,它将用户释放的内存块连接到空闲链上。到最后转载 2013-03-08 17:25:46 · 2140 阅读 · 0 评论 -
[OS] 进程地址空间与虚拟存储空间的理解 很好!!!
在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制在 早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算 机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行多个程序时,转载 2013-02-17 19:39:39 · 878 阅读 · 0 评论 -
[OS] 第三章 处理机调度与死锁
处理机调度与死锁 一个批处理型作业,从进入系统并驻留在外存的后备队列上开始,直至作业运行完毕,可能要经历的三级调度: 高级调度 -> 低级调度 -> 中级调度*高级调度* { 又称作业调度、长程调度 、接纳调度 作用:把外存上处于后备队列中的作业调入内存,并为它们创建进程、分配资源、排在就绪队列上,准备执行。 分时系统、实时系统,通常不需要作业调度。}*低级调度* { 进程原创 2013-02-03 11:19:02 · 1299 阅读 · 0 评论 -
[OS] 第四章 存储器管理
用户程序的主要处理阶段 连续分配方式 虚拟存储器的基本特征 分页、分段存储管理技术 存储管理的功能 (1) 内存分配——为每个进程分配一定的内存空间 (2) 地址映射——把程序中所用的相对地址转换成内存的物理地址 (3) 内存保护 (4) 内存扩充 程序的装入和链接从用户的源程序进入系统到相应程序在机器上运行,所经历的主要处理阶段有原创 2013-02-03 11:21:37 · 915 阅读 · 0 评论 -
[OS] 第二章 进程管理
进程管理 * 进程的基本概念 : 程序在并发环境中的执行过程, 资源分配和独立运行的基本单位 * 进程与程序的区别 程序顺序执行的特征 { 1, 顺序性 2, 封闭性 3, 可再现性 } 程序并发执行的特征 { (1), 间断性 共享、合作、制约导致:执行—暂停—执行 (2), 失去封闭性 资源状态由原创 2013-01-18 13:14:53 · 681 阅读 · 0 评论 -
[OS] 第一章 引论
操作系统硬件与软件 好比 人的头颅与思想 OS : 大脑的司令部一,操作系统引论二,进程管理三,处理机的调度和死锁四,存储器管理五,设备管理六,文件管理第一章 计算机OS引论1. 什么是OS? 操作系统是一组控制和管理计算机硬件和软件资源, 合理地对各类作业进行调度以方便用户使用的程序集合。2. OS的目标 { *1*,方便性 *2*,有效性 3,可扩充性 4,开放原创 2013-01-18 13:13:20 · 582 阅读 · 0 评论 -
[OS] 进程的虚地址空间
我在书上看到说,32位地址线的进程虚拟地址空间是2GB,这里说的地址空间就是可以容纳这个进程大小的最大空间的意思么? 那么如果这个程序很大,超过2GB了怎么办?还有内存是由操作系统管理的,用户程序没法直接访问的是吗?所以说我们运行用户程序的时候,程序最初都是存放在磁盘上的,要等到操作系统的调入才能放到内存上去执行,而存放在磁盘上的程序就是所谓的可执行映像文件,是这样吗?32原创 2013-01-31 18:10:36 · 744 阅读 · 0 评论 -
[OS] 我与大牛的对话!
hp' 9:12:29不new 出来,就这样,char *p, 在主函数中,那么这个p可能都指向哪里ftiasch(826513189) 9:12:51随机指向一块内存地址。hp' 9:13:56指向的内存地址,是不是只有可能是 堆,全局区,常量区,自由存储区?这4个R(305146787) 9:31:31char *p,是临时的指针变量,肯定存在自由存储区hp'原创 2013-01-31 18:03:12 · 835 阅读 · 0 评论 -
[OS] C++运行时内存分为几个区啊? (自百度知道)
问题 :C++运行时内存分为几个区啊?怎么有些人说是分为:堆、栈、自由存储区、全局区、常量区,有些人说是分为:堆、栈、全局区、常量区、代码区呢。 为什么要这样分啊?是因为程序运行方式的需要呢还是从程序数据安全性和时间效率上分的啊?回答 :其实吧,说的简单点是,怎么分,并不重要。说的复杂点是,其实不分的,例如说,你随便去书店也好,去网上也好,哪怕是看c++之父写的c++ program原创 2013-01-30 13:05:26 · 934 阅读 · 0 评论 -
linux 进程用户栈和内核栈
进程的用户栈和内核栈进程是程序的一次执行过程。用剧本和演出来类比,程序相当于剧本,而进程则相当于剧本的一次演出,舞台、灯光则相当于进程的运行环境,贴切进程的堆栈每个进程都有自己的堆栈,内核在创建一个新的进程时,在创建进程控制块task_struct的同时,也为进程创建自己堆栈。一个进程 有2个堆栈,用户堆栈和系统堆栈;用户堆栈的空间指向用户地址空间,内核堆栈的空间指向内转载 2013-06-12 11:22:58 · 1073 阅读 · 0 评论