代码编织梦想

一、操作系统发展史

	首先回顾回顾三大核心硬件
		CPU	 是计算机中那个真真一直在运行干活的人
		内存  给CPU准备需要运行的代码 软件
		硬盘	 用来存储将可能要被运行的代码 软件
	
	进入主题
		1.穿孔卡片
			1725年,法国人布乔发明了打孔卡,用于贮存纺织机工作过程控制的信息。
			但当时打孔卡并没有广泛应用。19世纪80年代,打孔卡主要用于记录数据,
			曾用于记录美国1890年人口普查数据。
			(CPU利用率非常的低 好处就是程序员可以一个人来独占计算机 想做什么就做什么)
244e0b024d474a489a6373626354b082.webp#pic_center
		2.联机批处理系统
			加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理
			一个或多个用户的作业(这作业包括程序、数据和命令)。
			缩短录入数据的时候 让CPU连续工作的时间变长(提升CPU利用率)
d6d6df70313247cbb6c918267e0922ce.webp#pic_center
		3.脱机批处理系统
			为克服与缓解:高速主机与慢速外设的矛盾,提高CPU的利用率
			又引入了脱机批处理系统,即输入/输出脱离主机控制。
			(现代计算机的雏形主要提升CPU利用率)
a4eff24602164c009228ff3a50e46d39.webp#pic_center

二、多道技术

	单道技术
		所有的程序排队等着被运行 总耗时是所有程序耗时之和
		(比如打游戏听歌>必须的听完歌等着播完>之后才能去打游戏)
		
	多道技术
		计算机利用空闲时间提前准备好一些数据 提高效率 总耗时较短
		(比如听歌>这一首歌还没唱完>就已经加载好了下一首歌的歌词歌曲)

	多道技术简单的来说就是 切换+保存状态
		1.CPU在两种下会切换(去执行其他的程序)
			1> 程序自身进入IO操作(IO:输入输出操作)
				例如:获取用户输入、time.sleep、读取文件、保存文件
		2.保存状态
			每次切换之前要记录下当前执行的状态 之后切换回来基于当前状态继续执行
			 	例如:打游戏撩妹 文字已经打入聊天框 游戏开始了 打完文字还在聊天框内

三、进程理论

	什么是进程
		程序:一堆躺在文件夹里面的代码(还没有运行)
		进程:正在被运行的程序(代码正在运行)
	
	进程的调度算法
		先来先服务算法
			见明知意 第一个打开的程序先运行(针对后面打开耗时较短的程序不友好)
		
		短作业优先调度
			查看里面用时最少的程序先运行(针对耗时比较长的程序不友好)
			
		时间片轮转法+多级反馈队列
			将固定的时间均分成很多份 所有的程序来了都公平的分一份
			分配多次之后如果还有程序需要运行 则将其分到下一层(保证后面的程序能运行)
			越往下表示程序总耗时越长 每次分的时间片越多 但是优先级越低

四、进程的并行并发

	什么是并行
		多个进程同时执行
		单个CPU肯定无法实行并行 必须要有多个CPU
			ex:我这个网站很牛逼 能够支持14亿并行量(高并行)
				不合理 没有那么多CPU(特意去集群也易实现)
				
	什么是并发
		多个进程看上去像是同时执行的程序可以称为并发
		单个CPU完全可以实现并发的效果 如果是并行那么肯定属于并发
			ex:我这个网站很牛逼 能够支持14亿并发量(高并发) 
				合理 一个CPU就可以实现了例如国内最牛逼的网站12306

在这里插入图片描述

五、进程的三状态

	1. 所有的进程要想被运行 必须先经过就绪态
	2. 运行过程中如果出现IO操作 则进入阻塞态
	3. 运行过程中如果出现时间片用完 则继续进入就绪态
	4. 阻塞态要想进入运行态必须先经过就绪态(所以运行之前都已经准备好了)

在这里插入图片描述

六、同步异步

	同步异步主要用于描述任务的提交状态
		同步
			提交完成任务之后在原地等待任务的结果 期间不做任何事(单道技术)
		异步
			提交完成任务之后不在原地等待直接去做其他事 结果自动提醒(多道技术)

七、阻塞与非阻塞

	阻塞与非阻塞主要用于描述进程的执行状态
		阻塞(阻塞态)			等待运行完再接着下一步
		非阻塞(就绪态 运行态)	不需等待直接下一步

八、同步异步与阻塞非阻塞

	同步阻塞:在银行排队 并且在队伍中什么事情都不做
	同步非阻塞:在银行排队 并且在队伍中做点其他事
	异步阻塞:取号 在旁边座位上等着叫号 期间不做事
	异步非阻塞:取号 在旁边座位上等着叫号 期间为所欲为

技术小白记录学习过程,有错误或不解的地方请指出,如果这篇文章对你有所帮助请点点赞收藏+关注 谢谢支持!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/MeiJin_/article/details/126227565

并行 与并发,同步与异步的区别-爱代码爱编程

 最近在学python的网络编程,学了socket通信,并利用socket实现了一个具有用户验证功能,可以上传下载文件、可以实现命令行功能,创建和删除文件夹,可以实现的断点续传等功能的FTP服务器。但在这当中,发现一些概念区分起来很难,比如并发和并行,同步和异步,阻塞和非阻塞,但是这些概念却很重要。因此在此把它总结下来。 1. 并发 & 并行

python同步执行_Python 并发、并行、同步和异步——学习笔记-爱代码爱编程

串行:同一个时间段只干一件事 并行:同一个时间段可以干多件事 并发 V.S. 并行 并发是指一个时间段内,有几个程序在同一个CPU上运行,但是任意时刻只有一个程序在CPU上运行。 并行是指任意时刻点上,有多个程序同时运行在多个CPU上,即每个CPU独立运行一个程序。 并行的最大数量和CPU的数量是一致的。 同步 V.S. 异步: 同步是指

python 同步锁_python-并发并行、同步异步、同步锁-爱代码爱编程

并发:系统具有处理多个任务(动作)的能力 并行:系统具有同时处理多个任务(动作)的能力 同步:当进程执行到一个IO(等待外部数据)的时候,需要等待,等待即同步 异步:当进程执行到一个IO(等待外部数据)的时候,不需要等待,待数据接收成功后,再回来处理。 GIL:全局解释锁:无论你有多少个线程,你有多少个CPU,Python在执行的时候会淡定的在

python同步和异步的区别_并发并行、同步异步、阻塞非阻塞的区别与联系-爱代码爱编程

并发、并行、同步、异步、阻塞、非阻塞、协程这些概念网上众说纷纭,有时经常混为一体,本文尽量从本质上做一下解释。 并发:一个时间段内,有几个程序在同一个cpu上运行,但是任意时刻只有一个程序在cpu上运行 并行(多核cpu实现):任意时刻上,多个程序同时运行在多个cpu上 【并发是交替执行,并行是同时执行,所以并行需要多核CPU。】 同步:同步表

python 基础 进程,线程,协程,并发并行,异步同步的定义-爱代码爱编程

进程,线程,协程 进程:是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 ​ 用大白话说就是系统执行某一项过程的行为,比如你用浏览器在线播放器播放一个神奇的小视频,而播放小视频这个行为就是一个进程。如果你决定缓存有点慢,又打开了一个新浏览器窗口,选择了另一个神奇的小视频,这就是两个进程。所以进程

python并发,并行,同步,异步-爱代码爱编程

一,并发和并行 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。简言之,是指系统具有处理多个任务的能力。 并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占C

并发、并行、同步、异步的概念-爱代码爱编程

并发与并行 假设一个工厂,包含多个车间,一个车间包含多个工人和多个房间。 什么是cpu?工厂是时刻在运行的,因此可以理解cpu时刻在运行。 什么cpu的核数?假设把一个cpu比作一份电量的话,一份电量又只能满足一个车间运行,那么其他车间就得停止运行,所以一个cpu只能执行一个任务,必须等这个任务结束后才能分配电量给其他车间。 什么是进程?把车间理解

python 进程并行和并发-爱代码爱编程

**socket的基本使用,重点需要记忆的** > import socket > 变量名=socket.socket() > 变量名.bind(ip,port)#服务端bind IP和端口,客户端connect > 变量名.listen(5)#半链接池必备 > sock,adder =变量名.accept()#接收sock

第七天项目实战二_呆呆网友的博客-爱代码爱编程

目录 北京房源二手房房价预测项目背景变量说明小区数据 community_describe.csv房源数据 house.csv 数据融合数据提取在housetype中删除车位和别墅的数据。提取客厅数,房间数,卫

python基础语法 - 常用模块_江南小作坊的博客-爱代码爱编程

常用模块 math模块舍入函数幂和对数函数三角函数 random模块datetime模块datetime类(日期和时间)date类(日期)time类(时间)timedelta类(日期时间计算)格式化与解析时区

python的并发、异步编程总结_python async 多线程-爱代码爱编程

目录 1. 多进程/多线程/协程asyncio的简单使用 多进程 多线程 asyncio异步IO 2.进程池/线程池/协程并发的使用 进程池 multiprocessing.Pool ProcessPoolExecutor 线程池 asyncio异步IO 使用python并发执行任务首先想到的是使用多线程和多进程,或者是协程a