
操作系统
文章平均质量分 62
鸭梨山大哎
life hard take it easy
展开
-
输入输出系统的发展概况
输入输出系统的发展大致可分为4各阶段.1.早期阶段早期的I/O设备种类较少,I/O设备与主存交换信息都必须通过CPU,如图8.1所示.这种方式沿用了相当长的时间.当时的I/O设备具有以下几个特点.(1)每个I/O设备都必须配有一套独立的逻辑电路与CPU相连,用来实现I/O设备与主机之间的信息交换,因此线路十分散乱、庞杂.(2)输入输出过程是穿插在CPU执行程序过程中进行的,当I/O设备与主机交换信息时,CPU不得不停止各种运算,因此,I/O设备与CPU是按串行方式工作的,极浪费时间.(3)每个原创 2021-07-28 21:59:42 · 2366 阅读 · 0 评论 -
虚拟存储器入门
一个容量相对较小的高速缓冲存储器与主存组成的Cache系统,大致弥合了CPU与主存的速度差距,但随着计算机处理能力的逐步增强,对存储器的容量要求也相应提高,程序员面对越来越复杂的问题和海量的数据,自然对存储器的容量也提出了海量的要求.于是,人们也希望用类似的方法来解决存储器容量的问题,这就是主存与辅存组成的虚拟存储系统.虚拟存储器属于主存一外存层次,由存储器管理硬件和操作系统中存储管理软件支持,借助于硬盘等辅助存储器,并以透明方式提供给用户的计算机系统,使其具有辅存的容量,接近于主存的速度,单位容量的成本原创 2021-07-25 08:34:07 · 847 阅读 · 1 评论 -
存储器的层次结构
存储器有3个主要性能指标:速度、容量和每位价格(简称位价).一般来说,速度越高,位价就越高;容量越大,位价就越低,而且容量越大,速度必越低.人们都想追求大容量、高速度、低位价的存储器,但这是很难达到的.图7.2形象地反映了上述三者的关系.图中由上至下,位价越来越低,速度越来越慢,容量越来越大,CPU访问的频度也越来越少.最上层的寄存器通常都制作在CPU芯片内.寄存器中的数直接在CPU内部参与运算,CPU内可以有十几个、几十个寄存器,它们的速度最快,位价最高,容量最小.主存用来存放正在运行或将要运行的程原创 2021-07-25 08:25:46 · 4140 阅读 · 1 评论 -
DMA访问(直接内存访问)
DMA的工作原理是,如果按数据块进行I/O,即需要传输大量数据时,就无须CPU的介入。在这种情况下,我们可以让I/O设备与计算机内存进行直接数据交换。而CPU则可以去忙别的事情。这种将CPU的介入减少的I/O模式称为直接内存访问。问题是,将CPU从繁忙等待中解脱出来,难道DMA的整个数据读写过程不需要使用处理器的功能吗?当然不是。数据传输当然使用CPU,只不过这里使用的CPU不是计算机里面所有进程共享的CPU,而是由另外一个CPU来负责数据传输。这个另外的CPU就是DMA控制器。也许读者会问,这有什么意原创 2021-07-25 08:07:22 · 8812 阅读 · 1 评论 -
设备独立的操作系统软件
一般来说,设备驱动程序并不直接从用户处接收I/O请求,而是通过另外一层中介获得用户请求。这层介于设备驱动程序与用户程序之间的中介就是设备独立的操作系统软件。操作系统在设计时之所以有这层软件是因为I/O软件的一部分与设备有关,一部分与设备无关。而如果与设备无关,就可以将这部分共用起来,放置在设备驱动程序之上,为用户提供一个统一的I/O界面。这种对于所有I/O设备都共同的操作包括诸如缓冲、错误报告、分配与释放独享设备、提供设备独立的数据块尺寸等。设备独立的操作系统软件与设备驱动软件之间的分界自然与每个设备有关原创 2021-07-25 07:59:09 · 552 阅读 · 0 评论 -
设备驱动程序
什么是设备驱动程序?设备驱动程序,顾名思义,就是直接驱动I/O设备进行输入或输出操作的软件。它属于与设备控制器直接联系的I/O软件部分。它与具体的I/O设备直接相关,并针对每个特定的I/O设备进行优化。设备控制程序通常由设备制造商提供,但归属于操作系统内核。正因为这一属性,设备驱动程序是操作系统安全的一个巨大隐患。由于需要直接驱动设备的运行,设备驱动程序必须清楚设备的所有细节。例如,磁盘驱动程序必须清楚什么是扇面、磁道、磁柱、磁头、磁臂、电机和电机驱动等信息;鼠标驱动程序需要具备辨认按下哪个键的能力。原创 2021-07-25 07:53:07 · 2280 阅读 · 0 评论 -
I/O软件分层
I/O是一件颇为繁琐的事情。它涉及用户空间和内核空间的数据交换、I/O设备的设置与启动、中断响应与返回,而且整个I/O需要提供一个与I/O设备无关的统一界面。为了完成一个繁琐的工作,人们通常会将其分为更小的任务来处理。在I/O软件上自然也不例外。I/O软件通常按照I/O功能进行分层,每一层有提供独特的功能,并与相邻的层面设计有标准界面。当然,在不同的操作系统中这种分层也是不同的。但一般来说都会有下面几层:用户层I/O软件设备独立的操作系统软件设备驱动程序中断服务程序中断服务程序由于大多数I/原创 2021-07-25 07:47:05 · 523 阅读 · 0 评论 -
中断驱动I/O原理
中断驱动就是将CPU从繁忙等待的繁琐中解脱出来。在发送完一个或一批数据后,CPU就去忙别的事情。I/O设备处理完这批数据后,向CPU发出中断。CPU响应中断后再发送下一批数据。具体来说,中断驱动I/O的过程如下:1)CPU初始化I/O并启动第一次I/O操作。2)CPU去忙别的事情。3)当I/O完成时,CPU将被中断。4)CPU处理中断。5)CPU恢复被中断的程序。图19-9描述的是中断驱动I/O的打印程序片段举例。图19-9给出的是打印系统调用时执行的代码,图19-10给出的是CPU中断响原创 2021-07-25 07:39:51 · 3048 阅读 · 0 评论 -
可编程I/O原理
在可编程模式下,CPU等待I/O的完成,即CPU涉入程度很深。这种模式也称为轮询或者繁忙等待。图19-7给出的是打印一串字符的可编程I/O程序片段。显然,在等待打印机状态变为就绪的过程中,CPU不能干任何事情。而每次等待后做的事情只不过是将一个字符发送到打印机的数据寄存器里面。这对于CPU来说,真有点“大材小用”了。而且,我们前面说过,大材小用或者浪费资源并不是繁忙等待的唯一甚至最严重缺陷。最严重的缺陷是还有可能造成优先级倒挂,进而造成死锁。解决的方法就是不繁忙等待,而是使用中断。...原创 2021-07-25 07:35:00 · 1053 阅读 · 0 评论 -
I/O软件入门
首先,硬件的种类和类型实在太多,单单磁盘就有不同类型、不同生产厂商的数十种之多,而每种磁盘的控制界面并不一样。至于网卡、视频卡、键盘、鼠标等也存在五花八门的品牌和系列。其次,对一种硬件设备来说,其访问过程并不简单。要想正常访问,必须知道该设备的物理结构和特性,其工作原理和机制。而这对于程序设计员来说,显然有点要求过多。例如,由于对控制寄存器的访问和对内存的访问不同,用户必须明白I/O设备的底层命令,并且对于不同的设备这个命令是不同的。这样用户写的程序必须依设备的不同而有所不同,这显然不是一件令人高兴的原创 2021-07-24 16:26:46 · 1266 阅读 · 0 评论 -
多核基本概念
要讨论多核环境下的操作系统所做的调整,首先需要知道多核环境和单核环境的不同之处。我们首先来看一下多核的一些基本概念。在x86体系结构下,多处理功能芯片经过了对称多处理器结构(SMP Architecture)、超线程结构(HyperThreading)、多核结构(Multi-core Architecture)和多核超线程结构(Multi-core Hy-per Threading Architecture)的4个演变阶段。我们下面分别予以介绍。多处理器结构除了提升CPU主频和增加一、二级缓存容量外,提原创 2021-07-24 16:21:14 · 3844 阅读 · 0 评论 -
磁盘块与扇区的区别和联系
什么是扇区?盘面中一圈圈灰色同心圆为一条条磁道,从圆心向外画直线,可以将磁道划分为若干个弧段,每个磁道上一个弧段被称之为一个扇区。扇区是磁盘的最小组成单元,通常是512字节。(由于不断提高磁盘的大小,部分厂商设定每个扇区的大小是4096字节)什么是磁盘块?操作系统与磁盘之间交流的最小单位就是磁盘块,它是一个虚拟的概念。是对于操作系统(软件)来说有意义的概念。由于扇区的数量比较小,数目众多在寻址时比较困难,所以操作系统就将相邻的扇区组合在一起,形成一个块,再对块进行整体的操作。操作系统忽略对底层物理原创 2021-07-24 11:42:02 · 6375 阅读 · 1 评论 -
CPU 字长(cpu word size)是什么意思?
In computing, word size refers to the maximum number of bits that a CPU can process at a time. A word is a fixed-sized piece of data which is dictated by the processor hardware architecture; fixed in a sense that it is the maximum size that the processor .原创 2021-07-24 11:27:58 · 6458 阅读 · 0 评论 -
输入输出入门
计算机归根结底是为人类服务的,这就要求计算机必须提供某种机制使得人可以向计算机发出命令或操纵计算机。也就说计算机与人之间必须存在某种沟通的机制。这种沟通的机制就是计算机的输入输出机制。输入提供的是一个“人→计算机”的通道。即人或外部世界通过输入向计算机发出命令或提供数据。输出提供的则是相反方向的通道,即“计算机→人”的通道。计算机通过这个通道向人或外部世界输出自己的计算结果,包括对其他设备的控制操纵命令。显然,输入输出的存在才使得计算机的存在有了意义。就像一个人,如果没有输入输出,即她或他不能与外部世界原创 2021-07-24 09:13:34 · 291 阅读 · 0 评论 -
索引文件组织
要改进FAT系统,就要看FAT的问题出在什么地方。问题就是FAT太大。但仔细分析却发现,FAT虽然很大,但里面存放有用信息的记录不一定很多。例如,如果系统里面文件数量较少,或者个体文件的尺寸很小,则FAT里面的很多记录都是空的。这样将整个FAT放在内存里就显得有点不必要了。那么我们想,如果能够将每个文件的所有数据块的磁盘地址收集起来,集中放在一个索引数据块里,而在文件打开时将该数据块加载到内存,以后访问任何一个数据块都可以从该索引数据块里面获得物理磁盘地址。这样,内存里面存放的只是我们需要使用的文件原创 2021-07-24 09:06:37 · 825 阅读 · 0 评论 -
文件分配表(File Allocation Table)入门
什么是FAT?File allocation table is a table for describing the allocation status of the clusters (the basic units of logical storage on a hard disk) in the file system and the link relationship between the file contents. You can simply say it is a table in w原创 2021-07-24 08:58:26 · 5722 阅读 · 0 评论 -
文件--非连续空间存放方式
非连续空间存放方式就是一个文件的数据块之间不需要在磁盘上占据连续的一片空间。这样,我们需要一种办法来寻找到文件的所有数据块。那么有什么办法可以做到这一点呢?答案是链表。使用链表的解决办法很简单。在每个数据块里面留出一个指针的空间,用来存放下一个数据块所在的地址。这样一个数据块连着一个数据块,从最前面的数据块开始就可以顺着指针找到所有的数据块,如图17-5所示。在链表存放方式下,文件的映射就是给出文件第一个磁盘快的位置。这种存放方式比起连续存放方式的优点是可以利用碎片。但缺点呢?访问速度慢。尤其是随机访原创 2021-07-24 08:26:46 · 1452 阅读 · 0 评论 -
文件的实现入门
我们说过对于操作系统设计人员来说,我们关心的是文件是如何实现的。那么文件的实现意味着什么呢?或者文件的实现究竟是什么意思呢?文件的实现,归根结底,就是要能够把文件的内容存放在合适的地方,并能够在需要时很容易地读出这些数据。这样,文件的实现要解决的就是如下几个问题:给文件分配磁盘空间。记住这些磁盘空间的位置。将文件内容存放在这些空间。给文件分配磁盘空间就是要按照用户要求或文件大小分配恰当容量的磁盘空间,记录这些空间的位置对将来的文件访问至关重要;将文件内容存放到这些空间中则可以通过磁盘本身的驱原创 2021-07-24 08:18:44 · 235 阅读 · 0 评论 -
文件系统的布局
一个磁盘包括一个个扇面,编号从0递增,整数计数。第0个扇面在整个文件系统中占有重要意义。该扇面存放的是主引导记录(Master Boot Record,MBR)。该记录的内容是一个小小的程序,用来启动计算机。如果该扇面损坏,则整个磁盘就无法使用。这时唯一的办法就是将磁盘拿到硬件制造商那里对磁盘扇面重新编号。在MBR后面紧接着的是磁盘分区表。磁盘分区表里给出的是磁盘的所有分区及其开始和终结地址,其中一个分区为主分区。操作系统就装载在这个分区中。主分区里面最前面的是引导记录(Boot Record)。在计算原创 2021-07-23 08:25:16 · 474 阅读 · 0 评论 -
文件系统实现
从操作系统设计人员看待文件系统,也就是文件系统的实现。对于操作系统设计人员来说,他们关心的问题是:文件系统如何分布的。文件是怎么实现的。文件夹是怎么实现的。共享文件是怎么实现的。磁盘空间是如何管理的。前面讲过,**文件主要在磁盘上实现。**当然你也可以将文件系统放到其他介质上。但不管是什么介质,其原理大同小异。这里以磁盘为介质进行说明。买过磁盘的人都知道,磁盘买来后要做的第一件事情是对磁盘进行分区和格式化。那么磁盘为什么要进行分区呢?或者说我们必须分区吗?分区的理由多种多样。首先,分区可以原创 2021-07-23 08:23:06 · 156 阅读 · 1 评论 -
文件系统思考题
1.我们是否可以像对待文件数据一样任意读写文件夹呢?为什么?2.请比较关系导向和非关系导向的文件组织方式,分别论述它们的优缺点。3.文件组织的最普遍使用的方式是什么?为什么?4.文件链接是做什么用的,它是如何实现的?5.请调查1~2个商用操作系统,看看哪些字符不能用在文件名里,并简要说明原因。6.内存映射的文件访问是怎么回事?它有什么特点?人们为什么引入这种概念?7.文件系统的地址独立是怎么回事?它是通过何种机制实现的?8.如果没有使用文件系统,对磁盘的读写操作应该如何进行呢?原创 2021-07-23 08:16:49 · 208 阅读 · 0 评论 -
文件系统调用
从用户角度来看,操作系统提供的文件系统界面就是文件系统调用。用户可以在程序中通过这些系统调用对文件系统进行读写操作。这些系统调用包括打开文件、关闭文件、读文件内容、写文件内容等。例如,图16-8给出的就是使用文件系统调用实现文件拷贝的简单程序。上述文件拷贝程序的工作原理很简单:打开源文件和目标文件,循环往复地将源文件的内容读到一个缓冲区,然后将缓冲区的内容写到输出目标文件里。当拷贝结束后,关闭源文件和目标文件。上述程序中使用的文件系统调用包括fin.open、fout.open、fout<<、fi原创 2021-07-23 08:14:50 · 1351 阅读 · 0 评论 -
文件夹的本质
前面说过,我们可以对文件进行读写等操作。那么给一个文件名,操作系统是怎么知道从什么地方读取文件的内容呢?或者说,文件在磁盘上的什么位置,操作系统是如何知道的呢?这当然需要一个数据结构来记录每个文件在磁盘上的地址,这个数据结构就是文件夹。文件夹也称为目录夹(folder),它保存的不是用户数据,而是关于文件及文件系统的信息。简单地说,文件夹的角色就是跟踪文件,里面存放的是从文件到文件在磁盘的地址的映射,即“文件名→文件在磁盘上的地址”。文件夹对于文件来说,就相当于动态地址翻译对于虚拟地址的作用,即从虚拟地址原创 2021-07-23 08:03:09 · 1393 阅读 · 0 评论 -
文件访问的两种方式
文件的访问类型只有两种:顺序访问和随机访问。顺序访问就是从开头开始访问,按先来后到的顺序读取数据。不能在中间随便跳转,但可以进行快进或者快退。早期的操作系统只提供顺序访问。这是因为早期的计算机主要以纸带、磁带等作为存储媒介,而这种媒介比较适合顺序访问。对于需要随便跳转的随机访问,纸带和磁带都不太胜任。显然,顺序访问的缺点很多,你不能想访问什么地方就访问什么地方。就像看录像带一样,倒来倒去很不方便。**随机访问则可以按照任意顺序读取数据记录。**我们先对文件进行选点(seek),到达指定的位置后再开始读写原创 2021-07-23 07:55:00 · 5297 阅读 · 0 评论 -
文件格式入门
不同类型的文件有着不同的逻辑单元,而这些逻辑单元在空间上的关系也因文件类型的不同和操作系统(文件系统)的不同而不同。例如,可执行文件和归档文件(Archive文件)的格式就不相同。图16-5描述的就是可执行文件和归档文件在UNIX下的格式。对于可执行文件来说,它有一个标题(header)、一个代码部分、一个数据部分、一个重定位部分和一个符号表。而标题部分又分为多个逻辑单元:魔数、文本尺寸、数据尺寸、BSS尺寸、符号表尺寸、程序入点和各种标志位。这里各部分的信息除魔数外均不言自明。魔数是用来告诉操作原创 2021-07-23 07:53:11 · 271 阅读 · 0 评论 -
文件的三种类型
大部分操作系统支持多种文件。根据文件的内容是用户数据还是文件系统本身的数据,文件分为3种:目录一般文件块文件目录目录是记录文件的文件,即它的内容是关于别的文件。一般文件一般文件用于保存数据。对于一般文件来说,根据其内容的组织方式不同,可以分为两种文件:文本文件二进制文件文本文件存放的是没有经过处理的数据,即以ASCII码表示的数据。任何编辑器都可以打开这种文件。二进制文件是经过编码的文件,普通编辑器打不开,必须用专门的应用软件才能打开。另外,加密文件也是二进制文件。块文件块文件原创 2021-07-22 08:30:52 · 4894 阅读 · 0 评论 -
文件内容组织入门
文件里面存放的是数据,而数据和数据之间有可能存在某种关系。这种关系是否由文件系统捕捉就决定了文件内容的组织形式。从哲学的高度看,文件内容的组织有两种:关系导向型组织和非关系导向型组织。1.关系导向型组织关系型导向型文件的内容的组织形式就是将数据之间的关系记录在文件里面,文件的构造与数据之间的关系存在某种对应关系。例如,记录流存放方式下,数据以一个记录一个记录的方式顺序排列,并不捕捉每个记录之间的关系;在树型存放方式下,数据不只是按记录存放,且捕捉记录之间的关系,但记录之间的关系是一种层次结构,不形成环;原创 2021-07-22 08:27:41 · 253 阅读 · 1 评论 -
文件命名入门
文件命名我们如何命名欲访问的文件呢?通常来说,我们给出一个符号名,也就是文件名以便于访问一个文件。这个文件名既可以是英语名、中文名,也可以是图像名(图标)。例如"file"、“文件1”等都是合法的文件名。当用户给出一个文件名,操作系统就可以根据这个名字找到对应文件的内容具体来说,就是找到该文件存放在磁盘上的所有数据块。操作系统如何在磁盘上找到所有这些数据块呢?很简单,将该文件名翻译成其数据块在磁盘上存放的地址。由于磁盘的寻址单位是扇面,而这些磁盘地址实际上就是一个个的扇面号。由于一个文件可能占用多个扇面原创 2021-07-22 08:21:39 · 1841 阅读 · 0 评论 -
文件系统入门
文件系统是操作系统提供的另一个抽象。它是一个子虚乌有的东西,看不见、摸不着,但却可以使用的介于磁盘与用户之间的界面,如图16-2所示。文件系统令磁盘变得容易使用,从而将用户从数据存放的细节中解放出来:用户不需要知道内容存放在什么地方,也不需要知道如何存放,更不需要知道磁盘到底是如何工作的。因此,文件系统就是磁盘的一个抽象。当然文件系统不一定在磁盘上,也可以在光盘上。但由于绝大部分文件系统是基于磁盘的,本章讨论的文件系统主要针对磁盘。针对其他媒介的文件系统与磁盘文件系统非常类似,读者可以很容易推断或理解。原创 2021-07-21 08:31:00 · 186 阅读 · 0 评论 -
为什么需要文件系统
本书的前面多个章节阐述了CPU管理和内存管理这两个操作系统的核心功能。那么只有CPU管理和内存管理还不够。因为所有应用程序之所以运行是因为需要处理数据。一个应用程序既可能需要读入数据,也可能需要输出数据。那么这些数据就需要存放在某个地方。什么地方可以用来存放这些数据呢?当然,内存是一个可能用来存放数据的地方。例如,一个进程在运行时有自己的地址空间,而这个地址空间就可以用来存放该进程需要的数据。但是这个地方存放数据存在诸多问题,如它容量有限,不持久,且难以共享。一旦该进程结束运行,地址空间将失效,里面的数原创 2021-07-21 08:26:51 · 438 阅读 · 0 评论 -
磁盘驱动器的访问速度
磁盘在读写数据时的访问速度称为磁盘的动态属性。这是衡量一个磁盘性能的重要数据。数据访问时间或速度的计算并不简单,而这种计算不仅依赖于磁盘的旋转速度,而且还依赖于在访问开始时读写磁头所处的位置。数据访问时间也有几种衡量办法。寻道时间(seek time)指的是把读写磁头移动到所要求的磁道位置所需要的平均时间。实际的寻道时间则依赖于在读写请求收到时读写磁头所处的位置和磁头需要移动的距离。但由于没有办法在收到访问要求时获知这些数据,因此我们常常使用平均寻道时间这个概念。平均寻道时间则是通过测量来决定。该数值将有原创 2021-07-20 21:21:06 · 1669 阅读 · 0 评论 -
盘面的结构
为方便存储数据,人们将每块盘面分为磁道和扇面。磁道是一个个的同心环。而每个磁道又被分为扇面(也称为扇区)。数据则以扇面进行存储。扇面也是磁盘I/O的最小单位,如图15-3所示。扇面的内容通常分为3部分:标题、数据部分和ECC纠错信息,如图15-4所示。扇面的标题通常包含同步和位置信息。同步信息允许磁头的定位电路将磁头保持在磁道的中心位置,而位置信息则允许磁盘控制器决定扇面的身份。如果是读取操作,则磁头将捕捉存放于盘面上的信息;在写入操作时,则将信息写入盘面。图中的扇面结构里有一个12 B的ECC信息,原创 2021-07-20 21:14:58 · 480 阅读 · 0 评论 -
磁盘的结构
由于文件系统是磁盘的抽象,因此不了解磁盘就很难深刻理解文件系统。需要注意的是,磁盘远比本章介绍的要复杂,有兴趣的读者可以参阅计算机组成、存储技术与系统或专门介绍磁盘技术方面的书籍。那么什么是磁盘呢?通俗地讲,磁盘就是形状像盘子的磁性存储介质。这种存储介质的特性是持久,正常情况下数据存放在上面不会消失;磁性、圆形是它的显著特征,所以称为磁盘;成本低廉,所以可以大量使用。对于现代计算机来说,磁盘已经成为不可或缺的一个组件。一个没有磁盘的计算机对于很多人来说是很难想象的(当然,没有磁盘的计算机还是有的,但多数原创 2021-07-20 21:09:41 · 438 阅读 · 0 评论 -
页面翻译过程
图12-8给出的是地址翻译的一个简单演示。在该图中,CPU发出虚拟地址0010000000000100。由于页面大小为4KB,后面的12位为页内偏移值。前面的4位则为页面号。按此分解后,我们得出该地址在虚拟页面2,页内偏移值4的地址上。将这两部分地址分开,以2作为索引到找到页表的第2个记录,发现该记录所对应的页面在物理内存,其物理页面号是110,即6。这样,我们再将物理页面号与页内偏移值合并,获得物理地址为:110000000000100。...原创 2021-07-20 21:03:58 · 391 阅读 · 0 评论 -
页表入门概念
页表在分页内存管理系统的地位十分关键。**页表的根本功能是提供从虚拟页面到物理页面的映射。**因此,页表的记录条数与虚拟页面数相同。例如,对于32位寻址的虚拟地址,如果页面大小为4KB,则虚拟页面数最多可以达到220,即1048576个虚拟页面。那么页表的记录条数就为1048576条。内存管理单元依赖页表来进行一切与页面有关的管理活动。这些活动包括判断某一页面号是否在内存里,页面是否受到保护,页面是否非法空间等。因此,页表除了提供虚拟页面到物理页面的映射外,还记录这些相关信息。页表的一个记录所包括原创 2021-07-20 21:01:48 · 4815 阅读 · 1 评论 -
分页内存管理
为了解决交换系统存在的缺陷,出现了分页系统。分页系统的核心就是将虚拟内存空间和物理内存空间皆划分为大小相同的页面,如4KB、8KB或16KB等,并以页面作为内存空间的最小分配单位,一个程序的一个页面可以存放在任意一个物理页面里。这样,由于物理空间是页面的整数倍,并且空间分配以页面为单位,将不会再产生外部碎片。同时,由于一个虚拟页面可以存放在任何一个物理页面里,空间增长也容易解决:只需要分配额外的虚拟页面,并找到一个闲置的物理页面存放即可。在分页系统下,一个程序发出的虚拟地址由两部分组成:页面号页内原创 2021-07-20 20:57:12 · 943 阅读 · 0 评论 -
闲置空间管理
在管理内存的时候,操作系统需要知道内存空间有多少空闲。如何才能知道有哪些空闲呢?这就必须跟踪内存的使用。跟踪的办法有两种:第1种办法是给每个分配单元赋予一个字位,用来记录该分配单元是否闲置。例如,字位取值0表示分配单元闲置,字位取值1则表示该分配单元已被占用。这种表示法就是所谓的位图表示法,如图11-17所示位图表示法的优点是直观、简单。在搜索需要的闲置空间时只需要找到一片连续0个数大于等于所需分配单元数即可。例如,如果我们需要找一片4个分配单元大的闲置空间,则通过扫描位图表,找到连续4个0即原创 2021-07-20 08:20:45 · 281 阅读 · 0 评论 -
多道编程的内存管理
为了克服单道编程的缺点,我们发明了多道编程。随着多道编程度数的增加,CPU和内存的利用效率也随着增加。当然,这种增加有个限度,超过这个限度,则因为多道程序之间的资源竞争反而造成系统效率下降。虽然多道编程可以极大地改善CPU和内存的效率,改善用户响应时间,但是天下没有免费的午餐,这种效率和响应时间的改善是需要付出代价的。这个代价是什么呢?当然是操作系统的复杂性。因为多道编程的情况下,无法将程序总是加到固定的内存地址上,也就是无法使用静态地址翻译。这样我们就必须在程序加载完毕后才能计算物理地址,也就是在程序原创 2021-07-20 08:15:31 · 302 阅读 · 0 评论 -
单道编程的内存管理
最简单的内存管理是单道程序下的内存管理。在单道编程环境下,整个内存里面只有两个程序:一个是用户程序,另一个是操作系统。由于只有一个用户程序,而操作系统所占用的内存空间是恒定的,我们可以将用户程序总是加载到同一个内存地址上。即用户程序永远从同一个地方开始执行。在这种管理方式下,操作系统永远跳转到同一个地方来启动用户程序。这样,用户程序里面的地址都可以事先计算出来,即在程序运行前就计算出所有的物理地址。这种在运行前即将物理地址计算好的方式叫做静态地址翻译。这种内存管理方式是如何达到内存管理的两个目的的呢?原创 2021-07-19 08:25:15 · 276 阅读 · 0 评论 -
操作系统在内存中的位置
从根本上来说,计算机里面运转的程序有两种:管理计算机的程序和使用计算机的程序。正如本书前面多次提到,操作系统就是管理计算机的程序。而管理者本身也需要使用资源。其中的一个资源就是内存空间。内存管理的第一个问题是操作系统本身在内存中的存放位置。应该将哪一部分的内存空间用来存放操作系统呢?或者说,我们如何将内存空间在操作系统和用户程序之间进行分配呢?最简单的方式就是将内存划分为上下两个区域,操作系统和用户程序各占用一个区域,如图11-4所示。比较起来图11-4a的构造最容易理解。因为操作系统是为用户提供服务原创 2021-07-19 08:21:03 · 8662 阅读 · 4 评论