操作系统期末复习
第1章 操作系统引论
-
什么是操作系统?
操作系统是管理计算机软、硬 件资源的软件,控制和协调计算处 理活动,提供用户接口
-
操作系统的主要功能
-
什么是原语?
原语是对操作系统核心数据结构(进程表、进程控制块、设备控制块、 文件控制块)进行修改操作的程序。
-
用户态和内核态
-
什么是系统调用
应用程序不能直接访问计算机的软硬件资源。系统调用是应用程序请求操作系统内 核程序执行、对软硬件资源进行操作的接口。 系统调用过程的本质就是中断调用过程,其实现方式包括显示方式和隐式方式两种。
第2章 进程的描述与控制
§ 什么是进程?什么是线程?两者的区别
进程的定义
-
进程是程序的一次执行
-
进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
-
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调 度的一个独立单位。
可以简单理解为:进程就是执行中的程序
线程的概念
概念一:线程(thread)是进程内一个相对独立的、可调度的执行单元 (执行路径、执行轨迹、执行代码段、执行流)。
概念二:线程是一种轻量级进程。(和进程比较,负重相对轻)
对概念一的理解
-
线程是一个进程内的一段代码;
-
独立运行、可调度,即多个线程独立并发运行。
线程和进程的区别与联系
(1)从CPU调度和资源分配角度。进程是CPU调度单位,也是资源分配 单位;线程是进程内部最小的CPU调度单位;除了线程运行所需的私有资源 (栈区、程序计数器以及线程运行使用的寄存器),系统不给线程分配其他资 源,线程继承父进程资源(变量、堆区、文件、端口等)。
(2)从安全性角度。进程拥有独立的地址空间,只能访问各自空间内的 数据;多个线程使用父进程的地址空间,直接访问父进程数据、资源。
(3)从系统开销角度。进程间通信、进程状态转换开销大;线程间通信、 线程状态转换开销相对小。
§ 什么是进程控制块?
操作系统为每个进程创建一个进程控制块,通过进程控制块感知、控 制、管理进程。
进程控制块PCB (Process Control Block),就是描述进程在各个不 同时期所处的状态以及进程与其他进程、系统资源间关系的数据块(数 据表)。
详细讲解在第2讲第一部分PPT的25页开始。
§ 进程在三个基本状态之间转换的典型原因
首先需要知道三种基本状态分别是 运行 就绪 等待
详细讲解在第二讲第一部分PPT的31页
§ 熟悉主要的进程间通信
这部分主要是熟悉理解,不是什么问题回答。只有自己去熟悉。
详细讲解在第二讲的第二部分PPT。(基本上整个PPT都是)
第3章 处理机调度与死锁
§ 熟悉主要的进程调度算法
-
多级队列调度算法
-
时间片轮转调度算法(RR)
-
优先权调度算法(PS)
-
多级反馈队列调度算法
详细讲解在第4讲PPT的24页开始。
§ 什么死锁?产生死锁的四个必要条件
--教材定义:如果一组并发进程中的每一个进程都在等待仅由该进程中的其他进程 才能引发的事件发生,那么改组进程是死锁的。
一组并发运行的进程/线程间由于竞争资源而导致相互制约,以至于无法继续运行的 局面(僵局),就是死锁。
产生死锁的四个必要条件
-
互斥条件
一段时间内某 资源只能被一 个进程占用。
-
请求和保持条件
一个至少占有一 个资源的进程, 等待获得额外的 由其他进程所持 有的资源。
-
不可抢占
一个资源只 有当持有它 的进程完成 任务后,自 由的释放。
-
循环等待
等待资源的进程之间存在 环 {P0, P1, …, Pn} 。
P0 等待P1占有的资源, P1 等待P2占有的资源, …, Pn– 1等待Pn占有的资源, P0等 待Pn占有的资源。
这部分的讲解在第四讲的45页PPT开始。
§ 列出2种死锁预防方法和1种死锁避免方法
死锁预防
-
一次性分配资源法
- 特点:进程一次性占有整个运行期间的全部资源(其中,有些资源实在 运行初期或运行快结束时才会使用)
- 优点:简单、易行、安全
- 缺点:资源利用率低,可能出现饥饿
-
资源释放法
如果一个进程的申请没有实现,它要释放所有占有的资源
-
有序分配法
为资源指定唯一编号,进程需要依次申请所需资源。如下图所示: 必须先申请并锁定账户A,才能请求锁定账户B。
死锁避免
银行家算法
基本思想
分配资源之前,预判断系统是否是安全的。也就是模 拟分配资源之后,系统是否存在进程安全序列; 若是存在,才分配。每分配一次资源就测试一次是否 安全,不是资源全部就位后才测试
这部分的讲解在第四讲PPT的64页开始。
§ 对于时间片轮转算法,如何计算平均等待时间,如何计算平均响应时间
关于时间片轮转调度算法有一篇博客,我感觉讲的不错 https://blog.51cto.com/u_14223591/5481746
然后我们现在根据PPT上的题进行分析一下。
平均等待时间
首先我们来计算平均等待时间。
我们首先需要根据进程画出次序图。(需要考虑时间片,进程开始的时间,以及优先级等方面。)
他这里直接给出了次序图,就比较简单了直接看图就可以了。
首先计算P1的等待时间:可以由次序图看出,P1是第一个执行的进程,所以最开始等待为0。但是我们可以看到P1的运行时间为23ms这里只有20ms就切换到了P2了,直到第77ms才切换为P1。然后这里执行了3ms就结束了。所以P1的等待时间为 77-20=57ms
然后计算P2的等待时间:P2的运行时间只有17ms小于20ms在一个时间片中是可以运行完的。所以我们看到在第20ms的时候执行p2在第37ms的时候执行p3同时结束了p2。所以p2的等待时间为 20ms
剩下的两个就不详细说了,思路就是和上面的一样。最后可以算出 P3和P4的等待时间。
平均等待时间就等于总的等待时间相加然后除以进程数量
平均响应时间
响应时间就等于第一段等待时间。
P1是直接执行所以响应时间为0
P2是在20ms第一次执行,所以响应时间为20ms
p3是在37ms第一次执行,所以响应时间为37ms
p4是在57ms第一次执行,所以响应时间为57ms
平均响应时间就等于总的响应时间相加然后除以进程数量
§ 运用银行家算法,检查或推导资源分配题
这部分的思维我感觉主要是用到了遍历,然后根据可用资源如何才可以满足进程需要的思路,详细就不说了可以根据网上的博客进行学习。
推荐博客 https://blog.csdn.net/weixin_42711189/article/details/115485594
详细讲解在第四讲PPT的64页开始。
第4章 进程同步
§ 什么是临界资源?
一次仅允许一个进程/线程使用的资源被称为临界资源,或独享资源、互 斥资源。 硬件资源:如输入机、打印机等; 软件资源:有的公用变量、文件等
§ 什么是进程互斥?
在操作系统中,当某一进程正在进入临界区访问某一临界资源 时,不允许其他进程访问该临界资源。否则,会发生无法估计的错 误。进程间的这种制约关系成为进程互斥。
§ 什么是进程同步?
**所谓同步,是指多个相互合作的进程/线程,在一些关键点上 可能需要相互等待或相互交换信息,这种互相制约的关系称为进程 /线程同步。 **
通俗地说,多个进程在执行上要有先后次序,一个进程要等另 一伙伴进程提供消息(执行结果)。未获得消息之前,进程处于等 待状态,获得消息后才能被唤醒进入就绪状态
§ 运用信号量P、V操作,实现多个进程对公共变量Q的互斥使用
详细讲解在第三讲PPT的38页开始。
P操作:资源监测。需要访问临界资源的进程发出检测信号量的操作, 监测是否能够进入临界区访问临界资源。
V操作:资源释放。访问完临界资源的进程,退出临界区前释放临界资 源,通知等待进程可以使用临界资源。
实现思路
- 分析并发进程的关键活动,划分临界区
- 设置互斥信号量mutex,初值为1
- 在临界区之前执行P(mutex)
- 在临界区之后执行V(mutex)
- P、V操作必须成对出现。缺少P操作不能保证临界资源的互斥访问;缺少V操作会导致资源永不被释放,等待进程永远不会被唤醒