第一章 计算机系统漫游(1.5-1.7)

1.5高速缓存

☆原理:较大的储存设备要比较小的储存设备运行的慢,而快速设备的造价远高于同类的低速设备。

☆举例:寄存器文件储存几百字节的信息,而主存可以存放几十亿字节。然而,处理器从寄存器文件中读一个字的时间开销要比主存中读取要快100倍。

☆措施:针对处理器与内存之间的差异,出现了高速缓存器(cache memory)作为暂时的集结区域,存放处理器近期可能需要的信息。访问速度的提高还有一个原因:程序具有访问局部区域里的数据和代码的趋势。

1.6处理设备形成层次结构

在这里插入图片描述
储存器层次结构的主要思想是上一层的储存器作为低一层的高级缓存。

1.7操作系统管理硬件

所有应用程序对硬件的操作尝试都必须通过操作系统。

操作系统功能:
☆防止硬件被失控的应用程序滥用。
☆向应用程序提供简单一致的机制来控制复杂而又通常大不相同的低级硬件设备。

抽象:文件是对I/O设备的抽象表示;虚拟内存是对主存和磁盘I/O设备的抽象表示,进程则是对处理器、主存和I/O设备的抽象表示。

1.7.1进程

进程是对操作系统对一个运行的程序的一种抽象。

☆并发运行:多个进程指令交错执行。无论是在单核还是多核系统中,一个CPU看上去都像是并发地执行多个进程,这是通过处理器在进程间切换来实现的。操作系统实现这种交错执行的机制称为上下文切换。

☆上下文:操作系统保持跟踪进程运行所需的所有状态信息。这种状态就是上下文,包括:程序计数器和寄存器文件的当前值,以及主存的内容等等。在任何一个时刻,单核处理器系统都只能执行一个进程的代码。当操作系统决定把控制权从当前进程转移到某个新进程时,就会进行上下文切换,即保存当前上下文、恢复新进程的上下文,然后将控制器传递到新进程。

☆实例场景:shell进程和hello进程。最开始,只有shell进程在运行,即等待命令行上的输入。当我们让它运行hello程序时,shell通过调用一个专门的函数,即系统调用来执行我们的请求,系统调用会将控制权传递给操作系统。操作系统保存shell进程的上下文,创建一个新的hello进程以及上下文,然后将控制权传给新的hello进程。hello程序终止后,操作系统恢复shell进程的上下文,并将控制权交给它,shell进程继续等待下一个命令行输入。(从一个进程到另一个进程的转换是由操作系统的内核(kernel)管理的。内核是操作系统代码常住主存的部分。当应用程序需要操作系统的某些操作时,比如读写文件,它就执行一条特殊的系统调用指令,将控制权传递给内核然后内核执行被请求的操作并返回应用程序。内核是系统管理全部进程所用代码和数据结构的集合)。
在这里插入图片描述

1.7.2线程

进程可以由一个也可以由多个线程执行单元组成,每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。由于网络服务器中对并行处理的需求,线程成为越来越重要的编程模式,因为多线程比多进程更容易共享数据,线程比进程更高效。

1.7.3虚拟内存

它为每个进程提供一个假象,即每个进程都在独占地使用主存,每个进程看到的内存都是一致的,称为虚拟地址空间。Linux进程的虚拟地址空间如图:
在这里插入图片描述
Linux中,地址空间最上面的区域是保留给操作系统中的代码和数据的,这对所有进程来说都是一样。地址空间的底部区域存放用户定义的代码和数据,地址从下往上增大。

每个进程看到的虚拟地址空间由大量准确定义的区域构成,每个区都有专门的功能:
☆程序数据和代码:对所有的进程来说,代码是从同一固定地址开始的,紧接着是C全局变量相对应的数据位置。代码和数据区是直接按照可执行文件的内容初始化的。

☆堆:代码和数据区后紧随运行时堆,代码和数据区在进程一开始运行时就被指定了大小,而当调用malloc和free这样的C标准库函数时,堆可以在运行时动态地扩展和收缩。

☆共享库:大约在地址空间的中间一部分一块用来放C标准库和书序库这样的共享代码和数据的区域。

☆栈:位于用户虚拟地址顶部的是用户栈,编译器用它实现函数的调用。和堆一样,用户栈可以在程序执行过程中动态地扩展和收缩。每调用一个函数时,栈就好增长;从一个函数返回时,栈就会收缩。

☆内核虚拟内存。地址空间顶部的区域为内核保留。不允许应用程序读写这个区域的内容或者直接调用内核代码定义的函数,但是可以通过调用内核来执行这些操作。虚拟内存的运作需要硬件和操作系统软件直接精密复杂的交互,包括对处理器生成的每个地址的硬件翻译。基本思想是把一个进程虚拟内存的内容储存在磁盘上,然后用主存作为磁盘的高速缓存。

1.7.4文件

文件就是字节序列。每个I/O设备,包括磁盘、键盘、显示器,甚至网络,都可以看做文件。系统中的所有输出输入都是通过使用一小组Unix I/O系统函数调用读写文件来实现的。

猜你喜欢

转载自blog.csdn.net/ao__ao/article/details/82799473