Loading

877 OS 小笔记

并发进程的最少资源类

某系统有4个并发进程,需要同类资源2个,系统中这类资源最少是多少个时,系统不会发生死锁

答案:5个,4*(2-1)+ 1=5,(资源数-1)*进程数 + 1

银行家算法

 

 已分配的总数 7 6 5,总资源数 9 8 5,相减得到可用资源数 2 2 0,然后各组最大需求量减去已分配资源数得到各组需要的资源数量

 P1 5 3 1    P2 0 1 0      P3 6 0 1      P4 0 0 1      P5 2 3 1

 可以满足P2接下来的运行

 P2结束后释放资源还剩  4 3 1,P4或者P5可以接着运行,只能选C选项

可变分区分配,首次适应算法,最佳适应算法,最坏适应算法,循环首次适应算法

  • 首次适应算法,找到第一个能满足分配大小的空闲区为止
  • 最佳适应算法,空闲区按大小顺序排序后,找到第一个满足要求的空闲区
  • 最坏适应算法,作业放置到主存中与它所需大小差距最大的空闲区中

虚拟存储管理系统的基础是程序的 局部性 理论,根据这个理论,Denning提出了 工作集 理论

程序运行过程中,局部集(驻留集)大小是动态变化的

页表级数

某计算机有32位虚地址空间,且页大小为1024字节,每个页表项长4个字节,每个页表都包含在一页中,所以使用多级页表,需要几级页表?每一级都有多少页表项?

32位地址空间,需要划分页号和页内偏移,页内偏移占10位,页号占有12位,一页2^10,可以容纳 1024/4=256个,即8位,地址空间剩下22位,用3级页表,前两个页表256个,最后这个页表64个

什么叫进程?为什么要引入进程?

进程:正在运行的程序的实例

引入进程的原因:为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述,引入进程的概念

为什么引入线程

减少并发程度的开销,提高并发程度

分页式与分段式内存管理有什么区别?他们如何实现共享和保护?

  • 页是信息的物理单位,段是信息的逻辑单位
  • 页的尺寸是系统决定,段的尺寸因段而异
  • 页式地址空间是一维的,段式的地址空间是二维的
  • 分页式和分段式内容管理实现共享和保护方法分别是,代码可重入,在有关作业的段表中增加一个表项,其基址指向共享段在内存中的起始地址

现代操作系统挂起状态是何意义?引入的目的是什么?

挂起进程在操作系统,可以定义为暂时被淘汰出内存的进程,机器的资源是有限的,在资源不足的情况下,操作系统对在内存中的程序进行合理的安排,其中有的进程暂时调离出内存,当条件允许的时候,会被操作系统再次调回内存,重新进入等待被执行的状态,即就绪态,系统在超过一定的时间没有任何动作

引入挂起的目的

  • 提高处理器的效率,就绪进程表为空,有空闲内存空间用于交易,可提高处理器效率
  • 可为运行进程提供足够内存,资源紧张时,把某些进程对换至外存
  • 有利于调试,调试时,挂起被调试进程,方便对地址空间进行读写

银行家算法

死锁避免的一种算法,在每次实施资源分配之前,先进行试探分配,并对这种试探分配进行安全性计算,查找这种试探分配中是否存在某种顺序,按此顺序进行资源分配和回收使全部进程都能够正常运行结束,若存在这种顺序,正式实施这次资源分配,否则拒绝此次资源分配

等长时间片轮转处理机,调度算法的分时操作系统,各终端用户所占有时间片必定是相同的,这种说法对吗?

处理机是分配给进程的,不同终端用户可能有不同数量的进程,一个拥有较多数量进程的终端显然比拥有较少数量进程的终端获得CPU的时间要多

支持虚拟存储器的技术是 请求分页技术

在UNIX操作系统中,为块设备提供了两种读方式,分别是一般读和提前读

在页式虚存管理中,每个作业有一个页表

虚拟存储器对用户是透明的,对程序员是不透明的

解除死锁的方法,撤销进程,剥夺资源

作业控制说明书是由作业控制语言编写的

创建一个进程,建立一个PCB,为进程分配内存资源,将PCB插入进程就绪队列

平均周转时间最小的作业调度算法是短作业优先算法

段逻辑地址13位,段内地址23位,内存1M,辅存100G,虚拟存储器最大实际容量可能是

min(计算机地址空间,内存+辅存) = min(2^36,100G+1M),即64GB

逻辑地址转物理地址

页号与物理块号对应关系:0->2,1->3,2->1,3->6

页面大小1024,逻辑地址2148对应的物理地址?2148/1024=2,2148%1024=100,所以1*1024+100=1124

逻辑地址4000对应的物理地址,4000/1024=3,4000%1024=928,所以6*1024+928=7072

 

 

 什么叫文件目录

 用来标识文件和记录文件情况的信息集合称为文件目录,文件目录中的每个目录项与一个文件对应,有如下内容

  • 文件的控制信息,文件的结构信息,文件的管理信息

实现分页虚拟存储,页表至少包含哪些内容

页号,标志,主存块号,磁盘上的位置

等待状态和阻塞状态

等待状态:等待协作进程的一个消息暂时不能运行的状态

阻塞状态:等待一次打印输出结束、等待从磁盘上读入数据

进程与进程之间的地址空间相互独立,同一进程的各线程间共享进程的地址空间,线程间共享堆,栈是独享的

七状态模型

挂起就绪即静止就绪,挂起阻塞即静止阻塞

  • 运行态不可到挂起阻塞
  • 挂起阻塞态单向到挂起就绪态

进程间同步源于合作,互斥源于竞争

响应比的定义:周转时间/等待时间

设备分配程序分配设备的过程通常是

  • 先分配设备
  • 再分配设备控制器
  • 最后分配通道

物理内存表,描述物理内存空间的分配使用状况

原语

若干条指令构成的"原子操作",作为一个整体不可分割

逻辑文件

用户角度看到的文件组织结构,用户可以直接处理的数据结构

中级调度

由于存储空间紧张,系统效率降低,中级调度程序将暂时不运行的进程全部交换至外存挂起,一旦内存空间允许,就将外存挂起进程换入内存

顺序性

  • 内部顺序性,对一个进程来说,它的所有指令是按序执行的
  • 外部顺序性,对多个进程来说,所有进程依次执行

并发性

外部并发性,对于多个进程来说,所有进程是交叉进行的

申请设备时,指定物理设备号不能提高设备使用率

申请设备时,指定逻辑设备号可以使灵活性变强

虚拟存储器技术,要求进程不必全部装入内存,运行过程中不必常驻内存

 

 

 

 

 

 

 

 

 可重入代码

 纯代码,执行过程中没有任何改变的代码段,不发生与时间有关的错误

 文件属性,文件存储和管理信息,如文件名、文件内部标识、文件存储地址、访问权限、访问时间等

进程同步与互斥

保证并发过程共享资源时,不发生与时间有关的错误

进程通信

实现进程间交换信息,达到协作完成共同任务的目的

死锁

防止进程因竞争资源引起的无限等待

进程采用时间片轮转算法,是为了多个用户都能得到系统及时响应

若系统中有五个并发进程都要访问同一个变量A,与变量A相关的临界资源1 个,临界区5

可寻址是块设备的基本特征

共享设备,一段时间内可以允许多个进程同时访问,同一时刻共享设备仍只允许一个进程访问

共享设备,必须可寻址可随机访问

批处理系统主要特征,提高计算机利用率

采用动态重定位,目标程序可以不经任何改动装入物理内存

页式存储管理中,每个进程的页表都存放在内存中,页表的物理地址存放在页表基址寄存器(PTBR)

为了发挥系统并行性,提高IO设备使用效率,采用

  • 中断技术
  • 缓冲技术
  • 设备共享
  • 假脱机技术

同一程序可由多个进程构成

ACL,文件访问控制列表,基于身份的文件访问控制

实时操作系统追求的主要目标是,满足任务的截止时间

绝对装入技术,系统是在编译时完成的地址重定位

进程间通信方式,共享存储器,消息传递,管道通信

操作系统设备管理的主要对象,IO设备,设备控制器,IO通道

临界资源可以采用互斥访问方式来实现共享

共享设备是可以被多个进程并发占用的设备

ACL(存取控制表)在系统中只有一个

可重定位分区分配可以为每个进程分配连续的内存空间

连续分配是指为一个用户进程分配一个连续的内存空间,可进一步分为

  • 单一连续分配
  • 固定分区分配(等分和不等分)
  • 动态分区分配
  • 动态重定位分区分配(紧凑技术)

虚拟存储技术,实现了有限的物理空间中运行较大的进程,实质是以时间换空间

 

 

 

 

 

 

 CLOCK(NRU),时钟置换算法,淘汰第一个访问位为0的页面,遇到访问位为1的页面,置为0

 改进型CLOCK,在CLOCK的基础上增加一个修改位

  • 第一轮,淘汰第一个(0,0)页面
  • 第二轮,淘汰第一个(0,1),并置访问位为0
  • 第三轮,淘汰第一个(0,0)
  • 第四轮,淘汰第一个(0,1)

高响应比优先算法,响应比: (等待时间 + 要求服务时间) / 要求服务时间    或者  写成       周转时间/要求服务时间

 

 

 

 

 

 

 

 段页式管理中,地址转换表,每个进程的每个段一张段表,一张页表

 结合了FCFS和短作业优先算法的是多级反馈队列调度算法

 考虑短作业和长作业的是高响应比算法

 文件的物理结构,顺序结构,链式结构,索引结构

 成组链接法

 

 

此算法基本上克服了最短寻道时间优先算法的服务集中于中间磁道和响应时间变化比较大的缺点,而具有最短寻道时间优先算法的优点即吞吐量较大,平均响应时间较小,但由于是摆动式的扫描方法,两侧磁道被访问的频率仍低于中间磁道

固定分区存储管理把内存中的用户区事先划分成若干个连续的分区,它们个数固定,尺寸相同且不变

固定分区管理方法中,每个连续分区的大小,预先固定划分的,可相同,也可不同

对内存采用页式存储管理,所划分的页面大小必须相同

死锁检测,有时要抢夺某进程的资源进行再分配

作业平均周转时间最小的作业调度算法,短作业优先算法

4个缓冲区,读A0磁盘读一次,读A2磁盘读一次,读A5磁盘读一次,写A0,不用走磁盘,读B0磁盘读一次,磁盘读了4次,缓冲区满了,读B1,淘汰第一个缓冲区,A0写回磁盘,B1读出磁盘,此时共计读写磁盘6次

处理系统调用时,不需要屏蔽外部中断

系统调用处理过程一般可以被中断

访问创建控制块在用户态下进行

分时系统中,普通进程优先级可以被改变

凡是可以随机存取的文件都可以顺序存取

进程间通信方式

  • 共享存储器系统,数据结构
  • 消息传递
  • 管道通信

 

 段式存储管理中,操作系统实质上采用动态分区分配方法为每个逻辑段分配内存

 随机访问的文件可以通过提前读提高磁盘IO速度

 以下处理死锁的方法中,哪种方法将使进程并发程度最高(可以在没有死锁时,允许最多数目进程无需等待继续前进)

  • 预先静态分配所有资源
  • 资源排序,有序使用资源
  • 银行家算法
  • 检测死锁并杀死进程,释放资源

越在后期处理死锁,越能使进程并发程度高,所以检测死锁并杀死进程,释放资源,进程并发程度最高

磁盘调度算法,是SCAN,不是CSCAN

 

 设备管理,主要包括缓冲区,设备分配,设备处理,虚拟设备,实现设备独立性

 寻找设备驱动程序接口函数的任务由设备无关的操作系统软件完成

 段式存储管理中,操作系统实质是采用动态分区分配方法为每个逻辑段分配内存

 OS为了调整内存负荷,需要挂起若干进程,中级调度优先选择挂起低优先级阻塞态

 为了保护系统核心代码,从管态到目态的唯一途径是 修改程序状态字

 从目态到管态的转换则是由中断处理程序完成的

 当每类资源只有一个个体时,有环必有死锁

 虚拟内存管理中,地址变换机构将虚拟地址变换为实地址,形成物理地址的阶段在运行

 记录型信号量,在执行一次P操作时,信号量的值应当减1,当值为小于0时,进程应阻塞

 页式存储管理中,假定访问主页的时间为200ms,访问快表的时间为40ms,快表有16个单元,查找快表的命中率为90%,按逻辑地址转换成绝对地址进行存取的平均时间

 0.1*(200 + 200) + 0.9*(40 + 200) = 40+216=256ms

 静态分配资源死锁防止策略,破坏了"循环等待"和"占有并等待"两个条件

 管道通信,以管道消息为主要单位进行读写,可进行大批量数据交换,工作是先进先出

 动态重定位技术,目标程序可以不经任何改动装入物理内存

 文件系统中源程序是无结构的字符流式文件

 在哲学家进餐问题中,若仅提供5只筷子,则同时要求进餐的人数不超过4个,一定不会发生死锁

 用户与操作系统的接口有两类,命令接口和程序接口

 N个进程互斥访问一变量,设置一信号灯S,则S取值范围是 -(N-1)~1

 输入进程Get负责把输入记录放入缓冲区S,用户进程Copy负责把记录从缓冲区S复制到缓冲区T,输出进程Put负责把记录从缓冲区T中取出输出。

 设缓冲区S可放20个记录,缓冲区T可放24个记录。试用PV操作实现以上3个进程之间的同步

Semaphore emptyS = 20, emptyT = 24
Semaphore fullS = 0, fullT = 0
Semaphore mutexS = 1, mutexT = 1;
Get();
Copy();
Put();

Process Get(){
    while(1){
        输入一条记录
        P(emptyS)
        P(mutexS)
        记录放入S
        V(mutexS)
        V(fullS)
    }
}

Process Copy(){
    while(1){
        P(fullS)
        P(emptyT)        
        P(mutexS)
        P(mutexT)
        从S复制一条记录到T
        V(mutexT)
        V(mutexS)
        V(fullT)
    }
}

Process Put(){
    P(fullT)
    P(mutexT)
    从T中取出一条数据
    V(mutexT)
    V(emptyT)
}

抢占式短作业优先(最短剩余时间优先)

 

 段页式存储管理需要为每一个作业提供一个段表,为每一个段表提供一个页表

 页式存储管理需要为每一个作业提供一个页表

 某系统中,每个进程在IO阻塞之前的运行时间为T,一次进程切换的系统开销时间为S,采用时间片长度为Q的时间片轮转法,且S<Q<T,则CPU的利用率是 Q/(Q+S)

 我们把并发进程中与共享变量有关的程序段称为 临界区

 嵌入式系统采用微内核方法实现结构设计

 PCB是进程存在的唯一标志,程序是系统感知进程存在的唯一实体

 FCFS(先来先服务) 有利于长作业

 虚拟页式存储管理中页表有若干项,当内存中某一页面被淘汰时,可根据修改标志决定是否将该页面写回外存

 一磁盘,10个柱面,每柱面20个磁道,每盘面分成16个扇区,采用位示图对其存储空间进行管理,字长是16个二进制,位示图共需 200 字  10*20*16 /16=200

 只要是逻辑上具有完整意义的信息集合,对操作系统文件而言,都可以称为文件

 一进程被唤醒,意味着这个进程进入就绪态  

 采用动态重定位装入作业的存储管理方式有,可变分区存储管理,页式存储管理,页式虚拟存储管理

 在非剥夺调度方式下

  • 一个进程从运行态进入等待态
  • 运行的进程执行结束
  • 一个进程从运行态进入就绪态

逻辑文件包括,流式文件,记录式文件

多道程序设计系统往往会同时存在许多进程,对每一个进程来说

  • 都有顺序性
  • 可能由于自身或外界原因中断
  • 当前能否占用处理器,由进程调度决定

进程的状态

  • 动态性
  • 并发性
  • 独立性

常抖动影响CPU的利用率,从管理员角度来看 ,减少多道程序道数和增加主存来改善CPU利用率

单个分区的存储管理可采用覆盖技术增大程序可用的逻辑存储空间的容量

一个程序在一个数据集上的一次运行称为 进程

一个链接结构文件,存放了1,2,3,4,5五个逻辑记录块,删除4需要访问5次

某个文件系统,采用混合索引分配方式,FCB中共有13个地址项,每个盘块大小为512字节

若每个盘块号只需要用2个字节来描述,则该文件系统需要设置几级间接索引

  • 2个字节,就是2^16,每个盘块可以放256个块号,系统最多用到二次间址
  • 一个一次间址+一个二次间址,允许的文件最大长度是,11+256+256*256,已经超出了磁盘系统实际的盘块数

若每个盘块号用3个字节来描述,共允许每个盘块中存放170个盘块地址,而且FCB中采用10个直接地址项,1个一级间索引,1个二级间接索引和1个三级间接索引,对某个长度为18000000字节的文件,共需占有多少个盘块

  • 18000000/512 = 35156,向上取整35157块,文件内容盘块有35157块
  • 10个直接地址项,10块,1个一级间接索引,170块,1个二级间接索引,170*170 = 28900块,35157 - 10 - 170 - 28900 = 6077块,一个三级间接索引不需要完全分配出去,6077 / 170 = 35 6077%170 = 127
  • 所以三级索引块中,只需要1个一级索引,1个二级索引,二级索引块中,36个三级索引
  • 所以共需要 35157 + 1 + 171 + 38 = 35367块

 用户程序将一个字符送到显示器上显示,使用的是操作系统提供的系统调用接口

 操作系统的IO子系统由四个层次组成,合理的层次组织排列顺序是

  • 用户级IO
  • 设备无关软件
  • 设备驱动程序
  • 中断处理程序

在批处理系统控制下实现多道程序并行工作,从系统角度,主要希望进入"输入井"的作业能够 平均周转时间短

并发程序中与共享变量有关的程序段称为临界区,并发进程拥有不同的临界区

假定一个分时系统允许20个终端用户同时工作,分配给每个终端用户的时间片为50ms,而对终端用户的每个请求处理200ms给出应答,终端的最长响应时间为 20*200=4s

页式存储管理中,作业运行时,该作业的页表放在主存用户区

磁盘,8个记录,读记录花1ms,磁盘旋转一周16ms,若8个记录在一条磁道上进行优化分布,全部处理完这8个记录至少需要 33ms(2*16+1)

分区分配内存管理方式的主要保护措施是 界地址保护

批处理作业系统控制下实现多道程序并行工作,从系统角度看,主要希望进入"输入井"的作业能够 平均周转时间短

 独木桥问题,东西方向汽车过独木桥,为了保证安全,只要桥上无车,允许一方的汽车过桥,一方的汽车全部通过后,另一方汽车才允许过桥

 但,当另一方提出过桥时,阻止对方未上桥的后继车辆,待桥面上汽车过完桥,另一方汽车开始过桥

Seamphore cross_bridge // 过桥申请
Seamphore mutex // 桥锁

Process Pdong(){
    P(cross_bridge)
    // 检查桥上车辆数
    count1++
    if(count1 == 1){
        P(wait)
    }
    V(mutex1)
    V(cross_bridge)
    过桥    
    P(mutex2)
    Count1--
    if(Count1 == 0){
        V(wait)
    }
    V(mutex2)
}

Process Pxi(){
    P(cross_bridge)
    count2++
    if(count2 == 1){
        P(wait)
    }
    V(mutex1)
    V(cross_bridge)
    过桥    
    P(mutex2)
    Count1--
    if(Count2 == 0){
        V(wait)
    }
    V(mutex2)
}

重要!三个时间 寻道+平均旋转延迟+传输时间

 位示图进行磁盘块空闲状态管理

100 150 90 60 40

读取数据的时间 = 磁头定位时间 + 平均旋转时间(半转所需的时间) + 读取四个扇区所需的时间(一转有50个扇区,所以一转的时间除以5)

  • 磁头定位时间 (50+60+30+20)*1ms = 160ms
  • 平均旋转时间(4个扇区,所以4倍) = 4*(2/(6000/60)ms = 20ms
  • 读取4个扇区所需的时间 = 4*(2/50)ms = 0.8ms

共180.8ms

采用FCFS,因为Flash半导体存储器,不需要考虑寻道时间和旋转延迟

某文件系统为一级目录结构,文件的数据一次性写入磁盘,已写入的文件不可修改,但可多次创建新文件

在连续、链式、索引三种文件的数据块组织方式中,哪种更合适?为什么?

连续存放,磁盘寻道时间短,文件随机访问效率高,FCB中加入的字段为,起始块号,块数

为定位文件块,需在FCB中设计哪些相关描述字段?

将FCB集中存放,随机查找文件时,只需访问FCB,减少磁头移动和磁盘IO

分时系统中,从键盘输入的请求信息在外存队列上排队等待的时间不属于系统响应时间

用户看到的系统层次是,应用程序,编译程序,操作系统

当一个进程处于等待协作进程的一个消息,称为等待消息

作业调度的主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求

以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要的资源

操作系统的作业调度是一种宏观高级调度

当系统内存资源不满足执行紧迫任务时,操作系统可能将正在运行的进程变为静止就绪

为实现CPU与外部设备并行工作,必须引入的基本硬件是 通道

共有10个柱面,20个记录面,每个磁道分成16个扇区,每个簇的大小为4个扇区,若字长是16位,那么位示图共需 50 字 16/4*10*20=800, 800/16=50

程序装入内存有三种方式,分别是

  • 绝对定位
  • 可重定位装入
  • 动态运行时重定位

页式存储管理中,每个进程有一张页表,而物理页面表只有一张,作用是描述所有物理页框的分配使用状况

现代操作系统基本特性,并发性、共享性和异步性

按照设备的共享属性,可以把设备分为独占设备、共享设备和虚拟设备

IO型作业优先权高于计算型作业的优先权,因为IO操作需及时完成,无法长时间保存IO数据

系统进程优先权高于用户进程优先权,随着进程执行时间增加优先权随之降低,随着作业等待时间增加其优先权应上升

10个座位,一个厨师,供应两种面,一次供应一碗,当且仅当顾客吃完才供应下一碗

Semaphore mutex
Semaphore s1
Semaphore s2
Semaphore finished

Process_chef{
    int rr;
    whiile(1){
        rr = random(2)
        p(finished)
        if(rr == 1){
            做一碗素三鲜面
            v(s1)
        }else{
            做一碗鸡腿面
            v(s2)
        }
    }
}

Process_customer_1{
    p(mutex)
    p(s1)
    取一碗素三鲜面
    v(finished)
    吃面
    v(mutex)
}

Process_customer_2{
    p(mutex)
    p(s2)
    取一碗鸡腿面
    v(finished)
    吃面
    v(mutex)
}

 

 用户在程序一级获得系统帮助,必须通过系统调用

 信息处理的过程:数据输入,数据处理和数据打印是可并行运行的       

 系统采用段页式存储管理,系统未设置关联存储器和Cache情况下,CPU执行指令从主存取操作数,至少需要访问主存 3 次

 操作系统将文件看成有字符序列组成,文件内的信息不再划分结构,这称为 流式文件              

 设备的打开、关闭、读、写等操作是由设备驱动程序完成的

 处于静止阻塞态的进程,在进程等待的事件结束后,进程状态变为静止就绪

 进程调度采用时间片轮转算法是为了多个用户都能得到系统的及时响应

 逻辑文件的组织形式是由用户决定的

 分段存储管理是将作业地址空间划分成若干个大小不同的段,使之与内存存储空间分段相适应,同一作业各段在内存中不一定相邻接

 页式存储管理中,每个进程的页表也存放在内存中,页表的物理地址放在页表寄存器

 操作系统的进程调度分为抢占式和非抢占式两部分

 FIFO算法会产生Belady异常

 为了实现设备独立性,系统必须设置一张 逻辑设备表(LUT),将逻辑设备名映射为物理设备名

 文件系统中,为了实现基于身份文件访问控制,通常为每个文件和目录增加一个用户访问权限

 

 

 进程的异步性,难以重现进程在某个时刻的状态

 分时系统的响应时间时间片大小用户数目相关

 PCB包括 标识信息,说明信息,现场信息,管理信息

 在大型机系统中,批处理作业成批存放在输入井

 OS为了调整内存负荷,需要挂起若干进程,中级调度优先选择挂起 低优先级阻塞态(内存中最不活跃,所以需要优先挂起)

 若程序的装入和链接采用动态装入和动态链接技术,CPU执行指令时,产生的访存地址是 相对地址

 使用IO缓冲技术的先决条件是设备带宽低于CPU带宽

 文件管理的实际上是管理辅助存储空间

 正确的读文件的次序

  • 活动文件表找到文件目录项
  • 按存取控制检查访问合法性
  • 将该文件的逻辑和物理组织形式,将逻辑记录号转换成物理块号
  • 向设备驱动发出IO请求,完成数据交换工作

实现请求分页管理,应在基本分页页表基础上增加

  • 状态位
  • 访问字段
  • 修改位
  • 外存地址

设备控制器是CPUIO设备之间的接口

操作系统,修改部分非核心系统中的寄存器是可以在目态下执行的

读文件属于系统调用,进入核心态,读键盘开中断,进入核心态

临界资源是多进程共享,通过信号量排斥,实现共享

某文件系统采用直接索引分配方式为文件分配磁盘空间,为每个文件分配一个索引块用于记录分配给该文件的所有盘块号

文件目录项中记录该索引块的盘块号,硬盘大小为16TB,盘块大小为4KB,索引块中块号最少占用多少字节?

16TB=2^44B,4KB=2^12,一共有 2^44/2^12=2^32 个盘块,需要用32位来表示,索引块占4字节

该文件系统中支持的单个文件的最大长度为多少

一个盘块4KB=2^12B,可以存放 2^12/4 = 2^10 个索引,所以单个文件的最大长度为 2^10*2^12 = 2^22B

若文件索引块号依次为 23、25、32、20,文件A的字节偏移量 12500 对应的物理块号和块内位移量

块号 ⌊12500/2^12⌋=3,3号块是20(块号从0开始编号), 块内偏移 12500%2^12=212

 

 一个进程不能同一时刻执行多个程序

 线程稳定性比进程稳定性

 资源分配图,可用来检测死锁

 检测死锁并杀死进程,释放资源可以使进程并发程度最高

 动态重定位,可以在运行过程中进行

 假设页的大小为4KB,页表的每个表项占用4B,对与一个32位的地址空间系统,采用多级页表机制,至少需要几级页表?

 4KB=2^12b,页内偏移占用12位,32-12=20,页号占用20位,4KB/4B=2^10,2^20 = 2^10 * 2^10,所以需要2级页表

 检查用户是否有权使用设备是在IO软件的设备独立性软件完成

 对于只存放只读文件的磁盘,适合采用的文件物理结构是连续分配

 设备独立性是指应用程序不依赖于物理设备

 IO软件中的设备独立性软件负责将逻辑设备名映射为物理设备名,并将信息记录到FCB

 文件的两种共享方式分别是基于索引结点的硬链接符号链接

 银行家算法的第三问,例如:此时P3发出资源请求Request(1,2,2,2),是否可以满足它的请求

 

 1. 硬盘大小为16GB,盘块大小为1KB,16GB/1KB = 16*2^20,=2^24,24位需要3个字节来表示

 2. 1个盘块有3个字节保存盘号,剩下1021B保存文件信息,一共2^24个盘块,所以单个文件的最大长度 2^24*1021B

 3. 偏移量2000应该保存在第二个盘块内,即32中,2000-1021=979,块内偏移量为979

 一个单处理机系统内存中有5个进程,处于目态下运行时,处于等待态的最多有5个(系统死锁时,全都处于等待状态)

 虚拟内存管理系统中,地址变换机构将虚地址变换为实地址,形成物理地址的阶段是在运行

 进程何时占用处理器以及能占用多长时间取决于进程自身的特性及系统调度策略

 FCFS有利于CPU繁忙型作业,而不利于IO繁忙型作业

 采用运行时动态装入的过程,在整个声明周期中允许操作系统有条件地将其在物理内存中移动

 在UNIX中,文件名和文件描述信息是分开存放的,所以文件的磁盘索引结点中存放的信息是 文件主标识、文件的物理地址、文件长度

 操作系统为用户提供服务的方式是系统命令系统调用

 操作系统的主要功能包括

  • 处理机管理
  • 文件管理
  • 作业管理
  • 存储管理
  • 设备管理

操作系统引入进程的目的,使程序能并发执行,提高系统利用率和系统吞吐量

操作系统引入线程的目的,减少并发执行的开销,提高程序执行的并发程度

增加分配给该进程的页框数会降低进程缺页率(不一定,FIFO存在Belady异常)

考虑短作业和长作业的是高响应比算法#

既考虑了短作业,又考虑了长作业和交互式作业的算法是 多级反馈队列算法

访问顺序是TLB内存然后取数,缺页以后处理缺页中断,处理完还按这个顺序执行

 页内偏移,10位.  (参考上面的CLOCK算法)

 256H -> 1A56H,D65H->1D65H,456H->1856

turn这个变量可以保证进程互斥,但不能保证有空让进,譬如,在某一个进程的剩余区阻塞了,那么另一个进程会一直等待

在页式虚拟存储管理中,程序的链接方式必然是运行时动态链接

首次适应法

从空闲分区表第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间

为适应这种算法,空闲分区表(空闲区链)中的空闲分区要按地址由低到高进行排序。

该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区在高 地址空间 保留大的空闲区。

最佳适应算法

从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区的一种计算方法,这种方法能使碎片尽量小

最坏适应分配算法

要扫描整个空闲分区或链表,总是挑选一个最大的空闲分区分割给作业使用。该算法要求将所有的空闲分区按其容量从大到小的顺序形成一空闲分区链,查找时只要看第一个分区能否满足作业要求。

循环首次适应算法

该算法是首次适应算法的变种。在分配内存空间时,不再每次从表头(链首)开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。该算法能使内存中的空闲区分布得较均匀

磁盘调度算法中,FCFS和最短寻道时间优先,可能会随时改变磁臂的运动方向

目标文件是记录式文件

 设计实时系统主要考虑的是系统性能指标的产生结果的时间

 请求页式管理中,页表中状态位的作用是指示该页是否已调入内存

 进程控制块中,包括 进程标识信息,处理机状态信息,进程调度信息和进程控制信息

 操作系统提高IO速度的主要技术是磁盘高速缓存,Spooling技术和缓冲技术(buffer)

 当操作系统完成了用户请求的系统调用功能后,应使系统由管态进入目态

 操作系统是软件资源和硬件资源

 处于静止阻塞态的进程,当它的等待事件发生了,则变为静止就绪态

 一个程序对应多个进程,但不是每个进程对应多个程序

 采用动态重定位技术的系统,目标模块可以不经任何改动直接装入物理内存

 单一连续分区分配存储管理不适合多道程序设计

 多用户系统,配置了相同的多个终端,此时可以只配置一个供多个终端共享的驱动程序

 硬盘直接存取的存储设备,其上存储的文件可以采用顺序存储结构

 

  一个页框10位,2^20页,逻辑地址占30位

  一个页框10位,4096个块,2^12页框,绝对地址占24位

  划分一维逻辑地址,虚地址空间一共30位,页内偏移10位,页表项4B,8位,2^8=256个页表索引,4 8 8 10 表目录项 页号 索引数 页内偏移量

盘块512B,盘块地址4B,隐式链接,一个盘块存储的文件内容508B,盘块地址4B,32位,最多有2^32个盘块,所以能管理的最大文件是2^32*508B

123456/508 = 243,所以在第244块,需要读盘244次

混合索引,512B/4B=128个,4个直接索引,1个一级索引,1个二级索引,1个三级索引,512*4 + 1*128*512 + 1*128*128*512 + 1*128*128*128*512 为可以管理的最大文件

若存储大小为1234567B,1234567/4 = 308641 1234567%4 = 3,一共308642块,3个直接地址项,二级索引128*128 = 16384,16384 < 308641 <  2097152(三级索引),所以需要设置三级索引

308641 / 16384 = 18 308641%16384 = 13729,

不会使CPU进入内核态的是

NOT R0;寄存器R0的内容取非

进程进入就绪态不可能是因为该进程执行wait(P)操作

进程P创建的若干个线程不能共享进程P中其他线程的栈指针(线程的栈是独享的)

系统中有临界资源R1和R2各1个,4个进程p1,p2,p3,p4,其中p1和p2都申请R1和R2,p3申请R1,p4申请R2,若系统出现死锁,则处于死锁状态的进程数至少是 2  个(2个临界资源,所以最少有2个处于死锁进程)

进程调度算法的目标包括

  • 提高CPU利用率
  • 提高系统吞吐量
  • 降低算法自身复杂度

有关时间片的进程调度描述中,错误的是,当前进程的时间片用完后,该进程状态由执行态变为阻塞态

请求分页系统中,页面分配策略与页面置换策略不能组合使用的是 固定分配,全局置换(都固定分配了,全局置换岂不全都替换掉)

 属于多级页表的优点的是,减少页表所占的连续内存空间

 缓冲技术的缓冲池在内存中

SPOOLING系统中的输入井输入缓冲区分别位于磁盘内存

SPOOLING技术,由用户作业控制设备与输入/输出井之间的数据传送

500个盘块的文件目录项在内存中(若为索引分配,其索引块也在内存),删除倒数第2块,操作磁盘IO次数最多的是  隐式链接分配

隐式链接分配方式时,在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针

显式链接这是指把用于链接文件各物理块的指针,显式地存放在内存的一张链接表

若某文件系统采用混合式索引分配方式,索引结点中既有直接地址项,又有间接索引项,与单个文件长度无关的因素是 索引结点的个数

段页式存储管理,分段式存储管理,分页式存储管理,都属于非连续分配方式,一个程序分散地装入不相邻的内存中

段页式存储管理中内碎片和外碎片都有可能产生,错!是否会出现碎片取决于内存的分配方式

固定分区存在内部碎片,可变式分区分配会存在外部碎片

页式虚拟存储系统存在内部碎片;段式虚拟存储系统,存在外部碎片

文件索引结点是在文件创建时产生的,而不是打开文件后产生的

整型信号量:无法实现让权等待

记录型信号量:解决让权等待的问题

同步四项基本原则

  • 空闲让进
  • 当无进程处于临界区,可允许一个请求进入临界区的进程立即进入自己的临界区
  • 忙则等待
  • 当已有进程进入自己的临界区,所有企图进入临界区的进程必须等待
  • 有限等待
  • 对要求访问临界资源的进程,应保证该进程能在有限时间内进入自己的临界区
  • 让权等待
  • 当进程不能进入自己的临界区,应释放处理机

整型信号量不能实现让全等待,所以不遵循四条同步准则

与单道程序相比,多道程序系统的优点是资源利用率系统吞吐率

在单CPU系统中有n个进程,处于阻塞态的进程个数最多是n

若用文件保存一本英汉词典,每个单词及其解释组成一个记录,为了使用户能够快速查找所需单词,该文件的逻辑结构是 索引顺序文件

(10)分段保护中断 (11)访问方式异常而中断 (12)跳转到物理地址102处 (13)越界中断

由题意,位示图占用91个盘块,每盘块大小1KB,因此位示图一共有91KB

91KB=91K*8bit =728K bit,即位示图一共728K个位,由于位示图1位表示1个盘块,因此位示图一共表示728K个盘块,每个盘块大小为1KB,因此总共可以表示728K*1KB=728MB容量

34567/(1024*8) = 4,所以第4块,34567%1024=775,34567%(1024*8) = 1799,1799/8=224,1799%8=7,所以第4块,第224个字节,第7个块

为了加快文件名的检索,UNIX中将FCB拆分为两部分,文件描述信息索引结点

 4TB = 2^42B,1KB = 2^10B,4MB/1KB = 2^32个盘块,32位,4B

 文件大小4MB,4MB = 2^22B,4MB/1KB = 2^12个盘块,1KB/4B = 2^10/2^2 = 2^8个盘块号,2^8 < 2^12 < 2^16,所以需要设置二级索引

 文件内容盘块,需要2^12=4K=4096个,然后看下面计算索引块个数需要17块,一共需要4113块

操作系统是紧贴硬件之上,管理和控制其上的所有软件资源,合理对各类作业进行调度,以及方便用户使用程序的集合

单道批处理系统中,一个批中多个作业的运行是顺序执行

对换空间管理的主要目标是提高进程换入和换出的速度,然后提高文件存储空间的利用率,因此对换取空间的管理采取连续分配的方式

设备接口中,数据的存取和传输是以字符为单位的设备,基本特征是传输速率较低不可寻址,常采用中断驱动方式

文件的索引结点,包括文件主标识符,文件类型,文件存取权限,文件物理地址,文件长度,但不包含文件符号名

微内核的特点

  • 足够小的内核
  • 基于客户/服务器模式
  • 应用机制与策略分离原理
  • 采用面向对象技术
  • 策略放在较高层次
  • 机制放在OS的微内核

按文件组织方式,有结构的文件分为四类

  • 顺序文件
  • 索引文件
  • 索引顺序文件
  • 直接文件或散列文件

中级调度要解决,当内存有空时,从就绪挂起队列中选择进程对换到内存

若程序的装入方式采用动态运行时装入,则链接方式必然是运行时动态链接

保存在磁带上的文件,通常采用顺序结构的物理结构

内存单元复位不是特权指令

正在执行的进程创建了一个子进程,可能发生进程调度

满足短作业优先不发生饥饿现象的调度算法是高响应比优先

中断处理会保存而子程序调用不需要保存的内容是程序状态字寄存器

当系统发生抖动时,可以采取的有效措施是撤销部分进程,对换区大小与抖动无关

用户程序发出磁盘IO请求后,系统的正确处理流程

  • 用户程序
  • 系统调用处理程序
  • 设备驱动程序
  • 中断处理程序

 设置定时器初值、软中断、关中断(由硬件执行)都是特权指令,应用程序可以发请求到系统内核,由内核发出软中断

 若一个用户进程通过read系统调用读取磁盘文件

  •  若该文件数据不在内存中,该进程进入睡眠等待状态
  • 请求read系统调用会导致CPU从用户态切换到核心态
  • read系统调用会使用内存

 open系统调用应该包含文件名称read只包含输入流

 RR调度算法,时间片取最大公约数

 RR调度算法,每一轮调度开始,根据就绪队列进程数目计算一次值

 哲学家算法中,如果一个哲学家先拿起来左边筷子,其他哲学家拿起右边筷子,则一定不会死锁

 影响分时系统响应时间的因素包括时间片大小、用户数、信息交换量和信息交换速度

 批处理作业必须具有作业控制信息

 用户界面包括命令接口、程序接口和图形接口

 页式虚拟存储管理中,缺页故障是因为要访问的页不在内存中

 目录文件中存放的是,该目录中所有子目录和数据

 CPU输出数据速度远远高于打印机打印速度,为缓解这一矛盾,采用缓冲技术

 文件目录的主要作用是实现从文件名到物理地址的转换

 进程间的互斥是一种特殊的同步关系

 只有当该页面被修改过才需要写回外存

 一个进程被中断打断,相应的中断处理完成后,不一定恢复该进程,使它继续进行,可能有优先级更高的进程

 如果进程需要读取磁盘上多个连续的数据块,通道数据传送方式效率最高

 动态重定位在作业执行过程中进行的

 文件系统追求的最重要的目标是提高对文件存取速度

 导致死锁的四个必要条件在死锁时会同时发生

 时间片轮转的周转时间

 

posted @ 2020-09-17 20:50  BigBender  阅读(1127)  评论(0编辑  收藏  举报