[操作系统] 进程的基本概念

9人阅读 评论(0) 收藏 举报
分类:

前言:本篇内容基于《操作系统概念第七版》《操作系统精髓与设计原理原书第六版》整理生成


什么是进程?

进程常常被理解为执行中的程序,这是一种非正式的说法。进程不只是程序代码(程序代码有时被称作文本段或者代码段)。进程还包括当前活动,通过程序计数器的值和处理器寄存器的内容来表示。此外,进程通常还包括:

  • 栈段:包括临时数据如函数参数、返回地址和局部变量
  • 数据段:包括全局变量
  • 堆段:在进程运行期间动态分配的内存

内存中进程的结构如下图:



进程和程序

  • 程序本身不是进程
  • 程序只是被动实体,如存储在磁盘上包含一系列指令的文件内容(常被称作可执行文件
  • 进程是活动实体,它有一个程序计数器来表示下一个要执行的命令和相关的资源集合
  • 当一个可执行文件被装入内存时,一个程序才能成为进程
  • 一个程序可能同时存在多个进程,但进程间是独立的,虽然文本段相同,但是数据段、堆、栈段都是不同的

进程状态(五状态模型)

进程在执行期间会根据特定的环境改变状态,每个进程在任意时刻可能处于下列状态之一:

  1. 新建(New):新创建的进程,系统还没有把它加入到可执行进程组中。通常指进程控制块已经创建但还没加载到内存中的新进程
  2. 运行(Running):进程正在被执行(若计算机只有一个CPU,则每次只能有一个进程处于这个状态)
  3. 等待(Wating):进程等待某个事件的发生(如I/O完成或收到信号)
  4. 就绪(Ready):进程等待分配处理器("进程做好了准备,只要有机会就开始执行")
  5. 终止(Terminated):进程完成执行

 进程状态转移图



一个尤其重要的状态转移:

运行态 -> 就绪态:这种转换最常见的原因有:

  • 正在执行的进程到达了“允许不中断执行”的最大时间段(时间片)
  • 进程A处于执行态,等待队列中有一个优先级更高的进程B的等待事件已发生,则操作系统会把B切换到就绪态,然后中断A的执行,将处理器分派给进程B,A从执行态切换到就绪态(抢占)

进程控制块(PCB)

每个进程在操作系统内用进程控制块来表示,简化的进程控制块的结构如下图:


  • 标识符:与这个进程相关的唯一标识,用来区别其他进程,常表示为进程编号 pid
  • 状态:记录上面提及的状态信息
  • 优先级:相对于其他进程的优先级
  • 程序计数器:对应程序即将被执行的下一条指令的地址
  • 内存指针:包含程序代码和其他与该进程相关数据的地址,还包含和其他进程共享的内存块的地址
  • 上下文数据:进程执行时处理器的寄存器中的数据
  • I/O状态信息:包含显示的I/O请求、分配给进程的I/O设备(如磁带驱动器)和被进程使用的文件列表
  • 记账信息:可能包含处理器时间总和、使用的时钟总和、时间限制和记账号等

进程控制块由操作系统创建和管理,进程控制块包含了充分的信息,这样能保证中断一个正在执行的进程后能再次完整地恢复它原来的执行状态,就像从没中断过一样,所以说,进程控制块是操作系统能支持多进程和提供多处理的关键工具。

查看评论

线程的基本概念及线程与进程的关系

关于线程与进程之间的关系,我觉得有一篇文章讲的很生动形象,这里贴出来供大家参考。进程与线程的一个简单解释 关于线程的理解,同样很生动形象的一个例子。我是一个线程 一. 线程、进程与线程的关...
  • zjwson
  • zjwson
  • 2017-01-15 22:24:50
  • 919

操作系统的基本概念

操作系统的基本概念1.      操作系统的内核是由中断驱动的由于操作系统内核的重要性,为防止用户程序错误调用内核模块而是系统崩溃,所以对操作系统的内核加以特殊保护。解决这个问题的一个方法就是,在实现...
  • lemon_fantasy
  • lemon_fantasy
  • 2008-07-02 10:43:00
  • 4885

进程 (process)和 线程 (thread)是操作系统的基本概念

进程 (process)和 线程 (thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。我发现有一个很好的类比,可以把它们解释地清晰易懂。 计算机的核心是CPU,它承担...
  • u012878609
  • u012878609
  • 2015-11-05 18:09:16
  • 328

《计算机操作系统》期末复习指导

  • 2009年12月30日 10:57
  • 23KB
  • 下载

操作系统中基本概念一

最近整理了一下操作系统的复习,觉得有些概念还是挺棒的,和大家分享 转载请注明出处:http://blog.csdn.net/SX_csu2016sw/ 1.中断:使得CPU从当前任务改变为运行内核...
  • SX_csu2016sw
  • SX_csu2016sw
  • 2017-12-16 21:43:29
  • 198

操作系统概念(第六章) 进程同步(一)

进程同步背景互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据、维护一致性的问题,即进程同步。从底层到高级应用,同步机制依次有临界区、信号量、管程、原子事务。多个进程...
  • u013007900
  • u013007900
  • 2015-11-21 17:06:33
  • 1719

操作系统(7)--进程、线程基本概念

进程的状态 运行态:进程在内存中并可以执行;就绪态:进程做好了准备,只要有机会就开始执行;就绪/挂起态:进程在外存中,但是只要被载入内存就可以执行;阻塞态:进程在内存中并等待一个事件;阻塞/挂起态...
  • woshizuxi
  • woshizuxi
  • 2016-10-03 22:54:25
  • 234

操作系统中进程和线程的一些概念

一、进程 进程:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。     注意,进程一般有三个状态:就绪状态、执行状态和等...
  • do_what_you_can_do
  • do_what_you_can_do
  • 2016-11-24 09:12:48
  • 2366

操作系统学习笔记--操作系统基本概念

综述: 1.操作系统的概念、特征、功能和提供的服务 2.操作系统的发展和分类 3.操作系统的运行环境 4.操作系统的体系结构1.操作系统的概念、特征、功能和提供...
  • Laynalute
  • Laynalute
  • 2016-11-30 18:53:42
  • 1295

让你了解操作系统基本概念

前言:本文是《操作系统教程(陈怀临注释)》的读书笔记,陈首席是在原书pdf 图片上注解,字体比较模糊,故我把注释中觉得比较重要的片段摘录下来。读完此文可以让非技术人员对操作系统有框架性的认识,也可以唤...
  • fanpeihua123
  • fanpeihua123
  • 2016-05-17 15:04:38
  • 7016
    个人资料
    持之以恒
    等级:
    访问量: 1784
    积分: 513
    排名: 10万+