
OS
文章平均质量分 68
zg1g
7年算法工程师,10年Python使用经验。
展开
-
OS-进程模型
进程概念进程是指一个具有一定独立功能的程序在一个数据集合上的依次动态执行过程。 如下图所示一个程序的执行,需要经历编译和链接生成可执行文件,然后经过 加载到进程地址空间,最右图所示:程序加载到进程地址空间后的样子:进程的组成简单来说,进程包括了正在运行的一个程序的所有状态的信息。具体说来,包括: 代码 数据 状态寄存器,CPU状态CR0,指令指针IP 通用寄存器,A原创 2017-08-05 11:31:43 · 4300 阅读 · 0 评论 -
OS-中断,异常和系统调用
系统调用(system call)应用程序主动向操作系统发出的服务请求 异常 非法指令或者其他原因导致当前指令执行失败 如内存出错后的处理请求 中断 来自硬件设备的处理请求 如下图所示,包括中断,异常,和正常的通过函数库调用内核的操作接口。三者不同源头不同: 中断:外设 异常:应用程序意想不到的行为 系统调用:应用程序请求操作提供服务响应方式: 中断:异步 异常:原创 2017-08-05 08:13:46 · 1970 阅读 · 0 评论 -
OS-虚拟存储
局部性原理Principle of locality,程序在执行过程中的一个较短使其内,指令地址和操作数地址,分别局限于一定区域。具体体现在:时间局部性空间局部性分支局部性一条跳转指令的两次执行,很可能跳到相同的内存位置。局部性原理保证了虚拟存储的实际意义不同程序编写方法的局部性特征假定假定我们的程序采取了虚拟存储,而不是将程序全部加载到内存中去。假定场景页面大小为4K,分配给每个进程的物理页面数位原创 2017-08-06 09:10:57 · 1061 阅读 · 0 评论 -
OS-计算机体系结构和内存层次
计算机体系结构关心点:CPU中的高速缓存,可参考百科先初步了解下: https://baike.baidu.com/item/CPU%E7%BC%93%E5%AD%98/3728308?fr=aladdinCPU中两级高速缓存是由硬件(MMU)完全控制的,应用程序是感知不到的。CPU在处理时,如果在高速缓存L1,L2中未命中,会去内存中找,如果还是不命中,如果应用程序涉及到虚拟存储,缺页后操作系统原创 2017-08-06 10:02:31 · 8662 阅读 · 0 评论 -
OS-地址空间和地址生成
物理地址空间硬件支持的地址空间,起始地址0,直到 MAXsys逻辑地址空间起始地址0,直到 MAXprog如下图所示: 地址生成过程CPU中当前正在执行一条指令movl %eax, $oxfffa620eALU存储着逻辑地址的内存内容,然后,MMU负责进行逻辑地址到物理地址的转化;然后CPU控制器给总线发送物理地址请求,同时还有总线控制信号等。然后,存储单元,存储芯片,识别总线上的信号判断是读还是原创 2017-08-06 10:33:50 · 618 阅读 · 0 评论