操作系统原理
第一章操作系统概论
1.1操作系统的概念
操作系统的特征:并发性,共享性,随机性。
研究操作系统的观点:软件的观点,资源管理的观点,进程的观点,虚拟机的观点,服务提供者的观点。
操作系统的功能:1.进程管理:进程控制,进程同步,进程间通信,调度。
2.存储管理:内存分配与回收,存储保护,内存扩充。
3.文件管理:文件存储空间管理,目录管理,文件系统安全性。
4.设备管理
5.用户接口
UNIX是一个良好的、通用的、多用户、多任务、分时操作系统。1969年AT&T公司Kenneth L.Thompson 用汇编语言编写了Unix第一个版本V1,之后Unix用C语言编写,因此事可移植的。
1.3操作系统分类
1.批处理操作系统:优点是作业流程自动化较高,资源利用率较高,作业吞吐量大,从而提高了整个
系统的效率。
缺点是用户不能直接与计算机交互,不适合调试程序。
2.分时系统:特点是多路性,交互性,独占性,及时性。
3.实时操作系统
4.嵌入式操作系统
5.个人计算机操作系统
6.网络操作系统
7.分布式操作系统
8.智能卡操作系统
1.4操作系统结构
1.整体式结构
2.层次结构
3.微内核(客户机/服务器)结构:①可靠,②灵活(便于操作系统增加新的服务功能),
③适宜分布式处理的计算机环境
第二章操作系统运行机制
2.1中央处理器
寄存器:用户可见寄存器:数据寄存器(通用寄存器),地址寄存器,条件码寄存器。
控制和状态寄存器:程序计数器,指令寄存器,程序状态字。
目态到管态的转换唯一途径是通过终端和异常。
管态到目态的转换可以通过设置PSW指令(修改程序状态字)实现。
PSW包括:①CPU的工作状态代码②条件码③中断屏蔽码
2.2存储体系
存储器设计:容量,速度,成本
存储保护:①界地址寄存器(界限寄存器):产生程序中断-越界中断或存储保护中断
②存储键
2.3中断与异常机制
分类:中断:时钟中断,输入输出(I/O)中断,控制台中断,硬件故障中断
异常:程序性中断,访管指令异常
2.4系统调用
系统调用程序被看成是一个低级的过程,只能由汇编语言直接访问。系统调用是操作系统提供给编程人员的唯一接口。
分类:进程控制类,文件操作类,进程通信类,设备管理类,信息维护类。
第三章进程线程模型
3.1多道程序设计模型
顺序执行的特点:①顺序性②封闭性③确定性④可再现性
多道程序设计的特点:①独立性②随机性③资源共享性
3.2进程模型
进程的三状态模型:运行,就绪,等待。
七状态模型:挂起(Suspend):把一个进程从内存转到外存
激活(Active):把一个进程从外存转到内存
事件出现(Event Occurs):
提交(Admit):完成一个新进程的创建过程,新进程进入就绪状态或就绪挂起状
态。
PCB是进程存在的唯一标志
包括:进程名,进程号,存储信息,优先级,当前状态,资源清单,“家族”关系,消息队列指针,当前打开文件夹等。
进程组成:程序,数据,PCB。
原语是操作系统核心的一个组成部分,它必须在管态下执行,并且必须常驻内存。原语有不可中断性。
3.3线程模型
线程是进程中的一个实体,是CPU调度和分派的基本单位。
线程的好处:①创建或者结束一个线程花费时间少
②两个线程切换花费时间少
③由于同一进程内的线程共享内存和文件,线程之间相互通信无需调用内核,故不需要
额外的通信机制,使通信更便捷,信息传送速度也快。
④线程能独立执行,能充分利用和发挥处理器与外围设备并行工作能力。
线程调用描述
pthread_creat 创建一个新线程
pthread_exit 结束调用的线程
pthread_join 等待一个特定的线程退出
pthread_yield 释放CPU来运行另一个线程
pthread_attr_init 创建并初始化一个线程的属性结构
pthread_attr_destroy 删除一个线程的属性结构
3.4进程(线程)调度
①先来先服务②最短作业优先③最短剩余时间优先④轮转法⑤最高优先级算法⑥多级反馈队列算法⑦最短进程优先⑧实时系统中的调度算法
第四章并发与同步
4.2进程互斥
互相感知的程度:相互不感知,间接感知,直接感知。
临界资源访问过程:①进入区②临界区③退出区④剩余区
进程同步机制准则:①空闲则入②忙则等待③有限等待④让权等待
4.4经典的进程同步问题
读者进程:
While(true){
P(mutex);
read_count:=read_count+1;
If(read_count=1) P(write);
V(mutex);
读文件;
P(mutex);
read_count:=read_count-1;
If(read_count=0) V(write);
V(mutex);}
写者进程:
While(true){
P(write);
写文件;
V(write);
}
4.5管程
管程是一种高级同步原语
组成:管程名称,共享数据的说明,对数据进行操作的一组过程和对共享数据赋初值的语句。
线程调用描述
pthread_mutex_init 创建一个互斥量
pthread_mutex_destroy 撤销一个已存在的互斥量
pthread_mutex_lock 获得一个锁或阻塞
pthread_mutex_trylock 获得一个锁或失败
pthread_mutex_unlock 释放一个锁
4.6进程通信
共享内存,消息机制,管道通信。计算机四级网络工程师
第五章内存管理
5.1基本概念
内存分配表:位示图表示法,空闲页面表,空闲块表。
地址转换:静态重定位:装入一个程序时,把程序中的指令地址和数据地址全部转换成绝对地址。
动态重定位:装入程序时,不进行地址转换,而是直接把程序装入到分配的内存区域中。
在程序执行过程中,每当执行一条指令时都由硬件的地址转换机构将指令中
的逻辑地址转换为绝对地址
主要内存管理方案:单一用户(连续区)管理,分区管理,页式管理,段式管理,段页式管理。5.2分区存储管理方案
(1)固定分区:系统先把内存划分为若干个大小固定的分区,一旦划分好,在系统运行期间便不再重新划分。
(2)可变分区:移动技术又称为紧凑技术或紧缩技术。
空闲分区分配策略:最先适应算法,
最优适应算法,
最坏适应算法,
下次适应算法。
分区管理是实现多道程序设计的一种简单易行的存储管理技术。分区管理的主要缺点是内存使用仍然不充分,并且存在较为严重的碎片问题。
5.3覆盖技术和交换技术
覆盖技术:    作业1
交换技术:进程从内存移到磁盘并再移回内存称为交换。
5.4页式存储管理方案
页号
页内地址
页表起始地址寄存器:用于保存正在运行进程的页表在内存的首地址 页表长度寄存器:用于保护正在运行进程的页表长度。 页表:多级页表,散列页表,反置页表。
快表:按给定逻辑地址进行读写时,必须访问两次内存,第一次按页号读出页表中对应的块号,第二      次按计算出来的绝对地址进行读写。查快表和查内存页表是并行进行的。
5.5虚拟存储技术和虚拟页式存储管理方案的实现
虚拟页式存储管理时需要在页表中增加以下的表项: (1)页号——页面编号
(2)有效位——又称驻留位、存在位或中断位,表示该页是在内存还是外存。 (3)页框号——页面在内存中时对应的页框号。
(4)访问位——又称引用位和参考位,表示该页在内存期间是否被访问过。 (5)修改位——表示该页在内存中是否被修改过。 (6)保护位——是否能/读/写/执行。
(7)禁止缓存位——采用内存映射I/O 的机器中需要的位。 访问位和修改位可以用来决定置换哪个页面。 调入页面来源:(1)进程装入时,将全部页面复制到交换区,以后总是从交换区调入。
(2)凡是未被修改的页面,都直接从文件区读入,而被置换时不需调出;已被修改的                  页面
被置换时需要调出到交换区,以后从交换区调入。 页面置换算法: (1)先进先出FIFO (2)最近最少使用LRU
作业1的常驻区 A (20K )
覆盖区0 (50K ) 覆盖区1 (40K ) .....
A
20K
B 50K
C 30K
D 20K    E
40K
F 30K