操作系统学习笔记(二)

目录

你如何理解“临界”这个词?

那你如何理解在计算机领域下的“临界”这个词呢?

如何理解计算机领域中的“同步”这个词呢?

你如何理解critical这个单词?

单标志法:

双标志先检查法

双标志后检查法(先上锁再检查)

 Peterson算法


人的一生会面临多少次说谎话与被欺骗的时刻?

这一代最杰出的人才不仅致力于让人们点击广告,而且编写了更加高级的大众监视程序。

 

你如何理解“临界”这个词?

"临界"这个词有不同的含义,具体取决于上下文。以下是几种常见的理解方式:

  1. 物理学中的临界:在物理学中,临界通常指某个物理系统在某种条件下经历从一种状态到另一种状态的临界点或临界状态。例如,液体在一定温度下转变为气体,这个温度被称为临界温度。

  2. 数学中的临界:在数学中,临界通常表示某个参数或变量取得临界值的情况。临界点是函数或方程的临界值,对于这个值,函数或方程可能会发生突变、趋近无穷大或变得不连续。

  3. 社会科学中的临界:在社会科学中,临界可以指一种状态或条件的临界点,表示在该点之前和之后会发生重大的变化或转折。例如,经济学中的临界点可以表示经济增长的阈值,超过该阈值将产生显著的经济影响。

  4. 生物学中的临界:在生物学中,临界可以表示生物体或生态系统的某种状态或条件达到关键的临界点。例如,生物多样性中的临界值表示一个生态系统中物种数量的最小限度,低于这个限度可能会导致生态系统的不稳定和崩溃。

总而言之,"临界"这个词的理解需要根据具体的学科领域和语境来确定。以上只是一些常见的理解方式,具体含义可能因情境而异。

那你如何理解在计算机领域下的“临界”这个词呢?

在计算机领域下,"临界"通常指的是共享资源在并发环境中的访问限制。临界区(Critical Section)是指一段代码或一段程序,在这段代码或程序中访问共享资源的操作需要进行同步或互斥,以避免多个并发执行的线程或进程同时访问共享资源而引发的竞争条件或数据不一致性的问题。

临界区的存在是由于并发环境下多个线程或进程可以并行执行,而对于某些共享资源,同时访问可能导致意想不到的结果或错误。为了保证数据的一致性和避免竞态条件(Race Condition),在临界区的代码段中需要采用适当的同步机制,如互斥锁(Mutex)、信号量(Semaphore)、条件变量(Condition Variable)等,来确保在任意时刻只有一个线程或进程能够进入临界区进行访问。

在编程中,正确地设计和实现临界区的同步机制是确保并发程序正确性和稳定性的关键。通过合理地划分临界区和选择适当的同步机制,可以保证共享资源的正确访问顺序,避免数据竞争和不一致性,并最大程度地提高程序的性能和并发度。

 

因此,在计算机领域中,“临界”一词常常用于描述并发编程中需要同步访问的共享资源区域和相应的同步机制。

(其实对于临界的理解,应该就是多对一的问题,处理不过来的这个临界的状态它是临界)

 

 

这里对于互斥的讲解我认为是比较好的,如果我们只关注于同步和异步,而不关注互斥呢?

就会导致这里A.B的内容打串的问题

 

如何理解计算机领域中的“同步”这个词呢?

在计算机领域中,"同步"(Synchronization)指的是协调多个并发执行的线程、进程或任务之间的操作顺序和状态,以确保它们按照预期的方式进行交互和协作。

并发是指多个计算实体(如线程、进程)同时执行,它们可以在不同的执行环境中独立运行,并在共享资源的访问上存在竞争关系。在这种情况下,缺乏适当的同步机制可能会导致竞态条件(Race Condition)、数据不一致、死锁(Deadlock)等问题。

避同步的目的是为了确保并发执行的计算实体之间的相互作用按照特定的顺序进行,以免不一致和错误的结果。以下是一些常见的同步概念和机制:

  1. 互斥(Mutex):互斥是一种同步机制,用于限制对共享资源的访问,确保在任意时刻只有一个线程或进程可以访问该资源。通过互斥锁或信号量等机制,只有持有锁的线程才能执行临界区的代码。

  2. 条件变量(Condition Variable):条件变量用于线程间的协调和通信。一个线程可以等待某个条件的满足,而另一个线程可以在满足条件时发出信号,通知等待的线程继续执行。

  3. 信号量(Semaphore):信号量是一种计数器,用于控制对共享资源的并发访问。通过对信号量进行加锁和解锁操作,可以限制同时访问资源的线程数量。

  4. 屏障(Barrier):屏障用于确保多个线程在到达某个点之前必须等待,然后同时开始执行后续操作。屏障可以用于同步多个线程之间的计算结果,以便它们在某个点上保持一致。

  5. 同步原语(Synchronization Primitives):同步原语是指编程语言或操作系统提供的基本同步工具,如锁、条件变量、原子操作等,用于实现复杂的同步需求。

通过合理地使用这些同步机制,开发人员可以控制并发执行的顺序、确保数据的一致性,并避免并发问题的发生。同步在多线程编程、并行计算、分布式系统等领域都起着重要的作用,以确保程序的正确性、可靠性和性能。

同步的重点在于按顺序

你如何理解critical这个单词?

"critical"这个单词有多重含义,具体取决于上下文。以下是几种常见的理解方式:

  1. 批判性的:在这种意义上,"critical"表示对事物进行仔细评估、分析和评判的能力或倾向。批判性思维强调对信息和观点进行深入思考、逻辑推理和评估,以形成独立、明智的判断。

  2. 关键的:当描述某物为"critical"时,表示它是至关重要的、不可或缺的,对于某个目标或结果的实现至关重要。这个意义上的"critical"强调了某物的重要性和紧迫性。

  3. 危急的:"critical"也可以表示处于紧急、危险或临界状态的情况。这可能涉及到医疗紧急情况、危机管理、紧急救援等领域。

  4. 批评的:在某些情况下,"critical"可以表示对某人或某事进行严厉评判或批评。这种用法强调了对缺点、问题或错误的指出和指责。

总而言之,"critical"这个词具有多个含义,具体意义取决于使用环境和上下文。以上列举的解释是其中的一些常见含义。

单标志法:

单标志法存在的主要问题是:违背“空闲让进”原则

 

其实知识之间绝对是互通的,因为其背后反映的其实都是思想,我们实现其实都是比较菜的,原因是,从1到100,没有从0到1难。

双标志先检查法

 双标志先检查法的主要问题是:违反“忙则等待”原则。

原因在于,进入区的“检查”和“上锁”两个处理不是一气呵成的。“检查”后,“上锁”前可能发生进程切换。

        同时进入临界区

双标志后检查法(先上锁再检查)

 若按照①⑤②⑥.…的顺序执行,P0和P1将都无法进入临界区
因此,双标志后检查法虽然解决了“忙则等待”的问题,但是又违背了“空闲让进”和“有限等待”
原则,会因各进程都长期无法访问临界资源而产生“饥饿”现象。

就是啥,就是小的把1厕所占了,把它拉满了,之后老的把二号占了,也把它拉满了,之后小的想要去2号继续拉,二号又想去一号,但是他们都相互占着自己想去上的厕所,就导致了一种僵持的状态。

这几个算法,其实说到底还是博弈论

 Peterson算法

 

 

 占用CPU资源

就是Peterson算法,看似虽然没有忙等,有谦让,但是其一直进行while循环,也是一种对于资源的浪费。

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

libevent高并发网络编程 - 05_libevent实现http客户端

文章目录 1 http客户端相关的APIevhttp_uri_parse()evhttp_uri_get_scheme()evhttp_uri_get_port()evhttp_uri_get_host()evhttp_uri_get_path()evhttp_uri_get_query()evhttp_connection_base_bufferevent_new()evhttp_request_new()evhttp_make_request()evhttp_request_get_…

图像动态裁剪

1. 背景 以两级级联模型为例,第一级目标检测模型用于检测人员,第二级目标检测模型用于检测手机、对讲机等。然后实际数据采集过程中,手机、对讲机这些设备并不在人员的一级检测框内,使得二级模型训练的样本较少。 二级目标检测模…

即拼七人拼团系统开发模式,为什么这么火?

即拼七人拼团模式主要是结合了拼团模式的奖励机制和二二复制系统的排位玩法,将产品销售中的利润最大化让利于拼团的用户,刺激用户主动分享推广,以解决平台引流和用户活跃度的问题。 具体来说,即拼七人拼团模式就是用户进入平台购买…

ArrayList 和 LinkedList 之间应该怎么选择?

Joshua Bloch:我写了 LinkedList,但我自己都不用! 对,Joshua Bloch 就是 LinkedList 的作者! 如果你真信了作者的话,那就真的大错特错了,LinkedList 虽然用的没有 ArrayList 多,但使…

【致敬未来的攻城狮计划】— 连续打卡第二十七天:瑞萨RA RA2E1 的 BTN触摸按键

文章目录 由于一些特殊原因: 系列文章链接:(其他系列文章,请点击链接,可以跳转到其他系列文章)或者参考我的专栏“ 瑞萨MCU ”,里面是 瑞萨RA2E1 系列文章。 24.RA2E1的 DMAC——数据传输 25.R…

自学黑客(网络安全),一般人我劝你还是算了吧

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习 我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而…

漏洞分析丨CVE-2012-1873

一、漏洞简述 cve-2012-1873同样是一个著名的堆溢出漏洞,他是IE6-8中MSHTL.dll中的CTableLayout::CalculateMinMax函数里,程序在执行时会以HTML代码中的元素span属性作为循环控制次数向堆中写入数据。第一次会优先根据span申请堆空间,当我们…

数据库事务

目录 一.事务 1.为什么要存在事务 2.什么是事务 3.事务的特性(ACID) 4.MySQL中事务的使用 二.事务的隔离级别 1.什么是隔离级别 2.隔离级别的分类 3.不同隔离级别的现象 4.MySQL中设置隔离级别 5. 四种隔离级别和锁 1.READ-UNCOMMITED 2.READ-COMMITED 3.REPEATAB…

前端实现可拖拽课程表【纯HTML、CSS、JS】

前言 hello,今天实现点小动画,帮助学习理解Web api的拖拽效果,这里实现的是可拖拽的课程表!# 效果图 附:作者没钱去除水印,就这样看一下简单的看一下效果吧! 实现前言知识 这里我使用事件委…

区间合并(算法)

目录 题目代码实现注意点 题目 给定 n n n 个区间 [ l i , r i ] [l_i, r_i] [li​,ri​],要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如: [ 1 , 3 ] [1,3] [1,3] 和 [ 2 , 6 ] [2,…

Maven POM和Maven构建配置文件操作笔记

目录 我到现在还是没有太搞懂Maven的作用,我只是有一个模糊的概念就是它可以添加很多的依赖,这样会使项目搭建起来更加方便,你可以谈谈你的看法吗? Maven POM 父(Super)POM POM 标签大全详解 Maven 构建…

DSP:数字信号处理的原理及应用

什么是DSP?DSP一般有两种解释: 1、Digital Signal Processing,数字信号处理技术,简称DSP。是一门涉及许多学科而又广泛应用于许多领域的新兴学科。数字信号处理是围绕着数字信号处理的理论、实现和应用等几个方面发展起来的。数字…

如何用u盘重装系统win7

​如今的U盘重装win7系统是比较常见的重装win7系统的方法,适用性比较高,操作也十分的简单。有的小伙伴想给自己的电脑重装win7,那么我们用u盘重装系统怎么安装win7?现在小编就来教大家如何用u盘重装系统教程。 工具/原料: 系统…

git commit 设置 eslint + pretter 格式化校验

系统版本 node 版本: v14.17.5 npm 版本: 6.14.14 vue-cli 版本: vue/cli 4.5.19 目录 系统版本 1. 新建一个 vue2.X 空项目 2. 安装插件 eslint ,并初始化 eslint 配置,根目录生成 .eslintrc 配置文件 3. 测试 eslint 配置 4. 安装 husky、lint-staged 5. 在package.j…

使用svg在元素直接绘制连线箭头

注意&#xff1a;svg的图形绘制的点位置坐标是基于画布的位置坐标&#xff0c;相当于从左上角的点为起点。 先来个简单示例&#xff1a; 在点与点之间绘制连线箭头 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

ChatGPT学习-如何向ChatGPT提问

​ 最近在学习chatGPT,怎么样的提问是一个好的提问。通过网上找资料肯定不是最好的方法&#xff0c;我想起一句话&#xff0c;“不识庐山真面目&#xff0c;只缘身在此山中”。最好的老师就是chatGPT&#xff01; 下面先展示下提问成果&#xff0c;我通过xmind生成了思维导图 一…

科思转债上市价格预测

科思转债 基本信息 转债名称&#xff1a;科思转债&#xff0c;评级&#xff1a;AA-&#xff0c;发行规模&#xff1a;7.249178亿元。 正股名称&#xff1a;科思股份&#xff0c;今日收盘价&#xff1a;67.1元&#xff0c;转股价格&#xff1a;53.03元。 当前转股价值 转债面值…

电脑断电文件丢失如何找回?给你支几招!

电脑断电文件丢失如何找回&#xff1f;我好不容易熬夜加班做的活动方案&#xff0c;正当将U盘文件转移到笔记本电脑的时候&#xff0c;没有注意笔记本的电量&#xff0c;在转移数据的过程中突然断电了。我的电脑一下子就“熄”了&#xff0c;方案都没来得及保存。这真是一个悲剧…

MySQL主从复制与读写分离

目录 一、mysql主从复制原理1.1 mysql的复制类型1.2 mysql主从复制的工作原理 二、mysql读写分离原理2.1 读写分离的意义2.2 常见的两种mysql读写分离2.2.1.基于程序代码内部实现2.2.2.基于中间代理层实现2.2.3 amoeba 2.3 mysql读写分离原理 三、mysql数据库四种同步方式3.1 异…

MySQL视图详解

我写本文主要目的&#xff0c;是在网上看见了 所以&#xff0c;文本主要探讨的问题如下&#xff0c;验证结果在最后面 一、修改视图&#xff0c;基表会跟着改吗&#xff1f;答案&#xff1a;会改变 二、修改基表&#xff0c;视图会变化吗&#xff1f;答案&#xff1a;会改变 …