进程的概念与进程的并发执行

一、进程的描述与控制

1.1 进程

  • 进程也称之为任务。
  • 指一个程序执行的过程:进程是程序在一个数据集合上的运行过程,是系统进行资源分配调度的一个独立单位;也是可并发执行的程序在一个数据集合上的运行过程
  • 进程是可被跟踪的:可以使用执行指令的序列来进行跟踪。

1.2 进程的特点

  • 动态性
  • 并发的
  • 独立性
  • 异步性

1.3 进程的结构

  • 程序(依赖于程序)
  • 数据
  • PCB(Process Control Block)程序控制块

二、进程的状态

2.1 进程的并发执行

例:假设内存中由3个进程A,B 和 C,他们的程序代码已全部装入内存。若A,C两进程需要执行12条指令,B进程需要执行4条指令,且B进程执行到第4条指令处必须等待I/O。如何跟踪他们的执行过程?

2.2 进程的2状态

2.2.1 进程可以被理解为两个状态

  • Running(执行):
  • Not-running (非执行):

2.2.2 状态转换图

在这里插入图片描述

  • 并非所有进程只要Not-Runing就处于ready状态(就绪:完事具备,就差CPU分配给我),有的需要blocking(阻塞)等待I/O完成。
  • Not-running又可分为ready和blocked两种状态。
    所以2状态比较难处理这类情况。

2.3 进程的5状态

2.3.1 进程可被分为5个状态

  • Running(执行):占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)
  • Ready(就绪):准备执行的状态,准备被调度的状态。
  • Blocked(阻塞):等待某事件发生才能执行,如果等待I\O完成等。
  • New(新状态):进程已经创建,但未被OS接纳为可执行进程。
  • Exit(退出):因停止或取消,被OS从执行状态释放。

2.3.2 状态转换图

在这里插入图片描述

  • Null -> New:新创建进程首先处于新状态。
  • new -> Ready:OS接纳新状态进程为就绪进程。
  • Ready -> Running:OS只能从就绪进程中选一个进程执行。
  • Running -> Exit:执行状态的进程执行完毕,或被取消,则转换为退出状态。
  • Running -> Ready:分时系统中,时间片用完,或者优先级高的进程到来,及那个种植优先级低的进程的执行。
  • Running -> Block:执行进程需要等待某事件发生。通常因进程需要的系统调用不能立即完成,而阻塞(非锁死)。
  • Block -> Ready:当阻塞进程等待的事件发生,就转换为就绪状态。
  • Ready -> Exit:某些系统允许父进程在任何情况下终止其子进程。若一个父进程终止,其子孙进程都必须终止。
  • Block -> Exit:同上。

进程在运行过程当中,等待的事件可能不相同,所以我们可能需要不同类型的阻塞队列。

猜你喜欢

转载自blog.csdn.net/TakahashiRyosuke/article/details/109084089