计算机四级 - 数据库原理(操作系统部分)- 第3章「进程线程模型」
平均周转时间计算案例: |
|
|
- 线程是进程中的一个实体,是处理器调度和分派的基本单位,不能独立于进程存在。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器、一组寄存器和栈)。
- 线程的优点:
- 创建速度快
- 切换时间少
- 线程间通信简便
- 可以独立并发执行
- 线程的优点:
- 在多线程系统中,进程通常作为资源的拥有者(如内存等),而实际的执行和调度则由线程来完成。所以说:进程只参与资源分配,不参与调度;线程只参与调度,不参与资源分配。
- 线程描述表需要记录的信息:线程ID、指令地址寄存器、处理器寄存器、硬件设备寄存器、栈现场状态等少量线程私有信息
- 进程的必要组成部分:程序(代码)、数据、进程控制块
- 程序的组成部分:指令代码、数据等
- 导致一个进程去创建另一个进程的典型事件:用户登录、系统初始化、用户系统调用、初始化批处理作业
- 进程控制块(PCB),系统为了管理进程设置的一个专门的数据结构,用它来记录进程的外部特征,描述进程的运动变化过程。系统利用PCB来控制和管理进程,所以PCB是系统感知进程存在的唯一标志。进程与PCB是一一对应的。
- 进程控制块的基本内容:
- 进程标识符:外部标识符、内部标识符
- 处理机状态:由处理机的各种寄存器中的内容组成
- 进程调度信息:进程状态、进程优先级、进程调度所需的其他信息
- 进程控制信息:程序和数据的地址、进程同步与通信机制、资源清单(列出所拥有的除CPU外的资源记录,如拥有的I/O设备,打开的文件列表等)、链接指针
- 进程控制块的组织方式:线性方法、索引方法、链接方法。
- 进程控制块的基本内容:
- 进程控制块(PCB)的内容一般可以分成调度信息和现场信息两大部分:
- 现场信息包括:程序状态字、时钟、界地址寄存器等
- 调度信息包括:进程名、进程号、存储信息、优先级、当前状态、资源清单、“家族”关系、消息队列指针、当前打开文件清单等。
- 进程的特性:
- 并发性:微观上不同进程交替占用资源向前推进,宏观上不同的进程一起向前推进。
- 动态性:其一,进程动态产生、动态消亡;其二,在进程生命周期内,其状态动态变化。
- 独立性:一个进程是一个相对完整的资源分配单位。
- 交往性
- 异步性:每个进程按照各自独立的、不可预知的速度向前推进
- 进程的基本状态:
-
进程的3种基本状态及其转换关系:
进程的7种基本状态及其转换关系:
七状态进程模型把原来的就绪状态和阳塞状态进行了细分,增加了就绪挂起和阻塞挂起两个状态,这种做法的好处是:提高处理机效率、可为运行进程提供足够内存、有利于调试。
以上的3态、7态图中状态转换需牢记
- 当进程处于运行状态时,表示进程占用处理机资源
- 当进程处于就绪状态时,表示进程已获得除处理机外的所有资源
- 当进程处于阻塞状态时,表示进程因某种原因而暂时不能运行的状态
- 当进程处于挂起状态时,表示进程被转存到磁盘
-
- 在抢占式调度系统中,进程从运行状态转换为就绪状态的可能原因有:进程创建完成、时间片用完和被调度程序抢占处理机。
- 创建一个新进程的过程:
- 申请空自PCB。
- 为新进程分配资源。
- 初始化进程控制块。
- 将新进程插入就绪队列,如果进程就绪队列能够接纳新进程,便将新进程插入到就绪队列中
- 撤销进程的实质是撤销进程PCB,具体撤销过程是:
- 找到要被撤销进程的PCB,将它从所在的队列中除去
- 撒销属于该进程的一切“子孙进程”
- 释放被撤销进程所占用的全部资源,并消去被撤销进程的PCB
- 唤醒进程的具体操作过程是:
- 在等待队列中找到该进程,置进程的当前状态为就绪状态
- 然后将它从等待队列中撤出并插入到就绪队列中排队,等待调度执行
- 阻塞进程的具体操作过程:
- 中断CPU执行
- 把CPU的当前状态保存在PCB的现场信息中
- 把进程的当前状态需为等待状态,并把它插入到该事件的等待队列中
- 引起进程阻塞的事件:请求系统服务、启动某种操作、新数据尚未到达、无新工作可做
- 引起进程终止的事件:被0除、对只读内存执行写操作、堆栈溢出
- 挂起主要把一个进程从内存转到外存。
- 当一个进程由于系统内存不足而暂时被保存到外存上时,该程序会从就绪状态转换为就绪挂起状态。
- 当一个进程由于长期阻塞而暂时被保存到外存上时,该程序位于阻塞挂起状态。
- 进程具有多种状态,操作系统改变进程状态主要是通过调用进程控制原语实现
- 把进程从阻塞态转换为挂起态使用的原语是:suspend()
- 用于进程控制的原语一般有:创建进程、撤销进程、挂起进程、激活进程、阳塞进程、唤醒进程以及改变进程优先级等
- Linux上进程有5种状态,分别是:运行、中断、不可中断、僵死、停止
- 系统调用传递参数的方法:寄存器传递、堆栈传递、指令自带传递
- 调度分为高级调度、中级调度和低级调度,其中进程调度为低级调度
- 设计调度算法的目标取决于环境,系统分类通常分为批处理、交互式和实时系统三类。
- CPU利用率、吞吐量和周转时间常常用于对批处理系统的度量。
- 对于交互式系统,特别是分时系统和服务器,最重要的是最小响应时间,即从发出命令到得到响应之间的时间。
- 实时系统的特点是或多或少必须满足截止时间。
- 在进程调度算法中若采用最高优先级算法则会跟据进程的优先级来决定进程调度的优先次序,分为静态优先级和动态优先级两种方法确定进程的优先级。
- 一般地,系统进程的优先级应高于用户进程的优先级;
- 若采用静态优先级,在进程创建时确定了优先级,进程运行期间优先级不会改变;
- 若采用动态优先级,在创建时先确定一个初始优先级,在进程运行中随着进程特性改变(如等待时间增长),不断改变先级。
- 多道程序设计:允许多个程序同时进入内存并运行
- 特征:多道、宏观上并行、微观上串行
- 根本目的:提高整个系统的效率
- 衡量多道程序设计系统效率的指标:系统吞吐量
- 特点:独立性、随机性、共享性
- 在单道顺序环境下,或者A程序先执行,然后B程序执行;或者B程序先执行,然后A程序执行。
- 小小计算题(重要):某一单核处理机的计算机系统中共有20个进程,那么,处于运行状态的进程最多为1个,处于运行状态的进程最少为0个,处于就绪状态的进程最多为19个,处于就绪状态的进程最少为0个,处于阻塞状态的进程最多有20个。······【其余的4核、8核、4处理器8核等等都一样】
其余章节进我主页进行查看