第一篇:操作系统重点总结
CPU内部结构
8086分为两个部分:总线接口部件BIU和执行部件EU
BIU主要功能负责CPU与存储器、I/O接口之间的信息传递。
BIU部件包括(1).四个段地址寄存器:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器ss、附加段寄存器ES、(2).指令指针寄存器IP、(3).20位地址加法器、(4).6B的指令队列、(5).总线控制逻辑电路。
EU主要功能负责指令的执行。EU部件包括(1).四个通用寄存器:累加器AX、基址寄存器BX、计数器CX、数据寄存器DX。(2).四个专用寄存器:堆栈指针寄存器SP、基址指针寄存器BP、源变址寄存器SI、目的变址寄存器DI。(3).算数逻辑单元ALU。(4).标志寄存器FR。(5).EU控制电路。
CPU寄存器
1.通用寄存器AX,BX,CX,DX,每一个寄存器都是16位的,既可以作为16位,又可以拆成高、低8位,分别作为两个独立8位寄存器使用。AX(AH,AL)累加器 BX(BH,BL)基址寄存器 CX(CH,CL)技术寄存器 DX(DH,DL)数据寄存器 2.专用寄存器SP,BP,SI,DI
SP堆栈指针寄存器:在堆栈中存放栈顶偏移指针,永远指向堆栈的栈顶。BP基址指针寄存器:一般也用来存放访问内存时的基地址。
SI源变址寄存器、DI目的变址寄存器:它们常常用在变址寻址方式中。3.段寄存器CS,DS,SS,ES CS代码段寄存器。DS数据段寄存器。SS堆栈段寄存器。ES附加段寄存器。
每一个段寄存器都是16位。4.指令指针寄存器IP
16位的指令指针寄存器IP 用于存放
下一条执行指令的偏移地址。CPU取指令总以CS为段基址,以IP 位段内偏移地址。当CPU从CS段内偏移地址为(IP)的内存单元中取出指令代码的一个字节后,IP 会自动加1,从而指向代码的下一个字节,用户不能直接访问IP寄存器。5.标志寄存器FR
它是16位寄存器,但只使用其中的9位,这9位包括6个状态标志位和3个控制标志位。状态标志记录了前面算术逻辑运算结果的一些特征;控制标志是用户自己通过指令设置的,设置后将对其后的操作产生控制作用。
指令、伪指令与宏指令
指令语句是可执行语句,在汇编中要产生对应的机器代码,与机器指令有一一对应关系,是CPU指令系统中的指令的符号形式,CPU根据这些代码执行相应的操作。
伪指令语句是不可执行语句,没有机器指令与其对应,在汇编中不产生机器代码,是汇编程序支持的一种命令,在汇编程序对汇编语言源程序汇编期间由汇编程序执行,告诉汇编程序如何汇编源程序,可以完成数据的定义、内存的分配等功能。
宏指令语句是以一条宏指令代表一段程序,经过定义之后,在程序中出现该程序段的地方均可用宏指令代替,简化了程序设计。在汇编时,凡出现宏指令语句的位置都会被换成相应的程序段。
DOS系统功能调用
DOS功能模块位于BIOS的上层,对硬件的以来较小,DOS功能既可用于操作系统管理,又可用于汇编程序的设计。(1).设置所要调用功能的入口参数(2).在AH寄存器中存入搜要调用功能的功能号。
(3).通过INT n(系统功能调用用INT 21H)指令自动转入中断子程序入口。(4).相应中断子程序运行完毕,可按规
定取得出口参数。
CPU与外设间信息调用
微机与外设之间的信息传递实际上是CPU与接口之间的信息传递,它们之间信息传递的主要方式有以下五种:(1).无条件传送方式:又称为同步方式,它所有的操作均由执行程序完成,主要适用于CPU或外围设备始终是准备好了的情况,或者危机和外设是完全同步的情况。
(2).程序查询方式:(3).中断处理方式:(4).DMA控制方式:(5).I/O处理机方式:
8259A工作方式 1.中断触发方式(1).边沿触发方式。(2).电平触发方式。2.连接系统总线方式
该方式用来确定系统总线与8259A数据总线之间是否需要进行缓冲。(1).缓冲方式。(2).非缓冲方式。3.屏蔽中断源的方式
8259A 8个中断请求线上的每一个都可以根据需要决定是否屏蔽,屏蔽是通过编程使屏蔽寄存器IMR相应位置0或置1,从而允许或禁止该位所对应的中断。
(1).普通屏蔽方式。(2).特殊屏蔽方式。4.优先级排队的方式
8259A对中断优先级的管理是中断管理的核心问题。(1).全嵌套方式(2).特殊全嵌套方式(3).优先权自动循环方式(4).优先权特殊自动循环方式 5.中断结束方式(1).自动中断结束方式。(2).普通中断结束方式。(3).特殊中断结束方式。
第二篇:青岛理工嵌入式操作系统重点总结
1.磁盘挂载步骤
命令:mount[选项][类型] 步骤:1.确认是否为Linux可以识别的文件系统。
2.确定设备的名称,可通过使用命令“fdisk-l”查看。
3.必须确定挂载点已经存在,也就是在/mnt下的相应子目录已经存在 4.进行挂载,使用完后可用umount卸载 2.shell脚本三个步骤 3.shellpot概念和任务 4.中断系统调用的是硬中断。5.中断处理处理程序分为哪两部分,上半部:功能是“登记中断”。当一个中断发生时,他就把设备驱动程序中中断例程 的下半部挂到该设备的下半部执行队列中去,然后就等待新的中断的到来。上半部是不可中断的
下半部:功能是查看设备以获得产生中断的时间信息,并根据这些信息(一般通过读设备上的寄存器得来的)进行相应的处理。下半部是可中断的。6.信号与信号量的概念,程序和进程的概念。
程序:是存放在磁盘文件中的可执行文件,是机器代码指令和数据的集合,不能独立运行
进程:资源分配和独立运行的基本单位。
信号:信号是软件中断,信号机制是Unix系统中最为古老的进程之间的通信机制,用于在一个或者多个进程之间传递异步信号。
信号量:信号量是进程通信处理同步互斥地机制,它是在多线程环境下使用的一种同步工具,负责协调各个线程,以保证他们能够正确、合理的使用公共资源。7.Linux进程的五种状态
8.什么是管道,管道的分类(匿名管道的系统创建调用
管道的)
管道:是在内存中创建一个分享文件,使通信双方利用这个文件进行信息传递,这个作为传递信息的共享文件就是管道
分类:匿名管道:匿名管道没有名字,只能提供给进程家族中的父子进程间通信使用。
命名管道:FIFO(先进先出),是一个能在互不相关进程之间传送数据的特殊文件。他是在实际文件系统的基础上实现的一种通信机制
9.gcc编译的四个阶段,那四个阶段。预处理,编译,汇编,链接
10.编写一个 makefile 文件
11.创建子进程的系统调用,fork函数,三个返回值代表什么意思 int fork(): 返回值为0 创建成功,从子进程返回
返回值>0
创建成功,从父进程返回,其值为子进程的pid号 返回值=-1 创建失败
12.编写守护进程的步骤,五个步骤对应的代码,内核编译的三个步骤,每一步使用的命令。守护进程步骤:1.创建子进程,父进程退出
if(pid>0)exit(0);else if(pid<0)return-1;
2.调用setsid以创建一个新的会话,并担任该会话的组长
setsid();
3.改变当前目录为根目录
chdir(“/”);
4.重设文件权限掩码 umask(0);
5.关闭不再需要的文件描述符 for(i=0;i 15.Linux设备驱动程序分为那几部分,每一部分的功能。 程序题 1.分析程序的输出结果,exit,wait返回值,参数 信号的发送和捕获。 设置时钟的alarm()。 共享内存的创建,链接,共享。。 消息队列:7-6-1 课本上 第一章 mpumcu 嵌入式系统的组成 posix是什么标准 linux内核版本号,三位 11页主分区,扩展分区,逻辑分区。 什么叫挂载? 挂载:在Linux中把每一个分区和某一个目录对应,以后对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一。这个把分区和目录对应的过程就称为挂载。12页交换分区grub引导器。是一种引导装入器,他负责装入内核并引导Linux系统,位于硬盘的起始部分。 22页文件的类型和属性(四种) 23页文件类型。普通文件,目录文件,链接文件,设备文件 文件属性 r:可读 w:可写 x:可执行 文件用户级别:文件拥有者u,所属的用户组g,系统其他用户o 25页Linux的结构 bin boot 第一位 etc home lib(动态链接库)挂载。。proc root用户 user var 第二章 30-54所有的命令 用户切换su 普通用户--超级用户 切换 用户管理(31页) 系统管理命令(33页) shutdown kill clear 磁盘相关的命令 磁盘挂载 步骤 文件目录相关(37页47) 改变文件目录-cd 显示当前目录-pwd 列出目录内容 -ls(-a)创建目录149进程通信同步互斥的概念 进程间通信就是在不同进程之间传播或交换信息。 互斥:就是指某一资源同时只允许一个访问者对其进行访问,即访问是无序的。同步:是指在互斥的基础上,通过其他机制实现访问者对资源的有序访问。 152信号量的概念,信号区别(用来解决进程同步与互斥问题的机制)信号:信号是软件中断,信号机制是Unix系统中最为古老的进程之间的通信机制,用于在一个或者多个进程之间传递异步信号。 信号量:信号量是进程通信处理同步互斥的机制,它是在多线程环境下使用的一种同步工具,负责协调各个线程,以保证他们能够正确、合理的使用公共资源。169管道的定义分类,创建匿名管道的系统调用 管道:是在内存中创建一个分享文件,使通信双方利用这个文件进行信息传递,这个作为传递信息的共享文件就是管道 分类:匿名管道:匿名管道没有名字,只能提供给进程家族中的父子进程间通信使用。 命名管道:FIFO(先进先出),是一个能在互不相关进程之间传送数据的特殊文件。他是在实际文件系统的基础上实现的一种通信机制 171读写规则 系统对信号三种处理方式: 159映射调用了什么函数mmap 161共享内存的打开和建立 164四个函数对应程序。消息队列 消息队列:消息队列是系统定义的内存块,用于临时存储消息。消息队列就是一个消息的链表。可以把消息看做一个记录,具有特定的格式及特定的优先级。96存储管理。使用虚拟内存的优势: 使用虚拟内存的优势:使计算机可以操纵更大的地址空间,还可以使系统中的每一个进程都有自己的虚拟地址空间。97什么叫内存映像。第三段四行。内存映像:进程的映像和虚拟进程空间的连接称为内存影像 102根据读的方式分为两种,写的方式分为两种。高速缓存 贯穿读出式 旁路读出式 写穿式回写式 106页分配器的伙伴算法 111slab根据对象的类型分类不同的cache 114-kmalloc 申请和是放假(较小较大)内存分配函数 118什么用于将高。。 227输入输出系统的基本功能。存储器统一编址和独立编址 功能一:隐藏物理设备的细节 功能二:与设备的无关性 功能三:提高处理器与I/O设备的利用率 功能四:对I/O设备进行控制 功能五:能确保对设备的正常共享 功能六:错误处理 235linux设备驱动程序分为哪几部分,每一部分的功能。自动配置和初始化子程序,负责检测所要驱动的硬件设备是否存在和是否能正常工作。如果该设备正常,则对这个设备及其相关的、设备驱动程序需要的软件状态进行初始化。这部分驱动程序只有在初始化时被调用一次。 完成用户进程请求的程序,即永恒进程对设备的操控部分 设备中断服务程序,通常分为上半部和下半部 200超级块是文件的第一块,主要包含文件系统的具体信息。201 vfs虚拟文件系统是系统对外的一个接口。仅存在于就内存。207文件控制块是文件存在的标志。唯一。 操作系统是管理系统资源、控制程序执行、改善人机界面、提供各种服务、合理组织计算机工作流程和为用户有效使用计算机提供良好运行环境的一种系统软件。 资源管理1资源复用(空分复用共享,时分复用共享)2资源虚化3资源抽象4组合使用抽象和虚化技术 1)进程抽象(2)虚存抽象(3)文件抽象(4)其他资源抽象 操作系统的作用:(1)OS作为用户接口和公共服务程序:(2)OS作为扩展计算机或者虚拟计算机(2)OS作为资源的管理者和控制者(4)OS作为程序执行的控制着和管理者 从资源管理的角度,看操作系统具有六项主要功能:处理器管理,存储管理,设备管理,文件管理,网络与通信管理,用户接口 操作系统的主要特性:并发性,共享性,异步性 并发性:指两个或两个以上事件或活动在同一时间间隔内发生。 并行性:指两个或两个以上事件或活动在同一时刻发生。关系:并行活动一定是并发的,反之并发活动未必是并行的,并行性是并发性的特例,并发性是并行性的扩展。共享性:指操作系统中的资源可被多个并发执行的进程共同使用,而不是被其中某一个程序所独占。 1,透明资源共享:必须妥善解决的问题有资源隔离,授权访问2,显式资源共享:独占资源是指同一时间段内只允许一个进程访问的资源 异步性:由计算机系统中的资源有限而进程众多,每个进程的执行并非连贯的,而是以“走走停停”的方式向前推进。多道程序设计是指允许多个程序同时进入一个计算机系统的主存储器并启动进行交替计算的方法。从宏观上看,多道程序并发运行,它们都处于运行过程中,但都未运行结束。从微观上看,多道程序的执行是串行的,各道程序轮流占用CPU,交替地执行。1,提高CPU、主存和设备的利用率,2,提高系统的吞吐率,是单位时间内完成的作业数增加。3充分发挥计算机系统部件的并行性 操作系统可分为三种基本类型: 批处理操作系统 分时操作系统.实时操作系统 通用操作系统:如果某个操作系统兼具批处理、分时、实时处理的全部或两种功能,则为通用OS 操作系统为用户提供两种调用其服务和功能的接口:程序接口:允许运行程序调用操作系统的服务和功能。许多操作系统的程序接口由一组系统调用(System Call))组成,用户程序使用“系统调用”就可获得操作系统的底层服务,使用或访问系统的各种软硬件资源。操作接口:操作系统为用户提供的操作控制计算机工作和提供服务手段的集合,通常有操作控制命令、图形操作界面、以及批处理系统提供的作业控制语言等实现手段。内核是一组程序模块,作为可信软件来支持进程并发执行的基本功能和基本操作,通常驻留在内核空间,运行于核心态,具有访问硬件设备和所有主存空间的权限,是仅有的能执行特权指令的程序。分类可分为微内核和单内核两种类型。功能1)资源抽象2)资源分配3)资源共享。 属性1)内核是由中断驱动的2)内核的执行是连续的3)内核在屏蔽中断状态下执行4)内核可以使用特权指令。从操作系统的运行方式来看,可分成:独立运行的内核模型、在应用进程内执行的模型和作为独立进程运行的模型。处理器流可以分作以下四类:单指令流单数据流(SISD):传统的计算机系统。单指令流多数据流(SIMD)和多指令流多数据流(MIMD)都属于并行计算机!多指令流单数据流(MISD):在研究中 处理器现场:处理器包括一组寄存器,用于存放数据、变量和中间结果,这组寄存器所存储的信息与程序的执行有很大关系,构成了处理器现场。 特权指令是指只能提供给操作系统的核心程序使用的指令,如启动I/O设备、设置时钟、控制中断屏蔽位、清内存、建立存储键,加载PSW(程序状态字)等。 非特权指令:指供应用程序使用的、权限较低的指令。处理器状态分类:核心状态和用户状态。 核心态具体的权限有:1,CPUU运行可信软件2,硬件执行全部机器指令3,可以访问所有内存单元和系统资源4,具体改变处理器状态的能力。 用户态具有的权限有:1,CPU运行非可信软件2,程序无法执行特权指令3,访问权限仅限于当前进程的地址空间4,不具有改变处理器状态的能力 处理器状态之间的转换:(1)用户状态向核心状态的转换:一是程序请求操作系统服务,执行一条系统调用;二是程序运行时,产生了一个中断(或者异常)事件,运行程序被中断,让中断处理程序工作。这两种情况都是通过中断机构发生的。中断(异常)是用户态到核心态转换的唯一途径。(2)核心状态向用户状态的转换 :每台计算机通常会提供一条特权指令称作加载程序状态字LPSW(Load PSW),用来实现操作系统向用户程序的转换。加载程序状态字指令的作用:把哪个程序的程序状态字加载到程序状态字寄存器中,就意味着该程序获得CPU控制权执行。 中断是指程序执行过程中,遇到急需处理的某个事件时,暂时中止CPU上现行程序的运行,转而执行相应的事件处理程序执行的过程,待处理完毕之后再返回断点(继续执行)或者调度其他程序执行。中断源是引起中断的事件。中断装置是发现中断源并产生中断的硬件。 中断源分类:1.从中断事件的性质和激活的手段来分,可以分成两类:强迫性中断事件和自愿性中断事件。2按照中断信号的来源和实现手段来分:可分为硬中断和软中断两类。硬中断可以分为外中断和内中断。 中断/异常响应需要顺序执行的四个步骤: 发现中断源,保护现场,转向中断/异常事件的处理程序,恢复现场。 进程(process)是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。 进程的属性(进程与程序比较):(1)结构性(2)共享性(3)动态性(4)独立性(5)制约性(6)并发性 三态模型:运行态,就绪态,等待态 五态模型:新建态,终止态,运行态,就绪态,等待态 进程映像的组成进程组成主要包括:进程控制块,进程程序块,进程核心栈,进程数据块 进程控制块三类信息:标识信息、现场信息、控制信息允许发生进程上下文切换的四种情况 :(1)当进程进入等待态时;(2)当进程完成其系统调用返回用户态,但不是最有资格获得CPU时;(3)当内核完成中断处理,进程返回用户态但不是最有资格获得CPU时;(4)当进程执行结束时。模式切换和进程切换的联系与区别:1,模式切换不一定会引起进程状态的转换,也不一定引起进程切换。,2,在完成系统调用服务或者中断处理之后,可通过模式切换来恢复被中断进程的运行。 进程控制原语:1.进程创建 2.进程的撤销 3.进程的阻塞和唤醒 4.进程的挂起和激活 线程的实现分三类:1,用户级线程2内核级线程 3混合式线程 处理器调度可分为三个级别:高级调度、中级调度和低级调度 作业和进程的关系: •作业是任务实体,进程是完成任务的执行实体;没有作业任务,进程无事可干,没有进程,作业任务没法完成。•作业概念更多地用在批处理操作系统,而进程则可以用在各种多道程序设计系统 资源竞争产生两个控制问题:一个是死锁(Deadlock)问题,就是一组进程如果都获得了部分资源,还想要得到其他进程所占用的资源,最终所有进程都将陷入死锁。一个是饥饿(Starvation)问题,是指一个进程由于其它进程总是优先于它而被无限期拖延。既要解决饥饿问题,又要解决死锁问题。解决饥饿问题的最简单策略是FCFS资源分配策略。 临界区的调度原则 :一次至多允许一个进程进入临界区内;一个进程不能无限地停留在临界区内;一个进程不能无限地等待进入临界区; 管程:属性共享性:安全性:互斥性: 进程通信分类:1)信号(signal)通信机制;2)管道(pipeline)通信机制;3)消息传递(message passing)通信机制;4)信号量(semaphore)通信机制5)共享主存(shared memory)通信机制 死锁的定义:如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的事件,而无限期陷入僵持的局面称为(这一组进程)发生了死锁。 产生死锁的因素:系统拥有的资源数量。与资源分配策略。进程对资源的使用。并发进程的推进顺序。 产生死锁的四个必要条件:互斥条件:进程互斥使用资源。占有和等待条件(部分分配条件):进程在请求资源得不到满足而等待时,不释放已占有资源。不剥夺条件:已占有的资源只能由属主释放,不允许其他进程强制剥夺。循环等待条件(环路条件):存在一组循环等待链,其中每一个进程都在链中等待下一个进程所持有的资源,造成种族进程处于永远等待状态。 文件系统是操作系统中负责存取和管理信息的模块,文件不但反映了用户概念中的逻辑结构,而且和存放它的辅助存储器的存储结构紧密相关。一个文件必须从逻辑文件和物理文件两个侧面来观察它。逻辑结构,即记录及其逻辑关系,数据独立于物理环境; 物理结构,数据被文件系统按照某种规则排列和存放到物理存储介质上。 顺序存取:按记录顺序进行读/写操作的存取方法.主要用于磁带文件以及磁盘上的顺序文件.直接存取:以任意次序直接读写某个记录.用户提供相对块号给操作系统,绝对块号由系统换算得到.索引存取:文件专门有一个按记录关键字有序的索引表,用户通过查找索引表定位并读出记录.文件系统给每个文件建立唯一的管理数据结构,即文件控制块(FCB),也叫文件目录项。 文件目录的基本功能是将文件名转变成此文件信息在磁盘上的物理位置。为了加快文件的查找速度,通常把FCB集中起来进行管理,组成文件目录。 目录中的文件名和管理信息分开,后者单独组成数据结构,称索引节点(i-node) 块是存储介质上连续信息所组成的一个区域,也叫做物理记录。块是主存储器和辅助存储设备进行信息交换的物理单位,每次总是交换一块或整数块信息 文件的逻辑结构分两种形式:流式文件,记录式文件 流式文件指文件内的数据不再组成记录,只是依次的一串信息集合,可以看成是只有一个记录的记录式文件 记录式文件是一种有结构的文件,包含若干逻辑记录,逻辑记录是文件中按信息在逻辑上的独立含意划分的信息单位。顺序文件(连续文件)一个文件中逻辑上连续的信息存放到存储介质的依次相邻的块上便形成顺序文件。连接文件使用连接字,又叫指针来表示文件中各个记录之间的关系.第一块文件信息的物理地址由文件目录给出,每一块的连接字指出文件下一个物理块位置 直接文件(哈希文件)记录的关键字与其地址间可通过某种方式建立对应关系,利用这种关系实现存取的文件叫直接文件。 索引文件的优点:不要求物理块连续,便于直接存取,便于文件 的增、删、改。缺点:增加了索引表的空间开销和查找时间.文件的静态共享:允许一个文件同时属于多个目录,但实际上文件仅有一处物理存储,这种文件在物理上一处存储,从多个目录可到达该文件的结构称为文件链接。要实现静态链接,只要不同目录的索引结点i-node号,指定为同一文件的索引结点即可。文件的动态共享:是系统中不同的用户进程或同一用户的不同进程并发地访问同一文件。共享关系只有当用户进程存在时才可能出现,一旦用户的进程消亡,其共享关系也就自动消失。 外围设备分为两类:存储型设备和输入输出型设备.I/O系统:I/O设备及其接口线路、控制部件、通道和管理软件的总称。I/O设备可以划分为输入型、输出型和存储型外围设备三类。按照I/O信息交换的单位, I/O设备可分为字符设备和块设备。 存储型外围设备可以划分为顺序存取存储设备和直接存取存储设备。顺序存取存储设备严格依赖信息的物理位置进行 定位和读写,如磁带机。直接存取存储设备的特点是存取任何一个物理块所需的时间几乎不依赖于此信息的位置,如磁盘。 I/O设备的4种控制方式分类:轮询方式:轮询方式又称程序直接控制方式,特点:CPU不停测试设备状态,直到设备准备就绪,开始传输数据;中断方式:启动I/O后,不必查询I/O是否就绪,继续执行现行程序。特点:不需要CPU做忙式测试,直到设备准备就绪之后产生中断。DMA方式:I/O设备能直接与主存交换数据而不占用CPU,其利用率还可提高。特点:负责数据的交换,CPU不必参与;从设备读数据,存入缓冲寄存器,这个过程与CPU无关;与内存交换数据时,是一次交换一块数据;与内存进行数据交换时,需要抢占内存总线(周期窃取),此时CPU必须等待。通道方式:为获得CPU和外围设备间更高的并行工作能力,引入了自成独立体系的通道结构。特点:通道负责管理设备与内存之间的数据传送的一切工作;数据传输完毕后,产生中断,CPU执行中断处理;数据传输中如果出错,产生中断,CPU执行中断处理。 I/O设备设备控制器或适配器,机械部件则是设备本身。操作系统基本上与控制器打交道,而非设备本身。I/O软件总体设计目标:高效率。通用性。I/O软件组织成四个层次: I/O中断处理程序。设备驱动程序。与设备无关的操作系统I/O软件。用户层I/O软件.笼统地说,设备驱动程序的功能是从独立于设备的软件中接收并执行 I/O请求。设备驱动程序主要包括三部分功能:1设备初始化2执行设备驱动例程3执行中断处理例程。SPOOLing又称为假脱机操作.Spooling技术就是利用一类物理设备模拟另一类物理设备的技术,是使独占使用的设备变成可共享设备的技术.为什么需要缓冲技术?改善中央处理器与外围设备之间速度不匹配的矛盾,协调逻辑记录大小与物理记录大小不一致,提高CPU和I/O设备的并行性。 提高磁盘I/O速度的方法:提前读:在读当前块的同时,将下一个盘块中的数据也读入缓冲区。延迟写:本应写回磁盘的缓冲区中的数据不久之后可能还会再被访问,因而不立即将其写回磁盘。虚拟盘:利用内存空间仿真磁盘,又称为RAM盘。虚拟盘中的数据在掉电或系统重启动以及发生故障时会丢失。 设备独立性带来的好处:用户与物理的外围设备无关,系统增减或变更外围设备时程序不必修改;易于对付输入输出设备的故障。 为了存放从输入设备输入的信息以及作业执行的结果,系统在磁盘上开辟两个大的存储空间,称为井.存储器的层次:寄存器、高速缓存、主存储器,磁盘,磁带。内存是程序运行的主要场所,是进程映像(进程实体)存在的主要位置。 把程序和数据的逻辑地址转换为物理地址的工作称为地址转换或重定位.一种方式是在程序装入时根据程序所装入的内存位置由装入程序依据重定位信息一次性将程序中所有的逻辑地址都转变为物理地址,称为静态重定位,不允许程序在内存中移动位置。另一种方式是在程序执行过程中,地址转换工作穿插在指令执行的过程中,每执行一条指令,CPU对指令中涉及的逻辑地址进行转换,称为动态重定位,允许程序在内存中移动位置。动态重定位必须借助于硬件的地址转换机构实现。 页框:物理地址分成大小相等的许多区域,每个区域叫做一块(或者一个页框page frame)。 页面:逻辑地址分成大小相等的区域,每个区域的大小与块的大小相等,叫做一个页面(page)。 逻辑地址形式:分页式存储器的逻辑地址由两部分组成:页号和单元号(页内位移)。页表:操作系统需为每个作业建立一张页表,该表登记该作业的页号—物理块号对应信息,系统通过页表可以准确访问内存中属于一个作业的所有页面.所以页表实际上用于完成地址变换.虚拟存储器的定义:在具有层次结构存储器的计算机系统中,采用自动实现部分装入和部分对换功能,为用户提供一个比物理内存容量大得多的,可寻址的一种“内存储器”。假定作业p共计n页,系统分配给它的主存块只有m块(1≤m≤n)。如果作业p在运行中成功的访问次数为s,不成功的访问次数为F,则总的访问次数A为:A = S + F又定义:f = F / A称f为缺页中断率。影响缺页中断率f的因素有:1)主存页框数。2)页面大小。3)页面替换算法。4)程序特性。最佳页面算法(OPT)、先进先出页面淘汰算法(FIFO)、最近最久未使用页面淘汰算法(LRU)、外围设备分为两类:存储型设备和输入输出型设备。设备管理具有以下功能1外围设备中断处理。2缓冲区管理。3外围设备的分配 4外围设备驱动调度。5虚拟设备及其实现 存储型外围设备可以划分为顺序存取存储设备和直接存取存储设备。顺序存取存储设备严格依赖信息的物理位置进行定位和读写,如磁带机直接存取存储设备的特点是存取任何一个物理块所需的时间几乎不依赖于此信息的位置,如磁盘。 有三个并发进程:R 负责从输入设备读入信息块,M 负责对信息块加工处理;P 负责打印输出信息块。今提供; l)一个缓冲区,可放置K 个信息块; 2)二个缓冲区,每个可放置K 个信息块; 试用信号量和P、V 操作写出三个进程正确工作的流程。答:1 一个缓冲区:cobegin Semaphore sread,smanager,sprint;item a[K];int rr,rm,rp;item x; sread=k;smanager=0;sprint=0;rr=rm=rp=0;process PR() {while(true){ P(sread);a[rr]=x; rr=(rr+1)%K;V(smanager);} } process PM() { while(true){ P(smanager);x=a[rm];rr=(rr+1)%K;V(sprint);} } process PP() {while(true){ P(sprint);x=a[rp]; rr=(rr+1)%K;V(sread);} } Coend (2)两个缓冲区: semaphore swrite1, sread1, swrite2, sread2;Swrite1=swrite2=1;sread1 =sread2=0; item A1[k],A2[k];read1=write1=read2=write2=0;cobegin process PR { while(true){ P(swrite1);A1[write1]=x; write1=(write1+1)%K; V(sread1);} }process PM { while(true) { P(sread1); x=A1[read1]; read1=(read1+1)%K; V(swrite1);P(swrite2) A2[write2]=x; write2=(write+1)%K;V(sread2);}}process PP { while(true) { P(sread2);x=A2[read2]; read2=(read2+1)%K;V(swrite2);}}coend 设公共汽车上,司机和售票员的活动分别如下:司机的活动:启动车辆:正常行车;到站停车。售票员的活动:关车门;售票;开车门。在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用信号量和P、V 操作实现它们的同步。 答:在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开门让乘客上下车。因此,司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步。应设置两个信号量:S1、S2;S1 表示是否允许司机启动汽车(其初值为0);S2 表示是否允许售票员开门(其初值为0)。用P、v 原语描述如下: var S1 , S2 : semaphore;S1=0;S2=0; cobegin{ driver();busman();}coenddriver()begin while(1){ P(S1) 启动车辆;正常行车;到站停车;V(S2);}end busman()begin while(1){ 关车门;V(51)售票;P(S2)开车门;上下乘客; }end 一条公路两次横跨运河,两个运河桥相距100 米,均带有闸门,以供船只通过运河桥。运河和公路的交通均是单方向的。运河上的运输由驳船担负。在一驳船接近吊桥A 时就拉汽笛警告,若桥上无车辆,吊桥就吊起,直到驳船尾P 通过此桥为止。对吊桥B 也按同样次序处理。一般典型的驳船长度为200 米,当它在河上航行时是否会产生死锁?若会,说明理由,请提出一个防止死锁的办法,并用信号量来实现驳船的同步。 答:当汽车或驳船未同时到达桥A 时,以任何次序前进不会产生死锁。但假设汽车驶过了桥A,它在继续前进,并且在驶过桥B 之前,此时有驳船并快速地通过了桥A,驳船头到达桥B,这时会发生死锁。因为若吊起吊桥B 让驳船通过,则汽车无法通过桥B ;若不吊起吊桥B 让汽车通过,则驳船无法通过桥B。可用两个信号量同步车、船通过两座桥的动作。var Sa , Sb : semaphore;Sa:=Sb:=1;cobegin { process 驳船 beginP(Sa);P(Sb); 船过桥A、B;V(Sa);V(Sb);end process 汽车 beginP(Sa);P(Sb); 车过桥A、B;V(Sa);V(Sb);end }coend 假定磁盘有200 个柱面,编号O-199,当前存取臂的位置在143 号柱面上,并刚刚完成了125 号柱面的服务请求,如果请求队列的先后顺序是:86 , 147 , 91 , 177 , 94 , 150 , 102 , 175 , 130 ;试问:为完成上述请求,下列算法存取臂移动的总量是多少?并算出存取臂移动的顺序。(1)先来先服务算法FCFS; (2)最短查找时间优先算法SSTF :(3)扫描算法SCAN。(4)电梯调度。答:(l)先来先服务算法FCFS 为565,依次为143-86-147-91-177-94-150-102-175-130。(2)最短查找时间优先算法SSTF 为162,依次为143-147-150-130-102-94-91-86-175-177。(3)扫描算法SCAN 为169,依次为143-147-150-175-177-199-130-102-94-91-86。(4)电梯调度为125,依次为143-147-150-175-177-130-102-94-91-86。 先来先服务算法 FCFS策略:按照作业进入系统的先后次序来挑选作业,先进入系统的作业优先被挑选。这是一种非剥夺式算法。 最短作业优先算法SJF:以进入系统的作业所要求的CPU时间为标准,总选取估计计算时间最短的作业投入运行。这是一种非剥夺式调度算法 例: 作业所需CPU 9 作业作业作业作业 •SJF的作业调度顺序为作业2、4、1、3,平均作业周转时间T =(4+12+21+31)/4= 17 平均带权作业周转时间W=(4/4+12/8+21/9+31/10)/4 = 1.98 •如果对它们施行FCFS调度算法,平均作业周转时间T =(9+13+23+31)/4 = 19 平均带权作业周转时间W =(9/9+13/4+23/10+31/8)/4 = 2.51 最短剩余时间优先SRTF算法 把SJF算法改为抢占式的调度算法:当一个作业正在执行时,一个新作业进入就绪状态,如果新作业需要的CPU时间比当前正在执行的作业剩余下来还需的CPU时间短,SRTF强行赶走当前正在执行作业 优先级调度算法 这种算法是根据确定的优先级来选取进程/线程,每次总是 选择优先级最高的作业。 什么是OS,OS有哪几个特征?其最基本的特征是什么? 答:操作系统是为了达到方便用户和提高利用率的目的而设计的,控制和管理计算机硬件和软件资源,合理的组织计算机工作流程的程序的集合它具有并发,共享,虚拟,异步性四个基本特征。其中最基本的特征为并发性 2什么是进程及与程序的区别与联系,为什么PCB是进程存在的唯一标志? 进程是程序的一次执行过程,是系统进行资源分配和调度的一个独立单位。 区别:(1)进程是动态的,程序是静态的。(2)进程具有并发性,而程序没有(3)进程是资源分配和处理机调度的独立单位,其并发性受系统制约(4)一个程序多次执行,对应多个进程,不同的进程可以包含同一程序PCB:因为在进程的整个生命期中,系统总是通过PCB对进程进行控制的3处理机三级调度分别完成什么工作? (1)高级调度:就是作业调度,用于决定把外存上处于后备队列中的哪些作业调入内存,并为它们创建进程,分配必要的资源,然后,再将新创建的进程排在就绪队列上,准备执行 (2)低级调度:就是进程调度,它决定就绪队列中的哪个进程将获得处理机,然后由分派程序执行把处理机分配给该进程的操作 (3)中级调度:实际上就是存储器管理中的对换功能试说明引起进程调度的时机是什么? (1)进程完毕(2)时间片用完(3)I/O请求发生某个事件(4)原语:wait操作,阻塞(5)高优先者进入 5什么是临界资源和临界区? 一次仅允许一个进程访问的资源称为临界资源。访问临界资源的代码段称为临街区 6试修改下面生产者---消费问题中,如果将两个wait操作即wait(full)和wati(mutex)互换 位置,或者将signal(mutex)与signal(full)互换位置,结果会如何? (1)wait(full)和wait(mutex)互换位置后,因为mutex在这儿是全局变量,执行完wait(mutex),则mutex赋值为0,倘若full 也为0,则该生产者进程就会转入进程链表进行等待,而生产者进程会因全局变量mutex为0 而进行等待,使full 始终为0,这样就形成了死锁.(2)而signal(mutex)与signal(full)互换位置后,从逻辑上来说应该是一样的.7什么是死锁?死锁产生的有哪些 死锁是因多个进程因竞争资源而造成的一种僵局(1)互斥条件:一个资源每次只能被一个进程使用。(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。 (3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4)环路等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。同步机制应遵循的基本准则是什么? (1)空闲让进(2)忙则等待(3)有限等待(4)让权等待.程序有几种连接方式 (1)静态链接方式(2)装入时动态链接(3)运行时动态链接 10什么是动态重定位方式及为什么要引入动态重定位方式及如何实现? 程序和数据装入内存时需对目标程序中的地址进行修改。这种把逻辑地址转变为内存的物理地址的过程叫重定位 11什么是分页,什么是分段,在存储管理中两者的区别 (1)分页是将一个进程的逻辑地址空间分成若干大小相等的部分,每一部分称作页面,内存划分成与页面大小相等的物理块,进程的任何一页可放入内存的任何一个物理块中,段是信息的逻辑单位,含有一组意义相对完整的信息,更好的来满足用户的需要。 (2)分段是一组逻辑信息的集合,即一个作业中相对独立的部分。多个段在内存中占有离 散的内存单元,对每个段,在内存占有一连续的内存空间,其内存的分配与回收同可变分区的内存分配与回收办法 分页与分段的主要区别是? (1)页是信息的物理单位,分页是为了实现离散分配方式,以消减内存的外零头,提高内存的利用率(2)页的大小固定,并且有系统决定,而段的长度不固定决定于用户所编写的程序(3)分页作业的地址空间是一维的,段是二维的。 12动态分区存储管理中内存的回收方式 13.什么是对换,对换的分类及主要用途在进程换出时应遵循什么原则 对换是把内存中暂时不能运行的进程或者暂时不用的程序和数据调出到外存上,以便腾出足够的内存空间,再把因具备运行条件的进程或者进程所需要的程序或数据调入内存。 分类:(1)整体对换(进程对换):以整个进程为单位(2)页面对换(分段对换/部分对换):以页和段为单位 规则:内存空间不够用才换出。系统处于阻塞状态,且优先级最低的进程最先换出。若换入:系统处于就绪状态,且优先级最高的进程最先换入,直至无可换入的进程为止。 14.什么是虚拟存储器虚拟存储器具有哪些特性,最基本的特性是什么?虚拟存储器的容量受哪两方面的限制? 虚拟存储器:是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储器系统。 特征:(1)离散性(最基本的特征)(2)多次性(3)对换性(4)虚拟性 虚拟存储器的容量主要受指令中表示地址的字长和外存的容量的限制。 15.在没有快表的分页存储管理中取一条指令需访问几次内存及访问内存的目的,及具有快表的分页存储管理系统的地址变换过程。 两次。第一次:访问内存中的页表,从中找到页的物理块号,再将块号与页内偏移量W拼接,形成物理地址。第二次:从第一次所得的物理地址中获得所需数据 地址变换过程:CPU给出有效地址后,地址变换机构将页号与快表中的所有页号进行比较,若有与此相匹配的页号,则表示所访问的页在快表中,从中读出物理块号与页内地址相拼接,得到物理地址;若访问的页不在快表中,则要访问在内存中的页表,从页表中读出物理块号与页内地址相拼接,得到物理地址,同时,还应将此页表项写入快表中,若此时快表已满,则OS必须找到一个老的并且被认为不再需要的页表项将它换出。 16.什么是紧凑技术及为什么要引入 紧凑:把原来多个分散的小分区拼接成一个大分区的方法 引入:提高内存的利用率,让大容量的作业可以装入并且减少零头或碎片 17程序的局部性原理是什么局限性的两个主要表现方面 局部性原理:(1)程序执行时,除少部分转移和过程调用指令外,大多数条件下任是顺序执行的(2)过程调用将会使程序的执行轨迹由一部分区域转至另一部分区域,但经验就看出过程调用的深度在大多数情况下不会超过5(3)程序中存在许多循环结构,这些虽然只能由少数指令构成但它们将多次执行(4)程序中还包括许多对数据结构的处理 主要表现在:(1)时间局限性(2)空间局限性 18.什么是spooling技术spooling系统有哪些组成Spooling技术是对脱机输入,输出系统的模拟。 组成:(1)输入井和输出井(2)输出缓冲区和输入缓冲区(3)输入进程SPi和输出进程SPo(4)请求打印队列 特点:(1)提高了I/O的速度(2)将独占设备改为共享设备(3)实现了虚拟设备功能 第一部分概述 一、导论 1.操作系统做什么 ① 冯诺依曼体系结构 ② OS角色:对上:控制程序正确执行,使用方便;对下:资源分配器 ③ 核心功能:进程管理,内存管理,文件管理,输入输出,保护和安全 2.计算机系统组织 ① 中断 ② 存储结构:寄存器→高速缓存→主存→电子磁盘→光盘→磁带 ③ I/O结构:I/O的同步、异步;慢速设备(中断)快速设备(DMA) 3.操作系统结构:多道(使CPU总有一个任务执行)、分时(高频率切换任务) 4.进程管理 ① 进程有其生命周期,进程是执行中的程序 ② 管理活动:创建或删除用户或系统进程;挂起或重启进程;防死锁;提供进程 同步、通信机制 ③ 目的:使进程可以运行,相互协调不死锁 5.内存管理 ① 目标:内核健壮 ② 保护方法:独立操作模式:用户模式,内核模式;计数器定时中断防止死循环 6.存储管理 ① 解决问题:速度匹配→缓存(缓存的命中率) ② 等级问题:一致性;多处理器下各缓存的一致性 二、操作系统结构 1.操作系统服务:用户界面,程序执行,I/O操作,文件系统操作,通信,错误检测,资源分配,统计,保护和安全。 2.操作系统的用户界面:命令解释程序,图形用户界面 3.系统调用类型:进程控制,文件管理,设备管理,信息维护,通信 4.系统程序分类:文件管理,状态信息,文件修改,程序设计语言支持,程序装入和 执行,通信,系统工具,应用程序。 5.操作系统结构: ① 简单结构(MS-DOS):小空间多功能,应用程序直接操作硬件,不安全,无模块,接口和功能层次没有区分 ② 分层法:难划分,效率低,但是构造和调试简单化 ③ 微内核:包括最小的进程和内存管理以及通信,便于扩充操作系统。 ④ 模块化:动态加载模块,允许内核提供核心服务,也能动态的实现特定的功能 ⑤ 组合结构 第二部分进程管理 一、进程 1.进程的概念 ① 进程通常包括:程序计数器,栈,数据段 ② 进程状态:新建,运行,等待,就绪,终止 ③ 进程控制块PCB:进程状态,程序计数器,CPU寄存器,CPU调度信息,内存 管理信息,记账信息,I/O状态信息 ④ 2.进程调度 ① 调度队列:作业队列,就绪队列,设备队列P80 ② 调度程序:长期调度程序(作业调度程序):从作业池中选择进程,并装入内存 准备执行。短期调度程序(CPU调度程序):从准备执行的进程中选择进程,并为之分配CPU时间。中期调度程序:能将进程从内存中移出。 长短期的区别是执行频率;长期调度控制多道程序设计的程度,中期调度可以降低多道。 ③ I/O绑定进程,CPU绑定进程 ④ 上下文切换:将CPU切换到另一个进程需要保存当前进程的状态和恢复另一进 程的状态。 3.进程操作 ① 进程创程:创建新进程的执行方式(父子进程并发执行;父进程等待直到某个 或全部子进程执行完毕) 新进程地址空间(子进程是父进程的副本;子进程装入另一个新程序) 资源共享(所有/子集/不共享) ② 进程终止 父进程终止子进程的原因(子进程使用了超过它分配的资源;分配给子程序的任务不需要了;父进程结束) 4.进程间通信 ① 通信基本模型:共享内存,消息传递 ② 共享内存:消费者可能等待生产者;无限缓冲区,有限缓冲区的区别 ③ 消息传递: 命名:直接通信(对称寻址:接受者命名发送者;非对称寻址:接受者不需要命名发送者)间接通信(邮箱、端口的参与) 同步:阻塞与非阻塞(发送,接收),同步与异步 缓冲:零容量(无缓冲);有限容量、无限容量(自动缓冲) 5.客户机-服务器通信:套接字SOCKET,RPC远程调用,RMI远程方法调用 二、线程 1.概述:多线程优点:响应度高,资源共享,经济,多处理器体系结构的利用 2.多线程模型:用户层的用户线程或内核层的内核线程,用户线程受内核支持,而无 需内核管理,而内核线程由操作系统直接支持和管理,这两种方法支持多线程。① 多对一模型(效率比较高,阻塞系统调用的后果) ② 一对一模型(更好的并发功能,缺点是创建一个用户线程就需要一个内核进程)③ 多对多模型(用户可以创建任意多的线程;二级模型=多对多+一对一) 3.多线程问题 ① 系统调用fork().exex() ② 线程取消异步取消(立即终止),延迟取消(检查是否应该终止) ③ 信号处理:信号必须有一个处理程序 ④ 线程池:优点(处理请求速度快,线程数量可控制) 三、CPU调度 1.基本概念 ① CPU区间和I/O区间的概念 ② 抢占与非抢占调度的概念(发生在:一个进程从运行切换到等待、运行切换到 就绪、等待切换到就绪、以及终止,1,4非抢占,2,3抢占) 2.调度准则:CPU利用率(使CPU尽量忙),吞吐量(测量工作的方法),周转时间(从 进程提交到完成的时间),等待时间,响应时间 3.调度算法 ① 先到先服务调度FCFS(非抢占的) ② 最短作业优先调度SJF(抢占,最优算法,难知道下一CPU区间长度,用于长 期调度) ③ 最短剩余时间优先调度SRTF(强占式的SJF,适合长期调度) ④ 优先级调度(问题:无穷阻塞或饥饿,老化来解决;非抢占方式不用占用CPU 切换) ⑤ 轮转调度RR(专为分时系统设计,是可抢占的,时间片过大变为FCFS,时间片 过小等待时间段,但是切换频繁) ⑥ 多级队列调度(前台与后台的调度算法不同,RR与FCFS)? ⑦ 多级反馈队列调度 ⑧ 实时调度:硬实时(在特定硬件上保证时间),软实时:尽力而为,优先级不变,没有饥饿现象 4.算法评估 ① 确定性模型甘特图 ② 排队模型 N=入*W(N平均队列长度,W为队列的平均等待时间,入为新进程 到达队列的平均到达率) ③ 模拟 ④ 实现 四、进程同步 1. 背景:竞争条件:共享内存,共享变量 2. 临界区问题 ① 临界区解决方案:进入去,临界区,退出区,剩余区 ② 效果:互斥,有空让进,有限等待 ③ 证明:1.互斥,临界区一个时间只能有一个进程2.前进,临界区内无进程执行,那么只有那些不在剩余区内执行的进程可参加选择,这种选择不能无限延迟3.有限等待,从一个进程做出进入临界区的请求,知道该请求允许为止,其他进程允许进入其临界区的次数有上限。 ④ PETERSON算法 3. 信号量:计数信号量,二进制信号量 ① 技术信号量用于控制访问:当每个线程需要使用资源时,需要对该信号量执行 acquire()操作,当线程释放资源时,需要对该信号执行release()操作。 ② 用信号量解决同步问题 4. 管程:管程结构确保一次只有一个进程能在管程内活动 5. 经典同步问题 ① 生产者消费者问题 ② 读者写者问题 ③ 哲学家吃饭问题 五、死锁 1.死锁特征 ① 必要条件:互斥,占有并等待,非抢占,循环等待 ② 资源分配图:分配图没有环则没有死锁,有环则有死锁;有环则可能有死锁。 2.死锁预防 ① 互斥:通常不能通过否定互斥条件来预防死锁:有的资源本身就是非共享的。② 占有并等待:协议一:每个进程在执行前申请并获得所有资源;协议二,允许 进程在没有资源时才可以申请资源。协议缺点:资源利用率低,可能发生饥饿。③ 非抢占:协议:如果一个进程占有资源并申请另一个不能立即分配的资源,那 么其现在已分配的资源都可被抢占。 ④ 循环等待:对所有资源类型进行完全排序,且要求每个进程按递增顺序来申请 资源。 3.死锁避免 ① 安全状态:如果系统能按某个顺序为每个进程分配资源并能避免死锁,那么系统 状态就是安全的。 ② 单实例:资源分配图:申请边,分配边,需求边 ③ 多实例:银行家算法Available(向量),Max(矩阵),Allocation(矩阵),Need(矩 阵),4.死锁检测 ① 单实例:等待图:当且仅当等待图中有一个环时,系统存在死锁 ② 多实例:类似银行家算法 5.死锁恢复 ① 进程终止:终止所有死锁进程;一次只终止一个进程,直到取消死锁循环为止 ② 资源抢占:问题:选择一个牺牲品;回滚;饥饿 第三部分内存管理 一、内存管理 1.背景 ① 地址绑定:编译时(编译时就知道进程将在内存中的驻留地址,那么就可以生 成绝对代码),加载时(生成可重定位的代码),运行时(如果进程在执行时可以从一个内存段移到另一个内存段,那么绑定必须延迟到执行时才进行) ② 逻辑地址(CPU所生成的地址)物理地址(内存单元所看到的地址) ③ 动态加载(子程序只在调用时加载,优点不用的子程序绝不会被加载)④ 动态链接与共享库(将连接延迟到运行时) 2.交换(没看) 3.连续内存分配:单分区,多分区 4.非连续内存分配:分页(分页技术不会产生外部碎片) 5.动态存储分配问题:首次适应,最佳适应,最差适应 6.页表结构:层次页表,哈希页表,反向页表 二、虚拟内存 1.背景 ① 多道尽可能多的程序,这也是内存管理的目标 ② 虚拟内存好处:可以运行比物理内存大的程序;更快的启动和响应(载入更快); 更多的多道;更容易的共享文件盒地址空间;更少的输入输出。 2.按需调页:在需要时才调入页 ① 有效位-无效位来来确定页是否在内存 ② 有帧就加入,无帧就换页,页错误处理流程:检查内部表确定引用是否合法→ 非法则终止,合法则调入→找到空闲帧,装入内存→修改内部表→重启指令 ③ 按需调页的有效访问时间:effective access time=(1-p)*ma+p*处理页错误的时间 3.页面置换(引用串) ① FIFO 先入先出 ② 最优算法:向后看,换页的时候看内存中哪个页最晚用;是所有算法中产生页 错误最低的算法;问题:需要引用串的未来知识 ③ LRU最近最少使用算法:往前看,内存中哪页在列表序列中离的最远,无Belady 异常 ④ 算法实现:计数器(最近最少使用:换计数器值最小的)代价大:系统级,可 能溢出,一定会写全表 页码堆栈:每当引用一个页,该页就从栈中删除并放在栈顶。严格实现,但是代价高。 二次机会:引用位,引用时改为1,;换页时,是1则置零,是0则换 计数算法:LFU最不经常使用,MFU最经常使用(可采用老化) 4.帧分配 ① 分配策略限制:所分配的帧不能超过可用帧的数量,大于最小需求 ② 每个进程帧的最少数量是由体系结构决定的,而最大数量帧是由可用物理内存 决定的。 ③ 当指令完成之前出现页错误,该指令必须重新执行 ④ 帧分配方法: 固定分配:平均分配、按比例分配 优先级分配:全局置换(帧数可变),局部置换(固定);全局置换算法的一个问题是进程不能控制其页错误率,但是全局置换通常会有更好的系统吞吐量,且更为常用。 5.系统颠簸 ① 颠簸产生的原因:抢帧→I/O上升→CPU使用率降低→多道继续增加→忙于换页 ② 工作集合策略防止了颠簸,并尽可能的提高了多道程序的程度,可以通过页错 误频率PFF来直接测量和控制页错误以防止颠簸。上限之上分配更多,下限之下,减少帧数 6.其他问题 ① 预调页关键问题:采用预调页的成本是否小于处理响应页错误的成本。② 页大小问题:最佳页大小的选择,大页,小页 ③ 优化程序结构 第四部分存储管理 一、文件系统接口 1.文件概念 ① 文件是逻辑外存的最小分配单元,即数据除非在文件中,否则不能写到内存中。② 文件操作:写,读,重定位,删除,截短 ③ 文件加锁:共享锁,专用锁;强制,建议文件加锁机制 2.访问方法:顺序访问,直接访问,其他方法(索引) 3.目录结构 ① 目录操作:创建文件,删除文件,遍历目录,重命名文件,跟踪文件系统 ② 评价目录结构:命名(不同文件同名),分组(同一文件不同命名) ③ 单层结构目录(命名,分组均无),双层结构目录(可命名不可分组),树状结 构(绝对,相对路径;可命名分组),无环图目录(硬链接,软链接),通用图目录 二、文件系统实现 1.文件系统结构:应用程序→逻辑文件系统→文件组织模块→基本文件系统→I/O控 制→设备 2.目录实现:线性列表(编程简单,运行费时,查找文件需要线性搜索) 哈希表(采取策略避免冲突) 3.分配方法 ① 连续分配:每个文件在磁盘上占有一组连续的块;困难时为新文件找到空间,外部碎片问题也可能很大,确定文件分配多大空间,② 链接分配:解决了连续分配的所有问题;必须顺序访问文件,指针需要空间,由于指针分配在整个磁盘,可靠性就成了一个问题。 FAT文件分配表:改善了随机访问时间,但是需要大量磁头寻道时间 ③ 索引分配:把所有指针都放在一起,构成索引块;支持直接访问,且没有外部 碎片问题,但是会浪费空间;索引块分多大是个问题 链接方案(一个索引块可以指向另一索引块构成链接) 多层索引(第一个索引块指向第二个索引块,第二个指向文件数据块) 组合方案P404 N级间接块(计算) 4.空闲空间管理:为向量(1空0满)块号码计算:(值为0的数字)*(一个字的位 数)+第一个值为1的位的偏移;链表(所有空闲的块用链表链接起来);组(将N个空闲块的地址存储在第一个空闲块中);计数()第三篇:郑州大学操作系统期末考试重点整理
第四篇:操作系统总结
第五篇:操作系统总结