目录

  • 1、进程描述
    • 1.1 进程的定义
      • 1.1.1 单道程序阶段
  • 1.1.2 多道程序阶段
      • 1.1.3 进程实体
    • 1.2 进程的组织
      • 1.2.1 链接方式
      • 1.2.2 索引方式
    • 1.3 进程的特点
    • 1.4 总结

1、进程描述

1.1 进程的定义

在看进程之前,先看看程序的定义:
程序:就是一个指令序列;

1.1.1 单道程序阶段

早期的计算机只支持单道程序,在计算机中同一时间段只能有一道程序在运行,正在运行的程序,CPU只为这个程序服务,内存当中只会存放这个程序的信息,各种各样的IO设备,所有的系统资源都为当前执行的程序进行服务。

在这一阶段,内存当中同一时间段内只会存在与一个程序相关的数据,与这个程序运行相关的程序包括程序段和数据段两个部分。其中程序段保存的就是程序的代码本身,也就是程序要执行的指令序列,这些指令是存放在程序段中的。而数据段存放的是程序运行过程当中所需要的一些数据,比如写程序时的一些变量。由于这个阶段计算机在一个时间段内只会有一道程序指令序列要执行,这道程序相关的信息、数据只需要存储到内存中的某一些固定的位置就可以了,比如说程序段可以存放到内存的低地址部分,就是图中的内存最上面部分,而数据段可以存放在内存的高地址部分。CPU在执行这些程序的指令的时候要到内存的低地址部分来取得程序相关的指令,然后按照指令一条一条往下执行就可以了。同样,如果要找到程序对应的数据,只需要到对应的数据段内存分区寻找就可以了。所以这就是单道程序的一些特性。

1.1.2 多道程序阶段

引入多道程序技术之后,计算机当中同一时刻可以有多道程序并发执行,内存当中也会有多道程序相关的数据和程序段。由于在这个阶段内存中要存放多个程序的数据,操作系统作为程序的管理者,要让程序实现并发的执行,操作系统需要找到各个程序的程序代码存放的位置,也就是各个程序在内存中的程序段分别在什么位置。系统中的各种I/O设备还有其它一些资源可能被分配给不同的程序,每一个正在运行的程序当前被分配了哪些系统资源,这些信息也需要记录下来,这样可以方便操作系统进行管理。

为了方便操作系统管理,完成各种程序并发执行,引入了进程、进程实体的概念。操作系统在每个程序开始执行之前,都会为即将执行的程序创建一个PCB(进程控制块)的数据结构,PCB会存放操作系统用于管理这些正在运行的程序所需要的各种信息,比如程序代码存放位置等。

PCB、程序段、数据段就构成了进程实体,也可以成为进程映像。一般情况下,可以把进行实体简称为进程。例如,所谓创建进程,实质上是创建进程实体中的PCB,而撤销进程,实际上是撤销进程实体中的PCB。

需要注意的是,PCB是进程存在的唯一标志。

从不同的角度,进程可以有不同的定义,比较传统典型的定义有:

  1. 进程是程序的一次执行过程;
  2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动;
  3. 进程是具有独立功能的程序在数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单元;

所有的这些定义都在强调一个事情,进程是一个动态的过程。引入进程实体的概念后,可以把进程定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位;

严格来说,进程和进程实体并不一样,进程实体是静态的,进程则是动态的。

1.1.3 进程实体

进程(进程实体)由程序段、数据段、PCB三部分组成。程序段存放的是程序的代码本身,一系列的指令序列。在这一系列的指令运行过程中,可能会有一些中间的运算结果还有运行的数据,比如变量或宏定义的常量,这些程序运行当中所需要的数据就是存放在数据段中。PCB是操作系统用于管理进程的,PCB是用于管理并发的数据结构,所以PCB当中包含操作系统对进程进行管理的各种信息。

具体看一下PCB中有哪些信息:

1.2 进程的组织

在一个系统中,通常有数十、数百乃至数千个PCB。为了能对他们加以有效的管理,应该用适当的方式将这些PCB组织起来。

进程的组成讨论的是一个进程内部由哪些部分组成的问题,而进程的组织讨论的是多个进程之间的组织方式问题

进程的组织方式主要分为连接方式和索引方式。

1.2.1 链接方式

链接方式其实就是操作系统会持有一系列的指针,每一个指针会指向不同状态的进程队列,执行指针指向当前处于运行状态(运行态)的进程,也就是正在被CPU处理的进程,单CPU计算机中,同一时刻只会有一个进程处于运行态,所以执行指针指向一个进程的PCB。

除此之外,操作系统还会有就绪队列指针,指向当前处于就绪状态的进程,这些进程的PCB,操作系统会用链接的方式链接成一个队列,通常优先级较高的进程会放在队头。

操作系统还会有一个阻塞队列指针,用于指向当前处于阻塞状态的进程。

1.2.2 索引方式

索引方式和链接方式很类似,不同之处在于指针指向的是一个索引表,而不是一个队列的队头,而索引表的表项又会指向处于就绪状态的PCB,操作系统会为不同状态的进程建立不同的阻塞索引表,各个索引表的表项又指向处于这个状态的进程的PCB

1.3 进程的特点

进程和程序是两个截然不同的概念,相比于程序,进程有以下特征:

1.4 总结

操作系统——进程的定义、组成、组织方式、特征相关推荐

  1. 进程的定义组成组织方式特征

    程序的定义 程序:就是一个指令序列 早期的计算机(只支持单道程序): 进程的定义 引入多道程序技术之后: 允许多个程序并发执行,将失去封闭性,具有间断性及不可再现性. 进程控制块(PCB):为了使参与 ...

  2. 【王道操作系统笔记】进程定义组成组织方式特征

    进程定义 程序:指令序列 内存中同时放入多道程序,各个程序的代码,运算数据存放的位置不同. 系统在每个程序执行之间,会在内存创建一个数据结构,称为进程控制块(PCB),用来描述进程的各种信息(如程序代 ...

  3. 操作系统—进程的定义、组成和组织方式(思维导图)

    这段时间将介绍进程相关的内容,今天先开个头,整理下进程这一部分的基本概念. 建议将思维导图保存下来观看,或者点击这里在线观看

  4. 操作系统---进程生命周期

    进程生命周期 一. 进程控制块(PCB) 二. 进程的创建 ① . 申请空白PCB ②. 为新进程分配其运行所需的资源 ③. 初始化进程控制块PCB ④. 插入就绪队列 三. 进程的终止 ①. 正常结 ...

  5. 操作系统学习笔记-2.1.1.进程的定义、组成、组织方式、特征

    操作系统学习笔记-2019 王道考研 操作系统-2.1.1.进程的定义.组成.组织方式.特征 文章目录 2.1.1.进程的定义.组成.组织方式.特征 1.1知识概览 1.2进程的定义 1.3进程的组成 ...

  6. 进程的定义,组成,组织方式,特征【操作系统学习笔记】

    7.进程的定义,组成,组织方式,特征 in 操作系统

  7. 王道 —— 进程的定义、组成、组织方式、特征

    目录 1.知识总览 2.进程的定义 3.进程的组成 4.进程的组织方式 5.进程的特征 6.知识总结 1.知识总览 2.进程的定义 程序:就是一个指令序列: 早期计算机只支持单道程序,因此在计算机中同 ...

  8. 【操作系统复习】进程的定义、组成、组织方式

    进程的定义.组成.组织方式 一.进程的定义 二.进程的组成 三.进程的组织 四.进程的特征 一.进程的定义 程序:就是一个指令序列 早期的计算机(只支持单道程序) 引入多道程序技术之后: 为了方便操作 ...

  9. 【学习笔记】第二章——进程的定义、组成、组织方式、特征、状态 转换

    文章目录 1. 定义 & 组成 2. 进程的组织 3. 特征 1.2.3 总结导图 4. 状态 5. 转换 4.5 总结导图 1. 定义 & 组成 一般直接把进程实体称为进程,但是严格 ...

最新文章

  1. mvc 下的 signalR使用小结
  2. 三国时期,假如曹操是一名程序员,历史会发生什么?--文末送书
  3. 最小公倍数(Least Common Multiple)
  4. IDEA 2017 安装后 关联SVN
  5. 特来电CMDB应用实践
  6. Stack Overflow 上人气爆表的10个 Java 问题
  7. Spring IOC的理解总结
  8. Gradle Android客户端程序打包(基于gradle 2.10版本验证通过)
  9. 【python教程入门学习】五、Python中的列表(list)
  10. Oralce SQLPlus 以及shell脚本中spool输出到文件时的格式化输出
  11. 月入过万的外卖CPS红包小程序源码分享(附搭建教程)
  12. 面试题01.05.一次编辑
  13. linux awk比较大小,linux基础只是之awk命令使用,统计最大长度
  14. python3 币种汇率计算
  15. Msfvenom的简单用法
  16. SQL 身份证获取性别
  17. vue中textarea监听粘贴事件获取图片
  18. ubuntu20.04[centos7、win类似]记录
  19. 百度云管家开始耍流氓了
  20. Hexo搭建Github-Pages博客填坑教程

热门文章

  1. JQuery AJAX 加载 HTML代码“lt”形式的。怎么解析成形式,并且把img解析成图片输出到浏览器中。...
  2. 使用MariaDB后端在Ubuntu 18.04 / Debian 9上安装PowerDNS和PowerDNS-Admin
  3. AttributedString 图片间距问题
  4. python把函数作为参数的函数
  5. github 和git_Google编码文档:Git和GitHub
  6. mvp内粗泄露问题_如何在一天内从MVP转到生产服务器
  7. 赠送300家门店260亿销售额的零售企业Power BI实战示例数据
  8. Java 约瑟夫环(循环链表解决)
  9. 尚学堂java 答案解析 第六章
  10. java解析消息头代码_javaWeb项目-文件下载的消息头和编码问题