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] ...
随机推荐
- 在apache hadoop2.6 上部署hive 并将hive数据源存储于Mysql
集成hive 的前提是apache hadoop 集群能够正常启动. hadoop 版本 apach2.6.0 hive 版本:1.2.1 1.安装mysql 并赋予权限: 1.1:创建hive 用 ...
- javascript中var同时声明多个变量时的原理是什么?
<script> function show(){ var a=b=c=d=5; } show(); alert(a);//弹a时报错(not defined),而b.c.d都能弹出5 & ...
- Win7下设置一键关闭所有程序的功能
(文章仅作个人整理和笔记) 在很多情况下,上班族发生这种情况的比较多吧,忙碌的一天下来,准备下班走人的时候,发现自己的电脑打开了好多程序,需要一个一个去关闭,那么有没有什么方法可以实现一键快速关闭所有 ...
- mybatis中的命名空间(namespace)的作用
mybatis中为每一个映射文件添加一个namespace,这样不同的映射文件中sql语句的id相同也不会有冲突,只要定义在映射文件中的sql语句在该映射文件中id唯一就可以
- C语言注意事项
#include <stdio.h> int main() { /*********************************************** * 指针使用注意事项: * ...
- 代理端口转发工具rinetd
转载: https://my.oschina.net/wuweixiang/blog/2983280 rinetd 前言 iptables 的功能当然强大,但理解与设置却有点抽象,便通过google认 ...
- Python爬虫实战——反爬策略之模拟登录【CSDN】
在<Python爬虫实战-- Request对象之header伪装策略>中,我们就已经讲到:=="在header当中,我们经常会添加两个参数--cookie 和 User-Age ...
- jq随机生成数字加字母的字符串
html代码: <dl class="row"> <dt class="tit"> <label for="title& ...
- 数学思维——cf1244C
可惜cf不能用int128,不然这个题就是个exgcd的板子题 这是exgcd的解法,但是只用ll的话会溢出 #include<bits/stdc++.h> using namespace ...
- SP7258 SUBLEX - Lexicographical Substring Search(后缀自动机)
传送门 解题思路 首先建\(sam\),然后在拓扑序上\(dp\)一下,把每个点的路径数算出来,然后统计答案时就在自动机上\(dfs\)一下,仿照平衡树那样找第\(k\)小. 代码 #include& ...