目录
01.操作系统的定义
02.操作系统的基本类型及特征
1.批处理操作系统(单、多道)
2.分时操作系统
3.实时操作系统
03.操作系统的功能及特征
04.进程的定义、特征
05.进程基本状态及其转换原因
06.进程互斥、同步
07.进程控制块的内容、作用
08.用信号量和 PV 操作机制实现进程的同步和互斥
09.引入进程,线程的目的
10.典型的调度算法
(1)先来先服务(FCFS):
(2)短者优先(SJF) :
(3)高响应比优先(HRRN):
(4)优先级调度:
(5)时间片轮转调度(RR):
(6)多级反馈队列调度:
11.死锁的原因、必要条件
12.预防死锁方法、避免死锁
13.连续分配原理和特点
①单一连续分配:
②固定分区分配:
③动态(可变)分区分配:
14.页式、段式存储管理原理
15.分页、分段存储管理的地址转换过程
16.虚拟存储器概念、理论基础
17.页面置换算法
(1)最佳置换算法:
(2)先进先出置换算法
(3)最近最久未使用置换算法
(4)时钟置换算法
(5)改进型时钟置换算法
18.存储管理的碎片问题
19.设备分配时应考虑的因素
20.设备独立性、虚拟设备
21.磁盘的调度算法
22.打开文件、关闭文件的操作
23.文件的物理结构
(1)连续分配
(2)链接分配
(3)索引分配
24.UNIX 系统多级混合(增量式)索引结构
25.文件存储空间的管理方法-空闲表法、位示图、空闲块链法
26.系统调用的过程
27.系统调用与一般过程调用的区别
操作系统是计算机系统中的一个(系统软件),它管理和控制计算机系统中的(硬件和
软件资源)。
允许多个用户将多个作业提交给计算机集中处理的操作系统称为(批处理操作系统)
优缺点:
系统利用率高、系统吞吐量大
平均周转时间长、无交互能力
(平均周转时间短)是批处理操作系统中进程调度算法的重要准则
允许多个用户以交互方式使用计算机的操作系统称为(分时操作系统)
特点:
交互性、多路性、独立性、及时性
优点:
为用户提供友好的接口,即用户能在较短时间内得到响应。
便于资源共享和交换信息,为软件开发和工程设计提供良好的环境。
通常在分时系统中运行的作业称为 终端型作业
(响应时间快)是分时系统中进程调度算法的重要准则
计算机系统能及时处理过程,控制数据,并作出响应的操作系统称为(实时操作系统)
特点:
两个基本特征,(及时性)和(高可靠性)
( 截止时间的保证 )是实时调度算法的重要准则
操作系统的功能:
①作为用户与计算机硬件系统之间的接口;
②作为计算机系统资源的管理者;
③实现了对计算机资源的抽象。
操作系统的特征:并发性、共享性(最基本的特征)、虚拟性和异步性。
进程的定义:是一个程序对某个数据集在处理机上的执行过程,是系统进行资源分配和处理机调度的基本单位。
进程的特征:动态性(最基本的特征),并发性,独立性,异步性,(结构性)。
同步指进程间存在一定的逻辑关系,需要在执行次序上协调
互斥指进程间在使用共享资源方面的约束关系
解决上述两个问题的一种常用的方法是(信号量机制)
原则:空闲让进,忙则等待,有限等待,让权等待
PCB 是进程实体的一部分,是操作系统中最重要的记录型数据结构。
作用是使程序成为一个独立运行的基本单位,能与其他进程并发执行的进程。
并对并发执行的进程进行控制和管理。
互斥:
互斥信号量的初值一般为 1
同步:
而同步信号量的初值应视具体情况而定,这里为0 (前V后P,P2等P1)
拓展:单道程序系统不具有并发性,因此不需要同步和互斥
举例(多生产者消费者问题):
父,子,女,吃苹果,橘子问题,儿子只吃橘子,女儿只吃苹果,爸爸一次盘子里放一个
分析:生产者放入缓冲区的产品有两类,消费者也有两类,每类消费者只消费其中固定的一类产品
int S=1;
int Sa=0;
int So=0;
main( )
{
cobegin
father();
son();
daughter();
coend
}
father()
{
while(1)
{
P(S );
将水果放入盘中;
if (放入的是桔子) V(So);
else V(Sa);
}
}
son( )
{
while(1)
{
P(So);
从盘中取出桔子;
V(S);
吃桔子;
}
}
daughter( )
{
while(1)
{
P(Sa);
从盘中取出苹果;
V(S);
吃苹果;
}
}
引入进程:为了使程序在多道程序环境下能并发执行,并对并发执行的程序加以控制和描述
引入线程:缩短系统切换的时空开销,提高程序执行并发度
进程的调度方式有两种,一种是(非抢占式),令一种是(抢占式)
算法简单,效率低
利于长作业不利于短作业
利于CPU繁忙型,不利于I/O繁忙型作业
为了使作业的平均周转时间最短
为了照顾短作业用户
平均等待时间,平均周转时间最少
对长作业不利
估计运行时间可能不准确
为了兼顾短作业和长时等待的作业
响应比=(等待时间+要求服务时间)/要求服务时间
利于短作业,且长作业不至于产生饥饿
等待时间越长,优先级越高
为了照顾紧急作业的用户:基于优先权的可抢占式调度算法
总之谁优先级高谁上
抢占式,非抢占式;动态优先级,静态优先级
为能实现人机交互作用
时间片过高:交互性差;时间片过低:系统开销大
时间片轮转调度算法遍退化为( 先来先服务 )算法
为了使短作业、长作业及交互作业用户都比较满意
对于终端型作业用户:由于多为交互型小作业,短作业优先
对于短批处理作业用户:周转时间短
对于长批处理作业用户:不会长期得不到处理
死锁产生根本原因:可共享资源不足,另一个基本原因是:进程的推进顺序不当
死锁存在的必要条件:①互斥;②不可剥夺;③请求和保持;④循环等待
拓展:安全状态无死锁,非安全状态可能死锁
预防:
破坏互斥——spooling算法
破坏不可剥夺——优先级调度
破坏请求和保持——静态分配法
破坏循环等待——顺序资源分配法
避免:
银行家算法
当一个进程提出的资源请求将导致系统从( 安全状态 )进入(不安全状态)时,系统就会拒绝它的资源请求
使用这种内存分配方式,内存空间会被分成 系统区 和 用户区 两部分,系统区仅提供给OS使用,系统区外的用户区提供给用户使用。
优:实现简单,无外部碎片
缺:只适用于 单道程序 的情况,存储器利用率低,有内部碎片
将用户空间划分为若干个固定大小的分区,每个分区只能装入一道作业
若分区大小相等:缺乏灵活性,适用于一台计算机控制多个相同对象的情况
若分区大小不等:增加灵活性
优:实现简单,无外部碎片
缺:会产生内部碎片
根据进程大小动态的建立分区
常用的数据结构:空闲分区链,空闲分区表
支持多道程序,相邻空间需要合并
没有内部碎片但有外部碎片
拓:动态分区分配算法
(1)首次适应算法
从头到尾适应分区
优:综合性能最好,算法开销小,不需要重排序分区
(2)最佳适应算法
优先使用小分区
优:利于满足大进程
缺:小碎片多,算法开销大
(3)最坏适应算法
优先使用大分区
优:产生小碎片少
(4)邻近适应算法
由首次适应算法演变,每次从上次查找结束位置开始查找
优:算法开销小
缺:会使高地址的大分区也被用完
分页式:页面+页框
每个进程对应一个页表
物理单位,用户不可见,一维的,不会产生外部碎片,容易实现信息共享
分段式:段号+段内地址
逻辑单位,用户可见,二维的,会产生外部碎片,容易实现信息保护
分页:
(1)页号=逻辑地址/页面大小 ;页内偏移量=逻辑地址%页面大小
(2)比较页号和页表页表长度,若大于等于,则越界中断
(3)物理地址=页面大小*物理块号+页内偏移量
(物理块号一般一般题目中会和页号一一对应给出)
分段:
(一般会给一个表,由段号,内存始址,段长)(给一个逻辑地址(段号X,段内地址Y))
(1)由表数,得出段表长度
(2)对比段号和段表长度,若大于等于,则越界中断
(3)对比段内地址和段长,若大于等于,则越界中断
(5)物理地址=段号对应的内存始址+页内地址
定义:在具有层次结构存储器的 计算机系统 中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“ 主存储器 ”
实现虚拟存储器需要 请求分页(段)的页(段)表机制,缺页(段)中断机制,地址变换机构这三个硬件支持
虚拟存储器的最大容量 由计算机的地址结构决定
实现虚拟存储器的目的是 扩充内存容量
理论基础:程序的局部性理论
虚拟内存:页面置换,请求调页
有多次性(基本),对换性,虚拟性
为保证最低的缺页率
理想型,无法实现
会产生bleady异常(内存块越大,缺页率越高)
最接近最佳置换算法,性能好,但是开销大
访问位为1:最近访问过
访问位为0:最近未访问过
最多经历两轮扫描
单一连续分配:有内部碎片
固定分区分配:有内部碎片
动态分区分配:有外部碎片
分页式存储管理:有内部碎片
段页式存储管理:有内部碎片
分段式存储管理:有外部碎片
设备固有属性
设备分配算法
设备分配的安全性
设备独立性
设备独立性的概念:用户进程独立于具体使用的物理设备。(进程只需用逻辑设备名称请求使用某类设备。)
优:设备分配时的灵活性,易于实现I/O重定向
虚拟设备:
为了方便我们管理设备的 I/O 操作
虚拟设备是通过(SPOOLING)技术把(独占)设备变为能为若干个用户(共享)的设
备。
SPOOLING组成:
(1) 输入井和输出井
(2) 输入缓冲区和输出缓冲区
(3) 输入进程和输出进程
(4) 井管理程序
先来先服务(FCFS)
最短寻找时间优先(SSFS 会“饥饿”)
扫描算法(电梯调度算法 SCAN)
循环扫描算法(C-SCAN)
打开:建立用户和文件的联系,将待访回文件的目录信息读入内存活动文件表中
关闭:把内容写到文件目录项,撤销主存中有关该文件的目录信息,切断用户与该文件的联系
(逻辑块号,块内地址)—起始块号+块数—>(物理快号,块内地址)
物理块号=起始块号+逻辑块号
优:支持顺序访问和随机访问
缺:不方便文件拓展,存储空间利用率低,会产生磁盘碎片
隐式链接:
优:方便拓展,不会有碎片问题
缺:只能顺序访问,不能随机访问;查找i块需要访问i+1次,效率低
显式链接:
把指针存放到一张文件分配表(FAT)中(末尾指向-1)
优:支持顺序和随机访问,块号转换不需要磁盘,访问速度开,无碎片问题
索引表存放的磁盘块:索引块
文件数据存放的磁盘块:数据块
链接方案:低效
多层索引:各索引表大小不能超过一个磁盘块
K层索引需要K+1次I/O操作
混合索引:几几索引指向几层索引表
增量式混合索引结构在索引节点中用13 个地址项表示,其中有10个直接地址,1个一次间接地址,1个三次间接地址。
计算单个文件的最大长度:
索引表大小=盘块大小/盘块所占字节
10*盘块大小+
1*索引表大小*盘块大小+
1*索引表大小*索引表大小*盘块大小+
1*索引表大小*索引表大小*索引表大小*盘块大小
(1)空闲表
记录空闲块号和空闲块的数目
分配:首次适应和最佳适应算法
(2)位示图
0——空闲
1——已分配
字长n
盘块号b=ni+j
位号(行号)i: b%n
字号(列好)j:b/n
(3)空闲块链法
空闲盘区链
空闲盘块链
成组链接法
①传递系统调用系数;
②执行陷入指令(用户态);
③执行相应的服务程序(系统
态);
④返回应用程序(用户态)
运行状态:系统调用主调程序为用户态,被调程序为系统态 一般调用两者在同一态
状态切换:系统调用通过软过程中断,一般调用不切换
返回问题:系统调用可调度,一般调用不调度
嵌套调用:系统调用限制,一般调用不限制