📝 操作系统教程
321篇技术文档📅  最后修改于: 2022-05-13 01:56:11.544000        🧑  作者: Mango
N进程彼得森算法本主题的先决条件包括有关进程间同步以及如何获得同步的想法。此外,生产者-消费者问题的一些知识以及彼得森算法的思想是最重要的。概述 :任何操作系统中各种进程的执行之间的同步是最重要的。哪个进程将被允许执行他们可能正在更改某些重要变量的关键部分部分,此时在其他进程中了解非常重要,因为忽略它会导致不需要的结果或结果。因此,为了获得进程之间的同步,人们讨论和开发了许多技术,其中彼得森算法就...
📅  最后修改于: 2022-05-13 01:56:11.548000        🧑  作者: Mango
单体架构学习微服务之前,我们一直知道为什么我们不使用单片架构时下。这样有助于我们更清楚地理解微服务。单体架构就像一个大容器,其中一个应用程序的所有软件组件都组装在一起并紧密耦合,即每个组件完全相互依赖。例子:让我们举一个电子商务网站的例子——正如您在示例中看到的,应用程序提供的所有服务(客户服务、成本服务、产品服务)都是直接连接的。因此,如果我们想更改代码或其他内容,我们也必须更改所有服务。坏处:...
📅  最后修改于: 2022-05-13 01:56:11.550000        🧑  作者: Mango
进程管理中的多线程模型多线程——多线程同时执行的进程。许多操作系统以组合方式支持内核线程和用户线程。这种系统的例子是 Solaris。多线程模型分为三种类型。多对多模型在这个模型中,我们有多个用户线程复用到相同或更少数量的内核级线程。内核级线程的数量是特定于机器的,这种模型的优点是如果一个用户线程被阻塞,我们可以将其他用户线程调度到其他内核线程。因此,如果特定线程被阻塞,系统不会阻塞。它是最好的多...
📅  最后修改于: 2022-05-13 01:56:11.553000        🧑  作者: Mango
互斥的彼得森算法设置 2(CPU 周期和内存栅栏)问题:给定2个进程i和j,你需要编写一个程序,在没有任何额外硬件支持的情况下,可以保证两者之间互斥。我们强烈建议参考以下在上一篇文章中讨论的基本解决方案。互斥的彼得森算法设置 1我们将解决之前算法中的两个问题。CPU时钟周期的浪费通俗地说,当一个线程正在等待轮到它时,它以一个长的 while 循环结束,该循环每秒测试数百万次条件,从而进行不必要的计...
📅  最后修改于: 2022-05-13 01:56:11.557000        🧑  作者: Mango
操作系统中的虚拟内存虚拟内存是一种存储分配方案,其中辅助内存可以像主内存的一部分一样进行寻址。程序可能用来引用内存的地址与内存系统用来标识物理存储位置的地址不同,程序生成的地址会自动转换为相应的机器地址。虚拟存储的大小受计算机系统寻址方案的限制,辅助存储器的可用量不受主存储位置的实际数量的限制。这是一种使用硬件和软件来实现的技术。它将程序使用的内存地址(称为虚拟地址)映射到计算机内存中的物理地址。...
📅  最后修改于: 2022-05-13 01:56:11.561000        🧑  作者: Mango
操作系统中的列表调度先决条件 - CPU 调度列表调度也称为基于优先级列表的调度是一种调度技术,其中通过为进程分配一些优先级来制作有序的进程列表。所以,基本上发生的事情是,准备好在给定点执行的进程列表被制作出来。然后根据处理器的可用性,即它们是空闲还是忙碌,如果处理器空闲,它们就会选择进程并执行它们。现在让我们通过一个例子来理解 List Scheduling。例子:假设我们有 7 个进程 P1、...
📅  最后修改于: 2022-05-13 01:56:11.564000        🧑  作者: Mango
静态和动态库 |设置 1编译 C 程序时,编译器会生成目标代码。生成目标代码后,编译器还会调用链接器。链接器的主要任务之一是使库函数(例如 printf()、scanf()、sqrt()、..等)的代码可用于您的程序。链接器可以通过两种方式完成此任务,通过将库函数的代码复制到您的目标代码,或通过进行一些安排以使库函数的完整代码不被复制,而是在运行时可用。静态链接和静态库是链接器将所有使用的库函数复...
📅  最后修改于: 2022-05-13 01:56:11.567000        🧑  作者: Mango
如何提取和反汇编 Linux 内核如果您想查找一些有故障的代码或想要检查各种函数的入口点,那么提取和检查 Linux 内核的反汇编汇编代码会非常有用。一旦您知道所需的必要工具,该过程就相当直观。下面的过程是针对 Ubuntu 20.04 描述的,但也适用于其他基于 GNU/Linux 的操作系统。我们将使用所有 Ubuntu 发行版预装的 objdump 命令行实用程序。要检查它是否已安装并正常工...
📅  最后修改于: 2022-05-13 01:56:11.569000        🧑  作者: Mango
操作系统中延迟和抖动的区别什么是延迟?延迟的字面量意思是“延迟”。在操作系统中,延迟是从发生中断到处理器开始运行代码来处理中断之间的时间。它被视为输入或命令与所需输出之间的组合延迟,以毫秒为单位。一些延迟的例子是——1. 网络延迟:网络的延迟是到达某些数据(例如“知识包”)从其源到目的地的时间延迟。它通常以毫秒为单位。这些类型的延迟工具测量数据包在传输、处理以及在被接收机器解码后最终到达目的地所花...
📅  最后修改于: 2022-05-13 01:56:11.574000        🧑  作者: Mango
LRU 近似(二次机会算法)如果您不熟悉最近最少使用的算法,请查看最近最少使用的算法(页面替换)该算法结合了使用类似于 FIFO(FIFO(页面替换))的队列以及使用数组来跟踪用于为排队页面提供“第二次机会”的位的组合。算法是如何工作的:Set all the values of the bitref as False (Let it be the size of max capacity of ...
📅  最后修改于: 2022-05-13 01:56:11.578000        🧑  作者: Mango
操作系统中的内存保护在本文中,我们将讨论操作系统中的内存保护。正如我们所知,不同的操作系统使用不同形式的内存保护或分离,包括 Plan9 和 Inferno、Microsoft Windows 等。在内存保护中,我们必须保护操作系统免受用户进程的影响,这可以通过使用带有限制寄存器的重定位寄存器来完成。这里,重定位寄存器具有最小物理地址的值,而限制寄存器具有逻辑地址的范围。这两个寄存器有一些条件,比...
📅  最后修改于: 2022-05-13 01:56:11.581000        🧑  作者: Mango
操作系统中多线程架构的阶段先决条件 - 多线程架构多线程模型中线程的实现分为各个阶段,每个阶段执行一个独特的函数。每个线程的各个执行阶段以及每个线程之间的关系如下图所示:1. 延续阶段:(i)一旦一个线程被它的前任(或前一个)线程启动,它就开始执行它的延续阶段。此阶段的重要函数是计算本质上具有重复性的变量。例如——移动下一个线程所需的循环索引变量。这些变量的值将在下一个线程被激活之前提前到下一个线...
📅  最后修改于: 2022-05-13 01:56:11.584000        🧑  作者: Mango
实时系统的应用实时系统是一种实时系统,这意味着在指定的时间限制内获得响应或系统满足指定的截止日期。实时系统有两种类型 - 硬和软。两者都用于不同的情况。硬实时系统用于甚至一些纳秒或微秒的延迟都不允许的地方。软实时系统在时间表达上提供了一些放松。实时系统的应用:实时系统在该技术的各个领域都有应用。这里我们将讨论实时系统的重要应用。1、工业应用:实时系统在现代工业中有着广泛而突出的作用。系统是基于实时...
📅  最后修改于: 2022-05-13 01:56:11.587000        🧑  作者: Mango
实现分布式共享内存的算法分布式共享内存(DSM)系统是分布式操作系统的资源管理组件,它在没有物理共享内存的分布式系统中实现共享内存模型。共享内存模型提供了一个虚拟地址空间,由分布式系统中的所有节点共享。实施 DSM 的核心问题是:如何跟踪远程数据的位置。如何克服在访问远程数据的系统中执行通信协议所涉及的通信开销和延迟。如何在多个节点同时访问共享数据以提高性能。实现 DSM 的算法1. 中央服务器算...
📅  最后修改于: 2022-05-13 01:56:11.591000        🧑  作者: Mango
具有不同到达时间的循环调度先决条件:到达时间为0的循环调度循环调度算法用于为每个作业公平地调度一个时隙或时间段的进程,如果作业没有完成,则中断作业,该作业在另一个作业之后,该作业在使这些时间段内到达的另一个作业之后公平调度。笔记:循环本质上是循环的,因此不会发生饥饿循环是先到先得调度的变体没有优先级,对任何过程或任务都给予特别重视RR调度也称为时间片调度好处:每个进程在固定时间内由 CPU 服务,...