操作系统原理上课讲义Word格式.docx
《操作系统原理上课讲义Word格式.docx》由会员分享,可在线阅读,更多相关《操作系统原理上课讲义Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
控制和状态寄存器:
程序计数器,指令寄存器,程序状态字。
目态到管态的转换唯一途径是通过终端和异常。
管态到目态的转换可以通过设置PSW指令(修改程序状态字)实现。
PSW包括:
①CPU的工作状态代码②条件码③中断屏蔽码
2.2存储体系
存储器设计:
容量,速度,成本
存储保护:
①界地址寄存器(界限寄存器):
产生程序中断-越界中断或存储保护中断
②存储键
2.3中断与异常机制
分类:
中断:
时钟中断,输入输出(I/O)中断,控制台中断,硬件故障中断
异常:
程序性中断,访管指令异常
2.4系统调用
系统调用程序被看成是一个低级的过程,只能由汇编语言直接访问。
系统调用是操作系统提供给编程人员的唯一接口。
进程控制类,文件操作类,进程通信类,设备管理类,信息维护类。
第3章进程线程模型
3.1多道程序设计模型
顺序执行的特点:
①顺序性②封闭性③确定性
可再现性
多道程序设计的特点:
①独立性②随机性③资源共享性
3.2进程模型
进程的三状态模型:
运行,就绪,等待。
七状态模型:
挂起(Suspend):
把一个进程从内存转到外存
激活(Active):
把一个进程从外存转到内存
事件出现(EventOccurs):
提交(Admit):
完成一个新进程的创建过程,新进程进入就绪状态或就绪挂起状
态。
PCB是进程存在的唯一标志
包括:
进程名,进程号,存储信息,优先级,当前状态,资源清单,“家族”关系,消息队列指针,当前打开文件夹等。
进程组成:
程序,数据,PCB。
原语是操作系统核心的一个组成部分,它必须在管态下执行,并且必须常驻内存。
原语有不可中断性。
3.3线程模型
线程是进程中的一个实体,是CPU调度和分派的基本单位。
线程的好处:
创建或者结束一个线程花费时间少
两个线程切换花费时间少
由于同一进程内的线程共享内存和文件,线程之间相互通信无需调用内核,故不需要
额外的通信机制,使通信更便捷,信息传送速度也快。
线程能独立执行,能充分利用和发挥处理器与外围设备并行工作能力。
线程调用
描述
pthread_creat
创建一个新线程
pthread_exit
结束调用的线程
pthread_join
等待一个特定的线程退出
pthread_yield
释放CPU来运行另一个线程
pthread_attr_init
创建并初始化一个线程的属性结构
pthread_attr_destroy
删除一个线程的属性结构
3.4进程(线程)调度
先来先服务
最短作业优先
最短剩余时间优先
轮转法
最高优先级算法
多级反馈队列算法
最短进程优先
实时系统中的调度算法
第4章并发与同步
4.2进程互斥
互相感知的程度:
相互不感知,间接感知,直接感知。
临界资源访问过程:
进入区
临界区
退出区
剩余区
进程同步机制准则:
空闲则入
忙则等待
有限等待
让权等待
4.4经典的进程同步问题
读者进程:
While(true){
P(mutex);
read_count:
=read_count+1;
If(read_count=1)P(write);
V(mutex);
读文件;
=read_count-1;
If(read_count=0)V(write);
}
写者进程:
P(write);
写文件;
V(write);
4.5管程
管程是一种高级同步原语
组成:
管程名称,共享数据的说明,对数据进行操作的一组过程和对共享数据赋初值
的语句。
pthread_mutex_init
创建一个互斥量
pthread_mutex_destroy
撤销一个已存在的互斥量
pthread_mutex_lock
获得一个锁或阻塞
pthread_mutex_trylock
获得一个锁或失败
pthread_mutex_unlock
释放一个锁
4.6进程通信
共享内存,消息机制,管道通信。
第5章内存管理
5.1基本概念
内存分配表:
位示图表示法,空闲页面表,空闲块表。
地址转换:
静态重定位:
装入一个程序时,把程序中的指令地址和数据地址全部转换成绝对地址。
动态重定位:
装入程序时,不进行地址转换,而是直接把程序装入到分配的内存区域中。
在程序执行过程中,每当执行一条指令时都由硬件的地址转换机构将指令中
的逻辑地址转换为绝对地址
主要内存管理方案:
单一用户(连续区)管理,分区管理,页式管理,段式管理,段页式管理。
5.2分区存储管理方案
(1)固定分区:
系统先把内存划分为若干个大小固定的分区,一旦划分好,在系统运行期间便不再
重新划分。
(2)可变分区:
移动技术又称为紧凑技术或紧缩技术。
空闲分区分配策略:
最先适应算法,
最优适应算法,
最坏适应算法,
下次适应算法。
分区管理是实现多道程序设计的一种简单易行的存储管理技术。
分区管理的主要缺点是内存使用仍然不充分,并且存在较为严重的碎片问题。
5.3覆盖技术和交换技术
覆盖技术:
作业1
作业1的常驻区
A(20K)
覆盖区0
(50K)
覆盖区1
(40K)
.....
B
50K
C
30K
D
20K
F
E
40K
交换技术:
进程从内存移到磁盘并再移回内存称为交换。
5.4页式存储管理方案
页号
页内地址
页表起始地址寄存器:
用于保存正在运行进程的页表在内存的首地址
页表长度寄存器:
用于保护正在运行进程的页表长度。
页表:
多级页表,散列页表,反置页表。
快表:
按给定逻辑地址进行读写时,必须访问两次内存,第一次按页号读出页表中对应的块号,第二
次按计算出来的绝对地址进行读写。
查找快表和查找内存页表是并行进行的。
5.5虚拟存储技术和虚拟页式存储管理方案的实现
虚拟页式存储管理时需要在页表中增加以下的表项:
(1)页号——页面编号
(2)有效位——又称驻留位、存在位或中断位,表示该页是在内存还是外存。
(3)页框号——页面在内存中时对应的页框号。
(4)访问位——又称引用位和参考位,表示该页在内存期间是否被访问过。
(5)修改位——表示该页在内存中是否被修改过。
(6)保护位——是否能/读/写/执行。
(7)禁止缓存位——采用内存映射I/O的机器中需要的位。
访问位和修改位可以用来决定置换哪个页面。
调入页面来源:
(1)进程装入时,将全部页面复制到交换区,以后总是从交换区调入。
(2)凡是未被修改的页面,都直接从文件区读入,而被置换时不需调出;
已被修改的
页面被置换时需要调出到交换区,以后从交换区调入。
页面置换算法:
(1)先进先出FIFO
(2)最近最少使用LRU
(3)最近最不常使用LFU
(4)理想页面置换算法OPT
(5)最近未使用
(6)第二次机会
(7)时钟
缺页中断率:
f=F/A
影响因素:
分配给程序的内存块数
页面大小
程序编制方法
页面置换算法
工作集模式可以解决颠簸问题。
操作系统为每一个进程保持一个工作集并为该进程提供与工作集大小相等的物理页面数,这一过程可动态调整统计工作集大小一般由硬件完成,系统开销较大。
段页式存储管理方案:
用页面方法来分配和管理内存空间,即把内存划分为若干大小相等的页面;
用
段式方法对用户程序按照其内在的逻辑关系划分成若干段;
再按照划分内存页
面的大小,把每一段划分成若干大小相等的页面。
第6章文件管理
文件分类:
按用途:
①系统文件②库函数文件③用户文件
按组织形式:
①普通文件②目录文件③特殊文件
按保护方式:
①只读文件②读写文件③可执行文件
无保护文件
6.2文件的结构
逻辑结构:
①流式文件②纪录式文件
物理结构:
顺序结构
链接结构:
存取速度慢不适于随机存取文件,Windows的FAT文件系统采用的是链接结
构但是将所有指针集中存放。
索引结构:
既适于顺序存取又适于随机存取,没有存储碎片。
存储介质
磁带
磁盘
物理结构
连接结构
连续
链接
索引
存取方式
顺序存取
顺序
随机
磁盘的存取:
柱面号=[物理块号/(磁头数*扇区数)]
磁头号=[(物理块号mod(磁头数*扇区数))/扇区数]
扇区号=(物理块号mod(磁头数*扇区数))mod扇区数
注:
mod求余,磁头即盘面
6.3文件目录
文件控制块FCB:
文件名,文件号,用户名
文件物理位置,文件长度,记录大小,文件类型,文件属性,共享说明
文件逻辑结构,文件物理结构
建立日期和时间,最后访问日期和时间,最后修改日期和时间
口令,保存期限
6.4文件系统的实现
(1)位示图:
0表示空闲,1表示该物理块已分配。
从0开始编。
(2)空闲块表:
(3)空闲块链表:
效率低
(4)成组链接:
有些版本的UNIX操作系统采用。
文件的操作:
(1)建立文件:
create(文件名,访问权限,最大长度)
检查参数合法性
检查同一目录下有无重名文件
在目录中有无空闲位置
填写目录项内容
返回
(2)打开文件:
fd=open(文件路径名,打开方式)
根据文件路径名查目录,找到FCB主部
根据打开方式,共享说明和用户身份检查访问合法性
根据文件号查系统打开文件表,看文件是否已被打开
在用户打开文件表中取一空表项,填写打开方式等,并指向系统打开文件对应表
项
返回信息:
文件描述符fd,这是个非负整数,用于以后读写文件
(3)读文件:
read(文件名,文内位置,要读的长度,内存目的地址)
(4)写文件:
write(文件名,记录键,内存位置)
(5)关闭文件:
close(文件名)
(6)删除文件:
delete(文件名)
(7)指针定位:
seek(fd,新指针的位置)
6.5文件的保护和安全
文件保护:
①建立副本:
用于较小且极为重要的文件。
②定时转储:
按照转储内容分为增量转储和全量转储
按照转储方式分为物理转储和逻辑转储
③规定文件的存取权限
文件的存取权限
(1)存取控制矩阵
(2)二级存储控制
(3)UNIX中的文件存取权限:
Unix系统内部用数值表示文件属性,每一个属性与文件属性中的一
个二进制相对应。
1表示设置了该权限,0表示没有该权限。
Unix中
用8进制表示。
文件的保密:
①屏蔽文件目录②设置口令③使用密码
6.6文件系统的性能
提高文件系统性能措施:
(1)块高速缓存
(2)合理分配磁盘空间
(3)磁盘的驱动调度:
磁盘的存取访问时间:
①寻道时间②旋转延迟时间③传输时间
组成:
移臂调度:
先来先服务FCFS
最短寻道时间优SSTF
扫描算法
SCAN又称电梯算法
循环扫描算法C-SCAN
旋转调度
(4)信息的优化分布
(5)RAID技术
6.7Windows的FAT文件系统和UNIX文件系统
文件分配表FAT(FileAllocationTable)具有简单的目录结构。
三个版本是FAT—12,FAT—16,FAT—32,取决于用多少位二进制表示磁盘地址。
UNIX普通文件的物理结构是三级索引结构。
第7章I/O设备管理
7.1设备与设备分类
除CPU和内存以外的所有设备和装置
设备管理主要任务:
I/O设备性能和CPU性能不匹配反差大
实现统一管理,方便用户使用
用户对I/O设备的使用必须是安全的
设备分类:
按使用特性:
I/O设备和存储设备
按信息组织方式:
字符设备和块设备
按共享属性:
独占设备,共享设备和虚拟设备
7.2I/O硬件组成
中央部分是CPU和主存,通过总线与第二层的接口(适配器)部件相连,第三层是各种外围设备控制器,最外层是外围设备。
I/O设备数据传送控制方式:
程序直接控制方式
中断控制方式
DMA方式
通道控制方式:
选择通道,数组多路通道,字节多路通道
7.3I/O软件的结构和特点
(1)中断处理程序
(2)设备驱动程序
(3)与设备无关的系统软件:
统一命名
设备保护
提供与设备无关的逻辑块
缓
冲
存储设备的块分配
独占设备的分配与释放
出
错处理
(4)
I/O请求
用户空间的I/O软件
(5)
用户空间软件
与设备无关的系统软件
设备驱动程序
中断处理程序
硬件
7.4典型的I/O技术
设备分配算法:
系统设备表SDT
设备控制表DCT
控制器控制表COCT
通道控制表CHCT
设备分配原则:
考虑到设备的特性和安全性
设备分配策略
7.5I/O性能问题及解决方案小结
(1)通过缓冲技术、减少或缓解不同设备之间传输速度的差距
(2)通过应用异步I/O技术,使CPU计算不必等待I/O操作结果
(3)通过应用DMA和通道部件,使CPU拜托I/O操作,与这些部件并行执行
(4)通过应用虚拟设备技术,提高独占设备的利用率
第8章死锁
8.1死锁的基本概念
产生原因:
①竞争资源
②多道程序运行时,进程推进顺序不合理
8.2死锁预防
破坏产生死锁的必要条件:
(1)破坏“互斥条件”:
通过假脱机(SPOOLing)技术
(2)破坏“不可剥夺条件”
(3)破坏“请求和保持”条件:
一次性分配或者在没有占有资源时才允许申请资源
(4)破坏“循环等待”条件:
采用资源有序分配策略
8.3死锁避免
只要能使系统总处于安全状态就可避免死锁的发生
8.4死锁检测与解除
(1)剥夺资源
(2)撤销进程