【Linux】初见,进程概念
1.冯诺依曼体系结构
我们所见的大部分计算机都是遵循的冯诺依曼体系结构
我们的计算机都是由一个个硬件所组成的
- 输出设备:显示器、音响、摄像头、网卡.......
- 输入设备:鼠标、键盘 、网卡.......
- 中央处理器(CPU):包含运算器、控制其等等等等......
对于冯诺依曼体系结构我们要注意以下几点:
- 存储器:其实就是我们所说的内存。相应的外存就是我们说所的磁盘
- 输入与输出(Input/Output,IO):输入与输出我们要站在内存的角度来看待,外设的数据流出内存叫做输入,内存将数据交给输入设备叫做输出。
- CPU与内存:CPU在数据层面上只能直接访问内存,并不能直接访问硬件设备。所以一切软件的运行都想要先将其加载到内存才行。加载的本质其实是Input,数据从一个设备“拷贝”到另一个设备。拷贝的效率决定了体系结构的效率。
- 软件运行:软件的运行是通过CPU执行我们的代码,访问我们的数据来得以实现的。
- 理解内存:假设没有内存,CPU直接从输入设备中拿去数据,再交由输出设备。我们知道输入设备与输出设备的速度是远远的慢与CPU的。这就导致了不论CPU有多快都没用,CPU始终要等着输入设备的数据过来才能开始处理,这个设备的效率全部取决于了外设。这显然是不合理的。
而内存的出现解决了,CPU与外设之间运算速度不匹配的弊端。内存会提前将输入设备中的数据拿过来,尽可能的减少CPU与外设之间的速度差。
- 理解数据的流动:
2.操作系统(Operator System)
2.1基本概念
任何一个计算机都包含一个最基本的程序:OS(操作系统)
操作系统本质是一款用于管理软硬件的软件
广义的操作系统包含:内核(进程管理、文件管理、内存管理、驱动管理) 其他程序(外壳shell、函数库等等等等) 狭义的操作系统包含:内核
2.2设计OS的目的是什么
对下:与硬件交互,管理软件与硬件的资源(手段) 对上:为应用程序提供一个良好的运行环境(目的)
注意:
1.操作系统是封装起来的任何人都无法访问其内部,只能通过操作系统给用户提供的接口(既系统调用)来执行功能
2.计算机上的任何操作都必须访问操作系统,且只能通过调用系统接口实现。其接口本质就是函数,只不过是系统提供的。
3.软硬件结构都为层状结构
4.我们的程序只要是访问了硬件(比如显示器,磁盘)那它就必定会贯穿整个软硬件体系结构
5.我们常用的库函数:printf,显示器上打印信息。它也访问了硬件设置,这也就意味着这个库函数底层封装了系统调用
2.3理解操作系统的“管理”
在学校的管理体系中,校长是管理层,辅导员是执行层,而学生则是被管理者。校长拥有决策权,而执行校长的决定不可能由校长亲自执行,而是辅导员来。在计算机体系中,校长就相当于是操作系统。辅导员相当于是驱动程序。学生则相当于是底层硬件
“校长”应该如何管理?
校长要管理学生,但是校长不可能将想要管理的学生一个个都喊到办公室来。校长与学生不必见面。更合理的做法是校长通过学生册里面的信息来进行管理,做出的决定交由辅导员来执行。
