标题:[Linux] 操作系统
@水墨不写bug
目录
一、冯 . 诺依曼体系结构
1.冯诺依曼体系结构简介
2.对冯诺依曼体系结构的理解
二、操作系统定位
1.为什么需要操作系统?
2.操作系统是什么?
三、系统调用和库函数
正文开始:
什么是体系结构?体系结构其实就是一套方法,是用来管理某个问题的方法策略。我们常见的计算机,比如我们身边的笔记本电脑;此外还有我们不太常见的计算机,如服务器,大部分都遵循冯诺依曼体系结构。
其中,根据如图的分类举例如下:
我们由常识可知:CPU的速度非常快(纳秒级),输入输出设备(通常是硬盘)速度相对于CPU非常慢(毫秒级),这就导致了速度的代差,最终导致整机的效率表现为输入输出设备的效率。冯诺依曼体系的存储器的存在就是为了缓解这样的问题,存储器一般就是内存。
你一定听说过存储金字塔:
根据存储金字塔,我们发现内存就是在硬盘和CPU之间的 “缓解矛盾”的中间人。内存通过预加载硬盘中的数据来为高速的CPU提供运算需要的数据;同时,内存也暂时接收保存CPU运算产生的数据结果,以便提供给慢速存取的硬盘使用。内存类似于CPU和硬盘之间的一个缓冲区,这样一来,整机的速度就可以提升到接近于内存的速度了。
具体情景:
(1)如果你通过QQ给家人发送消息,数据是如何流动的?
其实每一步都是按照上述图片结构体系运行的:
在发送端:
首先,我们通过输入设备(键盘)输入数据(消息),这些数据被加载到内存中,接下来,QQ信息数据通过CPU的加密,压缩处理后再次被写入内存,最后通过网卡设备发送出去。
在接收端:
首先通过网卡设备接受到数据,随后被加载到内存中,这些数据需要通过CPU的解压缩,解码处理后再次被加载到内存中,然后存储在输出设备(硬盘)中。(因为接受的聊天消息记录不会因为关机而消失,所以可以确定接受的消息是存储在硬盘中的)
(2)如果发送的是文件,数据又是如何流动的?
首先,我们将文件拖入对话框的过程就是把文件从硬盘加载到内存的过程,接下来,文件数据通过CPU的处理后,重新写入内存,然后通过网卡设备发送出去。
接受时,通过网卡设备接受,接下来写入内存中,通过CPU的处理后重写入内存,最终存放在硬盘中。
因为用户不善于直接操作硬件设备。你一定见过单片机吧,你能够直接在物理上操作电位的高低来直接控制单片机吗?这不太现实,然而计算机就是一个比单片机复杂的多的冯诺依曼的体系结构,如果仅仅给你几个硬件设备,你几乎无法直接控制操作这些硬件设备,更别说让它们协调起来一起工作了。
操作系统内部维护有各种各样的数据,但是操作系统不相信任何用户!但是操作系统还是要帮用户的忙,为用户管理资源,提供服务。所以,操作系统为了保证自己的数据安全,也为了保证给用户能够提供服务,操作系统以接口的方式给用户提供调用的入口,以此来获取操作系统内部的数据。
但是你可能会有疑问,既然有系统调用,那么C语言的库函数又是什么?C语言的库与系统调用的接口又是什么关系?
在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
系统调用在使用上,功能比较基础,对用户的要求相对也比较高。所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。(图片来源于网络)
完~
未经作者同意禁止转载