pthread_join 等待一个特定线程的退出
进程控制块分为调度信息和现场信息 进程标识符 进程当前状态 代码段指针
进程从运行——>就绪的原因可能是:1.被调度程序抢占处理机 2.进程完成创建 3.时间片用完
非抢占式能引起新的进程调度是:1.正在执行的进程运行完毕 正在执行的进程调用阻塞原语将自己阻塞进入等待状态3.正在执行的进程调用阻塞原语并因资源不足被阻塞 4.唤醒原语激活了资源进程 时间片用完
进程由:进程控制块 数据 指令代码组成
引入进程的原因:提高并发度 减少通信开销 线程之间的切换时间短 每个线程都有独有的栈
等待——>就绪 唤醒
当设备忙进程会进入等待状态 不会终止
运行中的三种状态:就绪 等待 运行
运行——>就绪 现场的信息都会保存到进程控制块当中
不同的进程执行的代码段可能相同
与本进程相关的内容只能由操作系统读取
当进程中请处理机得不到满足时 他将进入就绪态
管程只允许一个进程进入管理 从而实现进程的互斥 但无法保证其本身互斥
进程优先级:静态和动态 系统进程优先级高于用户进程优先级 静态优先级 进程创建时确定运行期间不会改变 动态优先级 创建时确定优先级 之后不断改变
所有进程必须调度才能在处理机上运行 没有被调度到的进程只能处于等待状态 操作系统可以根据不同情景分类应用多种进程调度算法
一个进程的状态变化不一定会引起令一个进程的状态变化 信号量初值一定大于0 进程是资源分配的基本单位 线程是处理机调度的基本单位 进程被挂起他可以是阻塞也可以是挂起 PV主要实现进程的互斥与同步
手动 阻塞——>挂起 suspend()
pthread_mutex_init() 创建一个互斥量
进程控制块PCB每个进程都有常驻内存 将CPU 分配给选中的进程 将CPU进程的现场信息保存到进程控制块当中 将选中的进程现场信息送到响应的寄存器中
单核处理机:处于运行状态的进程至多一个至少0个
调度时机 进程运行完毕 自我阻塞 时间片用完 资源没准备好 出现错误
可再入程序: 纯代码程度 运行中不需要修改
线程描述记录的信息有:线程ID 指令地址存储器 处理器寄存地址 硬件设备寄存的值 栈现场状态等少量私有线程
进程控制块的组织方式:线性方法 索引方法 链接方法
运行——>阻塞必然会引起一个状态到另一个状态的变化
三种线程实现机制:用户线程 内核线程 独立线程
实时系统算法设计的目标是:满足截至时间要求 满足可靠性要求
运行批处理作业大型计算中心算法设计目标:较高的CPU利用率 较短的周期时间 较大的吞吐量
现场信息:程序状态字 时钟 界地址寄存器
调度信息:进程名进程号存储信息 优先级当前状态资源清单 ”家族“关系
phread_create的四个参数(线程标识指针,用参数设置线程属性,入口函数的起始地址,入口函数的参数)
进程再花费计算和I/O时间不同分为两类:1。时间上花费多的是时间密集型 2.I/O上花费多的是I/O密集型
进程撤销原语撤销进程:找到对应进程的PCB 撤下其他的子孙进程 释放进程子u按 撤销该进程PCB
进程由:程序 数据 进程控制块组成 程序:指令 代码 数据
其中可能会出现的状态转换是:就绪态——>就绪挂起状态 运行态——>就绪挂起状态 阻塞态——>阻塞挂起状态 阻塞挂起状态——>就绪挂起状态
三种可能会出现的状态转换是:就绪态——>运行态 运行态——>阻塞态 运行态——>就绪态
进程具有并发性 动态性 独立性 交往性 异步性
异步性:每个进程都按照自己独立且不可预知的状态向前推进
进程控制原语有:创建进程 撤销进程 挂起进程 激活进程 唤醒进程 改变进程优先级
采用多线程模型的操作系统中 进程是资源分配的基本单位 线程是处理调度的基本单位
多道中程序设计:允许多个程序同时进入内存中并行
就绪——>运行一定不会引起调度 运行——>阻塞需要的数据没准备好
进程的调度:任何进程调度厚才能运行 操作系统可以根据不同的情景分类应用多种进程调度算法 交互式系统一般采用时间片轮转调度算法
原文地址:https://www.cnblogs.com/liugangjiayou/p/11456741.html