一、 冯诺依曼体系结构
我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系
1、概念
冯诺依曼体系结构基本组成部分:
1:输入设备:如鼠标,键盘,磁盘,网卡等
2:输出设备:显示屏,磁盘,网卡音响等
3:主存:注意主存就是我们常说的内存条
4:CPU: 我们常说的处理器,现代处理器为提高效率都会在CPU中内置高速缓存
输入设备简单理解就是给计算机提供数据的设备,如磁盘中的数据可以被读取,鼠标可以提供选择指令等
输出设备简单理解就是接收计算机输出的信息,如我们从网上下载了一个文件,文件最终是下载到磁盘中的(即计算机将网上内容下载解码后输出到了磁盘中)。
注意:
1、这里的内存指的是我们常说的内存条
2、不考虑缓存情况,这里的CPU能且只能对内存进行读写,不访问外设(输入或输出设备)
3、外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取。
总结:所有外设只能和内存打交道,内存是cpu和外设的传输中介。
2、内存的作用
首先咱要知道,计算机不同组成部分性能并不一致。
列如过去几十年中处理器性能都是持续且高速增长的,而硬盘的性能基本没有大的改变(本文先抛开固态硬盘,谈普通机械硬盘)
尽管CPU是计算机的核心,但计算机的性能既取决于CPU,也取决于其子系统的性能。如果不能高效的进行数据传输,仅仅提高CPU的性能是毫无意义的。这就和木桶效应一样
当人们意识到这一问题后便有了内存,
内存的作用:
1、先将要执行的数据都存储在内存中(包括外设的),相当于给要执行的数据排好了队,CPU直接到内存中取数据即可
2、计算机处理完数据后直接输出给内存,内存再将数据输出给输出设备
总结:由于内存速度介于硬盘和CPU之间,且内存相较于CPU其能储存的数据量是很大的,能源源不断的给CPU提供或接收数据。能有效缓解木桶效应,提高计算机整体效率。
但是:既然内存能提高效率我们为啥不用内存直接替代磁盘呢?
答:因为“贵”,内存相较于磁盘要贵得多,以ddr4内存为列8G需要150元,但150元却能买到1TB的磁盘;
3、硬件原理解释软件行为
在我们写好c代码后,编译的可执行文件会存放在文件中(也就是磁盘中)
当我们要执行该程序时,由上文所述可知。程序要执行应该先将程序加载到内存中,等待CPU将其执行。
而程序加载到内存的方式 windows 上是双击,在 linux 上则是 ./ 运行。
二、操作系统的概念及基本作用
首先咱先从下图中基本了解一下操作系统所扮演的角色
1、概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
1、内核(进程管理,内存管理,文件管理,驱动管理)
2、其他程序(例如函数库, shell程序等等)
2、设计操作系统的目的
1、与硬件交互,管理所有的软硬件资源
2、为用户程序(应用程序)提供一个良好的执行环境
就比如国家一样,不能没有自己的管理系统和政策,要搞好外交及内部资源的合理分配,提供一个良好的社会环境。
而计算机是为用户程序提供需要良好的执行环境,所以设计出了操作系统
3、操作系统的主要作用
在整个计算机软硬件架构中,操作系统的定位是: 一款纯正的“搞管理”的软件
管理对象:直接或间接管理计算机中的软硬件
4、什么是管理
这里指的是操作系统的管理
首先得清楚,管理的本质是做决策
先用一个抽象的列子
举个列子刚开学市领导要来学校检查,校长觉得为了展示学校最好的一面决定搞
一个全校的大扫除,随后校长将任务传达给了各班主任,班主任又传给班上的学
生们。紧接着学生开始了大扫除。
在上述例子中班主任并不是管理者而是对校长决策的执行者,学生也是对校长决策的执行。他们都是决策的执行者只是扮演的角色不一样。
而校长作为管理只是将自己的想法落地即可,校长只是做了一个决策。
在这一次活动中校长并没有直接向学生下达命令,学生接收到的是班主任的信息。
那
综上所述得出第一个结论:管理者不需要于被管理者直接接触或沟通
第二个列子:
最近学校组织了一次全校体检,体检结束后班主任拿到了全校学生的体检
报告,经筛选后将异常的报告整理给了校长,校长拿到异常报告后统一安
排这批学进行了复检
在这个案列中校长(管理者)并没有与学习直接接触,但依旧对学生进行了管理
得出第二个结论:管理是对被管理对象的数据做管理
在上述例子中校长,班主任,学生分别对应电脑的那个角色呢
校长对应的是:操作系统
班主任对应的是:硬件驱动
学生对应的是:硬件或软件程序
总结:
1、管理的本质是做决策
2、管理者不需要于被管理者直接接触或沟通
3、管理是对被管理对象的数据做管理
5、管理的目的
让计算机有安全,稳定、高效 的执行环境,提高用户体验感!
6、操作系统如何为我们服务
操作系统除了管理计算机外,他还能为我们提供服务对没错就是服务
例如 printf 是 C 语言通过头文件调用了系统接口,从而在屏幕中打印出
了程序结果
但为啥是调用接口呢?而不是我直接调用底层驱动想输出啥就输出啥,难道是不相信咱?
举个列子
我去银行取钱,银行要我提供卡还要密码才会从“小窗口”把钱递给我,绝对不会打开金库门说先生:进门左转有一个开着的保险贵,你自己清点好3000拿走就好了。注意别多拿哦!
上述列子说明银行虽然给我门提供服务,但他本质是不信任咱或任何人甚至会有安保措施
操作系统也是一样的,他虽然会给我们良好的用户体验及服务,但是他不信任任何人,他只会封装好后提供一些标准接口供大家使用,以保证系统的安全,稳定且高效运行。
而我们对这些接口的访问,就被称为操作系统的系统调用。