《操作系统》课程复习资料(上)

本文是对我的大学课程——《操作系统》的课程知识整理,分上下两个部分,本文为上半部分,下半部分已发布,详见《操作系统》课程复习资料(下)

目录

操作系统概述

进程管理

处理机调度与死锁

存储器管理


操作系统概述

OS是硬件之上的第1层软件

作用:1)OS作为用户与计算机硬件系统之间的接口

2) OS作为计算机系统资源的管理者

3)OS实现了对计算机资源的抽象

操作系统的目标:方便性 有效性 可扩充性 开放性

源程序转换为目标程序

多道批后备队列:用户所提交的作业都先存放在外存上并排成一个队列

操作系统主要功能:处理机管理 存储器管理 设备管理 文件管理 用户接口

四个基本特征:并发、共享、虚拟、异步

互斥共享方式:打印机、磁带机 同时访问方式:磁盘

可以通过虚拟存储器技术,将一台机器的物理存储器变为虚拟存储器,以便从逻辑上来扩充存储器的容量。我们把用户所感觉到的存储器称为虚拟存储器。

虚拟打印机:多个逻辑上的打印机。


进程管理

OS基本特性是并发与共享

并发执行是指若干个程序(或程序段) 在一个处理器上的交替执行,宏观上表现为同时执行。目的是为了提高资源利用率。

并发执行的特点:间断性 失去封闭性 不可再现性

进程的特征:动态性 并发性 独立性 异步性 结构特征

独立性:进程是能独立运行的基本单位。进程的组成包括程序、数据和进程控制块PCB(即进程状态信息)。额外状态创建 终止

挂起指在内存中的进程被暂时移到外存(如磁盘)的过程。

管态:系统态,高特权,执行一切指令,可靠,安全性高,维护管理复杂

目态:用户态、访问有限,安全性低,执行用户代码

一个进程执行系统调用而执行内核代码时,处于内核态,处理器处于特权级最高的(0级)内核代码中执行。

用户态,此时处理器在特权级最低的用户代码中运行

撤销父进程时,同时撤销其所有的子进程

两种制约关系:直接相互制约 间接相互制约

临界资源:某段时间内只能允许一个进程使用的资源;如 :打印机 、 磁带机 、 某个文件 、共享变量

临界区: 进程中访问临界资源的代码段

多个进程互斥地访问 , 一个进程在临界区,其他等待

同步机制应遵循的准则:空闲让进 忙则等待 有限等待 让权等待

实现进程同步的两类方法:

①硬件指令

开关中断指令

lock 进程 unlock

测试与设置指令

TS

②信号量机制

信号量是一种特殊的变量,只能进行两种操作:P、 V 操作

类型:整型信号量、记录型信号量、 AND信号量、信号量集

进程通信IPC:进程之间的信息交换 。

根据交换信息量的多少和效率的高低,进程通信分为低级通信和高级通信

信息交换的单位称为消息或报文。两种方式:1.直接通信方式 消息直接挂到接收进程的消息缓冲队列上2.间接通信方式 消息挂到信箱上


处理机调度与死锁

1. 高级调度(作业调度、长程调度)  调度对象:作业。主要用于多道批处理系统中,分时和实时系统中不设置高级调度高级调度是外存与内存之间的调度,每个作业只调入、调出一次

2. 中级调度(内存调度,中程调度)

内存使用紧张时,将内存中暂时无法运行的进程挂起 ,即由内存调至外存等待;中级调度决定把外存 上具备运行条件的就绪进程调入内存,等待运行
3.  低级调度-进程调度

CPU利用率:有效时间/总时间;带权周转=周转/运行;周转 = 完成 – 提交;吞吐量 = 作业数目/时间

仅有进程调度:分时、实时

主要的调度算法

先来先服务FCFS 按照短作业优先,作业的平均周转时间最短;最短作业优先

最高响应比优先HRRN相应比 = (等待+要求)/要求

动态优先级:会改变优先级

非抢占:把处理机分配给某进程后,便让其一直执行,直到该进程完成或发生某事件而被阻塞时,才把处理机分配给其它进程,不允许其他进程抢占已经分配出去的处理机。

抢占:允许调度程序根据某个原则,去停止某个正在执行的进程,将处理机重新分配给另一个进程。

抢占的原则时间片 优先权 短作业优先

进程死锁:多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进

产生死锁的必要条件( 1 个不成立 ,就不会死锁)

互斥使用、请求和保持、不可抢占、循环等待

处理死锁的方法

预防死锁 破坏产生死锁的必要条件

(破坏请求和保持)第一种协议-静态分配方法 一次性申请它所需要的全部资源; 第二种协议获得部分资源,进程运行;释放资源,再申请新的资源。

(破坏不可抢占)采用抢占资源分配:当一个已经占有了某些资源的进程,提出新的资源请求而未得到满足时,则必须释放它已获得全部资源而进入阻塞,待以后需要时再重新申请

(破坏“循环等待”条件)采用资源有序分配策略将系统中所有资源进行编号,规定进程申请资源时,必须严格按照资源编号递增(或递减)的顺序

避免死锁 在资源的动态分配过程中,用某种方法防止系统进入不安全状态,避免

银行家算法 work: 系统可提供给进程的各类资源数

work need allocation work+allocation finih

检测死锁 检测, 采取措施,从系统中将已发生的死锁清 方法:资源分配图

解除死锁 通过撤消和挂起一些进程,回收一些资源,分配给处于阻塞状态的进程,使之转为就绪状态


存储器管理

逻辑地址(相对):用户程序经过编译、链接后形成目标代码,目标代码通常采用相对地址的形式,其首地址为 0, 其余地址都相对于首地址而编址。

物理地址(绝对)内存中物理单元地址,每一存储单元都有唯一地址的编码方式 。

地址重定位:将程序装入到与其地址空间不一致的物理空间,所引起的一系列地址变换过程。也称为:地址转换

将一个装入模块装入内存时 主要有三种方式:绝对、可重定位、动态运行时装入

绝对装入 单道程序 知程序驻留在内存的位置,链接产生绝对地址的目标代码 。 在运行之前,一次性地将装入模块装入事先指定的位置,不需重定位

可重定位装入方式静态重定位

在装入作业时把作业中的指令地址全部转换为绝对地址,在作业执行过程中就无须再进行地址转换工作   要求程序的存储空间是连续的

动态运行时的装入方式— 动态重定位

在程序执行过程,在 CPU 访问内存之前换成内存地址。地址重定位机构需要寄存器BR和VR支持  基址寄存器 (BR) +程序逻辑地址寄存器 (VR)限长寄存器

内存管理的基本功能:存储分配和回收 地址变换(地址重定位) 存储共享和保护 存储器扩充

连续分配:单一连续分区 固定分区 动态分区

离散分配:分页分配 分段分配 段页分配

单一连续分区 单用户、单任务操作系统

固定分区(又分分区大小等或不等) 将用户空间划分成若干个固定大小的区域,分区的数目和每个分区大小由 OS 决定

动态分区 程序装入内存前不建立分区,内存分区是根据程序对内存空间的需要而动态建立的。分区的划分时间、大小及其位置都是动态的。

四种动态分区分配算法:最先适应算法FF、最佳适应算法BF、最差适应算法WF、循环最先适应算法NF

对换技术(Swapping):将内存中的暂时还不能被运行的进程换出到外存上,让出内存空间,再把已具备运行条件的进程或程序换入内存,改善内存紧张问题。

为什么要引入对换?1、进程无法运行。因等待某事件被阻塞运行。

2、内存不够。作业在外存上等待调入内存,但因内存空间不足

根据每次对换时所对换的数量,可将对换分为两类:

(1) 整体对换(进程对换) :以进程为单位对换 —— 分时系统中

(2) 页面(分段) 对换:以页面或段为单位对换 ——虚拟存储系统

离散分配:分页分配 分段分配 段页分配

分配原则: 以块为单位分配内存 , 将进程中的若干个页分别装入到多个可以不连续的物理块中 。

分页的主要目的是为了实现离散分配,提高内存利用率,分页仅仅是系统管理上的需要,完全是系统行为,对用户是不可见的。

分段的目的是更好地满足用户需求,一个段通常包含着一组属于一个逻辑模块的信息,分段对用户是可见的,用户编程时需要显式地给出段名。

页的大小固定且由系统决定。段的长度不固定,决定于用户编写的程序

分区存储管理方案:是一种连续存储管理方案,但需要一次性全部装入内存。

页式存储管理方案:是一种不连续存储管理方案,也需要一次性全部装入内存。

段式存储管理方案:不连续,段和段之间可以不连续,但需一次性全部装入内存。

段页式存储管理方案:是一种不连续存储方案,需要一次性全部装入内存。


关注我,持续分享有趣有用的知识!

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往为序章

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值