进程和线程间的通信方式
创始人
2025-05-30 17:12:16
0

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

定义

进程与线程

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

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

资源

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

调度

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

系统开销

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

读写

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

状态

进程的状态

对于进程来说,主要包括

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

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

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

进程的调度算法

批处理系统

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

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

交互式系统

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

时间片轮转

相关内容

热门资讯

linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
C++ 机房预约系统(六):学... 8、 学生模块 8.1 学生子菜单、登录和注销 实现步骤: 在Student.cpp的...
JAVA多线程知识整理 Java多线程基础 线程的创建和启动 继承Thread类来创建并启动 自定义Thread类的子类&#...
【洛谷 P1090】[NOIP... [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G ...
国民技术LPUART介绍 低功耗通用异步接收器(LPUART) 简介 低功耗通用异步收发器...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
程序的循环结构和random库...   第三个参数就是步长     引入文件时记得指明字符格式,否则读入不了 ...
中国版ChatGPT在哪些方面... 目录 一、中国巨大的市场需求 二、中国企业加速创新 三、中国的人工智能发展 四、企业愿景的推进 五、...
报名开启 | 共赴一场 Flu... 2023 年 1 月 25 日,Flutter Forward 大会在肯尼亚首都内罗毕...
汇编00-MASM 和 Vis... Qt源码解析 索引 汇编逆向--- MASM 和 Visual Studio入门 前提知识ÿ...
【简陋Web应用3】实现人脸比... 文章目录🍉 前情提要🌷 效果演示🥝 实现过程1. u...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
windows安装JDK步骤 一、 下载JDK安装包 下载地址:https://www.oracle.com/jav...
分治法实现合并排序(归并排序)... 🎊【数据结构与算法】专题正在持续更新中,各种数据结构的创建原理与运用✨...
在linux上安装配置node... 目录前言1,关于nodejs2,配置环境变量3,总结 前言...
Linux学习之端口、网络协议... 端口:设备与外界通讯交流的出口 网络协议:   网络协议是指计算机通信网...
Linux内核进程管理并发同步... 并发同步并发 是指在某一时间段内能够处理多个任务的能力,而 并行 是指同一时间能够处理...
opencv学习-HOG LO... 目录1. HOG(Histogram of Oriented Gradients,方向梯度直方图)1...
EEG微状态的功能意义 导读大脑的瞬时全局功能状态反映在其电场结构上。聚类分析方法一致地提取了四种头表面脑电场结构ÿ...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...