笔记10: 进程控制的基本概念

1、进程

(1)进程与程序的区别

     程序是放到磁盘的可执行文件。

  进程是指程序执行的实例。


(2)进程的地址空间

笔记10: 进程控制的基本概念


分配给每个进程的内存(memory)由一系列段(segments)组成:
 

①text segment(代码段)
    包含机器语言指令。通常是只读的、共享的。
 

②initialized data segment(初始化数据段)
    包含初始化的全局变量和静态(static)变量。

③ uninitialized data segment (bss segment)(未初始化数据段)
    包含未初始化的全局变量和静态变量。程序运行之前,系统会把这些变量初始化为0。
 

④heap(堆)
    程序运行时,为变量动态分配内存。
 

⑤stack(堆栈)
    包含堆栈帧(stack frames)。一个堆栈帧被分配给当前的被调函数(called function)。一帧保存的内容有:局部变量、参数(arguments)、返回值。
  


(3)进程的执行状态

笔记10: 进程控制的基本概念

(查看进程:  ps -help(查看指令),一般查看:ps -ef | grep,详细查看:ps -aux)

①执行状态
    进程正在占用CPU。

② 就绪状态
    进程已具备一切条件,等待分配CPU。

③ 等待状态
    进程不能使用CPU,若等待的事件发生则可将其唤醒。


(4)进程ID

  每个进程都有一个ID(ID是一个正整数),唯一标识了系统中的这个进程。
  每个进程都有一个创建它的进程,叫父进程(Parent Process)
 

  ①进程ID(PID):标识进程的唯一数字
 
  ②父进程ID(PPID)
 
  ③启动进程的用户ID(UID)

  

注意:

   1、所有进程的祖先(ancestor)是init进程,其PID为1。可以用pstree命令查看树状关系。

   2、当一个子进程(child process)变为孤儿时(由于其父进程终止),此时该子进程会被init进程领养(adopted)。  

(5)进程的生命周期

 

 ①创建
    每个进程都由其父进程创建。父进程可以创建子进程,子进程又可以创建子进程的子进程。

 ②运行
    多个进程可以同时存在,进程之间可以进行通信。
 

 ③终止
    结束一个进程的运行。


2、进程的特点

(1)动态性:进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的;

(2)并发性:任何进程都可以同其他进程一起并发执行;

(3)独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;

(4)异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进;

(5)结构特征:进程由程序、数据和进程控制块三部分组成。


3、进程的一些其他概念

(1)进程互斥是指当有若干进程都要使用某一共享资源时,任何时候最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止。

(2)临界资源:操作系统中将一次只允许一个进程访问的资源称为临界资源。

(3)临界区:进程中访问临界资源的那段程序代码称为临界区。为实现对临界资源的互斥访问,应保证诸进程互斥的进入各自的临界区。

(4)进程同步:一组并发进程按一定的顺序执行的过程称为进程间的同步。

具有同步关系的一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。

(5)进程死锁:多个进程因竞争资源而形成一种僵局,若无外力作用,这些进程都将永远不能再向前推进。