操作系统是直接控制和管理计算机硬件、软件资源,合理地对各类作业进行调度,以方便用户使用的程序集合。
作为用户和计算机间的接口作为计算机系统资源的管理者实现了对计算机资源的抽象
OS定义:OS是直接控制和管理计算机硬件、软件资源,合理地对各类作业进行调度,以方便用户使用的程序集合
一、进程的定义 进程︰程序关于某个数据集合的一次执行过程。
二、进程互斥与同步
三、信号量机制 信号量是Os提供的管理公有资源的有效手段。 信号量是一个整数,当信号量大于等于零时,代表可供并发进程使用的资源数量,当信号量小于零时,表示处于阻塞态进程的个数。
Wait 操作︰ 申请资源,减量操作,S.value:=S.value-1 当S.value<0时,表示资源分配完,进行自我阻塞。Signal操作: 释放资源,增量操作,S.value:=S.value+1当S.value≤=0,唤醒S.L链表中的等待进程。
四、信号量的应用
一、文件和文件系统 文件是指具有文件名的若干相关元素的集合。 现代os中通过文件系统来组织和管理计算机中存储的数据;文件系统包括两方面 负责管理文件的系统软件 被管理的对象–文件
文件的结构 文件存在以下两种形式的结构∶
一、文件的逻辑结构可以分为两大类∶
有结构文件
根据记录的组织方式分为下列文件∶
UNIX系统中,所有的文件都被看做是流式文件。
二、文件的物理结构 由于磁盘具有可直接访问的特性,故当利用磁盘来存放文件时,具有很大的灵活性。 常用的外存分配方法有∶ 1、连续分配 链接分配索引分配 在一个系统通常只采用一种方法。
2、链接分配 采用链接分配方式时,可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的文件称为链接文件。 3、索引分配 链接分配方式虽然解决了连续分配方式所存在的问题,但又出现了另外两个问题: 不能支持高效的直接存取。要对一个文件进行直接存取,需首先在FAT中顺序的查找许多盘块号。 FAT需占用较大的内存空间。当磁盘容量较大时,FAT可能要占用数MB以上的内存空间。这是令人难以忍受的。
索引分配方式的问题 可能要花费较多的外存空间。每当建立一个文件时,便须为之分配一个索引块,将分配给该文件的所有盘块号记录于其中。
3、储存空间管理 空闲表法和空闲链表法 位示图法 成组链接法
存储管理主要是指对内存的管理,负责内存分配和回收,内存的保护和扩充。 存储管理的目的是尽量提高内存的使用效率。
内存的分配方式有两种 连续的分配方式 离散的分配方式
一、连续分配方式 指为一个用户程序分配一个连续的内存空间。 (1)单一连续分配 (2)固定分区分配 (3)动态分区分配 为把一个新作业装入内存,需按照一定的分配算法,从空闲分区表或空闲分区链中选出一分区分配给该作业。 常用的分配算法︰ a.首次适应算法 b.循环首次适应算法 c.最佳适应算法 d.最坏适应算法
(4)可重定位分区分配 如果在系统中只有若干个小分区,即使它们的容量总和大于要装入的程序,但由于这些分区不相邻,也无法将程序装入内存。 解决方法∶将内存中的所有作业进行移动,使它们全部邻接,这样把原来分散的小分区拼接成大分区,这种方法称为“拼接”或“紧凑”。
二、对换与覆盖技术 1.覆盖技术 一个作业的若干程序段或数据段的某些部分共享内存空间 2.对换技术 把内存中暂时不能运行的进程或者暂时不用的程序和数据,调到外存上,以便腾出足够的内存空间,再把已具备运行条件的进程和进程所需要的程序和数据调入内存。
对换的分类: 整体对换(或进程对换):以整个进程为单位页面对换或分段对换∶以页或段为单位 连续分配方式会形成“碎片”,虽然可以通过“紧凑”解决,但开销天。如果允许将一个进程直接分散地装入许多不相邻的分区中,则无需“紧凑”,由此产生离散分配方式。分类∶ 分页存储管理方式:离散分配的基本单位是页 分段存储管理方式:离散分配的基本单位是段
三、基本分页存储管理方式 1、页面与页表 2、地址变换机构
1、页面 分页式存储管理的原理: 将一个进程的逻辑地址空间分成若干个大小相等的片称为页面或页,并为各页加以编号,从0开始。同时把内存空间分成与页面相同大小的若干个存储块,称为块或页框。 在为进程分配内存时,以块为单位将进程的若干个页分别装入到多个可以不相邻的物理块中。进程的最后一页经常装不满一块而形成“页内碎片”。
2、地址变换 若给定一个逻辑地址空间中的地址为A,页面大小为L,则 页号P= INT[A/L] 页内地址d = [A] MOD L 例如∶系统页面大小为1KB,设A=2170D,则 P=2, d=122
3、基本分页式存储管理的实现 进程的每一页离散地存储在内存的任一存储块中,为方便查找,系统为每一进程建立一张页面映像表,简称页表。 页表实现了从页号到物理块号的地址映射。
为了能将用户地址空间的逻辑地址变换为内存空间的物理地址,在系统中必须设置地址变换机构。 地址变换机构实现从逻辑地址到物理地址的转换,由于页内地址与物理地址是一—对应的,因此,地址变换机构的任务是借助于页表,将逻辑地址中的页号转换为内存中的物理块号。
4、具有快表的地址变换机构 由于页表是存放在内存中的,CPU 在每存取一个数据时,需要两次访问内存︰ 第一次:访问页表,找到指定页的物理块号,将块号与页内 偏移量拼接形成物理地址。 第二次∶从第一次所得地址中获得所需数据,或向此地址中写入数据。
存储器利用率提高,处理器处理速度降低。 解决方法︰在地址变换机构中,增设一个具有并行查寻能力的特殊高速缓冲寄存器,称为“联想存储器”或“快表”。
数值的表示: 二进制,十进制,八进制,十六进制,分别在其后加上B,D,Q,H。 (Binary,Decimal ,Q(Octal),Hexadecimal)
四、基本分段式存储管理的实现 1)段表 为使程序正常运行,须在系统中为每个进程建立一张段映射表,简称“段表”。每个段在表中占有一个表项。 段表结构∶段号;段在内存中的起始地址(基址);段长。段表可以存放在寄存器中,但更多的是存放在内存中。段表用于实现从逻辑段到物理内存区的映射。
2 )地址变换机构 在系统中设置段表寄存器,用于存放段表始址和段表长度,以实现从进程的逻辑地址到物理地址的变换。 当段表存放在内存中时,每访问一个数据,都需访问两次内存,降低了计算机的速率。 解决方法∶设置联想寄存器,用于保存最近常用的段表项。
3.分页和分段的主要区别 相似点∶ 采用离散分配方式,通过地址映射机构实现地址变换不同点∶ 页是信息的物理单位,分页是为了满足系统的需要;段是信息的逻辑单位,含有意义相对完整的信息,是为了满足用户的需要。页的大小固定且由系统确定,由系统把逻辑地址分为页号和页内地址,由机器硬件实现;段的长度不固定,取决于用户程序,编译程序对源程序编译时根据信息的性质划分。 分页的作业地址空间是一维的;分段的作业地址空间是二维的。
五、段页式存储管理 分段和分页存储管理方式各有优缺点。把两者结合成一种新的存储管理方式–段页式存储管理方式,具有两者的长处。 1.基本原理 先将用户程序分成若干段,再把每个段分成若干页,并为每个段赋予一个段名。 基本段页式存储管理︰把作业的所有段装入内存方可运行。请求段页式存储管理∶没必要把整个作业装入内存,可把作业的几段或几页装入内存即可运行。 段页式系统地址结构︰段号;段内页号;页内地址。
六、页面置换算法 (1)最佳置换算法 最佳置换算法是一种理想化的算法,具有最好的性能,但难于实现。先进先出置换算法最直观,但可能性能最差,故应用极少。 1.最佳置换算法 其所选择的被淘汰页面,将是以后永不再用的,或许是在最长(未来)时间内不再被访问的页面。 优点∶保证获得最低的缺页率 缺点∶无法预知一个进程在内存的若干个页面,哪个在未来最长时间内不再被访问。 算法无法实现,但可评价其他算法。 (2)先进先出置换算法 算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。 算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针(替换指针),使它总是指向最老的页面。 算法与进程的实际运行规律不相适应,因为进程中的某些页面经常被访问,但先进先出置换算法不能保证这些页面不被淘汰。
Belady 现象 如果对一个进程未分配它所要求的全部页面,有时就会出现分配的页面数增多但缺页率反而提高的异常现象。发生在FIFO(先进先出)置换算法。
(3)最近最久未使用(LRU)算法
算法根据页面调入内存后的使用情况进行决策。由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU置换算法是选择最近最久未使用的页面予以淘汰。 该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间t,当需淘汰一个页面时,选择现有页面中其t值最大的,即最近最久未使用的页面予以淘汰。
一、作业状态 一个批处理型作业,从进入系统并驻留在外存的后备队列上开始,直至作业运行完毕,要经历提交、后备、执行和完成4个状态。
二、处理机调度 1.高级调度(High Scheduling ) 也称为作业调度,是指在后备队列中选择-个或一给作业,为它们建立进程,分配必要的资源,使它们能够运行。 在批处理系统中,因作业进入系统后先驻留在外存,故需要有作业调度。 在分时系统中为做到及时响应,命令或数据被直接送入内存,故不需作业调度。 在实时系统中,不需作业调度。
2.中级调度(Intermediate-Level Scheduling ) 是为了提高内存利用率和系统吞吐量。 应使那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调到外存去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。
3.低级调度(Low Level Scheduling ) 也称为进程调度或短程调度,用来决定就绪队列中的哪个进程应获得处理机 为最基本的一种调度,三种类型OS中都必须有进程调度。
三、调度算法 (1)先来先服务 (2)短作业(进程)优先调度算法 (3)高优先权优先调度算法 (4)高响应比优先调度算法
计算机系统的一个重要组成部分是I/O系统。I/O系统包括:
一、设备管理的概念 设备管理程序提供下述功能
二、I/O控制方式 (1)程序I/O方式 (2)中断控制I/O方式 (3)直接存储器访问(DMA)方式 (4)I/O通道控制方式 字节多路通道 选择通道 成组多路通道
三、磁盘管理
1、磁盘的访问时间
在访问时间中,寻道时间和旋转延迟时间,通常是占据了访问时间的大头。适当地集中数据(不要太零散)传输,将有利于提高传输效率。
例1∶某磁盘磁头从一个磁道移至另一个磁道需要10ms,文件在磁盘上非连续存放,逻辑上相邻数据块的平均移动距离为10个磁道,每块的旋转延迟时间及传输时间分别为100ms和2ms,则读取一个100块的文件需要(D )ms时间。 A . 10200 B .11000 C . 11200 D.20200
2、磁盘调度算法
四、虚设备与SPOOLing技术 为缓和CPU的高速性与I/O设备低速性间的矛盾而引入了脱机输入、脱机输出技术。该技术是利用专门的外围控制机,将低速设备上的数据传送到高速磁盘上;或者相反。 这样就可以在主机的直接控制下实现脱机输入输出。此时外围操作与CPU对数据的处理同时进行,我们把这种在联机情况下实现的同时外围操作称为SPOOLing ( Simultaneaus Periphernal OperatingOn-Line ),或称为假脱机操作。 SPOOLing系统的有三大部分组成:
SPOOLing系统的特点