操作系统:进程、线程、死锁、并发性

进程:

定义:程序在数据集合上的运行过程,是系统资源分配和调度的独立单位。

进程的状态:

  1. 新建状态:进程建立
  2. 就绪状态:系统资源满足接纳新进程的条件,进程进入就绪队列,只要获得处理机调度便可以运行
  3. 运行状态:进程获得处理机的调度,进入运行状态
  4. 阻塞状态:进程等待它请求事件的发生
  5. 完成状态:进程执行结束,或者由于其他原因无法运行下去

进程状态的转换:

新建 ---- 》 就绪: 系统资源满足接纳新进程的条件,进程进入就绪队列。

就绪------》运行:进程获得处理机的调度,进入运行状态

运行----->阻塞  : 进程等待它请求的事件发生。

运行-----》完成:  进程执行结束或者由于其他原因无法继续下去

阻塞----》就绪: 进程请求的事件发生,进入就绪状态,只需获得处理机的调度便可以执行。

组成:

程序、数据、进程控制块

并发性:进程通信方式:

共享存储: 在存储区划分一块共享存储,多个进程对共享存储进行读写数据实施通信

消息传递: 两个并发线程通过相互发送消息实现通信。

管道通信:发送进程以字符流形式将数据传入管道,接收进程从管道中接收数据。管道本质上是一个共享文件。

线程: 

定义:处理机调度的最小单位,CPU执行的最小单位。

好处:

易于调度。线程的切换相较于进程的切换需要操作系统做得事情要少很多。

提高资源利用率:线程占用资源少,能充分利用多处理器的可并行数量。

开销少:进程的创建和销毁需要系统分配和回收资源,创建和销毁线程代价小得多。

线程与进程的关系:

一个线程只能隶属于一个进程,一个进程可以拥有至少一个线程

资源分配给进程,同一进程的所有线程共享该进程的所有资源

处理机分配给线程,真正在处理机上运行的是线程

不同进程的线程间要利用消息通信的方式实现同步。

进程与线程的区别:

调度:线程是调度的基本单位,进程是拥有资源的基本单位

并发性:不仅进程之间可以并发执行,线程之间也可以并发执行

拥有资源:进程拥有系统分配的资源,线程基本上不拥有资源,但是可以访问隶属于进程的资源

系统开销:在创建或者撤销进程时,系统需要为之分配和回收资源,导致系统的开销明显大于创建和销毁线程的开销。

死锁:

 定义:

多个进程相互竞争系统资源造成的僵局。一组进程中,每个线程都无线等待被其它线程所占有的资源,因而永远无法得到资源。

原因: 

  • 竞争系统资源
  • 进程推进顺序不当

造成死锁的必要条件:

互斥: 在一段时间内,一个资源只能由一个进程调用,如果别的进程请求资源,需要等待直到占用线程释放资源。

保存且占有:进程保持了一个资源,又请求其他的资源,此时请求进程阻塞,但又不释放自己获得的资源。

非剥夺:进程保持的资源不能由其他进程抢占,只能由自己释放

循环等待:存在进程的循环等待链,前一进程占有的资源正是后一进程需要的资源,结果形成循环等待的僵局。

猜你喜欢

转载自www.cnblogs.com/ltfxy/p/10458804.html