博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《操作系统导论》
阅读量:2399 次
发布时间:2019-05-10

本文共 1421 字,大约阅读时间需要 4 分钟。

一、虚拟化

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协议实现原理

四、附录

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

转载地址:http://ehdob.baihongyu.com/

你可能感兴趣的文章
最近的几个技术问题总结和答疑(七)
查看>>
每一次退缩之后的努力,都是极大的进步
查看>>
使用sysbench压力测试MySQL(一)(r11笔记第3天)
查看>>
MySQL 5.6, 5.7并行复制测试(r12笔记第9天)
查看>>
容灾切换中的数据库宕机问题简单分析(一)
查看>>
几年前的一次答疑解惑
查看>>
MySQL RR隔离级别的更新冲突策略
查看>>
MySQL索引条件下推的简单测试
查看>>
通过SQL解读财富的分配(二)
查看>>
一个MySQL死锁问题的复现
查看>>
数据迁移中的几个问题总结
查看>>
心理学中的效应简单解读(r12笔记第24天)
查看>>
mysqldump简单解析
查看>>
Oracle备库无法连接主库的问题分析
查看>>
最近一周的学习计划
查看>>
MySQL备份和恢复工具图谱
查看>>
从零开始搭建Nginx和Tomcat的web集群环境
查看>>
关于技术文档
查看>>
alert日志中的一条ora警告信息的分析
查看>>
美国旧金山之行第四天
查看>>