理解“进程”(process)

进程,即process,到底是什么?

OSTEPv1.01第4.1节对其定义如下:

The abstraction provided by the OS of a running program is something we will call a process.

Abstraction在计算机科学和程序开发中是一个相当重要的概念和工具,它表示对于具体细节的忽略和封装。说进程是OS提供的abstraction,说明所有的(至少是现代的)操作系统,不管其底层实现如何,都有这么个相同的概念,用以代表一个正在运行的程序。

那么在这个共有的“进程”概念下,包括了哪些相通的组成部分呢?换句话说,不管在什么操作系统,任一时刻,某个进程都有一个状态,那么这个状态包括哪些内容呢?

  • 内存地址空间:该进程此刻所能访问的内存区域,以及该区域内的大小、具体数据等
  • 寄存器:包括程序计数器(program counter, PC)
  • IO信息:比如说该进程此刻打开的文件、socket等
  • 运行状态:该进程此刻是否正在CPU上运行,是否在等待IO事件等等
  • 其他信息,如该进程当前栈帧的位置

在每个OS的具体实现层面,就必须

  1. 为上面这些数据设计相应的数据结构,除此之外OS还会定义其它的用于管理进程的数据结构
  2. 开发操作这些数据结构及管理进程的逻辑(函数),这部分属于OS的内部逻辑
  3. 提供OS用户使用的操作进程的API(system calls)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 进程 操作系统背景知识 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作...
    go以恒阅读 967评论 0 2
  • 必备的理论基础 1.操作系统作用: 隐藏丑陋复杂的硬件接口,提供良好的抽象接口。 管理调度进程,并将多个进程对硬件...
    drfung阅读 3,595评论 0 5
  • 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概...
    SlashBoyMr_wang阅读 1,179评论 0 3
  • 又来到了一个老生常谈的问题,应用层软件开发的程序员要不要了解和深入学习操作系统呢? 今天就这个问题开始,来谈谈操...
    tangsl阅读 4,179评论 0 23
  • 文/tangsl(简书作者) 原文链接:http://www.jianshu.com/p/2b993a4b913e...
    西葫芦炒胖子阅读 3,827评论 0 5