面试操作系统 - 第 1 部分
从来没有在课堂上或非 CS 部门认真对待过 OS 科目(比如我)。不用担心,我支持你!
You after reading the article
在这一系列文章中,我将尝试提供尽可能多的相关内容以及操作系统面试中需要的内容,但尽可能使质量达到最佳。
注意:- 本文的某些部分包含我从互联网上找到的定义。它们只是为了让读者更好地理解。
因此,让我们直接进入主题。
操作系统的最初日子(操作系统)
- 最初发生的情况是用户/程序员必须编写程序、控制指令,并且必须发送输入数据。
- 输入数据为穿孔卡格式,输出也相同。
- 所以操作系统必须读取数据,通过点传递,并考虑输出。
- 主要问题是输入数据和处理数据之间存在显着差异,因为输入是一个缓慢的过程(手动在卡上打孔),需要时间,而操作系统是可以更快地处理数据的软件。
1.批处理操作系统
Batch Process Operating System
- 具有相似需求的作业被批处理在一起,并通过处理器作为一个组执行。
- 有一个操作员将具有相似需求的工作分类到相同的批次中。
- 在批处理执行期间,不需要干预。
- 这些类型的操作系统的显着优势是可以节省活动的时间,例如 加载编译器 因为相同的组是连续执行的。
- 主要缺点是内存有限,并且 i/o 设备直接与 CPU 交互。
2. Spooling——外设同时在线操作
Source:- Internet(You can see that system interacts with the disk to perform a task)
- 与 CPU 相比,I/O 设备相对较慢。
- 在 Spooling 中,数据首先存储到磁盘上,然后 CPU 通过主存与磁盘交互。
- 由于主内存和磁盘被认为是数字的,它们大大减少了执行时间。
- 主要优点是 I/O 设备与 CPU 没有交互,并且 CPU 利用率更高,即 CPU 大部分时间都很忙。
- 缺点:- 在开始假脱机时本质上是单编程,即 CPU 一次选择一个任务,但后来它被升级了。
3. 开机
- 它是启动计算机并加载内核(CPU的核心)的过程。
- 当计算机开机时,会执行 POST(开机自检)。
- 然后执行驻留在 ROM 中的引导加载程序,该加载程序加载内核或更复杂的加载程序。
- 当内核正在执行/加载到主内存中时,系统已准备好执行用户指定的任务。
- 所以过程是这样的:- 打开 → POST → 引导加载程序 → 内核 → 执行任务。
注意:-我们可以在另一篇文章(详细文章)中讨论这个主题的另一个调整。
4. 进程状态
- 它被定义为流程的当前活动。
- 当一个进程执行时,它的状态会发生变化。
Process State or Life Cycle Of Process
- 任何时刻只能运行一个进程。
- 许多进程可以处于就绪或等待状态。
- 每个进程由操作系统内部由进程控制块 (PCB) 表示,也称为任务控制块。
- PCB 包含 - 进程状态、程序计数器、CPU 调度信息和 I/O 状态信息。
5.进程调度
- 它是从所有准备好的进程中选择一个进程来执行。
- 有各种类型的调度程序可以帮助将进程从等待状态转移到执行。
- 进程调度的主要目的是让 CPU 尽可能的忙碌。当 CPU 频繁切换到多个进程时,就会发生这种情况,从而产生一种它们都在一个进程中执行的感觉。
- 上面的行被提取到操作系统的概念/类型,称为 ** 多任务操作系统** .
- 在多任务操作系统中,操作系统 ** 上下文切换** 多个进程之间的频率如此之高,以至于似乎所有任务都在一次执行。
- 只是为了让您了解操作系统的速度有多快
用于制造 A15 仿生芯片(iPhone 14 中的操作系统)的 Apple 神经引擎每秒可以执行 15.8 万亿次操作。该死!!
- 正如你所看到的,操作系统确实更快,我们必须做些什么来挤压它的每一点。现在让我们专注于这个话题。
7. 术语
- 僵尸进程♂️:- 这是一个已经终止但它的进程控制块仍然存在的进程,因为它的父进程还没有接受它的返回值。
- 上下文切换:- CPU 在多个作业之间切换以赋予它们执行特定任务所需的计算能力,这称为内容切换,这意味着在多个进程之间切换上下文。
Source:- GeeksForGeeks (Diff Types Of Schedulers)
- 长期调度程序:- 这些调度程序从用户提交的进程中选择进程并将它们加载到就绪队列中(队列用于它们的 FIFO 属性,也用于解耦系统)。
- 短期调度员:- 如您所见,它们有助于将进程从就绪队列或主内存转移到 CPU。
- 中期计划者:- 在某些情况下,即使进程在执行池中,也无法立即执行。所以中期调度器所做的就是将它们从当前位置移除,然后将它们放回就绪队列或主内存中。它有助于控制多道程序的程度。
- 多编程操作系统:- 如果您认真阅读本文,您可以得出多程序操作系统的结论,即这些调度程序和假脱机的组合。从形式上讲,这是一个可以执行一系列任务的操作系统, ** 一次执行一个** 但不需要与 I/O 设备直接交互。
- 抢先调度:- 假设您的 CPU 正在执行一项任务,但同时有一个主要的高优先级任务出现(例如对防火墙的攻击)。发生的情况是,CPU 正在从当前任务中被抢走,所有的计算能力都流向了高优先级的任务。这被称为抢占式调度,这意味着一个进程可以在任何时间通过从它那里获取 CPU 来强制停止。当这种强制离开发生时,任务进入就绪队列。
- 非抢占式调度:- 与抢占相反,即在进程执行时不能抢夺CPU。非抢占式调度的主要优点是它消除了所有调度开销。
我想这就是今天的全部内容。写这篇文章花了我一些时间,一点点的欣赏和改进会对我有帮助的!!
随意连接 领英 **** 或者你可以给我发邮件 [email protected]。
最后,连接为 第2部分 .编码快乐!!
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/37422/20521802
标签:操作系统,调度,面试,进程,执行,部分,CPU,加载 From: https://www.cnblogs.com/amboke/p/16704092.html