10.21 操作系统发展史,进程

痞子三分冷 提交于 2019-12-01 19:31:28

操作系统发展史

穿孔卡片

一个计算机机房,一次只能一个用户使用.
CPU利用率低

联机处理系统

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

脱机批量处理

高速磁盘

提高文件的读取速度

优点

提高CPU利用率

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

多道

空间上的复用(*****)

一个CPU可以提供给多个用户使用

时间上的复用(*****)

切换+保存状态

优点

若CPU遇见IO操作,会立即将当前程序的CPU使用权断开(会让CPU的利用率提高)

缺点

若一个程序使用CPU的时间过长,会立即将当前执行的程序的CPU使用权断开(会让程序的利用率降低)

单道

多个用户使用CPU时是串联运行的
必须让上一个程序运行完,才能运行下一个程序

并发与并行

并发

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

并行

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

进程

程序与进程

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

进程调度

  1. 先来先服务调度
    缺点:程序A先使用,程序B必须等待程序A使用CPU结束后才能使用
  2. 短作业优先调度
    缺点:若程序A使用时间最长,有N个程序使用时间短,必须等待所有用时短的程序结束后才能使用
  3. 时间片轮转法
    CPU执行的时间1秒钟,加载N个程序,要1秒等分多N个时间片
  4. 分级反馈队列
    将执行优先分为多层级别
    1级:优先级最高
    2级:优先级第二
    3级:类推
    ……

    程序调度时的三种状态

    就绪态:所有进程创建时都会进入就绪态,准备调度
    阻塞态:凡是遇到IO操作的进入阻塞态,IO操作结束,必须重新进入就绪态
    运行态:调度后的进程,进入运行态

    同步与异步

    指的是提交任务的方式

    同步

    若有两个任务需要提交,在提交第一个任务时,必须等待该任务执行结束后,才能继续提交并执行第二个任务

    异步

    指的是,若有两个任务提交,在提交第一任务时不需要原地等待,立即可以提交并执行第二个任务

    阻塞与非阻塞

    阻塞

    阻塞态,遇见IO一定会阻塞

    非阻塞

    就绪态和运行态

    面试题:同步与异步,阻塞与非阻塞是同一个东西吗?

    不是同一个概念,同步与异步准备期的,阻塞和非阻塞是建设期的

    创建进程的两种方式

  5. 定义一个任务
    windows:创建子进程,windows会将当前父进程代码重新加载执行一次
    linux/mac:会将当前父进程代码重新拷贝一份,在去执行
  6. 自定义一个类,并继承Process

    join

    告诉操作系统,让子进程结束后,父进程在结束

    进程间数据相互隔离

    主进程与子进程会产生各自的名称空间,让数据相互隔离

    进程对象的属性

    当前进程.pid获取子进程
    os.getpid()获取主进程pid号
    cmd中查看进程号:tasklist|findstr进程号

    进程号回收的两种条件

  7. join.可以回收子进程与主进程
  8. 主进程正常结束,子进程与主进程也会被回收

    僵尸进程与孤儿进程

    僵尸进程

    指的是进程已经结束,但PID号还存在,未被销毁
    缺点:占用PID号,占用操作系统资源

    孤儿进程

    指的是进程还在执行,但父进程意外结束
    操作系统优化机制:提供一个类似于福利院的机制,帮你回收没有父进程的子进程

    守护进程

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!