计算机操作系统原理分析.pdf

上传人:l**** 文档编号:74262691 上传时间:2023-02-25 格式:PDF 页数:169 大小:11.76MB
返回 下载 相关 举报
计算机操作系统原理分析.pdf_第1页
第1页 / 共169页
计算机操作系统原理分析.pdf_第2页
第2页 / 共169页
点击查看更多>>
资源描述

《计算机操作系统原理分析.pdf》由会员分享,可在线阅读,更多相关《计算机操作系统原理分析.pdf(169页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、文档 1 计算机操作系统原理分析 计算机操作系统原理分析.1 1.第 1 章:引论.6 1.1.1.1 操作系统的概述.6 1.1.1.1.1.1 计算机系统的组成.7 1.1.2.1.1.2 操作系统的定义.10 1.1.3.1.1.3 计算机系统的层次结构.10 1.2.1.2 操作系统的形成.13 1.2.1.1.2.1 操作系统形成与发展的主要因素.14 1.2.2.1.2.2 多道程序设计与操作系统.14 1.2.3.1.2.3 操作系统的发展.15 1.3.1.3 操作系统的基本类型.15 1.3.1.1.3.1 批处理系统及其特征.15 1.3.2.1.3.2 分时系统及其特征.

2、18 1.3.3.1.3.3 实时系统及其特征.20 1.4.1.4 计算机操作系统的研究内容.21 1.4.1.1.4.1 操作系统理论.21 1.4.2.1.4.2 操作系统软件.22 1.4.3.1.4.3 操作系统的主要功能.23 2.第 2 张:操作系统的接口.24 2.1.2.1 操作系统内核.24 2.1.1.操作系统软件的核心部分称为内核(Kernel).24 2.1.2.2.1.1 处理器指令及工作模式.24 2.1.3.2.1.2 操作系统内核.25 2.2.2.2 操作系统的启动.28 2.2.1.2.2.1 固件及其基本功能.28 2.2.2.2.2.2 基本输入/输出

3、系统 BIOS.29 2.2.3.2.2.3 可扩展固件接口.30 2.2.4.2.2.4 操作系统的启动.31 2.3.2.3 操作系统的用户接口.31 2.3.1.2.3.1 命令接口.32 2.3.2.2.3.2 程序接口及系统调用.33 2.3.3.2.3.3 UNIX 的用户接口.34 3.第 3 章:处理器管理.37 3.1.3.1 系统的工作流程.37 3.1.1.3.1.1 程序及其特点.38 3.1.2.3.1.2 顺序执行的工作方式及特征.38 3.1.3.3.1.3 并发执行的工作方式及特征.39 3.2.3.2 进程的概念.41 文档 2 3.2.1.3.2.1 进程的

4、定义.41 3.2.2.3.2.2 进程的主要特征.42 3.3.3.3 进程的动态性.44 3.3.1.3.3.1 进程的基本状态.44 3.3.2.3.3.2 基本状态的转换关系.46 3.4.3.4 进程管理的主要功能.47 3.4.1.3.4.1 进程控制块及组成.47 3.4.2.3.4.2 PCB 队列.52 3.4.3.3.4.3 进程管理的主要功能.54 3.5.3.5 进程的控制.54 3.5.1.3.5.1 原语.55 3.5.2.3.5.2 进程控制的含义.56 3.5.3.3.5.3 进程的创建.56 3.5.4.3.5.4 进程的撤销.59 3.5.5.3.5.5 进

5、程的阻塞.60 3.5.6.3.5.6 进程的唤醒.61 3.6.3.6 进程同步.62 3.6.1.3.6.1 并发进程的关系.63 3.6.2.3.6.2 间接制约与互斥关系.63 3.6.3.3.6.3 直接制约与同步关系.65 3.6.4.3.6.4 进程同步机制.66 3.6.5.3.6.5 互斥关系与加锁机制.66 3.6.6.3.6.6 信号量机制与互斥关系.68 3.6.7.3.6.7 信号量机制与同步关系.70 3.6.8.3.6.8 生产者/消费者问题.71 3.6.9.3.6.9 读者/写者问题.71 3.7.3.7 进程通信.71 3.7.1.3.7.1 进程通信的概念

6、.72 3.7.2.3.7.2 进程通信方式.74 3.7.3.3.7.3 消息缓冲通信的设计和实现.75 3.7.4.3.7.4 UNIX 消息队列通信【略过】.81 3.7.5.3.7.5 信箱通信的设计实现.81 3.8.3.8 线程.81 3.8.1.3.8.1 线程的引入.81 3.8.2.3.8.2 线程与进程的关系.83 3.8.3.3.8.3 线程的类型.84 3.8.4.3.8.4 线程的常用细化方法.86 3.8.5.3.8.5 JAVA 线程及控制实例.91 4.第 4 章:处理器调度.91 4.1.4.1 操作系统中的调度.91 4.1.1.4.1.1 调度的定义.92

7、 文档 3 4.1.2.4.1.2 操作系统中的调度.93 4.1.3.4.1.3 调度的性能指标.96 4.2.4.2 作业调度.97 4.2.1.4.2.1 作业状态.97 4.2.2.4.2.2 作业调度的功能.100 4.2.3.4.2.3 作业调度算法.101 4.2.4.4.2.4 作业调度算法例子.103 4.3.4.3 进程调度.103 4.3.1.4.3.1 进程调度的含义.104 4.3.2.4.3.2 基础调度的功能.104 4.3.3.4.3.3 进程调度的方式.106 4.3.4.4.3.4 进程调度算法.106 4.3.5.4.3.5 实时系统的进程调度算法.106

8、 4.4.4.4 死锁问题.107 4.4.1.4.4.1 死锁的含义.108 4.4.2.4.4.2 死锁的解决方法.109 4.4.3.4.4.3 死锁预防.110 4.4.4.4.4.4 死锁避免.112 4.4.5.4.4.5 死锁检测与恢复.114 5.第 5 章:存储器管理.116 5.1.存储器 管理:.116 5.1.1.程序运行需要两个最基本的条件,一个是程序要占有足够的主存储空间,另一个是得到处理器,并且首先要得到足够的主存储空间。.117 5.1.2.操作:.117 5.2.5.1 存储管理概述.117 5.2.1.5.1.1 计算机系统的存储器类型.118 5.2.2.

9、5.1.2 虚拟地址和物理地址.126 5.2.3.5.1.3 重定位.128 5.2.4.5.1.4 存储管理的目的.130 5.2.5.5.1.5 存储管理的主要功能.130 5.2.6.5.1.6 存储管理的方法.132 5.3.5.2 单一连续区存储管理.134 5.3.1.5.2.1 基本思想.135 5.3.2.5.2.2 主要特点.135 5.4.5.3 固定分区存储管理.135 5.4.1.5.3.1 基本思想.136 5.4.2.5.3.2 实现关键.136 5.4.3.5.3.3 主要特点.136 5.5.5.4 可变分区存储管理.137 5.5.1.5.4.1 基本思想.

10、138 5.5.2.5.4.2 实现关键.138 文档 4 5.5.3.5.4.3 主要特点.138 5.5.4.5.4.4 分区管理总结.138 5.5.5.5.4.5 兑换和覆盖.138 5.6.5.5 分页存储管理.138 5.6.1.5.5.1 基本思想.138 5.6.2.5.5.2 静态分页的实现关键.138 5.6.3.5.5.3 静态分页的特点及效率的改进.138 5.6.4.5.5.4 虚拟存储器思想.138 5.6.5.5.5.5 动态分页.139 5.6.6.5.5.6 请求分页的实现关键.139 5.6.7.5.5.7 分页存储管理的主要特点.139 5.7.5.6 分

11、段存储管理.139 5.7.1.5.6.1 基本思想.139 5.7.2.5.6.2 硬件基础.139 5.7.3.5.6.3 实现关键.139 5.7.4.5.6.4 分段与分页的区别.139 5.7.5.5.6.5 主要特点.139 5.8.5.7 段页式存储管理.139 5.8.1.5.7.1 基本思想.140 5.8.2.5.7.2 实现关键.141 5.8.3.5.7.3 主要特点.141 6.第 6 章:文件系统.141 6.1.6.0:简介.141 6.1.1.计算机操作系统除了实现对处理器、主存储器等重要硬件资源的管理之外,还需要对软件资源的管理。.142 6.1.2.软件资源

12、是以数据的形式存在的,程序本身是一种数据,程序的运行就是对数据的加工、处理过程,运行结果也是以数据的形式表现出来的。.142 6.1.3.大量数据的快速处理的计算机的主要功能之一。.142 6.1.4.概述:.142 6.2.6.1 文件系统概述.143 6.2.1.6.1.1 文件系统的引入.143 6.2.2.6.1.2 文件及分类.144 6.2.3.6.1.3 文件系统及其主要功能.147 6.3.6.2 文件的逻辑结构.148 6.3.1.1 流式文件.148 6.3.2.2 记录式文件.149 6.4.6.3 文件的物理结构.149 6.4.1.6.3.1 文件存储方式.150 6

13、.4.2.6.3.2 文件存储介质.150 6.4.3.6.3.3 物理结构分类.152 6.5.6.4 文件目录管理.154 文档 5 6.5.1.6.4.1 文件控制块.154 6.5.2.6.4.2 文件目录及其结构.155 6.6.6.5 文件存储空间管理.156 6.6.1.6.5.1 磁盘存储管理方法.156 6.6.2.6.5.2 空闲块成组连接法.156 6.7.6.6.文件使用.157 6.7.1.6.6.1 文件系统的命令接口.157 6.7.2.6.6.2 文件的系统调用.158 6.7.3.6.6.3 利用文件通信及其同步控制.158 6.8.6.7 文件的共享.158

14、 6.8.1.6.7.1 文件共享文法.159 6.8.2.6.7.2 基本文件目录法.159 6.8.3.6.7.3 文件共享语义.160 6.9.6.8 文件的安全性.160 6.9.1.6.8.1 文件保护及主要方法.161 6.9.2.6.8.2 文件保密及主要方法.161 6.9.3.6.8.3 BLP 安全模型.163 6.9.4.6.8.4 Bila 安全模型.163 7.第 7 章:设备管理.163 7.1.7.1 设备管理概述.163 7.1.1.7.1.1 设备分类.163 7.1.2.7.1.2 设备独立性.166 7.1.3.7.1.3 设备管理的主要功能.167 7.

15、2.7.2 I/O 控制方式.167 7.2.1.7.2.1 程序查询方式.167 7.2.2.7.2.2 中断方式.168 7.2.3.7.2.3 DMA 方式.168 7.2.4.7.2.4 通道方式.168 7.3.7.3 设备分配.168 7.3.1.7.3.1 设备管理的数据结构.168 7.3.2.7.3.2 设备分配原则.168 7.3.3.7.3.3 设备分配.168 7.3.4.7.3.4 设备分配的安全性.168 7.4.7.4 缓冲技术.168 7.4.1.7.4.1 缓冲及其引入的目的.169 7.4.2.7.4.2 缓冲类型.169 7.4.3.7.4.3 缓冲池管理

16、.169 7.5.7.5 磁盘驱动调度.169 7.5.1.7.5.1 磁盘 I/O 操作的时间组成.169 7.5.2.7.5.2 磁盘驱动调度.169 7.5.3.7.5.3 移臂调度算法.169 文档 6 1.第 1 章:引论 1.1.1.1 操作系统的概述 文档 7 1.1.1.1.1.1 计算机系统的组成 硬件 中央处理器 文档 8 CPU 存储器 主存储器 内存/主存 辅助存储器 文档 9 硬盘 外围设备 主板 键盘 显示器 等.软件 文档 10 系统软件 应用软件 1.1.2.1.1.2 操作系统的定义 1 管理计算机系统的硬件和软件 2 控制计算机系统的工作流程 3 为其它软件

17、和用户提供安全、方便的运行、操作环境 4 提高计算机系统的效率 1.1.3.1.1.3 计算机系统的层次结构 文档 11 1 系统及其体系结构 生态系统 2 计算机系统的层次结构 层 文档 12 层次结构是若干个层层(Layer)组成的,层是具有独立功能和模块或部件 接口 层与层之间的关系通过接口(interface)实现,一个层向外提供一组接口(即约定),其他的层通过这些接口使用层的功能 单向依赖 在层次结构系统中,各个层从低到高的排列。一般的,一个层只能使用比他更低的层的接口。层与层之间的这种规定称为层的单向依赖性 隐藏性 文档 13 一个层通过接口使用底层的功能,所以,它只需要了解相关层

18、的接口,而对于层内部的设计、实现细节则不闭关心。上面的这一个特性,称为隐藏性 也称为透明性 3 操作系统在计算机系统中的地位和作用 操作系统是对硬件层的第一次扩充,同时又作为其它软件运行和用户操作基础。1.2.1.2 操作系统的形成 文档 14 1.2.1.1.2.1 操作系统形成与发展的主要因素 硬件 软件 应用 1.2.2.1.2.2 多道程序设计与操作系统 1 并发执行与多道程序设计 文档 15 1.2.3.1.2.3 操作系统的发展 1 个人微型计算机操作系统 2 网络操作系统 3 分布式操作系统 1.3.1.3 操作系统的基本类型 1.3.1.1.3.1 批处理系统及其特征 文档 1

19、6 基本概念 作业、作业步、作业流 作业是由作业步组成的 一批作业 可以 称为 作业流 文档 17 程序员和操作员 批处理系统的用户分为程序员和操作员 程序员的任务是根据需求设计算法、选择程序设计语言,编写程序,并且需要准备过程中的数据 操作员的任务是负责计算机系统的运行和维护 作业控制语言和作业说明书 程序卡片和读卡机 脱机批处理系统的工作方式 提交 文档 18 后备 执行 完成 联机批处理系统与 SPOOLing 系统 略过 批处理系统的特征 1 批量处理,方便操作 2 自动执行,资源利用率高 3 缺少人-机交互能力,不便于调试程序 1.3.2.1.3.2 分时系统及其特征 文档 19 1

20、 工作方式 分时系统是由一台主计算机连接多个终端构成的一个系统 2 特征 1 同时性 2 独立性 文档 20 3 及时性 4 交互性 1.3.3.1.3.3 实时系统及其特征 工作方式 更多的要求了结果的正确性,跟时间 实时过程控制系统 实时信息处理系统 特征 文档 21 高及时性,高可用性 1.4.1.4 计算机操作系统的研究内容 1.4.1.1.4.1 操作系统理论 计算机的工作方式 文档 22 计算机系统的工作方式是执行程序指令 的方式,其中包括处理器的工作流程、处理器与计算机系统其他部件的协作方式 处理器 与设备 I/O 操作协作方式,目标:提高计算机系统资源的利用率 使用方式 目标:

21、尽可能的方便用户操作 管理、控制的原理和方法 1.4.2.1.4.2 操作系统软件 文档 23 概念:操作系统软件就是依据操作系统理论,对指定计算机系统实现管理的一组程序和数据集合。1.4.3.1.4.3 操作系统的主要功能 1 用户接口及作业管理 2 处理器管理 3 存储器管理 4 文件系统 5 设备管理 文档 24 2.第 2 张:操作系统的接口 2.1.2.1 操作系统内核 2.1.1.操作系统软件的核心部分称为内核(Kernel)2.1.2.2.1.1 处理器指令及工作模式 处理指令 文档 25 特权指令 非特权指令 工作模式 核心态 用户态 2.1.3.2.1.2 操作系统内核 文档

22、 26 内核的主要组成 1 与硬件密切相关的操作 2 关键数据结构 如:控制块、信号量、页表 文档 27 3 基本中断处理程序 4 使用频繁的功能模块 提高系统性能 内核的基本特点 常驻内存 在计算机启动过程中,操作系统的装载程序自动从磁盘指定位置把操作系统内核的程序和数据装入内存的特定区域,并初始化个数据结构的值。内核的大部分程序和数据,在计算机启动成功后,一直保留在内存中,直到关机为止。文档 28 运行在核心态 系统空间和用户空间 2.2.2.2 操作系统的启动 2.2.1.2.2.1 固件及其基本功能 操作系统的启动需要依赖一组特殊的软件,称为系统固件(Firmware),简称固件。通常

23、固件程序放到只读的 ROM 芯片中 固件的基本功能是在计算机开机启动(Booting)是的基本硬件资源检查、诊断、装入操作系统的引导程序。固件:是硬件平台与操作系统之间的接口 文档 29 2.2.2.2.2.2 基本输入/输出系统 BIOS 简介:基本输入/输出系统(Basic Input/Output System,BIOS),是存储在只读存储器(ROM)芯片中的一组程序和数据的统称,也称为 ROM BIOS 1 BIOS 的基本组成 1 POST 自检程序 2 基本启动程序 3 基本硬件驱动程序及其中断处理程序 2 磁盘分区 文档 30 低级格式化 扇区的标识和故障检查 建立磁盘的设备信息

24、(类型、序列号、柱面数、磁头数、扇区数、每次传输的最大扇区数、卷标识及描述符)分区 3 主引导记录 Master Boot Record,MBR 512 字节。2.2.3.2.2.3 可扩展固件接口 文档 31 EFI 2.2.4.2.2.4 操作系统的启动 系统配置 内核的装入和初始化 用户登录 2.3.2.3 操作系统的用户接口 文档 32 2.3.1.2.3.1 命令接口 外部命令 特点:有对应的程序文件 内部命令 文档 33 基本 菜单 2.3.2.2.3.2 程序接口及系统调用 什么是系统调用 系统调用 内部会进入 到 核心态 访管中断 文档 34 系统调用的实现过程 系统调用与一般

25、用户子程序的区别 2.3.3.2.3.3 UNIX 的用户接口 UNix 系统创造了软件历史上的一个奇迹 没钱,没人,还能做的这么好 特点 文档 35 1 实现了分时、多用户、多任务,加快了计算机作为学习、科研实验工具的发展进程。2 丰富的 shell 命令,命令拼写简介,操作方便,同时可面向 shell 编程 3 系统调用功能强大,结构性好、效率高,使用灵活。4 创造性地提出了流式文件,为系统的可移植性建立了基础 5 良好的文件目录结构,支持大文件的管理、存储速度快、文件系统可靠。6 同时实现了多种通信机制,如消息队列、管道通信、共享存储区通信、信号量机制等。7 采用交换技术和请求分页虚拟存

26、储技术管理主存储器,提高主存储器的利用率。文档 36 8 内核由 C 语言编写,系统不仅拥有更高的性能,也易于移植 9 采取的用户权限及存取控制方法实现了信息安全 发展 IBM 公司 的 AIX Sun 公司的 Solaris 伯克利大学 BSD 命令接口 Unix 的命令接口成为 shell 命令,程序接口为系统调用。文档 37 shell 命令多达两三百个,使用简单、灵活。这里介绍一些常用 Shell 命令的基本使用方式 基本命令 vi 编辑器 C 语言编译 3.第 3 章:处理器管理 3.1.3.1 系统的工作流程 文档 38 3.1.1.3.1.1 程序及其特点 1 顺序性 2 可再现

27、性 3.1.2.3.1.2 顺序执行的工作方式及特征 1 封闭性 文档 39 不必担心申请的资源被其它程序占用 缺点:资源利用率低 2 可再现性 相同的输入,得到相同的结果 优点:不需要额外的控制就可以保证程序正确的执行 3.1.3.3.1.3 并发执行的工作方式及特征 宏观 文档 40 多道程序“同时”在运行,表现为多任务。微观 多道程序又是轮流交替地在处理器上执行。由于只有一个处理器,一个处理器任何时刻至多只能执行一条指令,这条指令只能属于一道程序。所以,微观上上任何时刻至多只有一道程序真正在运行之中。并发执行并没有破坏程序的顺序性的特点,因为在多道程序的轮流交替执行的过程中,对于一道程序

28、而言,处理器仍然按照程序的指令顺序依次追条依次地执行,只是这道程序在处理器上的执行被分割为多个时间段,表现为“停停走走”的过程。并发程序的复杂性 文档 41 复杂性 不可再现性 相互制约 注意:并发程序 跟 并行程序 3.2.3.2 进程的概念 3.2.1.3.2.1 进程的定义 文档 42 一道程序在一个数据集上的一次执行过程,称为一个进程(Process).3.2.2.3.2.2 进程的主要特征 5 大特性:动态性、并发性、独立性、结构性、和异步性 动态性 文档 43 从产生、发展、消亡的过程。并发性 并发进程 独立性 进程是操作系统分配资源的基本单位,一个进程的程序和数据只能由该进程本身

29、访问。结构性 文档 44 不同进程具有相同的属性,操作系统经过抽象,概括后,可以形成一个相对固定的格式即数据结构,用于表示一个进程,这个数据结构就是进程控制块 PCB PCB Process Control Block 异步性 随时创建新的进程 3.3.3.3 进程的动态性 3.3.1.3.3.1 进程的基本状态 文档 45 运行 进程正在占用 CPU 运行 就绪 等待分配给 CPU,已经准备好了。阻塞 文档 46 等待其它选择,跳过 cpu 3.3.2.3.3.2 基本状态的转换关系 图:文档 47 3.4.3.4 进程管理的主要功能 3.4.1.3.4.1 进程控制块及组成 文档 48 1

30、 基本描述信息部分 进程名 进程的名称(pname),通常是用程序文件名表示。进程标识符 文档 49 进程标识符(pid)由操作系统自动生成,pid 是唯一的,可以用于区别进程。这里所说的 Pid 唯一性,是指同一台计算机,在一次开机后,关机之前期间的所有的进程的 pid 各不相同。用户标识 创建进程的用户标识 进程状态 表示进程当前的状态(pstate)文档 50 还有其它信息,如父进程等。2 管理信息部分 简介:主要对进程运行过程中所需要的资源等信息进行登记。1 程序和数据的地址 进程对应的程序和数据的地址,与采用那种主存储器管理方法有关,如页表起始地址、长度、或分区起始地址及长度,或分区

31、号等。2 I/O 操作相关参数 文档 51 在进程 I/O 操作时需要的参数,如设备逻辑号,传输的数据量大小、缓冲区地址等。3 进程通信信息 进程之间通信时的相关数据,如消息缓冲队列指针等。如果 PCB 结点的指针信息,用于指示下一个进程的 PCB 地址。3 控制信息部分 现场信息 文档 52 进程从运行状态进入阻塞状态时,CPU 的各主要寄存器内容,如标志寄存器、堆栈指针,段寄存器,通用寄存器等内容需要保护,以保证下次能够接着继续运行。调度参数 进程调度程序执行时所需要的调度参数,例如:到达时间、优先级、进程大小、已累积运行时间等。同步、互斥的信号量 例如:在消息缓冲队列通信中所需要的同步、

32、互斥的信号量。3.4.2.3.4.2 PCB 队列 文档 53 进程 跟 PCB 队列一一队列。通常又可以链表的数据结构实现,所以也称为 PCB 链表。可以分成两类:就绪队列和等待队列 就绪队列 一堆就绪的队列 等待队列 文档 54 一堆等待的队列 3.4.3.3.4.3 进程管理的主要功能 控制 同步 通信 调度 死锁 3.5.3.5 进程的控制 文档 55 3.5.1.3.5.1 原语 一个操作依次分成几个动作,如果这几个动作的执行不会被分割或中断,且这些动作要么全部执行,要么一个都不执行,则称这种操作具有原子性 原语定义:文档 56 一个特殊的程序段称为原语,3.5.2.3.5.2 进程

33、控制的含义 进程控制的原语:创建、撤销、阻塞、唤醒、切换 3.5.3.3.5.3 进程的创建 创建进程的时机 文档 57 作业调度程序 在批处理系统中,作业调度程序从作业后备队列中选中一个作业,之后为该作业的每个作业步创建一个进程。用户提交命令 用户通过键盘、鼠标、等输入设备提交命令后,操作系统命令解释程序的进程接收这个命令,如果该命令是合法、有效的,命令解释程序的进程为其创建一个进程。系统调用 文档 58 操作系统提供创建进程的系统调用(如 UNIX 的 fork),程序员可以根据需要,利用系统调用创建新的进程,新进程是原进程的子进程,原进程是新进程的父进程。从进程角度来看,子进程也是进程,

34、与父进程没有区别,彼此独立的,父进程、子进程之间也可以并发执行。创建原语的主要操作 建立一个 PCB 生成 pid 初始化 PCB 各项内容 加入合适的就绪队列 进程树 文档 59 3.5.4.3.5.4 进程的撤销 进程撤销就是消亡 时机 进程执行完成 进程执行过程出错 子进程对应父进程的异常结束 人为操作终止进程 文档 60“回收”资源 3.5.5.3.5.5 进程的阻塞 进程原语 1 修改 PCB 中的进程状态 把原来的运行状态设置为阻塞状态 2 现场保护 文档 61 将处理器现场的内容保存在 PCB 中 3 将进程加入合适的等待队列 阻塞原语的执行将引起新的调度,因为运行进程阻塞后,处

35、理器即将空闲,操作系统进程调度程序选择一个进程运行。3.5.6.3.5.6 进程的唤醒 把进程冲阻塞转换为就绪状态,通过唤醒(Wakeup)原语实现。操作:文档 62 1 从等待队列中移出进程 2 修改 PCB 的进程状态 3 将进程加入合适的就绪队列 1 从等待队列中移出进程 2 修改 PCB 进程状态 3 处理器分配 3.6.3.6 进程同步 文档 63 3.6.1.3.6.1 并发进程的关系 3.6.2.3.6.2 间接制约与互斥关系 文档 64 1 资源的使用步骤 2 临界资源与间接制约 定义:一次只能让一个进程使用的资源称为临界资源,这里“一次”的含义,需要从资源使用步骤的角度来理解

36、。在一个进程申请、分配得到资源起,到归还资源为止的时间段内,进程对该资源的使用过程称为一次使用。常见的临界资源有打印机、存储单元、堆栈、链表、文件等 文档 65 3 临界区与互斥关系 临界区:临界区(Critical Section 或 Critical Region)是指进程对应的程序中访问临界资源的一段程序代码,就是进程在资源的一次使用过程中,冲申请开始至归还为止的一段程序代码。因为临界,所以互斥。3.6.3.3.6.3 直接制约与同步关系 文档 66 单向依赖关系 相互依赖关系 同步关系 3.6.4.3.6.4 进程同步机制 3.6.5.3.6.5 互斥关系与加锁机制 1 临界区管理准则

37、 1 空闲让进 文档 67 2 忙则等待 3 有限等待 4 让权等待 2 加锁机制原理 1 锁变量 key 0 代表开启 1 代表关闭 2 加锁操作 lock(key)3 解锁操作 unlock(key)文档 68 3 加锁机制的应用及例子 4 加锁机制分析 1 普通的加锁机制不能实现互斥关系,借助硬件的加锁机制可以实现进程的互斥关系 2 存在“忙等待”现象,浪费了处理器时间 3 存在“饥饿”现象 4 多个锁变量的加锁操作可能造成进程死锁 3.6.6.3.6.6 信号量机制与互斥关系 1 信号量机制原理 文档 69 信号量 信号量是一种变量,一个信号量对应一个整型变量 value、一个等待队列

38、bq,同时还可以对应其他的控制信息。P 操作 进行阻塞操作 v 操作 文档 70 进行唤醒操作 2 信号量机制分析 3 信号量机制实现互斥关系 3.6.7.3.6.7 信号量机制与同步关系 1 单向同步关系 2 一般同步关系 3 并发程序设计 文档 71 应用同步机制描述对进程的并发控制称为程序设计(Concurrent Programming).基于信号量的并发程序设计就是利用信号量及 p 操作和 v 操作描述对进程的并发控制。3.6.8.3.6.8 生产者/消费者问题 生存者 消费者 仓库 3.6.9.3.6.9 读者/写者问题 3.7.3.7 进程通信 文档 72 3.7.1.3.7.1

39、 进程通信的概念 1 什么是进程通信 文档 73 两个或多个进程之间交换数据的过程称为进程通信,其中提供数据的一方称为发送进程,得到数据的一方称为接收进程。2 进程通信的类型 进程通信分为两种类型:低级通信 低级通信是指操作系统内核程序之间的通信,交换的数据量较小,且交换的数据用于控制进程的执行。信号量机制就是一种低级通信。高级通信 文档 74 高级通信是指应用程序之间的通信,交换的数据量可以很大,且交换的数据是接收进程的处理对象。进程通信默认就是高级通信,就是应用程序之间的数据交换。3 为什么需要进程通信 1 任务协作 2 进程的独立性 3 进程通信的可行性 3.7.2.3.7.2 进程通信

40、方式 文档 75 1 共享存储区通信 2 消息缓冲通信 3 信箱通信 4 管道通信 3.7.3.3.7.3 消息缓冲通信的设计和实现 1 消息缓冲通信设计 文档 76 1 消息缓冲区结构 把要发送的数据称为消息 用于存放消息的内存区域称为消息缓冲区 结构组成 文档 77 发送进程标识(pid):等级发送进程的 pid 正文大小(size):进程要交换的数据称为正文,按字节计算的字符数量。正文(data):存储发送进程提交给接收进程的数据,这是通信的主要内容。向下指针(Next):一个消息缓冲区作为队列的一个结点,指针指示了在消息缓冲区队列中的下一个结点。2 PCB 的通信参数结构 消息缓冲队列

41、(mq):用于组织到来的信息缓冲区 互斥信号量(mutex):消息缓冲区队列是一个链表,链表结点的添加或删除都需要互斥执行,因为在这种通信机制中,可能有多个进程同时想一个文档 78 进程发送数据,或者一个进程在发送消息期间接收进程也可能接收消息。同步信号量 接收进程依赖于发送进程,因链表没有结点个数的限制,发送进程可以不接受接收进程的限制。通信双方是一种简单同步关系 3 发送操作和接收操作 发送操作设计如下 文档 79 格式 send(dest,&mptr)参数 dest 为接收进程 pid,mptr 为发送区地址,属于发送进程的地址空间,发送区结构与消息缓冲区结构类似,功能 等待完善 接收操

42、作设计如下 文档 80 格式 receive(&mptr)参数 功能 2 消息缓冲通信实现 1 消息缓冲通信是一种直接通信 文档 81 2 只能应用在同一台计算机 3.7.4.3.7.4 UNIX 消息队列通信【略过】1 消息队列系统调用 2 消息队列应用实例 3.7.5.3.7.5 信箱通信的设计实现 3.8.3.8 线程 3.8.1.3.8.1 线程的引入 文档 82 进程可以细化为若干个线程。进程的其他部分仍然可以运行,那么,将进一步提高处理器的效率。什么是线程 引入线程的目的 1 实现进程内部的并发执行,提高并行程度。2 减少处理器切换带来的开销 文档 83 进程切换需要包含 PCB

43、现场 线程阻塞后,另外的线程可以继续上,并且享有同样的资源。原因:线程的现场信息比进程要少得多。3 简化进程通信方式 加快了交换数据的过程 3.8.2.3.8.2 线程与进程的关系 引入线程后,同一进程的线程之间共享该进程的地址空间。根本区别:文档 84 线程是处理器分配调度的基本单位 进程是其他资源(除处理器之外)分配的基本单位。其它区别:进程的地址空间是私有的,进程之间在处理器切换时现场的保护/恢复的开销比较大,同一进程的线程之间在处理器切换时现场的保护/恢复的开销比较小。线程具有动态性,每一个线程都有生命期,具有一个从创建、运行到消亡的过程。线程也具有并发性,多个线程可以并发执行,线程也

44、有三个基本状态:运行、就绪和阻塞,具有相互制约关系的线程之间也需要同步,互斥控制。3.8.3.3.8.3 线程的类型 文档 85 1 用户级线程 由运行在用户空间(User Space)的线程包管理、控制的线程,称为用户级线程,在这种情况下,内核感觉不到用户线程的存在,内核管理的仍然是进程。优点:同一进程的线程之间的处理器切换不必进入内核,只需要在用户态进行,极大地减少了处理器切换锁代码的开销。缺点:文档 86 线程在运行中,如果因系统调用而阻塞,则线程所在的进程整个地阻塞,同一进程的其它线程也不能运行,因此从一定意义上看,影响了并行程度的提高。2 系统级线程 简介:由运行在系统空间(Syst

45、em)线程包管理控制的线程,称为系统级线程。3.8.4.3.8.4 线程的常用细化方法 文档 87 进程细化线程的工作是由系统设计员或程序员实现的。方法 1 分派/处理模型 文档 88 根据进程的任务,把进程细化为若干线程,其中一个线程作为协作者,称为分派线程(Dispatcher),其它线程作为工作者,称为处理线程(Worker),处理线程实现具体任务的处理。分派线程根据进程的当前的状态,决定处理线程的运行。上面的模型:称为分派/处理模型(Dispatcher/Worker Model)模型图:文档 89 2 队列模型 简介:文档 90 一个进程,如果要完成几个独立的任务,那么,可以把进程细

46、化为几个具有独立关系线程,每个线程可以单独地接收请求、请求处理和结果返回。把这种细化的方法称为队列模型(Team Model)特点:细化的进程他们直接没有关系,之间独立地运行。在队列模型中,由于进程内部的线程是相互独立,不需要同步控制,所以,队列模型细化方法可以提高进程的运行效率 3 管道模型 在队列模型中,同一进程的线程之间任务相互独立,可是有的进程,其任务是对一组数据的逐步加工、处理,这样可以把进程细化为若干的线程,这些线程直接,按指定顺序依次执行,这种细化方法称为管道模型(Pipeline Model)总结:文档 91 三种模型中,队列模型和管道模型是两种极端 3.8.5.3.8.5 J

47、AVA 线程及控制实例 飘过 4.第 4 章:处理器调度 4.1.4.1 操作系统中的调度 文档 92 4.1.1.4.1.1 调度的定义 调度是管理的一种方法、一种优化、其目标是发挥资源的利用率。进程管理:进程调度 死锁 文档 93 讲解并发执行微观上轮流交替的实现和并发执行的另一个复杂性,就是死锁 4.1.2.4.1.2 操作系统中的调度 调度的定义 调度(Scheduling)是管理的一种方法、是一种决策,资源(如工作、人力、车辆等)经过管理得到合理、有效的利用。调度的目标是找出一种合理的、有效的安排方法,提高资源的利用率。操作系统中的调度 文档 94 1 作业调度 作业调度就是按一定的

48、策略从后备队列中选择一部分作业,为他们分配运行所需的必要资源、创建进程的过程。作业调度称为宏观调度,被作业调度程序选中的作业进入内存,其状态为“执行”状态,执行状态的作业并不意味着真正的运行,而要经过进程调度后才能得到运行。这体现了并发执行的宏观含义。2 进程调度 文档 95 进程调度就是按一定策略从进程就绪队列中选择一个进程,让其占用处理器运行。对于支持线程的操作系统,还需要线程调度。进程调度(和线程调度)称为围观调度,被进程调度程序选中的进程得到处理器而运行,这体现了并发执行的围观含义。3 交换调度 交换调度是主存储器管理的策略之一,也称为中级调度。4 设备调度 设备的 I/O 协调 文档

49、 96 4.1.3.4.1.3 调度的性能指标 1 周转时间和平均周转时间 带权的作业周转时间 2 响应时间 3 评价调整性能的其它指标 1 公平合理 文档 97 2 提高资源利用率 3 吞吐量 4.2.4.2 作业调度 4.2.1.4.2.1 作业状态 1 提交状态 文档 98 程序员需要利用作业控制语言(JCL)编写用于描述作业、组织作业控制意图的作业说明书。程序、程序运行所需要的数据,连同作业说明书,构成作业。程序员把作业提交给操作员,这时作业为提交状态。因为操作员不一定立即启动计算机,通常,操作员是在收到一定数量或等待一定时间后,对作业进行归类整理,分成几个作业流,才能开始启动机器输入

50、作业。2 后备状态 文档 99 操作员启动计算机,将整理后的作业流,成批地输入计算机系统,在脱机批处理系统中,作业输入磁带,在联机批处理系统中,作业输入磁盘的输入井,这时作业为后备状态。操作系统设计了专门用于描述、管理作业的数据结构,称为作业控制块(JCB).JCB 的主要内容包括:用户名及账户、作业说明书的文件名及位置、程序文件名列表、数据文件名列表、提交的时间、作业优先级、作业占用处理时间大小、作业虚拟地址空间的大小等。后备状态的每一个作业都有唯一的一个 JCB,并且这些 JCB 组成一个链表,即作业对,也称为后备队列。3 执行状态 文档 100 作业调度程序从后备队列中选择作业,并为其分

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁