操作系统概念(二):操作系统结构
前言
本章目标:
- 介绍操作系统为用户、进程和其他系统提供的服务
- 讨论组织操作系统的不同方法
- 解释操作系统的安装、定制和启动
操作系统原理是武汉大学计算机学院软件工程专业所学习的一门专业课,教材为机械工业出版社的操作系统概念,本系列博客为该课程的学习笔记。
正文
1. 操作系统提供的服务
- 用户接口:包括命令行接口、图形用户接口和程序接口。
- 程序执行:将程序装入内存并运行程序。
- I/O操作:操作系统必须提供完成I/O操作的手段。
- 文件系统操作:让程序能够读、写、创建和删除文件。
- 通信:进程间交换信息。
- 错误检测:通过检测错误确保正确运算。
- 资源分配:把资源分配给同时运行的作业。
- 统计:记录用户使用资源的类型和数量。
- 保护和安全:确保所有对资源的访问是受控的却系统不受外界侵犯。
2. 操作系统的用户接口
2.1. 命令行接口
命令接口进行作业控制的主要方式:
- 脱机控制方式:系统按作业说明书的规定控制作业的执行。
- 联机控制方式:用户交互式
2.1.1. 脱机命令接口
脱机命令接口由一组作业控制命令组成。 脱机用户不能直接干预作业的运行。系统调度时,由系统中的命令解释程序对作业说明书上的命令逐条解释执行。
2.1.2. 联机命令接口
联机命令接口提供一组键盘命令供用户使用。 键盘命令分为:
- 内部命令:命令简单、短小、使用频繁。在系统初始启动时被引导至内存并常驻。
- 外部命令:独立作为一个文件驻留在磁盘上,需要时从磁盘调入内存。
2.2. 图形用户接口
最常见的人机接口形式。可以认为图形接口是命令接口的图形化。
2.3. 系统调用(程序接口)
系统调用在运行程序和操作系统之间提供接口。
2.3.1. 系统调用处理程序的执行过程
- 为执行系统调用命令做准备
主要工作是保留现场,并把系统调用命令的参数放入指定的存储单元。
- 执行系统调用
根据系统调用命令的编号找到相应子程序的入口地址,然后转去执行。
- 系统调用命令执行后的处理。
主要工作是恢复现场,并把系统调用的返回参数送入指定存储单元。
2.3.2. 系统调用与过程调用的区别
- 运行状态不同:系统调用在核心态下运行,子程序在用户态下运行。
- 进入方式不同:系统调用通过中断机构进入以实现运行状态的改变,子程序直接调用不涉及运行状态改变。
2.3.3. 系统调用的类型
- 进程控制:如创建进程、终止进程、等待事件、唤醒事件分配和释放内存。
- 文件管理:如创建文件、删除文件、打开、关闭、读、写。
- 设备管理:如请求设备、释放设备、读、写。
- 信息维护:如读取时间或日期、设置时间或日期。
- 通信:如创建、删除通信连接,发送、接收消息。
3. 系统程序
多数用户所看到的操作系统是由应用和系统程序所定义的,而不是系统调用所定义。
4. 操作系统结构
操作系统的内核结构主要有三种:
- 模块结构
- 层次结构
- 微内核结构
4.1. 模块结构
模块结构将操作系统内核按照功能划分为一个个独立的模块,模块之间相对独立,只能通过事先规定好的接口方式来调用。 每个模块实现一个完整独立的功能,所有模块之间相互调用,共同构成一个完整的系统内核。 模块结构的特点:
- 效率高
- 全局函数使用多造成访问控制困难
- 结构不清晰,可理解性、可维护性及可移植性差
4.2. 层次结构
操作系统划分为若干层(级),底层(0层)为硬件;最高层( N层)为用户接口。 每层都利用较低层的功能和服务,为较高层隐藏一定的数据结构、操作和硬件的存在。 层次结构的特点:
- 给模块赋予了层次顺序,使调用关系变得有序
- 在上下两层不变的基础上可以换掉某层,便于移植和扩充
- 牺牲了一定的灵活性
4.3. 微内核
微内核结构将操作系统中的内存管理、设备管理、文件管理等高级服务功能尽可能从内核分离出来,变成几个独立的非内核模块 在内核只保留少数最基本的功能,如调度、进程间通信、地址空间支持等,使内核变得简洁可靠。 微内核结构的特点:
- 容易扩充操作系统
- 容易从一种硬件平台移植到另一种硬件平台
- 更安全可靠
- 因系统功能总开销增加导致系统性能下降
本文首发于我的个人博客wangchucheng.com。
原文链接:https://wangchucheng.com/zh/posts/operating-system-concepts-2/
本博客文章除特别声明外均为原创,采用CC BY-NC-SA 4.0 许可协议进行许可。超出CC BY-NC-SA 4.0 许可协议的使用请联系作者获得授权。