2-1 计算机硬件
1.计算机系统体系结构
2.设备控制器
①I/O设备与CPU可并行执行(execute concurrently)
②每一设备控制器负责一个设备类型
③每一设备控制器有一局部缓存(CPU与I/O交互)
③CPU通过局部缓存与主缓存交换数据
④I/O从设备到设备控制器的局部缓存
⑤设备控制器通过引起中断来通知CPU的操作已经完成
3.中断定义:
①硬件中断(hardware interrupt)device controller informs CPU that it has finished its operation by causing an interrupt.(disk, timer)
②软件中断(software interrupt)
a trap(or an exception) 如division by zero,invalid memory access
a system call 系统调用 (also called a monitor call) 如read(),write()
4.中断将控制权转移到中断服务程序
①separate segments of code determine what action should be taken for each type of interrupt.
②a generic routine to examine the interrupt information, and in turn call the specific handler.
③through the interrupt vector, which contains the address of all the service routines.
5.I/O 结构
6.I/O Interrupt
两种I/O操作:
①同步 synchronous: after I/O starts, control returns to user program only upon I/O completion.
②异步 asynchronous: after I/O starts, control returns to user program without waiting for I/O completion.
2-2 硬件保护
1.Dual-Mode Operation 两状态操作
①共享系统资源要求操作系统确保错误程序不会引起其他程序的运行错误。
②至少在两个运行状态之间提供硬件支持和保护
User mode 用户态--代表用户执行
Monitor mode(also supervisor mode or system mode) 管态(核心态、特权模式或系统模式)--代表操作系统执行
2.mode bit 模式位
①模式位添加到计算机硬件,表示当前模式。
②系统引导时,硬件处于管态;在用户模式下执行用户进程。当出现中断或陷阱时,硬件切换到管态。
3.特权指令(privileged instructions)
①特权指令只能在管态下运行
②在用户态下使用特权指令:使用系统调用(软件中断),切换到管态
③在管台下:直接运行。
4.I/O保护
①所有I/O指令都是特权指令。用户不能直接用I/O指令,必须用过系统调用,可以确保用户程序不能在管态下控制计算机。
②必须保护内存,必须保护中断向量和中断服务(在内存中)。
③保护的方法:确定进程能访问的合法空间(进程地址和空间)
base register 基址寄存器 --->指向起始地址
limit register 界限寄存器 --->指向长度
上述两者合作确定了进程的合法工作范围,实现内存保护。base register和limit register的操作都是特权指令,用户指令无法操作它们。
④用户态下生成的每个地址都要经过硬件检查。
5.CPU保护
问题:需防止用户程序陷入死循环或者不调用系统服务且不将控制权返回到OS
方法:timer定时器
管态转到用户态时,设定定时器。当定时器到固定时间时,定时器触发中断操作,一旦触发中断则陷入操作系统,操作系统重新获得控制权。
2-3 操作系统服务
1.对用户来说:
①用户接口(user interface),如 Command Line(CLI), Graphics User Interface(GUI), batch(批处理)
②程序执行(program execution)
③I/O Operation,如 system call
④File-system manipulation
⑤Communication, 进程之间交换信息,通过共享存储器或消息传递实现
⑥Error detection
⑦其他操作系统服务
2.总结操作系统服务:
①资源分配(Resource Allocator):把资源分配给多个用户或者多个同时运行的作业。
②账务(Accounting):跟踪和记录用户对资源的使用,用户账单和统计。
③保护(Protection):确保对资源的所有访问均在控制中。
2-4 系统调用 system call
1.定义
系统调用提供在运行程序和操作系统之间的接口。通常以汇编语言指令形式提供,也有C、C++形式。
2.现今常用API
①win32 API for windows
②POSIX API for POSIX based systems (UNIX, Linux, MacOS)
③Java API for Java virtual machine
3.系统调用过程
①用户使用系统调用,产生一条相应的指令。
②CPU执行到该指令是发生中断,发出有关信号给陷入处理机构。
③处理机构收到信号后,启动相关程序去完成该系统调用所要求的功能。
④在处理系统调用之前,陷入处理机构还需要保存处理现场。
4.入口地址表
①入口地址表,每个入口地址与相应的系统程序对接。
②陷入处理程序用系统调用功能号查找入口地址表,得到该系统程序的入口地址,并执行。
③系统调用结束后,要恢复现场,从而用户程序可以继续执行。
下图为系统调用来进行I/O任务
5.三种常用方式用于运行程序和操作系统之间:
①寄存器中的参数传递
②参数存于内存的一张表中,表地址作为寄存器的参数传递
③程序吧参数压入栈,由操作系统弹出
6.Types of System Calls 分类
①进程的控制 process control
②文件的管理 file management
③设备管理 device management
④信息维护 information maintenance
⑤通信 communications
2-5 操作系统结构
1.MS-DOS层次结构
①以最小空间提供最多功能,结构简单。特点是不划分模块,接口与功能层没有划分清楚。
2.简单结构
内核 the kernel.
包括在物理硬件之上,系统调用之下的一切,提供文件系统、CPU调度、存储管理,每一层都有大量功能。
3.层次化结构
①操作系统分为若干层,在低层上构建高层,底层(0层)为硬件,最高层(N层)为用户层。考虑模块层,层的选择是每层只使用其底层所提供的功能和服务。
②分层的原则:每一层都是用其底层所提供的功能和服务,以便系统调试和验证。
困难:层次划分,保证不出现双向依赖关系。
③实例:THE OS的层次化结构
优点:
- 底层和高层可分别实现(便于扩充);
- 高层错误不会影响低层,便于调试,利于功能的增删改;
- 调用关系清晰(高层对低层单向依赖),避免递归调用,有利于保证设计和显示的正确性。
缺点:系统中所有进程的控制转移、通讯等全部任务交给系统核心管理,花费一定代价。
4.Microkernels
①通过划分系统程序,把所有不必要的部件移出内核,形成小内核。
②微内核提供最少量的进程管理、存储管理以及通信功能。
③操作系统由两大部分组成:运行在核心态的内核、运行在用户态并以C/S方式运行的进程层。
④典型系统如MACH和Windows NT
⑤微内核的特点:
- 内核精巧。提供任务管理、内存管理、进程通信
- 面向多处理机和分布式系统
- 基于C/S体系结构
本文知识以及部分图片来源:慕课_操作系统原理_田丽华
网址:https://www.icourse163.org/learn/XJTU-1003409001?tid=1206408203#/learn/content