zoukankan      html  css  js  c++  java
  • 第三季-第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 ",id);

    }

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

  • 相关阅读:
    php 计算代码执行时间
    高级php面试题
    MongoDB 或者 redis 可以替代 memcached 吗?
    mysql中myisam,innodb和memory三个存储引擎的区别
    C#发送邮件代码
    使用bootstrap table时不能显示筛选列和分页每页显示的行数
    vue2中,字符串里如何拼接绑定对象
    压缩图片方法
    jquery的ajax方法,在返回中,find方法不起作用
    vue2中,在google浏览器中正常,在ie11中不解析
  • 原文地址:https://www.cnblogs.com/free-1122/p/11345468.html
Copyright © 2011-2022 走看看