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] ...
随机推荐
- git和svn的比较
当前的市场上主流的两种项目开发版本控制软件就是Git和SVN,那么这二者到底有什么区别呢? 在我们公司,其实两个都用,跟对个人体验,我觉得两者差不多,都是进行代码的版本管理. 我觉得1.由于我是实习生 ...
- [已解决]报错: Version in docker-compose is unsupported
docker compose将解析版本为"2",而不是"3.3".应该改为: version: "2"
- hduoj-1301 Jungle Roads(最小生成树-克鲁斯卡尔和普里姆求解)
普里姆求解: #include<cstdio> #include<cmath> #include<cstring> #include<iostream> ...
- mybatis 教程(mybatis in action)
目录简介: 一:开发环境搭建二:以接口的方式编程 三:实现数据的增删改查 四:实现关联数据的查询 五:与spring3集成(附源码) 六:与Spring MVC 的集成 七:实现mybatis分页(源 ...
- HTML CSS的中英文对照
python 大蟒蛇 downloads 下载 install 安装 customize 自定义 path 环境变量:路径 optional 可选的 feature 特性特点 documentatio ...
- 利用ARIMA算法建立短期预测模型
周五福利日活动是电信为回馈老用户而做的活动,其主要回馈老用户的方式是让用户免费领取对应的优惠券,意在提升老用户的忠诚度和活跃度.今日,为保证仓库备货优惠券资源充足,特别是5元话费券等,需要对该类优惠券 ...
- Android 6.0 - 动态权限管理的解决方案(转)
转自:http://www.cnblogs.com/dubo-/p/6018262.html Android 6.0 - 动态权限管理的解决方案 转载请标注 Android 6.0版本(Api 2 ...
- Mate Translate的特色功能phrasebook 常用语手册介绍
Mate Translate是Mac os系统上一款多国语言即时翻译工具,支持103种语言之间的即时互译,还可以在你的所有设备之间轻松同步.Mate Translate 不但推出了适应各个平台使用的客 ...
- Unity Document
{ https://docs.unity3d.com/ScriptReference/Events.UnityEventTools.html }
- SQL 在表中插入
SQL INSERT INTO 语句(在表中插入) INSERT INTO 语句用于向表中插入新记录. SQL INSERT INTO 语句 INSERT INTO 语句用于向表中插入新记录. SQL ...