随笔分类 - Z专业基础理论之OS
摘要:缓存的基本原理 缓存工作的原则,就是“引用的局部性”,这可以分为时间局部性和空间局部性。空间局部性是指CPU在某一时刻需要,那么很可能下一步就需要其附近的数据;时间局部性是指当某个数据被访问过一次之后,过不了多久时间就会被再一次访问。对于应用程序而言,不管是指令流还是数据流都会出现引用的局部性现象。 ...
阅读全文
摘要:下面这个名单会因为 不同Unix的实现而发生变化,所以或许准确性有了水份。请注意子进程得到的是 这些东西的 拷贝,不是它们本身。 由子进程自父进程继承到: ① 进程的资格(真实(real)/有效(effective)/已保存(saved) 用户号(UIDs)和组号(GIDs)) ② 环境(environment) ③ 堆栈 ④ 内存 ⑤ 打开文件的描述符(...
阅读全文
摘要:1、0的原码和补码 0可以是+0,也可以是-0 0的原码为:10000(-0),00000(+0) +0的补码和原码相同,为00000 -0的补码是在-0的原码(10000)的基础上,符号位不变,其它位按位取反再在低位加1(11111+1=00000),进而得到-0的补码00000 所以补码表示0只有一种情况00000。而原码则表示了两次,分别为10000和00...
阅读全文
摘要:典型 PC 系统各种操作指令的大概时间 execute typical instruction 执行基本指令 1/1,000,000,000 sec = 1 nanosec ...
阅读全文
摘要:execute typical instruction 1/1,000,000,000 sec = 1 nanosec fetch from L1 cache memory 0.5 nanosec...
阅读全文
摘要:系统调用 在系统中真正被所有进程都使用的内核通信方式是系统调用。例如当进程请求内核服务时,就使用的是系统调用。一般情况下,进程是不能够存取系统内核的。它不能存取内核使用的内存段,也不能调用内核函数,CPU的硬件结构保证了这一点。只有系统调用是一个例外。进程使用寄存器中适当的值跳转到内核中事先定义好的代码中执行,(当然,这些代码是只读的)。在Intel结构的计算机中,这是由中断0x80实现的。进程...
阅读全文
摘要:当一个任务(进程)执行系统调用而执行内核代码时,称进程处于内核内核态,此时处理器处于特权级最高的(0级)内核代码中执行,当进程处于内核态时,执行的内核代码会使用当前进程的内核栈,每个进程都有自己的内核栈。当进程执行用户代码时,称其处于用户态,此时处理器在特权级最低的(3级)用户代码中运行。 当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态,因为中断处理程序将...
阅读全文
摘要:进程同步与互斥首先,我们看一个例子:进程P1、P2公用一个变量COUNT,初始值为0P1、P2两个进程的执行顺序是随机的,P1、P2可能顺序执行或交错执行。由图可见,不同的执行顺序,COUNT值会不同,这是不允许的。在多道程序系统中,由于资源共享或进程合作,使进程间形成间接相互制约和直接相互制约关系,这需要用进程互斥与同步机制来协调两种制约关系。1、临界资源:然在多道程序系统中的诸进程可以共享各类...
阅读全文
摘要:# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时...
阅读全文