欢迎来到天天文库
浏览记录
ID:19747430
大小:2.19 MB
页数:40页
时间:2018-10-05
《现代操作系统读书笔记(一到七章)new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一章:引论操作系统是运行在内核态的软件,为程序猿提供资源集抽象以及管理硬件1.1.2主要任务:记录那个程序在用什么资源,管理资源分配,评估使用代价,调节冲突1.3.11.操作系统必须知道所有的寄存器,以便中断时保存进度2.用户程序在用户态运行时,仅允许执行至灵级的一个子集,一般不能调用IO和内存保护指令3.陷阱:a.用于执行系统调用b.多数由硬件引起,用于警告异常4.超线程:无并行处理,线程切换纳秒级1.3.2存储器1.寄存器(和CPU一样快)-》高速缓存(多级缓存)-》主存(RAMROMEEROM闪存
2、)1.3.3上下文切换:多道程序系统中从一个程序切换到另一个程序1.3.51.设备驱动程序:控制IO设备,与控制器对话并收发命令2.设备存储器:映射到操作空间A.优点:不需要特定IO指令B.缺点:占地址空间(8088)3.实现输入输出的方法:A.忙等待:设备驱动循环检查IOB.操作完成时中断C.使用特殊的直接存储器访问芯片DMA1.3.61.USB:通用串行总线,键盘鼠标等慢速设备1.3.7启动1.加电-》BIOS检查硬件-》BIOS查询启动设备(设备第一扇区用启动签名才可以作为启动设备)-》硬盘第一区(
3、MBR),分区表,超级块等1.5.1进程1.本质:正在执行的程序的实例,地址空间(coreimage进程可读写,有数据和堆栈)。2.相关:资源集(寄存器,报警,文件清单等)3.容许运行一个程序所需要所有信息的容器4.UID与GID1.5.31.IO设备的分类:A.块设备:硬盘,可随机读取B.字符特殊文件:键盘鼠标2.管道:虚文件,连接进程1.6系统调用1.用户程序与操作系统交互:处理抽象2.能进入内核的过程调用用户态切换到核心态三种方法:中断,异常,系统调用3.TRAP指令:副作用切换到内核态1.7.3微
4、内核1.高可靠性,把操作系统划分成小的,定义良好的模块,只有微内核运行在内核,其他是普通用户程序2.设备驱动:崩溃不会导致系统死机3.机制与策略分离第二章:进程与线程2.1进程模型1.多道程序设计:CPU在多个程序之间快速切换2.UNIX:开始是相同,之后不同。Windows:一直不同。3.进程退出的原因:1.正常退出;2.出错退出;(异常处理)3.严重错误;(非法指令,引用错误内存,除零错误)4.被杀死4.进程层次Windows:没有层次的概念,所有进程地位相同Linux:进程及进程的子女们组成进程组5
5、.进程的三种状态:1.运行态(实际占用CPU)2.就绪态(可运行)3.阻塞态(等待外部事件)6.进程表:储存进程状态(程序计数器,堆栈指针,内存分配状况,打开的文件状态。账号等)7.中断向量:与每一个IO类关联1.中断发生时,中断硬件程序将进程表中的重要数据压入堆栈,计算机跳到中断向量的地址2.汇编语言设置新的堆栈(无法用C语言这类高级语言来描述)8.多道程序设计1.假设一个进程等待IO与停留在CPU的时间比为p,n个进程时,CPU使用率为使用率=1–p^n2.2线程(http://www.cnblogs
6、.com/way_testlife/archive/2011/04/16/2018312.html进程与线程)1.定义:传统操作系统中,每个进程有一个地址空间和一个控制线程2.线程将应用程序分解成可以并行运行的多个顺序线程3.使用多线程的原因:1.并行实体共享同一个地址空间和所有可用数据的能力2.线程更轻量级,所以他们比进程更快创建和撤销3.同时需要大量IO和CPU计算时,多线程允许多个活动彼此重叠进行,从而加快执行速度4.多核系统中,多线程可以真正实现并行5.例子:多线程/单线程web服务器1.第三种设
7、计(有限状态机:并行,非阻塞系统调用,【中断】):唯一的线程对请求进行考察,如果需要IO,则启动一个非阻塞IO,服务器在表格里记录当前请求,然后处理下一个事项。6.线程模型1.进程:集中程序运行的相关资源(地址空间,全局变量等)2.线程:程序计数器,寄存器,堆栈,共享的地址空间,多个线程的执行能力。7.线程之间没有保护:1.不可能2.不需要(线程之间是合作关系)8.每个线程都有自己的堆栈9.thread_yield:不同于进程,线程无法使用时钟中断强制线程让出CPU10.线程引入的问题1.fork系统调用
8、是否应该复制子线程2.共享文件冲突4线程实现1.用户空间实现1.每个进程需要有其专门的线程表,由运行时系统管理2.优点1.可以在不支持线程的操作系统上实现多线程2.线程切换速度快(调用运行时系统的过程,不需要刷新和上下文切换)3.允许每个进程有自己定制的调度算法4.有较好的拓展性(内核线程需要固定的表格空间和堆栈空间)3.缺点1.某个线程进行阻塞调用会引起所有其他线程阻塞1.使用非阻塞系统调用2.阻塞提前通知(select系统
此文档下载收益归作者所有