第三季-第11课-进程控制理论

第11课-进程控制理论

11.1 概念

1. 进程

进程是一个具有独立功能的程序的一次运行活动。进程具有如下的特点:

l  动态性

l  并发性

l  独立性

l  异步性

  1. 进程的状态

计算机程序的状态主要有就绪、执行和阻塞这三个状态。进程创建过后首先处于就绪状态,一个电脑只有一个CUP,能执行的进程也就只有一个,但是同时会有许多的进程是处于就绪状态的。CPU会在众多的就绪的进程中选择一个进行调度,也就是执行。当我们访问文件或者磁盘的时候,如果得不到响应就会等待,也就是阻塞。当一个进程处于阻塞状态的时候,cpu就会去执行其他的进程,若是得到响应,就会I/O完成,继续处于就绪状态。

  1. 进程ID

进程ID(PID):标识进程的唯一数字

父进程的ID(PPID),启动进程的用户ID(UID)。

  1. 进程的互斥

进程互斥是指当有若干个进程都要使用某一资源时,但是资源在同一时刻最多允许一个进程使用,这个时候其他的进程必须等待,直到占用该资源者释放该资源为止。

  1. 临界区

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

  1. 进程同步

 

一组进程按一定的顺序执行的过程称为进程间的同步。具有同步关系的这组进程称为合作进程,最为有名的是生产者和消费者进程。

 

  1. 进程调度

按一定的算法,从一组待运行的进程中选一个来占有CPU运行。

调度算法 操作系统中,常见的调度算法有:

(1)先来先服务

(2)短进程优先调度

(3)高优先级先调度

(4)时间片轮转法
         在有了等待运行的进程和调度算法后,接下来要讨论的问题是:什么时候调度?按调度的时机,调度可以分为:

(1)抢占式调度:不安顺序来,高优先级直接抢占。

(2)非抢占式调度:按顺序来无论优先级别高低。

  1. 死锁

多个进程因竞争资源而形成一种僵局,导致这些进程都无法继续往前执行。为了解决这个问题,我们把相关的进程在调用的时候按照一定的顺序来进行就好了。

 

11.2 函数学习

1. 函数学习

getpid

2. 函数作用

返回调用该函数的id

3. 所属的头文件

#include<sys/types.h>

#include<unistd.h>

4. 函数的参数

5. 函数的返回值

这个函数永远是正确的,返回值就是调用该函数进程的id

6. 范例程序

#include<stdio.h>

#include<sys/types.h>

#include<unistd.h>

void main()

{

         int id = 0;

         id = getpid();

         printf("process id is %d\n",id);

}

程序每运行一次会有一个新的id进程。

posted @ 2019-08-13 13:55  free-锻炼身体  阅读(125)  评论(0编辑  收藏  举报