• 操作系统考点荟萃


    操作系统考点荟萃
    1操作系统引论
    1.1操作系统的目标和作用
    操作系统是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
    操作系统的主要目标:方便性、有效性、可扩充性和开放性。其中方便性和有效性为最主要目标。
    操作系统的作用(3点):1.OS作为用户与计算机硬件系统之间的接口。2.OS作为计算机系统资源的管理者。3.OS实现了对计算机资源的抽象。(从系统角度和用户角度两个方面理解)

    1.2操作系统的发展过程
    这部分很重要的原因是因为它给出了一个重要的OS的特征。
    ·单道批处理系统工作方式:一批作业以脱机方式输入到磁带上,用监督程序控制使它们一个接一个的连续处理。
    ·多道批处理系统:用户所提交的作业都先存放在外存上并排成一个队列,称为“后备队列”
    由作业调度程序按一定的算法从后备队列中选择若干个作业调入内存,使它们共享CPU和系统中的各种资源

    单道和多道是指内存中有多少进程,批处理是指作业是在外存上排队(后备队列),既有作业调度也有进程调度。
    单道批处理系统特点:不能充分地利用系统资源。
    多道批处理系统特点:优点:资源利用率高、系统吞吐量大;缺点:平均周转时间长、无交互能力
    单道和多道批处理的比较:
    内存使用:单道每次一道作业、多道每次多道作业(充分利用资源)
    作业次序:单道先进先出、多道无确定次序
    操作系统是一组能够有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合。
    分时系统作用:产生原因:提供人机交互、共享主机(体现了交互性、共享性、及时性),它解决的两个关键问题:及时接受和及时处理(响应)。如何做到及时接收?(要做到及时接收多个用户键入的命令或数据,只需在系统中配置一个多路卡;要做到从终端输入的数据被依次逐条地进行处理,还需要为每个终端配置一个缓冲区,用来暂存用户键入的命令(或数据))用户请求直接送入内存,不在外存上等待,减少了在外存上等待的时间。如何做到及时响应?1.作业直接进入内存2.采用轮转运行方式。时间片轮转,每个作业分配一个时间片。(系统规定每个作业只能运行一个时间片,然后就暂停该作业的运行,并立即调度下一个作业运行)。在分时系统中有没有作业调度?没有。三级调度中只有进程调度是必须的。其它的三级调度对应了三种调度队列模型,它是根据不同的系统提出的。既有进程调度又有作业调度的只有批处理系统。分时系统的特征:多路性、独立性、及时性、交互性。
    ~实时任务的类型:周期性实时任务和非周期性实时任务;根据截止时间划分为硬实时任务和软实时任务
    实时控制系统的实时性则是以控制对象所要求的截止时间来确定的,一般为秒级和毫秒级。(可以说是必考了)
    实时系统的特征:把及时性改成实时性。针对截止时间而言的。增加可靠性。

    1.3操作系统的基本特性
    四个基本的特性:并发(同一时间间隔)、共享、虚拟和异步。并发和共享最基本特征,互为存在的条件。虚拟和异步是延申出来的。(并行是同一时刻)
    ~并发:1.OS是一个并发系统2.并发是指进程的并发3.并发和进程是现代OS最重要的概念也是OS的运行基础。
    ~共享:1。互斥共享(打印机)2.“同时”访问(磁盘文件)在一段时间只允许一个进程访问的资源被称为“临界资源”
    ~虚拟:分时或分空间
    ~异步性:进程是以人们不可预知的速度向前推进
    ~微内核结构的特征:以微内核为OS的核心,以C/S为基础,采用面向对象的程序设计方法。
    ~OS分为作业调度、进程控制、内存管理(创建进程、分配内存)
    ~程序执行的特征:顺序性、封闭性、可再现性;并发执行时的特征:间断性、失去封闭性、不可再现性
    进程:系统中能够独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成,是一个能独立运行的活动实体。进程和并发是现代操作系统中最重要的基本概念,也是操作系统运行的基础。
    进程实体等于程序(数据段+程序段)+程序控制块
    ~PCB:(进程存在的唯一标志)
    包含信息:1.进程标识符(内部标识;外部标识)2.处理机状态3.进程调度信息4.进程控制信息
    ~进程的特征:1.动态性(进程是指是进程实体的一次执行过程)2.并发性3.独立性4.异步性
    ~进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
    ~进程调用block原语阻塞自己;调用wakeup原语唤醒另一个进程
    实现资源共享的两种方式:1.互斥共享方式(在一段时间内,只允许一个进程访问资源,在一段时间内只允许一个进程访问的资源,称为临界资源);2.同时访问方式(一段时间内由多个进程“同时”访问,如磁盘设备)
    虚拟:通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为“虚拟”。可以用时分复用和空分复用实现虚拟。
    时分复用技术:提高资源利用率的根本原因在于它利用某设备为一用户服务的空闲时间,又转去为其它用户服务,使设备得到最充分的利用。包括:虚拟处理机技术和虚拟设备技术。空分复用技术:则是利用存储器的空闲空间分区域存放和运行其它的多道程序,以此提高内存的利用率。
    进程是以人们不可预知的速度向前推进的,此即进程的异步性。

    1.4操作系统的主要功能
    十分重要,反复强调。
    引入OS的主要目的:1.为多道程序的运行提供良好的运行环境2.保证多道程序能有条不紊地、高效地运行。3.并能最大程度地提高系统中各种资源的利用率。4.方便用户使用。提供:处理机管理、存储器管理、设备管理、文件管理等基本功能。还需要向用户提供方便的用户接口。
    处理机管理:在传统的多道程序系统中,处理机的分配和运行都是以进程为基本单位。
    进程控制:在设置有线程的OS中,进程控制还应包括为一个进程创建若干个线程,以提高系统的并发性。进程控制的主要功能就是为作业创建进程、撤销(终止)已经结束的进程,以及控制进程在运行过程中的状态转换。
    进程同步:主要任务是为多个进程(含线程)的运行进行协调。常用的协调方式1.进程互斥方式2.进程同步方式。最常用的机制就是信号量机制。
    进程通信:当相互合作的进程处于同一计算机系统时,通常它们之间采用直接通信方式,即由源进程利用发送命令直接将消息message挂到目标进程的消息队列上,以后目标进程利用接收命令从其消息队列中取出消息。
    调度:在传统OS中,调度包括作业调度(为作业分配资源调入内存建立进程插入就绪队列)和进程调度(为进程分配处理机)。
    存储器管理:内存分配、内存保护、地址映射、内存扩容。
    设备管理功能:1.完成用户进程提出的I/O请求,为用户进程分配所需的I/O设备,并完成指定的I/O操作。2.提高CPU和I/O设备的利用率,提高I/O速度,方便用户使用I/O设备。
    文件管理功能:主要任务是为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存、取速度。同时具有对存储空间进行分配和回收的功能。
    操作系统与用户之间的接口:1.用户接口:联机用户接口、脱机用户接口、图形用户接口。2.程序接口:用户程序执行中访问系统资源而设置的,是用户程序取得OS服务的唯一途径。

    1.5OS结构设计
    了解一下就可以了

    2进程的描述与控制
    2.1前趋图和程序执行
    程序并发执行的特征:间断性、失去封闭性、不可再现性。理解一下就行。
    2.2进程的描述
    进程的定义(需要用自己的话表述出来)进程:程序+数据+PCB。PCB:程序控制块(用自己的话描述)。进程在程序中存在的唯一标识PCB。(注:7:53未听清)进程和线程的区别。(必考)
    进程的基本状态及转换。掌握:三个基本状态在什么情况下处于

    这个状态、在什么情况下状态发生改变(状态发生改变符合什么条件,由什么原因引起的)
    执行->阻塞(I/O请求);阻塞->就绪(I/O完成);就绪->执行(进程调度);执行->就绪(时间片完)
    图2-5画出来箭头和上面文字。
    挂起这部分不用考了,了解就行了。
    2.3进程的控制
    重点关注PCB的作用。当时上课画了几条,注意其中要点。了解一下。
    PCB的作用是使一个在多道程序环境下不能独立运行的程序(含数据)成为一个能独立运行的基本单位,一个能与其他进程并发执行的进程。
    1.作为独立运行基本单位的标志2.能实现间断性运行方式3.提供进程管理中所需要的信息4.提供进程调度中所需要的信息5.实现进程同步和通信
    PCB:进程标识符、处理机状态、进程控制信息、进程调度信息
    组织方式:线性方式、链接方式、索引方式

    2.4进程的同步
    ~两种形式的制约关系:直接相互制约(源于进程间的合作);间接相互制约(源于进程对资源的共享)。
    在一段时间只允许一个进程访问的资源被称为“临界资源”
    进程同步解决的问题:让它具有可再现性。两种形式的制约关系:间接和直接(了解)。临界资源是意思,临界区概念。同步应该遵循的四个规则:空闲让进、忙则等待、有限等待、让权等待(整型信号量未遵循)。
    ~空闲让进:当无进程处于临界区,表明临界资源处于空闲状态,应允许一个请求进入临界区的进程立即进入自己的临界区,以有效地利用临界资源。
    忙则等待:当已有进程进入临界时,表明该临界资源正在被访问,因而其他试图进入临界区的进程必须等待,以保证对临界资源的互斥访问。
    有限等待:对要求访问临界资源的进程,应保证在有限时间内能进入自己的临界区,以免进入“死等”状态。
    让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态

    信号量机制
    记录型信号量:S大于0代表有资源,S等于0代表没有资源,S小于0绝对值代表阻塞进程数量,资源数0(要考)。
    ~AND型信号量:一次性分配进程执行过程中所需要的全部资源,待使用完后再一并释放。
    Swait(S,d,d)只有信号量,每次分d份资源,当资源数少于d时,不给分配。
    Swait(S,1,1)退化为一般记录型信号量(S>1)或互斥信号量(S=1)
    Swait(S,1,0)S>=0时允许多个程序执行某特定的代码,置S=0后,阻止程序执行该段代码。
    ~顺序执行初始mutex等于0
    AND型信号量,哲学家进餐问题,破坏了死锁哪个必要条件。
    信号量集:Swait(S,d,d)、Swait(S,1,1)(退化成一般信号量)、Swait(S,1,0)(退化成一个开关信号量)
    作业上的信号量的应用。前趋图。
    管程没有题目。
    2.5经典进程的同步问题
    生产者消费者、哲学家进餐(结合死锁与基本条件关系)、读者写者问题。
    2.6进程通信
    进程通信了解。
    Send(Receiver,message)
    Receive(Sender,message)
    2.7线程的基本概念
    线程和进程区别。背过。2.7.2区别,ppt上有。线程并发性更高。
    线程是独立运行基本单位,进程是拥有资源基本单位。一个进程可对应和多个多个线程。
    进程和线程的关系:
    1.引入目的:进程能并发执行,提高资源利用率和系统吞吐量;线程进一步提高并发执行的程度,提高资源利用率和同吞吐量。
    2.进程并发性较低,线程并发性较高
    3.进程资源拥有的基本单位;线程独立运行的基本单位
    4.基本状态:就绪执行等待
    5.进程拥有资源;线程几乎不拥有资源
    6.进程创建/撤销/切换时空开销较大;进程创建/撤销/切换时空开销小
    7.系统操作:创建/撤销/切换
    8.存在标志:PCB/TCB
    9.关系:单单/单多/多单/多多 一个进程可以拥有多个线程。
    线程的实现方式:
    内核线程KST:和进程的执行很像,因为硬件和内核可以感知到这个线程。以线程为单位执行。
    用户级线程ULT:硬件和内核感受不到。以进程为单位执行。
    轻型线程LWP:硬件和内核能感受。

    3处理机调度与死锁
    3.1处理机调度的层次和调度算法的目标
    处理机调度的层次:三次调度并不是在所有系统都存在,需要搞清楚存在情况。
    分时系统的目标:1.响应时间快2.均衡性
    实时系统的目标:1.截止时间的保证2.可预测性(上面两个看一下就行了)
    批处理系统的目标:
    1.平均周转时间短2.系统吞吐量高3.处理机效率高
    高级调度:多道批处理系统特有的调度(分时、实时没有)
    低级调度:三种操作系统都必须有的调度
    处理机调度算法的目标:
    1.资源利用率
    2.公平性
    3.平衡性
    4.策略强制执行

    3.2作业与作业调度
    作业控制块(JCB)
    三个阶段:收容阶段(作业提交后,保存在外存,创建JCB,并加入后备队列)运行阶段(创建进程,进入就绪队列)完成阶段(作业结束运行)
    考虑问题(接纳多少作业:大多平均周转时间显著延长,太少不利于提高利用率和吞吐量;接纳哪些作业)

    调度的基本算法肯定会考。作业题好好看。
    FCFS和SJF,注意过程要点。不是一步到底。
    FCFS:缺点:不考虑作业的长短和紧迫程度;SJF(SPF)缺点:对长作业不利;没考虑作业的紧急程度;由于是估计的时间,所以不一定做到真正短;无法实现人机交互。HRRN(优先权=(等待时间+要求服务时间)/要求服务时间)响应比=响应时间/要求服务时间

    3.3进程调度
    模型理解一下。
    进程调度的任务:1.保存CPU现场2.按某种算法选取进程3.把CPU分配给进程
    进程调度机制:1.排队器2.分派器3.上下文互换
    进程调度方式:1.非抢占式方式:一旦将CPU分配给某进程,便让它一直运行,直到它完成或阻塞,才让另一个来执行。优点:实现简单、系统开销小,适用于大多数的批处理系统环境。缺点:难以满足紧急任务的要求——立即执行,因而可能造成难以预料的后果。抢占方式:允许按照某种原则暂停正在执行的进程,让另一个来执行。抢占的原则:优先权原则、短进程优先原则、时间片原则。
    轮转调度算法:分时系统中,常用的是
    基于时间片的轮转(RR)调度算法。(进程切换时机:时间片没用完,进程执行完成;时间片用完但进程没执行完)
    优先级调度算法:
    ~多级反馈队列调度算法:设置多个就绪队列(按优先级划分,优先级越高获得的时间片越少)新进程进入系统后,放入第一个队列等待,按FCFS原则等待。第i个时间片执行完后,便放入i+1队列尾。当且仅当L1-i空时,才从Li+1中调度进程。
    实时系统调度算法:EDF(最早截止时间优先)最低松弛度优先(LLF)松弛度=完成截止时间-剩余运行时间-当前时间。
    3.4实时调度
    模型理解一下。
    3.5死锁概述
    可重用性资源(对资源的请求和释放通过利用系统调用实现)、可消耗性资源。
    可抢占性资源(这类资源不会死锁例如CPU,内存);不可抢占性资源:只能进程用完后自行释放(打印机)
    3.6预防死锁
    死锁的概念:一组进程中的每一个进程都在等待仅由该组进程中的其他进程才能引发的事件,那么该组进程就是死锁的。
    四个条件
    1.:互斥条件:
    进程对所分配到的资源进行排它性使用,即在一段时间内,某资源只能被一个进程占用。如果此时还有其它进程请求该资源,则请求进程只能等待,直至占有该资源的进程用毕释放。
    2.请求和保持:
    进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其它进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。
    3.不可抢占:进程已经获得的资源在未使用完之前不可被抢占
    4.循环等待
    ~破坏“请求和保持”条件:
    基本思想:
    固定所有进程在开始之前,都必须一次性申请其在整个运行过程中所需的全部资源。只要有一种资源不够,便全不分配。优点:简单易行、安全;缺点:资源浪费、进程延迟执行。改进思想:允许进程只获得初期所需的资源时候,便开始运行,运行过程中再逐步释放已经获得且已经用完的全部资源,然后再申请新的资源。优点:提高设备利用率,进程可以更快执行。

    ~破坏“不可抢占”条件:
    基本思想:进程可以逐个申请资源,一旦申请的资源你无法满足,立即释放已经保持的所有资源。缺点:复杂、代价大(资源被迫释放,可能导致以前的工作无效);反复申请资源,可能使得进程执行被无限推迟。

    ~破坏“循环等待”条件
    基本思想:按进程类型给资源赋序号;进程申请资源必须按序号递增次序提出。优点:利用率、吞吐量明显改善。

    定义:
    系统按照某顺序,为每个进程分配所需资源,直至满足每个进程对资源的最大需求,使每个进程都可顺利完成。称这个序列为安全序列。如果没法找到一个这样的安全序列则称系统处于不安全状态——可能导致死锁。

    数据结构:
    Available[j]:目前资源j可供使用的数量。
    Max[i,j]:进程i需要资源j的最大数量。
    Allocation[i,j]:进程i当前已经获得j的数量。
    Need[i,j]:进程i还需要多少资源j,才能执行完。
    Need[i,j] = Max[i,j]-Allocation[i,j]

    Requesti[j] = K表示进程Pi需要K个资源。
    OS进行检查:
    1.Requesti[j]<=Need[i,j](如果大于,宣布出错因为它所需要的的已超过它宣布的最大值)
    2.Requesti[j]<=Available[j](如果大于表示尚无足够的资源Pi需要等待)
    3.OS假设把资源分配给进程Pi,并作如下修改:Available[j]=Available[j]-Requesti[j];
    Allocation[i,j]=Allocation[i,j]+Requesti[j];
    Need[i,j]=Need[i,j]-Requesti[j]
    4.执行安全性算法,若安全,才真正把资源分配给进程Pi否则此次分配作废,恢复原来的资源分配状态。

    安全性算法:
    作用:查看是否存在一个安全序列。
    工作向量Work代表OS可提供给进程继续运行的所需的各种资源数量
    Finish代表是否有足够的资源分配给进程Finish初始为False
    满足Finish[i]等于false且Need[i,j]<=Work[j]进行下列修改Finish[i]=true;Work[j]+=Allocation[i,j]
    如果所有的进程Finish[i]=true都满足则代表系统处于安全状态;否则系统处于不安全状态。

    3.7避免死锁
    死锁的原因理解一下就可以了。
    死锁的定义、必要条件、处理方法很重要。结合前面算法。不直接考简单。
    例如:
    请求保持是什么情况,通过按钮机制解决。用按钮机制写算法。
    环路等待解决方法:将资源排序后按照升序或者降序解决
    避免死锁:用银行家算法的例子够了。肯定大。少了问。上课讲的例子。
    3.8死锁的检测与解除
    了解一下就可以了
    死锁的充分条件:当且仅当S状态的资源分配图是不可完全简化的

    4存储器管理
    4.1存储器的层次结构
    4.2程序的装入和链接
    内存管理的主要任务是为多道程序的运行提供良好的环境。

    了解一下就可以了。
    源程序变为可执行程序:编译链接装入
    程序的装入方式:1.绝对装入方式(只适用于单道程序环境下)2.可重定位装入(装入程序装入时根据内存的实际情况把相对地址(逻辑地址)转换为绝对地址,装入时进行地址转换)3.动态运行时装入方式(程序运行时才进行,重定位寄存器)
    链接的方法
    静态链接(装入前(无法实现共享))、装入时动态链接、运行时动态链接

    4.3连续分配存储管理方式
    1.单一连续分配
    把内存分为系统区和用户区。
    特点:把整个用户区分配给一个程序使用;实际上用户区又被分为“使用区”和“空闲区”;由于任何时刻用户区中只有一个程序运行,因此只适用于单道OS。
    缺点:由于每次只能又一个程序进入内存,故整个系统的工作效率不高,资源利用率低;若程序比用户区大,那么它就无法运行。即大任务无法在小内存上运行。
    2.固定分区分配
    基本思想:
    把用户区划分成若干个大小固定的分区
    每个分区只放一个进程
    因此,有几个分区就允许几个进程并发。
    当一个分区空闲时,可以选择一个新的进程进入那里运行
    在进程运行过程中,所获得的区域是不能改变的。
    划分固定分区的方法:
    1.分区大小相等:缺乏灵活性、程序太小内存浪费太大无法装入
    2.分区大小不等
    分区说明表
    3.动态分区分配
    解决三个问题:数据结构(空闲分区表、空闲分区链)、分区分配算法、分区的分配和回收
    每种分配方式的特点需要掌握清楚。自己看一看。
    回收内存必考。
    FF、NF没考。
    BF:
    基本思想:找能满足分配的最小空闲分区;这要求分区按容量递增顺序排列;优点:避免大材小用;缺点:每次分割下的空闲分区总是最小的,难以利用。
    WF:
    基本思想:兆能满足分配的最大空闲分区;这要求分区按容量递减顺序排列
    优点:产生碎片的可能性最小,有利于中下进程;查找效率高
    缺点:缺乏大空闲区
    回收内存必考

    4.动态可重定位分区分配
    碎片:
    内部碎片:指分配给作业的存储空间中未被利用的部分。(如固定分区中存在的碎片)
    外部碎片:指系统中无法利用的小的空闲分区。如动态分区中存在的碎片。
    如何利用碎片:采用紧凑(拼接)

    碎片问题的解决方法:1.拼接/紧凑技术(代价较高)2.离散分配方式

    4.4对换
    不考
    提高内存利用率的有效措施
    把暂时不能运行的进程或暂时不用的程序和数据移到外存,以便腾出必要的空间;接着把已经具备运行条件的进程或进程所需的程序和数据换入内存。

    4.5分页存储管理方式
    系统为每个进程建立一张页面映象,简称页表。
    1.记录了页面在内存中的块号2.页面一般放在内存中3.页表的基址及长度由页表寄存器给出。

    说明:
    1.每一页的页内地址相对于0开始。
    2.调度时,必须把进程的所有页一次性装入到内存的块中。
    页表的作用是保存页号和块号的对应关系。实现从页号到块号的地址映射。

    地址变换机构:
    逻辑地址转变为物理地址称为:“重定位”
    借助页表,将页号转换为物理块号。
    进程调度执行时,页表的首地址和长度被保存在进程的PCB中。进程被调度时,他们被调入页表寄存器。
    因为页表存储在内存中,每次访问一个数据,必须访问两次内存。
    1.一次是访问页表:确定数据所在的物理地址。
    2.另一次才是访问真正的数据

    关于快表:
    基本地址变换机构存在问题:地址变换速度降低(两次访问内存)
    目的:为了提高地址变换速度
    快表(联想寄存器、联想存储器、TLB)
    1.具有并行查询能力的高速缓冲存储器
    2.内容为页表中的一部分或全部、近期访问的
    3.CPU产生的逻辑地址的页首先在快表中寻找,若找到,就找出其对应的物理块;若未找到,再到页表中找其对应的物理块,复制到快表。
    4.若快表满,则按照某种算法淘汰某些页。
    有效访问时间:T=快表命中率(快表运行时间+一次访问内存时间)+(1-快表命中率)(快表访问时间+2*内存访问时间)

    解决方法:
    1.增设一个具有并行查寻能力的特殊高速缓冲寄存器,用于存放当前访问的那些表项。
    2.这个高速缓存在IBM系统中取名为快表(TLB)又称联想存储器。
    基本页式管理熟练掌握。
    计算题。分页的原理。地址变换。页表是怎么做准备的?页号的号对应关系。页表的起始地址。今年问了个问题一定考。
    快表核心思想。
    一个cpu只有一个页表寄存器。其它的多进程的页表寄存器放哪儿了。
    分段式和分页式区别:页式管理是系统的需求,段式满足用户的需求。一个是一维的一个是二维的,针对逻辑地址。物理地址一维。逻辑地址往物理地址转换。
    区别:用户与系统、页和段、固定与非固定、用户地址空间一维和二维
    分段存储管理方式:
    基本分页式管理不利于共享不利于共享,实现数据共享的最好方法(段式存储管理)

    引入目的:满足用户和程序员的需要
    1.方便编程
    2.信息共享
    3.信息保护
    4.动态增长
    5.动态链接
    分段:段号(S)+地址(W)
    分段管理的关键:如何把逻辑地址变换为物理地址;采用动态重定位技术
    段表:段长+基址
    分段和分页的主要区别
    1.目的:分页实现非连续分配,解决碎片问题;分段:更好满足用户需要
    2.信息单元:页(物理单位);段(逻辑单位)
    3.大小:页(固定);段(不定,由用户程序决定)
    4.内存分配单位:页和段
    5.作业地址空间:页(一维);段(二维)
    6.优点:页(解决碎片问题,提高内存利用率)段(更好实现数据共享和保护、可动态增长、便于动态链接)

    1.页是信息的物理单位,分页是为消减内存的碎片,提高内存利用率分页仅仅是由于系统管理的需要。段则是信息的物理单位,它含有一组其意义相对完整的信息。分段可以更好地满足用户的需求
    2.页的大小固定,由系统决定;段的长度不固定,决定于用户所编写的程序。
    3.分页的作业地址空间是一维的(记忆符)。分段的作业地址空间是二维的(段名+段内地址)

    段页式存储管理:(综合分段在逻辑上的优点和分页在管理村粗空间方面的优点)
    1.分页系统能高效提高内存利用率
    2.分段系统能更好的满足用户的需要
    段号S+段内页号P+页内地址W

    5虚拟存储器
    5.1虚拟存储器概述(具有请求调入功能和置换功能,能在逻辑上进行扩充内存容量的一种村粗器系统)
    虚拟存储器实现过程:
    1.基于局部性原理,程序在运行前:仅需将当前要运行的页(段)装入内存即可
    2.运行时:缺页或缺段中断,则利用OS的请求调页(段)功能,将该页(段)调入内存
    3.若内存已经满了则置换
    了解一下。
    前述的内存管理方法的共同缺点:要求程序必须一次性整体装入内存。导致两个问题:程序太大、内存放不下和程序太多,但内存空间不足
    1.一次性2.驻留性
    工作原理:运行过程中,如果所访问的程序部分不在内存
    1.产生缺页(段)中断,OS利用请求调页(段)功能,将之调入内存,以维持进程的继续执行。2.如果内存已满,无法再装入新的页(段),则利用置换功能,将内存中暂时不用的页(段)调至外存,腾出足够内存后,再将之调入内存,以维持进程的继续执行。
    逻辑容量=内存容量+外存容量。
    一个虚拟存储器的最大容量是由计算机的地址结构确定的。
    特征:多次性、对换性、虚拟性
    实现方法:
    5.2请求分页存储管理方式
    在分页系统的基础上增加了请求调页、页面置换两大功能。硬件支持:提供请求分页的页表机制、缺页中断机构、地址变换机构。(段页式)
    页表机制:页号、块号、状态位、访问字段、修改位、外存地址
    相同点:
    把内存空间划分成大小相同、位置固定的块
    把程序的虚拟地址空间(以前是逻辑地址空间)划分成页
    由于页与块大小相同,因此虚拟地址空间中的一页,可以装入到内存中的任何一块中。
    不同点:
    程序不必一次性装入内存
    运行时,虚拟地址被转换为页号+偏移量
    该页在内存中继续执行
    不在进行缺页中断,带入内存再继续正常运行
    固定分配局部置换、可变分配全局置换、可变分配局部置换
    5.5请求分段存储管理方式

    在分段系统的基础上增加了请求调段、分段置换两大功能。提供请求分段分段的段表机制、缺段中断机构、地址变换机构
    段表机制:
    段名、段长、段的基址、存取方式、访问字段、修改位、存在位、增补位、外存地址
    请求分页式和请求分段式:页表和段表的最大区别。分段:方便共享、动态增长。更加在乎增补位(该段运行时,是否做过动态增长)。共享段:只能读不能改。各进程对于同一个共享段的访问权限可以不同,各进程可以用不同的段号访问同一个共享段。分段保护:1.越界检查2.存取控制检查3.环保护机构

    越界检查、存储控制检查和环保护机构

    5.3页面置换算法
    缺页中断不一定引起页面淘汰
    置换算法。例题LRU,OPT。一定会考。
    最佳置换算法:从内存中移出最长时间不需要访问的页面
    LRU(最近最久未使用)
    5.4抖动与工作集
    不考

    作业重点:
    第二章
    1.哲学家进餐解决死锁方案、死锁、AND机制、申请奇偶、其它:顺序没有循环(排序或者破坏循环)
    2.单向车道问题
    3.读者进入阅览室 生产者消费者问题
    4.公交车进站问题 有没有改对
    第三章
    5.银行家算法、课后题
    6.进程调度算法改了数之后版本
    第四章
    7.置换算法

    6输入输出系统
    6.1I/O系统的功能、模型和接口
    图6-1、通道和通道类型、
    I/O系统管理的主要对象
    I/O设备和相应的设备控制器
    I/O系统管理最主要的任务
    完成用户提出的I/O请求
    提高I/O速率
    提高设备利用率
    方便更高层进程使用设备
    I/O系统的基本功能
    方便用户:
    1.隐藏物理设备的细节
    2.与设备的无关性
    提高利用率:
    1.提高CPU和I/O设备的利用率
    2.控制I/O设备
    方便设备共享:
    1.确保正确共享设备
    2.错误处理

    I/O系统的层次结构及其功能
    用户层软件:与用户交互的接口,用户可直接调用;用户层提供的与I/O操作有关的库函数,对设备进行操作。
    设备独立性软件:负责实现与设备驱动器的统一接口、设备命名、设备保护、设备的分配与释放等,同时为设备管理和数据传送提供必要的存储空间。
    设备驱动程序:与硬件直接相关,负责具体实现系统对设备发出的操作指令,驱动I/O设备工作的程序。
    中断处理程序:保存被中断进程的CPU环境,转入相应的处理程序进行处理,处理完后再恢复被中断进程的现场后返回继续执行被中断的进程。

    I/O系统接口:
    I/O系统与高层之间的接口中,根据设备类型不同,进一步分成若干个接口。
    1.块设备接口2.流设备接口3.网络接口

    I/O设备一般由两部分组成:1.执行操作的机械部分2.执行控制的电子部件
    设备使用特性:1.存储设备2.输入/输入输出设备
    传输速率:1.低速2.中速3.高速
    信息交换的单元:1.块设备2.字符设备
    共享属性:1.独占设备2.共享设备3.虚拟设备
    I/O设备并不是直接与CPU进行通信,而是与设备控制器通信。
    数据信号线、控制信号线、状态信号线
    设备控制器基本功能:
    1.接收和识别命令
    2.数据交换
    3.标识和报告设备的状态
    4.地址识别
    5.数据缓冲
    6.差错控制
    组成:
    设备控制器与处理机的接口(三类信号线:数据线(数据寄存器、控制/状态寄存器)、地址线、控制线)
    设备控制器与设备的接口:在一个设备控制器上,可以连接一个或多个设备
    在设备控制器中的I/O逻辑用于实现对设备的控制
    I/O通道:
    引入:减少CPU的负担,引入特殊的通道处理机(I/O通道)
    特点:指令类型单一;没有自己的内存,与CPU共享内存
    字节多路通道:
    工作原理:数据传输是按字节交叉方式进行。1.有一个主通道2.含有多个子通道3.各子通道以时间片轮转方式按字节交叉使用主通道
    优点:可以连接多台中/低速设备;能分时并行操作
    缺点:传输率较低
    数组选择通道:数据传输是按成组方式,每次传输一批数据。主要用于连接高速I/O设备1.有一个主通道2.含有多个子通道3.每个道通过一个控制器与一台设备相连,一段时间内只能选择一个子通道程序执行
    优点:可以连多台高速设备;传输率较高
    缺点:通道利用率低
    数组多路通道:并行加数组
    瓶颈问题使用多通路
    I/O通道控制方式
    目的:使一些原来由CPU处理的I/O任务转由通道来承担,从而把CPU从繁杂的I/O任务中解脱出来。通道是一种特殊的处理机,特点:1.指令类型单一,主要局限于对I/O操作2.没有自己的内存,通道程序放在内存里。
    在设置了通道之后,CPU只需向通道发送一条I/O指令。通道在收到该指令后,便从内存中取出本次要执行的通道程序。然后执行该通道程序。仅当通道完成了规定的I/O任务后,才向CPU发中断信号。
    通道类型:1.字节多路通道:子通道连接一个设备,按时间片共享主通道。2.数组选择通道:只有一个子通道,一段时间内只能执行一道程序,控制一台设备,利用率低。3.数组多路通道:数组选择听到+字节多路通道。
    瓶颈问题:增加通路,一个设备连接多个控制器,一个控制器连接多个通道。

    逻辑设备名到物理设备名映射的实现(逻辑设备表)

    常用的输入/输出控制方式:以减少CPU的干预为目标
    1.程序直接控制方式
    2.中断控制方式
    1.需数据的进程向CPU发出指令启动I/O
    2.该进程放弃处理机
    3.输入完成,I/O控制器发送中断,唤醒愿景城
    4.原进程被调度,从内存单元读取
    3.DMA方式
    1.需要数据的进程向CPU发出指令,向DMA控制器写入数据存放的内存起始地址、传送的字节数,并置中断位和启动位,启动I/O设备输入允许中断。
    2.DMA采用挪用CPU周期,将一批数据写入内存
    3.DMA传送完数据后,向CPU发中断请求
    DMA方式与中断方式的主要区别
    1.中断的时机不同。中断方式是在数据寄存器满后,发中断请求,CPU进行中断处理。DMA方式是在所要传送的数据块全部传送结束时要求CPU进行中断处理,大大减少了CPU进行中断处理的次数。
    2.CPU控制方法不同:中断方式的数据传送是由CPU控制完成的。DMA方式是在DMA控制器的控制下不经CPU控制完成的。

    SPOOLING技术
    目的:可以将一台物理设备虚拟为多台逻辑设备,以允许多个用户共享一台物理设备。
    技术是指:模拟脱机输入/输出
    ·用一个进程将设备输入的数据暂存在磁盘上
    ·用另一个进程把暂存磁盘上的呼出数据传给设备
    ·这样便可以在主机直接控制下,实现脱机输入/输出功能
    ·此时的外围操作与cPU对数据的处理同时进行,这种在联机情况下实现的外围操作称为SPOOLING或称为假脱机技术
    组成:建立在具有多道程序功能的OS上;应有告诉随机外存的支持
    四个部分:
    1.输入井,输出井:磁盘上的两块存储区,用于暂存输入、输出的数据
    2.输入缓冲区、输出缓冲区:位于内存中,作用是缓和CPU、设备之间的速度差异
    3.输入进程(利用输入缓冲区为中介,把输入设备的数据存入输入井)、输出进程(设备空闲时,将输出井中的数据利用输出缓冲区送入设备)
    4.井管理程序(控制任务与井之间信息的交换)
    应用:实现共享打印机

    组成部分:磁盘缓冲区(输出井);打印缓冲区(输出缓冲区);管理进程;打印进程

    进程请求打印时:1.在磁盘缓冲区中申请一块空闲磁盘区并将要打印的数据存入其中;2.为该进程申请一张空白的请求打印表,并将打印请求填入其中,再将该表挂到假脱机文件队列上。
    需要将独占设备改造为可供多个进程共享的设备时,都可以为之设置一个守护进程。守护经常是允许使用该独占设备的唯一进程。
    SPOOLING系统特点:
    1.提高了I/O的速度2.将独占设备改造为共享设备3.实现了虚拟设备的功能。

    缓冲的引入:1.缓和CPU与I/O设备间速度不匹配的矛盾。事实上,凡在数据达到速率与发送速率不同的地方,都可设备缓冲区,以缓和他们之间速率不匹配的矛盾。2.减少对CPU的中断频率3.解决生产者、消费者之间数据粒度不匹配问题4.提高CPU和I/O设备之间的并行性

    单缓冲:在单缓冲情况下,每当用户进程发出一I/O请求时,OS便在内存中为之分配一个缓冲区
    双缓冲:为加快I/O速度提高设备利用率,人们又引入了双缓冲区机制,也称缓冲对换
    循环缓冲:多个缓冲区、每个缓冲区大小相同
    缓冲池:包含一个管理的数据结构、一组操作函数的管理机制,用于管理多个缓冲区
    缓冲区:单个内存区域或一组内存区域组成的链表

    磁盘调度算法:FCFS、SSTF(饥饿现象)、SCAN(扫描算法)、CSCAN(循环扫描算法)
    设备独立性:是指用户在编制程序时所用的设备与实际使用的设备无关

    SPOOLING技术:为了缓和CPU的高速行与I/O设备的低速性间矛盾而引入,在外围控制机的控制下实现低速的I/O设备与高速的磁盘之间进行数据传送。

    在多道程序下,用一道程序来模拟外围控制机,实现将数据从磁盘传送到低速的输出设备上,从而可在主机的直接控制下,实现脱机输入、输出功能。进而实现外围操作与CPU对数据处理的并行操作,这种在联机情况下实现的同时外围操作称为SPOOLING技术,是对脱机输入、输出工作的模拟,是操作系统中采用的一项将独占设备改造成共享设备的技术。
    1.输入井输出井(外存);2.输入输出缓冲区3.输入输出进程4.请求打印队列
    特点:1.提高了I/O速度2.将独占设备改成共享设备3.实现了虚拟设备功能。

    磁盘调度算法:FCFS,SSTF(最短寻道时间优先

    7文件管理
    索引表是一个定长记录的顺序文件
    文件目录管理要求:
    1.实现“按名存取”
    2.提高对目录的检索速度
    3.文件共享
    4.允许文件重名

    单级文件目录的优点:能实现目录管理的基本功能(按名存取)
    树形结构目录:
    路径名、可为每个进程设置一个当前目录、相对路径名、绝对路径名

    一些简答:
    1、为什么要设置I/O缓冲区?,通常有哪几类缓冲区 ?
    有效缓和外围设备和处理机速度不匹配的矛盾。单缓冲,双缓冲,多缓冲,缓冲池
    2、如何将独占型输入设备改造成可共享使用的虚拟设备?
    SPOOLing技术
    3、在设备管理中,何谓设备独立性?如何实现设备独立性?
    用户编程时所用的设备与实际设备无关,用户程序独立于具体使用的物理设备,逻辑设备表。
    4、为什么要引入SPOOLING技术?SPOOLING技术可带来哪些好处?
    为了缓和CPU的高速性和I/O设备的低速性,在外围控制机的控制实现低速的I/O设备和高速的磁盘进行数据传输。1.提高了I/O速率2.使独占设备变为共享设备3.实现了虚拟设备功能
    5、SPOOLing技术的原理和组成?SPOOLing技术如何使一台打印机虚
    拟成多台打印机?
    原理:用一道程序模拟外围控制机,实现将数据传送从磁盘传送到低速的输出设备上,从而可以在主机的控制下实现脱机输入输出功能,进而实现外围操作与CPU对数据的并行操作,这种在联机情况下实现的同时外围操作称为SPOOLing。输入输出井、输入输出缓冲区、输入输出进程、井管理程序。将一个物理设备变换为若干个逻辑设备。

    6、数据传送方式有哪几种?字节传送、数组传送。字节多路通道、数组选择通道、数组多路通道。
    7、什么是通道?试画出通道控制方式时的CPU、通道和设备的工作
    流程图。通道是一个独立于(CPU)的专管的处理机,它控制(外围设备)与内存之间的信息交换
    8、UNIX系统中将设备分为块设备和字符设备,它们各有什么特点?
    9、什么叫通道技术?通道的作用是什么?引入特殊的处理机减少CPU的负担

    文件的特点:
    1.文件具有保存性
    2.文件具有保存性
    3.文件是一组信息的集合

    按文件的逻辑结构分为:有结构文件(纪录式文件)和无结构文件(流式文件)
    文件由FCB和文件体两部分组成。

    fork()
    lockf(fd, mode, size)(size0表示全锁)
    wait(&status)返回子进程id
    WEXITSTATUS(status)进程返回值
    pipe(数组大小为2)成功返回0错误返回1
    write(buffer,从哪里写,写多少字节)
    read(buffer,从哪里读,读到哪儿)

    pipe(建立管道)

    1. 表头文件 #include<unistd.h>
    2. 定义函数 int pipe(int filedes[2]);
    3. 函数说明
      pipe()会建立管道,并将文件描述词由参数 filedes 数组返回。
      filedes[0]为管道里的读取端,所以pipe用read调用的
      filedes[1]则为管道的写入端。

    返回值: 若成功则返回零,否则返回-1,错误原因存于errno 中。
    错误代码:
    EMFILE 进程已用完文件描述词最大量
    ENFILE 系统已无文件描述词可用。
    EFAULT 参数 filedes 数组地址不合法。

    作者:LightAc
    出处:https://www.cnblogs.com/lightac/
    联系:
    Email: dzz@stu.ouc.edu.cn
    QQ: 1171613053
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
  • 相关阅读:
    MyBatis框架——MyBatis update标签(转载)
    关“.NET研究”于代码规范 狼人:
    go并发写入文件的几种姿势
    go切片默认初始化len为0,既元素无法直接赋值为[0]=xx
    js对象
    go sync.WaitGroup
    go微服务学习
    修改 Kubeadm 源码中的 Kubernetes 证书过期时间为100年
    go的形参
    go 循环切片得到重复移除成别名
  • 原文地址:https://www.cnblogs.com/lightac/p/14435997.html
Copyright © 2020-2023  润新知