当前位置: 首页 > news >正文

初步认识操作系统(Operator System)

操作系统

  • 一,冯诺依曼体系结构
    • 内存的重要作用
  • 二,操作系统的概念
  • 三,设计操作系统的目的
  • 三,操作系统在计算机体系中的定位
  • 四,操作系统是如何进行管理的

一,冯诺依曼体系结构

在这里插入图片描述
在众多计算机相关的书籍中,不得不提的就是冯诺依曼体系结构,冯诺依曼体系结构仍运用在当今的计算机中。
计算机硬件的五大成员:

  • 输入设备
  • 输出设备
  • 存储器
  • 控制器
  • 运算器
    一台计算机要想工作,那么这五部分是不可或缺的,计算机处理的数据都是从输入设备输入,流向存储器,CPU从存储器中读取数据,将处理的结果放回存储器,存储器将处理的结果通过输出设备输出。

内存的重要作用

存储器也就是内存,在其中起到了非常重要的作用,它作为沟通CPU与外设之间的桥梁。(外设指的就是输入设备,输出设备,例如:磁盘,显卡,网卡,键盘,显示器等等。)

由于CPU的运算速度非常快,是一般的外设的很多很多倍,如果外设与CPU直接沟通那么可想而知,外设会大大的拉低了CPU的速度,就如同木桶效应一般,一个木桶能装多少水是由最短的木板决定的。
在这里插入图片描述
内存在CPU与外设之间起到了一个缓冲的作用,内存的速度相比外设是非常快的,与CPU相比还是比较慢的,但是至少比外设快很多。在处理数据时,内存会把外设中的部分数据提前加载到内存中,以供CPU处理。
这里不得不说的就是局部性原理: 根据统计学原理,当一个数据正在被访问时,那么下一次有很大的可能会访问其周围的数据。所以当CPU需要获取某一行数据时,内存可以将该行数据周围的数据一同加载进来,而CPU处理数据和内存加载数据是可以同时进行的,这样下次CPU就可以直接在内存中拿数据。

关于冯诺依曼体系需要强调的几点:

  • 这里的存储器指的是内存
  • 不考虑缓存的情况,这里的CPU能且只能对内存进行读写,不能访问外设
  • 外设要输入或输出数据,也只能写入内存或从内存中读取
  • 总之,所有的设备都只能和内存打交道

现在你应该明白为什么我们编写的可执行程序在运行前要先加载到内存,是因为程序的运行是要通过CPU对其处理,而CPU只会和内存打交道。

二,操作系统的概念

任何的计算机系统都包括一个基本的程序集合,成为操作系统(OS)。

笼统的理解操作系统包括:

  • 内核(进程管理,内存管理,文件管理,驱动管理)
  • 其他程序(例如函数库,shell程序等等)

三,设计操作系统的目的

  • 与硬件交互,管理所有的软硬件资源
  • 为用户提供一个良好的执行环境

三,操作系统在计算机体系中的定位

操作系统是一款管理软硬件资源的软件

首先,计算机的最底层是一些硬件,它们之间形成冯诺依曼体系结构。
在这里插入图片描述
但是,单单靠他们是完成不了工作的,需要一个软件来管理他们。
例如:我们上述介绍的内存会加载输入设备中的数据,但它是何时加载?又是加载多少的呢?没有东西管理它,他是无法完成工作的,而管理他们的软件就是操作系统(Operator System)。
但是,OS并不是与底层的硬件进行直接交流的,例如,如果操作系统完成键盘的读取操作,那么只要你的键盘读取方式进行了改变,那么操作系统的内核源代码就需要进行重新编译,这对操作系统来说维护的成本太高了。
于是在硬件和操作系统之间增加一层硬件驱动,驱动层的主要工作就是单独去控制底层硬件的。例如:键盘有键盘驱动,显卡有显卡驱动,网卡有网卡驱动,硬盘有硬盘驱动。驱动简单的来说就是去访问某个硬件,访问这个硬件的读,写以及硬件的状态等等,驱动层就是直接和硬件打交道的。而驱动一般是由硬件制造厂商提供的,或是由操作系统相关的模块进行开发的。
此时,操作系统就只需要关心何时去读取数据,而不用关心具体是怎么去读取数据的,这就完成了操作系统与硬件之间的解耦。

在这里插入图片描述
操作系统的主要工作:

  • 进程管理
  • 内存管理
  • 文件管理
  • 驱动管理

在这里插入图片描述
操作系统对下是这样进行管理的,但是对上它又做了些什么呢?
操作系统会直接让用户去操作它去管理硬件嘛?答案肯定是不会的。

操作系统是一个很谨慎的软件,它不会将自己暴露给用户,而是通过系统调用接口的方式对上提供服务,这就和现实生活中银行很像,银行里都会有一大面玻璃墙,还会提供许多服务窗口,银行通过这些窗口对外进行服务。
在这里插入图片描述
银行这样做是因为,它既要对外提供服务,但是也要保护自身的安全,万一哪个去银行办理业务的人是个坏人怎么办。
操作系统也是这样,为了防止别人的破坏,它对外提供服务的方式是暴露在外面一些系统接口
在这里插入图片描述
对与系统接口的使用只有小部分的专业人士才会,所以在系统接口上面还有一层,例如:shell命令行解释器,GUI图形化界面,函数库等,来帮助人们去调用系统接口的程序。

在这里插入图片描述
建立在这样的基础上,用户才可以得心应手的使用计算机,用户是最上面的一层。

在这里插入图片描述
可以看到,计算机的体系实际上一个层状结构。

四,操作系统是如何进行管理的

提到操作系统是如何管理软硬件资源的,先从一个例子入手,校领导是如何管理学生的?

一个大学里面至少有1万名学生,如果校长是去和每个学生直接交流进行管理的,那得管理到猴年马月,这想想就是不现实的。
校长的手里有我们每个人的数据,他是通过我们们数据对我们进行管理的,例如校长有一天找到了计算机学院的导员,告诉他要对学院前几名的学生进行表彰,难道校长会去一个一个看每个人的成绩最后找出来前几名嘛?显然不是,他手里有学生的数据,假如校长是一个懂计算机的校长,他根据学生的共同特征,创建了一个这样的结构体,里面包括姓名,学号,学分,绩点等等,这样每个同学在校长的眼里就是一个个的结构体,有了这么多结构体,怎么去查询成绩前几名的学生呢?答案是将这些结构体组织起来,比如说用链表这个数据结构存储起来,然后通过对链表的遍历找到要表彰的学生。
校长对学生的管理,其实管理的是学生们的数据。学生就好比计算机中的硬件,校长就是操作系统,硬件驱动就是辅导员,校长根本不关心它的命令是如何去实现的,他只关心他的决策是什么,至于如何实施那是辅导员的事情。

操作系统其实就是校长的角色,是一个管理者的角色,他不会直接去和硬件进行交流,而是它的手里掌握的硬件的数据,它通过硬件的数据去管理硬件,至于实施的具体步骤是硬件驱动完成的。
总结为一句话就是:操作系统进行管理是通过先描述再组织进行的,描述就是把每个软硬件描述为一个结构体,再把这些结构体组织起来进行管理的。

相关文章:

初步认识操作系统(Operator System)

操作系统一,冯诺依曼体系结构内存的重要作用二,操作系统的概念三,设计操作系统的目的三,操作系统在计算机体系中的定位四,操作系统是如何进行管理的一,冯诺依曼体系结构 在众多计算机相关的书籍中&#xff…...

Android—HTTPS部署自签名证书

一、生成自签名私有证书单向认证(只需要服务端证书) 生成server_ks.jks服务端密钥配置到服务端生成server.cer服务端证书配置到客户端 双向认证(还需要客户端证书,和信任证书) 生成client_ks.jks客户端密钥配置到客户…...

java基于springboot+vue微信小程序的学生健康管理

任何系统都要遵循系统设计的基本流程,本系统也不例外,同样需要经过市场调研,需求分析,概要设计,详细设计,编码,测试这些步骤,基于Java语言、微信小程序技术设计并实现了学生健康管理小程序。系统主要包括系统首页、个人中心、学生管理、健康档案管理、体检报告管理、健康评估管…...

金三银四丨黑蛋老师带你剖析-漏洞岗

作者丨黑蛋病毒岗之前我们简单看了看二进制逆向岗位和漏洞岗,今天我们来看一看病毒岗位,就单纯看二进制病毒岗位和漏洞岗位,其所需要的基础知识是差不多的,在Windows平台上,无非就是汇编,C语言,…...

pinia实战 购物车(自定义插件实现pinia持久化)

目录 一、实例 二、需求 三. 代码解析 shop.vue shop.ts 四、持久化插件 插件介绍 持久化实现思路 一、实例 二、需求 单选全选功能,并且可以互相联动 小计功能 总计功能 商品加减,数量为零时不能在减 三. 代码解析 shop.vue 1.获取shop模块实…...

idea使用本地代码远程调试线上运行代码---linux环境

场景: 之前介绍过windows环境上,用idea进行远程调试那么在linux环境下实战一下 环境: linux 测试应用:使用docker部署的platform-multiappcenter-base-app-1.0.0-SNAPSHOT.jar 应用 测试应用端口:19001 测试工具&…...

Java 基础面试题——集合

目录1.Java 有哪些常用容器(集合)?2.Collection 和 Collections 有什么区别?3.List、Set、Map 之间的区别是什么?4.HashMap 的长度为什么是 2 的 N 次方?源码中是如何保证的?5.HashMap 和 Hasht…...

编程思想、方法论和架构模式的应用

概要编程思想是指在编写代码时所采用的基本思维方式和方法论。分类编程思想分类:面向对象编程(Object-Oriented Programming,简称OOP):把数据和对数据的操作封装在一起,通过类和对象的概念实现模块化、可重…...

Vue|事件处理

事件处理1. 事件使用1.1 事件绑定1.2 事件参数2. 事件修饰符2.1 阻止默认事件2.2 阻止事件冒泡2.3 事件只允许触发一次2.4 事件捕获2.5 操作当前元素2.6 行为立即执行无需等待回调3. 键盘事件4. 本章小结4.1 事件使用小结4.2 事件修饰符小结4.3 键盘事件小结1. 事件使用 1.1 事…...

css书写方式

目录标题一、css是什么?二、css的书写方式1、行内样式【不推荐使用,太固定】2、页面样式(又叫内联样式)3、外联样式【店家推荐】4、import与link标签的区别一、css是什么? css(cascade style sheet)是用来装饰和装扮页…...

Python网络爬虫 学习笔记(2)BeaufitulSoup库

文章目录BeautifulSoup库的基本介绍HTML标签的获取和相关属性HTML文档的遍历prettify()方法使用BeautifulSoup库对HTML文件进行内容查找信息的标记的相关概念(非重点)find_all()方法(重点)综合实例:爬取软科2022中国大…...

JavaScript------内建对象

一、解构赋值 1、数组的解构 1.1、解构赋值 const arr ["孙悟空", "猪八戒", "沙和尚"];let a, b, c;[a, b, c] arr; // 等同于 [a, b, c] ["孙悟空", "猪八戒", "沙和尚"] 1.2、声明同时解构 let [d, e…...

React + Redux 处理异步请求

redux 处理异步请求 方式一:在 componentDidmount 中直接进⾏请求,在将数据同步到 redux 创建 Store 仓库 import {createStore } from redux;const defaultState = {banners: [] }const reducer =...

揭秘涨薪50%经验:从功能测试到自动化测试,我是如何蜕变的?

本人在今年互联网大环境如此严峻的情况下,作为一个刚毕业不到一年的初级测试,赶在“金三银四”依然拿到了一些面试机会,并且成功拿下4家公司的offer,其中不乏互联网大厂,而且最高总包给到了接近double(无炫…...

【论文速递】MMM2020 - 电子科技大学提出一种新颖的局部变换模块提升小样本分割泛化性能

【论文速递】MMM2020 - 电子科技大学提出一种新颖的局部变换模块提升小样本分割泛化性能 【论文原文】:A New Local Transformation Module for Few-shot Segmentation 【作者信息】:Yuwei Yang, Fanman Meng, Hongliang Li, Qingbo Wu,Xiaolong Xu an…...

补充前端面试题(二)

#$set数据变化视图不更新问题, 当在项目中直接设置数组的某一项的值,或者直接设置对象的某个属性值,这个时候,你会发现页面并没有更新。这是因为 Object.defineProperty()限制,监听不到变化。解决方式:this.$set(你要改…...

JavaScript原型、原型链、原型方法

文章目录原型和原型链prototype、 __ proto __ 、constructor原型链原型方法instanceOfhasOwnPropertyObject.create()、new Object()总结原型和原型链 prototype、 __ proto __ 、constructor 首先我们看下面一段代码 // 构造函数Personfunction Person(name, age) {this.na…...

linux篇【14】:网络https协议

目录 一.HTTPS介绍 1.HTTPS 定义 2.HTTP与HTTPS (1)端口不同,是两套服务 (2)HTTP效率更高,HTTPS更安全 3.加密,解密,密钥 概念 4.为什么要加密? 5.常见的加密方式…...

1.9实验9:配置虚链路

1.4.4实验9:配置虚链路 实验目的(1) 实现OSPF 虚链路的配置 (2) 描述虚链路的作用 实验拓扑配置虚链路实验拓扑如图1-19所示。[1] 图1-19 配置虚链路 实验步骤...

三次握手-升级详解-注意问题

TCP建立连接的过程就是三次握手(Three-way Handshake),在建立连接的过程实际上就是客户端和服务端之间总共发送三个数据包。进行三次握手主要是就是为了确认双方都能接收到数据包和发送数据包,而客户端和服务端都会指定自己的初始…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

MySQL的pymysql操作

本章是MySQL的最后一章&#xff0c;MySQL到此完结&#xff0c;下一站Hadoop&#xff01;&#xff01;&#xff01; 这章很简单&#xff0c;完整代码在最后&#xff0c;详细讲解之前python课程里面也有&#xff0c;感兴趣的可以往前找一下 一、查询操作 我们需要打开pycharm …...

数据结构:递归的种类(Types of Recursion)

目录 尾递归&#xff08;Tail Recursion&#xff09; 什么是 Loop&#xff08;循环&#xff09;&#xff1f; 复杂度分析 头递归&#xff08;Head Recursion&#xff09; 树形递归&#xff08;Tree Recursion&#xff09; 线性递归&#xff08;Linear Recursion&#xff09;…...

Vue 3 + WebSocket 实战:公司通知实时推送功能详解

&#x1f4e2; Vue 3 WebSocket 实战&#xff1a;公司通知实时推送功能详解 &#x1f4cc; 收藏 点赞 关注&#xff0c;项目中要用到推送功能时就不怕找不到了&#xff01; 实时通知是企业系统中常见的功能&#xff0c;比如&#xff1a;管理员发布通知后&#xff0c;所有用户…...

高效的后台管理系统——可进行二次开发

随着互联网技术的迅猛发展&#xff0c;企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心&#xff0c;成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统&#xff0c;它不仅支持跨平台应用&#xff0c;还能提供丰富…...

raid存储技术

1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划&#xff0c;涵盖存储系统的布局、数据存储策略等&#xff0c;它明确数据如何存储、管理与访问&#xff0c;为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...