操作系统知识点大总结【进线程管理与调度】
文章目录
- 一、进程管理
- 二、进程的组成
- 1、进程的概念
- 2、进程的程序段、数据段、PCB
- 三、进程的特征与状态
- 1、进程的特征
- 2、进程的基本状态
- 3、进程的运行状态
- 四、进程的控制
- 五、进程的通信与运行
- 1、进程的通信
- 2、进程的运行步骤
- 3、进程间的约束关系
- 六、线程
- 1、线程的特点
- 2、线程的实现方式与引用目的
- 七、进线程的调度
- 1、调度的层次
- 2、调度方式
- 3、调度的评价指标
- 4、进线程的调度算法
一、进程管理
进程管理是一个非常大的概念,包括了很多个方面,其中每个方面都可以分开来深入分析,本篇文章着重分析的是进程管理几大方面中的前3个,也就是进程的相关概念、线程的相关概念、进程与线程的调度。
二、进程的组成
1、进程的概念
程序是静止的,进程是动态的,进程包括程序和程序处理的对象。因此可以说,进程就是运行着的程序,或者进程是程序的一次实验。
- 进程是可并发执行的程序的一次执行过程;
- 是系统进行资源分配和调度的一个独立的基本单位和实体;
- 是一个动态的概念。
(1)程序顺序执行:顺序性,封闭性,可再现性。
(2)程序并发执行:间断性,无封闭性,可再现性
2、进程的程序段、数据段、PCB
(1)程序段:
程序段就是用来存放程序的段,可以是一个子过程SUB,一个函数FUNCTION(用面向对象的观点或称为方法);程序都是从上到下施行的。
(2)数据段:
用于存放数据的段,使用时候,用CS寄存器。
其实,内存并没有分段,段的划分来自于CPU。由于8086CPU用“基础地址(段地址×16)+偏移地址=物理地址”的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。
(3)PCB(Process Control Block)
也就是进程控制块,是一个用来描述进程本身的特性、进程的状态、进程的调度信息及对资源的占有情况的数据结构。
三、进程的特征与状态
1、进程的特征
2、进程的基本状态
主要分为:
关系为:
3、进程的运行状态
- 系统态(核心态,管态)具有较高的访问权,可访问核心模块。
- 用户态(目态)限制访问权。
四、进程的控制
(1)进程创建的工作
分配一个PCB,拷贝父进程的PCB的绝大部分数据
给子进程分配资源
复制父进程地址空间的数据
将进程状态置为就绪态,插入就绪队列
(2)进程何时终止
代码运行完毕,结果正确
代码运行完毕,结果不正确
代码异常终止。
(3)进程的退出
正常退出:
用main退出
调用exit
_exit异常退出
ctrl+c ,信号终止_exit与exit的区别
进程终止时,_exit是强制终止的。
exit会执行用户通过atexit或on_exit定义的清理函数,关闭所用打开的流,所有的缓存数据均被写入,调用_exit.
(4)引起进程的阻塞与唤醒的事件
向系统申请资源时失败。如一个进程(A)申请打印机但是此时打印机被其他进程(B)正在使用,此时A进程则处于阻塞状态。
等待某种操作:进程A启动了某I/O设备,如果只有完成了指定的I/o任务后进程A才能执行,则进程A启动了I/O设备后会自动进入阻塞。
新数据尚未到达:对于相互合作的进程,如果一个进程需要先获得另一个进程的数据后才能对该数据进行处理,只要数据尚未到达其便会进入阻塞状态。
等待新任务的到达:每当这种进程完成自己的任务便把自己阻塞起来,等待新任务到达,才将其唤醒。
(5)进程阻塞的过程
正在执行的进程,如果遇到上面阻塞的事件后,进程便调用阻塞原语block将自己阻塞,(阻塞是进程自身的一种主动行为)并将正在运行的进程立即停止运行,并把PCB中进程状态信息改为阻塞,并将PCB插入阻塞队列,如果系统设置了不同阻塞原因的队列,则应将其插入到对应原因引起的阻塞队列中。
(6)进程唤醒的过程
当被阻塞进程所期待的事件发生时则有关的进程会调用唤醒原语(wakeup),将等待的进程唤醒,首先把阻塞的进程从阻塞队列中移除,将其PCB插入就绪队列中
五、进程的通信与运行
1、进程的通信
2、进程的运行步骤
3、进程间的约束关系
(1)互斥关系:进程之间由于竞争使用共享资源而产生的相互约束的关系。这种因共享资源而产生的制约关系称为进程的互斥。
(2)同步关系:并发执行进程之间通过在执行时序上的某种限制而达到相互合作的这种约束关系称为进程的同步—直接相互制约关系。
(3)临界资源:凡是以互斥方式使用的共享资源都称为临界资源,临界资源具有一次只允许一个进程使用的属性。
(4)临界区:每个进程互斥访问临界资源的那段代码称为临界区。
六、线程
1、线程的特点
线程就是进程的一个实体,是被独立调度和分配的基本单位,表示进程中的一个控制点,执行一系列指令。在实际的操作系统中,基本上都是多线程少进程的,因此可以说,相对于进程,线程更是操作系统调度的基本单位。
2、线程的实现方式与引用目的
七、进线程的调度
1、调度的层次
2、调度方式
(1)非剥夺式调度:分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生 进程调度某事件而阻塞时,才把处理机分配给另一个进程。
(2)剥夺式调度:当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。
实际上它们都是处理机即资源的分配方式,只不过准则方法不同而已。
3、调度的评价指标
4、进线程的调度算法
操作系统知识点大总结【进线程管理与调度】相关推荐
- 操作系统知识点大总结【进程同步与互斥】
文章目录 一.临界与同步 1.临界资源与临界区 2.进程同步 3.信号量实现进程同步 二.进程互斥 1.进程互斥的软件实现方法 2.进程互斥的硬件实现方法 3.信号量实现互斥 4.信号量进程互斥 三. ...
- 操作系统系列笔记(四) - 进程,线程及CPU调度
进程和线程 进程 进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程 进程包含了正在运行的一个程序的所有状态信息, 代码, 数据, 状态寄存器, 通用寄存器, 进程占用系统资源等 进 ...
- rtems线程管理与调度(一)
rtemsahi一个以线程为基本调度单位的实施操作系统,调度算法是基于优先级的抢占式线程调度,支持256个线程优先级,0代表最高优先级,主要用于内部线程,255是最低线程,是空闲线程的优先级,用户线程 ...
- 【操作系统】第3章 进程管理与调度
进程管理与调度 3.1 中央处理器 CPU的构成与基本工作方式 特权指令与非特权指令 处理器的状态 程序状态字 3.2 中断 中断的分类 3.3 进程及其实现 进程的定义 进程分类 进程的特征 进程和 ...
- 操作系统知识点大总结
文章目录 一.操作系统的特征 1.特征关系图 2.四大特征 二.操作系统的发展 三.操作系统提供的接口 四.CPU的运行状态 1.运行状态关系图 2.核心态与用户态 3.核心态与用户态之间的转换 4. ...
- 操作系统知识点大总结【管程与死锁】
文章目录 一.管程 二.死锁 一.管程 1.管程的概念 用信号量可以实现进程之间的同步与互斥,但要设置很多信号量,使用大量的P.V操作,还要仔细安排多个P操作的排列次序,否则将出现错误的结果或死锁现象 ...
- 【操作系统】操作系统知识点整理;C++ 实现线程池与windows 线程池的使用;
文章目录 体系结构 冯诺依曼 存储结构 cache常见的组织结构 cache命中 缓存一致性 硬中断.软中断 操作系统结构 内核 Linux宏内核 内存管理 虚拟内存 内存管理 - 分段 - 分页 - ...
- Ubuntu的软件包管理 || 软硬链接 ||进线程浅述
目录 1.软件包管理 2.文件的压缩和打包 文件的压缩:压缩的对象是文件,并且压缩之后源文件不存在 文件的归档:归档的对象是目录(把文件弄在一个目录下),并将目录变成了一个文件) 3.链接文件的创建 ...
- 【操作系统】操作系统知识点学习与整理
本笔记基于 小林coding的图解系统 学习与整理 一.硬件结构 冯诺依曼模型 五个部分: 中央处理器(CPU).内存.输入设备.输出设备.总线 CPU: 32位CPU一次可以计算4个字节的数据,能计 ...
最新文章
- 前端开发我为什么选择cordova
- 符号说明表怎么做_教会你的孩子正确使用标点符号
- 企业选择网站建设能够对自身带来哪些作用?
- 058_JavaScript函数arguments对象
- 与WebXR共同创建者Diego Marcos一起探讨沉浸式Web的未来(上)
- 深度解析,教你如何打造自动驾驶的数据闭环
- 用FFmpeg从视频截取任意一帧图片的解决办法~
- 用户需求、己、竞争对手的关系
- 工作流实战_04_flowable 流程的模板的图片和xml显示
- C#LeetCode刷题之#541-反转字符串 II(Reverse String II)
- Flutter学习之纵向布局
- ubuntu 下安装apache服务器
- 201609-1-最大波动
- PLSQL Developer安装破解 ,以及连接配置
- xul界面编程语法_探索XUL中的多线程编程
- Open Gapps各版本介绍
- QT软件开发-基于FFMPEG设计视频播放器-流媒体播放器(五)
- 快门光圈感光度口诀_怎么利用光圈快门感光度
- 速达开发版ERP移动端 App 操作使用说明
- 去中心化云存储的前世今生 | 存储技术分享活动回顾
热门文章
- php大量数据库抽象,数据库的数据抽象有几个级别
- mysql左外连接条件_mysql – 左外连接的MAX条件
- android 图片转base64内存变大了_开发者最喜爱的图片编码格式:opencv编码,解码,显示base64图片...
- 电子围栏判断_电子围栏大用处:进出罐箱指定区域自动通知amp;罐箱库存和使用率自动计算...
- 使用计算机系统管理商品存货,ERP管理系统中编码的意义
- Java注解 编译_Java注解(3)-注解处理器(编译期|RetentionPolicy.SOURCE)
- java 自定义登录态_java – 自定义HTTP状态代码
- linux进程实现进程通信内存共享,Linux进程间通信 -3内存共享
- elementui 菜单标题_elementUI 动态渲染三级菜单
- python numba 转灰度图_Python数据预处理:Dask和Numba并行化加速!