博客整理day28

python day28

操作系统发展史

穿孔卡片

一个计算机房,一次只能被一个卡片使用

​ 缺点:CPU利用率低

联机批处理系统

支持多用户去使用一个计算机机房

脱机批处理系统

高速磁盘:

​ 提高文件的读取速度

优点:

​ 提高CPU的利用率

多道技术(基于单核情况下):

​ 单道:

​ 多个程序使用CPU时是串行

​ 多道技术:

​ 空间上的复用:

​ 一个CPU可以提供多个用户去使用

​ 时间上的复用

​ 切换 + 保存状态

​ IO操作

​ input()

​ print()

​ time.sleep()

  1. 若CPU遇到IO操作,会立即将当前执行程序CPU使用权断开

    优点:

    ​ CPU的利用率高

      2. 若一个程序使用CPU的时间过长,会立即将当前执行程序CPU使用权断开
    

    缺点:

    ​ 程序的执行效率低

并发与并行

并发:指的是看起来像同时在运行,多个程序不停切换 + 保存状态

并行:真实意义上的同时运行,在多核(多个cpu)的情况下,同时执行多个程序

进程

程序与进程

程序:一堆代码

进程:一堆代码运行的过程

进程调度

当代操作系统调度:

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

  1. 先来先服务调度:

    缺点:

    ​ 程序a先使用,程序b必须等待程序a使用cpu结束后,才能使用

  2. 短作业优先调度:

    缺点:

    ​ 若程序a使用时间最长,有n个程序使用时间短,则必须等待所有用时短的程序结束后才能使用

  3. 时间片轮转法:

    cpu执行的时间的1秒中,加载n个程序,要将1s等分成多n个时间片

  4. 分级反馈队列

    ​ 将执行优先分为多层级别,第一个队列的优先级别最高,第二队列次之,其余各队列的优先权逐个降低.该算法赋予各个队列中进程执行时间片的大小也各不相同,在优先权越高的队列中,为每个进程所规定的执行时间片就越小

进程的三个状态

就绪态

就绪(Ready)状态:当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。

运行态

执行/运行(Running)状态当进程已获得处理机,其程序正在处理机上执行,此时的进程状态称为执行状态。

阻塞态

阻塞(Blocked)状态正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等。

同步和异步

​ 同步 : 一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。要么成功都成功,失败都失败,两个任务的状态可以保持一致。

​ 异步 : 是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作,依赖的任务也立即执行,只要自己完成了整个任务就算完成了。至于被依赖的任务最终是否真正完成,依赖它的任务无法确定,所以它是不可靠的任务序列。

阻塞与非阻塞

阻塞

阻塞态.遇到IO一定会阻塞。

非阻塞

就绪态

运行态

进程号回收的两种条件:

  1. join可以回收子进程和主进程
  2. 主进程正常结束,子进程与主进程也会被回收

僵尸进程与孤儿进程

僵尸进程

指的是子进程已经结束,但PID号还在,未销毁

缺点:

​ 占用PID号,占用操作系统资源

孤儿进程

指的是子进程还在执行,但父进程意外结束

守护进程

指的是主程序结束后,该主程序产生的所有子程序跟着结束,并回收

posted @ 2019-10-21 20:21  simple123  阅读(108)  评论(0编辑  收藏  举报