操作系统相关内容

进程

进程PCB的含义,进程如何表示的?

PCB(进程控制块)是一个随进程存在而存在的进程描述和进程控制信息的集合。进程就是由进程控制块这个灵魂和程序,数据这个这个实体表示的。

进程与程序的本质区别?

  1. 程序是永存的;进程是暂时的,是程序在数据集上的一次执行,有创建有撤销,存在是暂时的;
  2. 程序是静态的观念,进程是动态的观念;
  3. 进程具有并发性,而程序没有;
  4. 进程是竞争计算机资源的基本单位,程序不是。(进程是一个可拥有资源的独立单位,进程同时又是一个可独立调度和分派的基本单位
  5. 进程和程序不是一一对应的:一个进程可以执行一个或多个程序;反之,同一个程序可能由几个进程同时执行。

进程与线程的区别与关系?

  1. 线程是进程内的一个可调度的实体
  2. 线程是进程的一个组成部分。每个进程在创建时通常只有一个线程,需要时这个线程可以创建其他线程。
  3. 进程的多线程都在进程的地址空间活动。
  4. 资源是分给进程的,而不是分给线程的。线程在执行中需要资源时,系统从进程的资源配额中扣除并分配给它。
  5. 处理机调度的基本单位是线程,线程之间竞争处理机,真正在处理机上运行的是线程。
  6. 线程在执行过程中,需要同步。

举实例解释进程的同步与互斥的涵义。

  1. 进程的同步:

    两个进程相互协作共同完成一个任务。Z=func1(x)*func2(y),进程P1执行func1,进程P2执行func2。进程P1和进程P2各自计算,完成后将P1和P2的计算结果相乘即可。

  2. 进程的互斥:

    进程P1和进程P2在执行的过程中都需要资源A,但是A同一时间内只能由一个进程占有,所以假设进程P1先占用了A,则P2在运行时需要A时,只有当进程P1释放了A资源后,进程P2才可继续执行。

死锁

死锁的概念:

当某一进程提出资源的使用要求后,使得系统中一些进程处于无休止的阻塞状态,在无外力的作用下,这些进程永远也不能继续前进,我们称这种现象为死锁。

死锁的起因:

一个进程在其运行的过程中可以提出使用多个资源的要求,仅当指定的全部资源都满足时,进程才能继续运行而到达终点,否则该进程因为得不到所要求的资源而处于阻塞状态,当两个或两个以上的进程同时对多个互斥的资源提出使用要求时,就有可能导致死锁

产生死锁的必要条件:

  1. 互斥控制:进程对其所要求的资源进行排它控制,一个资源仅能被一个进程独占
  2. 非剥夺控制:进程所获得的资源在未被释放之前,不能被其他的进程剥夺,即使该进程出于阻塞状态,它所占用的资源也不能被其他进程使用,而其他进程只能等待该资源的释放
  3. 逐次请求:进程以随意的零星方式逐次获得资源,而不是集中性的一次请求,这样有利于提高资源的利用率
  4. 环路条件:在发生死锁时,其有向图必构成环路,即前一进程保持者后一进程所要求的资源

处理死锁的四种策略

预防死锁:

破坏四个必要条件中的一个或者多个来预防死锁

  1. 破坏互斥控制,可以采用资源共享法,即允许一个资源可由多个进程同时使用,
  2. 破坏非剥夺控制,可以采用剥夺控制,也可以当一个进程获得某种不可抢占资源,提出新的资源申请,若不能满足资源条件则得不到资源分配,以后需要,再次重新申请
  3. 破坏逐次请求:1.一次性的申请所有资源,之后不再申请资源,如果不满足资源条件则得不到资源分配2.只获得初期资源后运行,之后将运行完的资源释放,请求新的资源
  4. 破坏环路条件:对资源进行排序,按照序号递增的顺序请求资源,若进程获得序号高的资源想要获取序号低的资源,就需要先释放序号高的资源

避免死锁:

在资源动态分配的过程中,用某种方式防止系统进入不安全的状态(银行家算法)

检测死锁:

运行时产生死锁,及时发现死锁,将程序解脱出来

解除死锁:

发生死锁后,撤销进程,回收资源,分配给正在阻塞状态的进程,或者抢占资源

进程间通信的方式

进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。

IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams等。其中 Socket和Streams支持不同主机上的两个进程IPC。

进程间数据共享的方式

进程通信是指进程之间的信息交换

  1. 共享存储器系统
    1. 基于共享数据结构的通信方式 (仅适用于传递相对少量的数据,通信效率低,属于低级通信)
    2. 基于共享存储区的通信方式
  2. 管道通信系统 管道是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件(pipe文件) 管道机制需要提供一下几点的协调能力
    1. 互斥,即当一个进程正在对pipe执行读/写操作时,其它进程必须等待
    2. 同步,当一个进程将一定数量的数据写入,然后就去睡眠等待,直到读进程将数据取走,再去唤醒。读进程与之类似
    3. 确定对方是否存在
  3. 消息传递系统
    1. 直接通信方式 发送进程利用OS所提供的发送原语直接把消息发给目标进程
    2. 间接通信方式 发送和接收进程都通过共享实体(邮箱)的方式进行消息的发送和接收
  4. 客户机服务器系统
    1. 套接字 – 通信标识型的数据结构是进程通信和网络通信的基本构件
      1. 基于文件型的 (当通信进程都在同一台服务器中)其原理类似于管道
      2. 基于网络型的(非对称方式通信,发送者需要提供接收者命名。通信双方的进程运行在不同主机环境下被分配了一对套接字,一个属于发送进程,一个属于接收进程)
    2. 远程过程调用和远程方法调用
Thanks!