首页 > 其他分享 >24UDP协议/操作系统发展

24UDP协议/操作系统发展

时间:2023-09-11 23:57:20浏览次数:38  
标签:协议 24UDP addr 阻塞 server 并发 socket CPU 操作系统

作业

#作业内容:实现上传和下载电影
写了一个,另外一个反过来就可以(代码参考day24代码)
# 思考
    1.上传的电影如何判断是否重复
      小白思想:校验电影名称是否存在
    正确思想:校验电影的md5值(核心是内容不是名称)
  2.上传的电影如何判断是否有毒
      提前对电影内容加密 之后再次加密比对是否一致

UDP协议

#服务端
import socket
server = socket.socket(type=socket.SOCK_DGRAM)  # 自己指定UDP协议(默认是TCP协议)
server.bind(('127.0.0.1', 8080))
msg, addr = server.recvfrom(1024)
print('msg>>>:', msg.decode('utf8'))
print('addr>>>:', addr)
server.sendto(b'hello baby', addr)

UDP协议需要不需要考虑黏包问题,但是大于1024的问卷传不了也不管,网断了没传出去也不管,发了就行 #客户端 import socket client = socket.socket(type=socket.SOCK_DGRAM) server_addr = ('127.0.0.1', 8080) # 查找通讯录 client.sendto(b'hello server baby', server_addr) msg, addr = client.recvfrom(1024) print('msg>>>:', msg.decode('utf8')) print('addr>>>:', addr)

基于UDP实现简易版本的qq

参考day24代码

操作系统的发展史

"""
学习并发编程其实就是在学习操作系统 理论居多 实战很少 都是封装的代码
"""
1.穿孔卡片
    优势:一个人独占电脑
  劣势:CPU利用率极低

2.联机批处理系统
    一次性可以录入多个用户指令、缩短了CPU等待的时间、提高了CPU的利用率
  
3.脱机批处理系统
    是现代计算机核心部件的雏形、提高CPU的利用率

# 总结:操作系统的发展史其实就是提升CPU利用率的过程

多道技术

# 目的:提升CPU利用率 降低程序等待时间
'''强调:目前我们研究并发都是以计算机是单核的情况下:只有一个CPU'''
串行
    多个任务排队执行 总耗时就是多个任务完整时间叠加
多道
    利用空闲提前准备 缩短总的执行时间并且还能提高CPU利用率

"""
多道技术
    1.空间上的复用
        多个任务共用一套计算机硬件
    2.时间上的复用
        切换+保存状态
            CPU在两种情况下会被拿走
                1.程序遇到IO操作 CPU自动切走运行其他程序
                2.程序长时间占用CPU 系统发现之后也会强行切走CPU 保证其他程序也可以使用
"""
  做饭需要30min
  洗衣需要50min
  烧水需要20min
串行总共需要耗时:30min + 50min + 20min
多道总共需要耗时:50min

进程理论

# 什么是程序、什么是进程
    程序:一堆没有被执行的代码(死的)
  进程:正在运行的程序(活的)
    
# 为什么有进程的概念
    就是为了更加精确的描述出一些实际状态

# 进程调度算法发展史
    1.先来先服务
      对短作业任务不太友好
  2.短作业优先
      多长作业任务不太友好
  3.时间片轮转法与多级反馈队列
      时间片轮转法:先公平的将CPU分给每个人执行
    多级反馈队列:根据作业长短的不同再合理分配CPU执行时间
  '''目的就是为了能够让单核的计算机也能够做到运行多个程序'''

重要概念01(重要)

# 并发与并行
    并发
      看上去像同时在执行就可以称之为是并发
    """
    饭店里面有多桌客人(任务) 
    但是只有一个服务员(CPU) 
    如何让所有客人都感觉被服务员服务着(CPU执行)
      让服务员在多桌客人之间快速的来回切换并保存状态即可
      让CPU在多个程序之间利用多道技术来回切换+保存状态
    
        单核肯定能够实现并发 但是不能实现并行!!!
    """
  并行
      必须同一时间同时运行才可以称之为并行
        """单核计算机肯定不能实现并行!!! 必须要有多个CPU"""
    
# 高并发与高并行
    高并发:我们写的软件可以支持1个亿的并发量
        一个亿的用户来了之后都可以感觉到自己被服务着
  高并行:我们写的软件可以支持1个亿的并行量
        上述话语的言外之意是计算机有一亿个CPU

重要概念02(重要)

# 同步与异步
    同步
      提交完任务之后原地等待任务的返回结果 期间不做任何事情
  异步
      提交完任务之后不愿地等待任务的结果 直接去做其他事情 有结果自动提醒 

# eg:叫我叫某人下课后一起吃饭,讲完我就走了,干自己的事情,等他忙好了,他给我发信息,让我一起去 # 阻塞与非阻塞 进程三状态图 就绪态:程序之进入运行态之前肯定要处于就绪态 运行态:程序被CPU执行着 阻塞态:程序执行过程中有IO操作 ''' 如果想要尽可能的提升程序执行效率 就要想办法让我们的程序一直处于就绪态和运行态(不要有IO操作) ''' 阻塞:阻塞态 非阻塞:就绪态、运行态 ps:以后不需要考虑是哪个状态 知识今天深入学习一下

同步异步与阻塞非阻塞结合

同步异步:用来描述任务的提交方式
阻塞非阻塞:用来描述任务的执行状态
# 上述两组属于两个不同概念 但是可以结合
  同步阻塞:银行排队办理业务 期间不做任何事
  同步非阻塞:银行排队办理业务 期间喝水吃东西 但是人还在队列中
  异步阻塞:在椅子上坐着 但是不做任何事
  异步非阻塞:在椅子上坐着 期间喝水吃东西办公    (程序运行的极致)    
#举的例子不够贴切,知道大概意思就好,不要过分在意!

 

标签:协议,24UDP,addr,阻塞,server,并发,socket,CPU,操作系统
From: https://www.cnblogs.com/Milk1/p/17694905.html

相关文章

  • 操作系统高级教程
    关于访问控制,是CPU基于段实现的一种机制。而所谓的高低特权指令和数据,则是指高低特权的指令和数据。高特权指令可以访问高特权和低特权数据,低特权指令仅可以访问低特权数据注意以上仅仅是指令访问数据的规则,对于指令调用指令与之不同,无论是高特权还是低特权指令,均不能调用不同权......
  • 技术解码 | GB28181/SIP/SDP 协议--EasyGBS国标GB28181平台国标视频技术SIP解析
    EasyGBS国标视频云服务是基于国标GB/T28181协议的视频能力平台,可实现的视频功能包括:实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的视频流包括RTSP、RTMP、FLV、HLS、WebRTC等......
  • 网络协议百科全书:28张图带你搞懂TCP
    大家好,我的网工朋友。不仅仅是网工,只要你是做IT相关的工作,肯定都离不开网络。那网络中最重要的协议,大概非TCP莫属,谁去面试没被问过网络协议的相关问题?谁没买过那本最经典的《TCP/IP详解》 。不得不说,既要看枯燥的讲解,还要理解,还要和工作结合,运用掌握……真没这么简单。而且不学也......
  • TCP协议
    特征面向连接:通讯双发发送数据之前要建立连接可靠交付:提供尽可靠交付的服务,保证消息不错、不乱、不丢面向字节流:不缺分消息边界,发送数据为字节流。使用者需要自己区分消息边界。全双工(full-duplexservice):实时的双向通讯。TCP格式创建连接三次握手 为什么两次握手不行?......
  • 操作系统原理(1)---操作系统的定义、功能、特征
    一、操作系统的定义操作系统(Operat ing System , OS )是计算机系统中最基本的系统软件。它控制和管理整个计算机系统的硬件和软件,合理地组织调度计算机的工作和资源的分配,以提供用户和其他软件方便的接口和环境。二、操作系统的功能与目标1.管理系统的软硬件资源:处理机......
  • Nacos实战(21)-Nacos一致性协议
    1Nacos⼀致性协议1.1为什么Nacos需要⼀致性协议Nacos尽可能减少用户部署以及运维成本,做到用户只需要⼀个程序包,就快速单机模式启动Nacos或集群模式启动Nacos。而Nacos是⼀个需要存储数据的组件,为实现目标,就要在Nacos内部实现数据存储。单机问题不大,内嵌关系型数据库......
  • 安装Linux操作系统,学习Linux基础
    安装Linux操作系统,学习Linux基础1.操作过程2.GPT提问解决过程实录问题1:在配置Linux虚拟机时,命令行中输入sudoaptupgrade的结果是:E:Couldnotgetlock/var/lib/dpkg/lock-frontend-open(11:Resourcetemporarilyunavailable)E:Unabletoacquirethedpkgfronten......
  • 密码协议学习笔记(4):比特承诺
    比特承诺:股票经纪人甲试图说服乙购买他的服务,甲表示,它已分析出若干支股票将会涨停,但在乙出钱购买它的服务之前,它不能透露如此有价值的信息,于是甲将这几支股票写在纸上,并锁进保险箱里,将保险箱交给乙,表示,一个月后将钥匙给乙,如果到时候打开保险柜,看看里面写的股票是否确......
  • DNS协议的发展
    DNS协议的发展可以追溯到1983年,当时因特网开始采用层次树状结构的命名方法,并使用分布式的域名系统DNS。DNS的设计旨在解决当时因特网地址管理的混乱局面,使人们能够通过简单的名字来访问不同的主机。在DNS的早期,每个域都有一个单独的DNS服务器来存储该域的所有主机信息。然而,随着因......
  • 【操作系统】3.内存管理
    1.程序分段和内存分区程序执行需要首先加载到内存中,但完完整整的把一个很大的程序加载进去需要一块完整的地址空间,并且也不符合我们的直观感受,程序员眼中的内存是一个逻辑空间,这里面包括了一段程序、变量、栈等等,我们将一个程序进行分段,然后再存储到内存中这里很容易想到对内存......