操作系统之进程管理

烂漫一生 提交于 2019-12-05 03:17:27

为什么需要进程:

程序运行在并发环境下

  1.运行过程不确定

  2.结果不可再现   //具体为什么不怎么清楚。。

进程:用来描述和管理运行过程

特征:1.动态性:是程序的一次执行过程,动态产生和消亡;

   2.并发性  //并发性与并行性不相等 ,并发性是在一个CPU中执行,因为速度很快,所以多个进程看起来在一起运行,不过在微观角度来说 ,还是在分开运行的。

          //并行性是在多个CPU上运行的进程,所以无论是微观还是宏观都是并发的。

   3.异步性  //明天看书  不是很理解

   4.独立性(制约性)    //内存保护

程序和进程之间的差异:

  1.动态和静态

  2.暂存和长存   //进程在执行完后会被杀死,而程序会一直保留

杂点 

进程的分类

  按权限

    1.系统进程

    2.用户进程

  按对CPU的依赖

    1.偏CPU进程--->多计算

    2.偏I/O进程----->多I/O  

一个程序可以有多个进程。

PCB:进程控制块

  唯一表示进程   //进程存在的唯一标志

PCB的信息:
  1.本进程的标识

  2.父进程的标识

  3.用户标识  //看书不是很懂

 

  4.进程控制信息 //不懂 看书

PCB的组织方式:

  一般为链表(要经常的动态删除和添加)

进程创建的时间

  1.系统初始化时;

  2.用户请求;

  3.进程执行过程中创建新的进程;

进程的运行:由操作系统选择某一个就绪(ready)进程———>运行(runing)进程;

进程的等待:进程停滞等待资源   //进程只能由自己来阻塞   (只有自己知道何时等待)

进程的唤醒:-----——————  //进程只能被其他进程唤醒;

进程的结束:正常结束(自愿)    错误结束(自愿);

      致命结束(强制)    被其他进程杀死(非自愿) //什么情况下出现   不清楚 ;

进程的三种基本状态:运行(runing)态,阻塞(blocked)态,就绪(ready)态;

进程的挂起:
  进程从内存转向外存;

  挂起的状态:阻塞挂起状态;

        就绪挂起状态;

进程的状态队列:
  有多个就绪队列  (按优先级来排列队列 比如优先级高的在高队列,低的在低队列)

  有多个阻塞队列

线程:进程的一条执行流程;

进程 = 线程 + 共享资源

一个进程可以有多个线程;

一个进程至少有一个线程;

线程的优点:

  1.一个进程可以有多个线程;

  2.各个线程可以并发执行;

  3.各线程可以共享地址空间和资源;

缺点:

  一个线程崩溃,会导致该进程的所有线程崩溃  //共享资源被破坏;

共享资源:code;file;data;

独立资源:register;stack;

线程和进程的比较:

  1.进程是资源分配单位,线程是CPU调度单位;

  2.进程有完整的资源平台,线程只是独享必不可少的资源(寄存器,栈)

线程的三种基本状态:运行(runing)态,阻塞(blocked)态,就绪(ready)态;

线程能减少并发执行的时间和空间开销:
  1.线程的创建时间短   //不需要考虑共享空间的创建;

  2.线程的终止时间短;

  3.线程在同一进程下切换时间更短  //跟页表有关,学完存储在来解释;

  4.共享资源不通过内核而是直接通过地址共享;  //不是很懂;

 

第一次投稿截至于2019/11/21

完;

  

 

 

 

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!