第二章 进程管理 输入一批数据 处理数据 打印处理结果
程序的顺序执行特点 顺序性 封闭性 可再现性
程序的并行执行 间断性 失去封闭性 不可再现性
程序并发执行
同一个程序在不同数据集合上的执行
不同的程序在不同数据集合上的执行
程序 具有独立功能的一组指令的集合
进程 允许并发执行的程序在某个数据集合上的运行过程
进程是由正文段 用户数据段及进程控制块共同组成的执行环境
正文段 存放被执行的机器指令
用户数据段 存放用户数据
进程控制块 存放进程的运行环境
进程
1. 并发性 并发性是进程和现代操作系统的重要特征
2.动态性 执行程序->创建进程 获得cpu->执行指令 运行中止->被撤销
3.独立性 独立运行和资源调度的基本单元
4.进程的执行时断时续,何时执行,合适暂停都无法预知
5.进程实体包括用户正文段 用户数据段和进程控制块
程序和进程的区别
程序 静态 永久 指令的集合
进程 动态 暂时 包括正文段 用户数据段 进程控制块
联系
进程是程序的一次执行
一个程序可以对应多个进程
用一个程序可以在不同的数据集合上运行,构成不同的进程
进程实体 包括 用户正文段 用户数据段和进程控制块
程序状态字 PSW
描述和记录程序状态
进程控制块 PCB
管理和控制进程
进程控制块PCB
定义: 进程控制块是进程实体的一部分,是操作系统中最重要的数据结构。
进程控制块汇总记录了操作系统所需要的,用于描述进程及控制进程运行所需的全部信息
进程控制块中的信息
进程表示符信息 用于唯一标识一个进程
处理机状态信息 通用寄存器 指令计数器 程序状态字PSW 用户栈指令
进程调度信息 包括进程状态信息,进程优先级和进程调度所需的其他信息
进程控制信息 包括程序和数据的地址 进程同步和通信机制 资源清单 以及连接指针
进程的三种基本状态 之形态 阻塞态 就绪态
进程的组织方式
连接方式
把系统中具有相同状态的进程控制块PCB用其中的链接字链接成一个队列
执行指针 正在执行的进程 PCB1
索引方式
系统根据所有进程的状态,建立索引表,索引表的每一个表项指向一个PCB物理块
进程队列
把具有相同状态的进程控制块用队列组织起来
如何创建新进程 创建新进程的步骤
1. 申请空白PCB
2. 为新进程分配资源
3. 初始化进程控制块
4.将新进程插入到就绪队列
什么情况下会进行进程的阻塞呢?
请求系统服务 启动某种操作 新数据尚未到达 无新工作可做
完成进程阻塞的简化过程?
1.将进程的状态改为阻塞态
2.将进程插入相应的阻塞队列
3.转到进程调度程序,从就绪队列中选择进程为其分配CPU
进程的唤醒
进程进入阻塞天之后,通过唤醒使其变成就绪态进程
完成进程阻塞的简化过程?
1.将进程从阻塞队列中移除
2.将进程状态由阻塞态改为就绪态
3.将进程插入就绪队列
进程的终止
进程正常执行完毕,调用终止今晨的系统调用
操作系统通过系统调用完成进程终止的一般过程
1. 从进程PCB中读进程状态
2.若进程正在执行,则终止进程的执行
3.释放资源
4.将终止进程的PCB移出
操作系统管理计算机系统资源 提供方便的接口,扩充硬件的功能等
操作系统内核
直接与硬件交互,提供cpu时间片管理中断 内存管理 IO管理等等
操作系统内核
支撑功能 中断处理 时钟管理 原语操作
资源管理功能 进程管理 存储管理 设备管理
什么是中断
中断是改变处理器执行指令顺序的一件事情
出现中断时,计算机停止现在程序的运行,转向对这些中断事件的处理
处理结束后再返回到现行程序的间断处
为什么需要中断
CPU可以使其他设备并行工作,能有效提高CPU的利用率
中断的类型 同步中断 内部中断或异常 如除数为零,结果溢出等
异步中断 外部中断 如 I/o 中断 硬件故障等
中断响应
响应中断的条件 对于可屏蔽中断,开中断是前提
响应中断的时机 对于外部中断 CPU每执行完一条指令都会检测是否有中断
什么是系统调用?
系统调用是一群预先定义好的模块
提供一条管道让应用程序能由此到核心程序的服务
系统调用时系统程序与用户程序之间的接口
用户空间 用户进程所处的地址空间
用户态执行 CPU 执行用户空间的代码时,该进程处于用户态执行
系统空间 含有一切系统核心代码的地址空间
系统态执行 CPU 执行系统核心代码时,称该进程处于系统态执行
根据系统调用的功能吧系统调用总结为一下几种类型
进程控制类系统调用
文件操纵类系统调用
设备管理类系统调用
通信类系统调用
进程同步的基本概念
多道程序环境下进程之间的关系
资源共享关系 保证各进程以互斥的方式访问临界资源
相互合作关系 保证相互合作的各进程协调执行
必须以互斥方式访问的共享资源称为临界资源
进程中访问临界资源的那段代码称为临界区
同步机制应遵循的准则
空闲让进
对于要访问临界资源的进程,应保证有限时间内进入临界区
忙则等待
申请不到访问权,应释放处理机,以免浪费CPU资源
有限等待
没有进程处于临界区,应允许一个请求进入临界区的进程进入
让权等待
临界区已有进程,其他视图进入临界区的进程必须等待
信号量机制
用信号量的取值来表示资源的使用状况,依次为基础实现进程同步
信号量 某种类型的变量 如整形,记录型
信号量机制
整形信号量机制 记录型信号量机制 AND型信号量机制
整形信号量机制 表示共享资源 只能由特殊的原子操作改变的整形量
原理:定义一个整形变量,用该变量的值来标记资源的使用情况, 初始值=1
整形信号量 > 0 有资源可用
整形信号量 <= 0 资源忙,需等待
整形信息量机制中,用于申请资源的是 wait 原子操作。
整形信号量机制中,用于释放资源的是 signal 原子操作
定义信号量s,初始值设置为1
进程通信机制
共享存储器系统
相互通信的进程共享某些数据结构或共享存储区
消息传递系统
进程间通过操作系统提供的一组通信程序传递消息
管道通信
进程间通过管道(链接读写进程的特殊文件)进行信息通信
消息缓冲队列
利用消息缓冲区,发送原语和接收原语实现信息通信
程序
具有独立功能的一组指令的集合
进程
允许并发执行的程序在某个数据集合上的运行过程
线程
用户要求执行数据库应用程序
线程的定义 线程是进程中的一个实体,是被系统独立调度和分派的基本单位
同一进程的各线程驻留在分配给进程的地址空间汇总,且共享该进程的所有资源。
2.一个进程被创建后便开始了它的声明周期,直至执行结束而中止,线程在声明期内会经历
就绪态,阻塞态和运行态各种状态变化
3.线程是处理器的独立调度单位,多个线程可以并发执行,交替占用处理器。
4.不同的线程可以执行相同的程序,即同一个服务程序若被不同用户调用时操作系统就为他们将创建不同的
线程。
原文地址:https://www.cnblogs.com/simadongyang/p/10196439.html