通俗理解计算机操作系统的作用

news2024/11/17 23:30:19

        “操作系统”,简称“OS”,是一个包含多个部分和多个目标的大型程序。

        它的第一项工作是在你第一次打开计算机时启动并运行计算机。它的另一项工作是启动和结束应用程序,并给每个程序一个运行时间。它是那台计算机上所有其他程序的“老大”。当RAM中有多个程序时,在它们之间切换的是操作系统。它允许一个程序运行一小段时间,然后运行另一个程序,然后运行另外一个程序。如果RAM中有十个程序,并且每个程序每次运行百分之一秒,那么每个程序将能够在这段时间内执行数百万条指令,每秒执行几次。看起来所有十个程序都在同时运行,因为每个程序都能以比眼睛更快的速度完成任务.

        操作系统还向应用程序提供服务。当应用程序需要从磁盘读取、写入磁盘或在屏幕上绘制字母时,它不必执行完成任务所需的所有复杂I/O指令。操作系统有许多小例程,它一直保存在RAM中,用于此类目的。

        应用程序要使用其中一个例程,只需要在寄存器中加载一些信息,然后跳转到正确的OS例程的地址。下面是一个如何实现的示例。假设您想在屏幕上绘制一个角色。首先,将所需字符的ASCII码放入R0。然后将希望它在屏幕上出现的行和列编号放入R1和R2。这里有一个棘手的部分:您将应用程序的下一条指令的地址放入R3。现在只需跳转到OS例程。例程将处理在屏幕上绘制字符的所有细节,然后它的最后一条指令将是JMPR R3。因此,这些例程可以从任何应用程序“调用”,完成后,例程将跳回调用它的应用程序中的下一条指令.

        让OS执行所有I/O功能有几个原因。一个是它使编写应用程序更容易,程序员甚至不需要知道外围设备的实际工作方式。另一个原因是,如果每个应用程序都有自己的所有I/O例程的副本,那么将浪费大量RAM。其中一个最重要的原因是,操作系统可以检查程序是否应该被允许做它要求做的事情。这是OS作为老板的另一项工作的一部分。

        操作系统的核心基本上是一个指令循环,它提出以下问题:我需要输入什么吗?我需要输出什么吗?我需要让一些程序运行吗?

        如果所有这些问题的答案都是否定的,那么CPU只是在这个循环中反复执行指令,每秒执行数百万次。当有事情要做时,它跳到处理它的程序的开头,当完成后,它跳回到这个循环,在那里操作系统“等待”其他事情。

        这是一个更大的RAM版本的图,显示了操作系统和其他几个程序可能占用的RAM部分。

        在每个程序的RAM中,都有使程序工作的所有指令代码。每个程序可以被分成自己的主循环,以及许多用于它需要执行的各种任务的例程。如上所述,操作系统还具有可由其他程序调用的例程。

        每个程序还使用部分“地址空间”存储正在处理的数据。例如,计算器需要有几个字节,用于存储用户输入的数字。纸牌需要一些字节来指定哪些牌在哪个位置。字处理器需要一些RAM来存储组成您正在处理的文档的所有ASCII代码。操作系统还需要字节,以便存储字体、跟踪应用程序的加载位置、接收从磁盘读取的数据,以及执行其他用途。

        这就是普通电脑里发生的事情。RAM中有许多不同的程序和数据区域。OS跳转到程序,程序跳转到例程,例程跳转到子程序。每个程序处理其数据或计算某些内容或执行I/O操作。当每一个完成时,它会跳回到它的来源。CPU一次执行一个程序中的一条指令,如果它们被智能地编写,每个程序都会一条一条地完成任务,而不会干扰其他程序。

        如果我们的计算机包括一个“中断系统”,就像我们在前几章所描述的那样,每当有人按下键盘上的键或移动鼠标时,就会有一个中断,它会调用操作系统的一部分来确定是哪个I/O设备导致了中断,然后调用适当的例程来处理它。完成后,CPU将继续执行中断发生时运行的任何程序的下一条指令。

        这一切看起来都很复杂,一眨眼之间就执行了数百万和数十亿条指令。有一些组织程序的方法和良好的编程实践可以使其更容易理解。

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

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

相关文章

【App自动化测试】(一)Appium和移动端自动化

目录1. 目前mobile自动化解决方案1.1 iOS和Android 测试工具1.2 自动化工具的选择1.3 选择自动化工具的考虑因素2. Appium介绍2.1 Appium介绍2.2 多架构支持2.3 推荐Appium的理由2.4. Appium框架介绍2.4.1 Appium引擎列表2.4.2 Appium设计理念前言: 本文为在霍格沃兹…

多智能体强化学习MARL的概念和框架

1.多智能体强化学习 系统里的agents数量大于1,agents彼此之间不是独立的 每个agent的动作都能影响到下一个状态每个agent都能影响到其他agent 除非agent之间是独立的,否则单一agent的RL方法不适合MARL 2.MARL的类型 Fully cooperative(完…

智慧医院智慧医疗解决方案

IBM于2009年提出“智慧医疗”这一理念。作为“智慧的地球”战略的重要组成部分,致力于构建一个“以病人为中心”的医疗服务体系。通过在服务成本、服务质量和服务可及性三方面取得一个良好的平衡,从而优化医疗实践成果、创新医疗服务模式和业务市场&…

Unity插件Obi.Rope详解

前言 Obi.Rope插件的使用方法 绳子的创建 创建后的Obi Rope,Inspector面板如下所示,组件比较多,其中Obi Solver是绳子,布料,液体等的总处理器,也可以单独分出来此组件为一个独立的游戏对象。 绳子的形状…

风控标签体系的使用与介绍

随着大数据技术的深入研究与应用,企业的专注点日益聚焦于怎样利用大数据来为精细化运营及精准营销服务,进而深入挖掘潜在的商业价值。于是,用户画像的概念也就应运而生。 在推荐系统中, 【推荐系统内容,详情可以关注番…

弘玑Cyclone2022产品发布会:全新上线智能文档处理交互平台——尚书台

近日,在弘玑Cyclone“智无边界,数字未来”发布会上,弘玑Cyclone2022年超级自动化系列产品全新亮相,首席产品官贾岿博士带领产品团队以创新技术对新时代语境下的数字生产力进行了全新解读。 上期为大家介绍了人人可用的数字化工作…

Java工具库Guava的数学运算常用方法示例代码

场景 Java核心工具库Guava介绍以及Optional和Preconditions使用进行非空和数据校验: Java核心工具库Guava介绍以及Optional和Preconditions使用进行非空和数据校验_霸道流氓气质的博客-CSDN博客_guava 校验 为什么使用 Guava Math 1、Guava Math 针对各种不常见…

web网页设计期末课程大作业:美食餐饮文化主题网站设计——中华美德6页面HTML+CSS+JavaScript

🎀 精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

MCE | 表观遗传:YTHDF蛋白调节 m6A-RNA

近期,美国康奈尔大学 Samie R. Jaffrey 研究组在 Cell 上发表了题为 “A Unified Model for the Function of YTHDF Proteins in Regulating m6A-Modified mRNA” 的研究,揭示了 YTHDF 蛋白调节 m6A 修饰的 mRNA 的功能统一模型。与“不同的 m6A 位点结合…

反向传播——机器学习

目录 一、实验内容 二、实验过程 1、算法思想 2、算法原理 3、算法分析 三、源程序代码 四、运行结果及分析 五、实验总结 一、实验内容 掌握线性反向传播的原理;掌握线性反向传播的算法Python实现;熟悉非线性反向传播的原理;掌握非线性…

图的存储方式

一、邻接矩阵 图的邻接矩阵存储方式就是用两个数组来表示图。一个一维数组存储图的顶点信息,另一个二维数组存储图中边的信息。 对于无向图来说,我们可以用1表示两顶点相连,用0表示两顶点不相连。任意顶点的度为邻接矩阵中该节点的行或列的…

pytorch案例代码-2

循环神经网络——基础知识 适合前后有联系的连续数据预测,比如天气预测、股市预测、自然语言等,而这些用DNN、CNN来做计算量就太大或者没法做,h0是先验,也可以前面接上CNNFC后面连上RNN,就可以完成图像到文本的转换&am…

AE VAE 代码和结果记录

Auto Encoder 在MNIST 上记录 直接上代码 import os os.chdir(os.path.dirname(__file__)) import torch import torch.nn as nn import torch.nn.functional as F import torchvision from torchvision import transforms from torchvision.utils import save_image from to…

数据结构-学习-01-线性表之顺序表-初始化、销毁、清理、获取长度、判断为空、获取元素等实现

一、测试环境 名称值cpu12th Gen Intel Core™ i7-12700H操作系统CentOS Linux release 7.9.2009 (Core)内存3G逻辑核数2gcc 版本4.8.5 20150623 二、个人理解 数据结构分为逻辑结构和物理结构(也称为存储结构)。 1、逻辑结构 逻辑结构又可以分为以下…

JS 事件

事件 事件是 JS 和 HTML 交互的桥梁。采用“观察者模式”,使用仅在事件发生时执行的监听器(也叫处理程序)订阅事件 事件流 事件流描述的是页面接收事件的顺序。分为 3 各阶段: 事件捕获:最先触发,可以做…

致敬经典 睛彩再现——AVS产业联盟和中国移动咪咕公司携手推动AVS3视频、音频标准

2022年11月14日,中国移动咪咕公司首发AVS3移动端规模化商用版本咪咕视频6.0.7.00,该版本下设的“致敬经典 睛彩再现”专区、以及“菁彩视听”双Vivid直播视角(Audio Vivid & HDR Vivid),通过国家自主的AVS3、Audio…

回顾复习【矩阵分析】初等因子 和 矩阵的相似 || 由不变因子求初等因子 || 由初等因子和秩求Smith标准形(不变因子)

目录 1. 由不变因子,引出 初等因子的概念2. 【必看】例子:已知 不变因子,求初等因子。3.【必看】 例子:已知 秩和初等因子,求史密斯标准形(不变因子)4. 分块矩阵 初等因子的 求法5. 数字矩阵的相似 与 入-矩阵的等价1. 由不变因子,引出 初等因子的概念 例如,下面两个矩阵…

Kotlin 开发Android app(十):Android控件绑定ViewBinding

上一节中,我们知道了Android的布局,这种把界面和逻辑控制分开,是编程里很好的分离方式,也大大的解耦了界面和逻辑控制,使得编程的逻辑不在和界面挂钩。 有了界面的布局,我们需要把界面和代码部分进行绑定&…

OpenPose训练教程

找遍全网都没有非常完整的OpenPose训练教程 决定自己摸索并且记录下来 openpose作者发布了一份训练代码,下面根据这个来操作 GitHUB地址: openpsoe_train 环境:ubuntu 执行matklab脚本的时候懒得下载新的matlab 就在windows下运行的 感觉没…

品质为先,服务不停,广州流辰信息公司恪守初心,匠心为民!

随着互联网技术的蓬勃发展,越来越多的企业也感受到了日益激烈的竞争,也意识到墨守成规的发展模式必当会让企业停滞不前,只有一步一个脚印,始终跟随市场的脚步创新升级,才有可能在汹涌的市场洪流中站稳脚跟。广州流辰信…