【lesson8】操作系统的理解和类比

2023-09-21 21:42:43

操作系统是什么?

操作系统是一款软件,是为了进行软硬件资源管理的软件。

为什么要有操作系统?

操作系统是为了给用户提供一个良好,安全,简单的运行环境这就是操作系统的目的。

怎么做?

上面的两个话题我们在Linux发展史这篇博客中就浅谈过下面我们具体讲解怎么办。

学校的例子(理解管理)

我们都假设学校有三种角色,校长、辅导员、学生。那么这三种角色谁是管理者,谁是被管理者呢?毫无疑问,学生是被管理者,校长是管理者。
在这里插入图片描述
我们从这个例子可以学到,管理者和被管理者可以不直接沟通。在日常生活中我们很少见到校长,可能除了开学的一次开学典礼后面几乎不会再见到。
那么校长是如何做到管理的呢?
校长只要了解每个学生的核心信息就可以做到管理了比如:某个学生的各科成绩怎么样啊,社区文明分低不低啊,有没有经常旷课啊,有没有经常晚归或者也不归宿啊等等,可以凭借这些信息对学生进行嘉奖或者开除的决策。这些信息都可以作为管理的依据。
那么这些数据都是谁提供给校长的呢?
当然是辅导员,这里辅导员就是执行者,我们可以类比到操作系统。
校长:操作系统
辅导员:驱动程序
学生:硬件

在这里插入图片描述
所以我们总结一下:管理者拿到被管理者的核心数据,来进行支持管理决策,才是最重要的。
在这里插入图片描述
所以我们总结出的第一个结论是管理是对被管理者的数据进行管理

从上面的介绍中我们可以了解,校长是如何对学生进行管理的,学生如果只有几百个到上千个还好,但是学生有10万人呢那么校长该如何处理这些无序的数据,要对这些数据一个一个管理观看吗?
在这里插入图片描述
假设校长在当校长之前是一个优秀的程序员,他知道要管理学生信息要先对被管理对象进行描述,再根据类型定义对象。然后可以把所有对象在数组中保存起来。
所以
首先我们要定义一个对象,用对象来保存单个学生的信息。
在这里插入图片描述
然后再用数组保存所有对象信息
在这里插入图片描述
这样校长对学生的管理工作,就变成了对数组的增删查改。
比如校长要开除终测排名最后三名的同学,可以编写一个按照成绩排名的算法,然后找出最后三名,再让辅导员去通知他们,并且从数组中删除这三人的信息。

从上面我们得到了六字真言,要对对象进行管理必须:先描述,再组织。
Linux内核是C语言写的,所以所有对象都是用struct结构体创建出来的。
从上面我们不难得到,OS(操作系统)内部一定充满大量的数据结构和算法。
所以我们得到的第二个结论:先描述,再组织。

银行的例子(类比操作系统)

银行管理系统结构图:
在这里插入图片描述
我们把上面的银行管理系统类比成操作系统就是:
在这里插入图片描述
在日常生活中我们去银行办理业务的时候,是直接访问银行的各种软硬件资源的吗?
不是的!
我们去银行的时候,银行一般会为我们提供一个个窗口我们可以去窗口,窗口中会有工作人员为我们提供服务。
在这里插入图片描述
这是为什么呢?因为银行不相信任何人,就算你是好人银行也没有时间和精力去了解你通过窗口的交互,可以将风险降到最低
同理我们可以推导到操作系统。
我们使用操作系统的时候是直接自己操作操作系统的各种软硬件资源的吗?
不是的?
操作系统会为我们提供各种系统调用接口,我们可以通过系统调用接口,访问和调用操作系统的各种软硬件资源。
原因也是因为操作系统不相信任何人。
总结
1.OS操作系统不相信任何人。
2.一个好的产品,一定回给用户提供一个非常舒适的使用体验,比如抖音想看视频只要上下滑就好了。

如果银行进来了一个70几岁的老大爷,而老大爷不懂得怎么与窗口服务人员沟通,这时候就需要银行系统外的服务人员,来为老大爷进行指导。
在这里插入图片描述
相对的操作系统也是如此。
在这里插入图片描述
操作系统的系统调用接口上面就是服务层。

更多推荐

面向对象进阶

文章目录面向对象进阶一.static1.静态变量2.静态方法3.static的注意事项二.继承1.概述2.特点3.子类可以继承父类中的内容4.继承中成员变量的访问特点5.继承中成员方法的访问特点6.继承中构造方法的访问特点7.this和super使用总结三.多态1.认识多态2.多态中调用成员的特点3.多态的优势和弊端四

Bigemap如何添加谷歌历史影像

工具Bigemapgisoffice地图软件BIGEMAPGISOffice-全能版BigemapAPP_卫星地图APP_高清卫星地图APP很多粉丝私信都在问怎么才可以看到谷歌的历史影像,其实这个图源目前是没有对大陆网络ip进行开放,所以如果需要查看,也是需要看你当前的网络是否允许查看,如果可以查看的话,就可以通过bi

AI也需要透明度?是的,需要

文章目录什么是AI透明度为什么需要AI透明度AI透明度的弱点如何做好AI透明度推荐阅读什么是AI透明度AI透明度指的是人工智能(AI)系统的工作原理和决策过程能够被理解、解释和追踪的程度。它包括以下几个方面:可解释性(Explainability)追踪性(Traceability)公平性和偏见检测(Fairnessan

【校招VIP】测试方案之测试需求分析

考点介绍:需求分析就是要弄清楚用户需要的是什么功能,用户会怎样使用系统。这样我们测试的时候才能更加清楚的知道系统该怎么样运行,才能更好的设计测试用例,才能更好的测试。测试方案之测试需求分析-相关题目及解析内容可点击文章末尾链接查看!一、考点试题1.有ABC三个员工,每个员工都有一个任务;任务类型有普通型和困难型;三个员

前端VUE---JS实现数据的模糊搜索

实现背景因为后端实现人员列表返回,每次返回的数据量在100以内,要求前端自己进行模糊搜索页面实现因为是实时更新数据的,就不需要搜索和重置按钮了代码HTML<el-dialogtitle="团队人员详情":visible.sync="centerDialogVisible"width="30%"center:close-

【从0学习Solidity】7. 映射类型 mapping

【从0学习Solidity】7.映射类型mapping博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列

穿越两大空间的调用栈

人是有经历的,软件也如此。简历记录着一个人的经历,而调用栈(callstack)则记录着软件的经历。看一个人的简历可以快速了解一个人。观察调用栈,则可以快速理解软件。因为此,我非常喜欢看软件的调用栈。每当看到一个漂亮的调用栈,我常常如获至宝,端详许久。因为对调试技术的热爱,这些年,我花了很多时间在调试器上。特别是开发了

基于movie lens-100k数据集的协同过滤算法实现

基于movielens-100k数据集的协同过滤算法实现数据集处理基于用户的协同过滤算法的实现基于物品的协同过滤算法的实现数据集处理importpandasaspdu_data=pd.read_csv('D:/PyCharmWorkSpace/ml-100k/ml-100k/u.data')u_genre=pd.rea

使用qt完善对话框功能

1、完善登录框点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两个按钮ok和cancel,点击ok后,会清除密码框中的内容,继续进行登录;如果点击cancel按钮,则关闭界面。如果账号和密码匹配,则弹出信息对话框,给出提

zookeeper + kafka

Zookeeper概述Zookeeper是一个开源的分布式服务管理框架。存储业务服务节点元数据及状态信息,并负责通知再ZooKeeper上注册的服务几点状态给客户端Zookeeper工作机制Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观

Spring 框架的 MethodInterceptor 简介

org.springframework.cglib.proxy.MethodInterceptor是CGLIB库(CodeGenerationLibrary)中的一个接口,用于拦截方法的调用。CGLIB是一个用于生成Java字节码的代码生成库,它通常与SpringAOP一起使用,用于创建动态代理。MethodInter

热文推荐