操作系统的运行机制
操作系统的运行机制
(两种指令,两种处理状态,两种程序)
- 指令:
- 特权指令:不允许用户程序使用,例如I/O指令,置中断指令,存取用于内存保护的寄存器,送程序状态字到程序状态寄存器等指令
- 非特权指令:允许用户程序员使用
- 处理状态:(用程序状态寄存器(PSW)中的某标志位标识当前处理机处于什么状态,标志位来标识当前处理器处于声明状态)
- 用户态:(目态)此时CPU只能执行非特权指令
- 核心态: (管态)特权指令,非特权指令都可以执行
- 两种程序
- 内核程序: 内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令
- 应用程序:(用户自编)为了保证系统能安全运行,普通应用层序只能执行非特权指令,运行在用户态
操作系统内核
内核是计算机上配置的底层软件,是计算机功能的延伸。是操作系统最基本,最核心的部分
- 时钟管理:实现记时功能, 例如:分时操作系统中采用时间片轮转调度,在实时系统中按截至时间控制运行,批处理系统中通过始终管理来衡量一个作业的运行程序
- 中断处理:负责实现中断机制,例如:键盘鼠标信息的输入,进程的管理和调度,系统功能的调用,设备驱动,文件访问等
- 原语:是一种特殊的程序
特点- 处于操作系统的最低层,是最接近硬件的部分。
- 这些程序的运行具有原子性,其操作只能一气呵成,(主要是从系统安全性和便于管理考虑)
- 这些程序程序的运行时间都比较短,而且调用频繁
- 系统控制的数据结构及处理:(有的操作系统并不把这部分归为内核部分)
- 进程管理:进程状态管理,进程调度和分派,创建于撤销进程控制块
- 存储器管理:存储器的空间分配和回收,内存信息保护程序,代码对换程序等等
- 设备管理:缓冲区的管理,设备分配和回收
操作系统体系结构
大内核:将操作系统的主要功能模块都作为一个紧密联系的整体运行在核心态,从而为应用提供高性能的系统服务
优点:高性能,
缺点:内核代码庞大,结构混乱,难以维护
微内核:只把最基本的功能保留在内核
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁的在核心态和用户态之间切换,性能低
微内核操作系统特点:
- 足够小的内核
在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本的核心功能的部分。微内核并非是一个完整的OS,而只是操作系统中最基本的部分,它通常用于:
① 实现与硬件紧密相关的处理;
② 实现一些较基本的功能;
③ 负责客户和服务器之间的通信。
它们只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做得很小。 - 基于客户/服务器模式
由于客户/服务器(Client/Server)模式,具有非常多的优点,故在单机微内核操作系统中几乎无一例外地都采用客户/服务器模式,将操作系统中最基本的部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现。例如用于提供对进程(线程)进行管理的进程(线程)服务器,提供虚拟存储器管理功能的虚拟存储器服务器,提供I/O设备管理的I/O设备管理服务器等,它们都是被作为进程来实现的,运行在用户态,客户与服务器之间是借助微内核提供的消息传递机制来实现信息交互的。 - 应用“机制与策略分离”原理
在现代操作系统的结构设计中,经常利用“机制与策略分离”的原理来构造OS结构。所谓机制,是指实现某一功能的具体执行机构。而策略,则是在机制的基础上,借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。通常,机制处于一个系统的基层,而策略则处于系统的高层。在传统的OS中,将机制放在OS的内核的较低层,把策略放在内核的较高层次中。而在微内核操作系统中,通常将机制放在OS的微内核中。正因为如此,才有可能将内核做得很小。 - 采用面向对象技术
操作系统是一个极其复杂的大型软件系统,我们不仅可以通过结构设计来分解操作系统的复杂度,还可以基于面向对象技术中的“抽象”和“隐蔽”原则控制系统的复杂性,再进一步利用“对象”、“封装”和“继承”等概念来确保操作系统的“正确性”、“可靠性”、“易修改性”、“易扩展性”等,并提高操作系统的设计速度。正因为面向对象技术能带来如此多的好处,故面向对象技术被广泛应用于现代操作系统的设计中。