操作系统原理 —— 操作系统的四个特征:并发、共享、虚拟、异步 (二)

news2025/1/20 1:52:50

本章我们来聊一下操作系统的四个特征

在我们的操作系统中有四个特征:并发、共享、虚拟、异步,我们结合每一个特征来进行讲解,我们先来看并发

并发

这里所说的并发,最好不联想到并发编程。咱们就简简单单理解一下,在操作系统中并发的特性。

定义:并发是指两个或多个事件,在同一时间间隔内发生。这些事件宏观上是同时发生的,但微观上是交替发生的。

这里并发并行是两个概念,并行是指两个或者多个事件,在同一时间内,确确实实是一起在同步进行的,而并发不一样,并发是外表上看上去是在一起进行,实际上是底层交进行的。

如果对并发、并行还不太了解的同学,可以先暂停,把这个问题弄清楚了,再接着往下来看噢。

那操作系统中的并发指的是:计算机系统中同时存在多个运行着的程序

比如一个单核处理机(CPU),同一时刻只能执行一个程序,因此操作系统会负责协调多个程序交替执行,所以这些宏观上看像同时执行,但是微观上来看是交替执行的。

在现在的计算机的 CPU 中绝大多数都是 8 核以上,小编我的就是 10 核处理器,但是我们计算机中同时运行的软件肯定远远不止 8 个、10 个,不仅仅是我们的应用程序,很多系统程序也是需要使用 CPU 来进行调度的,所以操作系统的并发行依然必不可少。

共享

共享说的是资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。
在这里插入图片描述

如上图,资源共享的方式又分为两种,一种是互斥共享方式,一种是同时共享方式。

互斥共享方式 表示该资源在同一个时间段只允许一个进程访问该资源。比如说摄像头设备,当我们的 QQ 已经在视频通话时,如果再去使用微信进行视频通话,会提示摄像头设备被占用等提示。

同时共享方式 表示该资源允许在同一个时间段内,由多个进程 “同时” 对它们进行访问。比如说发送文件,微信发送文件 A、QQ 发送文件 B,文件 A、文件 B 都是存储在硬盘上的,微信和 QQ 时可以支持同时发送文件的,说明两个进程都在访问硬盘资源,但是从微观上来看,其实是两个进程交替访问的硬盘。

并发和共享的关系

如果说没有并发,在同一时间只能运行一个进程,那资源是不是就没有共享这么一个说法了?

在如果说没有共享,既然不能共享,那必然某一个资源只能有一个进程来使用,那就肯定就不能并发了。

所以说,并发性和共享性它们是互为存在条件。

虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应是用户感受的。

举个例子: 假设现在有一台电脑,它运行内存只有 4 GB,这个是物理实体。

我们现在需要在这台电脑上,打开一个吃鸡游戏,吃鸡游戏假设需要占用 4 GB 的内存,在吃鸡的同时,可能还需要开 YY 语音和队友交流,YY 语音程序可能需要占用 300 M 的内存,这些程序同时运行所占用的内存是远大于 4 GB 的,那为什么它们还可以在这台电脑上同时运行呢?

这里就是使用了,虚拟存储器技术,实际上我们内存卡只有 4 GB,但是在用户看来是远远大于 4 GB,这里也是对应虚拟技术中的 空分复用技术

再举个虚拟的例子:

我们大家都知道,运行一个程序,需要把程序放入到内存中,并且给它分配 CPU 才能执行。

那么在早期 CPU 还是单核的时候,我们可能在计算机上执行了很多软件,比如 QQ、浏览器、音乐等,那么:既然一个程序需要被分配 CPU 才能正常执行,那么为什么在单核的 CPU 的电脑中,可以同时运行这么多个程序呢?

这里也是采用了虚拟技术,这个叫虚拟处理器(CPU)技术,又被称之为 时分复用技术,从微观上来看,CPU 在各个微小的时间段里交替为各个进程服务。 也就是说每一个进程都会占用 CPU 一点时间,然后 CPU 又会去处理下一个进程,一直这样反复,从宏观上来看,各个进程几乎上是同时在运行着。

这里举例的虚拟存储技术、虚拟处理器技术都是属于虚拟的特性,总的来说就是把一个真正物理的实体,变成若干个逻辑上的对应物。

同样,如果操作系统失去了并发性,那么一个时间段系统中只需要运行一道程序,那么就失去了虚拟的意义了,因此没有并发性,就谈不上虚拟性。

异步

异步是指, 在多道程序环境下,允许多个程序并发执行,但是由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

比如说,现在有两个进程在同时运行,但是这两个进程需要使用某一个资源,资源给了进程1使用,那么进程2就没办法使用了,必须要等进程1用完,进程2才能用。 进程1占用资源的时间是不可预知的,所以就相当于走走停停的状态,已不可预知的速度向前推进。

当然,只有系统拥有了并发性,才有可能导致异步性。

本章总结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/434754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

浙工商机器学习课程论文+代码分享(含数据集)

文章目录 一、论文总览二、摘要 & 目录三、数据集的展示四、部分代码4.1 降低内存4.2 部分特征生成4.3 热力图分析4.4 变量分布图4.5 聚类算法4.6 聚类结果的展示(部分)4.7 聚类后的特征图 完整版的论文代码数据集地址: https://mbd.pub…

leetcode刷题(7)二叉树(1)

哈喽大家好,这是我leetcode刷题的第七篇,这两天我将更新leetcode上关于二叉树方面的题目,如果大家对这方面感兴趣的话,欢迎大家持续关注,谢谢大家。 那么我们就进入今天的主题。 文章目录 1.二叉树的前序遍历题目要求示…

优先级队列

目录 前言: 1、PriorityQueue的特性 .2 PriorityQueue常用接口介绍 Ⅰ、PriorityQueue常见的构造方法 Ⅱ、常用的方法 Ⅲ、PriorityQueue的扩容方式: 3、应用 前言: 普通的队列是一种 先进先出的数据结构,元素在队列尾追加&am…

RC专题:无源滤波电路和有源滤波电路

什么是无源滤波电路和有源滤波电路 仅由无源器件(电阻、电容、电感)构成的滤波电路 称为无源滤波电路。如下图所示。 由无源器件和有源器件(双极型管,单极型管,集成运放)构成的滤波电路 称为有源滤波电路。…

什么是爬虫?

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟…

2023第十三届MathorCup高校数学建模挑战赛C题解析

2023第十三届MathorCup高校数学建模挑战赛C题解析 题目解析前言题目一题目二题目三题目四 题目 C 题 电商物流网络包裹应急调运与结构优化问题 电商物流网络由物流场地(接货仓、分拣中心、营业部等)和物流场地之间的运输线路组成,如图 1 所示…

LeetCode:1. 两数之和——哈希表~

🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀 算法专栏: 👉🏻123 一、🌱1. 两数之和 题目描述:给定一个整数数组nums 和一个整数目…

QT 插件通信接口调用 CTK开发(四)

CTK 为支持生物医学图像计算的公共开发包,其全称为 Common Toolkit。为医学成像提供一组统一的基本功能;促进代码和数据的交互及结合;避免重复开发;在工具包(医学成像)范围内不断扩展到新任务,而不会增加现有任务的负担;整合并适应成功的解决方案。 本专栏文章较为全面…

leetcode python刷题记录(十)(91~100)

leetcode python刷题记录(十)(91~100) 91. 解码方法 class Solution:def numDecodings(self, s: str) -> int:if not s or s[0]0:return 0nlen(s)dp[0]*(n1)dp[0]1dp[1]1for i in range(1,n):if s[i]0:if s[i-1]1 or s[i-1]2:…

【算法系列之二叉树I】leetcode226.翻转二叉树

非递归实现前序遍历 力扣题目链接 解决思路 前序遍历&#xff0c;中左右。先放右节点&#xff0c;后放左节点。 Java实现 class Solution {public List<Integer> preorderTraversal(TreeNode root) {//中左右Stack<TreeNode> stack new Stack<>();List…

蓝桥杯:人物相关性分析

蓝桥杯&#xff1a;人物相关性分析https://www.lanqiao.cn/problems/198/learning/ 目录 题目描述 输入描述 输出描述 输入输出样例 输入 输出 输入 输出 运行限制 题目分析:(滑动窗口) AC代码&#xff08;JAVA&#xff09; 题目描述 小明正在分析一本小说中…

【ChatGPT】无需魔法打开即用的 AI 工具集锦

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;蚂蚁集团高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《EffectiveJava》独家解析》专栏作者。 热门文章推荐…

原理+配置+实战,Canal一套带走

前几天在网上冲浪的时候发现了一个比较成熟的开源中间件——Canal。在了解了它的工作原理和使用场景后&#xff0c;顿时产生了浓厚的兴趣。今天&#xff0c;就让我们跟随阿Q的脚步&#xff0c;一起来揭开它神秘的面纱吧。 简介 canal 翻译为管道&#xff0c;主要用途是基于 M…

【设计】【Redis】分布式限流与算法实现

目录 前言实现application.propertiesconfig.RedisConfigMainApplicationcontroller.TrafficLimitControlleraop.AccessLimiterAspectaop.annotation.AccessLimiter 项目结构运行限流脚本计数器滑动窗口令牌桶漏桶 参考资料 前言 服务的某些场景可能会出现短时间内的巨大访问流…

【C语言进阶:动态内存管理】柔性数组

本节重点内容&#xff1a; 柔性数组的特点柔性数组的使用柔性数组的优势 ⚡柔性数组 也许你从来没有听说过柔性数组&#xff08;flexible array&#xff09;这个概念&#xff0c;但是它确实是存在的。C99 中&#xff0c;结构中的最后一个元素允许是未知大小的数组&#xff0c…

java+ssm 社区超市网上商城果蔬(水果蔬菜)管理系统

在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括超市果蔬管理系统的网络应用&#xff0c;在外国超市果蔬管理系统已经是很普遍的方式&#xff0c;不过国内的超市果蔬管理系统可能还处于起步阶段。超市果蔬管理系统具有果蔬管…

Flutter系列(八)搜索框详解

底部导航顶部导航图片列表的完整代码 Flutter系列&#xff08;四&#xff09;底部导航顶部导航图文列表完整代码_摸金青年v的博客-CSDN博客 目录 一、前言 二、搜索框实现方案 三、完整工程代码 1. 自定义的搜索框组件SearchAppBar search.dart 2. 搜索详情页 search…

Java岗五面阿里,终拿offer,原来面试官总喜欢问这些问题

一面 一面就做了一道算法题&#xff0c;要求两小时内完成&#xff0c;给了长度为N的有重复元素的数组&#xff0c;要求输出第10大的数。典型的TopK问题&#xff0c;快排算法搞定。 算法题要注意的是合法性校验、边界条件以及异常的处理。另外&#xff0c;如果要写测试用例&am…

v1.5宝可梦综合耐久最大化计算器

版本更新v1.5 链接&#xff1a;https://pan.baidu.com/s/1JseHNYnAqIuSpg5f3k6Hbw?pwd01gy 提取码&#xff1a;01gy 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 更新说明 1.增加了特性威吓、灾祸之鼎、灾祸之简 使用说明 1.种族值&#xff1a;查百科获取…

Jmeter5.1.1报错:java.net.BindException: Address already in use: connect

Jmeter5.1.1报错&#xff1a;java.net.BindException: Address already in use: connect 原因&#xff1a;从网上找到资料&#xff1a;端口占用 Windows提供给TCP/IP链接的端口为 1024-5000&#xff0c;并且要四分钟来循环回收它们&#xff0c;就导致我们在短时间内跑大量的请…