深入理解操作系统与计算机体系结构

文章目录

  • 操作系统(Operator System)
  • 为什么要有操作系统
  • 操作系统是如何进行管理的
  • 为什么说操作系统是安全,稳定,高效的
  • 理解系统调用和库函数

操作系统(Operator System)

概念:

  操作系统(Operating System,简称OS)是计算机系统中负责管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统是计算机上的一个系统软件,它是计算机系统中的一个系统软件,它是用户与计算机硬件之间的接口,负责管理计算机的硬件和软件资源,并为它们提供合理的分配和使用。

  以下是计算机体系结构,从操作系统的位置就可以看出来它有多重要。
在这里插入图片描述

  总而言之操作系统有两个功能,一是提供抽象接口,二是管理软硬件资源
  究其根本就是对上层用户提供良好稳定高效的服务,对下做好软硬件资源管理。
  为什么要这么做呢?没有它又会怎么样呢?


为什么要有操作系统

  在早起刚出现计算机的时候,是没有操作系统这个概念的,计算机如果想要运行起来全要靠人为的操作,假试想你今天准备玩一款自己最喜欢玩的游戏,你不仅要思考如何通关游戏,你还要思考我怎么操作我的计算机它才能运作起来,这是十分痛苦的一件事情,所以操作系统就应运而生了,对于我们用户来讲,不再需要考虑底层硬件要如何调动,也不需要考虑怎么才能使计算机最高效的运行,这种问题全部交给操作系统解决,我们上层用户就解放了双手。


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

  我们营造一个场景,你现在是一名管理者,你要如何对你的下级成员进行管理?
  首先你会把你下级成员的信息进行登记,然后你就有了一份人名单,上面详细记录着成员的属性信息(年龄,联系方式,释放达到本月KPI),有了它你就能对你的成员进行管理了,假设今天你发现某名成员的KPI指标不合格,这时你就会通知他的组长去通知他,让他收拾收拾准备下个月卷铺盖走人,这时你就完成了一次管理工作。
  在此场景下你就是操作系统,你手下的小组长就是驱动程序,被开除的那个倒霉蛋就是硬件(当然操作系统最好不要炒硬件的鱿鱼,我开玩笑的啦😆)
  那么在计算机视角他是如何管理硬件的呢?和你管理下级成员一致,它会把硬件的属性信息进行记录,如何再通过高效的数据结构将各个硬件的信息进行组织。
  我们可以把这种行为进行高度提炼总结成六个字
   先描述,再组织 (这个超级重要!!)。
  你再回想自己,曾经是否写过通讯录这种程序。
  首先你会对通讯录成员的重要属性进行提炼,最后通过链表这种数据结构进行组织。这种将实际问题转换成计算机理解的问题的过程就是一种建模过程。

struct personInfo
{
    char name[20];
	int age;
	char sex[4];
    struct personInfo* next;
}
struct contactInfo
{
 struct personInfo* head;
 int total;
}

  如果你学习过任何一门面向对象的编程语言的话,面向对象做的就是先描述再组织这个工作,将对某种实际问题的管理转换成了对特定数据结构的增删查改。


为什么说操作系统是安全,稳定,高效的

  假试想没有操作系统对上层用户的制约,你可以随时对底层进行访问,你可以进行一切原本不能进行的越权访问,正是因为有操作系统的存在让我们有了一个安全,稳定,高效的运行环境。
  正是因为要为我们维护这种安全,稳定,高效的运行环境。所以任何用户都不能越高操作系统直接访问底层,假试想如果有有一个可以随意对操作系统的管理进行干扰,操作系统的意义何在,操作系统表示我本来是要通过A方式进行管理的,但是今天用户突然打扰了我,我不会了呀,我接下来要怎么做呢?你可能是说操作系统你自己随机应变不就好了,sorry操作系统并没有你想的那么智能,这是操作系统就失去了原本的作用。
  所以任何用户都不能越高操作系统直接访问底层,这是原则不能违背。(如果你说嵌入式不就可以直接访问底层吗?我求求你们,不要那么杠精😕)


理解系统调用和库函数

概念:

  在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
  系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

  系统调用是操作系统提供的接口,我们通过系统调用可以做到访问操作系统。
  我们通过前面的学习已经知道任何用户都不能越高操作系统直接访问底层,库函数也一样,所以库函数底层实现一定封装了系统调用接口,像fread底层就封装了read系统调用接口。


本章到此结束,感谢您的阅读!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python自动化登录(测试篇)

起初是想抓取下请求看能不能做模拟登录。无奈发现,目标网站的请求数据是加密过的,而且网站代码也是编译后的代码。要从编译后的代码中提取加密算法。我的第一想法是明知不可为而不为。但是转念一想,何不试试python大法。 1.前期准备 python我…

WIFI加密方式对无线速率的影响

文章目录 无线加密三种选择:WEP、WPA和WPA2测试平台和测试方法非加密和WEP加密测试 结果差别巨大非加密条件下 300M无线路由实测WEP加密条件下 300M无线路由实测 TKIP加密算法:WPA与WPA2成绩低迷WPA加密(TKIP加密算法)条件下 300M…

万兆以太网MAC设计(6)IP协议报文格式详解以及IP层模块设计

文章目录 前言:IPv4报文协议格式二、IP_RX模块设计2.1、模块接口2.2、模块工作过程 三、IP_TX模块设计3.1、模块接口3.2、模块工作过程 四、仿真4.1、发送端4.2、接受端 前言:IPv4报文协议格式 参考:https://sunyunqiang.com/blog/ipv4_prot…

CLIP论文笔记:Learning Transferable Visual Models From Natural Language Supervision

导语 会议:ICML 2021链接:https://proceedings.mlr.press/v139/radford21a/radford21a.pdf 当前的计算机视觉系统通常只能识别预先设定的对象类别,这限制了它们的广泛应用。为了突破这一局限,本文探索了一种新的学习方法&#x…

[ESP32]:TFLite Micro推理CIFAR10模型

[ESP32]:TFLite Micro推理CIFAR10模型 模型训练 数据集处理 from keras.datasets import cifar10 from keras.preprocessing.image import ImageDataGenerator from keras.models import Sequential, load_model, Model from keras.layers import Input, Dense, …

SSH新功能揭秘:远程工作提升指南【AI写作】

首先,这篇文章是基于笔尖AI写作进行文章创作的,喜欢的宝子,也可以去体验下,解放双手,上班直接摸鱼~ 按照惯例,先介绍下这款笔尖AI写作,宝子也可以直接下滑跳过看正文~ 笔尖Ai写作:…

【快速入门 LVGL】-- 5、Gui Guider界面移植到STM32工程

上篇,我们已学习:【快速入门 LVGL】-- 4、显示中文 工程中添加了两个按钮作示范。运行效果如图: 本篇:把Gui Guider设计好的界面,移植到STM32工程。 特别地: 在使用Gui Guider进行界面设计时,应…

浅谈叉车车载电脑的市场现状

叉车的起源 叉车源于美国,兴于日本,虽然中国起步较晚,但是近些年来发展迅速。叉车又称叉式装载车,是对于成件托盘类货物进行装卸、堆垛和短距离运输,实现重物搬运作业的轮式工业车辆。 叉车的分类 叉车分为以上六大类…

Apache RocketMQ ACL 2.0 全新升级

作者:徒钟 引言 RocketMQ 作为一款流行的分布式消息中间件,被广泛应用于各种大型分布式系统和微服务中,承担着异步通信、系统解耦、削峰填谷和消息通知等重要的角色。随着技术的演进和业务规模的扩大,安全相关的挑战日益突出&am…

报错:测试报错postman(测试接口)

报错如下 c.e.exception.GlobalExceptionHandler : 异常信息: Content type multipart/form-data;boundary--------------------------952399813172082093419475;charsetUTF-8 not supported 解决: 异常信息 Content type multipart/form-data;boundary…

git常见命令(成长版)

ps:所谓成长版就是后续可能还会添加命令: 1.删除本地分支: git branch -d 分支名 2.拉取代码后默认master分支,切换到线上其他分支: (1)查看线上所有分支: git branch -a &#…

【网络安全】HTTP协议 — 特点

专栏文章索引:网络安全 有问题可私聊:QQ:3375119339 目录 学习目标​ 一、请求与响应 1.服务器和客户端 二、不保存状态 1.不保存状态的协议 三、资源定位 1.URI(统一资源标识符) 四、请求方法 1.请求方法 五…

代码随想录算法训练营Day10 | 232.用栈实现队列、225. 用队列实现栈

232.用栈实现队列 题目:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除…

Git的操作和使用

一、基本操作 1、创建git本地仓库 (1)创建目录:mkdir gitcode (2)进入目录:cd gitcode/ (3)查询目录内容:ls (4)在当前目录下创建git本地仓库…

数据结构(七)---二叉树

目录 一.树的基本概念 二.树的性质 三.二叉树 1.二叉树的基本概念 2.特殊的二叉树 (1)满二叉树 (2)完全二叉树 (3)二叉排序树 (4)平衡二叉树 3.二叉树的性质 4.完全二叉树…

CC软件防火墙和WEB应用防火墙哪个好

本文将从CC软件防火墙的定义、原理、功能以及应用方面进行全面探讨,旨在加深对CC软件防火墙的理解,并推动网络安全意识的普及。以及WEB应用防火墙二者之间的对比。让用户更了解两个形态产品并作出选择。 第一部分:CC软件防火墙的定义和原理 …

北京小米智能工厂

小米工厂智能化 小米集团昌平区的小米智能工厂二期,成为引领智能化制造的重要一环。这座工厂计划打造成为京津冀地区智能制造示范工厂和全球级的“灯塔工厂”。 工厂位于小米未来产业园区,占地81000平方米,年产能可达千万台智能手机&#xff…

创新指南 | 2024年企业如何十步打造最佳的数字化营销策略组合

营销是一个动态且不断变化的领域。顶级的数字营销策略随着消费者和技术趋势的变化而变化。这就是为什么每个公司都需要一个经过良好规划并具有明确里程碑和目标的营销策略。一旦你有了正确的计划,你实现为业务设定的目标的可能性就会大大增加。这意味着,…

提交链码-编辑前后端,调用链码功能

一 . 链码介绍 1.什么链码? • 链码是一段用 Go、Node.js 或者 Java 实现了规定接口的程序。链码在安全的Docker容器中运行, 与背书节点的进程隔离。通过应用程序提交的交易,链码初始化和管理账本状态。• 链码通常处理网络成员协商达成的业…

全网都在找的python+requests接口自动化测试框架实例详解教程

前言 Python是一种功能强大的编程语言,它可以用于自动化测试,特别是接口自动化测试。许多Python库都可以用于接口自动化测试,其中requests库是其中最受欢迎的库之一。 requests库可以用于发送HTTP请求并获取服务器响应,从而轻松…