【Linux】-- 初识操作系统

news2024/11/30 8:52:15

目录

一、冯诺依曼体系结构

二、操作系统

1.概念

2.为什么要有操作系统

三.操作系统

1.硬件层

2.驱动层

3.操作系统层

4.用户层

(1)用户层 

(2)系统调用接口 

(3)用户操作接口

 四、如何管理

1.管理规则 

2.如何管理 


一、冯诺依曼体系结构

        在了解操作系统之前,要先了解现代计算机系统。 现代计算机系统就不得不提到冯诺依曼体系结构。

         冯诺依曼体系结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。

冯诺依曼体系结构有3个基本原则:

(1)二进制逻辑

(2)程序存储执行

(3)计算机由5个部分组成:运算器、控制器、存储器、输入设备、输出设备

以下是现代计算机系统的存储架构 : 

  • 输入设备:输入设备是给计算机获取外部信息的设备,主要包括键盘和鼠标、网卡
  • 输出设备:输出设备是给用户呈现根据输入设备获取的信息经过一系列的计算后得到显示的设备,主要包括显示器、打印机等
  • 存储器:存储器就是计算机的记忆设备,因此存储器可以保存信息。存储器分为两种,一种是主存,也就是内存,它是 CPU 主要交互对象,还有一种是外存,比如硬盘软盘等。
  • 运算器:运算器最主要的功能是对数据和信息进行加工和运算。它是计算机中执行算数和各种逻辑运算的部件。运算器的基本运算包括加、减、乘、除、移位等操作,这些是由 算术逻辑单元(Arithmetic&logical Unit) 实现的。而运算器主要由算数逻辑单元和寄存器构成。
  • 控制器:指按照指定顺序改变主电路或控制电路的部件,它主要起到了控制命令执行的作用,完成协调和指挥整个计算机系统的操作。控制器是由程序计数器、指令寄存器、解码译码器等构成。

其中,中央处理器CPU包括运算器和控制器。 这里存储器可以理解为内存,外设要输入或者输出数据,只能写入到内存或从内存中读取,输入和输出是站在存储器角度看的。 

冯诺依曼体系结构工作原理:

        当输入设备接收到数据,数据将被存储到存储器,控制器发出取数据和运算的指令,数据被取出方去放入运算器中加以运算,运算结束后,控制器发出存入数据的指令并输出,数据被存储到存储器,再通过输出设备进行输出。(整个过程控制器的指令占领导地位) 。

这个过程类似于人类接收处理输出信息的过程:

        当眼睛看到某些信息,这些信息被存储到记忆装置,大脑从记忆装置取出信息,并加以思考运算,再放回记忆装置,大脑控制记忆装置将信息传输给嘴巴,将信息表达出来。(这个过程大脑的指令占领导地位)。

        对于使用qq聊天时的数据流动,站在纯硬件角度:

        qq软件在内存中,通过键盘输入消息到qq,就是输入消息到存储器,cpu要对消息进行加密计算,这就需要添加拷贝网络相关内容,CPU从存储器(内存)当中读取数据,再做计算,处理完后再写回到存储器,再经过网卡发送到网络,网络经过转发就到对方网卡了。


        到达对方网卡之后,数据进入输入设备,把数据从输入设备读入到内存,这样qq程序就把网卡内容读到了qq里面,进行解密,然后把包头信息去掉,再写入到内存,最后刷新到对方的显示器上。

 外设和CPU在数据层面上,都直接和内存打交道。

二、操作系统

1.概念

操作系统是专门针对软硬件资源进行管理工作的软件。操作系统没启动之前在磁盘或外设,只有把操作系统加载到内存,操作系统才有意义。

2.为什么要有操作系统

操作系统存在的意义在于,对下管理好软硬件资源。 对上给用户提供稳定的、高效的、安全的运行环境。

三.操作系统

1.硬件层

 冯诺依曼体系结构的组成部分都是计算机硬件,这些硬件都遵守冯诺依曼体系结构:

2.驱动层

程序员不可能直接跟这些硬件打交道,所以计算机的科学家们在这些硬件基础之上,安装了一层软件,能够根据用户输入的指令控制硬件,决定内存何时从输入设备读取多少数据,何时按照哪种刷新方式将缓冲区刷新到输出设备等,这层软件就是操作系统。操作系统为用户程序提供一个更好、更简单、更清晰的计算机模型。也就是说,操作系统相当于是一个中间层,为用户层和硬件提供各自的借口,屏蔽了不同应用和硬件之间的差异,达到统一标准的作用。

操作系统并不会直接和底层硬件打交道。所以在操作系统和底层硬件之间增加了一层驱动层,驱动层能够使操作系统控制底层硬件设备。它为操作系统提供外部设备的操作接口,并且实现设备的驱动程序。 操作系统可以不管操作的设备内部实现,只需要调用驱动的接口即可。

驱动程序是介于操作系统与硬件之间的媒介,实现双向的传达,即将硬件设备本身具有的功能传达给操作系统,同时也将操作系统的标准指令传达给硬件设备,从而实现两者的无缝连接。操作系统就只需关心何时读取数据,而不用关心数据是如何读取的了,也就是完成了操作系统与硬件之间的解耦。

那么驱动是如何成为这个媒介的呢?是通过安装硬件驱动来作为媒介,键盘、鼠标、硬盘、显示器、主板、显卡、声卡、网卡、打印机等硬件设备都有各自的驱动程序,驱动程序是硬件厂商根据操作系统编写的配置文件。

操作系统相当于计算机体系结构的大脑,驱动程序相当于四肢,来操控各种硬件。

3.操作系统层

操作系统既然用来管理软硬件资源,但是软硬件资源又那么多,怎么进行管理呢?根据资源可将管理分为以下4种:

  • 内存管理:内存空间的分配与回收、地址转换、内存空间的扩充、内存共享、存储保护
  • 驱动管理:设备驱动程序的分类、更新、删除等
  • 文件管理:文件存储空间的管理、目录管理、文件操作管理以及文件保护
  • 进程管理:进程的调度

4.用户层

(1)用户层 

操作系统为用户服务,那么操作系统之上就是用户层,用户层在Windows系统上就是图形化界面,在Linux上就是命令行:

(2)系统调用接口 

 但是操作系统会直接和用户层打交道吗?不会,因为操作系统不信任用户,为了保护自己,要在操作系统和用户层之间增加了一个系统调用接口,用来进行用户和内核空间的通信。系统调用接口是站在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,就叫做系统调用接口。:

(3)用户操作接口

系统调用并不和程序员直接交互。系统调用接口比较复杂,让程序员每次都使用系统调用接口去管理硬件的前提是对系统要有一定程度的了解。于是,就有厉害的人对系统调用接口进行封装,形成了库,比如GUN C&C++第三方库,以语言方式呈现,这就有了用户操作接口,有利于更上层用户或者开发者进行二次开发:

 了解了各个层级的关系之后,就不难理解计算机体系图:

 四、如何管理

1.管理规则 

 既然操作系统是搞管理的软件,那么如何管理软硬件资源呢? 

  • 管理者和被管理者并不直接打交道
  • 管理策略是根据资源的属性和数据做出各种决策
  • 管理者和被管理者并不直接打交道,那么数据又是怎样被管理者知道的呢?是通过决策的执行者知道的。

比如对于动物园的管理,园长作为管理者,动物管理员作为执行者,动物作为被管理者。园长并不和动物直接打交道,策略是根据动物的种类、状态制定的,园长获取动物的数据信息是通过策略的执行者即动物管理员知道的。

 

 所以管理时,需要考虑做不做、如何做,然后再去做。园长作为管理者进行决策,但是园长并不去执行,而是由动物管理员这个执行者去执行的,所以执行者的任务就是执行管理者的决策。

2.如何管理 

一般情况下,园长不待在动物园里,那园长是如何在看不到动物的情况下对动物进行管理的呢?假如需要举办一个动物展览会,园长如何决定让哪些状态最好的5只动物去参展呢?园长没见到这状态最好的5只动物,那么是如何进行管理的呢?---------根据属性和数据管理的

这些动物的属性和数据都会被整理成信息,比如动物外形特征表、动物健康状况表、动物居住信息表,这就是描述信息:

每只动物都有这3张表格,这3张表格就描述了一只动物园长通过对这3张表格的管理就实现了对每只动物的管理。C语言中将这3张表格称为抽象结构体,C++中叫做面向对象。对动物园中所有动物做管理,园长就可以将所有动物的信息组织起来,如何组织呢?这就要用到数据结构,比如顺序表、链表、树、哈希。每种组织方式都有自己的优缺点,可以选择合适的组织方式进行组织。假如以链表的形式组织:

 将所有动物的信息表组织起来以后,对所有动物的管理就变成了对链表的增删查改,对动物的创建、删除、修改都可以对链表进行操作。

数据结构是操作系统的核心,所以,从以上就可以抽象出操作系统是如何进行管理的——先描述,再组织

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

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

相关文章

C. Zero-Sum Prefixes Codeforces Round #833 (Div. 2)(前缀和+贪心)

传送门 题意: 给你一个长度为n的数组,里面包含a1,a2,a3...an n个元素, 当的时候,你可以将变成任意数字, 问你经过任意次操作后对于,它的前i项和为0的个数是最大是多少? 思路: …

27岁自学Python转行靠谱吗?入行晚吗?

前言 今年已经奔三的小编来给大家说说,之前自己也是在一个普通的二本院校上学,学的还是工商管理,毕竟读书的时候电视剧里面的主角都是工商管理的大佬。 不过在毕业之后就经历了社会的毒打,后面小编就想去换一个工作,…

[附源码]计算机毕业设计springboot交通事故档案管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

jsp192ssm驾校报名预约管理系统

目 录 汽车驾校管理系统设计与实现 I 摘 要 I ABSTRACT I 目 录 III 第1章 绪论 3 1.1开发背景 3 1.2开发意义 3 1.3研究内容 3 第2章 主要技术和工具介绍 3 2.1SSM 框架 错误!未定义书签。 2.1.1. Spring 框架 3 2.1.2 SpringS…

clickhouse远程访问Oracle 11g数据库(clickhouse-jdbc-bridge)

1、简介 clickhouse-jdbc-bridge:是clickhouse提供的一个jdbc组件,用于通过JDBC的方式远程访问其他数据库表。 2、安装 (1)下载源文件并打包获取clickhouse-jdbc-bridge-2.0.7-shaded.jar 在官网:https://github.c…

stc15 - ST7920-12864并口通讯和串口通讯的整理(在一个实现中)

文章目录stc15 - ST7920-12864并口通讯和串口通讯的整理(在一个实现中)概述笔记原理图ENDstc15 - ST7920-12864并口通讯和串口通讯的整理(在一个实现中) 概述 为板子写测试程序, 整到12864 LCD这里. STC原厂工程只提供并口通讯. 找了网上同学的串口通讯实现, 整理了一下, 将串…

当成为全球第二大汽车出口国后,中国车企的下一步是什么?

新一轮汽车出口浪潮在疫情期间悄然启动,中国汽车工业协会发布数据显示,自2021年起,汽车出口销量呈现高速增长的势头,2022年前三季度汽车出口量超过2021年全年出口量,并超越德国,成为仅次于日本的全球第二大…

熊市链游模型如何设计开发?

GameFi的全局趋势 自第一款视频游戏诞生以来,游戏世界已经发生了翻天覆地的变化。技术和玩游戏的目的是不断围绕游戏本身发展着的两件主要事情。曾经的街机游戏、主机游戏、电脑游戏,再到如今智能手机时代,手机游戏已经无处不在。随着时间的…

Navicat 被广泛的应用于各行各业的原因

近期,Navicat 发起了一场用户线上投票活动,受到了众多用户的关注和热情响应!今天,我们就带大家了解此次投票数据通过用户的职业、使用频率、连接的数据库种类以及最常用的功能,通过用户视角了解 Navicat 产品的适用范畴…

Https加密超文本传输协议的运用

内容预知 1.https的相关知识 1.1 https的简介 1.2 HTTP 与 HTTPS 的区别 1 .3 SSL的相关了解 1.3 SSL/TLS协议和证书的关系 1.4 https的工作流程 1.5 客户端是如何验证证书是否有效 1.6 web网站并未全部采用https的原因 2. SSL证书获取的方法 2.1 阿里云证书的获取 2…

linux不显示当前路径的解决方法

1.输入vim ~/.bashrc进入用户的shell环境变量的配置文件(可以设置环境变量以及通过alias设置别名) 2.按下“i”键进入编辑模式(底部显示INSERT) 3.修改\w为$PWD: 修改为: 4.按“esc”键后输入":wq"保存并退出&#xff…

IPSec NAT穿越原理

在IPSec VPN部署中,如果发起者位于私网内部(如下图FW_C),而它希望与FW_A之间直接建立一条IPSec隧道,这种情况下NAT会对部署IPSec VPN网络造成障碍。 PC2发业务报文给PC1,IPSec先对IP包头或端口信息进行验证…

10 个用图表解释JavaScript 闭包的面试题

闭包是函数式编程中的核心概念之一,是每个 JavaScript 开发人员必备的知识。在这里,我准备了 10 个关于闭包的面试挑战题,这些基本都是面试中经常被问到的。 你准备好了吗?我们现在要开始了。 每个题目都有一个代码片段&#xf…

代码随想录算法训练营第五十天| LeetCode123. 买卖股票的最佳时机 III、LeetCode188. 买卖股票的最佳时机 IV

一、LeetCode123. 买卖股票的最佳时机 III 1:题目描述(123. 买卖股票的最佳时机 III) 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意…

小学生学Arduino---------点阵(一)静态图片显示

今天来看一下,点阵模块这一模块可以做出非常有意思的东西。 学习目标: 1、了解点阵原理 2、掌握图形绘制(心形、三角形等) 3、掌握图形显示器的功能 4、掌握led点阵屏幕的功能 5、搭建电路 6、编写程序 一、点阵的原理 LED点阵屏…

Functional Programming in Java venkat(16) Being Lazy part3

文章目录Functional Programming in Java venkat(16): Being LazyLeveraging the Laziness of StreamsIntermediate and Terminal OperationsMethod Evaluation OrderPeeking into the LazinessFunctional Programming in Java venkat(16): Being Lazy 这里是记录学习这本书 F…

linux权限详解

文章目录1.用户转换1.将普通用户转换成root1.su -2. su2.将root转换为普通用户2.文件的权限1.文件访问者的分类拥有者和other所属组2.rwx的含义3.修改权限第一种修改方式1.拥有者修改2.所属组的修改3.other的修改4.整体修改第二种修改方式666000777使用权限的修改1.拥有者用户的…

[事务]-事务概念/特性/并发问题/传播特性

1. 事务的概念 事务(Transaction)指的是一个操作序列,该操作序列中的多个操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑工作单位,由DBMS中的事务管理子系统负责…

爬虫工作流程、请求与响应原理、requests库讲解

爬虫工作流程、请求与响应原理、requests库讲解 爬虫分类主要分为两大板块 web爬虫(浏览器爬虫) APP爬虫(手机端爬虫) 在这两大板块中又可以把爬虫归类为聚焦爬虫和通用爬虫 聚焦爬虫:针对某一个接口(ur…

对话框被遮罩层挡住

element-ui 解决方法一: 在el-dialog中写去掉遮罩层 :modal"false" 解决方法二: 在el-dialog中写(遮罩层是否插入至 body 元素上,若为 false,则遮罩层会插入至 Dialog 的父元素上) :modal-ap…