源文件-------------->目标文件
系统调用顺序:
|获取输入文件名
屏幕输入提示
接收输入
|获取输出文件名
屏幕输入提示
接收输入叫
|打开输入文件
如果文件不存在,放弃
创建输出文件…
如果文件存在,放弃
循环
写入输出文件
|直到读取失败
|关闭输出文件
|将完成信息输出到屏幕
正常结束
- 2.6 操作系统的设计和实现
- 2.6.1 设计目标
- 系统设计的第一个问题是定义系统的目标和规格。在最高层,系统设计受到硬件选择和系统类型的影响:批处理、分时、单用户、多用户、分布式、实时或通用目标。
- 除了最高设计层,这些要求可能难以描述。需求可分为两个基本类:用户目标和系统目标。
- 2.6.2 机制和策略
- 区分
- 机制决定如何做
- 策略决定做什么 策略可能会随时间或者位置有所改变。
- 区分
- 2.6.3实现
- 2.6.1 设计目标
- 2.7 操作系统结构
- 2.7.1 简单结构
- MS-DOS层次结构
- UNIX系统结构
- 2.7.2 分层方法
- 分层操作系统 分层的主要优点在于构造和调试的简单化。
- 2.7.3 微内核
- 将所有非基本部分从内核中移走,并将它们实现为系统程序和用户程序。
- 微内核主要功能是使客户程序和运行在用户空间的各种服务之间的通信。
- 好处: 便于扩充操作系统,所有新服务可以在用户空间增加。
- 2.7.4 模块
- 用面向对象编程技术生成模块化的内核
- 2.7.1 简单结构
- 2.9 系统生成
- 能运行在一类计算机上,这些计算机位于不同的场所,并具有不同的外设配置。对于某个特定的计算机场所,必须要配置和生成系统,这一过程有时称为系统生成(system generation,SYSGEN)。
- 2.10 系统启动
- 在生成操作系统之后,它必须要为硬件所使用。但是硬件如何知道内核在哪里,或者如何装入内核?装入内核以启动计算机的过程称为引导系统。绝大多数计算机系统都有一小块代码,它称为引导程序或引导装载程序。这段代码能定位内核,将它装入内存,开始执行。有的计算机系统,如个人计算机,采用两步完成:一个简单的引导程序从磁盘上调入一个较复杂的引导程序,而后者再装入内核。
- 2.11 操作系统的调试
- 查找和更正系统错误,也包括性能优化
- 操作系统会将错误信息写到一个日志文件,也会进行核心转储,即进程内存的捕获。
- 内存故障称为崩溃,crash当发生崩溃时,错误信息会保存到一个日志文件,并且内存状态会保存到一个崩溃转储。
- 2.4 系统调用类型
- 2.5 系统程序
- 内核程序和核外程序
- 系统程序和应用程序(应用程序又称为系统工具)
- 使用应用程序接口API
- 2.3 系统调用 system call
- 提供了操作系统提供的有效服务界面
- 如下,一个简单的程序也会大量的使用操作系统,通常,系统每秒执行数千个系统调用
- 2.2 操作系统的用户界面
- 2.1 操作系统服务
- 操作系统提供一个环境以执行程序。它向程序和这些程序的用户提供一定的服务。当然,所提供的具体服务随操作系统而不同,但还是有一些共同特点。这些操作系统服务方便了程序员,使得编程更加容易。
- 一组操作系统服务提供对用户很有用的函数:
- 用户界面(user interface,UI)
- 命令行界面CLI
- 图形用户界面GUI
- 程序执行
- I/O操作
- 文件系统操作
- 通信
- 错误检测
- 用户界面(user interface,UI)