#操作系统概念阅读笔记2 ##操作系统结构 ###操作系统服务
- 用户界面(命令行界面和图形用户界面)
- 程序执行
- I/O操作
- 文件系统操作
- 通信
- 错误检测
- 资源分配
- 统计
- 保护和安全
###系统调用
- 什么是系统调用:系统调用,通俗的讲,说的是操作系统提供给用户程序调用的一组“特殊”接口。用户程序可以通过这组“特殊”接口来获得操作系统内核提供的服务,比如用户可以通过文件系统相关的调用请求系统打开文件、关闭文件或读写文件,可以通过时钟相关的系统调用获得系统时间或设置定时器等。
- 系统调用的用途
- 控制硬件—系统调用往往作为硬件资源和用户空间的抽象接口,比如读写文件时用到的write/read调用。
- 设置系统状态或读取内核数据——因为系统调用是用户空间和内核的唯一通讯手段,所以用户设置系统状态,比如开/关某项内核服务(设置某个内核变量),或读取内核数据都必须通过系统调用。
- 进程管理—系统调用接口是用来保证系统中进程能以多任务在虚拟内存环境下得以运行。比如 fork、clone、execve、exit等
- 分类
- 进程控制
- 文件管理
- 设备管理
- 信息维护
- 通信(消息传递模型和共享内存模型)
###结构
- 简单结构 MS-DOS 原始UNIX
- 分层方法构建 将操作系统分成若干层,最底层为硬件,最高处为用户接口。主要优点是在于构造和调试的简单化 主要困难1.对层的详细定义 2.与其他方法相比其效率稍差
- 微内核
- 将所有非基本部分从内核中移走,并将它们实现为系统程序或用户程序。
- 微内核通常包括最小的进程和内存管理以及通信功能
- 主要功能是 使客户程序和运行在用户空间的各种服务之间进行通信
- 好处:1.便于扩充系统 2. 绝大多数服务作为用户执行而不是内核进程执行=》更好的安全性和可靠性
- 缺点:必须忍受由于系统功能总开销的增加而导致系统性能的下降。
- 模块 允许内核提供核心服务,也能动态地实现特定的功能
###系统启动
- 装入内核以启动计算机的过程称为引导系统。
- 绝大多数计算机系统都有一小块代码,它称为引导程序或引导装载程序。这段代码能定位内核,将它装入内存,开始执行。
- 引导程序任务:首先,运行诊断程序来确定及其的状态。如果诊断通过,程序可按启动步骤继续进行。系统的所有部分都可以被初始化,从CPU寄存器到设备控制器,以及内存到内容。最后,操作系统得以启动。
###典型题目
####2.2 列出操作系统提供的五项服务。说明每项服务如何给用户提供便利。说明在哪些情况下用户级程序不能够提够这些服务。
答案:
- a.程序执行.操作系统将一个文件的目录(或章节)装入到内存并运行。一个用户程序不能被信任时(或无执行权限),不能提供
- b.I/O操作. 磁盘,磁带,串行线,和其他装置必须在一个非常低的水平下进行通信。用户只需要指定装置和操作执行要求,然后该系统的要求转换成装置或控制器的具体命令.用户级程序不能被信任时,不能提供。只在操作系统应该获得时获得装置且实用的是那些未被使用的装置时,才会被提供。
- c.文件系统操作.在文件创建、删除、分配和命名时有许多细节是用户不能执行的。磁盘空间块被文件所使用并被跟踪。删除一个文件需要清除这个文件的信息和释放被分派给这个文件的空间。用户程序不仅不能够保证保护方法的有效实施,也不能够被信任,所以只会分配空闲的空间和在删除文件是清空空间。
- d.通信.信息在系统间交换要求信息转换成信息包,送到网络控制器中,通过通信媒介进行传播,并由目的地系统重新组装。信息包调整和数据修改是一定会发生的。此外,用户程序也许不能够协调网络装置的取得,或者接收完全不同的其他进程的信息包。
- e.错误检测.错误检测在硬件和软件水平下都会发生。在硬件水平下,所有数据转移都必须仔细检查以确保数据在运送中不会被破坏。在媒介中的所有数据都必须被检查以确保他们在写入媒介时没有被改变。在软件水平下,为了数据,媒介不需不间断的被检查。例如,确保信息存储中被分配和还未被分配的空间块的数量和装置中所有块的数量的一致。进程独立经常有错误(例如,磁盘中数据的破坏),所以必须有一个统筹的程序(操作系统)来处理各种错误。同样,错误经过操作系统的处理,在一个系统中程序不再需要包含匹配和改正所遇可能错误的代码。
####2.3 讨论向操作系统传递参数的三个主要的方法。
答案:
- 通过寄存器来传递参数
- 寄存器传递参数块的首地址
- 参数通过程序存放或压进堆栈中,并通过操作系统弹出堆栈
####2.5
操作系统关于文件管理的五个主要活动是什么?
答案:
- 创建和删除文件
- 创建和删除目录
- 提供操作文件和目录的原语的支持
- 将文件映射到二级存储器上
- 在稳定(非易失的)的存储媒介上备份文件。
####2.7 命令解释器的用途是什么?为什么它经常与内核是分开的?用户有可能通过使用由操作系统提供的系统调用接口发展一个新的命令解释器?
答案:
- 命令解释器从用户或文件中读取命令并执行,一般而言把他们转化成系统调用。
- 命令解释器通常是不属于内核,因为命令解释器会有所变动。
- 用户能够利用由操作系统提供的系统调用接口开发新的命令解释器。这命令解释器允许用户创建、管理进程和确定它们通信的方法(例如通过管道和文件)。所有的功能都被用户程序通过系统调用来使用,这个也可能有用户开发一个新的命令行解释。
####2.8 通信的两种模式是什么?这两种模式的优点和缺点是什么?
答案:通信的两种模式是1)共享内存,2)消息传递。
这两种模式的最基本的不同是在它们的性能上。一个内存共享块是通过系统调用创建的。然而,一旦内存共享块在两个或更多的进程间建立,这些进程可以借助内存共享块来通信,不再需要内核的协助。另一方面,当send()和receive()操作被调用时,信息传递通常包含系统调用。因此,因为内核是直接的包含在进程间通信的,一般而言,它的影响比内存共享小。然而,消息传递可以用作同步机制来处理通信进程间的行动。也就是说,send()和receive()段可以用来协调两个通信进程的动作。另一方面,内存共享没有提供这种同步机制的进程。
####2.12 采用微内核方法来设计系统的主要优点是什么?在微内核中如何使客户程 序和系统服务相互作用?微内核方法的缺点是什么?
-
优点主要包括以下几点(便于扩充操作系统 绝大多数服务作为用户执行而不是内核进程执行=》更好的安全性和可靠性):
- a)增加一个新的服务不需要修改内核
- b) 在用户模式中比在内核模式中更安全、更易操作
- c) 一个简单的内核设计和功能一般导致一个更可靠的操作系统.
- 用户程序和系统服务通过使用进程间的通信机制在微内核中相互作用,例如发送消息。这些消息由操作系统运送。
- 微内核最主要的缺点是与进程间通信的过度联系和为了保证用户程序和系统服务相互作用而频繁使用操作系统的消息传递功能。(忍受由于系统功能总开销的增加而导致系统性能的下降)
####2.14
操作系统设计员采用虚拟机结构的主要优点是什么?对用户来说主要有 什么好处?
优点:系统是容易被调试的,此外,安全问题也是容易解决的。虚拟机同样为运作体系提供了一个很好的平台,因为许多不同的操作系统只可以在一个物理系统中运行。