韩国ps教程网站,数商云公司,用什么做网站最好,合肥专业网站优化哪家好目录
一.冯诺依曼体系结构
1.概念 2.硬件层面的数据流 3.总结加补充
二.操作系统 (Operating System)
1.概念
2.设计OS的目的
3.定位 4.操作系统的管理
5.计算机体系的层状结构 在我们认识进程之前#xff0c;我们先了解什么是冯诺依曼体系结构
一.冯诺依曼体系结构…目录
一.冯诺依曼体系结构
1.概念 2.硬件层面的数据流 3.总结加补充
二.操作系统 (Operating System)
1.概念
2.设计OS的目的
3.定位 4.操作系统的管理
5.计算机体系的层状结构 在我们认识进程之前我们先了解什么是冯诺依曼体系结构
一.冯诺依曼体系结构
1.概念
冯 • 诺伊曼结构是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。
冯·诺伊曼理论的要点是计算机的数制采用二进制逻辑计算机应该按照程序顺序执行。人们把冯·诺伊曼的这个理论称为冯·诺伊曼体系结构。 这是数学家冯·诺伊曼于 1946 年提出存储程序原理把程序本身当作数据来对待程序和该程序处理的数据用同样的方式储存。 我们常见的计算机如笔记本我们不常见的计算机如服务器大部分都遵守冯诺依曼体系。
我们用的电脑基本都是一个个硬件组成起来的 输入设备: 键盘、鼠标、扫描仪、写板、磁盘等。 输出设备:显示器打印机等。 由运算器和控制器组成的CPU:运算器完成加、减、乘、除等算术运算以及与、或、非、异或等逻辑运算以及移位、补位等运算。 控制器从内存中取指令、翻译指令、分析指令然后根据指令的内存向有关部件发送控制命令控制相关部件执行指令所包含的操作。 存储器:存储程序和各种数据但都要以二进制文件形式存储 冯诺依曼体系结构的计算机该如何工作呢 输入设备输入数据时先将数据放到存储器里储存因为存储器自己是没有计算能力的所以CPU读取存储器里的数据进行运算和逻辑操作并通过一些方式写回到存储器中最后输出设备从存储器中读取数据 为什么不直接将数据放入CPU运算输出而是先放入存储器中通过CPU的运算再输出呢
从效率层面上说
CPU寄存器 L1~L3Cache 内存 外设磁盘 光盘磁带
CPU读取速度最快效率更高而输入设备和输出设备又非常的慢如果没有存储器(也就是内存),那么整体的效率是非常慢的。 所以我们要先把数据放到存储器中再让 CPU 一级一级的去访问而且 CPU 在运算的同时输入/输出设备还可以继续将数据写入内存或从内存中读出这样就可以将 IO 的时间和运算的时间重合从而提升效率。 2.硬件层面的数据流
通过了解冯诺依曼体系结构通过对在QQ上发送信息就行描述数据的流动过程 在 QQ 上发送消息数据的流动过程 电脑联网后我用键盘敲下要发送的消息“在吗”此时输入设备是键盘键盘将该消息写入到内存中CPU 间接从内存中读取到消息。对其进行运算处理后再写回内存此时输出设备网卡从内存中读取消息并经过网络发送到对方的网卡同时输出设备显示器从内存中读取消息并刷新出来显示在我的电脑上。 我朋友的电脑的输入设备是网卡接收到消息后网卡将该消息写入到内存中CPU 间接从内存中读取到消息对其进行运算处理后再写回内存此时输出设备显示器从内存中读取消息并刷新出来显示在我朋友的电脑上。 所以硬件层面的数据流: 键盘(输入设备)→内存→CPU→内存→网卡→网卡经过网络到对方网卡→内存→CPU→内存→显示器(输出设备) 3.总结加补充 关于冯诺依曼必须强调几点 这里的存储器指的是内存。不考虑缓存情况这里的CPU能且只能对内存进行读写不能访问外设(输入或输出设备)外设(输入或输出设备)要输入或者输出数据也只能写入内存或者从内存中读取。 一句话所有设备都只能直接和内存打交道。 二.操作系统 (Operating System)
1.概念 任何计算机系统都包含一个基本的程序集合称为操作系统 (OS) 。 笼统的理解操作系统包括 内核进程管理内存管理文件管理驱动管理。其他程序例如函数库shell程序等等。 2.设计OS的目的 与硬件交互管理所有的软硬件资源 为用户程序应用程序提供一个良好的执行环境 3.定位 在整个计算机软硬件架构中操作系统的定位是 一款纯正的“搞管理”的软件 4.操作系统的管理
操作系统是纯正的搞管理的软件那该如何管理呢
其实是六个大字:先描述后组织
在整个计算机软硬件架构中操作系统的定位是一款纯正的“搞管理”的软件 我们在学校里面很少见到校长说明管理者和被管理者可以不见面和直接打交道就像公司里的员工和董事长平时并不见面和直接打交道。
既不见面又不直接打交道那么校长如何对学生进行管理呢校方又是如何知道你是该学校的学生呢 因为你的个人信息在学校的系统中所以你是该学校的学生。 举个例子 比如 23 级计科专业有 50 名学生我们想要给其中特定的一名学生发奖学金那是否需要校长跑到该专业学生的宿舍里面挨个询问同学们的各科成绩和学分绩点是多少呢显然不是的当他想要做发奖学金这个决策时他只需要通过学校的教务系统拉取 23 级计科专业 50 名学生的名单按照学分绩点来进行排名在排名后再根据其它的一些要求综合一批数据来做出一个决策给张三同学发奖学金。当校长做完决策后通知计科专业的辅导员过来让他开个表彰大会奖励下张三同学。辅导员说“好的校长。”此时辅导员就开始做执行。 以上就完成了一个管理过程。
既然是管理数据就一定先要把学生的个人信息抽取出来而抽取要管理的数据的这个过程就可以称之为描述学生。 C 语言用什么来描述学生呢 C 语言用 struct 结构体来描述学生。如果要管理 1w 个学生那就有 1w 个结构体变量每个结构体变量里面保存着每一个学生的所有信息。 // 描述学生
struct student
{char name[10]; //名字char sex; //性别int age; //年龄double score; //分数char addr[100]; //家庭住址// ...
}; 如果我们想找出成绩最好的同学只需要将其每个同学的成绩拿出来进行比较即可。但如果每个结构体变量之间没有任何关联的话是不方便进行管理的也很难快速找到成绩最好的同学。
这个时候就需要将这些结构体变量组织起来比如在 struct 中包含一些指针信息将所有的结构体变量链接起来此时就形成了一个双链表。 校长要管理学生只要有双链表的头指针就行。如果校长想要开除某位学生只需要遍历双链表再将该学生所属的节点从双链表中删除即可如果有新生报到只需要将该学生所属节点插入到双链表中即可。所以校长并不是单独对一个人进行管理的而是将学生的个人信息组织起来对数据结构进行管理。 经过上面的过程最终我们就将对学生的管理工作转化成对双链表的增删查改操作。
结论
所有管理的工作本质上就是对数据的管理。 管理的本质先描述再组织。 我们在实际生活中的管理变成了对某种数据结构下的结构体变量的管理这是操作系统管理的本质。 描述起来用 struct 结构体。组织起来用链表或其他高效的数据结构不同的数据结构决定了不同的增删查改的特征和效率也决定了不同的组织方式。 在计算机中校长通常指的是操作系统辅导员可以称为驱动学生可以称为软硬件。 操作系统不会直接和硬件比如磁盘网卡鼠标打交道而是通过驱动程序和硬件打交道那操作系统怎么去管理硬件呢 先描述再组织。所以操作系统要描述各种各样的硬件然后形成特定的数据结构对硬件的管理最后变成了对数据结构的管理。 举例操作系统要管理磁盘那得要有一个描述硬盘的 struct 结构体而描述一个事物通常用的是事物的属性比如磁盘的大小、磁盘的型号等等操作系统卸载一个硬件并不是要把这个硬件从电脑中拆卸走而是把这个硬件对应的描述信息给删除掉。 所以操作系统为了管理好被管理对象在系统内部维护了大量的数据结构。 5.计算机体系的层状结构 硬件部分 遵循冯诺依曼体系结构 驱动程序 操作系统中默认会有一部分驱动。如果有新外设就需要单独安装驱动程序该驱动程序会通过某种方式将该硬件的信息上报给操作系统告诉操作系统多了这个硬件。驱动程序更多是一种执行者的角色 操作系统 操作系统最重要的四个功能进程管理、内存管理、文件管理、驱动管理。 系统调用接口 操作系统是不相信任何用户的操作系统为了保证自己的数据安全也为了保证给用户能够提供服务操作系统以接口的方式给用户提供调用的入口。来获取系统内部的数据。但即使这样系统调用接口用起来也不是特别方便。所以一般我们会在系统调用接口上再封装一层比如shell 外壳系统库部分指令这些的底层一般都是封装的系统调用接口不断的封装也是为了让用户用起来更简单。比如安装 C/C 环境时系统会默认带上 C/C 标准库这些库提供给用户的接口是一样的但是底层可能不一样在 Windows 中调用的就是 Windows 的系统接口在 Linux 中调用的就是 Linux 的系统接口。 用户调用接口 底层大都是封装的系统调用接口。 6.库函数和系统调用的概念 在开发角度操作系统对外会表现为一个整体但是会暴露自己的部分接口供上层开发使用这部分由操作系统提供的接口叫做系统调用。 系统调用在使用上功能比较基础对用户的要求相对也比较高所以有心的开发者可以对部分系统调用进行适度封装从而形成库有了库就很有利于更上层用户或者开发者进行二次开发。库函数语言或者第三方库给我们提供的接口。实际上我们使用的函数底层一般就两种情况要么调用了系统接口比如 printf要么没有调用系统接口比如自己写的 add 函数自己写的循环等。系统调用操作系统提供的接口。