《操作系统导论》

一、虚拟化

1.什么是寄存器,是硬件还是虚拟出来的软件
寄存器是cpu自带的硬件
操作系统的某些特性需要硬件支持,比如分页TLB就有硬件支持和软件支持,但是硬件支持更高效

2.为什么需要操作系统,没有操作系统的早期程序是怎么运行的
没有OS,一台机器只能运行一个程序,运行多个需要人工干预执行,并且可能相互影响

3.cpu调度
经历FIFE(先到先执行)、时间片轮转、优先级、多级反馈队列,目前大多采用多级优先调度队列,同时兼顾各进程运行完成时间和系统响应时间

4.虚拟内存
操作系统为隔离各进程,对进程申请内存都采用虚拟内存,分段或者分页的方式,都需要cpu硬件支持
分段需要增加基址和界限寄存器
分页需要增加TLB(快速缓存寄存器,否则需要每次访问页表消耗过大,但是TLB这里有缓存命中的概念,引入了一系列提高缓存命中率的算法)
操作系统对于这些提高cpu使用率或者虚拟内存与物理内存映射命中率算法,有很强的行为预测逻辑在
分段和分页都是为了减少虚拟内存空间浪费
分段缺点是会造成很多外部碎片,空间满了之后需要内存搬移,会造成性能损失,改进方法是最小匹配、最大匹配、随机匹配
分页优点是分配内存可以分散,缺点是页表太多,改进方法是TLB、更大的分页、分段和分页结合、多级页表,即使引入这么多策略,页表大小还是有可能超过实际物理内存,所以又引入了交换空间,将不常用的页表存入交换空间中(一般是磁盘)
当物理内存已满的时候,需要进行换页操作,响应的策略有FIFO,随机值,LFU(最不常使用),LRU(最少最近使用),近似LRU等,现代操作系统大多使用的近似LRU,也需要硬件配合标记哪些页是最近使用过的
linux虚拟内存实现主要使用分页方式,linux很少使用分段方式,Linux中的分段机制只是为了兼容IA32的硬件而设计的
5.介绍了早期一个叫VMS的操作系统,其中重点提到了2个现在成为标准的操作,一个是按需置0,一个是写时复制
按需置0: 分页被使用后才将分页标志位置为0
写时复制: 发生复制操作后,只是将分页映射到目标空间,暂不执行复制操作,并将此空间标记为写时复制,如果此空间只读不写,就省去复制,真发生写操作才执行复制操作,以提高性能

二、并发

1.线程有独立栈空间,线程之间共享数据只能共享全局变量或者heap数据
2.线程之间访问临界区产生竞争条件是因为一个线程在单处理器上执行过程中可能会发生时钟中断导致操作无法原子性一次性完成,或者线程可能运行在多处理器上,,所以需要加锁
3.锁需要硬件支持原子操作以及操作系统的配合,防止自旋锁一直自旋消耗cpu时间
4.控制并发的有锁、条件变量、信号量
5.系统提供I/O多路复用以提高I/O并发,select/poll linux和windows都有,linux独有epoll基于事件轮询通知

三、文件系统

1.访问I/O设备也需要消耗cpu在虚拟内存和物理内存之间拷贝,现代出现了DMA(直接访问内存)设备以绕过cpu,包括RDMA(智能网卡的基础)
2.总线也分各种类型,分为RAM有专属的内存总线、通用I/O总线、外设I/O总线,不同总线传输速度有差异,成本也有差异
3.为了快速、可靠、大容量,出现了RAID(廉价冗余磁盘阵列)
4.介绍了机械磁盘寻道成本,NFS协议及AFS协议实现原理

四、附录
实际编程,做一些真正的工作,而不是不断的阅读,才是真正的学习方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值