兰州建设厅网站,wordpress页面.html,个人网页设计模板网站,品牌的营销系统目录
1. 冯诺依曼体系结构
1.1 结构分析
1.2 存储结构分布图
2. 操作系统
2.1 概念
2.2 如何管理
2.3 什么是系统调用和库函数 1. 冯诺依曼体系结构
1.1 结构分析
不管是何种计算机#xff0c;如个人笔记本电脑#xff0c;服务器#xff0c;都是遵循冯诺依曼结构。…目录
1. 冯诺依曼体系结构
1.1 结构分析
1.2 存储结构分布图
2. 操作系统
2.1 概念
2.2 如何管理
2.3 什么是系统调用和库函数 1. 冯诺依曼体系结构
1.1 结构分析
不管是何种计算机如个人笔记本电脑服务器都是遵循冯诺依曼结构。 计算机中都是又一个个硬件组件组成。
输入单元包括键盘、鼠标、扫描仪中央处理器(CPU)含有运算器和控制器等输出单元显示器、打印机等
不过需要注意的是
这里的存储器指的是内存。外设一般指的是输入设备和输出设备。不考虑缓存情况这里的CPU能且只能对内存进行读写不能访问外设。外设要输入或者输出数据也只能写入内存或者从内存中读取。
也就是说所有设备都只能直接和内存进行写入写出操作。 1.2 存储结构分布图 由最高层到最底层的存储设备容量越大读写速度越慢成本更低。
Register寄存器。L1/L2/L3 Cache一级/二级/三级/高速缓冲存储器。Memory:内存。SSD固态硬盘。HDD机械硬盘。还有一些远程网络服务器上的存储。
冯·诺依曼体系结构无疑是一个划时代的伟大发明。尽管高级存储器如寄存器和缓存拥有极其迅速的数据读写能力但它们的容量有限且成本高昂。若将它们作为电脑的主要存储介质其昂贵的造价无疑超出了普通消费者的承受范围。另一方面固态硬盘和机械硬盘虽然提供了较大的存储空间且价格亲民但其相对较慢的数据读写速度却难以满足高性能计算的需求。
内存作为一种折中的解决方案其容量相较于高级存储器更大而访问速度又远超硬盘。因此内存扮演了至关重要的角色它如同桥梁一般将高速的高级存储器与读写速度较慢的外设连接起来。这样的设计不仅平衡了数据读写速度还将成本控制在了一个大众能够接受的范围内。这一创新使得个人电脑得以普及推动了计算机行业的飞速发展。 2. 操作系统
2.1 概念
操作系统Operating System简称OS是管理计算机硬件与软件资源的系统软件。它与硬件交互执行管理任务。常见的操作系统有Windows、macOS、Linux、Harmony OS和Android。
笼统的讲操作系统包含
内核进程管理内存管理文件管理驱动管理其他程序例如函数库shell程序等等 2.2 如何管理
那操作系统是如何进行管理的呢我们来做一个类比。 在一家公司中当员工数量较少时可以直接对每位员工进行监督和管理。然而随着公司规模的扩大员工数量达到数百甚至上千直接管理每位员工变得不再可行。此时公司通常会采用分层管理的策略。 公司将根据业务需求划分为不同的部门并为每个部门指派一位经理。在部门内部经理会将员工分成若干个工作小组每个小组由一名组长领导。如此一来公司的高层只需管理几位部门经理而每位经理则负责监督几个小组组长。小组组长则负责管理和协调组内成员的具体工作。通过这种层级化的管理结构公司能够确保组织的高效运转和目标的达成。 在下面的操作系统调用示例图中用户发出任何指令操作系统进行辨别再调用硬件运行程序。这就类似我们上面的例子。 若作为公司高层我们想查看新员工实际情况不可能找新员工一个个询问。可以给每个员工做一份档案里面包含姓名、年龄、工号、工种、学历和面试表现等。再让每个经理去采集各自员工的信息从而建立员工档案。但是员工太多我们看不完员工档案内容。 此时假设我们作为程序员我们只关心员工的属性那么可以将员工抽象为一个结构体类型或者类里面包含姓名、年龄、工号等属性。 如下在C语言中使用结构体表示员工数据结构里面包含许多员工属性。每增加一个员工就要创建一个Employee类对象。仅仅这样的话每个对象都是独立的不好管理那么可以在结构体中加上指向下个对象的指针这就构成了一个单链表。
如果公司需要接受某个项目需要有相关技能的员工就可以遍历整个链表找出符合要求的员工再指派其对应的经理安排工作。未来高层对员工的管理变成对一个单链表进行增删查改操作。我们完成了一个对于公司员工管理工作的计算机层面的建模工作。 那么操作系统是如何管理硬件的呢
虽然硬件有许多种如硬盘和网卡但是这些设备的属性都是相同的有设备名设备状态和设备编号等。我们可以创建一个device结构体类型并使用链表数据结构或者其他数据结构组织起来许多device类对象。操作系统接收到用户的指令通过数据结构管理发送给驱动程序驱动硬件运行。这种管理方法是先描述再组织即先将管理对象构建成一个类再使用某个数据结构进行组织。任何计算机对象管理的思路都遵守该原则。 再引申出一个问题为什么现在所有主流的面向对象语言都要提供面向对象和标准库其中包括C的STL库。
因为在面向对象语言中一切被管理的食物皆为对象面向对象就提供描述的能力。标准库就提供数据结构组织该对象。 2.3 什么是系统调用和库函数 在上图中展示的系统中硬件资源的调度是通过驱动程序来实现的。操作系统扮演着中介的角色接收用户的指令并通过调用相应设备的类对象来激活驱动程序。用户无法直接与操作系统交互而是需要通过用户操作接口和系统调用system call来传达其请求。系统调用充当了用户与操作系统之间的桥梁。那么为什么不允许用户直接调用操作系统呢我们做个类比。 银行不仅仅拥有设备、桌椅板凳和仓库等硬件资源更重要的是它还需要工作人员进行管理和维护人员进行定期检修。银行的日常运营包括提供存取款和贷款服务从这个角度来看银行可以被视作一套完整的系统。 假设小明来到银行想要存入几百元现金。如果他直接将现金放入仓库并自行在设备上登记存款信息这显然是银行行长不可接受的。尽管大部分客户都是诚信的但银行不能排除有人可能不遵守规则从而对银行财产造成损失。因此银行会设立对外开放的窗口专门提供存取款服务。 那么我们可以将操作系统类比于银行因为用户可能做些损害操作系统的操作操作系统也不相信用户。
因此在开发角度操作系统对外会表现为一个整体但是会暴露自己的部分接口供上层开发使用这部分有操作系统提供的接口叫做系统调用。系统调用在使用上功能比较基础对用户的要求相对也比较高所以有心的开发者可以对部分系统调用进行适度封装从而形成库。有了库就很有利于更上层用户或者开发者进行二次开发。 创作充满挑战但若我的文章能为你带来一丝启发或帮助那便是我最大的荣幸。如果你喜欢这篇文章请不吝点赞、评论和分享你的支持是我继续创作的最大动力