功能需求与设计目标
功能性需求
OS的功能性需求主要有两大类:
- 用户命令:计算机用户需要使用用户命令进行操作,OS及其工具提供的用户命令构成用户接口(interface)。
- 系统调用(system call):应用软件通过系统调用使用OS提供的内核服务。系统调用接口是应用编程接口(API, Application Programming Interface)的一部分,但库API不一定需要系统调用。
知识测验
题目
关于API与系统调用,哪项正确?
非功能性需求
OS的非功能性需求主要包括:
- 性能 / 效率(performance / efficiency):提高系统吞吐量(throughput)、缩短响应时间(response time),在分时系统情况下需要满足尽量多的用户。
- 公平性(fairness):OS中的算法应按合理策略分配资源,但在某些时候,如实时系统,需要优先及时响应外部事件。
- 可靠性(reliability)。
- 安全性(security)。
- 可伸缩性(scalability):能够适应不同规模的负载和硬件配置。
- 可扩展性(extensibility):OS能够适应新增的外部设备。
- 可移植性(portability):不能仅限于某一个平台或某一个厂家生产的硬件设备。
互动实验
响应性与切换成本
访问权限免费
A、B均在0时刻到达,各需8毫秒CPU时间。单CPU轮流执行,每次切换耗时0.5毫秒,首次派发与最终完成不计成本。B首次获得CPU的时间用作响应指标。
- B首次服务
- 4.5 ms
- 有效CPU比例
- 91.4%
- 作业吞吐量
- 114.3 作业/秒
4毫秒时间片下,B在4.5毫秒后首次执行。两个任务都获得8毫秒有效CPU时间,灰色区间为开销。
知识测验
题目
调度器让紧急控制任务优先于后台任务。应如何判断?
动手练习
认识操作系统的需求
区分操作系统的功能与品质。
- 用户命令与系统调用属于功能性需求还是非功能性需求?
- 将响应更快、支持新增设备、支持不同硬件平台分别与性能、可扩展性、可移植性对应。