计算机操作系统之并行性与并发性笔记

目录

在计算机操作系统中,并行性与并发性是两个既相似又有区别的重要概念

并行性:

并发性:

可以通过多任务处理和资源共享来具体说明

并发性的例子

并行性的例子

总结


在计算机操作系统中,并行性与并发性是两个既相似又有区别的重要概念

并行性:

它指的是两个或多个事件在同一时刻发生。

这意味着,如果有足够的处理单元(如多核CPU或分布式系统中的多个节点),这些事件可以真正地同时执行,互不干扰。并行性强调的是物理上的同时性,能够显著提高性能,因为多个任务可以同时进行,减少了总体完成时间。

并发性:

它则是指两个或多个事件在同一时间间隔内发生。

虽然从宏观上看,这些事件似乎是在同时运行,但实际上在单核或多核CPU的某一瞬间,通常只能有一道程序执行,各道程序轮流交替地执行。并发性强调的是逻辑上的同时性,通过操作系统的任务调度和时间片轮转等技术,使多个任务交替执行,从而提高了系统的吞吐量和资源利用率。然而,每个任务的实际执行可能并不是连续的,因此可能会引入一些额外的开销,如上下文切换等。

并行性和并发性都是计算机系统中处理多任务的重要策略,但它们在实现方式、效率、性能以及所需资源方面有所不同。选择使用并行性还是并发性,通常取决于具体的应用场景、硬件条件以及性能需求。

可以通过多任务处理和资源共享来具体说明

并发性的例子

在计算机操作系统中,并发性通常体现在单个处理器上通过时间片轮转来同时处理多个任务。假设你正在使用一台个人电脑,同时运行着以下几个程序:

文字处理软件(如Word):你正在编写一篇文章。

网页浏览器:多个标签页同时打开,其中一个在播放在线视频,另一个在浏览新闻。

音乐播放器:在后台播放你喜欢的音乐列表。

尽管从宏观上看,这些程序似乎都在同时运行,但实际上,由于你的电脑只有一个处理器(或多个处理器但操作系统可能将它们视为一个统一的资源池来管理任务),这些程序是通过操作系统的任务调度机制交替执行的。操作系统为每个程序分配一定的时间片,在这个时间片内,程序可以执行其指令。当时间片用完时,程序会被挂起,操作系统将CPU控制权交给另一个程序。由于这个时间片的切换非常快,用户通常不会感觉到程序是在交替执行的。

并行性的例子

并行性在计算机系统中则更多地体现在多处理器或多核处理器环境中。假设你所在的实验室拥有一台高性能计算集群,该集群由多个节点组成,每个节点都有多个处理器核心。在这样的系统中,并行性可以得到充分的利用。

科学计算任务:研究人员提交了一个复杂的物理模拟任务,该任务被分解为多个较小的子任务,每个子任务都可以独立地在集群的一个或多个节点上并行执行。这些子任务之间可能通过消息传递接口(MPI)或其他并行通信机制来交换数据。

数据库查询:在一个大型数据库中,多个查询请求可以同时提交给数据库管理系统。数据库管理系统可以利用并行查询处理技术来同时处理这些查询请求,每个请求可能在不同的处理器核心上并行执行其计算密集型部分,如连接操作、排序操作等。

总结

在计算机操作系统中,并发性允许单个处理器上通过时间片轮转来同时处理多个任务,从而提高系统的吞吐量和资源利用率。而并行性则利用多处理器或多核处理器的计算能力来真正地同时执行多个任务,从而提高系统的整体性能。这两个概念都是现代计算机系统中处理多任务和提高性能的重要手段。

相关推荐
云上艺旅10 小时前
K8S学习之基础七十四:部署在线书店bookinfo
学习·云原生·容器·kubernetes
热爱前端的小张10 小时前
第三章 内存管理(下)
操作系统
你觉得20511 小时前
哈尔滨工业大学DeepSeek公开课:探索大模型原理、技术与应用从GPT到DeepSeek|附视频与讲义下载方法
大数据·人工智能·python·gpt·学习·机器学习·aigc
A旧城以西12 小时前
数据结构(JAVA)单向,双向链表
java·开发语言·数据结构·学习·链表·intellij-idea·idea
无所谓จุ๊บ12 小时前
VTK知识学习(50)- 交互与Widget(一)
学习·vtk
FAREWELL0007512 小时前
C#核心学习(七)面向对象--封装(6)C#中的拓展方法与运算符重载: 让代码更“聪明”的魔法
学习·c#·面向对象·运算符重载·oop·拓展方法
吴梓穆12 小时前
UE5学习笔记 FPS游戏制作38 继承标准UI
笔记·学习·ue5
Three~stone13 小时前
MySQL学习集--DDL
数据库·sql·学习
齐尹秦13 小时前
HTML 音频(Audio)学习笔记
学习
瞌睡不来13 小时前
(学习总结32)Linux 基础 IO
linux·学习·io