操作系统和进程相关的认识

news2024/11/15 23:23:41

目录

  冯诺依曼体系结构

  冯诺依曼体系结构五大组成部分

  为什么数据只能通过存储器进行输入和输出

  操作系统

  概念一:访问操作系统的请求都是通过系统调用完成的

  操作系统如何管理用户信息

  概念二:先描述,再组织。

    进程的概念

  在认识进行相关的知识之前我们需要先认识一下关于操作系统的相关的知识。

  据我们所知操作系统是位于软件和硬件之间的,可以协调软件和硬件之间的工具,那么我们的操作系统到底是怎么处理硬件与软件之间的关系呢?操作系统又是怎么与硬件链接起来的呢?那么我们就从硬件开始入手,一步步带大家认识一下操作系统的作用原理,以及其中进程的概念。

  冯诺依曼体系结构

  一提到硬件就不可不提到冯诺依曼体系结构。他是一种计算机设计的理念。在冯诺依曼体系结构当中我们的计算机大致可以分为五部分:输入设备,存储器,运算器,控制器以及输出设备。

  我们的数据通过输入设备加载到存储其当中,经过运算器的处理回到存储器当中,最后通过输出设备反映给用户。

  这五部分仅仅是一个大致的概念。

  冯诺依曼体系结构五大组成部分

  就比如我们的输入设备可以有好多工具,例如鼠标,键盘,摄像头,磁盘,话筒,网卡等等都属于输入设备。

  存储器指的就是我们的内存。

  运算器主要对我们的数据进行计算任务。(主要分为算数运算以及逻辑运算)

  控制器主要对我们的计算机硬件流程进行一定的控制。

  输出设备主要包括显示器,播放器(硬件),磁盘,网卡等等

  我们可以发现的是对于输入设备和输出设备有的工具是重复的,比如网卡和磁盘即使输入设备又是输出设备。这是因为我们不仅可以向磁盘当中写入数据还可以从磁盘当中读出数据,我们的网卡也是相同的道理。

  我们需要注意的是:对于数据在输入设备和输出设备的转换只能通过存储器进行。当我们的运算器将数据处理完毕之后也只能重新将数据写入到存储器当中之后再向输出设备进行输出。但是为什么要这样设计呢?

  为什么数据只能通过存储器进行输入和输出

  要想解释这个原因我们就需要向大家介绍一下存储金字塔的概念:

  由于计数以及材料的制约,我们会发现当我们的数据处理速度越快的时候,我们生产该材料所花费的费用也就越高。其中CPU的运算速度是最高的,其次是内存,最后是硬盘等外部存储设备。

  当我们采用的材料越好我们数据的运算速度也就越高,但是我们计算机的成本也就越高。当然我们可以全部采用最好的材料来保证我们的计算机高速的数据处理效率,但是这样并不是我们每一个人都可以承受这样的支出成本的。

  计算机之所以能够普及不仅仅是因为其便利的作用,也是因为其价格普遍人员都可以接收,这也正是计算机得到广泛应用的原因。因此我们需要适当的调整成本。

  所以我们的计算机组成的部分就分为高速运转的CPU部分,以及作为中转设备的内存部分,以及主要用于存储的硬盘部分。由于我们数据的处理速度逐渐减少,所需成本也逐渐减少,因此内存可以采用的空间要比CPU大得多,而我们的硬盘的存储空间又比内存空间大得多。

  由上述的结论我们可以知道,CPU部分的数据处理的速度很快(运算器+控制器)。但是我们的硬盘也就是我们的输入设备的数据存储速度很慢,所以就会产生很大的数据差,造成运行速度的浪费的情况。因为在CPU当中的数据处理早就已经结束了,但是我们的数据还在缓慢的进行输入。

  为了解决这种数据处理不匹配的问题也就有了我们的冯诺依曼体系模型。我们采用一个数据存储速率较为适中的工具存储数据,等到数据存储到一定的量的时候我们在将数据传给CPU进行处理。在数据存储的过程当中CPU还可以处理其他事务,这样就避免了我们机器效率的浪费。这也正是我们的计算机需要一个存储器来作为数组中间介质的原因。

  当我们想要向同学发送一条消息的时候。数据就会经过CPU处理之后存储到运算器当中,之后从输出设备进行输出,之后到达朋友的输入设备当中,进而存储到存储器当中,在经过CPU的处理,最终到达我们的输出设备也就是我们的显示屏幕上面。

  操作系统

  但是我们会发现硬件上的内容大部分都是独立存在的,那么我们要怎样将这些独立存在的东西相互链接起来呢?这个时候就用到了我们的操作系统。

  操作系统的要作用分为两点:1.帮助用户,管理好下面的软硬件资源。2.给用户提供一个良好的运行环境。

  要想有一个安全良好的运行环境那么就意味着我们的操作系统当中的数据不能随便被用户进行访问并修改。但是我们的操作系统又要为用户提供服务。

  概念一:访问操作系统的请求都是通过系统调用完成的

  就好比在银行当中,我们既需要在银行当中存取钱,又不能让我们任意的修改银行当中的账号数据。所以我们就需要采取一定的措施:为用户提供软件接口。就和银行当中的窗口一样,我们的操作系统为了自身的安全并且保证为用户提供服务,会有一个“窗口”(函数接口)。我们在窗口当中可以做符合要求的事情。

  这就有了我们操作系统的第一个概念:访问操作系统的请求都是通过系统调用完成的。

  所以我们硬件的使用也不例外,硬件想要被使用就需要通过系统调用接口被操作系统进行操作。硬件的系统调用接口也就是我们通常中所知道的驱动程序。

  操作系统如何管理用户信息

  那么我们又是通过怎样的方式被操作系统所管理的呢?举一个简单的例子:假如我们在上大学,大学的校长想要管理学校的学生的成绩信息,难道校长需要亲自找你见一面之后,亲自问问你的成绩怎么样吗?当然不会。校长只需要有一个成绩单,上面汇总了你各科的成绩,平时的学分,绩点等情况,这样就可以大致得出你平时的学习情况。

  操作系统对于用户信息的管理大致就类似于学校校长的管理情况。在操作系统当中系统会将各部分需要进行管理的软硬件的信息汇总成为一张信息表。比如优先级,进程的编号,进程的优先级等等。之后将这些信息通过链表的形式汇总起来,形成一张完整的信息表,之后我们想要知道一个软件或者硬件的使用情况只需要查看这张使用表即可。

  概念二:先描述,再组织。

  我们几乎所有的软件和硬件都是通过上述的形式被操作系统所管理起来的。这种管理的步骤大致可以分为两类:先描述再组织。首先我们可以将一个个体的相关信息描绘成为一个结构体。就比如想要描述一个学生的信息我们就可以定义学生的年龄,身高,成绩等相关信息为一个结构体。之后通过特定的数据结构将实例化的对象组织起来,形成一张表,就可以放到我们的操作系统当中进行管理了。大致情况如下:

    进程的概念

    进程实质上就是一个个被打开的软件。就是我们现实中见到的软件的“后台”。当我们打开一个软件我们就需要生成一个进程对我们的软件进行管理,管理人还是我们的操作系统。管理的方式还是通过先描述再组织最终形成一个结构体,我们将这个结构体再链接进入指定的序列当中就可以对该进行进行管理了。

  在Linux当中我们将上述生成的结构体成为pcb。pcb结构体当中包含进程的所有属性。

  我们平时编写的代码想要在变成一个进程我们只需要运行即可。但是我们平时编写的程序太短,一旦运行结束那么进程也就相对应的结束了。我们可以编写一个死循环代码便于我们进行观察:

  左边是我们还处于死循环当中的程序,右边是我们使用特定的指令查找到的进程编号,(具体的指令会在下一篇博客当中详细讲解)

  之后通过进程编号进行观察文件夹当中的内容:

  详细展示如下:

  可能这一大部分大家都看不懂,当然我们也不需要看懂,我们只需要了解一个知识点即可。

  操作系统在管理进程信息的时候不仅仅是管理进程的代码或者是进程号等信息。会在形成一个特定的结构体之后将这个结构体和我们的代码同时存储到相应的序列当中。当然存储的代码也并不是我们平时编写的代码,它仅仅是一串地址。操作系统可以通过这串地址找到我们所编写的代码。

测试结果如下:

  其中cwd表示的是当前代码所存储的路径的地址。我们在编写代码的时候如果需要在当前目录下面创建指定的文件就是通过这个目录所进行创建的。

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

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

相关文章

Java基础--泛型详解

一、背景 java推出泛型之前,集合元素类型可以是object类型,能够存储任意的数据类型对象,但是在使用过程中,如果不知道集合里面的各个元素的类型,在进行类型转换的时候就很容易引发ClassCastException异常。 二、概念 …

POJ 2104 K-th Number 平方分割(分桶法)

一、题目大意 长度为n&#xff08;n<100000&#xff09;的数组&#xff0c;进行m次查询&#xff08;m<5000&#xff09;&#xff0c;每次查询时&#xff0c;输入为 i j k&#xff0c;返回为数组 [i,j] 的分片里第k大数字&#xff08;1<i<j<n,k<j-i1) 二、解…

基于Java的校园自助洗衣系统设计与实现(源码+lw+ppt+部署文档+视频讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

python机器学习之梯度下降法

系列文章目录 第一章 Python 机器学习入门之线性回归 第一章 Python 机器学习入门之梯度下降法 梯度下降法 系列文章目录前言一、梯度下降法1.梯度下降法简介2.基本原理 梯度下降函数效果展示 前言 上一篇文章里面说到了用梯度下降法来对最小化代价函数和模型参数进行求解&am…

计算机网络八股

1、请你说说TCP和UDP的区别 TCP提供面向连接的可靠传输&#xff0c;UDP提供面向无连接的不可靠传输。UDP在很多实时性要求高的场景有很好的表现&#xff0c;而TCP在要求数据准确、对速度没有硬件要求的场景有很好的表现。TCP和UDP都是传输层协议&#xff0c;都是为应用层程序服…

八、【快速选择工具组】

文章目录 对象选择工具快速选择工具魔棒工具 对象选择工具 当我们选择对象选择工具时&#xff0c;需要先注意上边有一个循环的圆&#xff0c;它会进行内容识别&#xff0c;当识别完成会停止旋转。这个时候我们按住n键&#xff0c;或者将鼠标放上对应的图形时会出现选中的颜色。…

多实例学习MIL(easy / hard)

多示例学习&#xff08;Multiple Instance Learning&#xff09; - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/377220948 多示例学习 和弱监督&#xff08;weakly supervised&#xff09;有一定的关系&#xff0c;弱监督weakly supervised有三个含义&#xff08;或者说三…

ethercat EOE arp

1 网口设置 电脑地址位169.254.254.3 2 从站地址 3 PING 正常 异常 4 抓包

【方法】如何取消ZIP压缩包的密码?

我们知道&#xff0c;在压缩ZIP文件的时候&#xff0c;可以设置“打开密码”来保护压缩包&#xff0c;那后续不需要保护了&#xff0c;不想每次打开压缩包都输一次密码&#xff0c;要如何取消密码呢&#xff1f; 比较常用的方法是先把ZIP压缩包解压后&#xff0c;再压缩成没有…

铝合金分类及相关总结

1 铝合金常识 铝合金是工业中应用最广泛的一类有色金属结构材料&#xff0c;在航空、航天、汽车、机械制造、船舶及化学工业中已大量应用。对于常用的铝合金&#xff0c;我们通常根据其铝及其他元素的含量&#xff0c;将其分为两大类&#xff0c;分别是纯铝和铝合金。对这两大类…

网络安全行业真的内卷了吗?网络安全就业就业必看

前言 有一个特别流行的词语叫做“内卷”&#xff1a; 城市内卷太严重了&#xff0c;年轻人不好找工作&#xff1b;教育内卷&#xff1b;考研内卷&#xff1b;当然还有计算机行业内卷…… 这里的内卷当然不是这个词原本的意思&#xff0c;而是“过剩”“饱和”的替代词。 按照…

JMeter接口自动化测试(数据驱动)

之前我们的用例数据都是配置在HTTP请求中&#xff0c;每次需要增加&#xff0c;修改用例都需要打开JMeter重新编辑&#xff0c;当用例越来越多的时候&#xff0c;用例维护起来就越来越麻烦&#xff0c;有没有好的方法来解决这种情况呢&#xff1f;我们可以将用例的数据存放在cs…

Effective Modern C++ 第七章 并发API 2

目录 条款37&#xff1a;使std::thread型别对象在所有路径皆不可联结 要点速记&#xff1a; 条款38&#xff1a;对变化多端的线程句柄析构函数行为保持关注 要点速记&#xff1a; 参考&#xff1a;EffectiveModernCppChinese/src/7.TheConcurrencyAPI/item37.md at master …

【java爬虫】使用vue+element-plus编写一个简单的管理页面

前言 前面我们已经将某宝联盟的数据获取下来了&#xff0c;并且编写了一个接口将数据返回&#xff0c;现在我们需要使用vueelement-plus编写一个简单的管理页面进行数据展示&#xff0c;由于第一次使用vue编写前端项目&#xff0c;所以只是编写了一个非常简单的页面。 项目结…

3263页学习资料,一本在手,python不愁!

Python3.11已经发布&#xff0c;新的版本速度提升2倍&#xff0c;以弥补与其他编程语言在速度上的缺陷。可以预见Python语言在未来的应用范围会越来越广。 python学习方向建议&#xff1a; 如果你是本科及以下学历&#xff0c;建议你学习以下两个方向 爬虫。简单的爬虫库&am…

异步电机直接转矩控制学习(两电平12扇区)

导读&#xff1a;传统的直接转矩控制方法6扇区电压矢量选择会导致磁链控制不对称、转矩脉动大等问题&#xff0c;本期介绍一种把扇区细分为12扇区的新型三相异步电机直接转矩控制方法&#xff0c;仿真结果证明磁链轨迹、转速及转矩脉动明显变小&#xff0c;异步电机三相定子电流…

Mac上protobuf环境构建-java

参考文献 getting-started 官网pb java介绍 maven protobuf插件 简单入门1 简单入门2 1. protoc编译器下载安装 https://github.com/protocolbuffers/protobuf/releases?page10 放入.zshrc中配置环境变量  ~/IdeaProjects/test2/ protoc --version libprotoc 3.12.1  …

Reset信号如何同步?

首先来复习一个更加基础的概念&#xff1a;同步reset和异步reset。 同步reset&#xff08;synchronous reset&#xff09;是说&#xff0c;当reset信号为active的时候&#xff0c;寄存器在下一个时钟沿到来后被复位&#xff0c;时钟沿到来之前寄存器还是保持其之前的值。 异步…

【计算机组成 课程笔记】7.1 存储层次结构概况

课程链接&#xff1a; 计算机组成_北京大学_中国大学MOOC(慕课) 7 - 1 - 701-存储层次结构概况&#xff08;15-14--&#xff09;_哔哩哔哩_bilibili 这是我们已经非常熟悉的冯诺依曼计算机结构&#xff0c; 其中和存储功能相关的部件有&#xff1a;存储器和外部记录介质肯定具有…

WEB各类常用测试工具

一、单元测试/测试运行器 1、Jest 知名的 Java 单元测试工具&#xff0c;由 Facebook 开源&#xff0c;开箱即用。它在最基础层面被设计用于快速、简单地编写地道的 Java 测试&#xff0c;能自动模拟 require() 返回的 CommonJS 模块&#xff0c;并提供了包括内置的测试环境 …