文章目录

  • 一、进程管理
  • 二、进程的组成
    • 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. 操作系统知识点大总结【进程同步与互斥】

    文章目录 一.临界与同步 1.临界资源与临界区 2.进程同步 3.信号量实现进程同步 二.进程互斥 1.进程互斥的软件实现方法 2.进程互斥的硬件实现方法 3.信号量实现互斥 4.信号量进程互斥 三. ...

  2. 操作系统系列笔记(四) - 进程,线程及CPU调度

    进程和线程 进程 进程是指一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程 进程包含了正在运行的一个程序的所有状态信息, 代码, 数据, 状态寄存器, 通用寄存器, 进程占用系统资源等 进 ...

  3. rtems线程管理与调度(一)

    rtemsahi一个以线程为基本调度单位的实施操作系统,调度算法是基于优先级的抢占式线程调度,支持256个线程优先级,0代表最高优先级,主要用于内部线程,255是最低线程,是空闲线程的优先级,用户线程 ...

  4. 【操作系统】第3章 进程管理与调度

    进程管理与调度 3.1 中央处理器 CPU的构成与基本工作方式 特权指令与非特权指令 处理器的状态 程序状态字 3.2 中断 中断的分类 3.3 进程及其实现 进程的定义 进程分类 进程的特征 进程和 ...

  5. 操作系统知识点大总结

    文章目录 一.操作系统的特征 1.特征关系图 2.四大特征 二.操作系统的发展 三.操作系统提供的接口 四.CPU的运行状态 1.运行状态关系图 2.核心态与用户态 3.核心态与用户态之间的转换 4. ...

  6. 操作系统知识点大总结【管程与死锁】

    文章目录 一.管程 二.死锁 一.管程 1.管程的概念 用信号量可以实现进程之间的同步与互斥,但要设置很多信号量,使用大量的P.V操作,还要仔细安排多个P操作的排列次序,否则将出现错误的结果或死锁现象 ...

  7. 【操作系统】操作系统知识点整理;C++ 实现线程池与windows 线程池的使用;

    文章目录 体系结构 冯诺依曼 存储结构 cache常见的组织结构 cache命中 缓存一致性 硬中断.软中断 操作系统结构 内核 Linux宏内核 内存管理 虚拟内存 内存管理 - 分段 - 分页 - ...

  8. Ubuntu的软件包管理 || 软硬链接 ||进线程浅述

    目录 1.软件包管理 2.文件的压缩和打包 文件的压缩:压缩的对象是文件,并且压缩之后源文件不存在 文件的归档:归档的对象是目录(把文件弄在一个目录下),并将目录变成了一个文件) 3.链接文件的创建 ...

  9. 【操作系统】操作系统知识点学习与整理

    本笔记基于 小林coding的图解系统 学习与整理 一.硬件结构 冯诺依曼模型 五个部分: 中央处理器(CPU).内存.输入设备.输出设备.总线 CPU: 32位CPU一次可以计算4个字节的数据,能计 ...

最新文章

  1. php字符串替换多余逗号_PHP字符过滤函数去除字符串最后一个逗号(rtrim)
  2. 为什么正则化可以起到对模型容量进行控制_正则化为什么能防止过拟合(重点地方标红了)...
  3. ceb文件在线查看_教你word、excel、ppt、pdf、ceb等格式免费转换,从此告别苦恼
  4. 给不会调用C++STL库中二分函数lower_bound,upper_bound,binary_search同学的一些话!
  5. 复制K2流程图实现记录
  6. 中科大「少年班」对手来了!清华「丘成桐领军计划」招收优秀中学生
  7. 【Elasticsearch】elasticsearch 7.x 查看分片未分配 (UNASSIGNED) 的原因
  8. 同时更改一条数据_数据仓库amp;面试总结
  9. 静心的最好的方法是什么?
  10. 未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出...
  11. 完成端口中的单句柄数据结构与单IO数据结构的理解与设计
  12. 【瑕疵检测】基于matlab瓶盖瑕疵检测【含Matlab源码 730期】
  13. 麦咖啡服务器怎么进系统,麦咖啡(McAfee)系统托盘图标不见了怎么办?
  14. golang开发需要掌握的核心包以及中间件,涵盖项目的各个领域,值得收藏
  15. MTF的倾斜边缘计算方法
  16. 为什么用了这么多社交软件,你还是要回家相亲
  17. 大数据入门:Scala大数据黄金语言
  18. 图像超分辨重构(SR)论文整理————适用于刚接触这个领域的初级研究者。(持续更新)
  19. 2013年9月计算机一级考试题,2013年9月计算机一级考试MsOffice备考题及答案2
  20. 电影《大长今》励志启示

热门文章

  1. tiptop 编译运行_putty终于让我的TIPTOP脱离虚拟机在64位上运行了。
  2. 综合前置接口报文规范_浅谈用HttpRunner进行接口自动化测试
  3. anki 新的卡片类型_用 Anki 建立高效复习错题体系
  4. 新乡学院2019计算机报名,新乡学院2019年招生章程
  5. Caused by: java.net.ConnectException: Connection refused: no further information
  6. Android花屏分析,Unity游戏在手机上运行时的花屏现象
  7. java 反射获取属性名和值_面试官这样问我Java反射原理,我刚好都会
  8. mysql 修改字段长度_面试官:InnoDB记录存储结构都不知道,你敢说你懂MySQL?
  9. php与mysql关系大揭秘_【慕课笔记】PHP与MySQL关系大揭秘
  10. dump mysql database,Mysql Database 逻辑备份: mysqldump