软件设计师笔记系列(三)

2023-09-21 23:25:16

😀前言
随着计算机技术的日益发展,操作系统作为计算机系统的核心组件,其重要性不言而喻。操作系统不仅管理和控制计算机硬件和软件资源,还为用户和其他软件提供服务,使得复杂的计算机系统能够高效、安全和方便地运行。本章将深入探讨操作系统的一些基本概念,如程序与进程、进程的三态模型、死锁及其处理策略,以及磁盘调度算法。通过对这些概念的学习,我们可以更好地理解操作系统的工作原理和设计哲学。

🏠个人主页:尘觉主页
在这里插入图片描述

🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

在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(k1)+1
死锁的处理策略主要有4种:鸵鸟策略(即不理睬策略)、预防策略、避免策略和检测与解除死锁。

解释

死锁是指两个或多个进程在执行过程中,由于竞争资源或由于彼此通信而造成的一种僵局(即进程无法继续执行)。

  • 鸵鸟策略:简单地忽略死锁问题,认为其发生的概率很低或者发生后的影响可以接受。
  • 预防策略:通过设置某些限制条件,确保系统永远不会进入死锁状态。
  • 避免策略:允许进程进入不安全状态,但在它们进入死锁状态之前采取行动。
  • 检测与解除死锁:允许进程进入死锁状态,然后采取措施检测并解除死锁。

磁盘调度

  1. 先来先服务(FCFS) :根据进程请求访问磁盘的先后次序进行调度。
  2. 最短寻道时间优先(SSTF):该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,使得每次的寻道时间最短。
  3. 扫描算法/电梯调度算法(SCAN):扫描算法不仅考虑到要访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。
  4. 单向扫描调度算法(CSCAN):为了减少这种延迟,算法规定磁头只做单向移动。
解释

磁盘调度算法的目的是减少磁头的移动距离,从而减少寻道时间和旋转延迟,提高磁盘I/O的性能。

  • FCFS:简单直接,但可能导致长队列和长等待时间。
  • SSTF:在短期内很有效,但可能导致远离磁头的请求被无限期地延迟。
  • SCAN:磁头像电梯一样在两个方向上移动,当到达一个方向的尽头或没有请求时改变方向。
  • CSCAN:磁头只在一个方向上移动,当到达一个方向的尽头时,它会立即返回到起始位置并继续其移动。

😄总结

我们对操作系统的一些核心概念有了深入的了解。从程序与进程的基本特性,到进程的三态模型,再到死锁的产生、预防和处理,以及磁盘调度的各种策略,这些知识都是每一个计算机科学爱好者和专业人员必须掌握的。操作系统作为计算机的心脏,其复杂性和重要性都不容忽视。

😁热门专栏推荐
想学习vue的可以看看这个

java基础合集

数据库合集

redis合集

nginx合集

linux合集

手写机制

微服务组件

spring_尘觉

springMVC

mybits

等等等还有许多优秀的合集在主页等着大家的光顾感谢大家的支持

🤔欢迎大家加入我的社区 尘觉社区

文章到这里就结束了,如果有什么疑问的地方请指出,诸佬们一起来评论区一起讨论😁
希望能和诸佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

更多推荐

Cpp/Qt-day050921Qt

目录实现使用数据库的登录注册功能头文件:registrwidget.h:widget.h:源文件:registrwidget.c:widget.h:效果图:思维导图实现使用数据库的登录注册功能头文件:registrwidget.h:#ifndefREGISTRWIDGET_H#defineREGISTRWIDGET_H

心理咨询预约微信小程序开发制作步骤

随着互联网的普及和人们对心理健康的重视,越来越多的心理咨询需求在日常生活中涌现。为了满足这一需求,开发一款心理咨询预约微信小程序势在必行。本文将介绍使用乔拓云网这个第三方制作平台来制作这款小程序的具体步骤。1.找一个合适的第三方制作平台/工具乔拓云网是一家提供全方位微信小程序制作工具的平台,具有简单易用的操作界面,丰富

.NET 8 中的 WPF File Dialog 改进

作者:DipeshKumar排版:AlanWang我们很高兴宣布从.NET8Preview7开始,对WPF中的通用文件对话框API进行了一系列新的改进。其中包括迄今为止存储库中投票最多的API建议–允许用户选择文件夹的OpenFolderDialog控件–以及文件对话框上支持新的用户场景的几个新属性,例如单独保存状态、

【AI语言大模型】文心一言功能使用介绍

一、前言文心一言是一个知识增强的大语言模型,基于飞桨深度学习平台和文心知识增强大模型,持续从海量数据和大规模知识中融合学习具备知识增强、检索增强和对话增强的技术特色。最近收到百度旗下产品【文心一言】的产品,抱着试一试的心态体验了一下,整体感觉:还行!二、模块【文心一言】有以下模块:趣味挑战、人物对话、创意写作、职场效率

Python中TensorFlow的长短期记忆神经网络(LSTM)、指数移动平均法预测股票市场和可视化...

原文链接:http://tecdat.cn/?p=23689本文探索Python中的长短期记忆(LSTM)网络,以及如何使用它们来进行股市预测(点击文末“阅读原文”获取完整代码数据)。相关视频在本文中,你将看到如何使用一个被称为长短时记忆的时间序列模型。LSTM模型很强大,特别是在保留长期记忆方面。在本文中,你将解决以

bat写的git命令大全(适合初学者)掌握命令行下的Git操作!

欢迎来到Git!无论你是一位Git初学者,这个在命令大全将帮助你在命令行下熟练运用Git,提高版本控制和团队协作的效率。从基本的仓库管理到分支操作,从提交修改到远程仓库同步,这个命令大全涵盖了Git的各种常用功能和技巧。不论你是初学者还是有经验的用户,都能从中学习到有用的命令和最佳实践,让你成为Git的高手!功能列表:

为什么tomcat要自定义线程池实现?

背景最近在研究tomcat调优的问题,开发人员做过的最多的tomcat调优想必就是线程池调优了,但是tomcat并没有使用jdk自己的线程池实现,而是自定了了线程池,自己实现了ThreadPoolExecutor类位于org.apache.tomcat.util.threads包下jdk线程池首先回顾一下jdk的线程池

git rebase 修改中间的commit

0.前言今天在移植最新版本kfence功能的时候,一共需要移植大概40多个patch,中间有很多patch存在冲突,需要手动修改后才能合并。当所有的patch都合并完成进行编译的时候,发现其中一个patch手动合并出了个错误。假如共有40个patch,编号1-40,现在问题是第20个patch需要再修改一下,而21-4

【【萌新的FPGA学习之Vivado下的仿真入门-2】】

萌新的FPGA学习之Vivado下的仿真入门-2我们上一章大概了解了我们所需要进行各项操作的基本框架对于内部实现其实一知半解我们先从基本的出发但从FPGA了解一下vivado下的仿真入门正好帮我把自己的riscV波形拉一下行为级仿真step1:进入仿真界面:SIMULATION->单击RunSimulation->单击

无线振弦采集仪应用隧道安全监测的方案解析

无线振弦采集仪应用隧道安全监测的方案解析隧道是交通建设中重要的组成部分,安全监测是保障隧道使用安全的重要手段。无线振弦采集仪可以对隧道进行实时、连续的振动监测,提供精确的数据分析和预警,是隧道安全监测的有效工具。无线振弦采集仪利用振弦原理,通过测量隧道内振动的频率、振幅及相位等参数,来检测隧道结构的状态,从而判断隧道的

加密 K8s Secrets 的几种方案

前言你可能已经听过很多遍这个不算秘密的秘密了--KubernetesSecrets不是加密的!Secret的值是存储在etcd中的base64encoded(编码)字符串。这意味着,任何可以访问你的集群的人,都可以轻松解码你的敏感数据。任何人?是的,几乎任何人都可以,尤其是在集群的RBAC设置不正确的情况下。任何人都可

热文推荐