【复习】操作系统

目录

1 Linux基础

2 进程与线程、死锁

2.1 进程

2.2 线程

2.3 调度

2.4 调度算法

2.4.1 FCFS先来先服务

2.4.2 SJF最短作业优先

2.4.3 SRT剩余最短时间优先

2.4.4 HRP最高响应比优先算法

2.4.5 RR轮转法

2.4.6 PS优先级算法调度

2.5 竞争问题

2.6 死锁问题

2.7 解决死锁

2.7.1 方法

2.7.2 安全状态

2.7.3 银行家算法

2.7.4 安全性算法

3 内存管理

3.1 内存

3.2 装入、链接

3.3 覆盖和交换

3.3 连续分配管理

3.3.1 单一连续分配

3.3.2 固定分区法

3.3.3 动态分区法

3.4 非连续分配管理

3.4.1 分页

3.4.2 分段

3.4.3 段页式存储管理

3.5 虚拟内存管理技术

3.5.1 概念

3.5.2 请求分页存储管理

3.6 页面替换算法

3.6.1 FIFO先进先出

3.6.2 OPT最佳置换

3.6.3 LRU最近最久未使用

3.6.4 老化算法

3.6.5 CLOCK时钟置换

4 文件系统

4.1 概念和操作

4.2 文件访问和目录

4.3 目录

4.3.1 单级目录

4.3.2 两级目录

4.3.3 树形目录

4.3.4无环图目录

4.3.5 通用图目录

4.3.6 目录实现

4.4 共享文件

4.5 文件系统结构

4.6 文件分配方式

4.7 空闲空间管理

4.8 备份和恢复

4.9 磁盘

4.9.1 磁盘

4.9.2 磁盘调度

4.9.3 RAID廉价磁盘冗余阵列

5 设备管理

5.1 设备管理

1.5.2 I/O数据传送控制方式

5.3 中断技术

5.4 缓冲技术

5.5 Spooling( 假脱机)技术


逻辑地址转物理地址:页号变块号,offset不变(反过来同理)

1 Linux基础

2 进程与线程、死锁

(处理机调度和进程线程管理)

2.1 进程

定义:(还未引入线程之前)

组织(组成):PCB进程控制块+程序段+数据段

PCB是进程存在的唯一标识。进程在创建时,操作系统会为它创建一个PCB,随后,这个PCB会被放置到内存中,在进程执行时,系统通过该进程的PCB可以了解进程的现行的状态信息,由此操作系统就可以对其进行控制和管理。当进程结束时,操作系统也会将PCB从内存中删除,进程也就随之消亡了。

程序段:进程调度到CPU执行的程序代码段。一个程序可以被多个进程共享(程序段相同),即多个进程可以运行同一个程序。

数据段:进程对应的程序加工处理的原始数据和进程运行过程中产生的中间/最终结果。

状态:创建、就绪、运行、阻塞、终止

等待(阻塞):进程正在等待合作进程的一个消息

就绪:进程正在等待分给他一个时间片

基本属性:资源的拥有者;调度单位

缺点:进程切换对时间空间开销大,限制并发程度的提高

进程控制:

使用原语来实现进程控制。(PCB转为就绪态 + PCB放到就绪队列)

方法:关中断指令和开中断指令;内核程序运行在核心态,执行关中断指令后,不再检查中断信号,以实现“原子性”。

(进程间通信IPC)

进程间通信:进程之间的信息交换(数据交换),依赖于操作系统提供的支持。因为为了保证安全,一个进程不能直接访问另外一个进程的内存地址,各个进程拥有的内存地址是相互独立的。

(1)共享存储

需要进行通讯的若干进程向操作系统申请一块共享空间,该共享空间可以由这些进程直接访问,通过对这片共享空间进行读/写操作实现进程之间的信息交换。操作系统会将这块共享空间映射到对应的进程的虚拟地址空间。

(2)消息传递

进程以格式化的消息为单位进行数据交换。若进程间不存在共享空间,需要利用操作系统提供的方法传递消息。分为直接通信和间接通信

(3)管道通信

指通过管道这种特殊的共享文件(pipe文件)进行进程间的信息交换。允许两个进程按生产者-消费者方式通信。先进先出、一端读一端写。管道机制有三方面能力:互斥、同步、确定对方存在。

当进程从用户态->内核态,表明陷阱,可能是因为:

系统调用;异常;外设异常

2.2 线程

目的:减少进程切换和创建的开销,提高执行效率和节约资源

将进程自愿申请和调度属性分开,即进程作为资源的申请和拥有者,但线程是独立调度和分派的基本单位。

优点:调度的基本单位,不引起进程切换;并发性提高;线程不拥有资源;多处理器体系结构的利用

线程的实现:用户级ULT、内核级KLT

用户级ULT:用户层通过线程库来支持。线程库提供对线程的创建、调度、管理,不需要用户干预;内核不知道用户线程的存在

优点:调度算法进程专用;线程切换不用内核;与操作系统无关

缺点:如果内核单线程,任何用户级线程阻塞时会引起整个进程阻塞;不能发挥多处理机优势

内核级TLT:内核直接负责线程的创建、调度、管理,给每个线程配备一个TCB线程控制器。

优点:发挥多处理机优势;阻塞时可调用其他线程;内核也可以用多线程技术;内核支持线程具有很小的数据结构和堆栈,线程切换开销小。

缺点:同一进程的线程切换需要用户态转到内核态,开销大

混合模式,多线程组合:

2.3 调度

定义:在某个队列中,按照某种方法(算法),选择合适的个体(作业、进程)的过程。

七状态模型:

挂起:由于内存有限,需要将某些进程的数据调出暂存至外存,待这些进程需要运行且内存空闲时再重新调入内存,这些被暂存至外存等待的进程的状态就是挂起状态。

层次:

高级调度(作业调度):外存->内存,创建新进程,作业调度

中级调度(内存调度):外存<->内存,挂起->激活,不创建新进程

低级调度(进程调度):内存,进程调度、CPU调度,从就绪->运行

指标:

CPU利用率=CPU有效工作时间 / ( CPU有效工作时间+CPU空闲等待时间 )

吞吐量=一个时间单元内完成*进程*的数量

周转时间=进程提交到完成的时间

均周转时间=各个作业周转时间总和/作业数

等待时间=进程在就绪队列里等待的时间之和

响应时间=分时系统,提到请求到第一次响应的时间

2.4 调度算法

2.4.1 FCFS先来先服务

缺点:周转时间与响应时间无法保证;短作业不利,等待时间远长于处理时间

2.4.2 SJF最短作业优先

两种形式:抢占式、非抢占式

缺点:需要事先估计每个作业所需时间;长作业可能会锁死;不利于分时系统(分时系统不可抢占)

2.4.3 SRT剩余最短时间优先

针对SJF增加抢占机制。选择预期剩余时间最短的,新程序就绪且有更短的剩余时间,可以抢占当前正在运行的进程。

缺点:记录过去的服务时间,增加开销;

优点:周转时间看来,由于SJF;不产生过多中断,优于轮转法

2.4.4 HRP最高响应比优先算法

响应比R = (等待时间W + 作业时间T)/ 作业时间T

优点比较:FCFS强调系统等待时间,SJF强调运行时间,HRP综合他们的特点

2.4.5 RR轮转法

为每个进程定义时间片。基于时钟的抢占策略,一般用于分时系统。

时间片选择:

时间片过短,进程切换过多开销大;时间片过长,变成FCFS。

优点:公平;

缺点:时间片短,切换开销大;时间片长,短作业不公平

改进方法:

2.4.6 PS优先级算法调度

每个进程都有一个优先号数,CPU被分配给优先级最高的 。

问题:低优先级饥饿

解决方案:老化——随时间增加进程的优先级

2.5 竞争问题

(进程、线程间竞争问题的处理)

当并发进程/线程竞争使用统一资源,可能会出现竞争条件

一次只允许一个进程使用的资源被称作临界资源

进程/线程访问临界资源的那段代码称为临界区

同步:直接制约关系:未完成任务多个进程、线程需要某些位置、次序而等待、传递信息形成的制约关系。

互斥:间接制约关系,进程占用临界资源时,另外的进程需要等待。

实现方法:

软件实现:半标志法、双标志法先检查、双标志法后检查。

硬件实现:中断屏蔽方法、硬件指令方法(原子操作)

信号量semaphore:可以解决互斥同步问题。只被两个原语操作控制:P(S)加锁和V(S)释放锁

分类:

        非记录型信号量(忙等待方式:不断测试):+空闲资源的数量;0无资源

        二元信号量(信号量取值只有0和1,0有资源,1被占用)

        记录型信号量(睡眠与唤醒方式:增加资源等待队列)

                取值:0无资源无等待;+空闲资源的数量;-等待进程的数量

经典问题:生产者消费者、 哲学家就餐、读写者(读优先、写优先)

(死锁形成的原因和解决方法)

2.6 死锁问题

定义:一系列进程正在死锁,当每一个进程都在等待另外进程给他释放资源

原因:

        资源不足,总需求超过最大资源量

                可重用资源

                不可重用资源

        进程推进速度不当

        P操作顺序不当

必要条件:互斥、占有并等待、不可抢占、循环等待

资源分配图:

2.7 解决死锁

2.7.1 方法

鸵鸟算法:无视可能出现的问题,当死锁概率很低时才可以使用

预防:限制,破坏4大必要条件

        互斥:无法破坏,有的资源就是互斥

        请求并保持:预先静态分配;资源严重浪费

        不可抢占:复杂,前段工作失效,造成额外开销

        循环等待:编号;不好修改系统构造,浪费且编码困难

检测和恢复:允许死锁,按时检测,再采取解锁手段

避免:资源动态分配中,采取方法防止不安全的操作

2.7.2 安全状态

安全序列:系统按序列进行资源分配,每个进程都可以顺利完成

并非不安全状态都是死锁状态,进入不安全状态可能造成死锁。

避免死锁的实质是,避免进入不安全状态

2.7.3 银行家算法

2.7.4 安全性算法

死锁解除:资源剥夺法;撤销进程法ÿ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值