线程,进程,协程

news/2024/10/15 21:27:42

线程,进程,协程

进程

是什么:

最小的资源分配单位。

进程上下文切换

​ 指 cpu 保持原有的进程的状态的同时去切换到下一个进程

​ 包含两个主要过程:进程地址空间切换和处理器状态切换

线程

是什么

线程是操作系统中最小的调度单位。

​ 线程是进程的子集,也称为轻量级进程。一个进程可以有多个线程,这些线程由调度器独立管理。一个进程内的所有线程都是相互关联的。

线程上下文切换

​ 线程没有自己的地址空间,同一进程的线程之间切换,他们共享同一进程的地址空间,所以只需要切换处理器状态;不同进程的线程之间切换,会引起进程切换

​ 由于同一进程下的线程上下文切换不引起虚拟地址空间切换,所以它们上下文切换的花销要比进程小很多。

协程

​ 轻量级线程,他的内存占用少,只要 2k,且上下文切换成本低,是一个独立执行的函数,由 go 语言启动

进程调度算法

非抢占式调度

​ 一个非常简单的想法就是让所有员工排队用这台计算机,轮到的这个员工一直使用到自己的所有工作都处理完,才让给下一个同事。

​ 操作系统调度到某个进程之后,不会对进程做任何干预,直到该进程阻塞或者结束,才会切换到其他就绪的进程。

但如果轮到的这个员工处理完自己的工作需要 2 小时,但后几名员工都只需要几分钟,这个排序效率就不够好了。

抢占式调度

​ 操作系统调度到某个进程之后会给它分配一个时间片,如果超过时间片还没有结束或者中途被阻塞,该进程会被操作系统挂起,调度其他进程来执行其他程序。

对比

非抢占式调度:更适合调度可以忍受延迟执行的普通进程。简称:进程被cpu调度了

抢占式调度:更适合调度交互性要求高的实时进程简称:进程只有阻塞或者运行完成之后才能将cpu交给另一个进程

进程的三个状态

  • 运行态
  • 阻塞态
  • 就绪态

运行态到阻塞态 发生IO操作
阻塞态到就绪态 IO操作完成
就绪态到运行态 进程被cpu调度了
运行态到就绪态 时间片用完了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/71992.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Project Euler 638 题解

trivalq-analog,老玩家集体起立!这也就是说: \[\binom{n+m}{n}_q=\sum_{\pi\in L_{n,m}}q^{area(\pi)} \]结束! #include<bits/stdc++.h> using namespace std; #define int long long const int mod=1e9+7,maxn=2e7+5; int qp(int a,int b,int p=mod){int res=1;whi…

【bypass】bash绕过waf 的小技巧

原创 良辰 红队笔记录无意中看到推特上面有个老外分享的一条命令 $0<<<$\\\$(($((1<<1))#10011010))\\$(($((1<<1))#10100011))\其实这个命令就是ls 搜了一下原来是这个意思 $((1<<1)) 将 1 左移 1 位,得到 2。 2#10011010 将二进制数 10011010 转…

Windows刷机-记录UltraSO工具安装错误

安装镜像刻录U盘工具UltralSO:UltraISO - ISO CD/DVD image creator, editor, burner, converter and virtual CD/DVD emulator - UltraISO download page 下载后使用注册码激活: UltralSO多国语言版注册码 用户名:Steve Olson 注册码:2BEC-ED28-82BB-95D7 UltralSO简体中文版…

ElasticSearch的倒排索引和相关概念与MySQL的对比

ElasticSearch的倒排索引和相关概念 在用关系型数据库时,一些频繁用作查询条件的字段我们都会去建立索引来提升查询效率。在关系型数据库中,我们一般都采用 B 树索引进行存储,所以 B 树索引也是我们接触比较多的一种索引数据结构,但是在使用过程中,我们发现无法使用关系型…

VS新建文件时在头部附加版权信息

用记事本打开“C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ItemTemplates\CSharp\Code\2052\Class\Class.cs”文件 //---------------------------------------------------------------- // Copyright (C) 2017 xx公司 // 文件名:$safeitem…

SaaS架构:应用服务、应用结构设计

大家好,我是汤师爷~ 应用架构设计通常包括以下步骤:根据业务架构,将业务需求转化为IT系统,识别核心应用服务。 划分应用结构,设计应用结构与业务流程、数据之间的关系。 设计应用结构之间的交互和集成关系。本文主要分享一下应用服务、应用结构设计设计。 应用服务设计 应…

ES相关

ES是一款强大的开源搜索引擎,其主要的实现是通过倒排索引; 关于倒排索引: 首先有倒排索引,那就有正排的 比如经典的mysql 就是正排 其使用索引来加快查询的速度 在一个基本的表结构中有一个主键自增的索引来表示;但是在某些情况下索引会失效;这个时候尤其是大量的数据的查…

基于FPGA的16PSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR

1.算法仿真效果 VIVADO2019.2仿真结果如下(完整代码运行后无水印):设置SNR=30db设置SNR=20db:系统RTL结构图如下:2.算法涉及理论知识概要十六进制相位移键控(16PSK, 16-Phase Shift Keying)是一种数字调制技术,它通过改变载波相位来传输信息。16PSK能够在一个符号时间内…