- 一、操作系统发展史
- 二、多道技术
- 三、进程理论
- 四、进程的并行并发
- 五、进程的三状态
- 六、同步异步
- 七、阻塞与非阻塞
- 八、同步异步与阻塞非阻塞
首先回顾回顾三大核心硬件 CPU 是计算机中那个真真一直在运行干活的人 内存 给CPU准备需要运行的代码 软件 硬盘 用来存储将可能要被运行的代码 软件 进入主题 1.穿孔卡片 1725年,法国人布乔发明了打孔卡,用于贮存纺织机工作过程控制的信息。 但当时打孔卡并没有广泛应用。19世纪80年代,打孔卡主要用于记录数据, 曾用于记录美国1890年人口普查数据。 (CPU利用率非常的低 好处就是程序员可以一个人来独占计算机 想做什么就做什么)
2.联机批处理系统 加载在计算机上的一个系统软件,在它的控制下,计算机能够自动地、成批地处理 一个或多个用户的作业(这作业包括程序、数据和命令)。 缩短录入数据的时候 让CPU连续工作的时间变长(提升CPU利用率)
3.脱机批处理系统 为克服与缓解:高速主机与慢速外设的矛盾,提高CPU的利用率 又引入了脱机批处理系统,即输入/输出脱离主机控制。 (现代计算机的雏形主要提升CPU利用率)二、多道技术
单道技术 所有的程序排队等着被运行 总耗时是所有程序耗时之和 (比如打游戏听歌>必须的听完歌等着播完>之后才能去打游戏) 多道技术 计算机利用空闲时间提前准备好一些数据 提高效率 总耗时较短 (比如听歌>这一首歌还没唱完>就已经加载好了下一首歌的歌词歌曲) 多道技术简单的来说就是 切换+保存状态 1.CPU在两种下会切换(去执行其他的程序) 1> 程序自身进入IO操作(IO:输入输出操作) 例如:获取用户输入、time.sleep、读取文件、保存文件 2.保存状态 每次切换之前要记录下当前执行的状态 之后切换回来基于当前状态继续执行 例如:打游戏撩妹 文字已经打入聊天框 游戏开始了 打完文字还在聊天框内三、进程理论
什么是进程 程序:一堆躺在文件夹里面的代码(还没有运行) 进程:正在被运行的程序(代码正在运行) 进程的调度算法 先来先服务算法 见明知意 第一个打开的程序先运行(针对后面打开耗时较短的程序不友好) 短作业优先调度 查看里面用时最少的程序先运行(针对耗时比较长的程序不友好) 时间片轮转法+多级反馈队列 将固定的时间均分成很多份 所有的程序来了都公平的分一份 分配多次之后如果还有程序需要运行 则将其分到下一层(保证后面的程序能运行) 越往下表示程序总耗时越长 每次分的时间片越多 但是优先级越低四、进程的并行并发
什么是并行 多个进程同时执行 单个CPU肯定无法实行并行 必须要有多个CPU ex:我这个网站很牛逼 能够支持14亿并行量(高并行) 不合理 没有那么多CPU(特意去集群也易实现) 什么是并发 多个进程看上去像是同时执行的程序可以称为并发 单个CPU完全可以实现并发的效果 如果是并行那么肯定属于并发 ex:我这个网站很牛逼 能够支持14亿并发量(高并发) 合理 一个CPU就可以实现了例如国内最牛逼的网站12306五、进程的三状态
1. 所有的进程要想被运行 必须先经过就绪态 2. 运行过程中如果出现IO操作 则进入阻塞态 3. 运行过程中如果出现时间片用完 则继续进入就绪态 4. 阻塞态要想进入运行态必须先经过就绪态(所以运行之前都已经准备好了)六、同步异步
同步异步主要用于描述任务的提交状态 同步 提交完成任务之后在原地等待任务的结果 期间不做任何事(单道技术) 异步 提交完成任务之后不在原地等待直接去做其他事 结果自动提醒(多道技术)七、阻塞与非阻塞
阻塞与非阻塞主要用于描述进程的执行状态 阻塞(阻塞态) 等待运行完再接着下一步 非阻塞(就绪态 运行态) 不需等待直接下一步八、同步异步与阻塞非阻塞
同步阻塞:在银行排队 并且在队伍中什么事情都不做 同步非阻塞:在银行排队 并且在队伍中做点其他事 异步阻塞:取号 在旁边座位上等着叫号 期间不做事 异步非阻塞:取号 在旁边座位上等着叫号 期间为所欲为
技术小白记录学习过程,有错误或不解的地方请指出,如果这篇文章对你有所帮助请点点赞收藏+关注 谢谢支持!