操作系统常识(摘抄)

0、操作系统综述和历史沿革
现代操作系统往往有两种工作状态,核心态和用户态。对应着CPU的两种特权级别。
linux/unix采用的是单内核(宏内核)结构,而windows和mac os是微内核结构(实际上是混合内核结构)。内核,就是操作系统中常驻内存的部分,虚拟的存在于每一个进程的存储器映像中。
所谓的单内核,就是操作系统内核作为一个整体运行在一个单独的地址空间,这样内核通常以当个静态二进制文件的形式存储于硬盘空间。内核之间不需要通信,因为处于同一个地址空间,可以方便的进行函数调用。
所谓微内核,微内核被划分为独立的进程,每个进程被称之为一个服务器。各种服务之间通过IPC交换数据。内核只提供IPC,内存管理和任务调度的基本功能。包括文件系统,操作系统组件和驱动程序都在各自独立的地址空间进行。微内核的实时性和稳定性提升了,可以用来设计实时操作系统,在小型系统工业控制系统上应用良好。
1992年1月,发生了著名的Tanenbaum–Torvalds debate,关于linux为什么不使用微内核。有兴趣的可以去查看。
系统调用一定工作在内核态。一般来说,采用中断实现。linux下有319的个系统调用,通过中断号0x80实现
在linux中,每个进程都有一个内核栈和用户栈。显然,在进行系统调用时不但需要通过CPU寄存器传递参数,还需要保存和恢复自己的用户栈地址,所以系统调用比较费时。

1、进程管理
(1)进程的状态
三态模型:
运行态,就绪态,等待态
五态模型
上面增加挂起阻塞和挂起就绪。

(2)信号量和PV操作
P操作:先对信号量执行减一。如果小于0.则阻塞当前进程
(3)死锁问题
产生死锁要满足四个必要条件:互斥条件(资源每次只能被一个线程占用);保持与等待条件(进程不会因为没有抢到某些资源而放弃已经占有的资源);不可抢占条件(系统不能强行收回进程所占有的资源);循环等待条件(进程互相占有和申请对方占有和申请的资源)
银行家算法
解决死锁主要通过死锁预防,死锁避免,死锁检测,死锁解除来实现。

(4)线程管理

进程控制块(PCB)是进程存在的唯一标识。内容包括进程的调度信息和执行信息。随着进程的建立而产生,随着进程的完成而撤销。

2、内存管理
虚拟存储器技术是把编写程序时的虚拟地址(逻辑地址),换成较小的物理地址。

(1)地址变换
物理地址 = 起始地址物理地址+逻辑地址

(2)分区存储管理
首次适应算法;最佳适应算法;最差适应算法
(3)段页式存储管理
页式存储管理:每次访问内存时,都先访问页表。然后根据页表核算物理地址。每次读取数据需要访问两次内存
段式存储管理
页是物理单位,大小固定,用用户看不见
段式逻辑单位,用户可见

段页式存储管理:将作业分段,然后为每个段分配若干段。先检索段表,在检索对应段的页表(PTE),最后取得实际物理地址。一共需要访问三次内存。
在MMU中,缓存着一个PTE的小子集,叫做TLB(翻译后备缓冲器),可以加速地址翻译。
(4)虚拟存储管理
页面置换算法:随机淘汰法;先进先出法;最近未使用算法;轮转算法

3、文件系统
(1)文件组织结构
逻辑结构:流式文件,记录式文件
物理结构:顺序结构,链接结构(串联结构),索引结构
在UNIX系统中,采用直接和间接索引的方法。直接索引的可以直接读出。一级间接块需要先读出索引地址再读取。二级间接块需要先读出对应的一级间接块地址,需要访问三次磁盘。

树形文件结构(目录结构)

(2)存储空间管理
空闲文件目录
空闲块链
位示图法
成组连接法
(3)分布式文件系统

4、输入输出
常见的输入输出方式有程序控制方式;程序中断方式;DMA方式;通道方式;I/O处理机方式。按顺序所占用的CPU时间减少。
虚拟输入输出设备常采用假脱机来实现(SPOOLING),采用一组进程来模拟一台输入输出处理器。采用假脱机技术,可以将低俗的独占设备改造为一个可共享的设备。打印机便是常见的SPOOLING技术的应用。

5、磁盘
磁盘组的大小为 = 盘面数目 * 磁道数目 * 扇区数目。一般而言,一个物理块包含若干个扇区,分配一般用物理块作为单位。
常见的磁盘调度算法有:
FIFO(FCFS)算法:未优化
SSTF:最短寻道时间优先,首先处理距离当前磁头位置最短的请求,可能会有高度局部化的倾向。
电梯算法(SCAN)
N步电梯算法(NSCAN)
循环扫描算法(C-SCAN)

6、流水线知识
在流水线控制下,条件转移指令是全局相关。
当流水线收到IO中断时,可以立即停止(精确断电法),也可以等待流水线上的指令执行完成(不精确断点法)。
在流水线是,如果遇到资源冲突,就只能暂停后续指令进入流水线,流水线越长越容易发生。除此之外,在编译的时候可以故意插入空指令防止资源冲突。对于数据相关的处理,一般是设置专用通路。

加速比:不使用流水线的执行时间/使用流水线的执行时间
超标量:在一个存储器内核中实行了指令集的并行运算
吞吐率:单位时间内完成的指令数目

7、RISC和CISC
RISC有大量的通用寄存器,通过流水线技术和超标量技术弥补自身效率,更适合流水线处理。CISC寻址方式丰富,指令长度可变,并有多种指令格式。设计周期长,设计复杂。CISC使用微程序实现难以用组合电路实现的逻辑,而RISC则不需要。而且RISC可以有效的支持高级语言编译时的优化。

8、cache
主存单元到cache单元的地址转换为硬件完成。
当cache被写满后,必须淘汰某些旧数据。最常用的淘汰算法为随机淘汰法;先进先出法;最近最少使用法;
cache的命中率必须高达百分之90,但是不必和主存中的信息保持一致。常用的算法有
写直达:写cache时同时写主存
写回:淘汰cache时同时写主存
标记法:对每一位cache进行标记,修改后则清零该标记,直接将修改写入主存。当程序访问cache时检查该标记,如果表明未修改过则直接读取,否则则从主存中读取。
全相连模式:主存的任意一块可以映像到cache的任意一块
直接相连模式:主存的任意一块只能映射到cache中唯一一块
组相连模式:将主存分组,将cache分块。将主存划分为若干区,每一区和cache大小相等。将主存中的一块调入cache时,只能放在自己在区里的组号相同的组号中。

9、多处理机系统
并行处理机(SIMD,单指令流多数据流),并行处理器只有一个控制器,但是有多个处理单元,进行相同的运算,但是进行运算的数据不同。

多处理机(MIMD,多指令流多数据流)
共享存储的多处理机结构(SMP,对称多处理机):有统一共享的内存(SM)。属于紧耦合系统。有UMA架构,NUMA架构,和COMA架构。

MMP(海量并行处理结构):采用分布存储的方式。但是不能访问非本地存储,所以设计了虚拟共享存储器(SVM)和共享分布式存储器(DSM)技术。属于松耦合系统。
其实NUMA架构和MMP很类似,区别在于NUMA节点在同一个物理服务器内实现的。而MMP架构在SMP服务器之间。

10、RAID(廉价磁盘冗余阵列):
RAID0:没有冗余,没有校验
RAID1:磁盘镜像阵列。由磁盘对组成,1:1备份,利用率只有50%
RAID2:采用海明码的磁盘镜像阵列
RAID3/4:采用奇偶码的磁盘镜像阵列
RAID5:在上面的基础上将奇偶校验码分布式存储在每个盘上
RAID6:在上面的基础上,设置了一块专用的,有独立数据访问通路的异步校验盘
RAID7:存储计算机操作系统
还有RAID0+1和RAID1+0.RAID0负责进行快速的数据读写.RAID1数据的可靠备份

——————————————————————————

不允许用户直接使用的指令被称之为特权指令,比如关闭中断.
对RAM进行自检时时送入特殊值,然后在读出,该过程会掩盖原来保存的数据,对ROM进行自检时是对数据进行累加求和,然后和事先存储的累加和相比较。

CRC差错校验
将信息码左移(生成码长-1)位,进行异或除法

浮点数的表示为 尾数乘以2的阶码次方

相联存储器按照内容而不是地址进行存储

使用海明码纠正单位错:
要满足2的海明码位数次方大于总信息长度加一。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值