进程和线程间的通信方式

碎碎念:勤劳i的我又来干文章,今天要干的文章是进程和线程的内容,为了保证文章质量以后要写的详细一点。这里好多内容借用别人的如原文链接

定义

进程与线程

  • 进程 是资源分配的基本单位,
    进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。
    在这里插入图片描述

  • 线程 是独立调度的基本单位
    一个进程中可以有多个线程,它们共享进程资源。例如:QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。
    在这里插入图片描述

资源

  • 进程是资源分配的基本单位。是占用资源的
  • 线程不占有资源,线程可以访问进程的资源

调度

  • 不同进程的线程的切换会引起进程的切换。
  • 线程是独立调度的基本单位,线程的切换不会影响进程的切换

系统开销

  • 进程间的切换:进程间的切换代价要大于线程间切换的代价,进程间切换涉及CPU的环境,以及IO的额设备资源,同时要保存环境信息的资源内容。
    线程间的切换的代价要小的多

读写

  • 线程可以直接读写同一进程内的资源,
  • 进程必须通过借助IPC实现读取不同进程间的资源

状态

进程的状态

对于进程来说,主要包括

在这里插入图片描述
就绪状态(ready):等待被调度
运行状态(running)
阻塞状态(waiting):等待资源

创建状态,准备状态,等待状态,运行状态,退出状态

只有就绪态和运行态可以相互转换,其它的都是单向转换。就绪状态的进程通过调度算法从而获得 CPU 时间,转为运行状态;而运行状态的进程,在分配给它的 CPU 时间片用完之后就会转为就绪状态,等待下一次调度。阻塞状态是缺少需要的资源从而由运行状态转换而来,但是该资源不包括 CPU 时间,缺少 CPU 时间会从运行态转换为就绪态。

进程的调度算法

批处理系统

调度算法保证的是吞吐量和周转时间,主要从提交到终止的时间

  • 先来先服务 FCFS
    非抢占式调度算法,主要按照请求的顺序,按照请求的调度
    有利于长作业,不利于短作业,长作业需要执行很长的时间,这就造成了短作业等待时间过长
  • 短作业优先
    非抢占式调度算法,按照估计的运行时间短的优先进行操作,缺点是长作业一直处于等待的状态
  • 最短剩余时间优先
    最短作业的抢占的版本,按照剩余运行时间顺序进行调度,整个运行时间与当前线程剩余时间 进行比较,如果新的线程时间更少那么就运行新的线程

交互式系统

交互式系统有大量的用户交互操作,在该系统中调度算法的目标是快速进行响应

时间片轮转

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值