操作系统的发展史

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. camunda任务的一些简单操作

    public class ZccTaskService { TaskService taskService; @Before public void init(){ ProcessEngineConf ...

  2. assets和static

    相同点: assets和static两个都是存放静态资源文件.项目中所需要的资源文件图片,字体图标,样式文件等都可以放在这两个文件下. 不相同点: assets中存放的静态资源文件在项目打包时,也就是 ...

  3. Java DOM解析器 - 查询XML文档

    这是需要我们查询的输入XML文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0"?> ...

  4. MFC DLL 导出函数的定义方式

    一直在鼓捣DLL,每天的工作都是调试一个一个的DLL,往DLL里面添加自己的代码,但是对于DLL一直不太了解啊!今天一查资料,才发现自己对于DLL编写的一些基本知识也不了解.要学习,这篇文章先总结DL ...

  5. Sqlplus常用指令

    一.ORACLE的启动和关闭1.在单机环境下2.在双机环境下二.Oracle数据库有哪几种启动方式1.startup nomount 非安装启动,这种方式启动下可执行:重建控制文件.重建数据库2.st ...

  6. spark性能调优02-JVM调优

    1.降低cache操作的内存占比 1.1 为什么要降低cache操作的内存占比 spark的堆内存分别两部分,一部分用来给Rdd的缓存进行使用,另一部分供spark算子函数运行使用,存放函数中的对象 ...

  7. js中三元运算符的两种情况

    一.一般情况 <script type="text/javascript"> var b=5; (b == 5) ? a="true" : a=&q ...

  8. 2018-2-13-win10-UWP-Hmac

    title author date CreateTime categories win10 UWP Hmac lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17: ...

  9. android绑定usb前后摄像头

    在Android的系统会有前置摄像头和后置摄像头的定义,摄像头分为SOC类型的摄像头和USB这一类的摄像头,接下要分析就是USB摄像头这一类 . 一般在android或者linux系统中分析一个模块, ...

  10. ES5的 forEach, map 方法的实现

    如果浏览器不支持forEach,map方法, 要我们自己封装一个, 该怎么操作呢? 1. forEach Array.prototype.forEach = function(fn) { if (th ...