操作系统的发展史

1.穿孔卡片

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

缺点:cpu的利用率低

2.联机批处理系统

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

3.脱机批处理系统

告诉磁盘

提高文件的读取速度

优点:

提高cpu时是串行

多道技术:

空间上的复用:

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

时间上的复用:

切换+保存状态

IO操作

input()

print()

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

优点:

CPU使用率变高了

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

缺点:程序的执行效率低

并发与并行

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

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

进程

程序与进程

程序就是一堆代码

进程就是一堆代码的运行过程

进程调度

当代操作系统调度

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

1.先来先服务调度

a,b程序,若a程序先来,先占用CPU

缺点是

如果程序a先使用,那么b得等a运行完了才能运行

2.短作业优先调度

a,b两个程序,谁的用时最短,谁就先调度使用cpu

缺点:

若a使用时间最长,其他程序使用时间都很短,

必须等待所有用时短的程序结束后才能使用

3.时间片轮转法

cpu执行的时间一秒钟加载n个程序,需要将一秒等分成多n个时间片

4.分级反馈队列

将执行优先分为多层级别

1级:优先级最高

2级:优先级第二,以此类推

进程的三个状态

就绪态

所有进程创建时都会进入就绪态,准备嗲偶

运行态

调度后的进程,进入运行态

阻塞态

凡是遇到I/O操作的进程都会进入阻塞态
若I/O结束必须重新进入就绪态

同步和异步

指的是提交任务的方式

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

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

阻塞和非阻塞

阻塞:阻塞态遇到I/O操作一定会进入阻塞态

非阻塞:就绪态和运行态

同步与异步还有阻塞与非阻塞是不是一个概念?

不是一个概念,不能混为一谈

主进程和子进程会产生各自的名称空间

查看进程名称空间的方法有:

1.查看子进程号:current_process().pid

2.获取主进程:os.getpid()

3.cmd中查看进程号:tasklist|findstr进程号

4.获取主进程的父进程的pid号:os.getppid()

最大提高CPU的使用率:

尽可能的减少不必要的IO操作

进程号回收的两种条件:

1.join,可以回收子进程与主进程

2.主进程正常结束,子进程与主进程也会被回收

僵尸进程与孤儿进程

僵尸进程

指的是子进程已经结束了,但是它的pid号还存在,未被摧毁

缺点是占用pid号,占用操作系统的资源

孤儿进程

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

操作系统优化机制:提供一个福利院帮你回收没有父进程的子进程

守护进程

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

violet的更多相关文章

  1. BZOJ 2716: [Violet 3]天使玩偶

    2716: [Violet 3]天使玩偶 Time Limit: 80 Sec  Memory Limit: 128 MBSubmit: 1473  Solved: 621[Submit][Statu ...

  2. bzoj violet系列 (2708~2725)

    cbh大爷说:写博客不能弃坑. orz cbh 那我就来更新博客了. violet这个系列的题好神啊……出题人好劲啊…… ……怎么最近都在理性愉悦啊…… 另外bzoj400题纪念~ 2708: [Vi ...

  3. 二分+最短路判定 BZOJ 2709: [Violet 1]迷宫花园

    BZOJ 2709: [Violet 1]迷宫花园 Sample Input 5 ######### # # # # # # # #S# # ##### # # ## # # # ### ### ## ...

  4. BZOJ 2724: [Violet 6]蒲公英

    2724: [Violet 6]蒲公英 Time Limit: 40 Sec  Memory Limit: 512 MBSubmit: 1633  Solved: 563[Submit][Status ...

  5. [BZOJ2724][Violet 6]蒲公英

    [BZOJ2724][Violet 6]蒲公英 试题描述 输入 修正一下 l = (l_0 + x - 1) mod n + 1, r = (r_0 + x - 1) mod n + 1 输出 输入示 ...

  6. BZOJ2718: [Violet 4]毕业旅行

    2718: [Violet 4]毕业旅行 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 229  Solved: 126[Submit][Status ...

  7. BZOJ 2716: [Violet 3]天使玩偶( CDQ分治 + 树状数组 )

    先cdq分治, 然后要处理点对答案的贡献, 可以以询问点为中心分成4个区域, 然后去掉绝对值(4种情况讨论), 用BIT维护就行了. --------------------------------- ...

  8. BZOJ 2724: [Violet 6]蒲公英( 分块 )

    虽然AC了但是时间惨不忍睹...不科学....怎么会那么慢呢... 无修改的区间众数..分块, 预处理出Mode[i][j]表示第i块到第j块的众数, sum[i][j]表示前i块j出现次数(前缀和, ...

  9. BZOJ 2718: [Violet 4]毕业旅行( 最长反链 )

    一不小心速度就成了#1.... 这道题显然是求最长反链, 最长反链=最小链覆盖.最小链覆盖就是先做一次floyd传递闭包, 再求最小路径覆盖. 最小路径覆盖=N - 二分图最大匹配. 所以把所有点拆成 ...

  10. BZOJ2720: [Violet 5]列队春游

    2720: [Violet 5]列队春游 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 173  Solved: 125[Submit][Status] ...

随机推荐

  1. upc组队赛3 T-net【贪心】

    T-net 题目描述 T-net which is a new telecommunications company, plans to install its base stations in th ...

  2. java多线程学习笔记(四)

    上一节讲到Synchronized关键字,synchronized上锁的区域:对象锁=方法锁/类锁 本节补充介绍一下synchronized锁重入: 关键字synchronized拥有锁重入的功能,也 ...

  3. windows配置环境变量

    windows配置环境变量 1.第一步 2.第二步 3.第三步

  4. 什么是索引?Mysql目前主要的几种索引类型

    一.索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的My ...

  5. ant的安装和使用

    1.ant的安装 1.1 添加环境变量:ANT_HOME=D:\software\ant\apache-ant-1.10.1 在path中添加:%ANT_HOME%\bin 1.2 测试是否安装成功 ...

  6. Asp.net Controller中View 和Action方法认证Authorize 及对AuthorizeAttribute扩展

    Asp.net Controller中View和Action方法认证Authorize 在建立Web 站点安全性时 1.登录后才可访问系统文件 ——限制 Forms认证 <authenticat ...

  7. goto和函数调用

      goto: 函数调用: 作用域 label在函数内定义,所以函数内   跳转操作 无条件 调用时先保存现场,复制实际参数,然后才是跳转 生存期 由于不是左值,它没有生存期,仅在编译期有意义.   ...

  8. windows线程函数必须为全局函数或者静态函数(转)

    调用CreateThread(...)创建线程时要指定所创建线程的入口函数,此入口函数只能是全局函数或者类的静态成员函数. 全局函数很容易理解,但如果是类的成员函数则必须是静态成员函数,为何, 因为类 ...

  9. 解决VSCode中Python在控制台输出中文乱码的问题

    在菜单Debug->Open Configurations,打开launch.json,新增如下粉红色字符内容: { // Use IntelliSense to learn about pos ...

  10. IntelliJ IDEA2016.1 + maven 创建java web 项目[转]

    最近开始使用idea 来写java项目了,这个很流行,相比Eclipse方便了很多.功能多了,相对应的使用的复杂度也较高了,因为网上很多的使用和创建项目的简单教程,都是基于老版本的,每个新版本都有不一 ...