《操作系统导论》第10章读书笔记:多处理器调度(高级)

news2025/1/6 18:44:02

《操作系统导论》第10章读书笔记:多处理器调度(高级)

效果图

效果图

—— 杭州 2024-03-26 夜

文章目录

  • 《操作系统导论》第10章读书笔记:多处理器调度(高级)
    • 1.背景:多处理器架构
    • 2.别忘了同步
    • 3.最后一个问题:缓存亲和度
    • 4.单队列调度和多队列调度
    • 5.Linux多处理器调度和小结
    • 6.补充笔记:多线程和多进程在单核CPU和多核CPU上的并行和并发情况况(GPT第一次回答)
      • 单核CPU上的多线程和多进程
      • 多核CPU上的多线程和多进程
      • 总结
    • 7.补充笔记:多线程和多进程在单核CPU和多核CPU上的并行和并发情况(GPT第二次回答)
      • 单核CPU
      • 多核CPU

1.背景:多处理器架构

在这里插入图片描述

在这里插入图片描述

2.别忘了同步

在这里插入图片描述

3.最后一个问题:缓存亲和度

在这里插入图片描述

4.单队列调度和多队列调度

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.Linux多处理器调度和小结

在这里插入图片描述

6.补充笔记:多线程和多进程在单核CPU和多核CPU上的并行和并发情况况(GPT第一次回答)

在讨论多线程和多进程在单核和多核CPU上的并行和并发情况时,重要的是要理解“并行”和“并发”的区别:

  • 并行(Parallelism):是指两个或更多任务同时执行。在多核CPU中,可以实现真正的并行,因为不同的核可以同时执行多个任务。

  • 并发(Concurrency):是指管理多个同时处于开启状态的任务的能力。在单核CPU中,任务被快速地切换执行,给人一种多任务同时进行的错觉。

单核CPU上的多线程和多进程

在单核CPU上,无论采用多进程还是多线程,都只能实现并发,而不是真正的并行。

  • 多线程:在单核CPU上,多线程是通过时间片轮转或其他调度技术实现的。这意味着线程会被操作系统快速切换执行,每个线程运行一小段时间后让出CPU给其他线程。尽管看起来像是同时在执行,但实际上在任何给定的时间点,CPU只执行一个线程的任务。

  • 多进程:与多线程类似,多进程在单核CPU上也只是并发执行。操作系统会在不同的进程间进行上下文切换,以允许每个进程交替地使用CPU资源。同样,进程切换会给系统带来一定的开销。

多核CPU上的多线程和多进程

在多核CPU上,可以实现真正的并行处理。

  • 多线程:如果一个应用程序创建了多个线程,现代操作系统可以将这些线程分配给不同的CPU核心,从而实现并行执行。这样,线程之间可以同时运行,加速任务的完成。但并行也引入了新的挑战,例如线程同步和数据一致性问题。

  • 多进程:多核CPU同样可以让多个进程并行运行,每个核心上运行一个独立的进程。这提高了应用程序的性能和响应能力,特别是对于计算密集型的任务。由于每个进程拥有独立的地址空间,这也减少了进程间的干扰和潜在的错误传播。

总结

  • 单核CPU上,无论是多线程还是多进程,我们都只能实现并发,因为任务实际上是交替执行的。
  • 多核CPU上,我们可以实现并行,因为可以有多个任务(线程或进程)在同一时间内在不同的核上运行。

并行和并发都可以提高程序的性能,但必须通过适当的同步机制来管理,以避免竞态条件、死锁等多任务处理中常见的问题。

7.补充笔记:多线程和多进程在单核CPU和多核CPU上的并行和并发情况(GPT第二次回答)

在解释多线程和多进程在单核和多核CPU上的并行和并发情况之前,让我们先定义并行和并发的含义:

  • 并发(Concurrency): 是指系统能够处理多个任务的能力;在单个核心的CPU上,它通过任务间快速切换(上下文切换)来实现,给用户一种同时执行多个任务的感觉。
  • 并行(Parallelism): 是指系统同时进行多个任务的能力;在多个核心的CPU上,不同的核心可以同时执行不同的任务。

下面是一个表格,概述了多线程和多进程在单核和多核CPU上的并行和并发性:

CPU类型多线程多进程
单核CPU并发执行(通过线程间的快速切换)并发执行(通过进程间的快速切换)
多核CPU并行执行(如果有足够的核心,线程可以同时运行)并行执行(如果有足够的核心,进程可以同时运行)

单核CPU

  • 多线程:

    • 并发: 是的。单核CPU可以在不同的线程间进行快速切换,从而实现并发。
    • 并行: 否。由于只有一个核心,不能真正同时执行多个线程。
  • 多进程:

    • 并发: 是的。同样,单核CPU可以在不同的进程间进行快速切换,提供并发执行能力。
    • 并行: 否。单核中的进程无法真正并行执行。

多核CPU

  • 多线程:

    • 并发: 是的。多线程非常适合多核CPU,因为可以在不同的核心上同时运行多个线程。
    • 并行: 是的。当有多个核心时,可以真正同时运行多个线程,实现并行。
  • 多进程:

    • 并发: 是的。多进程也可以实现并发,操作系统可以在多个核心之间分配进程。
    • 并行: 是的。与多线程相同,多个进程可以在多核CPU的不同核心上并行运行。

在选择多线程或多进程时,应考虑其他因素,如共享数据的需求、上下文切换的开销、内存使用、开发复杂性等。多线程共享同一进程的内存空间,这使得线程间的数据共享更简单,但也可能带来同步复杂性。而多进程则拥有各自独立的内存空间,这提供了更好的隔离性,但数据共享更为复杂,通常需要使用进程间通信(IPC)机制。

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

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

相关文章

GDAl 之绘制栅格图像的大致直方图和精准直方图(8)

gdal的绘制大致直方图是仅查看概览或者抽样像素的一个子集 import os from osgeo import gdal import matplotlib.pyplot as plt import numpy as np# Dont forget to change directory. os.chdir(rD:\DeskTop\learn_py_must\Learn_GDAL\osgeopy-data\osgeopy-data\Switzerlan…

Obsidian+PicGo+Gitee搭建免费图床

之前使用PicGoGitee配合Typora,后来因为换电脑Typora管理笔记不方便,换到Obsidian笔记,此处记录重新搭建图床的坑与经验。 主要参考# picGogitee搭建Obsidian图床,实现高效写作! 1 下载安装PicGo 下载链接https://mo…

Nginx(Docker 安装的nginx)配置域名SSL证书

1.首先确保Linux环境上已经安装了docker(可参考VMware使用和Linux安装Docker_wmware直接部署linux和安装docker后-CSDN博客 2.通过docker 安装nginx(可参考Linux 环境安装Nginx—源码和Dokcer-CSDN博客) 3.安装SSL证书 3.1 在宿主机中创建…

Java零基础入门到精通_Day 2

18 算数运算符 - * / % 整数的运算只能得到整数 除非用浮点数进行运算(得到浮点数) public class Base_002 {public static void main(String[] args) {double a 6.0;int b 4;System.out.println(a/b); //1.5} } 19 字符的操作 public class Base_0…

鸿蒙OS封装【axios 网络请求】(类似Android的Okhttp3)

Okhttp.ets /*** 网络请求*/ import axios from ohos/axios import httpConstants from ../net/HttpConstants import errorCode from ../utils/errorCode import toast from ../utils/ToastUtils import router from ../utils/RouterUtils import SPUtils from ../utils/SPUt…

Transformer的前世今生 day08(Positional Encoding)

前情提要 Attention的优点:解决了长序列依赖问题,可以并行。Attention的缺点:开销变大了,而且不存在位置关系为了解决Attention中不存在位置关系的缺点,我们通过位置编码的形式加上位置关系 Positional Encoding&…

【保姆级讲解Edge兼容性问题解决方法】

🌈个人主页:程序员不想敲代码啊🌈 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家🏆 👍点赞⭐评论⭐收藏 🤝 希望本文对您有所裨益,如有不足之处,欢迎在评论区提…

头条网盘如何快速获取授权推广

近期可以说是网盘拉新的一个盛宴,好几家网盘为了抢夺用户,都在付费拉新用户,而如今头条网盘也需要开拓市场,方式也很简单粗暴,就是拿钱砸,而对于普通用户来说,只要获得授权,正是赚钱…

【Linux】基础 IO(动静态库)-- 详解

一、前言 为什么要使用别人的代码? 主要是为了提高程序开发的效率和程序的健壮性。 当别人把功能都实现了,然后我们再基于别人的代码去做二次开发,那么效率当然就提高了。其次,这里基于的别人当然不是随便找的一个人,…

基于SpringBoot和Leaflet的行政区划地图掩膜效果实战

目录 前言 一、掩膜小知识 1、GIS掩膜的实现原理 2、图层掩膜流程 二、使用插件 1、leaflet-mask介绍 2、核心代码解释 三、完整实例实现 1、后台逻辑实现 2、省级行政区划查询实现 3、行政区划定位及掩膜实现 4、成果展示 总结 前言 在之前的博客提过按空间矢量…

喜报!数维杯数学建模成功入围安徽工业大学学科竞赛推荐名单

喜报!数维杯数学建模挑战赛成功入围安徽工业大学学科竞赛参赛目录。 安徽工业大学创新创业学院发布了《2023年度安徽工业大学大学生学科竞赛参赛目录》。 其中,数维杯大学生数学建模挑战赛成功入围竞赛参赛目录,感谢全国各高校对数维杯的高…

CUMT linux操作系统课程设计 任务2

先说题目: 调试Linux内核的启动过程,并在Linux 0.11内核进入保护模式之前添加提示信息 //这里吐槽一下,学校发的文档让你用断点去查看运行根本无法操作,报错如下: 所以别管这个报错,先跟着我来 第一题,调试…

Filter,Listener

1,Filter 概念:Filter表示过滤器,是JavaWeb三大组件(Servlet、Filter、Listener)之一 过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能 过滤器一般完成一些通用的操作,比如:权限控制、统一编码处理、敏感字符处理等等…

关于ChatGPT辅助论文写作的重大风险预警

ChatGPT已经发布一年多了,我说说使用它之后最大的变化。 我在工作上变得更懒了! 现在与工作有关的,做啥都想着先用ChatGPT来搞。 比如,拍领导马屁: 领导说,“996是福报,混日子不是兄弟。” 我想…

javaWeb校园二手平台项目

一、系统分析 1.1开发背景 随着全世界互联网技术的不断发展,各种基于互联网技术的网络应用不断涌现,网络技术正在不断的深入人们的生活。人们从Internet上获取信息、享受生活、交流感情、网上工作等。Internet正在迅速改变着人们的生活方式。 经过我国改革开放多年…

Docker数据卷与网络模式

华子目录 数据卷注意数据卷操作查看镜像,容器,数据卷所占空间 Docker的网络模式查看指定容器的网络模式bridge模式none模式host模式container模式 数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过UFS,可以提供很多有…

【Qt】使用Qt实现Web服务器(八):SSE ( Server-sent Events )

1、简述 SSE ( Server-sent Events )是 WebSocket 的一种轻量代替方案,使用 HTTP 协议。 SSE 是单向通道,只能服务器向客户端发送消息,如果客户端需要向服务器发送消息,则需要一个新的 HTTP 请求。 WebSocket 是全双工通道,可以双向通信。 2、效果 在界面上不停的刷…

环境影响与碳排放生命周期评估应用及案例分析

生命周期分析 (Life Cycle Analysis, LCA) 是评价一个产品系统生命周期整个阶段——从原材料的提取和加工,到产品生产、包装、市场营销、使用、再使用和产品维护,直至再循环和最终废物处置——的环境影响的工具。这种方法被认为是一种“从摇篮到坟墓”的…

【Kubernetes】在 Mac 上搭建 Kubernetes

安装 Docker Desktop 前往 Install Docker Desktop on Mac | Docker Docs 下载 Docker Desktop 并完成安装。 配置镜像加速服务 在国内通过官方镜像源的下载速度很慢,因此需要配置镜像加速服务。 国内常见的镜像加速服务有: mirror.baidubce.comhub-…

基于springboot+vue+Mysql的网上图书商城

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…