1 计算机硬件
(1)计算机系统体系结构
(2)计算机系统操作
- I/O设备与CPU可并行运行
- 每一设备控制器负责一个设备类型
- 每一设备控制器有一局部缓存
- CPU 通过局部缓存与主存交换数据
- I/O从设备到设备控制器的局部缓存
- 设备控制器通过引起中断通知CPU操作已完成
中断机制
①硬件中断
②软件中断:异常/系统调用
现代操作系统是中断驱动的,中断将控制权转移到中断服务程序
(3)I/O设备
结构
①设备与设备控制器相连
②本地缓冲器/一组寄存器
③设备驱动程序
I/O中断:同步和异步两种方式
①同步方式:I/O启动后,直到I/O完成工作,控制权转回到用户程序。
②异步方式:I/O启动后,控制权转回到用户程序,不需要等待I/O运行结束。
2 硬件保护
多用户环境,需要保护磁盘上的文件、数据。当发生以下情况时,硬件会陷入到OS:
①非法指令:或访问不属于自己的地址空间内存。
②进程终止。
(1)两种状态操作
基础前提:①共享系统资源要求操作系统确保有误程序不会引起其他程序的运行错误;②至少在两个运行状态之间提供硬件支持。
用户态:代表用户执行
管态(特权模式或系统模式):代表操作系统执行
(2)I/O保护
① 所有的I/O指令都是特权指令,用户不能直接用i/o指令,必须通过系统调用
② 确保用户程序不能在管态下控制计算机
(3)内存保护
①必须保护中断向量和中断服务程序
确定进程能访问的合法空间:基址寄存器/界址寄存器
若进程访问非法地址,则会中断进程,控制权转回OS;用户态下所生成的每个地址都要经过审查。
(3)CPU保护
防止用户程序陷入死循环或者不调用系统服务且不将控制权返回到OS:timer定时器(设定计时器以便产生中断),定时器中断,控制权会返回给OS
3 操作系统服务
设计操作系统时,需要考虑的东西:①提供的服务,②为用户和程序提供接口,③各组成部分及其相互连接
(1)OS为用户提供的服务
①用户接口
②程序执行
③I/O操作:由于用户不能直接执行I/O操作,操作系统必须提供手段完成I/O操作。
④文件系统操作:文件系统操作-读、写、创建和删除文件的能力。
⑤通信:运行的进程在同一计算机或由网络连接的不同系统中交换信息。通过共享存储器或消息传递实现。
⑥错误检测:探测在CPU与内存硬件中,在I/O设备中,或在用户程序中的错误,确保正确运算。
⑦其他服务:资源分配(把资源分配给多个用户或多个运行的作业)、账务(跟踪和记录用户对资源的使用,用于账单和统计)、保护(确保对资源的所有访问均在控制中)等
4 系统调用
系统调用(System calls):系统调用提供在运行程序和操作系统之间的接口。通常以汇编语言指令形式提供,替代汇编语言的、供系统编程的语言,允许直接使用系统调用。
①:当用户使用系统调用时,产生一条相应的指令。
②:CPU在执行到该指令时发生中断,发出有关的信号给陷入处理机构。
③:处理机构在收到了CPU发来的信号后,启动相关的处理程序去完成该系统调用所要求的功能。
④:在处理系统调用之前,陷入处理机构还需保存处理机现场(PSW、PC、系统调用号、用户栈指针、通用寄存器、用户定义的参数等)。
(1)如何找到实现系统调用功能的子程序:
①入口地址表,每个入口地址与相应的系统程序对应。
②陷入处理程序用系统调用功能号查找入口地址表,得到该系统程序的入口地址,并执行之。
③系统调用处理结束后,要恢复处理机现场,从而用户程序可以继续执行。
(2)运行程序和操作系统间的参数传递(3种常用)
①寄存器中的参数传递
②参数在内存的一张表中,表地址作为寄存器的参数传递
③程序把参数压入栈,由操作系统弹出
(3)系统调用的类型
①进程控制process control:包括分配和释放内存including allocate and free memory
②文件管理file management
③设备管理device management
④信息维护information maintenance
⑤通信communications
5 操作系统结构
(1)简单结构:
MS-DOS-以最小的空间提供最多的功能
- 不划分模块
- 尽管MS-DOS有某种结构,其接口和功能层并没有划分清楚
MS-DOS层次结构:应用程序可直接访问BIOS例程,来直接操纵设备,当然这受限于当时
的硬件,intel8088没提供双模式和硬件保护,这使得DOS别无选择只能任由应用程
序访问BIOS.
UNIX :受硬件功能限制,早期UNIX只是有限的结构化。UNIX包括2个分离的部分
- Systems programs 系统程序
- The kernel 内核
The Kernel:
①包括:包括了在物理硬件之上,系统调用之下的一切。
②提供:提供文件系统, CPU调度,存储管理,和其他操作系统功能 ;每一层有大量的功能。
(2)层次化结构
①操作系统划分为若干层,在低层上构建高层。低层(0层)为硬件;最高层(N层)为用户层。
②考虑模块化,层的选择是每层只使用低层次的功能和服务。
分层的基本原则:每一层都使用其底层所提供的功能和服务,以便于系统调试和验证。
困难:层次的划分和安排,要保证不出现双向依赖关系。
(3)微内核
典型系统如MACH和Windows NT,操作系统由两大部分组成:运行在核心态的内核,运行在用户态并以C/S方式运行的进程层。
基于微内核结构的 OS 和传统 OS 相比,具有以下特点:
①内核精巧。通常内核只由任务管理、虚存管理和进程间通信3个部分组成。传统OS内核中的许多部分都被移出内核, 采取服务器方式实现;
②面向多处理机和分布式系统。基于微内核的OS,在内核中引入了多处理机调度和管理机制,并引入了细粒度并发机制——线程,使得多个处理机可以在同一个任务中并行地执行;
③基于客户/服务器体系结构。在微内核结构的OS中,任务间通信机制—— 消息机制是系统的基础,OS的各种功能都以服务器方式实现,向用户提供服务。用户对服务器的请求是以消息传递的方式传给服务器的。