2.操作系统基础知识
2.1进程的相关概念
2.1.1进程的同步与互斥
进程互斥:两个或两个以上的进程不能同时访问同一组变量的临界区域,否则可能发生与时间有关的错误,这种现象称为“进程互斥”。
同步机制:为实现进程互斥,需要在系统中设置专门的同步机制来协调多个进程
同步机制遵循的4大准则:
(1)空闲让进:当临界资源处于空闲状态,允许一个请求进入临界区的资源进入临界区去利用资源。
(2)忙则等待:已经有进程进入临界区,意味着相应临界区资源正在被访问,其他准备进入临界区的进程必须等待,以保证多进程互斥。
(3)有限等待:应该保证要求访问临界资源的进程能在有效时间内进入临界区,防止死锁的发生
(4)让权等待:当进程不能进入临界区时立即释放处理机,防止进程在等待中占用CPU资源。
2.1.2信号量与死锁
信号量(Semaphore):可以有效的实现进程的同步和互斥,它负责协调各个进程,以保证合理的使用公共资源。信号量是一个整数,当信号量≥0时,表示可供并发进程使用资源的实体数,当信号量<0时,表示正在等待使用临界区的进程数。
死锁(Dead Lock):指两个或两个以上进程在执行过程中因为抢占资源而造成互相等待的现象。
死锁的原因:
(1)系统资源不足
(2)进程运行推进的顺序不合适
(3)资源分配不当
产生死锁的4个必要条件:
(1)互斥条件:一个资源每次只能被一个进程使用
(2)请求与保持条件:一个进程因请求资源而阻塞时对已获得的资源保持不放
(3)不剥夺条件:进程已获得的资源,在未使用完之前不能强行剥夺
(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系
避免死锁的方法:上述条件之一不满足,就不会发生死锁。
2.1.3进程状态转换
进程通常分为“就绪(ready)”“运行(running)”“阻塞(blocking)”三个工作状态
运行态:正在占用处理机的进程
就绪态:进程已具备使用处理机的条件,但当前没有处理机供其使用
阻塞态:运行的进程由于缺少资源无法继续运行,则停止占用处理机,进入阻塞
进程状态之间的转换:
(1)运行态->阻塞态:一般是由于等待资源分配或是人工干预引起的
(2)阻塞态->就绪态:等待的条件已满足,只需分配到处理器即可运行
(3)运行态->就绪态:不是由于自身原因,而是外界原因使运行的进程让出处理器,这时就变为就绪态
(4)就绪态->运行态:当资源释放完成,系统选中就绪队列中的一个进程占用处理器,此时变为运行态
2.1.4进程调度的方式
进程调度的两种基本方式:
(1)非抢占方式:分派程序一旦把处理机分配给某进程后则使其一直运行下去,直到进程结束或发生某种时间阻塞时才把处理机分配给另一进程
(2)抢占方式:当一个进程正在运行时,系统可以基于某种原则剥夺已为其分配的处理机,并且分配给其他的进程,剥夺的原则有:优先权原则、短进程优先原则以及时间片原则
常见的进程调度算法:
2.1.4.1先进先出算法(FIFO)
例如:P1、P2、P3执行周期为21、6、3单位时间,则P1、P2、P3周转时间为:21、27(21+6)、30(21+6+3)单位时间
2.1.4.2最短CPU运行期优先调度算法(SCBF)
例如:P1、P2、P3、P4执行周期为16、12、4、3单位时间,则P4、P3、P2、P1周转时间为:3、7(3+4)、19(3+4+12)、35(3+4+12+16)单位时间
2.1.4.3时间片轮转法
例如:P1、P2、P3执行周期为20、4、2单位时间,假如用时间片方式剥夺资源,执行方式如下:
P1 |
P2 |
P3 |
P1 |
P2 |
P1……P1 |
2 |
2 |
2 |
2 |
2 |
16 |
2.1.4.4最高优先权优先调度算法(FPF)
该算法总是把处理机分配给就绪队列中具有最高优先权的进程
A、静态优先权
在创建进程时确定,并在整个运行期间不再改变
B、动态优先权
随时间改变而变化
2.2存储管理
2.2.1常见的存储管理方式
2.2.1.1单一连续区管理
单一连续区管理,内存分为两个区域:一个是系统区域,仅供操作系统使用;一个是用户区,除系统外的全部区域,提供给用户。
特点如下:
(1)容易记住存储器的状态
(2)当作业被调度时获得全部空间
(3)全部主存储空间都分配给一个作业
(4)作业运行后全部用户区空间恢复为空闲
也存在以下缺点:
(1)存储器没有充分利用
(2)处理机效率较低
(3)作业周转时间长
(4)缺乏灵活性
2.2.1.2分区存储管理
分区存储管理把内存划分为若干个连续的区域,每个分区装一个作业运行
主要优点:
(1)实现主存共享有助于多道程序设计
(2)相对于后面的存储管理方式,占用存储容量少,算法相对简单
(3)实现存储保护措施比较简单
(4)可共享子程序和数据段
主要缺点:
(1)主存仍不能充分利用,存在碎片
(2)不能实现对主存扩充
(3)要求一个作业在执行前要全部装入主存
(4)用靠拢方法虽解决碎片问题但需移动大量信息损失处理机时间
(5)多个并行作业不能共享存入主存
2.2.1.3分页存储管理
假设一个逻辑地址空间的地址为A,页面大小为L,则页号p和页内地址d可按照以下公式求得:
P=Int[A/L] 即:A除以L后取整
d=A mod L 即:A除以L的余数
然后根据页号表得到物理块b
物理地址B=b×L+d
进程的最后一页装不满一块形成了不可利用的碎片,称为业内碎片
(1)块或页的大小:块越小,磁盘碎片越小
(2)内存中同时运行的作业数:作业越多,磁盘碎片越多
分页存储管理具有以下特点:
(1)采用动态地址变换会增加计算机成本并降低处理机速度
(2)各种表格要占用一定容量的主存空间
(3)虽然碎片消除,但每个作业最后一页都有不能充分利用的空白区
(4)存储扩充问题丞待解决
2.2.1.4分段存储管理
分段与分页的区别:
(1)段是信息的逻辑单位,用户是可见的;页是信息的物理单位,用户不可见
(2)页的大小固定;段的大小不固定,由用户决定
(3)页内没有地址越界问题,段内位移量存在地址越界问题
分段存储的优点:
(1)消除了碎片
(2)提供了大量的虚存
(3)允许动态增加段的长度
(4)便于动态装入和链接
(5)便于实现存储保护
分段存储的缺点:
(1)进行地址变换和实现靠拢操作要花费处理机时间
(2)在辅存中管理可变长度的段比较困难
(3)段的最大长度受到实存容量的限制
(4)会出现系统抖动现象
2.2.1.5段页式存储管理
有效地址划分为3部分:段号,页号,页内地址
优点:提供大量虚存空间,有效利用主存
缺点:增加硬件成本,页面使用不充分,系统存在抖动危险
2.2.2系统UNIX文件管理
2.2.2.1文件的定义
文件(File)是存储在某种介质中具有标识名的信息集合,文件管理是操作系统中一项重要功能
从系统的角度,文件系统组织、分配、回收文件存储器的存储空间,负责文件的存储、检索、共享和保护
从用户的角度,文件系统主要是实现“按名存取”用户只需知道文件名就可以存取文件而无需了解文件存放的地址
2.2.2.2文件的功能
(1)统一管理文件的存储空间,实施存储空间的分配与回收
(2)实现文件的按名存取,即从名字空间到存储空间的映射
(3)实现文件信息的共享
(4)系统维护,并且为用户提供一个方便的接口
(5)提供与I/O统一的接口
2.2.2.3文件的分类
(1)按文件性质与用途分类:
·系统文件 ·库文件 ·用户文件
(2)按操作保护分类:
·只读文件 ·可读写文件 ·可执行文件
(3)按使用情况分类:
·临时文件 ·永久文件 ·档案文件
(4)按用户观点分类:
·普通文件(常规文件) ·目录文件 ·特殊文件(设备驱动程序)
(5)按存取的物理结构分类:
·顺序文件(连续文件) ·链接文件 ·索引文件
(6)按文件的逻辑存储结构分类:
·有结构文件 ·无结构文件
(7)按文件的数据形式分类:
·源文件 ·目标文件