• 进程与线程


    1.进程概述

      进程是运行状态的程序,每个进程有一个进程控制块(PCB)作为进程的标识。PCB中包括进程标识信息,处理机现场保存信息和进程控制信息。进程控制块按进程的状态在链表中或索引表中存储。

    2.三状态模型:

     进程状态分为五种:创建,就绪,运行,等待(阻塞),退出。这些状态都和CPU相关。

     1)引起进程创建的情况:

        i)系统初始化时;

        ii)用户请求创建一个新进程;

        iii)正在运行的进程执行了创建进程的系统调用    

     2)进程进入等待(阻塞)的情况:

      (只有进程自身才能知道何时需要等待某种事件的发生)

      i)请求并等待系统服务,无法马上完成

      ii)启动某种操作,无法马上完成,如磁盘的读写

      iii)需要的数据没有到达

     3)进程被抢占的情况(进入就绪状态):

      i)高优先级进程就绪

      ii)进程执行当前时间用完(每个进程有特定的时间占用资源)

     4)唤醒进程的情况(进入就绪状态):

      (不同于等待,进程只能被别的进程或操作系统唤醒)

      i)被阻塞进程需要的资源可被满足

      ii)被阻塞进程等待的事件到达

     5)进程结束的情况:

      i)正常退出(自愿的)

      ii)错误退出(自愿的)

      iii)致命错误(强制性的)

      iiii)被其他进程所杀(强制性的)

    3.进程挂起模型

     进程的挂起状态与存储相关。挂起即把一个进程从内存转到外存。

      

      等待挂起状态:进程在外存并等待某事件的出现。

      就绪挂起状态:进程在外存,但只要进入内存,即可运行。

            (进不去内存的原因是内存不够或者进程优先级不高)

      从等待到等待挂起:没有进程处于就绪状态(?)或就绪进程要求更多内存资源。

      从就绪到就绪挂起:当有高优先级等待进程(系统认为很快就会就绪)和低优先级就绪进程时,低优先级就绪进程就会从就绪状态转为就绪挂起状态。

      从运行到就绪挂起:对抢先式分时系统,当有高优先级等待挂起进程因事件出现而进入就绪挂起状态,当前运行的状态就为了腾出空间进入就绪挂起状态。

      从等待挂起到就绪挂起:当有等待挂起进程因相关事件出现。

      激活:把一个进程从外存转到内存。

      就绪挂起到就绪:没有就绪进程或挂起就绪进程优先级高于就绪进程。

      等待挂起到等待:当一个进程释放足够内存,并有高优先级等待挂起进程。

    4.状态队列

      操作系统中有一组队列,不同队列表示不同的状态。进程状态的切换即是在不同队列中的删除与插入。

      

    5.线程

      如果要并发运行,多进程可以实现。但如果要访问相同资源且并发运行,那多进程来回切换要消耗很多性能。所以在进程里加入多线程的概念,同一进程的多线程并发运行,进程中存储共享资源,每个线程保存描述指令流执行状态的寄存器和堆栈。

          

          

          

      

    6.用户线程

      即通过高级程序设计语言的库函数来完成对线程的处理。

      

      

      

    7.内核线程和轻权进程  

  • 相关阅读:
    android工程混淆和反编译
    php+列出目录文件
    php+大文件管理
    支持粘贴图片的富文本编辑器
    web上传整个文件夹
    文件夹管理
    断点续传
    超大文件上传方案
    ueditor+word粘贴上传
    java+大文件上传
  • 原文地址:https://www.cnblogs.com/kkkkkk/p/5528513.html
Copyright © 2020-2023  润新知