操作系统进程基本概念

  1、首先,什么是进程?

  按照我的理解,进程就是执行中的程序,不是单单指程序代码,而是指执行中的程序这个事件。

  2、其次,进程的状态:

  (1)新的:表示进程刚刚被创建;

  (2)运行:表示进程正在被执行;

  (3)等待:进程等待某个事件的发生;

  (4)就绪:进程等待分配处理器;

  (5)终止:进程完成执行。

  3、进程调度:

  新创建的进程处于就绪队列中,它在就绪队列中可能被CPU执行也可能在等待过程中被派遣,也有可能发生以下几种情况:

  (1)进程可能发出一个I/O请求,并被放到I/O队列中,当I/O口操作完成之后,回到就绪队列继续等待CPU执行。

  (2)进程可能创建一个子进程,并等待其结束;

  (3)进程可能由于中断而强制释放CPU,并被放回到就绪队列。

  值得一提,在第二种情况下,创建子进程的进程称为父进程,父进程也可以和子进程并行执行。

  4、进程操作

  主要是进程创建以及终止。

  (1)进程创建:

  在Unix系统中,使用fork()函数创建进程,每一个创建的进程都有一个唯一的识别符pid来标识进程,pid是整数值,在进程中也可以创建进程:

  当进程创建新进程时,有两种执行可能:

  1)父进程和子进程并行执行;

  2)父进程等待子进程执行完毕。

  新进程的地址空间也有两种可能:

  1)子进程是父进程的复制品;

  2)子进程装入一个新程序。

  调用fork()函数时,子进程的返回值为0,父进程的返回值为子进程的进程标识符(非零)

  (2)进程终止:

  当进程完成执行之后,调用系统调用exit()函数来终止进程。此时,进程可以返回状态值到父进程,所有进程资源都被系统释放。父进程也可以调用系统函数来终止子进程。

  5、进程间通信:

  不仅一台电脑上的进程之间可以通信,不同计算机上的进程也可以通信,实现这种通信有两种方式:

  (1)共享内存,创建一块公共内存,让参与通信的每一个进程都可以访问。

  (2)消息系统,进程间通过发送消息来通信

原文地址:https://www.cnblogs.com/PIRATE-JFZHOU/p/8082882.html