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