操作系统大纲(复习版)

2021.5.16 今日目标:第一章~第三章

这个并不是正儿八经的操作系统知识,只是lz酷爱使用md编写笔记,孩子要期末考试了,所以想在闲暇时刻也能复习,就上传到csdn用手机查看md格式的文档

第一章 操作系统引论

1. 知道操作系统的目标

  1. 方便性:方便用户使用计算机
  2. 有效性:提高系统资源利用率;提高系统吞吐量
  3. 可扩充性:采用微内核,让OS具有更好的可扩充性
  4. 开放性:OS能遵循世界标准规范,让遵循标准的软件硬件都能互相兼容

2. 知道操作系统的作用

  1. OS作为用户与计算机硬件系统之间的接口:用户在OS的帮助下能更方便、快捷、可靠的操纵计算机
  2. OS作为计算机系统资源管理者:OS管理“处理机、存储器、I/O设备、文件”
  3. OS实现了对计算机资源的抽象:I/O管理的抽象;文件管理对硬件资源的抽象

3. 操作系统多道的概念

多道程序设计的概念:用户提交的作业放到外存上,形成一个队列——“后备队列”,作业调度时按照一定的调度算法将其从后备队列调度到内存中。由于内存中有若干道程序,这样可以在运行程序A,由于其I/O阻塞,而将CPU空闲出来执行程序B,让程序B由于I/O阻塞时运行程序C,使多道程序交替执行。

4. 多道批处理系统优缺点

优点:

  1. 资源利用率高:内存中多道程序交替执行保持CPU处于忙碌状态;提高内存利用率;提高I/O设备利用率
  2. 系统吞吐量大:
    • CPU和“其他资源”保持忙碌状态
    • 仅当作业完成或者运行不下去时才进行切换,系统开销小

缺点:

  1. 平均周转时间长:因为作业要排队依次处理
  2. 无交互能力:用户把作业提交给系统之后,直到作业完成用户都不能和自己的作业进行交互

5. 分时操作系统的特点

分时系统:在一台主机上连接了多个配有显示器+键盘的终端所组成的系统,该系统中允许多个用户同时通过自己的终端以交互的形式使用计算机,共享主机中的资源

实现分时系统的关键问题:

  1. 及时接受:及时接收多个用户键入的命令和数据,配多路卡
  2. 及时处理:用户键入命令后,能对自己的作业进行控制和修改
    • 作业直接进入内存
    • 采用轮转:时间片

分时系统的特征:

  1. 多路性:允许多台终端连接到一台主机,并按分时的原则为每个用户服务
  2. 独立性:每个用户在各自的终端上进行操作,彼此互不干扰
  3. 及时性:用户的请求能在很短的时间内得到响应
  4. 交互性:用户可通过终端和系统进行广泛的人机对话

6. 操作系统的基本特征

  1. 并发性:并行、并发的区别
  2. 共享:互斥共享;同时访问(宏观意义上,类似于并发)
  3. 虚拟:时分复用;空分复用
  4. 异步:走走停停,进程以人们不知道的速度向前推进

7. 操作系统的基本功能

  1. 处理机管理功能

    1. 进程控制
    2. 进程同步
    3. 进程通信
    4. 调度:作业调度;进程调度
  2. 存储器管理功能

    1. 内存分配

      • 内存分配的主要任务:
      1. 为每道程序分配内存空间,是他们“各得其所”
      2. 提高存储器利用率,尽量减少不可用的内存空间(碎片)
      3. 允许正在执行的程序申请附加的内存空间
      • OS实现内存分配:
      1. 静态分配:作业进入内存前先确定需要多少内存空间
      2. 动态分配:作业需要的基本内存空间在进入内存前先确定,,允许申请附加的内存空间
    2. 内存保护

      1. 保证每道程序都在自己的内存空间内执行,彼此互不干扰
      2. 决不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其他用户程序中执行
    3. 地址映射

    4. 内存扩充

  3. 设备管理功能

    1. 缓冲管理:管理I/O设备与CPU的矛盾
    2. 设备分配
    3. 设备处理
  4. 文件管理功能

    1. 文件存储空间管理
    2. 目录管理
    3. 文件的读/写管理和保护
  5. 操作系统与用户之间的接口

    1. 用户接口
    2. 程序接口
  6. 现代操作系统新功能

    1. 系统安全
    2. 网络功能和服务:网络通信;资源管理;应用互操作
    3. 支持多媒体

第二章 进程的描述与控制

1. 程序顺序执行和并发执行各自的特点

顺序执行的特点:

  1. 顺序性:严格按照程序规定的顺序执行
  2. 封闭性:程序在封闭环境下进行,运行时会独占全机资源
  3. 可再现性:程序重复执行的结果一样

并发执行的特点:

  1. 间断性
  2. 失去封闭性
  3. 不可再现性

2. 并发执行与并行执行的区别

并发性:多个进程实体同时存在于内存中,并且在一段时间内同时运行

并行执行:两个或者多个进程在同一时刻同时执行

3. 进程的定义和特点

进程=程序段+数据+PCB

进程的定义:进程是进程实体的运行的过程,是系统进行资源分配和调度的一个单位

特点:

  1. 动态性:具有完整的生命周期,程序是静态的
  2. 并发性
  3. 独立性
  4. 异步性:走走停停,各进程按照自己独立的,不可预知的速度向前推进

4. 进程和程序的区别

  1. 程序是静态的;进程是动态的
  2. 程序是一段段代码指令;进程由程序段和数据和PCB组成
  3. 程序可以永久保存,进程具有生命周期

5. 进程的组织结构

进程=程序段+数据+PCB

6. PCB概念,定义,作用,是进程存在唯一标志的原因

PCB概念:?

PCB定义:?

PCB作用:使不能独立运行的程序成为一个能独立运行的基本单位——进程

PCB是进程存在唯一标志的原因:OS是通过PCB感知进程的存在

PCB包含的信息:

  1. 进程标识符
  2. 处理机状态
  3. 进程调度信息
  4. 进程控制信息

7. 进程的五种基本状态和各自的含义。

  1. 就绪状态:进程准备好运行,只要分配到CPU就能进入执行状态
  2. 执行状态:进程已获得CPU,正在执行
  3. 阻塞状态:由于进程发生某些事情(I/O请求,申请缓冲区失败等)暂时无法继续执行的状态
  4. 创建状态:创建一个进程
  5. 终止状态:终止一个进程

8. 进程中就绪、执行、阻塞三种基本状态转换变迁条件和原因

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EZ1qSX0P-1621585294275)(/Users/uru/Library/Application Support/typora-user-images/image-20210517132159152.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H8cjKYnT-1621585294277)(/Users/uru/Library/Application Support/typora-user-images/image-20210517132240798.png)]

9. 进程同步互斥

进程的同步:在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。

进程的互斥:两个或两个以上的进程,不能同时进入同一个临界变量,否则可能发生与时间有关的错误,这种现象被称作进程互斥

10. 临界资源和临界区

临界资源:一次仅允许一个进程使用的共享资源。各进程采取互斥的方式,实现共享的资源称作临界资源

临界区:访问临界资源的那一段代码

11. 同步机制遵循的四条准则

  1. 空闲让进:临界资源空闲就允许请求进入临界区的进程进入自己的临界区
  2. 忙则等待:临界资源正在被访问,其他请求临界资源的进程就必须等待
  3. 有限等待:对于要访问临界资源的进程,应该保证在有限时间内进入自己的临界区
  4. 让权等待:进程不能进入自己的临界区时,就应该立即释放处理机,避免陷入“忙等”

12. 信号量机制概念

四种,教材P52,PDF—P62

1. 整型信号量

//S表示资源数目
wait(S){while(S<=0){S--;}
}//P操作
signal(S){while(S>=0){S++;}
}//V操作

一个进程在修改信号量时,其他进程不能对该信号量进行修改。不能中断。

2. 记录型信号量

采取“让权等待”原则

typedef struct{int value;//代表资源数目,初值表示系统中某种资源的数目,如果初值为1,转化为互斥信号量struct process_control_block*list;//进程链表指针
}semaphore;
wait(semaphore *S){s->value--;//意味着可供分配的资源减少一个if(S->value<0)//S->value<0,该类型资源分配完毕,阻塞,放弃处理机block(S->list);
}//P操作
signal(semaphore *S){S->value++;if(S->value<=0)//如果仍然≤0,就强制唤醒wakeup(s->list);
}//V操作

3. AND型信号量

AND信号量思想:将进程所需要的资源一次性全部分配给进程,使用完后再全部释放

Swait(S1,S2,...,Sn){while(true){if(Si>=1&&...&&Sn>=1){for(i=1;i<=n;i++)Si--;break;}else{place the process in the waiting queue associated with first Si found with Si<1,and set the program count of this process to the beginning of Swait operation}}
}
Ssignal(S1,S2,...,Sn){while(true){for(i=1;i<=n;i++){Si++;Remove all the process waiting in the queue associated with Si into the ready queue//把所有的阻塞进程移动到就绪队列}}
}

说实话,这段代码确实没咋看懂,他是咋一次性把资源都给分配出去的呀,P操作里面的else又是啥意思

4. 信号量集

当进程每次申请临界资源时,*在每次分配前都要先检测资源数量判断是否大于可分配的下限值,再决定是否分配

看着咋和银行家算法有些相似呢

Swait(S1,t1,d1,...,Sn,tn,dn);
Ssignal(S1,t1,d1,...,Sn,tn,dn);

特殊情况:

  1. Swait(S,d,d),信号量集中只有一个信号量S,允许他每次申请d个资源,当现有资源小于d时,不予以分配
  2. Swait(S,1,1),变为一般的记录型信号量(S>1)或互斥信号量(S=1)
  3. Swait(S,1,0),S≥1时,允许多个进程进入某特定区,S=0时,阻止任何进程进入某特定区。

13. 信号量机制中wait,signal操作

P操作=wait操作

V操作=signal操作

四种信号量机制中的P、V操作实现机制不一样

  1. 整型信号量
//S表示资源数目
wait(S){while(S<=0){S--;}
}//P操作
signal(S){while(S>=0){S++;}
}//V操作
  1. 记录型信号量
wait(semaphore *S){s->value--;//意味着可供分配的资源减少一个if(S->value<0)//S->value<0,该类型资源分配完毕,阻塞,放弃处理机block(S->list);
}//P操作
signal(semaphore *S){S->value++;if(S->value<=0)//如果仍然≤0,就强制唤醒wakeup(s->list);
}//V操作
  1. AND型信号量
Swait(S1,S2,...,Sn){while(true){if(Si>=1&&...&&Sn>=1){for(i=1;i<=n;i++)Si--;break;}else{place the process in the waiting queue associated with first Si found with Si<1,and set the program count of this process to the beginning of Swait operation}}
}
Ssignal(S1,S2,...,Sn){while(true){for(i=1;i<=n;i++){Si++;Remove all the process waiting in the queue associated with Si into the ready queue//把所有的阻塞进程移动到就绪队列}}
}
  1. 信号量集

暂不表述,没懂

14. 利用信号量机制的PV操作进行进程同步

我觉得这里映射教材2.5节,用信号量机制处理生产者-消费者问题,哲学家就餐问题,读写问题

1. 信号量机制进行互斥操作

为啥要写这个,因为觉得mutex的取值会考

问题描述:让多个进程互斥的访问某临界资源

思路:设置一个信号量mutex,初始值为1(是不是表示锁开着的?)

实现:mutex为互斥访问信号量,初值为1,取值范围为(-1,0,1)

  1. mutex=1时,表示两个进程都没有进入需要互斥的临界区
  2. mutex=0的时候,一个进程进入临界区运行,另一个必须等待,所以被挂入阻塞队列
  3. mutex=-1,一个进程已经进入临界区运行,另一个进程因等待被挂入阻塞在信号量队列中,需要被已在临界区运行的进程退出时唤醒。

我的问题是,要怎么才能使mutex=-1

semaphore mutex=1;
Pa(){while(1){wait(mutex);临界区;signal(mutex);剩余区;}
}
Pb(){while(1){wait(mutex);临界区;signal(mutex);剩余区;}
}

2. 生产者-消费者问题

问题描述:在生产者和消费者之间有公用缓冲池(n个缓冲区)

解决方法1:记录型信号量解决生产者-消费者问题

用信号量empty和full表示缓冲池中空缓冲区和满缓冲区数量,一开始empty初值为n

int in=0,out=0;
item buffer[n];//缓冲区
semaphore mutex=1,empty=n,full=0;//互斥信号量,空缓冲区,满缓冲区
void producer(){do{proceducer an item nextp;...wait(empty);//把物品放入缓冲池,空缓冲区-1wait(mutex);//关锁,进入临界区buffer[in]=nextp;in:=(in+1)%n;//存放的位置,和循环队列很像哈signal(mutex);//开锁,退出临界区signal(full);//满缓冲区数量+1}while(true);
}
void consumer(){do{producer an item nextp;...wait(full);//把物品拿出缓冲池,满缓冲区-1wait(mutex);//关锁,进入临界区nextc=buffer[out];out=(out+1)%n;//拿出缓冲区的位置signal(mutex);//开锁,退出临界区signal(empty);//空缓冲区数量+1}while(true);
}
void main(){cobeginproceducer(); consumer();coend
}
解决方法2:用AND型信号量解决生产者-消费者问题

代码没得啥子大变,就信号量机制处理不一样了

int in=0,out=0;
item buffer[n];//缓冲区
semaphore mutex=1,empty=n,full=0;//互斥信号量,空缓冲区,满缓冲区
void producer(){do{proceducer an item nextp;...Swait(empty,mutex);//把物品放入缓冲池,空缓冲区-1,关锁,进入临界区buffer[in]=nextp;in:=(in+1)%n;//存放的位置,和循环队列很像哈signal(mutex,full);//开锁,退出临界区,满缓冲区数量+1}while(true);
}
void consumer(){do{producer an item nextp;...wait(full,mutex);nextc=buffer[out];out=(out+1)%n;//拿出缓冲区的位置signal(mutex,empty);}while(true);
}

3. 哲学家进餐问题

问题描述:五个哲学家共用一张圆桌,分别坐在五张椅子上,在圆桌上有五个碗和五只筷子,他们生活就必须进行交替的思考和进餐。当哲学家饥饿时就会视图拿起左右两边的筷子进行进餐,只有同时拿起两只筷子才能进餐。

1. 记录型信号量解决哲学家就餐问题
semaphore chopstic[5]={1,1,1,1,1};//信号量
//第i位哲学家进餐活动
do{wait(chopstic[i]);//拿起第i只筷子,我也不知道是左边还是右边wait(chopstic[i+1]%5);//拿起第i+1只筷子//eatsignal(chopstic[i]);//释放第i只筷子signal(chopstic[i+1]%5);//释放第i+1只筷子//think
}while(true);

第i位哲学家进行就餐时,总会先去拿左边的筷子,当五位哲学家同时就餐,分别只拿到左边的一只筷子,就无法拿到第二只筷子,就会陷入忙等的死锁状态。

解决办法:

  1. 至多允许四个哲学家进餐,就至少保证有一位哲学家肯定能进餐,进餐完后释放筷子,其他哲学家就能依次进餐
  2. 当且仅当哲学家左右两边的筷子都能使用时才能进餐
  3. 规定奇数号哲学家先拿左边的筷子,偶数号哲学家先拿右边的筷子。即五位哲学家都争奇数号筷子,获得后再去竞争偶数号筷子,最后总有一位哲学家能获得两只筷子进餐。
2. 用AND型信号量机制解决哲学家进餐问题

代码没啥大变化,重点就是wait和signal变化了

semaphore chopstic[5]={1,1,1,1,1};//信号量
//第i位哲学家进餐活动
do{Swait(chopstic[i+1]%5,chopstic[i]);//拿起第i+1只筷子和第i只筷子//eatSsignal(chopstic[i+1]%5,chopstic[i]);//释放第i+1只筷子和第i只筷子//think
}while(true);

4. 读者-写者问题

问题描述:一个数据文件或者记录可以被多个进程共享。允许多个设备同时读一个共享对象,不允许一个Writer进程和一个Reader进程同时访问一个共享对象,也不允许多个Writer进程同时访问一个共享对象。本质:保证一个Writer进程必须与其他进程互斥的访问共享对象。

1. 记录型信号量解决读者-写者问题
2. 信号量集解决读者-写者问题

就不想写是怎么回事啊阿啊阿啊阿啊

15. 线程的基本概念

1. 线程的定义

线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

2. 线程的运行的三个状态

  1. 执行状态:表示已经获得处理机而正在运行
  2. 就绪状态:已经具备执行条件,只需要再获得处理机就能运行
  3. 阻塞状态:线程在执行中因为某件事受阻而处于暂停状态

3. 线程控制块TCB

和PCB很类似,里面具体有啥就不写出来了

4. 多线程OS中的进程属性

  1. 进程是一个可拥有资源的基本单位
  2. 多线程可以并发执行
  3. 进程已经不是可执行的实体

16. 进程和线程的归属关系

1. 关系

一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.

说实话,这个关系没咋懂

2. 区别

  1. 调度的基本单位:传统OS中调度的基本单位是进程,但是在进程调度时会进行上下文切换,开销较大;线程OS中,线程切换时代价远小于进程切换。
  2. 并发性:进程可以进行并发执行,一个进程里的线程可以进行并发执行,不同进程里的线程也可以进行并发执行。
  3. 拥有的资源:进程可以拥有资源,是系统中拥有资源的基本单位,线程本身并不拥有资源只有很少的一些资源保证能够独立运行。
  4. 独立性:线程的独立性小于进程,进程拥有单独的地址空间,线程要和其他线程一起共享资源。
  5. 系统开销:进程的系统开销明显大于线程,系统创建、终、调换进程都要进行大量的资源调配,线程的系统开销明显小于进程,因为线程只需要很少的一些资源就能维持自己的运行。
  6. 支持多处理机系统:进程只能在一个处理机上执行,但是多线程的进程就能将线程分配到多处理机上执行,无疑将加速进程的完成。

第三章 处理机调度与死锁

1. 处理机调度的层次和调度完成的功能

1. 高级调度/作业调度/长程调度/接纳调度

选择把外存上的处于后备队列的作业调入内存,创建PCB等,插入就绪队列

作业=程序+数据+作业说明书

2. 中级调度/交换调度

按照给定的原则和策略把处于外存交换区中就绪状态或者等待状态的进程调入内存,或者把内存中就绪状态的进程交换到外存交换区

目的:提高内存资源利用率和系统吞吐量

3. 低级调度/进程调度/短程调度

按照某种策略或者算法将处理机分配给一个处于就绪状态的进程

2. 周转时间、运行时间、提交时间、完成时间

1. 周转时间

周转时间:作业被提交到系统后,直到作业完成为止的时间间隔Ti

平均周转时间T:
T=1n∑n=1nTiT=\frac{1}{n}\sum_{n=1}^nT_i T=n1​n=1∑n​Ti​
带权周转时间W:
W=TTsW=\frac{T}{T_s} W=Ts​T​
T:作业周转时间;Ts:提供服务的时间

平均带权周转时间W:
W=1n∑i=1nTiTsW=\frac{1}{n}\sum_{i=1}^n\frac{T_i}{T_s} W=n1​i=1∑n​Ts​Ti​​

2. 运行时间

3. 提交时间

4. 完成时间

我在ppt和书上都没找到这三个的概念

我猜,会不会是周转时间=运行时间+提交时间+完成时间,是这样的话就有些离谱嗷,暂时跳过

3. 作业多概念

作业=程序+数据+作业说明书

一个作业总是由一个或多个进程组成的

作业多三种状态:

  1. 收容状态/后备状态:为作业建立JCB,把作业放到后备队列里
  2. 运行状态:分配资源和建立进程,放入就绪队列
  3. 完成状态:程序收回分配出去的资源和JCB

作业调度的任务:

  1. 接纳多少个作业
  2. 接纳哪些作业

4. 作业块JCB作用

JCB作用:

  1. 作业存在的标志
  2. 保存系统对作业调度需求的全部信息:作业类型,资源要求,当前状态,资源使用情况,作业优先级

5. 作业调度算法的思想和效率特点

1. 先来先服务调度算法(FCFS)

思想:系统按照作业到达先后次序进行调度,优先考虑在系统中等待时间长的作业,而不考虑作业执行时间长短

效率:???

2. 短作业优先算法(SJF)

思想:作业越短,优先级越高

缺点:

  1. 必须预知作业运行的时间
  2. 对长作业非常不利
  3. 采用FCFS算法是无法人机交互
  4. 没有考虑作业的紧迫程度

3. 优先级调度算法(PSA)

思想:基于作业的紧迫程度,作业越紧迫,优先级越高

4. 高响应比优先调度算法(HRRN)

思想:既考虑作业等待时间,又考虑作业运行时间,增加动态优先级
Rp=优先权=等待时间+要求服务时间要求服务时间=响应时间要求服务时间R_p=优先权=\frac{等待时间+要求服务时间}{要求服务时间}=\frac{响应时间}{要求服务时间} Rp​=优先权=要求服务时间等待时间+要求服务时间​=要求服务时间响应时间​

6. 进程调度中优先级抢占调度和非抢占调度

1. 进程调度方式

1. 非抢占调度

非抢占调度:处理机分配给某个进程之后,就让他一直运行下去,绝不会因为时钟中断或者其他原因抢占当前正在运行进程的处理机,知道该进程完成或者阻塞,才重新分配处理机

引起进程调度的原因:

  1. 进程执行完毕或因为某件事情无法继续执行;
  2. I/O请求
  3. 执行了某种原语,block

适用于大多数批处理系统,不适用于分时系统或实时系统

2. 抢占方式

抢占式调度:根据某种原则,去暂停某个正在执行的进程,将处理机重新分配给其他进程

抢占原则:

  1. 优先权原则
  2. 短进程优先原则
  3. 时间片原则

2. 优先级调度算法

1. 算法调度类型
  1. 非抢占式优先级调度算法:处理机分配给某个进程之后,就让他一直运行下去,或者因为某时间而放弃处理机。系统将处理机分配给另一优先级高的进程
  2. 抢占式优先级调度算法:把处理机分配给优先级最高的进程执行,只要出现了优先级更高的进程,就将处理机分配给新的优先级最高的进程
2. 优先级类型
  1. 静态优先级:创建进程时就已经确定,运行期间保持不变

    确定依据:

    • 进程类型:系统进程一般高于用户进程
    • 进程对资源要求:资源要求少的优先级高
    • 用户要求:根据进程紧迫程度确定

7. 进程调度算法的思想和效率特点(轮转调度、多级反馈队列调度)

1. 轮转调度算法(RR)

思想:将所有就绪进程按照FCFS排成就绪队列,设置一个时间便中断一次,去激活进程调度程序去调度,分配CPU

进程切换时机:

  1. 时间片没用完,进程执行完毕
  2. 时间片用完,进程没执行完,把进程送到就绪队列队尾

时间片大小的确定:一个较为可取的时间片大小是略大于一次典型的交互所需要的时间,使大多数交互式进程能在一个时间片内完成,从而获得很小的响应时间

2. 多级队列调度算法

思想:把系统里的进程就绪队列从一个拆分为若干个,按照不同类型或者性质分配在不同的就绪队列,不同的就绪队列采用不同的调度算法,一个就绪队列中的进程可以设置不同的优先级,不同的就绪队列本身也可以设置不同的优先级

3. 多级反馈队列调度算法

思想:

  1. 设置多个就绪队列,每个队列有不同的优先级,优先级越高的队列时间片越小
  2. 每个队列采取FCFS算法。新进程进入内存被放入第一队列队尾,执行一个时间片,如果没有执行完就放入第二个队列队尾,以此类推,直到进入第n个队列采取RR方式运行
  3. 安队列优先级调度

调度算法性能:

  1. 终端型用户:提交的作业小,在第一队列就能完成,满意!
  2. 短批处理作业用户:短作业在第一队列完成,长作业在第二第三队列能完成,周期短,满意!
  3. 长批处理用户:长作业在第一第二第三……队列运行,最后采用RR轮转执行,不必担心得不到处理,满意!

8. 死锁的定义

如果一组进程中的每一个进程都在等待仅由该组进程中其他进程才能引发的事件,那么该组进程就是死锁(deadlock)

9. 产生死锁的原因

  1. 互斥条件:某资源只能被一个进程占用,如果还有其他进程请求这个资源,就只能等待
  2. 请求和保持条件:进程已经保持了至少一个资源,又提出新的资源请求得不到满足
  3. 不可抢占条件:进程已获得的资源在未使用完之前不能被抢占
  4. 循环等待:发生死锁时,必然存在一个进程-资源循环链

10. 处理死锁的四个方法

  1. 预防死锁:提前破坏产生死锁的一个或者几个条件(除了互斥)
  2. 避免死锁:资源动态分配过程中,用某种方法防止系统进入不安全状态(银行家算法)
  3. 检测死锁,允许发生死锁,但是可以检测出来,然后采取适当的措施解决死锁
  4. 解除死锁:检测到系统已经发生死锁,采取相应的措施解决死锁。通常采用撤销一些进程,回收资源。

11. 银行家算法

1. 数据结构:

  1. Available,可利用资源向量
  2. Max,最大需求矩阵
  3. Allocation,分配矩阵
  4. Need,需求矩阵

Need[i]=Max[i]-Alocation[i,j]

2. 银行家算法:

设置Requesti是进程Pi的请求向量

步骤:

  1. 如果Requesti[j]≤Need[i,j],转向步骤2,否则就是出错,根本不能分配

  2. 如果Requesti[j]≤Available[j],转向步骤3,否则表示无足够资源分配,Pi必须等待

  3. 试着将资源分配给进程Pi,修改下面的数值:

    Available[j]=Available[j]-Requesti[j];

    Allocation[i,j]=Allocation[i,j]+Requesti[j];

    Need[i,j]=Need[i,j]-Requesti[j];

  4. 系统执行安全性算法

3. 安全性算法

  1. 设置向量Work和Finish

  2. Work初值:Work:=Available

  3. 从集合中找出能满足下面条件的进程

    1. Finish[i]=false;
    2. Need[i,j]≤Work[j];
  4. 进程获得资源后,可顺利执行,释放资源

    1. Work[j]=Work[j]+Allocation[i,j];

    2. Finish[i]=true;

    3. 转步骤2

  5. 如果所有的进程都能满足Finish[i]=true,说明系统处于安全状态,否则系统处于不安全状态。

第四章 存储器管理

1. 动态分区分配中四种基于顺序搜索分配算法策略思想和特点

1. 首次适应算法(First Fit FF)

思想:找到第一个能满足长度要求的空闲区,从中截取所需空间。每个空白区按地址递增的顺序链接在一起

特点:

  1. 尽量使用低端地址,保持高地址的大空间区;
  2. 低地址部分有很多小空白区,回收花销较大,费时

2. 循环首次适应算法(next fit NF)

思想:在为进程分配内存空间时,不再是每次都从链首开始查找,而是从上次找到空闲分区的下一个空闲分区开始查找,直到遇到一个满足要求的空闲分区。

特点:

  1. 使内存中空闲分区分布更加均匀,减少了查找空闲分区的开销
  2. 缺乏大的空闲分区

3. 最佳适应算法(best fit BF)

思想:从自由链中挑选能满足申请的最小自由区

特点:

  1. 查找时间较少
  2. 选择最适合的空白区
  3. 会形成许多小碎片
  4. 找一个大的空白区较慢
  5. 回收费时
  6. 先拼接再把该区插入合适位置

4. 最坏适应算法(worst fit WF)

思想:总是挑选最大的自由区分割给申请者

特点:

  1. 分配时间快
  2. 剩下的空白分区仍然可用
  3. 各空白区比较均匀的减少
  4. 一段时间后不能满足大的空白区要求
  5. 回收麻烦

2. 分页存储管理方式中页表的作用

页面/页:将一个进程的逻辑地址空间分为若干个大小相同的片

物理块/块:吧内存空间分为与页面大小相同的若干个存储块

页内碎片:进程的最后一页装不满而形成了无法使用的碎片

页表/页面映像表:系统为每个进程建立的一张页面映射表,实现从页号到物理块号的地址映射,页表起始地址存在进程的PCB中

页表的作用:实现逻辑地址到物理地址到转换

3. 分页存储管理方式中地址变换的过程

如果把页表全部放在内存,那么存取一个数据时,至少要访问二次内存。一次是访问页表,形成实际内存地址;另一次是根据形成的内存地址存取数据。

4. 快表的概念和引入快表的目的

快表概念:在地址变换机构中加入一个高速,小容量,具有并行查询能力的联想存储器,构成快表,存放放当前正在运行的作业的当前页号和块号

引入快表的目的:为了提高映射速度

5. 在分页存储管理方式中引入块表后,地址变换的过程

具有快表/联想寄存器的地址变换:将页表送入高速缓冲寄存器中与所有页表进行比较,如果有就表示所需要的页表在快表中,可以直接从快表中读取相对应的物理块号,将物理地址直接送入物理地址寄存器中;如果快表中没有找到,还是需要访问内存中的页表,把读出来的物理块号送入物理地址寄存器,还需要将此页表存入快表的一个寄存器单元中

6. 分段和分页的区别

  1. 页是信息的物理单位,分页可以实现离散分配,消除外部碎片。分页由系统划分。

    段是信息的逻辑单位,分段由用户划分

  2. 页的大小固定,段的大小动态变化

  3. 分页的作业地址空间是一维的

    分段的作业地址空间是二维的(需要给出段号和段内地址)

  4. 分段容易实现程序与数据共享

7. 段页式存储管理方式中对用户空间和对存储空间的划分管理机制

在段页式系统中,为了获得一条指令或数据,须三次访问内存。

面向用户的地址空间是段式划分,面向物理实现的地址空间是页式划分

对用户空间——段式划分

对存储空间——页式划分

第五章 虚拟存储器

1. 虚拟存储器的定义和存储容量的划分原则,会计算虚存容量

虚拟存储器:具有请求调用功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统。

存储容量:逻辑容量由内存容量外存容量所决定。

2. 虚拟存储器的特征

  1. 多次性:一个作业中方的程序和数据无需一次装入内存,允许被多次调入内存运行
  2. 对换性:一个作业中程序和数据无需在作业运行时一直待在内存,允许在作业运行的过程中进行换进换出
  3. 虚拟性:能够从逻辑上扩充内存容量,使用户看到的内存容量远大于实际内存容量

3. 请求页表机制各个字段作用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-674dXwIv-1621585294280)(/Users/uru/Library/Application Support/typora-user-images/image-20210521113337194.png)]

  1. 状态位P:用于指示该页是否已调入内存,供程序访问时参考
  2. 访问字段A:记录本页一段时间内访问次数,记录本页最近已经有多长时间未被访问,供选择换出页面时参考
  3. 修改位M:表示该页调入内存后是否被修改过
  4. 外存地址:用于指出该页在外存上的地址,供调入该页面时参考

4. 请求分页管理机制

在程序执行过程中,当访问的信息不在内存中,由操作系统负责将所需信息从外存调入内存,然后继续执行程序。

来自CSDN,懒得去翻书了,太耗费时间

5. 会根据给定访问页面数,利用 OPT 页面置换算法、FIFO 页面置换算法、LRU 页面置换算法选择缺页和计算缺页率。

OPT:从内存中移出以后不再使用的页面;如无这样的页面,则选择以后最长时间内不需要访问的页。

FIFO:淘汰驻留时间最久的

LRU:选择在最近一段时间最久未使用的页面予以淘汰,向前看

6. 解决抖动问题引入的工作集机制

抖动问题:在在系统中运行的程序太多,进程在运行过程中会频繁的发生缺页的情况,会对程序性能产生很大的影响。

工作集:进程发生缺页率的时间间隔和进程所获得的物理块数有关。指在某段时间内,进程所需要访问页面的合集。

第六章 输入输出系统

1. 按照设备固有属性分为哪些设备分配策略

1. 设备的分类

不要问和“按照设备固有属性分为哪些设备分配策略”,问就是写错了

  1. 按使用特性分类

    • 存储设备
    • 输入/输出设备
  2. 按传输速率分类
    • 低速设备:键盘,鼠标
    • 中速设备:打印机
    • 高速设备:磁盘,磁带,光盘机
  3. 按信息传输单位分类
    • 块设备:以数据块为单位存储,传输数据;特征:传输速率高,可以寻址、使用DMA方式工作
    • 字符设备:以字符为单位存储,传输数据;特征:传输速率较低,不能寻址,使用中断方式工作
  4. 按资源分配方式分类:
    • 独占设备:打印机
    • 共享设备:硬盘

2. 按照设备固有属性分为哪些设备

1. 独占设备的分配

独享设备是指这类设备被分配给一个作业后,被这个作业所独占使用,其他的任何作业不能使用,直到该作业释放该设备为止。针对独享设备,系统一般采用静态分配方式

2. 共享设备的分配

共享设备是指允许多个用户共同使用的设备。如磁盘、磁鼓等设备,可由多个进程同时进行访问。对共享设备的分配一般采用动态分配这一方式 。

特点:

  1. 静态分配设备利用率低
  2. 动态分配效率高,分配策略不好容易产生死锁
3. 虚拟设备的分配

虚拟设备是指代替独享设备的那部分存储空间及有关的控制结构。对虚拟设备采用的是虚拟分配。

3. 按照设备固有属性分为哪些设备分配策略

1. 先来先服务算法

在先来先服务算法中,对同一设备,按并发进程中I/O请求发出的时间先后,将I/O请求块排队。当设备可用(可以分配)时,则将设备分配给队首元素对应的进程,即最先对此设备提出I/O请求的进程。

2. 优先级算法

按一定原则设置进程的优先级,按进程的优先级由高到低的顺序对各并发进程对同一设备的I/O请求块排队。当设备可用(可以分配)时,则将设备分配给队首元素对应的进程——在对同一设备提出I/O请求的并发进程中优先级最高的进程。

2. 设备无关性(设备独立性),如何实现设备无关性

设备无关性/设备独立性:在应用程序中使用某类设备时,不直接指定使用哪个设备,只指定使用哪一类设备,有操作系统分配具体的哪一个设备

设备独立性优点:

  1. 实现了设备分配的灵活性
  2. 实现了I/O重定向

实现设备无关性:

答案有些离谱嗷,我也不知道正确的是啥

  1. 引入逻辑设备和物理设备概念
  2. 在应用程序中,使用逻辑设备名请求使用某类设备;
  3. 在驱动程序之上设置一层设备独立性软件,执行所有设备的公有操作、完成逻辑
    设备名到物 理设备名的转换(为此应设置一张逻辑设备表)并向用户层(或文件层)软件
    提供统一接口,从而实现设备的独立性。

3. SPOOLing 技术的概念、实质、组成部分

SPOOLing/假脱机概念:外围设备同时联机操作

SPOOLing技术实质:

SPOOLing技术作用:为了缓和CPU高速性和I/O设备低速性之间的矛盾

SPOOLing技术组成:

  1. 输入井和输出井
  2. 输入缓冲区和输出缓冲区
  3. 输入程序和输出程序
  4. 请求操作队列表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t87Mq6gF-1621585294281)(/Users/uru/Library/Application Support/typora-user-images/image-20210521155709218.png)]

SPOOLing技术特点:

  1. 提高了I/O速度
  2. 将独占设备改造为共享设备
  3. 实现了虚拟设备功能

4. 磁盘访问时间的概念和特点

磁盘访问时间:

  1. 磁头运动到相应磁道;(Ts——寻道时间)
  2. 旋转盘片,使对应的扇区开始位置位于磁头下;(Tr——旋转延迟)
  3. 读写操作。(Tt——传输时间)

磁盘访问时间:(寻道时间占比最大)
t=Ts+Tr+Ttt=Ts+Tr+Tt t=Ts+Tr+Tt

Tt=brNTt=\frac{b}{rN} Tt=rNb​

b是一次读取的字节数,r是磁盘每秒转速,N为每条磁道的字节数

特点:寻道时间占比最大

5. 访问磁道算法,FCFS,SSTF,SCAN,CSCAN

这个嘛才做过,俺会做。

第七章 文件管理

1. 文件按性质和用途分的文件类型

  1. 系统文件:系统软件构成的文件。大多数只允许用户调用,不允许读,写;部分系统文件不对用户开放
  2. 用户文件:由用户源代码,目标文件,可执行文件或数据构成的
  3. 库文件:由标准子例程及常用的例程所构成的文件

2. 文件的逻辑结构分类

  1. 有结构文件/记录式文件:把文件内的信息划分为多个记录,用户以记录为单位来组织信息,即在逻辑上可被看成是一组连续顺序的记录的集合
  2. 无结构文件/字符流式文件:由字符序列组成的文件,其文件内部不再划分记录,文件长度直接按字节来计算

3. 文件目录结构下的文件命名特点

要求:

  1. 按名存取
  2. 提高对目录的检索
  3. 文件共享
  4. 允许文件重名

操作系统大纲(复习版)相关推荐

  1. 最初级且依赖于硬件的计算机语言是,计算机基础复习大纲(整理版).doc

    计算机基础复习大纲(整理版) 计算机基础复习大纲 题型:选择题.填空题.判断题.简答题.操作填空题. 1946年世界上第一电子计算机在美国宾夕法尼亚大学诞生,取名ENIAC. 教材P8页计算机系统的组 ...

  2. Linux 操作系统常用以下哪种编译器,Linux 操作系统期末复习资料(Alpha版)

    Linux 操作系统期末复习资料 >>问答题 1.请列举至少4个你知道的Linux发行版? 答:RedLinux.红旗Linux.Debain.SuSE Linux等. 2.Linux支持 ...

  3. 计算机操作系统 (第四版汤小丹老师) 复习笔记第一章

    教材为西安电子科技大学 汤小丹老师 第四版 1.1操作系统目标和作用 1.目标 目前存在着多种类型的OS,不同类型的OS,其目标各有所侧重.通常在计算机硬件上配置的OS,其目标有以下几点: 方便性 便 ...

  4. 计算机操作系统期末复习大纲

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 一.绪论 1.操作系统的定义和作用  1.1 2.操作系统的特征 1.3 3.操作系统的功能 1.5 操作系统的分类(对应1.2 ...

  5. linux 磁盘科隆,上海第二工业大学嵌入式操作系统B复习(无答案版)

    嵌入式操作系统B复习 答疑时间6月18日9:00-14:00,15#518 填空题20分,选择题20分,判断题10分,简答题20分,实验题30分. 一.填空题 1.ARM中断处理有哪两种中断模式.快速 ...

  6. 计算机操作系统期末复习

    期末复习的时候看到别人整理好的担心以后不好找特此粘贴(希望原博主不要打我~)计算机操作系统第四版期末复习 对于批处理作业,必须提供相应的作业控制信息操作系统的主要功能是管理计算机系统中的(资源)分时系 ...

  7. TUT2020年操作系统期中复习

    操作系统期中复习 (第四版) : D 1.操作系统主要功能及主要特征 1.1操作系统的主要特征 并发性 共享性 虚拟性 异步性 1.2操作系统的主要功能 处理机管理 存储器管理 设备管理 文件管理 友 ...

  8. 全国高等学校计算机等级考试大纲,全国高等学校计算机等级考试大纲(2013版).doc...

    全国高等学校计算机等级考试大纲(2013版) 全国高等院校计算机等级考试 (重庆考区) 考 试 大 纲 (2013版) 目录 考试大纲3 一级考试大纲3 二级Visual FoxPro程序设计考试大纲 ...

  9. deepin系统引导_国产 Linux 发行版 深度操作系统 20 正式版发布

    来源:Linux Deepin 原文地址:https://www.deepin.org/zh/2020/09/11/deepin-20-innovation-is-ongoing/ 深度操作系统是一个 ...

最新文章

  1. 【SqlServer】SqlServer中的更新锁(UPDLOCK)
  2. MFC第三节-多线程
  3. Java变量的修饰符
  4. MongoDB 2.5 版本将提供新的查询引擎
  5. Django开发—如何重置migration
  6. 程序设计实验题5.3 瓜分车厘子
  7. linux试密码3次则屏蔽ip,linux centos封锁多次ssh密码错误的主机IP
  8. python3小程序代码_我想使用python写一个小程序作为练习,使用的是python3。
  9. Android Eclipse 导入 AS Gradle AAR 库手册
  10. 2021-11-12 应用密码学:协议、算法与C源程序(目录)
  11. nginx的cgi模块
  12. 计算机和移动存储设备管理台账,如何建立涉密管理台账?
  13. 计算机专业女生进电网,考入华北电力大学计算机专业,无缘国家电网,这是为什么?...
  14. 量化投资作业的R实现——收益率相关图形绘制
  15. raid配置ssd为缓存_固态硬盘做缓存如何设置
  16. 企业数据资产管理:数据资产目录应该如何规划
  17. fabric-ca-client 详解动态添加组织
  18. 7-2 平面向量加法 (15 分)
  19. 【搜搜李找】如果宠物能上网,那论坛会变成什么样~~
  20. 云深处科技推出国内首款IP66工业级防水机器狗“绝影X20”

热门文章

  1. 七夕又来了,给女朋友做个动态二维码
  2. 滴滴为什么还不上市?缺故事还是怕事故?
  3. pdf怎么变成jpg?学会这俩招,稳稳解决
  4. ERA5数据下载和批处理教程
  5. 张飞老师硬件第二十四部--马达驱动--原理图设计①----5三项直流无刷永磁电机相关
  6. 供应链协同系统,助力传统行业协同管理平台更高效运营
  7. LeetCode 50_Pow(x, n) 乘方实现
  8. 什么是seo(seo是什么意思?)
  9. 计算机音乐的制作流程,RME Babyface Pro 为音乐制作人/DJ Supa Dups 简化了制作流程...
  10. 2019年工作生活总结