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

  • 进程:

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

  • 进程的状态:
  1. 新建状态:进程建立

  2. 就绪状态:系统资源满足接纳新进程的条件,进程进入就绪队列,只要获得处理机调度便可以运行

  3. 运行状态:进程获得处理机的调度,进入运行状态

  4. 阻塞状态:进程等待它请求事件的发生

  5. 完成状态:进程执行结束,或者由于其他原因无法运行下去

  • 进程状态的转换:

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

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

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

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

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

组成:

程序、数据、进程控制块

并发性:

进程通信方式:

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

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

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

线程: 

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

  • 好处:

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

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

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

  • 线程与进程的关系:

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

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

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

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

进程与线程的区别:

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

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

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

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

  • 死锁:

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

原因: 

竞争系统资源

进程推进顺序不当

造成死锁的必要条件:

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

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

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

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

死锁的处理方法:

预防死锁: 破坏死锁的四个必要条件中的一个或多个,从而预防死锁的发生。

避免死锁:在系统动态分配资源的时候, 采取某些方法避免不安全的行为发生

检测死锁:死锁发生时对其进行检测,精准定位死锁进程,对其进行解除。

解除死锁:对死锁进程进行销毁或者挂起,将其资源分配给阻塞态进程,使其转化为就绪态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值