操作系统发展与进程

操作系统发展与进程

UDP协议

服务端:
import socket
server = socket.socket(type=socket.SOCK_DGRAM)
server.bind(('127.0.0.1',8080))
while True:
    msg,address = server.recvfrom(1024)
    print('msg>>>:%s'% msg.decode('utf-8'))
    print(f'address>>>:{address}')
    res = input('请输入您需要输入的内容')
    server.sendto(res.encode('utf-8'),address)
客户端:
import socket
client = socket.socket(type=socket.SOCK_DGRAM)
server_address = ('127.0.0.1',8080)
while True:
    res = input('请输入您需要输入的内容')
    client.sendto(res.encode('utf-8'),server_address)
    msg,address = client.recvfrom(1024)
    print('msg>>>:%s'%msg.decode('utf-8'))
    print(f'address>>>:{address}')
1.服务端不需要考虑客户端是否异常退出
2.UDP不存在黏包问题

image

计算机三大核心硬件

​ CPU:也叫中央处理器,是计算机中唯一一个帮你干活的人

​ 内存:给CUP准备需要运行的代码

​ 硬盘:永远存储着我们将来可能需要运行的代码

操作系统的发展史

  • 穿孔卡片

​ CPU利用率极低

​ 好处是程序员可以一个人独占计算机,想干嘛就干嘛,就是等的时间长

​ 程序员将对应的程序和数据使用乙醇空的纸带或卡片装入输入及中,然后启动输入机将程序和数据写入计算机内存中,接着通过控制台开关启动程序针对数据运行,计算完毕后打印机输出计算结果,用户取走结果并拆下指代或卡片才可以让下一个用户上机

  • 联机批处理系统

    缩短录入数据的时间,让cpu连续工作的时间变长>>>:提升了cpu的利用率

    主机与输入机之间增加了一个存储设备——磁带,在运行于主机上的监督程序的自动控制下,计算机可以自动完成:成批的把输入及上的用户作业读入磁带,依次把磁带上的用户作业读入主机内存并执行,并把计算结果向输出机输出,完成上批作业自动执行下一批

  • 脱机批处理系统

    现代计算机的雏形>>>:提升cpu的利用率

    高速主机与慢速外设的矛盾,提高了cpu的利用率,又尹经理脱机批处理系统,这种方式其实就是增加一台不与主机直接连接而专门用于输入,输出设备打交道的卫星机

image

多道技术

  • I/O状态

    其实就是我们在进入输入,输出,程序睡眠,读取文件和保存文件的过程就是进入I/O状态

  • 单道程序

    在A程序计算时,I/O空闲,A程序I/O操作时,CPU空闲(B程序也是同样),必须A程序工作完成后,B程序才可以进入内存开始工作,两者是串行的,全部完成共需T1+T2

  • 多道程序

    将A,B两个程序都放入内存中在系统的控制下可以相互穿插交替地在CPU上运行:当A程序因请求I/O操作时,B程序就可以占用CPU运行,这样CPU不在空闲,显然,CPU不再空闲这样就提高了CPU的效率AB运行时间少于总时长

image

进程理论

  • 如何理解进程

    程序:就是一堆代码而已,你只要不运行它那么他就是一堆死代码

    进程:其实就是我们运行了这段代码,那么他就动起来了他就活了

  • 进程的调度算法

    先来先服务算法

    ​ 针对那些低耗时的程序来说不友好,本来可以很快运行完成,但是必须要先让排在前面的高耗时程序走

    短作业优先调度

    ​ 其实就是针对耗时比较长的程序不友好,一旦低耗时的程序有点多,那么也会造成高耗时的排不上队

    ​ 时间片轮转法+多级反馈队列

    ​ 将固定的时间均分成很多份,所有程序来了都可以最公平的 分一份,如果分了很多次某些程序还是没有运行结束就代表他 的耗时更长那么我们就分配给他更多的时间去让他执行,但是每次分的时间越长的话,那么这个程序的执行优先级就会越低

image

进程的并行与并发

  • 并行

    并行是指多个程序同时进行,必须要有多个cpu一起执行才能叫做并行

  • 并发

    并发是指多个进程看起来像是同时执行那么他就是并发,单个cpu就可以实现并发的效果,如果是并行那么也肯定属于并发

image

进程的三状态

  • 所有的进程想要被运行就必须先经过就绪态
  • 运行过程中如果出现了I/O操作,那么就会自动进入阻塞态
  • 运行过程中如果时间片用完的话那么就会重新返回就绪态直到运行完毕
  • 阻塞态想要进入运行态必须先经过就绪态才可以继续执行

image

同步和异步

  • 同步

    提交完任务后就会在原地等待任务的结果,期间什么事都不做,就干等着,较为浪费资源

  • 异步

    提交完任务就会立即去往下一个地点做其他的事情,结果自动提醒,不需要去等待结果,只要求返回一个结果

阻塞与非阻塞

  • 阻塞

    阻塞其实就是我们上方所说的遇到了输入输出或者什么东西,进入了I/O状态都叫做阻塞,也叫阻塞态

  • 非阻塞

    非阻塞其实就是什么都没有遇到这个程序直接完好的走完它所展示的所有事情,也就是就绪态和运行态

image

同步异步与阻塞与非阻塞

  • 同步阻塞:在银行中排队,并且在队伍中什么事情都不做
  • 同步非阻塞:在银行中排队,并且在队伍中做点其他事,例如看妹子啊,看手机啊什么的都算时同步非阻塞
  • 异步阻塞:我们在取号机面前取号,然后就去等候区坐着什么都不干
  • 异步非阻塞:我们取号后,去等候区看妹子没有妹子看手机

image

posted @ 2022-08-08 16:35  Joseph-bright  阅读(45)  评论(0编辑  收藏  举报