😀前言
随着计算机技术的日益发展,操作系统作为计算机系统的核心组件,其重要性不言而喻。操作系统不仅管理和控制计算机硬件和软件资源,还为用户和其他软件提供服务,使得复杂的计算机系统能够高效、安全和方便地运行。本章将深入探讨操作系统的一些基本概念,如程序与进程、进程的三态模型、死锁及其处理策略,以及磁盘调度算法。通过对这些概念的学习,我们可以更好地理解操作系统的工作原理和设计哲学。
🏠个人主页:尘觉主页
🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉
在csdn获奖荣誉: 🏆csdn城市之星2名
💓Java全栈群星计划top前5
🤗 端午大礼包获得者
🥰阿里云专家博主
😉亚马逊DyamoDB结营
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在次感谢啦😊
文章目录
- 软件设计师笔记系列(三)
- 第四章 操作系统知识
- 程序与进程
- 三态模型
- 死锁
- 解释
- 磁盘调度
- 解释
- 😄总结
软件设计师笔记系列(三)
注意第三章数据结构内容过多单独出
第四章 操作系统知识
程序与进程
程序顺序执行时的主要特征包括:顺序性、封闭性和可再现性。
三态模型
在多道程序系统中,进程在处理器上交替运行,状态也不断地发生变化,因此进程一般有3种基本状态:运行、就绪和阻塞。
进程 | CPU | 资源 |
---|---|---|
运行 | √ | √ |
就绪 | × | √ |
阻塞 | × | × |
进程的三种基本状态解释如下:
- 运行:进程正在CPU上执行。
- 就绪:进程已准备好运行,但由于某种原因(如其他进程正在使用CPU)而没有被选中执行。
- 阻塞:进程因等待某一事件(如I/O操作完成)而无法执行。
死锁
当有 n 个进程,m个资源,且每个进程所需要的资源数为k,并且系统采用的分配策略是轮流地为每个进程分配资源时,判断是否发生死锁的公式如下:
m
>
=
n
∗
(
k
−
1
)
+
1
m >= n * (k-1)+1
m>=n∗(k−1)+1
死锁的处理策略主要有4种:鸵鸟策略(即不理睬策略)、预防策略、避免策略和检测与解除死锁。
解释
死锁是指两个或多个进程在执行过程中,由于竞争资源或由于彼此通信而造成的一种僵局(即进程无法继续执行)。
- 鸵鸟策略:简单地忽略死锁问题,认为其发生的概率很低或者发生后的影响可以接受。
- 预防策略:通过设置某些限制条件,确保系统永远不会进入死锁状态。
- 避免策略:允许进程进入不安全状态,但在它们进入死锁状态之前采取行动。
- 检测与解除死锁:允许进程进入死锁状态,然后采取措施检测并解除死锁。
磁盘调度
- 先来先服务(FCFS) :根据进程请求访问磁盘的先后次序进行调度。
- 最短寻道时间优先(SSTF):该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短。
- 扫描算法/电梯调度算法(SCAN):扫描算法不仅考虑到要访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。
- 单向扫描调度算法(CSCAN):为了减少这种延迟,算法规定磁头只做单向移动。
解释
磁盘调度算法的目的是减少磁头的移动距离,从而减少寻道时间和旋转延迟,提高磁盘I/O的性能。
- FCFS:简单直接,但可能导致长队列和长等待时间。
- SSTF:在短期内很有效,但可能导致远离磁头的请求被无限期地延迟。
- SCAN:磁头像电梯一样在两个方向上移动,当到达一个方向的尽头或没有请求时改变方向。
- CSCAN:磁头只在一个方向上移动,当到达一个方向的尽头时,它会立即返回到起始位置并继续其移动。
😄总结
我们对操作系统的一些核心概念有了深入的了解。从程序与进程的基本特性,到进程的三态模型,再到死锁的产生、预防和处理,以及磁盘调度的各种策略,这些知识都是每一个计算机科学爱好者和专业人员必须掌握的。操作系统作为计算机的心脏,其复杂性和重要性都不容忽视。
😁热门专栏推荐
想学习vue的可以看看这个
java基础合集
数据库合集
redis合集
nginx合集
linux合集
手写机制
微服务组件
spring_尘觉
springMVC
mybits
等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持
🤔欢迎大家加入我的社区 尘觉社区
文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞