avatar

cindahy

be a hard egg

  • 首页
  • 文章分类
  • 项目
  • 关于
Home 计算机操作系统
文章

计算机操作系统

Posted 2026-01-16 Updated recently
By Administrator
125~161 min read

参考文章:

https://juejin.cn/post/7332292236020252691

计算机操作系统概述

操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。操作系统是计算机操作系统中最基本的系统软件。

  • 计算机操作系统自下而上分为4部分:硬件、操作系统、应用程序、用户

  • 操作系统的特征

  • 并发:同一时间间隔(并行:同一时刻)

  • 共享

  • 异步:进程以不可预知的速度向前推进

  • 虚拟

操作系统的功能

  • 处理机管理:主要功能包括进程控制、进程同步、进程通信、死锁处理、处理机调度等

  • 存储器管理:主要包括内存分配、地址映射、内存保护与共享和内存扩充等功能

  • 文件管理:主要功能包括文件存储空间的管理、目录管理及文件读写管理和保护等

  • 设备管理:主要包括缓冲管理、设备分配、设备处理和虚拟设备等功能

操作系统的历程

  • 手工操作阶段(操作系统开始出现)

  • 单道批处理阶段

  • 多道批处理阶段(操作系统正式诞生)

  • 分时操作阶段(不可以插队,有了人机交互)

  • 实时操作阶段(可以插队)

  • 网络和分布式操作系统

处理机的状态

  • 用户态(目态)CPU只能执行非特权指令

  • 核心态(又称管态,内核态):可以执行所有指令

  • 用户态到核心态:通过中断(是硬件完成的)

  • 核心态到用户态:特权指令psw的标志位(0用户态,1核心态)

访管指令是用户态使用的,该指令含义是用户自愿进入核心态。核心态可以执行特权指令和非特权指令。CPU工作在核心态时可以执行除访管指令的所有指令。

操作系统的体系结构:大内核、微内核

进程管理

进程:是计算机中的程序关于数据集合上的一次运行活动,是系统运行资源分配的基本单位(最小单位),是操作系统结构的基础。是线程的容器。

进程的特征

  • 动态性(最基本特征):进程是程序的一次执行,有着创建、活动、暂停、终止等过程,具有一定的生命周期,是动态地产生、变化、消亡的

  • 异步性:由于进程的相互制约,使得进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进。异步性会导致执行结果的不可再现性,为此在操作系统中必须配置相应的进程同步机制

  • 并发性:重要特征

  • 多个进程实体同时存在于内存中,能在一段时间内同时运行,提高资源利用率

  • 独立性:进程实体是一个能独立运行、独立获得资源、独立接受调度的基本单位,凡未建立PCB的程序,都不能作为一个独立的单位参与运行

  • 结构性:每个进程都配置一个PCB对其进行描述。从结构上看,进程实体是由程序段、数据段、进程控制块三部分组成的

进程的状态:

  • 运行态:进程正在占用CPU

  • 就绪态:进程获得了除处理器之外的所有资源

  • 阻塞态:进程由于某一事件不能享用CPU

  • 创建状态:进程正在被创建

  • 结束状态:经常正在从系统消失

线程与进程的区别:

线程:是操作系统能运算调度的最小单位,它被包含在进程之中,是进程中实际运作的单位。一条线程指的是进程中一个单一顺序的控制流,一个进程可以并发多个线程,每条线程可以并行执行不同的任务。

比较程序、进程的区别:

程序是静止的,进程是动态的。程序是有序代码的集合,进程是程序的执行。进程是暂时的,程序是永久的。经常是一个状态变化的过程,程序可以永久保存。程序和进程的组成不同,进程包括数据、程序和进程控制块。通过多次执行,一个程序可以包含多个进程,通过调用关系,一个进程也可以包含多个程序。

处理机调度

是对处理机进行分配,即从就绪队列中按照定的算法,选择一个进程并将处理机分配给它运行,以实现进程并发地执行。

分类:

  • 高级调度(作业调度)

  • 中级调度(内存调度)

  • 低级调度(进程调度)

调度方式:剥夺/非剥夺

调度准则:CPU利用率、系统吞吐量、周转时间、等待时间、应时间

算法:

  • 先来先服务(FCFS)调度算法:等待时间最长

  • 短作业优先(SJF)调度算法:运行时间最短

  • 优先级调度算法:优先级最高

  • 高响应比优先调度算法:用于作业调度,对FCFS、SJF的一种综合平衡,

  • 相应比R=(等待时间+要求服务时间)/要求服务时间

  • 时间片轮转调度算法

  • 多级反馈队列调度算法

  • 是时间片轮转算法和优先级调度算法的综合发展,通过动态调整进程优先级、时间片大小,该算法可以兼顾多方面的系统目标

周转时间=等待时间+运行时间

带权周转时间=周转时间/运行时间

进程同步

基本概念:

  • 临界资源:一次仅允许一个进程使用的资源

  • 制约关系

  • 同步(直接制约关系):为完成某种任务而建立两个或多个进程,因为需要协调这些进程的工作次序而等待、传递信息所产生的制约关系

  • 互斥(间接制约关系):当一个进程进入临界区使用临界资源时,另一个进程必须等待,直到该进程退出临界区

  • 为禁止两个进程同时进入临界区,同步机制应遵循以下准则

  • 空闲让进临界区空闲时,可以允许一个请求进入临界区的进程立即进入临界区

  • 忙则等待已有进程进入临界区时,其他试图进入临界区的进程必须等待

  • 有限等待对请求访问的进程,应保证能在有限时间内进入临界区

  • 让权等待当进程不能进入临界区时,应立即释放处理器,防止进程忙等待

临界区的作用

  • 保护共享资源

  • 防止竞态条件

  • 提高程序稳定性

临界区的实现通常依赖于同步机制,如互斥锁、信号量或条件变量。

信号量

  • 信号量机制是一种功能较强的机制,可用来解决互斥与同步问题,只能被两个标准原语wait(S)、signal(S)访问,也可记为P操作和V操作

  • 原语指完成某种功能且不被分割、不被中断执行的操作序列,通常可由硬件实现。原语功能不被中断执行的特性在单处理机上可由软件通过屏蔽中断方法实现

  • 整型信号量

  • 一个用于表示资源数目的整型量S,该机制并未遵循让权等待准则,而是使进程处于忙等状态

  • 记录型信号量

  • 不存在忙等现象的进程同步机制。除需要一个用于代表资源数目的整型变量value外,再增加一个进程链表L,用于链接所有等待该资源的进程。当资源已分配完毕,进程应调用block原语,进行自我阻塞,放弃处理机,并插入资源的等待队列,即该机制遵循了让权等待准则

  • 当进程释放一个资源,是系统中可供分配的资源数增1,但是资源数value依然value <= 0,表示在队列中仍有等待该资源的进程被阻塞,因此还应调用wakeup原语,将队列中的第一个等待进程唤醒

  • PV操作是一种实现进程互斥与同步的有效方法,申请资源/释放资源。

  • P操作的主要动作是S减1,若S大于等于0,程序继续执行,否则进程被阻塞后放入等待该信号量的等待队列,然后转进程调度。

  • V操作的主要动作是S加1,若S大于0,则进程继续执行,否则从该信号的等待队列中释放一个等待进程,然后再返回原进程继续执行或转进程调度

经典同步问题

生产者消费者问题

  • 在缓冲区为空时,消费者不能再进行消费

  • 在缓冲区为满时,生产者不能再进行生产

  • 在一个线程进行生产和消费时,其余线程不能再进行生产或消费等操作,即保持线程间的同步

  • 注意条件变量和互斥锁的顺序

int n;//缓冲区数量
semaphores mutex=1;//提供缓冲区访问的互斥要求,并初始化为1
semaphores empty=n;//空的缓冲区的数量
semaphores full=0;//满的缓冲区的数量
procedure(){
    while(1){
        生成一个产品
        P(empty)
        P(mutex)
        将产品放入缓冲区
        V(mutex)
        V(full) 
    }
}


consumer(){
    while(1){
        P(full)
        P(mutex)
        将产品移出缓冲区
        V(mutex)
        V(empty)
        使用产品
    }
}

PV对应因为是原子操作。

死锁

  • 多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程将无法向前推进

  • 产生原因:非剥夺资源的竞争和进程的不恰当推进

  • 解决方法:

  • 预防死锁:破坏

  • 互斥条件

  • 循环等待条件

  • 非剥夺条件

  • 请求和保持条件

  • 避免死锁:安全状态和银行家算法

  • 检测死锁:利用死锁定理

  • 解除死锁:资源剥夺法,撤销进程法,进程回退法

银行家算法:

  • 当一个进程申请使用资源的时候,银行家算法通过先试探分配给该进程资源,然后通过安全算法判断分配后的系统是否处于安全状态,若不安全则试探分配作废,让该进程继续等待。

内存管理

内存管理的基本要求和原理

更好的支持躲到程序的并发执行,提高系统性能

主要功能:

  • 内存空间的分配和回收

  • 存储的保护与共享

  • 地址转换:多道程序环境下,程序中的逻辑地址与内存中的物理地址不可能一致,因此,存储管理必须提供地址变换功能,把逻辑地址转换成相应的物理地址

  • 内存扩充:利用虚拟存储技术、自动覆盖技术,从逻辑上扩充内存

用户程序的主要处理阶段

  • 编辑:创建源文件

  • 编译:由编译程序将用户源代码编译成若干目标模块,生成目标文件。

  • 链接:由链接程序将编译后形成的一组目标模块及所需的库函数链接到一起,形成一个完整的装入模块,生成可执行文件。

  • 装入:由装入程序将装入模块装入内存运行

  • 运行阶段:得到结果

内存装入模块装入内存的三种方式

  • 绝对装入

  • 知道程序将驻留在内存的某个位置,则产生绝对地址的目标代码

  • 由于程序中的逻辑地址与实际内存地址完全相同,因此不需要对程序和数据的地址进行修改

  • 只适用于单道程序环境

  • 程序中使用的绝对地址,可在编译、汇编时给出,也可由程序员直接赋予

  • 通常程序中采用符号地址,编译或汇编时再转为绝对地址

  • 可重定位装入

  • 多道程序环境下,多个目标模块的起始地址通常都从0开始,程序中的其他地址都是相对于起始地址的

  • 装入时,对目标程序中的指令和数据的修改过程称为重定位

  • 地址变换通常是在装入时一次完成的,所以又称静态重定位

  • 静态重定位的特点是,一个作业装入内存时,必须给它分配要求的全部内存空间,若没有足够的内存,则不能装入该作业。此外,作业一旦进入内存,整个运行期间就不能在内存中移动,也不能再申请内存空间

  • 动态运行时装入动态重定位

  • 程序在内存中若发生移动,则需要采用动态装入方式。

  • 装入程序把装入模块装入内存后,不立即把装入模块的相对地址转换为绝对地址,而是推迟到程序真正要执行的时候才进行。因此,装入内存后,所有的地址均为相对地址,这种方式需要一个重定位寄存器的支持

  • 特点是:可以将程序分配到不连续的存储区中,在程序运行之前可以只装入它的部分代码即可投入运行,之后在程序运行期间,根据需要动态申请分配内存,便于程序段的共享,可以向用户提供一个比存储空间大得多的地址空间

程序的链接有以下三种方式

  • 静态链接

  • 程序运行之前,先将各目标模块及它们所需的库函数链接成一个完整的可执行程序,以后不再拆开

  • 装入时动态链接

  • 将用户源程序编译后得到的一组目标模块,在装入内存时,采用边装入边链接的方式

  • 运行时动态链接

  • 对某些目标模块的链接,是在程序执行中需要该目标模块时才进行的。

  • 优点是便于修改、更新,便于实现对目标模块的共享

逻辑地址空间与物理地址空间

  • 编译后,每个目标模块都从0号单元开始编址,这称为目标模块的相对地址(或逻辑地址)

  • 当链接程序将各个模块链接成一个完整的可执行目标程序时,链接程序顺序依次按各个模块的相对地址构成统一的从0号单元开始编址的逻辑地址空间。

  • 不同进程可以有相同的逻辑地址,因为相同的逻辑地址可以映射到主存的不同位置

  • 物理地址空间是指内存中物理单元的集合,是地址转换的最终地址,进程在运行时执行指令和访问数据,最后都要通过物理地址从主存中存取。当装入程序将可执行代码装入内存时,必须通过地址转换将逻辑地址转换成物理地址,这个过程称为地址重定位

连续分配管理方式

  • 单一连续分配:分配到内存固定的区域(单用户/单任务的操作系统)

  • 内存在此方式下分为系统区、用户区,系统区仅供操作系统使用,通常在低地址部分;用户区为用户提供的、除系统区之外的内存空间

  • 这种方式不需要内存保护,因为内存中永远只有一道程序,肯定不会因越界影响其他程序

  • 优点是简单、无外部碎片,可以采用覆盖技术,不需要额外的技术支持

  • 缺点是只能用于单用户、单任务的操作系统中,有内部碎片,存储器的利用率极低

  • 固定分区分配

  • 最简单的一种多道程序存储管理方式,将用户内存空间划分为若干固定大小的区域,每个分区只能装入一道作业。当有空闲分区时,便可再从外存的后备作业队列中选择适当大小的作业装入该分区,如此循环

  • 动态分区分配 可变分区分配

  • 不预先划分内存,而是在进程装入内存时,根据进程的大小动态地建立分区,并使分区的大小正好适合进程的需要

  • 首次适应(First Fit)算法 :空闲分区以地址递增的次序链接。分配内存时顺序查找,找到大小能满足要求的第一个空闲分区

  • 最佳适应(Best Fit)算法 :空闲分区按容量递增的方式形成分区链,找到第一个能满足要求的空闲分区

  • 最坏适应(Worst Fit)算法 最大适应(Largest Fit)算法 :空闲分区以容量递减的次序链接,找到第一个能满足要求的空闲分区,即挑选出最大的分区。

  • 邻近适应(Next Fit)算法 循环首次适应算法 :由首次适应算法演变而成。不同之处是,分配内存时,从上次查找结束的位置开始继续查找

  • 以上几种方法的评价

  • 首次适应算法是最简单、最好、最快的。不过,首次适应算法会使得内存的低地址部分出现很多小的空闲分区,而每次分配查找时,都要经过这些分区,因此增加了查找的开销

  • 邻近适应算法试图解决这个问题,但实际上,它常导致在内存的末尾分配空间分裂成小碎片。(因为在一遍扫描中,内存前面部分使用后再释放,不会参与分配)。它通常比首次适应算法更差。

  • 最佳适应算法虽然称为最佳,但是性能通常很差,因为每次最佳的分配会留下很小的难以利用的内存块,会产生最多的外部碎片

  • 最坏适应算法与最佳适应算法相反,它把最大的连续内存划分开,会很快导致没有可用的大内存块,因此性能也非常差。

非连续分配管理方式

根据分区大小是否固定分为分页存储管理方式和分段存储管理方式

  • 分页存储管理方式

  • 根据运行作业时是否要把作业的所有页面都装入内存才能运行,分为基本分页存储管理方式和请求分页存储管理方式

在系统中通常设置一个页表寄存器(PTR),存放页表在内存的起始地址F和页表长度M。进程未执行时,页表的始址、长度存放在进程控制块中,当进程执行时,才将页表始址、长度存入页表寄存器。设页面大小为L,逻辑地址A到物理地址E的变换过程如下(逻辑地址、页号、每页的长度都是十进制数)

  • 计算页号P(P=A/L)和页内偏移量W(W=A%L)

  • 比较页号P和页表长度M,若P >= M,则产生越界中断,否则继续执行

  • 页表中页号P对应的页表项地址 = 页表始址F + 页号P * 页表项长度,取出该页表项内容b,即为物理块号。

注意区分页表长度和页表项长度。页表长度的值是指一共有多少页,页表项长度是指页地址占多大的存储空间

  • 计算E = b * L + W,用得到的物理地址E去访问内存

两次访问内存

块表:访问一次内存(如果命中)

基本分段存储管理方式

  • 与分页的区别联系

  • 分页管理方式从计算机角度出发,目的是提高内存利用率,提升计算机的性能。通过硬件机制实现,对用户完全透明

  • 分段管理方式从用户、程序员角度出发,满足方便编程、信息保护与共享、动态增长、动态链接等方面需求

虚拟内存管理

核心思想:在有限物理内存上,为用户提供一个比实际内存大得多的、逻辑连续的地址空间。
三大目标:

  1. 提高内存利用率:通过部分加载,让更多进程并发运行。

  2. 简化编程:程序员无需关心物理内存大小和布局。

  3. 实现内存保护:每个进程拥有独立的地址空间。

📖 理论基础:局部性原理

  • 时间局部性:一条指令或数据被访问后,短期内可能再次被访问(如循环)。

  • 空间局部性:访问了一个存储单元后,其附近的单元也可能很快被访问(如顺序执行、数组)。

⚙️ 核心机制:请求分页

这是实现虚拟存储最主流的方式,在基本分页管理基础上增加了两个关键功能:

  1. 请求调页:仅当需要时才将页面调入内存。

  2. 页面置换:当内存已满且需要调入新页时,选择一页换出到外存(交换区)。

关键数据结构与流程

  • 页表项增强:在基础页表项(页号、物理块号)上增加状态位:

  • 有效/无效位:核心!表示该页是否在内存中。

  • 访问位:用于页面置换算法(如LRU、Clock)。

  • 修改位:判断页面被换出时是否需要写回外存。

  • 缺页中断处理流程(必须掌握!):

  1. 访问逻辑地址。

  2. 查页表,发现“无效位”置位 → 触发缺页中断。

  3. 保护现场,由操作系统处理。

  4. 在外存(交换区)查找所需页面。

  5. 寻找一个空闲物理帧:

  • 若有,直接调入。

  • 若无,则执行页面置换算法选择一页换出;若该页被修改过,则需写回外存。

  1. 将所需页面从外存调入该空闲帧。

  2. 更新页表和快表(TLB)。

  3. 恢复现场,重新执行导致缺页的指令。

页面置换算法

  • 最佳(OPT)置换算法:选择的被淘汰页面是以后永不使用的页面,或是在最长时间内不再被访问的页面,以便保证获得最低的缺页率。

  • 先进先出(FIFO)页面置换算法:优先淘汰最早进入内存的页面,即在内存中驻留时间最久的页面。该算法实现简单,只需要把调入内存的页面根据先后次序链接成队列,设置一个指针总指向最早的页面

  • 最近最久未使用(LRU)置换算法:选择最近最长时间未访问过的页面予以淘汰,它认为过去一段时间内未访问过的页面,在最近的将来可能也不会被访问。该算法为每个页面设置一个访问字段,来记录页面自上次被访问以来所经历的时间,淘汰页面时选择现有页面中值最大的予以淘汰。

  • 时钟(CLOCK)置换算法:扫描到访问位为1的暂不丢弃,但是会置0

  • 抖动(Thrashing)

  • 定义:系统频繁进行页面置换,导致大部分时间花在磁盘I/O上,CPU利用率急剧下降的恶性状态。

  • 原因:同时运行的进程太多,分配给每个进程的物理帧不足,无法满足其局部工作集。

  • 解决方案:

  1. 采用局部置换策略(只置换本进程的页)。

  2. 引入工作集模型,根据工作集大小动态调整分配给进程的物理帧数或系统的多道程序度。

  3. 挂起部分进程。

  • 快表(TLB)

  • 作用:缓存部分页表项,大幅加速地址变换。

  • 工作流程:访问逻辑地址后,先查TLB(快),命中则直接获得物理地址;未命中再查页表(慢),并更新TLB。

  • Belady异常

  • 定义:在FIFO等算法中,分配的物理块数增加时,缺页次数反而增多的反常现象。

  • 不会出现Belady异常的算法:OPT、LRU、Clock等栈式算法。

文件管理

文件与文件系统

文件是以计算机硬盘为载体的存储在计算机上的信息集合

由创建者所定义的一组相关信息的集合,逻辑上可分为有结构文件、无结构文件两种

  • 有结构文件,由一组相似记录组成,又称纪录式文件

  • 顺序文件

  • 索引文件

  • 索引顺序文件

  • 无结构文件,被视为一个字符流,又称流式文件,对记录的访问只能通过穷举搜索的方式。适用于对基本信息操作不多的文件如源程序文件、目标代码文件

文件系统:就是操作系统中负责操纵和管理文件的一整套设施,它实现文件的共享和保护,方便用户“按名存取”

目录

文件控制块

  • 在文件系统内部给每个文件唯一地设置一个文件控制块,用于描述和控制文件的数据结构,以实现按名存取。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。为了创建一个新文件,系统将分配一个FCB并存放在文件目录中,成为目录项

  • FCB包含以下信息

  • 基本信息

  • 文件名、物理位置、逻辑结构、物理结构等

  • 存取控制信息

  • 存取权限等

  • 使用信息

  • 建立时间、修改时间等

目录结构:单级,二级,树形,图形

文件实现

  • 文件分配方式:连续分配,链接分配,索引分配,对应的结构是顺序结构,链式结构,索引结构

  • 文件存储空间管理:

  • 空闲表法

  • 空闲链表法

  • 位示图法

磁盘管理

磁盘地址结构

  • 柱面号、盘面号、扇面号

磁盘调度算法

  • 先来先服务算法(FCFS)

  • 最短查找时间优先算法(SSTF)

  • 扫描算法(电梯算法)(只有到最边上的磁道才能改变磁头移动方向)

  • 循环扫描算法

多级索引

若使用多层索引,则各层索引表大小不能超过一个磁盘块。

设备管理

设备管理

使用方便,与设备无关,效率高,管理统一

分类:存储设备或输入输出设备、块设备或字符设备、低速中速高速设备

I/O控制方式

  • 程序直接控制方式

  • 也可以称为查询方式,计算机从外部设备读取数据到存储器, 每次读一个字的数据. 对读入的每个字, CPU需要对外设状态进行循环检查, 直到确定该字已经在I/O控制器的数据寄存器中

  • 中断驱动方式

  • 思想是, 允许I/O设备主动打断CPU的运行并请求服务, 从而解放CPU, 使得其向I/O控制器发送读命令后, 可以继续做其他有用的工作.

  • DMA方式

  • 中断驱动方式中, I/O设备与内存之间的数据交换必须要经过CPU中的寄存器, 所以速度还是受限, 而DMA(直接存储器存取)方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路(以数据块为单位), 彻底解放CPU(不经过CPU)

  • 通道控制方式

缓冲区

缓冲区 (Buffer)

  • 目的

  • 缓和CPU与I/O设备间速度不匹配的矛盾

  • 减少对CPU的中断频率, 放宽对CPU中断响应时间的限制

  • 解决基本数据单元大小(数据粒度)不匹配的问题

  • 提高CPU和I/O设备之间的并行性

  • 设置方式

  • 单缓冲:数据到达率和离去率相差很大时

  • 双缓冲:信息输入和输出率相同时,实现两者并行

  • 多缓冲:阵发性的输入输出

常用设备分配技术

独占,共享,虚拟(SPOOLing)

例题

  1. 什么是临界区

每个进程中访问临界资源的那段代码称为临界区。

  1. 进程同步机制应遵循的原则:空闲让进,忙则等待、有限等待,让权等待

  2. 在操作系统中,实现进程同步的机制有:信号量机制,管程机制

  3. 设某类资源有5个,由3个进程共享,每个进程最多可申请(2)个资源而使系统不会死锁

进程数小于资源数,则不会发生死锁的公式为:

  • 最多资源申请数=资源总数/进程数(可以整除的条件下)

  • 最多资源申请数=(资源总数/进程数)+1(不可以整除的条件下)

  1. 在银行家算法中,若出现下述资源分配情况:

  • 该状态是否安全?(安全)

  • 找到一个安全序列(03412)注意这里的数字表示每个资源的数量

  • 若进程P2提出请求request(1,2,2,2)后,系统能否将资源分配给它?(不能)

  1. 设有8页的逻辑空间,每页有1024字节,它们被映射到32块的物理存储区中,那么,逻辑地址的有效位是13位,物理地址至少是15位。

8*1024;32*1024

  1. 下面的储存管理方案中,(固定分区)方式可以采用静态重定位。

  2. 采用(分段式存储管理)不会产生内部碎片

  1. 影响文件安全的主要因素(人为因素、自然因素、系统因素)

  2. 常用的文件存取方式有两种:顺序存储和随机存储

  3. 从用户的观点看,操作系统中引入文件系统的目的是(实现对文件的按名存取)

  4. 有一个顺序文件含有10000条记录,平均查找的记录位数5000个,采用索引顺序文件结构,则最好情况下平均只需查找(100)次记录。

10000开根号=100,平均50,50+50=100

  1. 对磁盘进行移臂调度的目的是为了缩短(寻找)时间

  2. 下列算法中,用于磁盘移臂调度的是(最短寻找时间优先算法)

  3. 磁盘驱动调度算法中(先来先服务)算法可能会随时改变移动臂的运动方向。

  1. 在中断处理中,输入/输出中断是指(设备出错,数据传输出错)

  2. DAM方式是在(I/O设备和主存)之间建立一条直接数据通路

  3. DMA方式与中断数据方式的主要区别是什么。

  1. 在计算机系统上配置 OS(operating system,操作系统)的目标是什么?作用主

要表现在哪几个方面?

【参考答案】在计算机系统上配置OS,主要目标是实现:方便性、有效性、可扩充性和开

放性。

OS的作用主要表现在以下3个方面:①OS作为用户与计算机硬件系统之间的接口;②OS作

为计算机系统资源的管理者;③OS实现对计算机资源的抽象。

  1. 实现分时系统的关键问题是什么?应如何解决?

【参考答案】实现分时系统的关键问题是使用户能与自己的作业进行交互,即用户在自己

的终端上输入一条命令以请求系统服务后,系统能及时地接收并处理该命令,并在用户能接受

的时延内将结果返回给用户。

及时地接收命令和返回输出结果的实现方式是在系统中配置一个多路卡,并为每个终端配

置一个缓冲区以暂存用户输入的命令和输出的结果。因此,关键要解决的问题是确保在较短的

时间内系统中所有的用户程序都能执行一次,从而使用户输入的命令能够得到及时响应。为

此,一方面,用户作业被提交后应立即进入内存;另一方面,系统应设置一个被称为时间片的

很短的时间,并规定每个程序每次最长只能连续运行一个时间片,如果时间片用完,则不管它

是否运行完毕,都必须将CPU让给下一个作业。通过使作业分时共享CPU,所有的作业都可以

得到及时的处理,用户的请求亦可得到及时的响应。

  1. 编写程序时,源代码必须经过编译和链接生成目标代码,请问什么是链接?链接主要解决了什么问题?简述链接的主要类型及其优缺点。

【参考答案】链接是指由链接程序将编译后形成的一组目标模块以及所需库函数链接在一

起,进而形成一个完整的装入模块。

链接程序按各个模块的相对地址依次构成统一的从0号单元开始编址的逻辑地址空间。链接

主要有3种类型。

(1)静态链接:在程序运行之前,先将各目标模块及它们所需的库函数链接成一个完整

的可执行程序,以后不再拆开。优点:适用范围比较广,无须担心用户机器缺少某个库函数。

缺点:①修改或更新某个目标模块时需要重新打开装入模块,这不仅涉及效率问题,而且在很

多时候甚至是不可能实现的;②在静态链接中,每个模块必含有目标模块的复制,无法实现

共享。

(2)装入时动态链接:将用户程序编译后所得到的一组目标模块,采用边装入边链接的方

式装入内存。优点:①便于修改和更新,针对动态链接方式,由于各目标模块是分开存放的,

因此非常容易修改或更新各目标模块;②便于实现对目标模块的共享,针对装入时链接方式,

很容易将一个目标模块链接到几个应用模块上,实现多个应用模块对目标模块的共享。缺点:

由于应用程序事先无法确定本次要运行的模块,因此该程序的所有模块要全部装入内存,并在

装入时链接在一起。有部分目标模块不会被运行,但也要装入,低效且浪费空间。

(3)运行时动态链接:将某些目标模块的链接推迟到程序执行时才进行。优点:在运行

时动态链接过程中未用到的目标模块都不会被调入内存和链接,这样不仅能加快程序的装入过

程,而且可以大大节省内存空间。

  1. 为什么说分段系统较分页系统更易实现信息共享与保护?

【参考答案】①对于分页系统,每个页面是分散存储的,为了实现信息共享与保护,页面

之间需要一一对应起来,为此需要建立大量的页表项。②对于分段系统,每个段都从0开始编

址,并采用一段连续的地址空间,这样在实现信息共享与保护时,只须为所要共享与保护的程

序设置一个段表项,将其中的起始地址与内存一一对应起来即可。

  1. 简述在具有快表的请求分页系统中,将逻辑地址转换为物理地址的完整过程。

  2. 什么是“抖动”?产生“抖动”的原因是什么?

①“抖动”是指刚被换出的页很快被访问,须重新调入,因此须再选一页调出,而此时被换出的页很快又要被访问,因而又须将它调入,如此频繁地更换页面,使得系统把大部分时间用在了页面的换进/换出上,而几乎不能完成任何有效的工作,我们称这一现象为“抖动”。

②产生“抖动”的根本原因是同时在系统中运行的进程太多,分配给每个进程的物理块数太少,其不能满足进程正常运行的基本要求,致使每个进程在运行时会频繁缺页。

  1. 为了实现请求分段存储管理,应在系统中增加配置哪些硬件机构?

为了实现请求分段存储管理,应在系统中配置多种硬件机构,以支持快速完成请求分段功能。所需的硬件支持有段表机制、缺段中断机构以及地址转换机构。

  1. I/O 软件一般分为用户层软件、设备独立性软件、设备驱动程序和中断处理程序这4 个层次,它们的基本功能分别是什么?请说明下列工作分别是在哪一层完成的?

(1)向设备寄存器写命令。

(2)检查用户是否有权使用设备。

(3)将二进制整数转换成ASC Ⅱ的格式打印。

(4)缓冲管理。

(1)向设备寄存器写命令是在设备驱动程序中完成的。

(2)检查用户是否有权使用设备,属于设备保护,因此其在设备独立性软件中完成。

(3)将二进制整数转换成ASCII格式打印是通过I/O库函数完成的,如C语言的库函数printf中就有打印格式的控制字符串,因此其在用户层软件中完成。

(4)缓冲管理属于I/O的公有操作,因此是在设备独立性软件中完成的。

  1. 为什么要有设备驱动程序?用户进程是如何通过设备驱动程序来控制设备工作的?

设备驱动程序与硬件密切相关,主要负责接收上层软件发来的I/O指令,并将其转换成具体要求发送给设备控制器;反之,也将来自设备控制器的信号传送给上层软件。采用设备驱动程序实现I/O系统的高层与设备控制器之间的通信,驱动I/O设备工作。

License:  CC BY 4.0
Share

Further Reading

OLDER

计算机网络核心考点整理总结

NEWER

计算机组成原理

Recently Updated

  • 计算机组成原理
  • 计算机操作系统
  • 计算机网络核心考点整理总结
  • 仿晋江小说阅读器的鸿蒙app
  • 计算机网络6-应用层

Trending Tags

计算机网络 面试 src 安全运营 文件上传 php反序列化 xss csrf ssrf xxe

Contents

©2026 cindahy. Some rights reserved.

Using the Halo theme Chirpy