violet
操作系统的发展史
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的更多相关文章
- BZOJ 2716: [Violet 3]天使玩偶
2716: [Violet 3]天使玩偶 Time Limit: 80 Sec Memory Limit: 128 MBSubmit: 1473 Solved: 621[Submit][Statu ...
- bzoj violet系列 (2708~2725)
cbh大爷说:写博客不能弃坑. orz cbh 那我就来更新博客了. violet这个系列的题好神啊……出题人好劲啊…… ……怎么最近都在理性愉悦啊…… 另外bzoj400题纪念~ 2708: [Vi ...
- 二分+最短路判定 BZOJ 2709: [Violet 1]迷宫花园
BZOJ 2709: [Violet 1]迷宫花园 Sample Input 5 ######### # # # # # # # #S# # ##### # # ## # # # ### ### ## ...
- BZOJ 2724: [Violet 6]蒲公英
2724: [Violet 6]蒲公英 Time Limit: 40 Sec Memory Limit: 512 MBSubmit: 1633 Solved: 563[Submit][Status ...
- [BZOJ2724][Violet 6]蒲公英
[BZOJ2724][Violet 6]蒲公英 试题描述 输入 修正一下 l = (l_0 + x - 1) mod n + 1, r = (r_0 + x - 1) mod n + 1 输出 输入示 ...
- BZOJ2718: [Violet 4]毕业旅行
2718: [Violet 4]毕业旅行 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 229 Solved: 126[Submit][Status ...
- BZOJ 2716: [Violet 3]天使玩偶( CDQ分治 + 树状数组 )
先cdq分治, 然后要处理点对答案的贡献, 可以以询问点为中心分成4个区域, 然后去掉绝对值(4种情况讨论), 用BIT维护就行了. --------------------------------- ...
- BZOJ 2724: [Violet 6]蒲公英( 分块 )
虽然AC了但是时间惨不忍睹...不科学....怎么会那么慢呢... 无修改的区间众数..分块, 预处理出Mode[i][j]表示第i块到第j块的众数, sum[i][j]表示前i块j出现次数(前缀和, ...
- BZOJ 2718: [Violet 4]毕业旅行( 最长反链 )
一不小心速度就成了#1.... 这道题显然是求最长反链, 最长反链=最小链覆盖.最小链覆盖就是先做一次floyd传递闭包, 再求最小路径覆盖. 最小路径覆盖=N - 二分图最大匹配. 所以把所有点拆成 ...
- BZOJ2720: [Violet 5]列队春游
2720: [Violet 5]列队春游 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 173 Solved: 125[Submit][Status] ...
随机推荐
- PHP 原生上传图片
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> < ...
- mybatis之返回值总结
mybatis框架让我们能在编程中只需要编写一个接口,然后再编写mapper映射文件,无需编写接口的实现类就可以实现从数据库检索数据.这是mybatis通过动态代理,把mapper映射文件的内容转化为 ...
- shell编程2:数组的运用
Shell 数组 定义数组 在Shell中,用括号来表示数组,数组元素用"空格"符号分割开.定义数组的一般形式为: name=(name1 name2 name3) 复制代码 还可 ...
- 【题解】Tom的烦恼
题目描述 Tom是一个非常有创业精神的人,由于大学学的是汽车制造专业,所以毕业后他用有限的资金开了一家汽车零件加工厂,专门为汽车制造商制造零件.由于资金有限,他只能先购买一台加工机器.现在他却遇到了麻 ...
- LLppdd never give up!
LLppdd never give up! Time Limit: 1 s Memory Limit: 256 MB 题目背景 LLppdd是个被毒害的小朋友,他的初中生涯充满了坎坷. 直到初三的某一 ...
- 停止node进程
运行vue-cli项目的时候经常出现端口号占用,npm run dev报错的信息, 此时可通过任务管理器粗暴的杀死node进程,也可以通过cmd检测占用某个端口的程序,进而杀死该进程,步骤如下: 1. ...
- HDU-4044 树形背包dp好题
不会做,题解是参考网上的.感觉这道题是到好题,使得我对树形背包dp更了解了. 有几个注意的点,直接给出代码,题解以及注意点都在注释里了. #include<bits/stdc++.h> u ...
- Java中如何获取到线程dump文件
死循环.死锁.阻塞.页面打开慢等问题,打线程dump是最好的解决问题的途径.所谓线程dump也就是线程堆栈,获取到线程堆栈有两步: (1)获取到线程的pid,可以通过使用jps命令,在Linux环境下 ...
- C++中创建对象的时候加括号和不加括号的区别(转)
c++创建对象的语法有----- 1 在栈上创建 MyClass a; 2 在堆上创建加括号 MyClass *a= new MyClass(); 3 不加括号 MyClass *a = new My ...
- nginx获取头部信息带下划线,获取不到解决方案
nginx获取头部信息带下划线,获取不到解决方案 解决方案: 修改配置文件,进行添加信息如下: underscores_in_headers on; 然后进行重新加载: [root@qa-web co ...