一、 处理机状态及特权指令
处理机状态:
- 核态:Kernel Mode, CPU运行操作系统程序时;
- 管态:Supervisor Mode, 不能修改CPU状态;
- 用户态:User Mode, 不能直接使用系统资源,并且只能访问用户程序所在的存储空间。
特权指令:
核态可以使用所有指令:
- 允许和禁止中断;
- 进程间切换处理机;
- 存取用于内存保护的寄存器;
- I/O操作;
- 暂停CPU。
下列情况下,用户态->核态:
- 用户程序要求操作系统服务,发生系统调用;
- 发生中断;
- 用户程序产生了错误;
- 用户程序企图执行一条特权指令。
核态->用户态:
- 这也是特权指令,一般是中断返回指令。
二、 操作系统发展:
1 手工操作
没有操作系统。用户直接操作,编程用机器语言,通过一些插板的硬连线控制。
2 批处理系统
(1)单道批处理系统:监控程序(软件)。用户:把程序、数据和对程序的控制意图写入卡片或磁带,以作业形式交给计算机操作员;操作员:把这些作业按顺序组织成一批,并将整批作业放在输入设备上,交给监控程序;监控程序:按顺序一个个作业调入内存执行,一直到这批作业处理完毕。特征:自动性、顺序性、单道性。
(2)多道程序系统:实现了资源管理,监控程序变成了操作系统。在内存中同时存放多个程序,它们都处于运行态。CPU和外设可以同时运行,大大提高了CPU利用率。特征:多道、宏观上并行、微观上串行。
(3)多道批处理系统:采用多道程序设计技术,这样CPU和外设可以同时运行。特征:多道、无序性、调度性。无交互能力。
3 分时系统
分时技术:把处理机的运行时间分成多个很短的时间片,轮流分配给多个联机程序。特征:
- 交互性;
- 多用户同时性:一台计算机可以连接多个终端,多个用户可以通过时间片轮转共享计算机资源;
- 独立性:各个用户通过自己的终端独立使用计算机,感觉自己一个人独占计算机单元;
- 及时性。
4 实时系统
能及时响应随机发生的外部事件,并且快速处理。专门用途:用于生产控制、武器控制、实时信息控制等。
分类:
- 实时控制系统:例如导弹控制;
- 实时信息处理系统:飞机票预定、航班查询等。特征:即时响应、高可靠性。
系统 | 多路性 | 独立性 | 及时性 | 交互性 | 可靠性 |
批处理系统 | 不能同时为多个用户服务 | 不独立 | 不够及时 | 不能 | 可靠 |
分时系统 | 为多个用户服务 | 好 | 人能接受的等待时间 | 好 | 可靠 |
实时系统 | 为多个对象服务 | 好 | 规定时间 | 人与系统交互存在一定限制 | 高度可靠 |
5 个人操作系统
联机的交互式的单用户操作系统。实时(用户可接受的时间)多任务。例如:MS-DOS、UNIX、Linux、OS/2、Windows、MAC。
由于是个人专用,在多用户和分时所要求的处理机调度、存储保护简单得多。GUI友好。
6 网络操作系统
与处理机操作系统没有本质区别。需要网络接口控制器及一些底层软件来驱动它。还要远程登录、远程文件访问程序。
7 分布式操作系统
分布式要求一个统一的操作系统,实现系统操作的统一性。引入一个高级操作系统,各个处理机有自己的似有操作系统。高级操作系统有两种实现形式:(1)在各处理机的私有操作系统之外独立存在,私有操作系统可以识别和调用它;(2)在各个私有操作系统之上加以扩展。
对于各个物理资源的管理,高级操作系统和各私有操作系统之间不允许明显的主从管理关系。
系统的透明性:操作系统同一调度,提供统一用户界面。实际操作在哪一台计算机运行、调用哪一台计算机资源,由操作系统决定,对用户是透明的。计算机网络,用户需要明确指定使用哪一台计算机。
基础是网络。
8 嵌入式操作系统
使用固化软件,即固件(firmware)。
软硬件专门用途,量体裁衣,去除冗余,实时高速(软件存在存储器芯片或者单片机中,而非磁盘),低功耗。
三、 操作系统功能:
1. 进程管理
2. 存储管理
3. 设备管理
4. 文件管理
5. 用户接口
四、操作系统基本特征:
并发性:程序(进程)并发运行。并发:单处理机,多个事件在同一时间间隔发生;并行:多处理机,多个事件同一时刻发生。
共享性:共享系统资源。互斥共享:如打印机;同时访问:如磁盘I/O。
不确定性:操作系统的随机性。
五、操作系统结构
1. 模块组合结构
任何模块间可以任意调用,没有任何数据封装和隐藏。高效率,难扩展和升级。
例如:CP/M、MS-DOS.
2. 层次结构
分层,下层模块封装内部细节,上层模块通过接口调用下层模块。
操作系统调用功能时,要从上而下穿越很多层,效率较低。
例如:UNIX,Linux,VAX/VMS,MULTICS.
模块组合结构和层次结构称为宏内核操作系统,包括了各种可能需要的功能。
3. 微内核结构
优点:可扩展性高,可靠性高,可移植性高,提供了分布式系统的支持,融入了面向对象技术。
缺点:需要多次上下文切换,效率低于早期操作系统。
例如:MACH、MacOS、Windows.
4. 虚拟机结构
六、Linux特点
内核结构