进程的不同操作
可以对进程执行许多操作。其中一些是进程创建、进程抢占、进程阻塞和进程终止。这些操作的详细说明如下:
进程创建
系统需要为不同的操作创建进程。这可以通过以下事件完成:
- 用户请求创建进程
- 系统初始化
- 运行进程执行进程创建系统调用
- 批处理作业初始化
可以使用 fork() 函数由另一个进程创建一个进程。创建进程的进程称为父进程,创建的进程称为子进程。一个子进程只有一个父进程,但一个父进程可以有多个子进程。父进程和子进程具有相同的内存映像、打开的文件和环境字符串。但是,它们具有不同的地址空间。
演示使用 fork() 创建进程的图表如下:
进程抢占
抢占使用中断机制来挂起当前正在执行的进程,下一个要执行的进程由短期调度程序确定。抢占确保所有进程都能获得一些 CPU 时间来执行。
演示进程抢占的图表如下:
进程阻塞
如果进程正在等待某些事件发生,则该进程将被阻塞。此事件可能是 I/O,因为 I/O 事件在主内存中执行,不需要处理器。事件完成后,进程再次进入就绪状态。
演示进程阻塞的图表如下:
进程终止
进程完成其最后一条指令的执行后,它将终止。进程终止后,它持有的资源将被释放。
如果子进程的任务不再相关,则其父进程可以终止它。子进程在终止之前将其状态信息发送给父进程。此外,当父进程终止时,其子进程也将终止,并且如果父进程终止,子进程将无法运行。
广告