




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 1 2 在裸机上配置了操作系统程序后就构了操作系统虚拟机。 操作系统的核心在裸机上运行; 用户程序在扩充后的机器上运行。 裸机裸机 作作系系 统统 应应 程程 序序 用用 序序 程程 用用 户户 操操 扩扩 充充 后后 机机 器器 的的 3 操作命令操作命令 (又称命令接口又称命令接口) 作业控制语言 键盘命令 图形化用户界面 系统功能调用系统功能调用(又称程序接口又称程序接口) 机器指令机器指令 4 单体结构单体结构 模块化结构模块化结构 可扩展内核结构可扩展内核结构 层次结构层次结构 应用软件应用软件 其他系统软件其他系统软件 操作系统其他功能操作系统其他功能 操 作 系 统 内核 应用
2、软件应用软件 其他系统软件其他系统软件 操作系统其他功能操作系统其他功能 操 作 系 统 内核内核 5 内核内核 操 作 系 统 应用软件应用软件 其他系统软件其他系统软件 操作系统其他功能操作系统其他功能 内核内核 核心功能核心功能 基础核心基础核心 操 作 系 统 应用软件应用软件 其他系统软件其他系统软件 操作系统其他功能操作系统其他功能 内核内核 6 7 UNIX核心层核心层 处理机管理 存储管理 设备管理 文件系统 UNIX实用层实用层 实用程序 编辑程序、调试程序、系统状态监控、文 件管理等的实用程序 软件工具 源代码控制程序SCCS、文档准备程序包等 8 系系 统统 调调 用用
3、界界 面面 程程 序序 库库 进程通信进程通信 进程调度进程调度 存储管理存储管理 文件子系统文件子系统 高速缓冲高速缓冲 字符设备字符设备 块设备块设备 设备驱动程序设备驱动程序 用户程序用户程序 硬硬 件件 控控 制制 硬硬 件件 用户级用户级 核心级核心级 硬件层硬件层 进程管理与存储管理进程管理与存储管理 网络管理网络管理 网络协议网络协议 网络驱动网络驱动 9 系统虚拟机系统虚拟机 32位位Windows 应用程序应用程序 32位位Windows 应用程序应用程序 16位位Windows 应用程序应用程序 16位位Windows 应用程序应用程序 Windows 子系统子系统 Win
4、dows Kernel Windows GDI Windows User MS DOS 虚拟机虚拟机 MS DOS 虚拟机虚拟机 MS DOS 虚拟机虚拟机 可安装的文件系统管理程序可安装的文件系统管理程序 32位位 FAT CD-ROM 文件系统文件系统 网络重网络重 定向程序定向程序 块块 I/O 子系统子系统 主存管理 调度程序 Vxds服务及动态装入程序 MS DOS VM 管理程序 设备驱动程序: 键盘、显示器、鼠标、 通信及其他 第第 3 环环 组组 件件 第第 0 环环 组组 件件 文件管理子系统文件管理子系统虚拟机管理子系统虚拟机管理子系统 共享的地址空间共享的地址空间 10
5、系统中有两类程序系统中有两类程序 管理程序管理程序 用户程序用户程序 管理系统资源管理系统资源 使用资源,提出申请使用资源,提出申请 控制程序运行控制程序运行 被控制被控制 中央处理机的工作状态,当前它正在执行哪类程序,决定中央处理机的工作状态,当前它正在执行哪类程序,决定 处理机的态。处理机的态。 11 操作系统的管理程序执行时机器所处的状态。使用全部指 令(包括一组特权指令);使用全部系统资源(包括整个存储 区域)。 用户程序执行时机器所处的状态。在此状态下禁止使用特 权指令,不能直接取用资源与改变机器状态,并且只允许 用户程序访问自己的存储区域。 操作系统的程序执行操作系统的程序执行 用
6、户程序执行用户程序执行 使用全部指令使用全部指令 禁止使用特权指令禁止使用特权指令 使用全部系统资源使用全部系统资源 只允许用户程序只允许用户程序 (包括整个存储区域包括整个存储区域) 访问自己的存储区域访问自己的存储区域 12 13 不分态不分态 3环环 用户态用户态 0环环 系统态系统态 还有还有1、2环预留环预留 00 核态核态 01 管态管态 11 用户态用户态 14 所谓中断是指某个事件所谓中断是指某个事件 (例如例如 电源掉电、定点加法溢出或电源掉电、定点加法溢出或 I/O传输结束等传输结束等) 发生时,系发生时,系 统中止现行程序的运行、引统中止现行程序的运行、引 出处理事件程序
7、对该事件进出处理事件程序对该事件进 行处理,处理完毕后返回断行处理,处理完毕后返回断 点,继续执行。点,继续执行。 继续执行继续执行 中断进入中断进入 中断中断 返回返回 中断信号中断信号 正在执行正在执行 的程序的程序 中断处中断处 理程序理程序 15 输入输出中断输入输出中断 I/O传输结束或出错中断 外中断外中断 时钟中断、操作员控制台中断、通信中断等 机器故障中断机器故障中断 电源故障、主存取指令错等 程序性中断程序性中断 定点溢出、用户态下用核态指令、非法操作等 访管中断访管中断 对操作系统提出某种需求时所发出的中断 强迫性中断强迫性中断 不是正在运行的程序所期待的中断 如:输入输出
8、中断、外中断、机器故障中断、程序性中断 自愿中断自愿中断 是运行程序所期待的事件 如:访管中断 16 中断中断 由处理机外部事件引起的中断 俘获俘获 由处理机内部事件引起的中断 中断与俘获的例中断与俘获的例 trap 指令指令 俘点俘点 溢出溢出 地址地址 越界越界 非法非法 指令指令 exitforkread clock 时钟时钟 rk 磁盘磁盘 tty 终端终端 中断与俘获中断与俘获 中断中断俘获俘获 17 继续执行继续执行 中断进入中断进入 中断中断 返回返回 中断信号中断信号 正在执行正在执行 的程序的程序 中断处中断处 理程序理程序 18 现场现场 在中断的那一时刻能确保程序继续运行
9、的有关信息。在中断的那一时刻能确保程序继续运行的有关信息。 后继指令所在主存的单元号后继指令所在主存的单元号 程序运行所处的状态程序运行所处的状态 指令执行情况指令执行情况 程序执行的中间结果等程序执行的中间结果等 19 保护现场保护现场 当中断发生时,必须立即把现场信息保存在主存中, 这一工作称之为保护现场。 恢复现场恢复现场 程序重新运行之前,把保留的该程序现场信息从主存 中送至相应的指令计数器、通用寄存器或一些特殊的 寄存器中。完成这些工作称为恢复现场。 20 定义定义 反映程序执行时机器所处的现行状态的代码。 内容内容 指令地址、指令执行情况、处理机状态、应 屏蔽的中断等。 IBM 3
10、70 机机 程序状态字内容 PSW寄存器 IBM PC 机机 程序状态字内容 CS IP 指令地址 flag 标志寄存器 PDP 11系列机系列机 程序状态字内容 PC 指令计数器 PS 处理器状态寄存器寄存器 21 中断响应是当中央处理机发现已有中断请求时,中止 现行程序执行,并自动引出中断处理程序的过程。 指令计数器指令计数器 系统系统 堆栈堆栈 中断中断 向量表向量表 处理机状态寄存器处理机状态寄存器 继续执行继续执行 中断进入中断进入 中断中断 返回返回 中断信号中断信号 正在执行正在执行 的程序的程序 中断处中断处 理程序理程序 22 保留程序断点及处理机保留程序断点及处理机 有关信
11、息有关信息 自动转入相应的中断处自动转入相应的中断处 理程序执行理程序执行 中断处理程序的中断处理程序的PC 中断处理程序的中断处理程序的PS 主存主存 PC PS PC PS 堆栈堆栈 堆栈栈堆栈栈 顶指针顶指针 (4) (1) (2) (3) 交换指令地址及处理机交换指令地址及处理机 的状态信息的状态信息 23 软件的中断处理过程如图所示。软件的中断处理过程如图所示。 保留被中断程序的现场保留被中断程序的现场 进入相应的中断服务例程进入相应的中断服务例程 恢复被中断程序的现场恢复被中断程序的现场 中断中断 返回返回 中断中断 进入进入 k+0 现行程序现行程序 k+1 24 中断处理程序的
12、执行必须快速、简洁中断处理程序的执行必须快速、简洁 为提高中断处理的效率,Linux系统将中断处理程序 分为两部分。 将中断响应后必须立即处理的工作即刻执行,这就是 中断处理程序的上半部 (tophalf) 将更多的处理工作向后推迟执行,这就是中断处理程 序的下半部(bottom half)。 25 是中断处理中有严格时间限制的工作,是关键而紧迫的是中断处理中有严格时间限制的工作,是关键而紧迫的 部分部分; 上半部的工作是不可被打断的,即在屏蔽所有中断的情上半部的工作是不可被打断的,即在屏蔽所有中断的情 况下进行的。例:与硬件设备应答或使硬件复位的工作。况下进行的。例:与硬件设备应答或使硬件复
13、位的工作。 处理那些可以稍后完成的工作;处理那些可以稍后完成的工作; 下半部的执行是可以打断的,即是在开中断的情况下下半部的执行是可以打断的,即是在开中断的情况下 执行。执行。 26 Linux系统中,用于实现实现将工作推后执行的内核机制称 为“下半部机制”,下半部机制主要有tasklet和工作队列。 tasklet通过软中断实现通过软中断实现 一个软中断被标记后才能执行,称为触发软中断。 待处理的软中断会在以下时机被检查和执行: 从一个硬件中断返回时; 在ksoftirqd内核线程中; 在显示检查和执行待处理的软中断的代码中。 27 Tasklet软中断软中断 tasklet的软中断表示是的
14、软中断表示是TASKLET_SOFTIRQ; Taskle由结构体由结构体tasklet_struct结构表示结构表示 struct tasklet_struct struct tasklet_struct *next; /* 链表中的下一个taskle */ unsignet long state; /* taskle的状态 */ atomic_t count; /* 引用计数器 */ void (*func) (unsigned long); /* taskle的处理函数 */ unsigned long data; /* 给taskle处理函数的参数 */ tasklet由由taskle
15、t_schedule()函数调度函数调度 28 工作队列机制将中断处理程序的下半部交给一个内核工作队列机制将中断处理程序的下半部交给一个内核 线程去执行。线程去执行。 下半部是在进程上下文下半部是在进程上下文(用户地址空间用户地址空间)执行,可以睡执行,可以睡 眠和被重新调度。眠和被重新调度。 注:这一点与上述的tasklet不同。如果下半部工作需要 睡眠(如需要执行阻塞式I/O操作时,或要等待信号灯)时 应选择工作队列机制;否则可选择tasklet机制。 29 工作者线程工作者线程 该线程接收由各内核中断处理程序交给它的下半部。该线程接收由各内核中断处理程序交给它的下半部。 该线程由内核线程
16、实现的。执行的函数是该线程由内核线程实现的。执行的函数是 work_thread(),对应的数据结构是工作队列链表。,对应的数据结构是工作队列链表。 工作队列链表工作队列链表 由若干个由若干个work_struct结构组成。结构组成。 30 work_struct结构结构 每个work_struct结构描述如下 struct work_struct unsigned long pending; /* 该工作正在等待处理?*/ struct list_head entry; /* 勾链字 */ void (*func) (void *); /* 该工作的处理函数 */ void *data; /
17、* 传递该该处理函数的参数 */ void *wq_data; /* 内部使用 */ struct timer_list timer; /* 延迟的工作队列所用的定时器 */ 31 执行函数执行函数work_thread() 执行一个死循环;执行一个死循环; 若工作队列链表不空时,执行链表上的所有工作。若工作队列链表不空时,执行链表上的所有工作。 工作被执行完毕,它就将相应的工作被执行完毕,它就将相应的work_struct对象对象 从链表上移走;从链表上移走; 当链表为空时,它进入睡眠状态;当链表为空时,它进入睡眠状态; 当有下半部插入到队列时,函数是当有下半部插入到队列时,函数是work_thre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025装饰设计合同模板
- 2025车辆买卖合同标准范本
- 2025年广州市汽车维修与美容行业职工劳动合同
- 疝气护理记录规范与实施
- 美丽乡村建设培训体系
- 特殊用药的护理
- 2025年成本会计试题
- 护理仪器使用与管理规范
- 《电与磁》知识点总结模版
- 办公5S管理标准
- 第7课《溜索》一等奖创新教学设计
- WMO五年级初级测评专项训练
- 班主任节PPT幻灯片课件
- 北师大高中英语必修一 (Celebrations)课件(第8课时)
- 中兴(ZXA10-XPON)高级工程师认证考试题库(含答案)
- 单值-移动极差X-MR控制图-模板
- 建筑水电安装施工专项方案
- 离婚协议书电子版可打印
- 天然气输气管道
- 2023届高三语文模拟试卷及参考答案2023年全国高考(重庆卷)语文试题及答案
- 洁净风管制作安装技术方案
评论
0/150
提交评论