操作系统发展史

穿孔卡片

一个计算机机房,一次只能被一个卡片使用

缺点:CPU利用率最低

联机批处理系统

支持多用户去使用一个计算机机房

脱机批处理系统

高速磁盘:

​ 提高文件的读取速度

优点:

​ 提高CPU的利用率

多道技术(基于单核情况下研究)

单道

多个使用CPU时是串行

多道技术

空间上的复用(重点)

一个CPU可以提供个多个用户去使用

时间上的复用(重点)

切换 + 保存状态

IO操作

input()

print()

time.sleep(5)

1.若CPU遇到IO操作,会立即将当前执行程序CPU使用权断开

​ 优点:

​ CPU的利用率高

2.若一个程序使用CPU的时间过长,会立即将当前程序CPU使用权断开

​ 缺点:

​ 程序的执行率降低

并发与并行

并发

指的是看起来像同时运行,多个程序不停 切换 + 保存状态。

并行

真实意义上的同时运行,在多核(多个CPU)的情况下,同时执行多个程序。

进程

程序与进程

程序:一堆代码

进程:一堆代码运行的过程

进程调度

当代操作系统调度:

​ 时间片轮转法 + 分级反馈对列

先来先服务调度

a,b程序,若a程序先来,先占用CPU

缺点:

​ 程序a先使用,程序b必须等待程序a使用CPU结束后才能使用

短作业优先调度

a,b程序,谁的用时短,先优先调度使用CPU

缺点:

​ 若程序a使用时间最长,有N个程序使用时间短,

​ 必须等待所有用时短的程序结束后才能使用。

时间片轮转法

CPU执行的时间1秒中,加载N个程序,要将1秒等分成多N个时间片。

分级反馈队列

​ 将执行优先分为多层级别

​ - 1级:优先度最高

​ - 2级:优先级第二,以此类推

​ - 3级

​ ......

进程的三个状态

就绪态

所有进程创建时都会进入的就绪态,准备调度。

运行态:

调度后的进程,进入运行态。

阻塞态

凡是遇到IO操作的进程,都会进入阻塞态,

若IO结束,必须重新进入就绪态。

同步与异步

指的是提交任务的方式

同步

若有两个任务需要提交,在提交第一个任务时,

必须等待该任务执行结束后,才能继续提交并执行第二个任务。

异步

若有两个任务需要提交,在提交第一个任务时,

不需要原地等待,立即可以提交并执行第二个任务。

阻塞与非阻塞

阻塞

阻塞态。遇到IO操作一定会阻塞

非阻塞

就绪态

运行态

面试题:同步和异步,阻塞和非阻塞是同一个概念吗?

:强调: 不是同一个概念,不能混为一谈!

进程号回收的两种条件

1.join,可以回收子进程与主进程

2.主进程正常结束,子进程与主进程也会被回收

僵尸进程与孤儿进程

僵尸进程

指的是子进程已经结束,但PID号还存在,未销毁。

缺点:

​ 占用PID号,占用操作系统资源

孤儿进程

指的是子进程还在执行,父进程意外结束

操作系统优化机制:

​ 提供一个福利院,帮你回收没有父亲的子进程。

守护进程

指的是主进程结束后,该主进程产生的所有子进程跟着结束,并回收。

day 28的更多相关文章

  1. 28个你必须知道的HTML5的新特性,技巧以及技术

    崭新新的页面布局 传统的: HTML5: 1. 新的Doctype 尽管使用<!DOCTYPE html>,即使浏览器不懂这句话也会按照标准模式去渲染 2. Figure元素 用<f ...

  2. CSharpGL(28)得到高精度可定制字形贴图的极简方法

    CSharpGL(28)得到高精度可定制字形贴图的极简方法 回顾 以前我用SharpFont实现了解析TTF文件从而获取字形贴图的功能,并最终实现了用OpenGL渲染文字. 使用SharpFont,美 ...

  3. 来,一起让我们越来越懒,面向CSS、JS未来编程。(9.28已更新)

    2016.10.29更新 本文存在大量的错误,仅供参考. 不知不觉在前端领域马上一个年头就要过去了,然而再看看自己的代码,果然够烂,那么为什么代码一直没有用面向对象的思维去写CSS呢?首先有两点:一点 ...

  4. MySQL报错:Got error 28 from storage engine

    今天碰到数据库出错: Got error 28 from storage engine 查了一下,数据库文件所在的盘应该没事,应该是数据库用的临时目录空间不够 问题原因: 磁盘临时空间不够导致. 解决 ...

  5. [.net 面向对象程序设计进阶] (28) 结束语——告别2015

    [.net 面向对象程序设计进阶] (28) 结束语——告别2015 <.net面向对象程序设计进阶>这一系列文章写了太长的时间了,大概有半年没写,在年底又一口气写了好几篇.在整个过程中目 ...

  6. 背水一战 Windows 10 (28) - 控件(文本类): TextBox, PasswordBox

    [源码下载] 背水一战 Windows 10 (28) - 控件(文本类): TextBox, PasswordBox 作者:webabcd 介绍背水一战 Windows 10 之 控件(文本类) T ...

  7. 10月28日PHP基础知识测试题

    本试题共40道选择题,10道判断题,考试时间1个半小时 一:选择题(单项选择,每题2分): 1. LAMP具体结构不包含下面哪种(A) A:Windows系统 B:Apache服务器 C:MySQL数 ...

  8. CentOS6.3编译安装Nginx1.4.7 + MySQL5.5.25a + PHP5.3.28

    [准备工作] #在编译安装lnmp之前,首先先卸载已存在的rpm包. rpm -e httpd rpm -e mysql rpm -e php yum -y remove httpd yum -y r ...

  9. 记 Mac Pro 系统升级后,编译安装 PHP-5.6.28 / PHP-7.0 报错修复过程

    买 Mac Pro 的时候,系统为 OS X 10.11.5,编译 PHP-5.6.21 的时候,也遇到一些坑,安装过程记录如下: Mac Pro 编译安装 PHP 5.6.21 及 问题汇总 后来, ...

  10. 28. 字符串的排列之第1篇[StringPermutation]

    [题目] 输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串abc,则输出由字符a.b.c所能排列出来的所有字符串abc.acb.bac.bca.cab和cba. [分析] 这是一道很好的 ...

随机推荐

  1. MongoDB的安装与简单使用

    一.安装MongoDB的步骤 注:本教程全部统一采用hadoop用户名登录Linux系统,用户名:hadoop 密码:hadoop ​ 首先,在Linux系统中打开一个终端,执行如下命令导入公共秘钥到 ...

  2. adb--环境安装

    前戏 我们在做Android自动化的时候,adb命令是必不可少的,比如我们要获取一个包名,使用adb往手机上安装软件,获取activity等等,都要用到adb命令.而模拟器在我们没有手机测试的时候,可 ...

  3. 讲课专用——线段树——BSS

    题目链接:http://codevs.cn/problem/3981/ 题解: 线段树求GSS模板题 一.一段长的区间的 GSS 有三种情况:>1 完全在左子区间>2 完全在右子区间> ...

  4. connect ECONNREFUSED 127.0.0.1:80错误解决

    这个报错也是一直困扰了我许久,服务端一直打印这个报错,但是页面数据响应又都正常,起初真不知道是因为什么原因,能看出来他是在调用80端口, 但是不明白为什么会调用80端口.一度以为是config.js里 ...

  5. Sql Server怎样设置sa用户登录

    首先,我门打开数据库管理工具,用windows方式登录,windows只能本机登录,这样远程的客户端就登录不了,我们目前就是为了开启sa登录,使远程客户端也能访问数据库,看下图,windows方式登录 ...

  6. windows 中如何定位恶意软件的藏身位置

    目录 一: 下载spy++ 打开后 点击 搜索下面的查找窗口(Alt+F3) 点击 查找程序工具 右侧的 靶子一样的图标,鼠标左键按住不放,拖放到 弹窗上面,弹窗周围会出现 黑框. 然后 我们点击确定 ...

  7. 【Gamma阶段】第七次Scrum Meeting

    冰多多团队-Gamma阶段第七次Scrum会议 工作情况 团队成员 已完成任务 待完成任务 卓培锦 编辑器风格切换(添加夜间模式) UI界面手势切换 牛雅哲 语音输入shell应用:基于pytorch ...

  8. Notepad++ 【自动完成】与【输入时提示函数参数】互相冲突,无奈

    Notepad++ 既然可以在输入时提示函数参数,可是当提示函数参数的时候,输入具体参数时[自动完成]失效了. 一位用户遇到和我一样的问题:https://community.notepad-plus ...

  9. java的this关键字

    class point{ int x; int y; point(int x,int y){ this.x=x;//如果形参和属性名相同,为了区分开来,必须要在属性名前加this y=y;//若不加t ...

  10. C#调用摄像头(AForge)实现扫描条码解析(Zxing)功能

    网上找了很多代码,都比较零散,以下代码纯自己手写,经过测试.下面有链接,下载后可以直接使用. 介绍: 自动识别:点击Start按钮会调用PC摄像头,代码内置Timer,会每100毫秒识别一下当前摄像头 ...