操作系统
- 1. 冯诺依曼体系结构
- 2. 操作系统
1. 冯诺依曼体系结构
- 冯诺依曼体系结构的介绍
冯.诺依曼结构消除了原始计算机体系中,只能依靠硬件控制程序的状况(程序作为控制器的一部分,作为硬件存在),将程序编码存储在存储器中,实现了可编程的计算机功能,实现了硬件设计和程序设计的分离,大大促进了计算机的发展。所以我们现在常用的计算机大多遵循冯诺依曼体系结构。
- 理解冯诺依曼体系结构
(1)现在计算机由五大基本硬件组成:
存储器:就是内存
输入设备:键盘、摄像头、话筒、磁盘、网卡和鼠标等
输出设备:显示器、播放器、磁盘、网卡等
运算器:对我们输入的数据进行运算(算术运算和逻辑运算)
控制器:读取内存中的指令,翻译解析后向有关硬件发送控制命令
注意
a. 外设是输入设备和输出设备,CPU包括运算器和控制器。
b. 有的设备是纯输入,有的设备是纯输出,有的则是既输入又输出,例如磁盘和网卡。
c. U盘和磁盘是外存(用来存放内存暂时用不着的程序和数据)。
d. 不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设;外设要输入或者输出数据,也只能写入内存或者从内存中读取。所有设备都只能直接和内存打交道。
问题1
为什么要有内存?CPU不能直接从外设进行读取,再输出到外设吗?
a. 从存储的结构就可以知道,外设离CPU远,输出设备和输入设备与CPU的速度差距太大,当输入设备还在慢吞吞输入数据时,CPU早将数据处理输出到输出设备,输出设备再慢吞吞输出数据,CPU有太多空闲,严重拖累了计算机的执行速度。
b. 内存的速度不也比CPU慢,为什么还要链接内存?内存的速度确实慢于CPU,但两者间的速度差距远小于外设与CPU的速度差距。也就是说内存容量适中、速度适中,是最优解。
c. 内存具有预加载的功能,会预先将输入设备的数据加载到内存,且当CPU在运算时,内存也会不断地存储数据。这样CPU就会不断地从内存中读取和输出数据,提高了计算机的执行速度。此时的内存就是硬件级别的缓存空间。
下面是计算机的存储金字塔。
问题2
一个程序要运行,必须先加载到内存。为什么?
简单回答
因为冯诺依曼体系结构规定。
详细回答
因为CPU只能从内存中读取数据,不能直接从外设中读取数据。
(2)上面五大设备都是独立个体,各个硬件单元必须用“线”链接起来,这个线就是系统总线和IO总线。CPU与内存之间的是系统总线,内存与外设之间的是IO总线。
(3)场景
请解释,从登录上qq开始和某位朋友聊天开始,数据的流动过程。
如果我想要传一个文件(比如文档)给我的朋友,请画出数据流动的过程。
2. 操作系统
由冯诺依曼体系结构,我们可以知道计算机有很多硬件,这些硬件各有各的功能。这些功能什么时候执行,谁先执行,就需要一个逻辑来管理,所以就有了操作系统。
- 什么是操作系统
操作系统是一组主管并控制计算机操作、运用和运行硬件、软件资源和提供公共服务来组织用户交互的相互关联的系统软件程序。
简单讲,操作系统是一款进行管理(硬件和软件)的软件。
操作系统包括内核(进程管理、内存管理、文件管理、驱动管理)和其他程序(例如函数库,shell程序等等)。
- 为什么要有操作系统
(1)操作系统帮助用户管理好下面的软硬件资源(驱动和底层硬件)。
(2)为了给用户提供良好(稳定、高效、安全)的运行环境。
注意
这里的用户是程序员,而不是普通用户。因为普通用户不是直接使用操作系统,而是使用程序员开发出来的软件。只要保证良好的运行环境,程序员才能为普通用户创建更多的软件。
- 用户可以直接访问操作系统吗
操作系统是软件,有大量数据,但用户不能直接访问操作系统,操作系统不相信任何用户。可是操作系统又要为用户提供各种服务,所以操作系统就得提供接口让用户访问内部数据。这是怎么做到的?
操作系统为了保证自己的数据安全,又为了保证给用户提供服务,操作系统以接口的方式给用户提供调用的入口,来获取操作系统内部的数据。
拓展
操作系统是用C语言写的,接口就是操作系统提供的、用C实现的函数调用,这就是系统调用。
总结
所有访问操作系统的行为,都只能通过系统调用完成。
计算机的层状结构
- 操作系统是如何进行管理底层的软硬件资源?
(1)操作系统不直接访问底层的硬件,而是通过驱动程序进行管理的。
(2)操作系统是管理者,而硬件是被管理者。只要有被管理者的信息,就能对被管理者做管理。就像在大学,校长是管理者,而学生则是被管理者,校长不需要见学生就能对学生进行管理,他是通过学生的学号等各种信息进行管理的。同样,操作系统是对硬件的各种信息管理。
所以管理的本质是通过对数据的管理,而不是对人(硬件)的管理。
(3)操作系统中是有大量的数据,要如何对每份数据都进行管理?比如在大学中,要在整个年级中找出几名学生、新转学几名学生、退学几名学生,我们可以将每个学生描述成一个结构体,这个结构体中有学生的各种信息(如姓名,性别,学号,成绩等),然后用一个链表把每个结构体链接起来。这样,成功地将学生的管理工作转换成对链表的增删查改。
所以我们可以将底层设备构建成结构体(先描述),再用链表和其他数据结构链接起来(再组织)。
(4)操作系统中,管理任何对象最终都可以转化成对某种数据结构的增删查改。
(5)最终答案:先描述,再组织。