进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元。
进程与程序的区别:程序是放到磁盘的可执行文件,进程是指程序执行的实例,进程是动态的,程序是静态的。进程与程序组成不同。进程与程序的对应关系。
创建: 每个进程都是由其父进程创建,进程可以创建子进程,子进程又可以创建子进程的子进程运行: 多个进程可以同时存在,进程间可以通信,撤销: 进程可以被撤销,从而结束一个进程的运行。
进程的状态:执行状态:进程正在占用CPU,就绪状态:进程已具备一切条件,正在等待分配CPU的处理时间片,等待状态:进程不能使用CPU,若等待事件发生则可将其唤醒。
Linux中的进程包含3个段,分别为“数据段”、“代码段”和“堆栈段”。“数据段”存放的是全局变量、常数以及动态数据分配的数据空间;“代码段”存放的是程序代码的数据。“堆栈段”存放的是子程序的返回地址、子程序的参数以及程序的局部变量等。
进程ID(PID):标识进程的唯一数字。进程互斥是指当有若干进程都要使用某一共享资源时,任何时刻最多允许一个进程使用,其他要使用该资源的进程必须等待,直到占用该资源者释放了该资源为止。
操作系统中将一次只允许一个进程访问的资源称为临界资源。进程中访问临界资源的那段程序代码称为临界区,一组并发进程按一定的顺序执行的过程称为进程间的同步, 具有同步关系一组并发进程称为合作进程,合作进程间互相发送的信号称为消息或事件。
调度:按一定算法,从一组待运行的进程中选出一个来占有CPU运行。先来先服务调度算法,短进程优先调度算法,高优先级优先调度算法,时间片轮转法。
死锁:多个进程因竞争资源而形成一种僵局,若无外力作用,这些进程都将永远不能再向前推进。