进程的定义
进程程序是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元
进程与程序
程序是放到磁盘的可执行文件
进程是指程序执行的实例
v 进程是动态的,程序是静态的:程序是有序代码的集合;进程是程序的执行。通常进程不可在计算机之间迁移;而程序通常对应着文件、静态和可以复制
v 进程是暂时的,程序是长久的:进程是一个状态变化的过程,程序可长久保存
v 进程与程序组成不同:进程的组成包括程序、数据和进程控制块(即进程状态信息)
v 进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。
进程的生命周期
创建:每个进程都是有其父进程创建进程,子进程又可以创建子进程的子进程
运行:多个进程可以同时存在 进程间可以通信
撤销:进程随时可以被撤销,从而结束一个进程的运行
进程的状态
执行状态:进程正在占用cpu
就绪状态:进程已具备一切条件,正在等待分配CPU的处理时间片
等待状态:进程不能使用CPU,若等待时间发生则可将其唤醒
Linux系统是一个多进程的系统, 进程之间并行,互不干扰。每一个进程都是一个独立的运行单位,拥有各自的权利和责任。各个进程运行在独立的虚拟地址空间,因此,一个进程发生异常,它也不会影响到系统中的其他进程。
Linux下进程地址空间:
数据段:全局变量,常数和动态数据分配的数据空间
代码段:程序代码
堆栈段:子程序的返回地址,子程序的参数,局部变量
进程ID
进程ID(PID):标识进程的唯一数字
父进程(PPID)
启动进程的用户ID(UID)
进程互斥
进程互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止。
临界资源
操作系统中将一次只允许一个进程访问的资源成为临界资源
进程中访问临界资源的那段程序代码称为临界区,为实现对临界资源的互斥访问,应保证诸进程互斥的进入各自的临界区。
进程同步
一组并发进程按一定的顺序执行的过程称为进程间的同步
具有同步关系一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件
进程调度
按一定算法,从一组待运行的进程中选出一个来占有CPU运行
调度方式: 抢占式 非抢占式
调度算法
先来先服务调度算法
短进程优先调度算法
高优先级优先调度算法
时间片轮转法
死锁
多个进程因竞争资源而形成一种僵局若无外力作用,这些进程都将永远不能再向前推进