以下讨论操作系统的五种不同的结构:
1.整体结构
最常用的一种组织方式。它的结构实际上就是“无结构”,整个操作系统是一组函数的集合,每个函数可以去调用任何其他的函数。
操作系统提供的服务(系统调用)的请求过程:
- 将参数放入预先确定的位置,如寄存器或栈
- 执行一条特殊的陷阱指令(访管程序调用指令或内核调用指令)
- CPU从用户态切换到内核态,并将控制权交给操作系统。
这种模型中,每个系统调用都由一个服务列程来完成。而工具函数则负责一些辅助性的工作,如从用户程序获取数据。
- 一个主程序,用来调用被请求的服务例程
- 一组服务例程,用来实现相应的系统调用
- 一组工具函数,用来帮助服务例程的实现
2.分层结构
在整体结构模型的基础上进一步推广得到分层结构。
分层方案只是在设计上提供一些方便,系统的各个部分最终仍然被链接成一个完整且单一的目标程序。
3.虚拟机
VM/370系统
java虚拟机JVM
4.外核
在内核下运行的最底层软件是一个称为外核的程序,其任务是为虚拟机分配资源并确保资源的使用不会发生冲突。
外核方案的优点在于它省去了一个映射层。
5.客户-服务器模型
将大多数操作系统功能由用户进程来实现,只保留一个最小的内核。
为了获取某项服务,用户进程(客户进程),将此请求发送给一个服务器进程,服务器进程随后完成此操作并将应答信息送回。
此模型还适用于分布式系统: