OS_development
OS的发展
- 手工操作阶段
缺点: 用户独占全机、人机速度矛盾导致资源利用率极低 - 批处理阶段:
- 单道批处理系统
- 引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入、输出
其中监督程序是操作系统的雏形 - 主要优点: 缓解了一定程度的人机速度矛盾,资源利用率有所提升。
- 主要缺点: 内存中仅仅有一道程序运行,只有该程序运行结束后才能调入下一道程序。CPU有大量时间在空闲等待I/O完成。 资源利用率依然很低
- 引入脱机输入/输出技术(用磁带完成),并监督程序负责控制作业的输入、输出
- 多道批处理系统
- 每次往内存中输入多道程序,操作系统诞生,并引入了中断技术,由操作系统负责管理这些程序的运行。各个程序并发执行
主要优点: 多道程序并发执行,共享计算机资源。资源利用率大幅提升,CPU和其他资源保持“忙碌”状态,系统吞吐量增大。
缺点:用户响应时间长,没有人机交互功能(用户提交自己作业后只能等待计算机处理完成,中间不能控制自己的作业执行)
eg. 处理3个输入都是1s,计算需要1s,输出需要1s,采用单道处理为9s,采用多道在计算作业2时,可以输入作业1,因此只需要5s就可以完成作业。
- 每次往内存中输入多道程序,操作系统诞生,并引入了中断技术,由操作系统负责管理这些程序的运行。各个程序并发执行
- 分时操作系统
- 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可以通过终端与计算机进行交互。
- 优点:用户请求可以被及时响应,解决人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在
- 缺点:不能优先处理一些紧急任务。对各作业/用户完全公平
- 实时操作系统
- 优点:能够优先响应一些紧急任务,某些紧急任务不需要时间片排队
在实时操作系统的控制下,计算机系统接收到外部系统后及时进行处理,并且要在严格的时限内处理完事件。实时操作系统的主要特点是及时性和可靠性。 - 硬实时系统:必须在绝对严格的规定时间内完成处理 如:导弹控制系统、自动驾驶系统
- 软实时系统:能够接受偶尔违反时间规定 如:12306火车订票系统
- 优点:能够优先响应一些紧急任务,某些紧急任务不需要时间片排队
- 了解
- 网络操作系统:伴随着计算机网络的发展而诞生,能把网络中各个计算机有机的结合起来,实现数据传送功能,实现网络中各个资源的共享(如文件)和各台计算机之间的通信。(Windows NT就是典型的网络操作系统,网站服务器就可以使用)
- 分布式操作系统:主要特点是分布式和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由他们并行、协同完成这个任务。
- 个人计算机操作系统:Windows XP、MacOS
- 单道批处理系统
系统调用
生活场景:打印论文,第一个同学在打印一半,第二个同学点击开始打印。
为避免混淆:操作系统提供系统调用功能,用户进程想要使用打印机这样的共享资源,只能通过系统调用向操作系统发出请求。操作系统会对各个请求进行协调管理。
- 作用
- 应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
- 系统调用分类(按功能分): 凡是与资源有关的操作、会直接影响到其他进程的操作,一定需要操作系统介入,即需要通过系统调用来实现
- 设备管理:完成设备的 请求/释放/启动/ 等功能
- 文件管理:完成文件的 读/写/创建/删除 等
- 进程控制:完成进程的 创建/撤销/阻塞/唤醒 等
- 进程通信:完成进程间的 消息传递/信号传递 等
- 内存管理:完成内存的 分配/回收 等
- 系统调用相关处理涉及到对系统资源的管理、进程的控制,这些功能需要执行特权指令才能完成,因此系统调用的相关处理需要在核心态下进行
- 背后过程
高级语言 --> 编译 --> 汇编语言
系统调用: write() --> 将参数放入寄存器,执行陷入指令- 传递系统调用参数
- 执行陷入指令
- 执行系统调用相应服务程序
- 返回用户程序
系统调用发生在用户态,对系统调用的处理发生在核心态
执行陷入指令会产生内中断,使处理器从用户态进入核心态