操作系统学习笔记(二)

这篇具有很好参考价值的文章主要介绍了操作系统学习笔记(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

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

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

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

你如何理解critical这个单词?

单标志法:

双标志先检查法

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

 Peterson算法


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

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

操作系统学习笔记(二)

操作系统学习笔记(二)

 操作系统学习笔记(二)

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

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

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

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

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

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

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

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

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

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

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

 文章来源地址https://www.toymoban.com/news/detail-446737.html

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

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

操作系统学习笔记(二)

操作系统学习笔记(二)

 操作系统学习笔记(二)

 

操作系统学习笔记(二)

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

就会导致这里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循环,也是一种对于资源的浪费。

操作系统学习笔记(二)

 

到了这里,关于操作系统学习笔记(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《30天自制操作系统》学习笔记(七)

    30天自制操作系统光盘代码在下面链接,但是没有编译仿真工具: https://gitee.com/zhanfei3000/30dayMakeOS 仿真工具在下面链接: https://gitee.com/909854136/nask-code-ide 这是一个集成的编译仿真工具,只需要把上面仿真工具的文件夹: nask-code-ide-mastercrtools 复制到源码文件加下,并改名为

    2024年01月19日
    浏览(29)
  • 软考学习笔记--操作系统-进程管理

    进程管理是一个具有独立功能的程序关于数据集合的一次可以并发执行的运行活动,是系统进行资源分配和调度的基本单位。相对于程序,进程是动态的概念,而程序是静态的概念,是指令的集合。进程具有动态性和并发性,需要一定的资源来完成任务。在大多数操作系统中

    2024年01月18日
    浏览(30)
  • 银河麒麟操作系统基础学习笔记十三

    tar可以将很多文件打包成一个文件,目录也可以。bzip2和gzip只能压缩单个文件。 bzip2程序能提供比gzip更高的压缩比,是gzip的升级版,推荐使用bzip2进行压缩。

    2024年02月12日
    浏览(40)
  • 《操作系统真象还原》学习笔记:第七章 中断

    由于 CPU 获知了计算机中发生的某些事,CPU 暂停正在执行的程序,转而去执行处理该事件的程序,当这段程序执行完毕后,CPU 继续执行刚才的程序。整个过程称为中断处理,也称为中断。 把中断按事件来源分类,来自CPU外部的中断就称为外部中断,来自CPU内部的中断就称为

    2024年02月11日
    浏览(39)
  • (已完结)深入浅出操作系统 - 目录

    ---- 整理自狄泰软件唐佐林老师课程 实验环境: OS Version: Ubuntu 10.10 QT Version: 4.7.4 QT Creator Version: 2.4.1 Bochs Version: 2.4.5 01 - 进阶操作系统(BIOS) 02 - Hello, DTOS!(第一个主引导程序,屏幕上打印Hello,DTOS! ) 03 - 调试环境的搭建(Bochs) 04-05 - 主引导程序的扩展 06-07-08 - 突破512字节

    2024年02月12日
    浏览(46)
  • 【操作系统OS】学习笔记:第二章 进程与线程 (上)【哈工大李治军老师】

    基于本人观看学习 哈工大李治军老师主讲的操作系统课程 所做的笔记,仅进行交流分享 特此鸣谢李治军老师,操作系统的神作! 如果本篇笔记帮助到了你,还请点赞 关注 支持一下 ♡𖥦)!! 主页专栏有更多,如有疑问欢迎大家指正讨论,共同进步! 给大家跳段街舞感谢支持

    2024年02月02日
    浏览(38)
  • 广工操作系统课设--多用户多级目录的文件系统

    一、课程设计的内容 本课程设计要求设计一个模拟的多用户多级目录的文件系统。通过具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 二、课程设计的要求与数据 1. 在内存中开辟一个虚拟磁盘空间

    2024年02月12日
    浏览(32)
  • Linux操作系统设置图形化界面及目录和文件管理常用命令

    目录 1.安装图形化界面  2.开机启动图形化界面 dos界面与图形化界面切换快捷键 3.Windows与Linux文件系统的差别  4.Linux文件系统常用命令  5.使用pwd命令显示工作目录路径 6.绝对路径和相对路径  7.使用ls命令列出目录和文件信息 Linux默认情况下是不会安装图形界面的,所以需要

    2024年02月05日
    浏览(46)
  • 实验6-cp –r系统命令的实现--源路径(目录)中的所有文件和子目录,以及子目录中的所有内容,全部拷贝到目标路径(目录)中--操作系统实验

    掌握Linux目录操作方法,包括打开目录、关闭目录、读取目录文件 掌握Linux文件属性获取方法,包括三个获取Linux文件属性的函数、文件属性解析相关的宏 掌握POSIX与ANSI C文件I/O操作方法,包括打开文件、关闭文件、创建文件、读写文件、定位文件 利用POSIX API(文件操作也可

    2024年02月08日
    浏览(46)
  • 深入理解Windows操作系统机制(二)

    我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Windows这个我们熟悉的不能再熟悉的系统。 我们每天都在用Windows操作系统,但是其实我们每天直接在打交道的并不是Windows操作系统的内核,而是Windows操作系统的人机交互界面,这个界面其实只是Window

    2024年02月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包