并发编程

并发编程

目录:

  • UDP协议
  • 操作系统发展史
  • 多道技术
  • 进程理论
  • 进程的并行和并发
  • 进程的三大状态
  • 同步和异步
  • 阻塞与非阻塞
  • 同步异步与阻塞非阻塞

UDP协议

  • 在UDP协议中的注意事项

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

    2. 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)
    

操作系统的发展史

​ 操作系统的发展史又被称之为并发编程的发展史

  • 延申

    ​ 在学习操作系统的发展史之前,需要了解计算机的五大模块和三大核心硬件

    • 五大组成部分

      1. 控制器: 计算机的控制系统
      2. 运算器: 计算机的运算系统
      3. 存储器: 计算机存储系统
      4. 输入
      5. 输出
    • 三大核心

      1. CPU :计算机工作的关键
      2. 内存 : 给CPU准备需要运行的代码,临时储存
      3. 硬盘 : 永久存储将来可能所需要运行的代码

      CPU是计算机执行程序的核心

  • 操作系统的演变

    演变历程 具体体现 优缺势
    穿孔卡片 需要程序员先将输入的穿孔卡片准备好
    才能在计算机上做执行命令
    CPU利用率非常的低
    好处是可以一个人独占计算机
    联机批处理系统 将计算机通过联机的方式,一并处理 缩短录入数据的时候
    让CPU连续工作的时间变长
    脱机批处理系统 是现代计算机的雏形 提升CPU利用率

单道技术和多道技术

  • 前提

    ​ 单道技术和多道技术的前提就是在一个CPU下执行程序

  • 单道技术和多道技术

    分类 含义 总耗时
    单道技术 所有程序都排队执行,执行完一个才能执行下一个 所有程序运行结束的耗时之和
    多道技术 计算机利用空闲时间提前准备好一些数据 提高效率 所有程序中最长程序的耗时时长
  • 多道技术的状态

    切换+保存状态

    状态 状态下的流程
    切换 CPU会在程序自身进入IO操作时切换,去执行其他程序
    CPU在被程序长时间占用时切换,去执行其他程序
    保存 每次切换之前要记录下当前执行的状态 之后切回来基于当前状态继续执行
    • 什么是IO操作

      IO操作就是输入输出操作,例如:输入信息,读取文件,保存文件,time.sleep(程序睡眠)等

进程

  • 什么是进程

    ​ 进程就说正在运行的程序

  • 进程的调度算法

    调度算法 具体作用 缺点
    先来先服务算法 先到的优先被执行 针对耗时比较短的程序不友好
    短作业优先调度 哪个用时比较短,先执行哪个 针对耗时比较长的程序不友好

    时间片轮转法+
    多级反馈队列
    将固定的时间做出分割,均分给所有程序
    分配多次后,程序还需要运行则分到下一层
    等待下一时间片执行
    越往下表示程序总耗时越长
    每次分的时间片越多
    但是优先级越低
  • 并行与并发

    意义
    并行 多个进程同时执行 单个CPU肯定无法实现并行 必须要有多个CPU
    并发 多个进程看上去像同时执行就可以称之为并发 单个CPU完全可以实现并发的效果
    如果是并行那么肯定也属于并发
    并发量
    (高并发)
    能够同时执行很多进程的并发量 单个CPU也可以同时实现多个并发的效果
  • 进程的三大状态

    ​ 就绪态,运行态,堵塞态

    ​ 三者的关系:

    image

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

  • 同步和异步、阻塞与非阻塞

    状态 理解
    同步 提交完任务之后原地等待任务的结果 期间不做任何事
    异步 提交完任务之后不原地等待直接去做其他事 结果自动提醒
    阻塞 进程的执行状态——阻塞态
    非阻塞 进程的执行状态——就绪态 运行态
    同步阻塞 在提交任务的过程中原地等待,期间什么是都不做
    同步非阻塞 在提交任务的过程中原地等待,再此状态下可以做点其他事
    异步阻塞 提交完任务后不在原地等待,直到等待结束期间不做任何事
    异步非阻塞 提交完任务后不在原地等待,直到等待结束期间可以做任何事
posted @ 2022-08-08 15:49  Nirvana*  阅读(34)  评论(0)    收藏  举报