进程管理(一)——进程

本文详细介绍了进程管理,包括进程的动态性和独立性,进程的创建、终止、阻塞和唤醒,以及进程状态的变迁。重点讲解了进程控制块(PCB)的内容,进程的状态队列,以及进程的上下文切换。还探讨了进程的层次结构,如父子进程、孤儿进程和僵尸进程,并提到了写时复制技术。最后讨论了用户态和内核态的概念以及它们在进程执行中的角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言-为什么需要进程?

进程这个概念是在多道程序设计中引入的,在此之前的是批处理程序,所以进程主要是用来解决程序不能并发执行从而导致 CPU 利用率低下这个问题的。

进程管理,就是在程序之上抽象出了进程的概念,然后通过进程状态、上下文切换、中断、调度等等手段,最终实现使程序在多道程序环境下能并发执行,并能对并发执行的程序加以控制和描述

进程

Process,一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。

一个进程包含以下信息:

  • 代码
  • 数据
  • 状态寄存器,如 CPU 的状态,PC 指针等
  • 通用寄存器,如堆栈指针寄存器等
  • 进程占用系统资源,打开文件,已分配的内存信息等

进程的特点

  • 动态性:可动态地创建、结束进程。
  • 并发性:进程可以被独立地调度并占用处理机运行。
  • 独立性:不同进程的工作不相互影响。
  • 制约性:因访问共享数据/资源或进程间同步而产生制约。

进程与程序的联系

  • 程序是产生进程的基础;进程是程序功能的体现.
  • 程序的每次运行构成不同的进程。
  • 通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。

进程与程序的区别

  • 进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。
  • 进程是暂时的,程序是永久的:进程是一个状态变化的过程,程序可长久保存。
  • 组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)。
进程表

进程表存储在内核空间中,包含进程 ID 和进程控制块信息,以下是典型的进程表中的一些字段(都在 PCB 中):

在这里插入图片描述

操作系统在进程表中维护指向每个进程 PCB 的指针, 以便它可以快速访问 PCB。

在这里插入图片描述

PCB

在操作系统中,是用 PCB(Process Control Block,进程控制块)数据结构来描述进程的基本情况以及运行变化的过程。PCB 是进程存在的唯一标识,这意味着一个进程的存在,必然会有一个 PCB,如果进程消失了,那么 PCB 也会随之消失。

PCB 具体包含以下三类信息:

进程标识信息:

  • 进程标识符:标识各个进程,每个进程都有一个并且唯一的标识符。
  • 用户标识符:进程归属的用户,用户标识符主要为共享和保护服务。

进程控制信息:

  • 调度和状态信息,用于操作系统调度进程并占用处理机使用。
  • 进程间通信
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值