进程的不同操作


可以对进程执行许多操作。其中一些是进程创建、进程抢占、进程阻塞和进程终止。这些操作的详细说明如下:

进程创建

系统需要为不同的操作创建进程。这可以通过以下事件完成:

  • 用户请求创建进程
  • 系统初始化
  • 运行进程执行进程创建系统调用
  • 批处理作业初始化

可以使用 fork() 函数由另一个进程创建一个进程。创建进程的进程称为父进程,创建的进程称为子进程。一个子进程只有一个父进程,但一个父进程可以有多个子进程。父进程和子进程具有相同的内存映像、打开的文件和环境字符串。但是,它们具有不同的地址空间。

演示使用 fork() 创建进程的图表如下:

fork

进程抢占

抢占使用中断机制来挂起当前正在执行的进程,下一个要执行的进程由短期调度程序确定。抢占确保所有进程都能获得一些 CPU 时间来执行。

演示进程抢占的图表如下:

Process Preemption

进程阻塞

如果进程正在等待某些事件发生,则该进程将被阻塞。此事件可能是 I/O,因为 I/O 事件在主内存中执行,不需要处理器。事件完成后,进程再次进入就绪状态。

演示进程阻塞的图表如下:

Process Blocking

进程终止

进程完成其最后一条指令的执行后,它将终止。进程终止后,它持有的资源将被释放。

如果子进程的任务不再相关,则其父进程可以终止它。子进程在终止之前将其状态信息发送给父进程。此外,当父进程终止时,其子进程也将终止,并且如果父进程终止,子进程将无法运行。

更新于:2020年6月24日

22K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告