linux之进程概念:体系结构,操作系统的基本介绍
1.冯诺伊曼体系结构1.基本介绍输入设备键盘鼠标话筒网卡磁盘(也叫外存)...输出设备显示器网卡磁盘打印机...这两部分也叫外设。CPU 运算器控制器。储存器就是内存。内存与磁盘之间读/写数据的操作叫做I/O(input/output)。2.有一些共识(1)程序就是文件未运行前存储在磁盘(2)CPU自能从内存中获取/写入数据(3)CPU是运行我们的代码操作我们的数据的核心因此数据必须加载到内存中才能进行处理。3.内存和缓冲区出现的原因外部设备传输数据的效率为毫秒而CPU传输数据的效率为纳秒因此没有内存过度的话CPU的性能会极大的被外部设备而限制如果使用大量CPU又会造成成本高。因此使用内存(效率在外部设备与CPU之间)来进行媒介来平衡二者在性能上的差距而缓存区就是更平滑的过度的体现。且CPU在内存出现后就无法直接对外部设备的数据访问了(核心是层序结构的实现)只能对内存传输的数据进行处理以及处理完的数据只能传回内存。从整体上看输入设备的数据传给内存内存与CPU之间对数据进行交换与处理然后内存将处理完的数据给输出设备。整个过程数据的流动就像不断的从一个设备拷贝到另一个设备上。2.进一步的理解数据流动一台计算机的本质就是一个体系结构。首先以qq传信息为例一个用户用键盘往内存中的qq传数据内存中的qq将数据传给CPU经CPU处理后的数据传回给内存内存传给网卡网卡通过网络传给其他人的网卡其他人的网卡再将数据传给他的内存中的qq内存中的qq将数据传给CPU经CPU处理后的数据传回给内存最后内存就将数据传给了显示器上。再以qq传文件为例一个用户将磁盘中的文件往内存中的qq传数据内存中的qq将数据传给CPU经CPU处理后的数据传回给内存内存传给网卡网卡通过网络传给其他人的网卡其他人的网卡再将数据传给他的内存中的qq内存中的qq将数据传给CPU经CPU处理后的数据传回给内存最后内存就将数据传给了他的磁盘上。总的而言可以发现数据的传输必然离不开体系结构且数据转运的过程都是不断的拷贝。3.操作系统概念对所有基础程序的集合就是操作系统。同时操作系统就是一款用于软硬件管理的软件。操作系统包括(1)内核(各种管理)(2)其他程序(如函数库shell程序)(也可以说是内核的外壳)例:安卓的底层是linux的意思是安卓的内核是linux但操作系统的外壳是安卓自身开发。4.设计操作系统(OS)的目的1.OS所在体系对图的基本解释最底层是各种硬件(硬件之间的关系由体系结构管理)每一种硬件的启动都要有对应的驱动程序。2.驱动程序的上一层才是OS,因此OS有两个用处。(1)对下是与硬件交互管理所有的软硬件资源。(2) (1)的目的就是为了对上给用户提供良好的程序执行环境。3.该图也叫软硬件体系结构层序结构特点:(1)高内聚:同功能代码放一层。低耦合:层与层之间只通过接口调用联系度低。(2)访问操作系统必须通过系统提供的接口进行调用(就是OS自己提供的函数)。(3)整体的层序结构不允许跨层访问即我们的程序只要访问到了硬件该程序就必然会贯穿整个软硬件体系结构。(也就是我们的开发处于最表层想要调用硬件就必须一层一层的往下走)(4)库函数的底层可能封装了程序调用接口来简化了用户的操作难度。5.理解OS在整个软硬件体系结构层序结构中OS充当着管理员的身份。一件事情的处理过程可以被分为两步:决策执行。1.管理的实现(1)管理中,管理者与被管理者不需要直接接触.(2)管理者与被管理者之间通过数据来进行交流.(3)数据的交流传输是通过中间层实现的.而OS进行管理的方式就是将每一个进程的属性用一个struct管理每一个struct用指针连接起来而管理的操作就是对这个链表进行增删查改。总结任何的管理系统都是先描述再组织。所有面向对象的语言都要先描述再组织的能力例有C中的类就可以实现描述的功能(例上面的struct)STL中的容器实现组织的功能(例上面的链表)。此处也能明白数据结构就是将现实中的各种组织语言数字化个计算机看懂的过程。而OS就是将软硬件的各种数据用类包装并用容器组织最后通过修改容器来向驱动程序传达修改意图从而实现间接管理软硬件的软件。6.理解系统调用OS不相信用户但依旧要向用户提供服务而系统调用就是OS给我们的调用接口。OS是用C写的因此系统调用接口就是C函数说白了就是用户给OS参数OS给用户返回值的过程。因此系统调用可以说就是用户与OS之间的数据交互。库shall,指令就是包装了系统调用接口的代码我们通过这些功能就能减少使用系统调用接口的学习成本。总结就是OS自身的接口不好用因次有人进行的二次加工来让用户间接调用系统调用接口实现操作简化。