第二章 操作系统结构
用户界面(一种是命令行界面;另一种是批界面,最为常用的是图形用户面)、程序执行、I/O操作、文件系统操作、通信、错误检测、资源分配、统计、保护和安全。
命令解释程序(CLI)、图形用户界面(GUI)
获取并执行用户指定的下一条指令。
操作系统内核提供一系列预定功能,通过一组称为系统调用的接口呈现给编程人员,系统调用把应用程序的请求传给内核,系统调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。
通过寄存器来传递参数。
若参数数量比寄存器多,参数通常存在内存的块和表中,并将块的地址通过寄存器来传递。
参数也可以通过程序放在或压入堆栈中,并通过操作系统弹出。
文件管理、状态信息、文件修改、程序语言支持、程序装入和执行、通信。
设计目标需求:用户目标和系统目标
机制和策略:机制决定如何做,策略决定做什么
简单结构、分层方法、微内核、模块、虚拟机
MS-DOS、原始的UNIX操作系统
定义:操作系统分成若干层(级)。最底层(层0)为硬件,最高层(层N)为用户接口。
微内核方法将所有非基本部分从内核中移走,并将它们实现为系统或用户程序,这样得到了更小的内核。
微内核的主要功能是使客户程序和运行在用户空间的各种服务之间进行通信。
大多数现代操作系统实现内核模块:
采用面向对象的方法
每个核心组件是分开的
每部分与已知接口的其他部分通信
每部分根据需要加载到内核
总之,类似于层,但更灵活。
虚拟机(VirtualMachine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
2.3
1.最简单的是通过寄存器来传递参数。
2.当参数数量比寄存器多的时候,参数通常存在内存的块和表中,并将块的地址通过寄存器来传递。
3.参数可以通过程序放在或压入堆栈中,并通过操作系统弹出。
2.6
优点:只要是一个在文件系统的文件,每一个设备都可以被得到。因此大多数内核通过文件接口处理设备,加一个新的设备通过执行硬件确定代码来支持这种抽象的文件接口相对容易。因此,这种方式不仅有利于用户程序代码的发展,用户程序代码可以用相同的方式被写入设备和文件,还有利于设备驱动程序代码,设备驱动程序代码可以书面支持规范定义的API。
缺点:很难获得某些设备档案存取的API范围内的功能,因此结果是丢失功能或者性能。但通过使用ioctl(IO控制函数)操作有些能够被克服,这个操作为了进程在设备上援引操作提供一个通用接口。
2.7
作用:获取并执行用户指定的下一条指令。
与内核分开的原因:因为命令解释会有所变动,所以它通常不属于内核。
可能吗:可能。命令解释器允许用户创建、管理进程和确定它们通信的方法(例如通过管道和文件)。所有的功能都被用户程序通过系统调用来使用,用户也有可能开发一个新的命令行解释器。
2.12
微内核优点:易扩展,更容易将操作系统连接到新架构,更可靠(更少的代码运行在内核模式),更全。
用户程序和系统服务在微内核结构内如何相互影响:用户程序和系统服务通过使用进程件的通信机制在微内核中相互作用,例如发送消息,这些消息由操作系统运送。
微内核缺点:用户空间与内核空间通信的性能开销增大。
2.13
相似点:采用面向对象的方法,每个核心组件是分开的,每个人在已知的接口上与其他人交流,在内核中根据需要被加载
不同点:分层方法操作和服务在底层被选择,模块化内核更加灵活。
2.14
系统易被调试,安全,多个操作系统可以在一台机器上运行。
1.
两种操作系统服务:提供对用户很有用的函数;提供确保系统本身高效运行的函数。
2.
对用户提供服务的接口:命令行界面CLI,图形用户界面GUI
3.
系统调用的概念:操作系统内核提供一系列预定功能,通过一组称为系统调用的接口呈现给编程人员,系统调用把应用程序的请求传给内核,系统调用相应的内核函数完成所需的处理,将处理结果返回给应用程序。
4.
系统调用参数传递的三种方法:a.最简单的是通过寄存器来传递参数。b.当参数数量比寄存器多的时候,参数通常存在内存的块和表中,并将块的地址通过寄存器来传递。c.参数可以通过程序放在或压入堆栈中,并通过操作系统弹出。
5.
操作系统设计和实现:略