操作系统的特征与功能
- 操作系统特征:
- 并发性:指连个或多个在同一时间间隔内发生。
(并行性:两个或多个事件在同一时刻发生。) - 共享性:其管理计算机资源,使得这些资源可以被多个用户、多个应用程序并发地使用,而不是被某个用户或程序独占。
- 虚拟性:操作系统本身是软件,且可以实现“欺骗”用户和应用程序,让它们以为自己独享着整个计算机资源的效果。
- 异步性:在操作系统中,事件的发生及其所产生的后果(如进程的状态变化),在时间上没有固定的先后顺序关系,其执行结果是不可预知的,它取决于系统的运行状态、资源的分配情况以及事件发生的时机。即多个事件的执行顺序是不确定的。
- 现代操作系统其他特征:
- 微内核结构
- 宏(单)内核结构
- 多线程
- 对称多处理机分布式操作系统
- 面向对象设计
- 操作系统功能部件:
- 进程管理
- 主存管理
- 文件管理
- I/O系统管理
- 二级存储器管理——文件空间管理、内存扩展管理
- 网络处理
- 保护系统——身份认证、访问控制(权限检查)、内存保护、隔离进程,保障安全与稳定
- 命令解释系统——就是shell,提供用户友好界面并保护内核
- 操作系统类型:
按功能分(早期):
系统类型 | 批处理系统 | 分时系统 | 实时系统 |
---|---|---|---|
核心目标 | 提高CPU利用率和系统吞吐量 | 为用户提供交互式的快速响应 | 在严格规定的时间限制内对外部事件做出响应 |
设计哲学 | “批量”处理,攒着一堆作业一起处理 | 将CPU时间切成小片,轮流为用户服务 | 时间就是一切,必须在截止时间前完成 |
关键指标 | 吞吐量(单位时间内完成的作业数) | 响应时间(从输入命令到得到结果的时间) | 截止时间(Deadline),可预测性和可靠性 |
用户交互 | 无交互。用户提交作业后,无法干预,只能等待结果 | 有交互。用户通过终端与系统直接对话 | 有限交互或无交互。主要用于过程控制 |
1. 批处理系统 (Batch Processing System)
- 工作方式:用户将一批作业(Job,包括程序、数据和指令)通过磁带、卡片等提交给操作员。操作员将这些作业成批地输入计算机。操作系统自动按一定的调度算法(如先来先服务)逐个执行这些作业。一个作业执行完成后,系统自动调入下一个作业。
- 特点:
- 多道性:内存中同时存放多道作业,交替运行。
- 无交互性:用户提交作业后即脱离计算机,无法干预作业运行。
- 顺序性:作业按提交的顺序依次完成。
- 例子:早期的大型机系统,用于处理科学计算、工资报表等不需要人工干预的任务。
2. 分时系统 (Time-Sharing System)
- 工作方式:一台主机连接了多个终端(键盘和显示器)。操作系统以极短的时间(如100毫秒)为单位,将CPU时间轮流分配给每个终端用户。由于CPU速度极快,每个用户都感觉好像自己独占了整个计算机。
- 特点:
- 交互性:用户可以通过终端与系统进行人机对话。
- 独立性:多个用户彼此独立,互不干扰。
- 同时性(多用户性):宏观上,多个用户同时使用计算机。
- 例子:Unix、Linux 是最经典的分时系统。现代的服务器、云计算平台也基于分时理念,为多个用户提供计算服务。Windows/macOS的命令行终端也是分时系统。
3. 实时系统 (Real-Time System)
- 工作方式:计算机能及时响应外部事件的请求,在严格规定的时间限制(Deadline) 内完成对该事件的处理,并控制所有实时任务协调一致地运行。
- 分类:
- 硬实时系统:必须在绝对严格的规定时间内完成响应。错过截止时间可能导致灾难性后果。
- 例子:导弹制导系统、汽车安全气囊控制系统、医疗生命维持系统。
- 软实时系统:希望能在规定时间内响应,偶尔错过截止时间是可以接受的,只会导致性能下降,不会导致致命错误。
- 例子:视频流媒体、视频会议(偶尔卡顿可以接受)、工业控制系统(部分)。
- 硬实时系统:必须在绝对严格的规定时间内完成响应。错过截止时间可能导致灾难性后果。
- 特点:
- 及时性:响应时间有明确和严格的要求。
- 高可靠性:系统必须安全可靠,常采用冗余设计。
- 可预测性:系统的行为和响应时间必须是可预测的。
特性维度 | 批处理系统 | 分时系统 | 实时系统 |
---|---|---|---|
主要目标 | 高吞吐量,高资源利用率 | 对用户请求快速响应 | 在规定时限内完成处理 |
作业控制 | 由JCL(作业控制语言)预先设定 | 用户通过终端交互式控制 | 由外部事件驱动,系统自动控制 |
响应时间 | 不关心,几小时或几天 | 秒级(< 3秒) | 毫秒级甚至微秒级,有严格截止时间 |
交互性 | 无 | 强 | 弱或无(与外部环境交互) |
可靠性 | 一般 | 一般 | 非常高(尤其是硬实时系统) |
主要应用 | 科学计算、后台报表处理 | 通用计算、服务器、软件开发 | 工业控制、航空航天、嵌入式系统 |