admin管理员组

文章数量:1564635

目录

  • 1. 什么是进程
  • 2. 进程的管理
  • 3. 进程的虚拟地址空间
  • 4. 进程间通信

1. 什么是进程

进程 (process),也叫做任务 (task),是一个抽象的概念。当我们双击一个应用程序,就会有一个进程在操作系统上运行,不妨打开你的任务管理器,里面就跑着一个个的进程。

进程屏蔽了一个程序运行的细节,实际上,一个应用程序运行起来需要各种文件的加载、调用各种硬件…这些操作系统都帮我们做好了,把它们都打包成了一个 “包”,也就是进程,这种假象正是通过抽象了一个进程的概念来完成的。因此我们平常要看一个应用程序是否正常运行,只需要观察这个进程即可,无需去观察它的底部细节。

同时,在操作系统内部,进程又是操作系统进行资源分配的基本单位。


2. 进程的管理

观察观察你的任务管理器,里面少说也同时跑着几十个进程。既然有这么多的进程在同时运行,就要把他们都安排明白了,这个活也交给了我们万能的操作系统。

首先,从何管理?

  1. 先描述:使用一个类 / 结构体,描述清楚这个东西的特征。
  2. 再组织:使用一个数据结构,把这些类 / 结构体都组织起来。

说到这里,你可能会有疑惑,类不是已经很好用了吗,为什么还要用结构体呢?

原因:类是面向对象语言的特征,在面向过程语言中是不存在的。进程管理是操作系统内核的功能,而操作系统内核又是 C 语言实现的,因此操作系统内核只认识 C 语言,C 语言中的结构体就是低配版的类。

这个结构体有一个专门的名字 -> PCB(进程控制块)(敲黑板,这个名字很重要,要牢记)。这个结构体里面就包含了一些进程的核心信息。

在操作系统内核中,又把若干的 PCB 通过双向链表的形式组织了起来。

至此,管理的宏观形式已经介绍完了,接下来,详细介绍一下 PCB 的内容(重点)。

PCB中的主要属性:

  1. 进程的身份表示 pid。这是用来区分不同进程的一个属性,每个进程都有

本文标签: 详解进程javaEE