操作系统知识操作系统内核的功能和基本组成功能:中断处理、时钟管理、存储管理、设备管理还有与进程控制和管理有关的其他支撑功能。组成:与硬件紧密相关的功能模块、运行频率高的功能模块以及公用的一些基本操作,这些常驻内存部分即组成了操作系统内核(Kernel)。中断控制是最基本的支撑功能,是操作系统运行的基础进程:是一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的一个独立单位。线程:是进程内一个相对独立、可调度的执行单位,是进程中一个单一的控制线索。顺序执行:顺序性、封闭性、可再现性。并发执行:间断性、失去封闭性、失去可再现性、程序与程序的执行不再一一对应。型从结构上看:进程实体由程序、数据及进程控制块3部分组成。进程的基本状态:就绪态(Ready)、执行态(Running)、阻塞态(Blocked)。状态间转换:就绪态——执行态:当进程调度程序为之分配了处理器后。执行态------就绪态:在进程的执行过程中,因分配给它的一个时间片已经用完或被更高优先级的进程抢占,而不得不让出处理器时。这是,原来占有处理器的进程将被中断。执行态------阻塞态:正在执行的进程因等待某种时间发生但尚未发生,或等待某个I/O完成单尚未完成而无法继续执行时。这个转换时进程自行启动的。阻塞态------就绪态:处于阻塞态的进程,若其等待的时间已经发生或I/O已经完成时。这个过程称为“唤醒”是由其它进程启动的。三态模型:五态模型:PVII进程通信是指进程之间的信息交换。包括低级通信方式和高级通信方式:信号量机制为进程的低级通信机制;高级通信方式可归结为:共享存储区系统、管道通信系统和消息传递系统。共享存储区方式:在内存中开辟一块共享存储区域作为进程通信区。分为建立、附接、读写、断接几个步骤。常用于对通信速度有较高要求的场合。管道通信系统:这是在文件系统上形成的,利用共享文件实现进程通信的一种方式。所谓管道是指用于连接多个读写进程,以实现它们之间通信的共享文件。首创于UNIX系统。此通信开销小、交换信息量大且信息保存期长。但在通信过程中I/O操作的次数较多,同步和控制也较为复杂。消息传递系统:在单机系统、多机系统和网络环境下,进程的高级通信广泛采用消息传递方式。这种通信方式中,进程间的数据交换以消息为单位,在计算机网络中,消息也成为报文。可分为直接通信和间接通信。1:直接通信:发送和接收进程都必须以显示方式提供目标进程标识符,以表明向发送或从谁那里接收消息。通常,系统提供两条通信原语:Send:将消息message发送个进程ReceiverReceive:接收由进程Sender发来的消息message.2:间接通信:进程之间需要通过某种中间实体来暂存消息。这一中间实体被形象地称为信箱。当两个进程有一个共享信箱事,它们就能进行通信。一个进程可以分别与多个进程共享多个不同的信箱,这样,一个进程可以同时和多个进程进行通信。操作系统提供了若干原语:用于创建和撤销信箱、发送和接收消息等。临界资源(CR):一次仅允许一个进程使用的资源叫临界资源。临界区(CS):每个进程中访问临界资源的那段程序代码称作临界区。同步机制:空闲让进、忙则等待、有限等待、让权等待。互斥:当一个进程进入临界区使用临界资源时,另外的进程必须等待;当其退出后,另一个进程才被允许进入其临界区。这就是进程间的互斥关系。信号量:它是联系某类临界资源的数据结构,不同取值表示临界资源的不同状态。按信号量的用途的不同,可把信号量分为两类:1:公用信号量,其初值仅允许取值为0或1,主要用于控制进程互斥地进入临界区,也成为互斥信号量。2:私有信号量,其初值为初始资源数,主要用于控制进程间的同步运行,也成为同步信号量。PV操作:P即等待,V即发信号。I进II方式:非剥夺调度和剥夺调度1:非剥夺调度(非抢占方式)优点:简单、系统开销小缺点:可能导致系统性能的恶化,表现为:(1):当一个紧急任务到达时,不恩能够立即投入运行,从而延误时机。(2):若干个后到的短进程,需要等待先到的长进程运行完毕后才能运行,致使短进程的周转时间较长。它通常不适用于具有多个竞争的通用系统,但对于专用系统是很合理的。2:剥夺调度(抢占方式)剥夺原则:优先权原则、短进程优先原则、时间片原则进程调度算法:FCFS、短作业(进程)优先调度算法(SJF)、时间片轮转调度算法(RR)、高优先权优先调度算法(FPF)、最高响应比优先调度算法(HRN)、多级队列调度算法(MQ)、多级反馈队列调度算法(RRMF)。1、FCFS很少作为进程调度的主调度算法,而常作为一种辅助调度算法。2、SJF缺点:①该算法对长作业(进程)不利。②未考虑作业(进程)的紧迫度。③用户可能有意或无意地缩短其作业(进程)的估计执行时间,致使该算法不一定能真正做到短作业(进程)优先调度。3、RR的基本思想是让每个进程在就绪队列中等待的时间与享受服务的时间成正比。采用剥夺调度方式。系统将所有就绪进程按先进先出规则排成一个环形队列,把CPU分配给队首进程,并规定它执行一个时间片。当时间片用完,系统剥夺该进程的运行并将它送到就绪队列末尾,重新把处理器分配给就绪队列中新的队首进程,同样也让它运行一个时间片。如果时间片太大,则时间片轮转算法便退化为FCFS算法,如果太小,用户输入的常用命令都要花费几个时间片才能处理完毕。时间片的大小选择应考虑:1、系统对响应时间的要求(响应时间T直接与用户(进程)数目n和时间片q的关系:T=nq)2、就绪队列中进程的数目3、系统的处理能力。4、FPF:通常允许剥夺调度。该算法的关键在如何确定进程的优先权,常有2种方法:①静态优先权:影响进程静态优先权的主要因素:进程类型(系统进程优先权高于用户进程)、进程对资源的要求(如估计的运行时间、内存需要量等)、用户要求的优先级等。②动态优先权:基于某种原则,使进程的优先权随时间而改变。优先数通常为0~4095间的整数,UNIX和许多其他系统中,优先级数值越大,表示的进程优先权越低;而在Windows中,大数值表示高优先级。5、HRN:是FCFS和SJF的一种折衷。响应比:Rp=1TTWTWR为响应比,W为等待时间,T为该作业估计要执行的时间MQ:引入多个就绪队列,通过对各队列区别对待,达到一个综合调度目标。RRMF:是时间片轮转换算法和优先级调度算法的综合和发展。II定义:两个或两个以上的进程无限期地等待永远不可能发生的事件。产生原因:1、系统资源不足。2、进程推进顺序不合理。系统中有m(m=1)个进程,各需要使用同类资源k个,则保证系统不发生思索的最少资源数位(k-1)m+1。必要条件:互斥条件、请求和保持条件、不剥夺条件、环路条件要防止死锁的发生,其根本方法是破坏上述必要条件之一(或多个条件)。处理死锁的策略:预防:如果能够保证4个必要条件中至少一个不成立,则死锁将不会发生。避免策略、死锁检测、接触策略。I虚拟地址(逻辑地址或相对地址):以0为基址连续顺序进行编制的,称为相对地址。地址空间(逻辑地址空间或相对地址空间):相对地址(虚拟地址)的集合。存储空间(物理地址空间或绝对地址空间):相对地址空间通过地址重定位机构转换到绝对地址空间。地址重定位:一个逻辑地址空间的程序装入到物理地址空间时,由于两个空间不一致,需要进行地址变换,或称地址映射,即地址重定位。II页:用户程序的地址空间被划分成若干固定大小的区域,称为页。物理块:将存储空间也划分为与页大小相等的区域,称为物理块。内碎片:进程的最后一页经常装不满一块,形成不可利用的碎片,称为内碎片。将用户程序的任一页放入存储空间的任一物理块中,从而实现了离散存储。计算逻辑地址:分页系统中,每个逻辑地址用一个数对(p,d)来表示,其中P是页号,d是页内地址。若给定一个逻辑地址A,页面大小为L,则:P=INT[A/L]d=[A]MODL其中,INT是向下取整的函数。I时间局限性:产生时间局限性的主要原因是程序中存在着大量的循环操作。空间局限性:产生空间局限性的原因是程序的顺序执行。局部性原理是实现虚拟存储管理的理论基础。实现方法:仅把进程的一部分装入内存,其余部分则存放在磁盘上。如果需要的页(段)已经掉入内存,便可以继续执行下去。如果不在内存,则利用操作系统所提供的请求调页(段)功能,将该页(段)调入内存,。如果此时分配给该程序的内存已经全部占用,不能装入新的页(段),则需要利用系统的置换功能,把内存中暂时不用的页(段)调出至磁盘上,留出足够的内存空间,再将要装入的页(段)调入内存。这样便能从逻辑上对内存容量进行扩充了。虚拟存储器的逻辑容量由系统的寻址能力和外存容量之和所决定II最佳置换算法(OPT):置换掉那些以后永不再使用或在最长的时间以后才会用到的页面。这种算法实际上是不能实现的,但可以把它作为衡量其它算法优劣的一个标准。先进先出算法(FIFO):置换掉那些最先进入内存的页面。一般,分配给进程的物理块越多,缺页次数越少。但分配给进程4个物理块时的缺页次数比3个是的多,这种反常现象称为Belady异常。最近最久未使用置换算法(LRU):其基本思想是,如果某一页面被访问,那么它很可能马上又被访问;反之,如果,很久未被访问,那么最近也不会再次被访问。该算法为每一个页面设置一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当需要淘汰一个页面时,选择现有页面中t值最大的。它普遍地使用于各种类型的程序。但系统要时时对各页的访问历史情况加以记录和更新,如果全由软件来做,则系统的“非生产性”开销太大,从而会导致系统速度大大降低(至少会降低10倍)所以,LRU算法必须有硬件的支持。两种实现方法:计时法、堆栈法。注这里的“栈”不是通常意义的堆栈,这里应该使用双向链来构造栈,其链头链尾各需要一个指针。LRU的实现代价太高,需要在内存维持一个包含所有页的链表,最近使用的页面在表头,最久未使用的在表尾。及时使用硬件实现也非常费时。最近未使用置换算法(NRU):此算法被广泛应用,它近似LRU算法,为每个页面设置一位访问位,将内存中的所有页面通过链接指针链成一个循环队列。当某页被访问时,其访问位置1.在选择一页淘汰时,检查其访问位,如果是0,则淘汰,若为1,则把它置为0,暂不换出该页,再按照FIFO算法检查下一个页面。当检查到最后一个页面时,若其访问位仍为1,则再返回队首去检查第一个页面。为每页增设两个硬件位:访问位和修改位。访问位:A=0:该页尚未被访问过A=1:该页已经被访问过修改位:M=0:该页尚未被修改过M=1:该页已经被修改过4种组合:1类(A=0,M=0):最佳淘汰页2类(A=0,M=1):并不是很好的淘汰页3类(A=1,M=0):有可能再次被访问4类(A=1,M=1):可能再次被访问设备管理I除CPU和内存外,其它大部分硬件设备称为外围设备。大体可分为:人可读的、机可读的、通信。分类方法:1、按传输速率分:低速设备(如语音输入、键盘、鼠标器和输出设备几十至几百字节每秒)、中速设备(如激光打印机、行式打印机几千字节至十千个字节每秒)、高速设备(如磁带机、磁盘机、光盘机数百千至数兆个字节每秒)2、按信息交换的单位分类:块设备(用于存储信息,属于有结构设备I/O采用DMA方式。如磁盘,每个盘块大小通常512B~4KB)、字符设备(用于数据的输入\输出,其基本单位是字符属于无结构设备,如交互式终端、打印机等)3、从资源分配角度分类:独占设备、共享设备、虚拟设备。通道、DMAI增设通道的主要目的是为了建立独立的I/O操作,不仅使数据的传送能独立于CPU,而且希望有关I/O操作的组织、管理及结束也尽量独立,以保证CPU有更多的时间去进行数据处理通道特点:I/O通道时一种特殊的处理器,专门负责输入/输出。具有自己的指令系统,但该指令系统比较简单。一方面,该指令系统一般只有数据传送指令、设备控制指令等;另,通道没有自己的内存,其所执行的程序(即通道程序)是放在主机内存中的,与CPU共享内存。DMA概念:直接存储器访问特点:1、作为高速的外