一、进程的组成

进程通常由程序、数据和进程控制块(Process Control Block,PCB)组成。

二、 进程的状态以及状态切换

  进程执行时的间断性决定了进程可能具有多种状态,最基本的三种状态如下

  ① 就绪状态,当进程已分配到除CPU以外的所有必要资源后,只要再获得CPU,就可以立即运行,进程这时的状态称为就绪状态。在一个系统中可能多个进程处于就绪状态,通常将它们排成一个队列,称为就绪队列。

  ② 执行状态,进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态,在多处理机系统中,则有多个进程处于执行状态。

  ③ 阻塞状态,处于执行状态的线程由于发生某事件而暂停无法继续执行时,便放弃处理机而处于暂停状态,此时进程的状态称为阻塞状态,或等待状态或封锁状态。如IO请求,申请缓存空间等,处于阻塞状态的进程也会排成一个队列,可能还会根据不同的阻塞原因排成多个队列。

  说明:上图表示三种基本状态之间的相互转化。

  除了上述三种基本状态外,在一些系统中,新增了挂起状态,引入挂起状态的原因如下

  ① 终端用户的请求,当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时使自己的程序静止下来,即使正在执行的进程暂停执行;若此时用户进程正处于就绪状态而未执行,则该进程暂不接受调度,以便用户研究其执行情况或对程序进行修改,这种状态就称为挂起状态。

  ② 父进程请求,有时父进程希望挂起自己的某个子进程,以便考查和修改该子进程,或者协调各子进程间的活动。

  ③ 负荷调节的需要,当实时系统中的工作负荷较重,已可能影响到对实时任务的控制时,可由系统把一些不重要的进程挂起,以保证系统能够正常运行。

  ④ 操作系统的需要,操作系统有时希望挂起某些进程,以便检查运行中的资源使用情况或进行记账。

  引入了挂起状态后,又增加了如下几种状态的转化

  ① 活动就绪->静止就绪,当进程处于未被挂起的就绪状态时,称为活动就绪状态;当挂起时,变为静止就绪状态,处于静止就绪状态的进程不接受调度。

  ② 活动阻塞->静止阻塞,当进程处于未被挂起的阻塞状态时,称为活动阻塞状态;当挂起时,变为静止阻塞状态,处于该状态的进程在其所期待的事件发生后,将从静止阻塞变为静止就绪。

  ③ 静止就绪->活动就绪,使用激活原语激活。

  ④ 静

止阻塞->活动阻塞,使用激活原语激活。

  为了进程的管理,还存在着两种常见的状态,即创建状态和终止状态。

  ① 创建状态,创建一个进程一般需要两步。首先,为一个新进程常见PCB,并填写必要的管理信息;其次,把该进程转入就绪状态并插入就绪队列之中。当创建一个新进程时,系统为其分配了PCB,填写了进程标志等信息,但由于该进程所必需的资源或其他信息(如内存)尚未分配等,此时,进程虽拥有了PCB,但是其自身却未进入内存,即创建工作尚未完成,此时进程还不能被调度运行,其所处的状态就是创建状态。

  ② 终止状态,进程的终止也需要两步。首先,等待操作系统进行善后处理,其次,将其PCB清零,并将PCB空间返回给操作系统。进入终止状态的进程以后不能再执行,但是在操作系统中任然保留一个记录,其中保存状态码和一些计时统计数据,供其它进程收集,一旦其它进程完成对终止状态进程的信息提取后,操作系统将删除该进程。

  说明:上述为七种状态之间的转化。

三、进程间的通信

1.互斥

2.同步

3.信号量

PV操作

管程

4.死锁

 

操作系统--进程管理(Processing management)的更多相关文章

  1. 十天学会CS之操作系统——进程管理01

    进程管理01 进程的概念 进程是计算机中一个非常重要的概念,在整个计算机发展历史中,操作系统中程序运行机制的演变按顺序大致可以分为: 单道程序:通常是指每一次将一个或者一批程序(一个作业)从磁盘加载进 ...

  2. 操作系统--进程管理1--单个CPU情况

    1.进程概念 进程:一个正在执行的程序:操作系统提出进程概念目的:是为了跟踪程序在执行期间的状态.而程序只是一段代码,是一个静态的概念 无法准确描述程序执行时候发生的一切.程序代码被加载进内存后就以进 ...

  3. 操作系统实验一:进程管理(含成功运行C语言源代码)

    目录 操作系统实验一:进程管理 1.实验目的 2.实验内容 3.实验准备 3.1.1进程的含义 3.1.2进程的状态 3.1.3进程状态之间的转换 3.2 进程控制块PCB 3.2.1进程控制块的作用 ...

  4. Linux 操作系统(四)用户组管理&进程管理&任务调度

    以下实例均在Centos7下验证 Centos7 查看命令帮助 man xxx 用户组管理 useradd useradd user1 password user1 cat /etc/passwd # ...

  5. Linux操作系统的进程管理

    Linux操作系统的进程管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程相关概念 1>.进程概述 内核的功用: 进程管理.文件系统.网络功能.内存管理.驱动程序. ...

  6. Linux学习之进程管理

    |-进程管理     进程常用命令        |- w查看当前系统信息        |- ps进程查看命令        |- kill终止进程        |- 一个存放内存中的特殊目录/p ...

  7. Linux进程管理 (1)进程的诞生

    专题:Linux进程管理专题 目录: Linux进程管理 (1)进程的诞生 Linux进程管理 (2)CFS调度器 Linux进程管理 (3)SMP负载均衡 Linux进程管理 (4)HMP调度器 L ...

  8. 难部署的taiga,式微的circus——趋势从进程管理到容器管理,简单才是美

    一直需要一个项目管理系统,一直没时间弄. taiga是github上搜project management star最多的项目,又是基于django用python写的后端,所以就用它: 但是,集中精力 ...

  9. linux之进程管理详解

    |-进程管理        进程常用命令        |- w查看当前系统信息        |- ps进程查看命令        |- kill终止进程        |- 一个存放内存中的特殊目 ...

随机推荐

  1. java设计模式--单列模式

    java设计模式--单列模式 单列模式定义:确保一个类只有一个实例,并提供一个全局访问点. 下面是几种实现单列模式的Demo,每个Demo都有自己的优缺点: Demo1: /** * 单列模式需要满足 ...

  2. Access Treeview树节点代码一

    Private Sub TreeView0_Updated(Code As Integer)Dim ndeindex As NodeSet ndeindex = TreeView0.Nodes.Add ...

  3. rsync+innotify做到同步式更新

    innotify主要功能: 他是内核用于通知用户控件程序文件系统变化的机制. 也就是说,当服务器发生了任何的改动,内核都会知道并通知用户. rssync(做同步的)+innotify做到的就是实时的同 ...

  4. bootstrap响应式设计简单实践。

    首先需要熟悉Boostrap提供的响应式设施:http://getbootstrap.com/css/#responsive-utilities,BootStrap的响应式设施主要是利用媒体查询对元素 ...

  5. 设置firefox每次访问网页时检查所存网页的较新版本

    我们做技术,经常在写页面的时候需要多次刷新测试,可是浏览器都有自己的缓存机制,一般CSS和图片都会被缓存在本地,这样我们修改 的CSS就看不到效果了,每次都去清空缓存,再刷新看效果,这样操作太麻烦了. ...

  6. JAVA 第一张 使用记事本编写代码

    使用记事本开发JAVA程序的步骤

  7. java数据库基本操作(sqlserver 2000为例)

    一.环境搭建 1.下载对应数据库连接驱动包并引入. 2.如果在web中调用必须在tomcat中也放入对应的驱动包. 3.在jre的lib\ext中也加入对应的驱动包. 二.连接数据库 public s ...

  8. 在Linux上安装Python3

    1. 安装依赖环境 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline- ...

  9. python爬虫人门(10)Scrapy框架之Downloader Middlewares

    设置下载中间件(Downloader Middlewares) 下载中间件是处于引擎(crawler.engine)和下载器(crawler.engine.download())之间的一层组件,可以有 ...

  10. python爬虫入门(九)Scrapy框架之数据库保存

    豆瓣电影TOP 250爬取-->>>数据保存到MongoDB 豆瓣电影TOP 250网址 要求: 1.爬取豆瓣top 250电影名字.演员列表.评分和简介 2.设置随机UserAge ...