OS的目标
- 操作系统是控制应用程序执行的
程序
- 操作系统是应用程序和计算机硬件间的接口
- 作为用户/计算机接口:
- 操作系统为程序员屏蔽了硬件细节,并为程序员使用系统提供了方便的接口
用户接口(命令接口):
由操作系统实现的所有用户命令
的集合
(1)联机用户接口(交互式命令接口):
用户与系统进行交互,用户输入程序执行之后等待用户继续输入
(2)脱机用户接口:
用户提前编好命令,系统自动运行用户接口(图形接口):
系统为用户提供的便于操作的图形化界面应用编程接口(API):
由操作系统实现的所有系统调用
的集合
- 系统调用和库函数的区别和联系:
- 库函数是编程语言或应用程序的一部分,可以运行在
用户空间
中- 系统调用是操作系统的一部分,是内核提供给用户的程序接口,运行在内核空间中
- 许多库函数都会使用系统调用来实现其功能
- 没有使用系统调用的库函数,执行效率通常比系统调用高,因为使用系统调用时,需要上下文的切换和状态的转换(由用户态转向核心态)
- 各个操作系统的系统调用是不同的,因此系统调用一般没有跨操作系统的可移植性,而库函数的可移植性好
- 作为资源管理器:
- 操作系统和普通的计算机软件的作用相同,即它是由计算机执行的一段程序或一组程序
- 操作系统经常会释放控制,而且必须依赖
处理器
才能恢复控制- 操作系统控制处理器使用其他系统资源,并控制其他程序的执行时机
- 处理器要做任何一件类事情,都必须停止执行操作系统程序,而去执行其他程序
OS的发展
- 串行处理:
- 串行处理中无操作系统
- 串行处理中用户必须顺序访问计算机
- 单道批处理系统:
中心思想:
使用监控程序
(1)监控程序是一段控制用户程序执行的程序
(2)监督程序驻留在内存中并且可被处理器执行- 基本思路:
(1)监控程序每次从输入设备中读取一个作业
(2)读入后,当前作业被放置用户程序区域,并且把控制权交给这个作业
(3)作业完成后,它将控制权返回给监控程序,监控程序立即读取下一个作业- 对于批处理操作系统来说,用户程序和监控程序交替执行
- 即使简单批处理系统提供自动地作业序列,处理器仍然经常处于空闲状态,问题在于I/O设备相对于处理器而言速度太慢
- 多道批处理系统:
- 单道程序设计:
- 处理器在继续执行前必须等待I/O指令的完成,因此处理器执行效率很低
- 在单道程序设计中,一个程序独占处理器和内存资源
- 多道程序设计(多任务处理):
- 允许多个程序同时准备运行
- 当正在运行的程序因某种原因(如
等待输入
)暂时不能继续运行时,系统将自动地启动另一道程序运行- 一旦原因消除(如
数据已经到达
),暂停运行的那道程序在将来某个时候还可以被系统继续运行- 特征:
(1)多道性:
在内存中可同时驻留多道程序,并允许它们并发执行
,从而有效地提高了CPU和I/O设备的利用率
和系统的吞吐量
(2)无序性:
多个作业完成的先后顺序与它们进入内存的顺序之间没有严格的对应关系
(3)调度性:
作业提交给系统开始直到完成,需要经过作业调度和进程调度
- 硬件支持:
支持I/O中断
和直接存储器访问
(1)通过中断驱动的I/O
或DMA
,处理器可为一个作业发出I/O命令,设备控制器执行I/O操作时,处理器执行另一个作业
(2)I/O操作完成后,处理器被中断,控制权传递给操作系统中的中断处理程序,然后操作系统把控制权传递给另一个作业
- 多重处理(多道处理):
- 多重处理系统配置多个
CPU
, 能真正同时
执行多道程序- 多重处理 vs 多道处理:
(1)多道程序设计是作业之间自动调度执行、共享系统资源,并不是真正地同时执行多个作业
(2)多重处理系统配置多个CPU
,能真正同时执行多道程序
(3)要有效使用多重处理,必须采用多道程序设计技术
(4)多道程序设计原则上不一定要求多处理系统的支持
- 分时系统:
- 批处理系统中,作业执行时用户无法干预其运行,智能通过事先编制作业控制说明书来间接干预,缺少交互能力
- 分时系统提供了一种用户直接与计算机交互的模式
- 分时: 多个
用户
分享处理器时间- 在分时系统中,多个用户可以通过终端同时访问系统,由操作系统控制每个用户程序
- 分时系统的特征:
多路性、独立性、及时性、交互性
现代OS
- 分类:
- 按硬件平台划分:
单机OS
、并行OS
、网络OS
、分布式OS
- 按功能划分:
批处理系统
、分时系统
、实时系统
- 特征:
任务并行:
(1)宏观: 多个任务同时运行
(2)微观: 任务并发(单处理器
)或任务并行(多处理器
)资源共享:
(1)宏观: 多个任务可以同时
使用系统中的软硬件资源
(2)微观: 多个任务可以交替互斥地
使用系统中的某个资源