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] ...
随机推荐
- 12.Jmeter 快速入门教程 -- 监控被测资源
写在前面的话, 作者认为jmeter的监控被测服务器资源只是基本可用, 还好习惯了linux的各种命令和工具,所以也基本不用担心什么了.但是有了图形化的监控, 也方便给领导出报告. 怎么说也是不错的. ...
- elementui表格表头合并
第一步:用多级表头,该删删 该减减 第二步:使用header-cell-style属性
- 把我坑惨的一个MySQL双引号!
来源:For DBA www.fordba.com/mysql-double-quotation-marks-accident.html 一.前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找 ...
- 【Neo4j查询优化系列】如何快速统计节点的关系数
在图数据库中我们经常需要统计节点上的关系数目.一种常见的查询写法是这样的: MATCH (n:Person {name:'Keanu Reeves'})-[]-() RETURN count(*); ...
- 处理CSS前缀问题的神器——AutoPrefixer
众所周知为兼容所有浏览器,有的CSS属性需要对不同的浏览器加上前缀,然而有时添加一条属性,需要添加3~4条类似的属性只是为了满足浏览器的兼容,这不仅会增加许多的工作量. What is AutoPre ...
- js将数字转换成货币形式的字符
因为UI图上有的地方需要将数字转成货币形式的,例如:1234567转成 1,234,567 这样的,不过之前没弄过,然后在网上搜了下方法,参考了下面这篇文章 参考文章:JS将数字转成货币形式的简单 ...
- scss定义全局变量引入sass-resources-loader报错
开发jquery多页应用,引入sass-resources-loader后报 Make sure 'options.resources' is String or Array of Strings. ...
- bash命令根据历史记录补全
用zsh比较方便的一个功能是在找之前用过的命令时可以先输入一部分命令作为过滤条件, 比如,想找 docker run 开头的历史命令,只需要键入 docker run 然后按 ↑ 进行选择. 但是在用 ...
- node js实战:带数据库,加密的注册登录表单
demo 注册效果: 登陆效果: 数据库截图: 数据库操作 db.js //这个模块里面封装了所有对数据库的常用操作 var MongoClient = require('mongodb ...
- css自适应问题
1. 图片自适应 <img src="app-logo.png" srcset="app-logo.png 175w,app-logo-double.png 365 ...