UDP协议

服务端不需要考虑客户端是否异常退出

UDP不存在黏包问题(UDP多是用于短信息的交互)

服务端

import socket
server = socket.socket(type=socket.SOCK_DGRAM)
server.bind(('127.0.0.1', 8080))
msg, address = server.recvfrom(1024)
print('msg>>>:%s' % msg.decode('utf8'))
print('address>>>:',address)
server.sendto('我是服务端 你好啊'.encode('utf8'), address)

客服端

import socket
client = socket.socket(type=socket.SOCK_DGRAM)
server_address = ('127.0.0.1', 8080)
client.sendto('我是客户端 想我了没'.encode('utf8'), server_address)
msg, address = client.recvfrom(1024)
print('msg>>>:%s' % msg.decode('utf8'))
print('address>>>:',address)

操作系统的发展史

  • 一、穿孔卡片

    • CUP利用率非常的低

    • 好处是程序员可以一个人独占计算机

  • 二、联机批处理系统

    • 缩短录入数据的时候 让CPU连续工作的时间变长>>>:提升CPU的利用率
  • 三、脱机批处理系统

    • 是现代计算机的雏形>>>:提升CUP的利用率

总结:

  操作系统的发展史也可以看成是CPU利用率提升的发展史

多道技术

  • 一、单道技术

    • 所有的程序排队执行 总耗时是所有程序耗时之和
  • 二、多道技术

    • 计算机利用空闲时间提前准备好一些数据 提高效率 总耗时比较短
  • 多道:

    • 1.切换+保存状态
    • CPU会在两种情况下切换(去执行其他的程序)
      • 程序自身进入IO操作
      • 程序长时间占用CPU
    • 2.保存状态
      • 每次切换之前要记录下当前执行的状态 之后切回来基于当前状态继续执行
  • 例子:
      做饭耗时50min
      洗衣耗时30min
      烧水耗时10min

    单道技术总耗时长:50+30+10
    多道技术总耗时长:50

进程理论

  • 一、如何理解进程
    • 程序:一堆躺在文件上的死代码
    • 进程:正在运行的的程序(活的)
  • 二、进程的调度算法
    • 先来先服务算法
      • 针对耗时比较短的程序不友好
    • 短作业优先调度
      • 针对耗时比较长的不友好
    • 时间片轮转法+多级反馈队列
      • 将固定的时间均分成很多份 所有的程序来了都公平的分一份
      • 分配多次之后如果还有程序需要运行 则将其分到下一层
      • 越往下表示程序总耗时越长 每次分的时间片越多 但是优先级越低

进程的并行与并发

  • 一、并行
    • 多个进程同时运行
    • 单个CPU肯定无法实现并行 必须要有读个CPU
  • 二、并发、
    • 多个进程看上去想同时执行就可以称并发
    • 单个CPU完全可以实现并发的效果
  • 三、高并发与高并行
    描述一个网址非常牛逼能够同时服务很多人的话术
    • 1.我这个网站很牛逼 能够支持14亿并行量(高并行)
      • 不合理 言外之意计算机有14亿个CPU(哪有这么多CPU 集群也不现实)
    • 2.我这个网站很牛逼 能够支持14亿并发量(高并发)
      • 非常合理 单个CPU可以实现并发效果 多个CPU就能实现14亿并发

进程的三状态

  • 进程三状态的基本状态

    • 1.所有的进程想要被运行 必须先经过就绪态
    • 2.运行的进程中如果遇到IO操作 则进入阻塞态
    • 3.运行的过程中如果时间片用完 则继续进入就绪态
    • 4.阻塞态想要进入运行态必须先经过就绪态

image

同步和异步

用于描述任务的提交状态

  • 一、同步
    • 提交完成任务之后原地等待任务的结束 期间不做任何事
  • 二、异步
    • 提交完成任务之后不会原地等待直接去做其他事 结果自动提醒

阻塞与非阻塞

用于描述进程的提交状态

  • 一、阻塞
    • 阻塞态
  • 二、非阻塞
    • 就绪态 运行态

同步异步与阻塞非阻塞

同步异步与阻塞非阻塞的结合使用

  • 一、同步阻塞
    • 在银行排队 并且在队伍中什么事情的不做
  • 二、同步非阻塞
    • 在银行排队 并且在队伍中可以做点其他事情
  • 三、异步阻塞
    • 取号 在旁边的座位上等着被叫号 期间什么都不做
  • 四、异步非阻塞
    • 取号 在旁边的座位上等着被叫号 期间可以办公 打游戏(使程序的运行作用达到极致)
 posted on 2022-08-08 16:07  Joker_Ly  阅读(76)  评论(0)    收藏  举报