看王道的笔记,结合一些自己的思考(这篇可能相对较少,都是概念)
目录
操作系统的定义和功能
协助硬件、软件
让用户、软件更加简单易用
是系统软件
管理资源
处理机管理:
管理CPU的任务
存储器管理:
管理内存
文件管理:
可以管理外存
设备管理:
设备的分配和使用,如打印机插入后可以使用
对用户
GUI
命令
对程序员
程序接口,如可以使用键盘输入
特征
并发和共享是最重要的两个,两个互为存在条件
并发
时间长一点可以看成同时运行,短了不是
比如每天写很多科目的作业,虽然他们是交替的,但是从一个长期的角度,比如一天或者一个星期上讲,他们是同时写的
所谓服务器高并发,应该就是可以看成一秒钟可以有多个进程进行,比如多个用户访问
与并行相区别
两个CPU同时运行是并行
导致异步
共享
互斥
摄像头只能分配给一个进程
使用时可以交流
同时
可以同时读一个文本
可同时的一定可以并发
虚拟
时分复用
空分复用
异步
历史
手工
批处理
所以.bat就算是那个时代的产物了
单道:
IO时间占比大
多道:
IO占比小,但没有人机互动(无法调试),等待时间长
分时:
常用
实时:
硬实时和软实时
网络操作系统:
???
分布式:
利用多台电脑
运行机制
内核态和用户态(有个寄存器)
内核态->用户态 修改PSW,让出CPU
反过来,必须只有中断
内中断,CPU执行非法指令,或者trap
每条指令结束后都看一看有没有外中断,如时钟中断,IO中断
然后按中断类型调用内核
调用库函数:放好参数,然后trap
操作系统体系结构
分层
易于调试和维护,调用接口固定
但边界不好定,而且不可跨层,效率低
模块化
确定接口后可以同时开发,动态加载,直接调用,效率高
互相依赖,难以调试和验证
宏内核
快但复杂,易错,且大
微内核
慢但容错高,好维护,小
外核
减少映射层
在VMM里使用
操作系统引导
先ROM自检,再主引导,再引导,再启动管理器
虚拟机
一种快(指令等级高)但难转移,一种慢(指令等级低)但容易转移(常用)