操作系统面试知识点总结_nogos的博客-程序员ITS304_操作系统知识点

技术标签: 面试  计算机基础综合  操作系统  知识点  

绪论

操作系统的功能

用户接口:命令接口、程序接口、图形接口

处理机管理:进程控制、进程同步、进程通信、进程调度

存储管理:内存分配、内存保护、地址映射、内存扩充

设备管理:缓冲管理、设备分配、设备处理、虚拟设备管理

文件管理:文件存储空间管理、目录管理、文件读写管理、文件保护、文件系统的安全性、文件接口

操作系统的结构

内核(kernel)与外壳(shell)

从整体上讲,操作系统一般可分为“内核”(kernel)和“外壳”(shell)两大部分。操作系统的内核是实现操作系统基本功能的程序模块的集合,在机器的系统态(核心态)下运行;操作系统的外壳,指的是运行在内核之上的、完成OS外层功能(如命令解释、机器诊断等)的程序,他们运行在机器的用户态下,是一种开放式结构,其功能可方便地修改或增删。

核心态和用户态

计算机系统都有两种运行状态,即核心态用户态,在某一时刻二者必居其一。当操作系统内核的程序模块运行时,机器处于核心态,其他程序(包括OS外壳程序和其他应用程序)运行时机器处于用户态。

用户态:用户态具有较低特权的执行状态,在这种状态下,处理机只能执行规定的指令,访问指定的寄存器和存储区,用户程序通常只能在这一级别执行。

核心态:核心态是操作系统内核的运行状态,在这种状态下,处理机具有较高的特权,能执行一切指令,可以访问所有的寄存器和存储区。

在实际系统中,之所以要区分机器的两种运行状态,目的是给操作系统内核以某些特权。例如,改变状态寄存器和地址映射寄存器的内容等。这些特权是通过执行特权指令实现的,仅当在核心态下才能执行特权指令。

操作系统的特征

操作系统的基本特征:并发、虚拟、共享、不确定性

并发:所谓并发是指在一段时间内有多道程序“在宏观上同时运行”,这样的系统叫并发系统。

虚拟:操作系统中的虚拟概念,指的是操作系统使用某种技术,要么把物理上的一个变成逻辑上的多个,例如,把一台物理CPU变成多台逻辑上独立的CPU;要么把物理上的多个变成逻辑上的一个,例如,把物理上分开的主存和辅存变成逻辑上统一编址的编程空间,即虚拟内存。

共享:多道必然带来共享,即多道程序、多个用户作业共享有限的计算机系统资源。计算机系统中的资源共享有两种类型:互斥共享和“同时”共享。

不确定:操作系统的不确定,不是说操作系统本身的功能不确定,也不是说在操作系统控制下运行的用户程序的结果是不确定的,而是指在操作系统控制下的多个作业的执行顺序和每个作业的执行时间是不确定的。

代操作系统新特征

微内核:只给内核分配一些基本的功能,包括地址空间、进程通信和最基本的调度。而其他的操作系统功能都由运行在用户模式下的进程实现。这种方法可以将内核和服务程序的开发分离开,可以为特定的应用程序或环境要求定制服务程序。微内核的优点是,可以简化实现、提供灵活性,很适合于分布式环境。

多线程

多处理器

分布式操作系统

面向对象技术

操作系统分类

多批道处理系统、分时系统、实时系统、网络操作系统、分布式操作系统。

中断技术

中断在操作系统中的地位

在现代计算机系统中,中断通道技术是主机和外部设备并行工作的基础,是多道程序并发执行的推动力,也是整个操作系统的推动力——操作系统是由中断驱动的。

为什么说中断是多道程序并发执行的推动力呢?在单CPU计算机系统中,要使多道程序得以并发执行,关键在于CPU能在这些程序间不断的切换,使得每道程序都有机会在CPU上运行。导致这种切换的动力是什么?主要是时钟中断

中断的概念、作用和类型

中断:中断是指某个事件(电源掉电、加法溢出或外部设备传输结束等)发生时系统终止现行程序的运行,引出中断处理程序对该事件进行处理,完毕后返回断点继续运行,这个过程称为“中断”。

中断的作用:CPU与I/O设备并行工作、硬件故障处理、实现人机通信、实现多道程序的并发执行等。

中断的类型:硬件故障中断、程序性中断、外部中断、输入/输出设备中断、访管中断。

中断响应流程图:


中断和轮询的特点

对I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式。它定时对各种设备轮流询问一遍有无处理要求。轮流询问之后,有要求的,则加以处理。在处理I/O设备的要求之后,处理机返回继续工作。尽管轮询需要时间,但轮询要比I/O设备的速度要快得多,所以一般不会发生不能及时处理的问题。当然,再快的处理机,能处理的输入输出设备的数量也是有一定限度的。而且,程序轮询毕竟占据了CPU相当一部分处理时间,因此,程序轮询是一种效率较低的方式,在现代计算机系统中已很少应用。

程序中断通常简称中断,是指CPU在正常运行程序的过程中,由于预先安排或发生了各种随机的内部或外部事件,使CPU中断正在

运行的程序,而转到为响应的服务程序去处理。

轮询——效率低,等待时间很长,CPU利用率不高。

中断——容易遗漏一些问题,CPU利用率高。

进程与线程

进程的基本状态


1、什么是进程(Process)和线程(Thread)?有何区别?

定义
进程
是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程通常,当一个进程内有多个线程时,线程的程序是其所属进程的一部分,表示进程中的一个控制点,执行一系列的指令。同属一个进程的其他的线程共享进程所拥有的全部资源(包括地址空间)。它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),因此,它的创建、撤销、切换所需要的时空开销比进程要小。线程的引入可进一步提高系统的并发性。

区别
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

1、调度分派:线程是可调度分派的工作单元,它包括处理器上下文环境和栈中自己的数据区域。线程顺序执行,并且可以中断,这样处理器可以转到另一个线程。在有线程的系统中,进程不再是可调度分派的工作单元。
2、资源拥有:进程是一个或多个线程和相关资源的集合。线程基本不拥有资源,它的运行资源取决于其所属的进程。
3、地址空间:不同进程的地址空间是相互独立的,而同一个进程的各线程共享同一地址空间。
4、一个进程可包含一个或多个线程,反过来则不然。一个进程中的线程在另一个进程中时不可见的。
5、通信关系:进程间的通信必须使用操作系统提供的进程间通信机制,而同一个进程中的各线程间可以通过直接读写数据段来进行通信。当然,同一个进程中的各线程间的通信也需要同步和互斥手段的辅助,以确保数据一致性。

用户级线程和内核线程

线程的类型:对于通常的进程,不论是系统进程还是用户进程,在进行切换时都要依赖内核中的进程调度。因此,不论什么进程都是与内核有关的,而且是在内核支持下进行切换的。根据线程的控制方式不同,可将线程分为内核线程和用户级线程。

内核级线程:这类线程依赖于内核,又称为内核支持的线程或轻量级进程。无论是在用户程序中的线程还是系统进程中的线程,它们的创建、撤销和切换都由内核实现。为此,需要在内核中建立一个线程控制块,内核根据该控制块而感知该线程的存在并对线程进行控制。

用户级线程:它仅存在于用户级中,这种线程是不依赖于操作系统核心的。应用进程利用线程库来完成其创建、同步、调度和管理线程。因此用户线程间的切换不需要内核特权,不需要用户态/核心态切换,速度快,操作系统内核无法感知用户级线程的存在。

用户级线程和内核级线程的区别

(1)内核支持线程是OS内核可感知的,而用户级线程是OS内核不可感知的。
(2)用户级线程的创建、撤消和调度不需要OS内核的支持;而内核支持线程的创建、撤消和调度都需OS内核提供支持,而且与进程的创建、撤消和调度大体是相同的。
(3)用户级线程执行系统调用指令时将导致其所属进程被中断,而内核支持线程执行系统调用指令时,只导致该线程被中断。
(4)在只有用户级线程的系统内,CPU调度还是以进程为单位,处于运行状态的进程中的多个线程,由用户程序控制线程的轮换运行;在有内核支持线程的系统内,CPU调度则以线程为单位,由OS的线程调度程序负责线程的调度。
(5)用户级线程的程序实体是运行在用户态下的程序,而内核支持线程的程序实体则是可以运行在任何状态下的程序。

内核线程的优点:

(1)当有多个处理机时,一个进程的多个线程可以同时执行。

缺点:

(1)由内核进行调度。

用户线程的优点:

(1) 线程的调度不需要内核直接参与,控制简单。
(2) 可以在不支持线程的操作系统中实现。
(3) 创建和销毁线程、线程切换代价等线程管理的代价比内核线程少得多。
(4) 允许每个进程定制自己的调度算法,线程管理比较灵活。这就是必须自己写管理程序,与内核线程的区别。
(5) 线程能够利用的表空间和堆栈空间比内核级线程多。
(6) 同一进程中只能同时有一个线程在运行,如果有一个线程使用了系统调用而阻塞,那么整个进程都会被挂起。另外,页面失效也会产生同样的问题。

缺点:

(1)资源调度按照进程进行,多个处理机下,同一个进程中的线程只能在同一个处理机下分时复用

进程同步与通信

互斥与同步

所谓互斥,指的是多个进程之间由于竞争临界资源而相互制约。什么是临界资源?就是指一次仅允许一个进程使用的资源,即不能同时被共享的资源。‘

进程的同步,指多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。

进程同步的主要任务:是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行具有可再现性。
同步机制遵循的原则:
(1)空闲让进;
(2)忙则等待(保证对临界区的互斥访问);
(3)有限等待(有限代表有限的时间,避免死等);
(4)让权等待,(当进程不能进入自己的临界区时,应该释放处理机,以免陷入忙等状态)。

进程通信

进程间的通信是如何实现的
进程通信,是指进程之间的信息交换(信息量少则一个状态或数值,多者则是成千上万个字节)。因此,对于用信号量进行的进程间的互斥和同步,由于其所交换的信息量少而被归结为低级通信
所谓高级进程通信指:用户可以利用操作系统所提供的一组通信命令传送大量数据的一种通信方式。操作系统隐藏了进程通信的实现细节。或者说,通信过程对用户是透明的。
高级通信机制可归结为三大类:
(1)共享存储器系统(存储器中划分的共享存储区);实际操作中对应的是“剪贴板”(剪贴板实际上是系统维护管理的一块内存区域)的通信方式,比如举例如下:word进程按下ctrl+c,在ppt进程按下ctrl+v,即完成了word进程和ppt进程之间的通信,复制时将数据放入到剪贴板,粘贴时从剪贴板中取出数据,然后显示在ppt窗口上。

特点:信息交换量大、发送和接受更加灵活、信息保存时间长。

(2)消息传递系统(进程间的数据交换以消息(message)为单位,当今最流行的微内核操作系统中,微内核与服务器之间的通信,无一例外地都采用了消息传递机制。应用举例:邮槽(MailSlot)是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输。邮槽是一种单向通信机制,创建邮槽的服务器进程读取数据,打开邮槽的客户机进程写入数据。
(3)管道通信系统(管道即:连接读写进程以实现他们之间通信的共享文件(pipe文件,类似先进先出的队列,由一个进程写,另一进程读))。实际操作中,管道分为:匿名管道、命名管道。匿名管道是一个未命名的、单向管道,通过父进程和一个子进程之间传输数据。匿名管道只能实现本地机器上两个进程之间的通信,而不能实现跨网络的通信。命名管道不仅可以在本机上实现两个进程间的通信,还可以跨网络实现两个进程间的通信。

进程间通讯的方式
管道:管道中还有命名管道非命名管道之分,非命名管道只能用于父子进程通讯。命名管道可用于非父子进程,命名管道就是FIFO,管道是先进先出的通讯方式。FIFO是一种先进先出的队列,它类似于一个管道,只允许数据的单向流动。每个FIFO都有一个名字,允许不相关的进程访问同一个FIFO。 
消息队列:是用于两个进程之间的通讯,首先在一个进程中创建一个消息队列,然后再往消息队列中写数据,而另一个进程则从那个消息队列中取数据。需要注意的是,消息队列是用创建文件的方式建立的,如果一个进程向某个消息队列中写入了数据之后,另一个进程并没有取出数据,即使向消息队列中写数据的进程已经结束,保存在消息队列中的数据并没有消失,也就是说下次再从这个消息队列读数据的时候,就是上次的数据!!!

信号量: 不能传递复杂消息,只能用来同步 。
共享内存:只要首先创建一个共享内存区,其它进程按照一定的步骤就能访问到这个共享内存区中的数据,当然可读可写;  
几种方式的比较
管道:速度慢,容量有限 
消息队列:容量受到系统限制,且要注意第一次读的时候,要考虑上一次没有读完数据的问题。 
信号量:不能传递复杂消息,只能用来同步 
共享内存区:能够很容易控制容量,速度快,但要保持同步,比如一个进程在写的时候,另一个进程要注意读写的问题,相当于线程中的线程安全,当然,共享内存区同样可以用作线程间通讯,不过没这个必要,线程间本来就已经共享了一块内存。  
(1)无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。  
(2)有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。  
(3)信号量( semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。  
(4)消息队列( message queue ) : 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。  
(5)信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。  
(6)共享内存( shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。  
(7)套接字( socket ) : 套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信

处理机调度

作业(或进程)的调度算法有哪些?

(1)先来先服务(FCFS,First-Come-First-Served): 此算法的原则是按照作业到达后备作业队列(或进程进入就绪队列)的先后次序来选择作业(或进程)。
(2)短作业优先(SJF,Shortest Process Next):这种调度算法主要用于作业调度,它从作业后备队列中挑选所需运行时间(估计值)最短的作业进入主存运行。 
(3)时间片轮转调度算法(RR,Round-Robin):当某个进程执行的时间片用完时,调度程序便停止该进程的执行,并将它送就绪队列的末尾,等待分配下一时间片再执行。然后把处理机分配给就绪队列中新的队首进程,同时也让它执行一个时间片。这样就可以保证就绪队列中的所有进程,在一给定的时间内,均能获得一时间片处理机执行时间。 
(4)高响应比优先(HRRN,Highest Response Ratio Next): 按照高响应比((已等待时间+要求运行时间)/ 要求运行时间)优先的原则,在每次选择作业投入运行时,先计算此时后备作业队列中每个作业的响应比RP然后选择其值最大的作业投入运行。 
(5)优先权(Priority)调度算法: 按照进程的优先权大小来调度,使高优先权进程得到优先处理的调度策略称为优先权调度算法。
(6) 多级队列调度算法:多队列调度是根据作业的性质和类型的不同,将就绪队列再分为若干个子队列,所有的作业(或进程)按其性质排入相应的队列中,而不同的就绪队列采用不同的调度算法。

死锁

什么是死锁?其条件是什么?怎样避免死锁?
死锁的概念:在两个或多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁。通俗地讲,就是两个或多个进程被无限期地阻塞、相互等待的一种状态。
死锁产生的原因主要是:1、 系统资源不足;2、进程推进顺序非法
产生死锁的必要条件
(1)互斥,一个资源每次只能被一个进程使用;
(2)不可抢占,进程已获得的资源,在未使用完之前,不能强行剥夺;
(3)占有并等待,一个进程因请求资源而阻塞时,对已获得的资源保持不放;
(4)环形等待,若干进程之间形成一种首尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。
死锁的解除与预防:理解了死锁的原因,尤其是产生死锁的四个必要条件,就可以最大可能地避免、预防和解除死锁。所以,在系统设计、进程调度等方面注意如何不让这四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。此外,也要防止进程在处于等待状态的情况下占用资源。因此,对资源的分配要给予合理的规划。
死锁的处理策略:预防策略、避免策略、检测与恢复策略。

存储器管理

存储器管理的主要功能: 对存储空间进行分配和管理、存储器保护、地址转换、扩充主存容量(虚拟内存)。
存储器的地址转换:静态地址转换和动态地址转换(实现非连续存储,为虚拟存储器的实现打下了基础)。
存储器的分区存储管理:固定式分区存储管理(内部碎片)和动态分区存储管理(外部碎片)。

存储器的分页存储管理




存储器的分段存储管理


存储器的段页式存储管理

 

分段式存储管理、分页式存储管理,两个的区别? 

页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。

段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。
页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。

段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的性质来划分。
分页的作业地址空间是一维的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。

虚拟存储器

虚拟存储器:是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。其逻辑容量由内存容量和外在容量之后所决定,其运行速度接近于内存速度,每位的成本接近于外存。

虚拟存储器理论基础:时间局部性原理和空间局部性原理。

虚拟存储器的实现方法:其实现,都是建立在离散分配的存储管理方式的基础上。一般有分两种:请求分页系统、请求分段系统。

页面置换算法有哪些?
(1)最佳置换算法(Optimal):即选择那些永不使用的,或者是在最长时间内不再被访问的页面置换出去。(它是一种理想化的算法,性能最好,但在实际上难于实现)。  
(2)先进先出置换算法FIFO:该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。  
(3)最近最久未使用置换算法LRU(Least Recently Used):该算法是选择最近最久未使用的页面予以淘汰,系统在每个页面设置一个访问字段,用以记录这个页面自上次被访问以来所经历的时间T,当要淘汰一个页面时,选择T最大的页面。  
(4)Clock置换算法:也叫最近未用算法NRU(Not RecentlyUsed)。该算法为每个页面设置一位访问位,将内存中的所有页面都通过链接指针链成一个循环队列。当某页被访问时,其访问位置“1”。在选择一页淘汰时,就检查其访问位,如果是“0”,就选择该页换出;若为“1”,则重新置为“0”,暂不换出该页,在循环队列中检查下一个页面,直到访问位为“0”的页面为止。由于该算法只有一位访问位,只能用它表示该页是否已经使用过,而置换时是将未使用过的页面换出去,所以把该算法称为最近未用算法。  
(5)最少使用置换算法LFU:该算法选择最近时期使用最少的页面作为淘汰页。

页面分配算法

页面分配,是指按什么原则给活动进程分配物理块数。通常有如下三种分配算法:

1、平均分派算法。2、按比例分配算法。3、按优先级分配算法。

页面的分配和置换范围

如何在相互竞争的可运行进程之间,选择分配物理块的策略和置换页面的范围。需要考虑如下两个因素:
1、系统的并发性和吞吐率。2、缺页中断率。

基于这些因素,现代操作系统通常采用固定分配和可变分配两种策略,被置换页面的范围分为全局和局部两种。我们将分配策略和置换范围进行组合,可得出4种方式,但是固定分配全局置换方式是不可能的,因此,有如下3种方式:
1、固定分配局部置换
2、可变分配全局置换
3、可变分配局部置换

抖动

所谓抖动是指,在具有虚拟存储器的计算机系统中,由于频繁的页面置换活动,使得访问外存储器次数过多,从而引起的系统效率大大降低的一种现象。

设备管理

磁臂调度

1、先来先服务算法。2、最短查找时间优先算法。3、Scan算法(电梯算法)。4、C-Scan(Circular SCAN),扫描方向永远是一个方向。

文件管理

Linux操作系统

Linux中常用到的命令

显示文件目录命令ls        如ls
改变当前目录命令cd        如cd /home
建立子目录mkdir           如mkdir xiong
删除子目录命令rmdir       如rmdir /mnt/cdrom
删除文件命令rm            如rm /ucdos.bat
文件复制命令cp            如cp /ucdos /fox
获取帮助信息命令man      如man ls
显示文件的内容less        如less mwm.lx

Linux文件属性有哪些?(共十位)
-rw-r--r--那个是权限符号,总共是- --- --- ---这几个位。
第一个短横处是文件类型识别符:-表示普通文件;c表示字符设备(character);b表示块设备(block);d表示目录(directory);l表示链接文件(link);

第一个三个连续的短横是用户权限位(User)

第二个三个连续短横是组权限位(Group)

第三个三个连续短横是其他权限位(Other)。
每个权限位有三个权限,r(读权限),w(写权限),x(执行权限)。

如果每个权限位都有权限存在,那么满权限的情况就是:-rwxrwxrwx;权限为空的情况就是- --- --- ---。
权限的设定可以用chmod命令,其格式位:chmod ugoa+/-/=rwx filename/directory。例如:
一个文件aaa具有完全空的权限- --- --- ---。
chmod u+rw aaa(给用户权限位设置增加)读写权限,其权限表示为:- rw- --- ---)
chmod g+r aaa(给组设置权限为可读,其权限表示为:- --- r-- ---)
chmod ugo+rw aaa(给用户、组、其它用户或组设置权限为读写,权限表示为:- rw- rw- rw-)
如果aaa具有满权限- rwx rwx rwx。
chmod u-x aaa(去掉用户可执行权限,权限表示为:- rw- rwx rwx)
如果要给aaa赋予制定权限- rwx r-x r-x,命令为:
chmod u=rwx,go=rx aaa

其他

CPU中的缓存和操作系统中的缓存分别是什么? 

操作系统的缓存是指快表。在操作系统中,为提高系统的存取速度,在地址映射机制中增加一个小容量的联想寄存器,即快表,用来存放当前访问最频繁的少数活动页面的页号。当某用户需要存取数据时,根据数据所在的逻辑页号在快表中找到其对应的内存块号,再联系页内地址,形成物理地址。如果在快表中没有相应的逻辑页号,则地址映射仍可以通过内存中的页表进行,得到空闲块号后必须将该块号填入快表的空闲块中。如果快表中没有空闲块,则根据淘汰算法淘汰某一行,再填入新的页号和块号。快表查找内存块的物理地址消耗的时间大大降低了,使得系统效率得到了极大的提高。 
CPU中的缓存是指高速缓存。CPU的执行速度越来越快,系统架构越来越先进,而主存的结构和存取速度改进则较慢,因此,高速缓存技术将越来越重要。    高速缓冲存储器是位于CPU和内存之间的临时存储器,它的容量比内存小但交换速度快。在高速缓冲存储器中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的。当CPU调用大量数据时,就可避开内存直接从高速缓冲存储器中调用,从而加快读取速度。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sunxianghuang/article/details/51883496

智能推荐

ubuntu安装mysql离线包_lmlby的博客-程序员ITS304

Ubuntu安装mysql离线包测试环境:ubuntu12.04-amd64Mysql离线包:mysql-5.5.25-linux2.6-x86_64.tar.gz官方安装步骤如下:注意事项:如果执行scripts/mysql_install_db –user=mysql时出现如下错误:InstallingMySQL system tables..../bin/mysq

MySQL学习之子查询、合并查询结果、别名_MakerGaoGao的博客-程序员ITS304

学习峰哥java教程自学笔记:http://www.java1234.com/javaxuexiluxiantu.html表结构如下:t_book:t_booktype:t_price:1、带in关键字的查询(在后面的查询结果中查询前面的)SELECT * FROM t_book WHE

checkbox实现全选的多种方法_墙角的爬山虎的博客-程序员ITS304_checkbox全选

<script language=javascript> //第一种方法 function selectall1() { var a = document.getElementsByTagName("input"); if(a[0].checked==true){ for (var i=0; i<a.length; i++) if (a[i].type == "checkbox") a[i].checked = false; }

Oracle弃用Nashorn JavaScript引擎_糖糖糖糖糖糖糖糖糖糖糖糖糖糖糖糖糖糖的博客-程序员ITS304

Oracle通过JDK增强提案(JEP)355宣布弃用Nashorn JavaScript引擎,最终将从未来所有的JDK中删除。ECMAScript的语言结构变化太快,Oracle发现,维护Nashorn JavaScript引擎变得非常困难。\\Nashorn最初是在JDK 8中引入的,用于取代Rhino脚本引擎。当其发布时,Nashorn是ECMAScript-262 5.1的完整实现,增强了...

pajek06-09:中心度_qq_34322002的博客-程序员ITS304

1、局部中心度2、整体中心度3、Network>Create Vector>Centrality>Degre>All4、中心度:点的中心度中心势:网络的中心度

7.(开发工具篇kibana)Kibana安装与启动_地图之家家长的博客-程序员ITS304_kibana开发工具

听老人家说:多看美女会长寿前言:Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板(dashboard)实时显示Elasticsearch查询动态。1、Kibana官方下载地址https://www.elastic.co/cn/downloads/kibana一定要装与El

随便推点

ffmpeg代码分析(1)--编译裁剪_茜茜她老爹的博客-程序员ITS304_ffmpeg 裁剪编译

我们很少使用到ffmpge完整的功能库,大部分时候,只需要特定的编解码 传输协议,那么该怎么裁剪ffmpeg呢?答案就是configure命令。configure 是一个文本文件,打开以后我们会发现它有很多命令,如下Help options:  --help                   print this message  --list-decoders        

Unity项目常见Lua解决方案性能比较_weixin_33946605的博客-程序员ITS304

测试说明Unity不支持热更新这事情一直是谜一样的痛点,特别是在作者第一个项目上线之后,发现每次更新代价实在太大,可惜官方Roadmap上迟迟没有出现这个功能。UWA之前分享过 Android平台热更新解决方案,直接替换dll是一种解决方式(但iOS上因为使用IL2CPP故而无法实现,而且这事本质上为商业原因而非技术问题)。除此之外还有一个比较常见的...

使用Git连接Gitee进行Unity开发项目_funny囧t的博客-程序员ITS304_gitee unity

将项目上传到Gitee进行协同开发如图建立一个仓库下载并安装Git,可看网上的教程在所需上传到Gitee的项目文件目录右键并选择Git Bash输入git init,将该文件目录作为本地git库,此时会生成两个隐藏文件,目录出现master分支输入git.remote add Project https://gitee.com/rookiestudios/Project(这个Project是你在Gitee新建的仓库名称).git,将git关联到仓库并且命名输入git pull Project

算法竞赛入门经典——高效算法——巨人与鬼_qq_27559181的博客-程序员ITS304

巨人与鬼:题目:一组n个巨人正与n个鬼进行战斗,每个巨人的武器是一个质子炮, 它可以把一串质子流射中鬼而把鬼消灭。质子流沿直线行进,在击中鬼时就终止。巨人决定采取下述策略。他们寻找鬼配对,以形成n个巨人─鬼对,。然后每个巨人同时向他选取的鬼射出一串质子流。我们知道,让质子流互相交叉是很危险的。因此巨人选择的配对方式应该使质子流都不会交叉。假定每个巨人和每个鬼的位置都是平面上的一个固定点,并且没有三...

推荐文章

热门文章

相关标签