操作系统基础复习

灌水

第一章 绪论

1.1 操作系统

操作系统的概念:控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的系统软件,是用户与计算机之间的接口。

用户与计算机之间的接口:

系统软件:

操作系统的上层为应用软件,下层为硬件。

控制和管理资源:

文件资源,I/O资源,内存资源等。

扩充机器:

操作系统的基本特征:

并发:并行性是指两个或多个事件在同一时刻发生;并发性是指两个或多个事件在同一时间间隔发生。

共享:指系统中的资源可供内存中多个并发执行的进程共同使用。

两种资源共享方式:

互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但一个时间段内只允许一个进程访问该资源。在一段时间内只允许一个进程访问的资源称为临界资源或独占资源。

同时共享方式:系统中的某些资源,允许一个时间段内有多个进程“同时”对它进行访问。

虚拟:指通过某种技术把一个物理实体变为若干个逻辑上的对应物。

异步:

1.2 操作系统的发展过程

人工操作:

缺点:(1)用户独占全机。(2)CPU等待人工操作。

脱机输入/输出:

单道批处理系统:

多道批处理系统:

分时系统:

实时系统:

例题

1.3 操作系统的运行环境

1.3.1 运行机制

内核程序和应用程序(两个程序)。

内核态和用户态(两个状态):

如何得知处于什么状态:

两个状态如何切换(3个都是由用户态转为内核态、其本质都是中断):

a.系统调用 b.异常 c.外围设备的中断

内核态->用户态:一条修改PSW的特权指令。

特权指令和非特权指令(两个指令):

1.3.2 中断的分类

外中断称为“中断”,内中断称为“异常”。

以下为“异常”:

故障:

除数为0的故障:

页故障:

陷阱(类似DEBUG):

终止:

1.3.3 系统调用概念

系统调用过程:

1.4 操作系统的设计

微内核OS结构:

微内核OS结构的功能:

例题

和I/O、处理机、文件等资源相关的操作一定是与内核态有关

1.5 操作系统的启动

1.6 虚拟机

第二章 进程管理

2.1 进程的概念和特征

进程的概念:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

程序并发的特征:(1)间断性(2)失去封闭性(3)不可再现性

进程的特征:

(1)结构特征:程序段、数据段、PCB三部分组成了进程实体

PCB是进程存在的唯一标志:

(2)动态性

动态性表现在:“它由创建而产生,由调度而执行,由撤销而消亡”。进程实体有一定的生命期,而程序则只是一组有序指令的集合,并存放于某种介质上,其本身并不具有运动的含义,因而是静态的。

(3)并发性

指多个进程同存于内存中,且能在一段时间内同时运行。程序(没有建立PCB)是不能并发执行的。并发是多个进程轮换交替执行,而并行是同时执行。

(4)独立性

(5)异步性

2.1.1 进程控制块的组织方式

2.1.2 进程和程序的关系

2.2 进程的状态和切换

创建:

就绪:

执行:

阻塞:

终止:

2.2.1 进程的切换

例题

读磁盘完成:表明进程所等待的磁盘资源已获得,因此需要从阻塞状态变为就绪状态,选A

D

2.3 进程控制

进程图:父进程可以创建子进程,子进程也可创建其子进程

进程控制原语:

进程创建:

进程终止:

正常结束、外界干预、异常终止

终止过程

进程阻塞:

阻塞过程:

进程唤醒:

进程挂起:

进程从内存到磁盘

进程挂起过程:

进程激活:

例题

用户登陆成功和启动程序执行需要用到PCB而设备分配需要设备分配表,因此选C

B

D

C

A

2.4 进程同步

资源竞争出现的问题:

临界区:

2.4.1 软件实现

单标志法:

双标志检查:

前检查:

后检查:

peterson:

2.4.2 硬件实现

中断

TestAndSet

Swap

2.5 进程同步机制

P操作:资源用一个则资源数减一

V操作:资源释放一个则资源数加一

整型信号量:

记录型信号量:

互斥信号量

2.5.1 前驱等待

例题

C

用PV操作不是用信号量

A

2.6 管程机制

为什么需要管程:

管程的定义:

管程的组成:

管程类似于JAVA中的setter和getter方法,只能通过这些方法去操作和使用资源:

防止A进程只需A资源不需B或C资源,但因得不到满足而阻塞,管程引入了条件变量(一个资源一个条件变量)

阻塞时:

管程的特性:

2.6.1 管程与进程对比

设置进程的目的在于实现系统的并发性,而管程的设置则是解决共享资源的互斥使用问题

例题

管程中的signal操作为唤醒进程,若没有阻塞进程则无事发生;而进程的V操作无论有没有阻塞进程都会使信号量加1(s=s+1)

2.7 锁机制

概述:

锁的本质;

2.7.1 锁的分类

重量级锁(悲观锁):获取不到锁就马上进入阻塞状态的锁,我们称之为重量级锁。

自适应自选锁:能够根据线程最近获得锁的状态来调整循环次数的自旋锁,我们称之为自适应自旋锁。

轻量级锁(乐观锁):

偏向锁(超乐观锁):

乐观锁和悲观锁:

互斥锁:

perterson锁:

Barkey锁(轮询):

2.8 进程通信

2.8.1 通信的方式

共享内存:

消息队列:

1) 直接通信方式(socket编程)

2) 间接通信方式

3) 管道

半双工:同一时刻只能读或写

例题

C

2.9 线程与进程

线程的引入:

线程的状态参数:

2.9.1 进程与线程的区别

2.9.2 线程的实现

用户级线程:

内核支持线程:

一对一模型:

多对多模型:

例题

A:用户级线程不需要;B:反了;C:正确;D:进程拥有,线程调度

B

D

D;凡是进程内某一线程拥有的其他线程不能共享

第三章 处理机管理

3.1 调度的层次

高级调度(作业调度):

中级调度(内存调度或交换调度):

低级调度(进程调度):

三种调度算法的关系和比较:

3.1.1 调度的方式

非抢占式优先权调度算法:

抢占式优先权调度算法:

3.1.2 调度的时机

3.1.3 调度的实现方式

根据等待事件的不同放入不同的阻塞队列中(二级调度)

三级调度

3.2 调度的准则

周转时间:

带权周转时间:

平均周转时间:

3.3 调度算法

3.3.1 先来先服务

会画表格

3.3.2 短作业优先

注意到达时间

3.3.3 优先级

3.3.4 高响应比优先

响应比=(等待时间+服务时间)/服务时间或周转时间/服务时间

3.3.5 时间片轮转

3.3.6 多级反馈队列

设置优先级逐渐降低的多个就绪队列

3.3.7 总结

3.4 进程调度的上下文切换机制

3.4.1 发生进程上下文切换的场景

发生进程调度会引起进程上下文切换

3.4.2 饥饿现象

当优先级固定在某一个标准时会出现饥饿现象。

例题

B

B

B

D

B

A

A

D

C

P2:15+24

P3:1+24+18+36

P1:1+24+36+30+12

(P1+P2+P3)/3=C

算出周转时间和带权周转时间

3.5 死锁的概念和性质

3.5.1 死锁产生的必要条件

3.6 死锁的处理策略

3.6.1 死锁预防

破坏请求保持条件

破坏不可抢占

破坏循环等待

给资源按顺序标号,只有获得了1号资源后才能获得2号资源,以此类推

3.6.2 安全状态

3.6.3 死锁避免

银行家算法

预分配过程:

安全性算法:

3.6.4 死锁检测

指出分配,指向请求

给某个节点全部资源后将其请求边和分配边删掉,据此所有结点没边了则说明无死锁。

3.6.5 死锁解除

例题

B

B

B

死锁预防会限制用户申请资源的顺序;B

B

不是,还剩有资源

第四章 内存管理

4.1 内存的基础知识

4.2 内存管理的基本概念

逻辑地址(LA):

物理地址(PA):

内存映射:

4.2.1 内存保护

上下限寄存器:进程在申请资源时会检查资源是否在内存的上下限中,若不在则会抛出内存越界错误。

基址 限长寄存器:

4.2.2 内存分配和回收

内存会被分为很多区域:

4.3 程序的运行过程

4.3.1 程序的运行过程

4.3.2 链接方式

  1. 静态链接

  1. 装入时动态链接

  1. 运行时动态链接

4.3.3 装入方式

  1. 绝对装入方式

绝对装入只适用于单道程序环境。

程序中使用的绝对地址,可在编译或汇编时给出,也可由程序员赋予。通常情况下都是编译或汇编时再转换为绝对地址。

  1. 可重定位装入(静态重定位)

静态重定位的特点是在一个作业装入内存时,必须分配其要求的全部内存空间,如果没有足够的内存,就不能装入该作业。

作业一旦进入内存后,在运行期间就不能再移动,也不能再申请内存空间。

  1. 动态运行时装入

例题

D

B

编译形成逻辑地址、装载形成物理地址

寄存器(硬件机构)给出个上下界,以保证进程空间不被非法访问。

4.4 连续内存管理方式(静态)

4.4.1 连续分配方式

内外碎片:

4.4.2 单一分配方式

4.4.3 固定分区分配

4.5 动态分区分配方式

按需分配

4.5.1 动态分区分配算法

有外无内,有内无外

4.5.2 首次适应算法

4.5.3 循环首次适应算法

与首次适应算法差别为:分配空间从上一次分配的地址开始分

4.5.4 最佳适应算法

会存在大量的外部碎片

4.5.5 最坏适应算法

与最佳适应算法相反

(PS:释放的顺序?)

4.5.6 回收内存

例题

4.6 基本分页内存管理方式

进程进行分页,内存空间进行分块

实现将连续的页分到不连续的块中

4.6.1 分页逻辑地址结构

页面大小类比xy轴,页面个数类比z轴,好比一本书

由地址得页号和位移量

4.6.2 如何映射到内存块中

每一个进程对应一张页表;页表信息常驻内存;页表内的每一项其长度是相同的

页表的本质是一个大数组,页号是数组下标,页表项是数组元素,其大小是块号。

4.6.3 地址转化过程

地址的变换过程:

从这个过程中,可以看到,处理器每访问一个再内存中的操作数,就要访问两次内存:

第一次用来查找页表将操作数的逻辑地址变换为物理地址;

第二次完成真正的读写操作。

例题

4.6.4 具有快表的地址转化过程

将一些常用的页表(页号和块号)放入CPU中,避免访存(因为页表在CPU中)

4.7 基本分段内存管理方式

4.7.1 分段的地址结构

4.7.2 段表

4.7.3 地址变化过程

4.7.4 分段与分页的区别

4.7.5 例题

B

4.8 虚拟存储器的基本概念

4.9 请求分页存储管理

4.9.1 请求分页中的页表机制

4.9.2 缺页中断

缺页中断与一般中断的区别

4.10 页面置换算法

4.11 页面分配和调入

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值