Nowcoder专项练习:操作系统(三)

1,进程五种状态转换

在这里插入图片描述

进程三种基本状态:
  • 就绪状态
  • 执行状态
  • 阻塞状态

2,管道

管道是指用于连接一个读进程和一个写进程以实现它们之间通信的一个共享文件


3,分页与分段

  • 分页:页的大小固定,在内存中叫页框,外存叫block,cache中叫cache块。
  • 分段:段的大小不固定。因为一段表示的是一个逻辑完整的功能段。段划分的依据是:一个完整的功能,而一个功能需要多少代码是不确定的。段这种划分方式也就使得它可以被共享,而一页却不可以被共享。

4,逻辑地址转化为物理地址

在请求分页存储管理方案中,若某用户空间为16个页面,页长1KB,现有页表如下,则逻辑地址0A1F(H)所对应的物理地址为多少?

页号块号
01
15
23
37
42

在计算上:
地址偏移量=逻辑地址%页面大小
因此,地址偏移量为 0A1F(H)(2591)%1024=543
页号=逻辑地址/页面大小
因此,页号为 2591/1024=2
查页表得到块号为3,
故物理地址=3*1024+543=3615=0E1F(H)

或者,用更直观的方法:
页长1KB 2^10=1k 页面长度为10位,
故 逻辑地址0A1F(H)转化为二进制位 0000 1010 0001 1111
前面的2(二进制10)为页号,查表找块号为3,故物理地址为 0000 1110 0001 1111 (0E1F)


5,SPOOLing

SPOOLing (即外部设备联机并行操作),该技术是在通道技术和多道程序设计基础上产生的,它由主机和相应的通道共同承担作业的输入输出工作,利用磁盘作为后援存储器,实现外围设备同时联机操作。

SPOOLing系统由专门负责I/O的常驻内存的进程以及输入井、输出井组成;它将独占设备改造为共享设备,实现了虚拟设备功能。

在这里插入图片描述


6,PnP

PnP全称Plug-and-Play,译文为即插即用。意思是系统自动侦测周边设备和板卡并自动安装设备驱动程序,做到插上就能用,无须人工干预,是Windows自带的一项技术。
PnP是由Microsoft提出的,意思是系统自动侦测周边设备和板卡并自动安装设备驱动程序,做到插上就能用。所谓即插即用是指将符合PnP标准的PC插卡等外围设备安装到电脑时,操作系统自动设定系统结构的技术。


7,多道程序系统

多道程序系统通过组织作业(编码或数据)使CPU总有一个作业可执行,因此提高了:

  • CPU利用率
  • 系统吞吐量
  • I/O设备利用率

8,位示图

位示图是利用二进制的一位来表示磁盘中的一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲;为“1”时,表示已经分配。

文件存储管理的方法:

  1. 空闲表法和空闲链表法
  2. 位示图法
  3. 成组链接法

9,分时与实时操作系统

分时系统具有多路性、交互性、“独占”性和及时性的特征。
多路性指,伺时有多个用户使用一台计算机,宏观上看是多个人同时使用一个CPU,微观上是多个人在不同时刻轮流使用CPU。交互性是指,用户根据系统响应结果进一步提出新请求(用户直接干预每一步)。
“独占”性是指,用户感觉不到计算机为其他人服务,就像整个系统为他所独占。
及时性指,系统对用户提出的请求及时响应。

分时系统的特征:

  • 多路性
  • 交互性
  • 独占性
  • 及时性

实时系统的特征:

  • 及时性
  • 可靠性

10,页面调度算法

(1)随机算法rand(Random Algorithm)
利用软件或硬件的随机数发生器来确定主存储器中被替换的页面。这种算法最简单,而且容易实现。但是,这种算法完全没用利用主存储器中页面调度情况的历史信息,也没有反映程序的局部性,所以命中率较低。
(2)先进先出调度算法(FIFO)
先进先出调度算法根据页面进入内存的时间先后选择淘汰页面,本算法实现时需要将页面按进入内存的时间先后组成一个队列,每次调度队首页面予以淘汰。它的优点是比较容易实现,能够利用主存储器中页面调度情况的历史信息,但是,它没有反映程序的局部性,因为最先调入主存的页面,很可能也是经常要使用的页面。
(3)最近最少调度算法LFU(Least Frequently Used Algorithm )
先进先出调度算法没有考虑页面的使用情况,大多数情况下性能不佳。根据程序执行的局部性特点,程序一旦访问了某些代码和数据,则在一段时间内会经常访问他们,因此最近最少用调度在选择淘汰页面时会考虑页面最近的使用,总是选择在最近一段时间以来最少使用的页面予以淘汰。算法实现时需要为每个页面设置数据结构记录页面自上次访问以来所经历的时间。
(4)最近最不常用调度算法LRU(Least Recently Used Algorithm)
由于程序设计中经常使用循环结构,根据程序执行的局部性特点,可以设想在一段时间内经常被访问的代码和数据在将来也会经常被访问,显然这样的页面不应该被淘汰。最近最不常用调度算法总是根据一段时间内页面的访问次数来选择淘汰页面,每次淘汰访问次数最少的页面。算法实现时需要为每个页面设置计数器,记录访问次数。计数器由硬件或操作系统自动定时清零。
(5)最优替换算法OPT(Optimal replacement Algorithm)
前面介绍的几种页面调度算法主要是以主存储器中页面调度情况的历史信息为依据的,他假设将来主存储器中的页面调度情况与过去一段时间时间内主存储器中的页面调度情况是相同的。显然,这种假设不总是正确的。最好的算法应该是选择将来最久不被访问的页面作为被替换的页面,这种算法的命中率一定是最高的,它就是最有替换算法。要实现OPT算法,唯一的方法就是让程序先执行一遍,记录下实际的页地址流情况。根据这个页地址流才能找出当前要被替换的页面。显然,这样做是不现实的。因此,OPT算法只是一种理想化的算法,然而,它也是一种很有用的算法。实际上,经常把这种算法用来作为评价其它页面调度算法好坏的标准。在其它条件相同的情况下,哪一种页面调度算法的命中率与OPT算法最接近,那么,它就是一种比较好的页面替换算法。


11,管态和目态

cpu工作状态分为系统态(或称管理态,管态)和用户态(或称目态)。

引入这两个工作状态的原因是:
为了避免用户程序错误地使用特权指令,保护操作系统不被用户程序破坏。

具体规定为:
当cpu处于用户态时,不允许执行特权指令,当cpu处于系统态时,可执行包括特权指令在内的一切机器指令。

  • 调用程序是运行在用户态,而被调用的程序是运行在系统态

12,改善磁盘设备I/O性能

  • 重排I/O请求次序,也就是进行I/O调度,从而使进程之间公平地共享磁盘访问,减少I/O完成所需要的平均等待时间。
  • 缓冲区结合预读和滞后写技术对于具有重复性及阵发性的I/O进程改善磁盘I/O性能很有帮助。
  • 优化文件物理块的分布可以减少寻找时间与延迟时间,从而提高磁盘性能。

但是,在一个磁盘上设置多个分区与改善设备I/O性能并无多大联系,相反还会带来处理的复杂和降低利用率。


13,线程的共享与独有

在同一进程下时,线程共享的内容有:

  1. 代码段(code segment)
  2. 数据段(data section)
  3. 进程打开的文件描述符
  4. 信号的处理器
  5. 进程的当前目录和
  6. 进程用户ID与进程组ID

线程独有的内容包括:

  1. 线程ID
  2. 寄存器组的值
  3. 线程的堆栈
  4. 错误返回码
  5. 线程的信号屏蔽码

14,系统调用

  • 系统调用把应用程序的请求传输给系统内核执行。
  • 系统调用中被调用的过程运行在"系统态"中。
  • 利用系统调用能够得到操作系统提供的多种服务。
  • 系统调用时操作系统给编程人员提供的接口。
  • 系统调用给用户屏蔽了设备访问的细节。
  • 系统调用保护了一些自能在内核模式执行的操作命令。

15,系统开销比率

就绪队列中有10个进程,时间片设置为200ms,CPU进程切换要花费10ms,则系统开销所占比率是多少?

在计算上:

时钟中断                                      时钟中断
    |-操作系统调度10ms->|----任务执行(200-10)ms---->|-....

也就是说,操作系统调度耗时本身要算到时钟的时间片里的。

因为操作系统的调度逻辑是:发生中断->处理调度->发生中断->处理调度…

一个时间片长度就是两次中断的时间长度。
因此,开销所占比率=调度耗时/时间片长度:10/200 = 5%


16,减少磁盘服务时间

  • 块高速缓存
    既然要减少访问,那最理想的情况就是不访问呗,把所有的数据都丢进缓存中, 将缓存变得大速度变快。
  • 磁盘驱动调度
    避免随意访问磁盘,于是就 改良磁盘调度算法。
  • 目录分解法
    以上都是从调用情况的外部入手,指标也得治本,所以还要从自己的内部入手, 将自己的目录管理的整齐,尽量不给人家添麻烦。

异步I/O只能提高CPU的利用率,但访问磁盘的次数并不变化。


17,伙伴地址

伙伴地址
两个大小相同的相邻块合并成一个更大的块时,首地址必须是块(合成后的块)大小的整数倍

伙伴系统中,一个内存块大小为8KB,起始地址是224KB,则其“伙伴”的地址应为多少?

对于8KB大小的块,地址224KB相邻的8KB大小的块的首地址是224KB-8 = 216KB,224KB + 8 = 232KB
对于216KB:两个块合并,则首地址为216KB,216KB不是16(2 * 8KB)的整数倍,因此舍弃。
对于232KB:两个块合并,则首地址是224KB,224KB是16(2 * 8KB)的整数倍,所以其伙伴地址为:232KB


18,设备管理软件层次

操作系统的I/O子系统通常由四个层次组成,每一层明确定义了与邻近层次的接口。其合理的层次组织排列顺序是:

  1. 用户级I/O软件
  2. 设备无关软件
  3. 设备驱动程序
  4. 中断处理程序

19,实现设备独立性

对于基本的设备分配程序是根据物理设备名来分配设备的,为了增加设备的独立性,进程应用逻辑设备名请求I/O,这样系统首先从系统设备表SDT中找出第一个该类设备的设备控制表DCT,若该设备忙,又查找第二个该类设备的DCT,仅当所有该类设备都忙时才把进程挂在该类设备的等待队列上。


20,首次适应算法

首次适应算法(First Fit):
从空闲分区表的第一个表目起查找该表,把最先能够满足要求的空闲区分配给作业,这种方法目的在于减少查找时间。

为适应这种算法,空闲分区表(空闲区链)中的空闲分区要按地址由低到高进行排序。该算法优先使用低址部分空闲区,在低址空间造成许多小的空闲区,在高地址空间保留大的空闲区。


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值