<>操作系统

<>操作系统概述

<>操作系统作用

* 存储管理

2. 处理机管理

3. 设备管理

4. 文件管理

5. 用户接口


<>操作系统的定义

是管理和控制计算机系统中各种硬件和软件资源、合理地组织计算机工作流程的系统软件,是用户与计算机之间的接口。

* 多道批处理系统
* 在内存中同时存放多道程序,在管理程序的控制下交替执行,这些作业共享CPU和系统其他资源。
*
![这里写图片描述](https://img-blog.csdn.net/20180611133851521?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1NTY0ODEz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
*
* 分时系统
把处理机运行时间分成时间片,按时间片轮转的方式,把处理机分配给各联机作业使用。允许多个用户与计算机直接交互。

* 实时系统

系统能及时(或即时)响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。提供即时响应和高可靠性,响应时间快,可以在毫秒级甚至微秒级立即处理。

<>操作系统的特征

*
并发

并发是指两个或多个事件在同一时间间隔内发生。

微观上还是程序在分时地交替执行。

*
共享

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

*
互斥共享方式

如打印机、磁带机。在一段时间内只允许一个进程访问该资源。

*
同时访问方式

如磁盘设备

*
虚拟

虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。比如说虚拟处理器,虚拟内存,虚拟外部设备

*
异步

在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

操作系统最基本的特征是并发和共享,两者互为存在条件。

<>进程管理

<>程序基本概念

* 程序执行的两种方式:
* 顺序执行:一个计算的若干操作必须按照严格的先后次序顺序地执行,这类计算过程就是程序的顺序执行过程。
*
并发执行:指一组在逻辑上相互独立的程序或程序段在执行过程中,其执行时间在客观上相互重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。
<>进程基本概念

* 定义
进程是指一个具有独立功能的程序对某个数据集在处理机上的执行过程和分配资源的基本单位。

引入进程的概念,以便更好地描述和控制程序的并发执行。

程序封闭性是指进程执行的结果只取决于进程本身,不会受外界影响。

* 进程和程序的区别


* 进程的组成
进程通常由程序、数据集合和进程控制块PCB三部分组成。程序和它操作的数据是进程存在的静态实体,而专门的数据结构PCB用来描述进程当前的状态、本身的特性等。

当进程被中断时,操作系统会把程序计数器和处理器寄存器(上下文数据)保存在PCB中的对应位置,进程状态已被改变为其他的值,例如阻塞态或就绪态。

PCB是进程存在的唯一标志。故操作系统是根据进程控制块来对并发执行的进程进行控制和管理。

PCB内含的数据结构主要有:进程标志信息、进程控制信息、进程资源信息、CPU现场信息。

每个进程包含独立的地址空间,进程各自的地址空间是私有的,只有执行自己地址空间中的程序,且只能访问自己地址空间中的数据,相互访问会导致指针的越界错误。

对进程的管理和控制功能是通过执行各种原语实现的,如创建原语。

<>进程状态

* 运行态
* 就绪态
* 阻塞态
* 新建态
* 退出态
<>进程创建

1、给新进程分配一个唯一的进程标识符

2、给进程分配空间

3、初始化进程控制块

4、设置正确的连接

5、创建或扩充其他数据结构

<>线程

<>线程基本概念

引入线程,是为了减小程序在并发执行时所付出的时空开销,提高操作系统的并发性能。

线程最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元。

线程共享进程拥有的全部资源。

线程不拥有系统资源,但是它可以访问进程所拥有的系统资源。

线程没有自己独立的地址空间,他共享他所属的进程的空间。

<>线程的实现方式

* 用户级线程
* 内核级线程
<>进程间通信

* 共享存储
* 消息传递
* 管道通信:固定大小,半双工通信,即某一时刻只能单向传输。
* 共享文件
<>处理机调度

<>调度的层次

* 作业调度,又称高级调度。就是内存与辅存之间的调度。
*
中级调度。又称内存调度。引入中级调度是为了提高内存利用率和系统吞吐量。使那些暂时不能运行的进程,调至外存等待,把此时的进程状态称为挂起状态。当他们具备运行条件且内存又稍有空闲时,由中级调度来决定,把外存上的那些已具备运行条件的就绪进程再重新调入内存。
* 进程调度。又称为低级调度。按照某种方法和策略从就绪队列中选取一个进程给CPU。
<>进程调度方式

* 非剥夺调度方式
* 剥夺调度方式
<>典型的调度算法

*
先来先服务调度算法(FCFS)

*
短作业优先(SJF)调度算法

从后备队列中选择一个或若干个估计运行时间最短的作业,将他们调入内存运行。

*
短进程优先(SPF)调度算法

从就绪队列中选择一个估计运行时间最短的进程,将处理机分配给它,使之立即执行。

*
优先级调度算法

根据能否抢占进程,可将调度算法分为:

* 非剥夺式优先级调度算法
* 剥夺式优先级调度算法
根据进程创建后其优先级是否可以改变,分为:

* 静态优先级。优先级在创建进程时确定,且在进程的整个运行期间保持不变。
* 动态优先级。可动态调整优先级。
*
高响应比优先调度算法



*
时间片轮转调度算法

*
多级反馈队列调度算法





<>进程同步

<>基本概念

* 临界资源
我们把一次仅允许一个进程使用的资源称为临界资源。

* 同步
同步亦称直接制约关系,他是指为完成某种任务而建立的两个或多个进程,这些进程因为需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。

<>实现临界区互斥的基本方法

<>软件实现方法









<>硬件实现方法

*
中断屏蔽方法


当一个进程正在使用处理机执行它的临界区代码时,要防止其他进程再进入其临界区访问的最简单方法是禁止一切中断发生。因为CPU只在中断发生时进行进程切换,这样屏蔽中断就能保证当前运行进程将临界区代码顺利地执行完。

*
硬件指令方法





<>信号量

信号量只能被两个标准的原语wait(S)和signal(S)来访问,也可以记为“P操作“和”V操作“。

原语是指完成某种功能且不被分割不被中断执行的操作序列,通常可由硬件来实现完成不被分割执行特性的功能。

* 利用信号量实现同步


* 利用信号量实现进程互斥


<>管程

管程是由一组数据以及定义在这组数据之上的对这组数据的操作组成的软件模块,这组操作能初始化并改变管程中的数据和同步进程。



<>死锁

所谓死锁是指多个进程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。

<>死锁产生的条件

* 互斥
* 不剥夺
* 请求和保持
* 循坏等待
<>死锁的处理策略

* 预防死锁
设置某些限制条件,破坏产生死锁的四个必要条件中的一个或几个,以防止发生死锁。

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

银行家算法



* 死锁的检测及解除
通过系统的检测机构及时地检测出死锁的发生,然后采取某种措施解除死锁。



<>内存管理

<>程序执行过程



<>逻辑地址空间与物理地址空间



<>覆盖与交换

* 覆盖


* 交换


<>连续分配管理方式

* 单一连续分配


* 固定分区分配
可以有大小相等的分区和大小不等的分区

会有内部碎片

* 动态分区分配
会有外部碎片,可以通过紧凑技术来解决(就是操作系统不时地对进程进行移动和整理,需要动态重定位寄存器支持。



<>非连续分配管理方式

* 分页存储管理
* 分段存储管理
* 段页式管理方式
<>虚拟内存管理

* 传统存储管理方式的特征
* 一次性:作业必须一次性全部装入内存,方能运行。
* 驻留性:作业被装入内存后,就一直驻留在内存中,其任何部分都不会被换出,直至作业运行结束。
*
局部性原理

* 时间局部性
如果程序中的某条指令一旦执行,不久以后该指令可能再次执行;如果某数据被访问过,不久以后该数据可能再次被访问。

所以时间局部性是通过将进来使用的指令和数据保存到高速缓存存储器中。

* 空间局部性
一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也将被访问。

所以空间局部性通常是使用较大的高速缓存,并将预取机制集成到高速缓存控制逻辑中实现。

<>页面置换算法

* 最佳置换算法(OPT)


* 先进先出页面置换算法


* 最近最久未使用置换算法(LRU)


<>文件系统

<>文件的概念

文件是以计算机硬盘为载体存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。

在用户进行的输入、输出中,是以文件为基本单位。

<>文件的属性

* 名称
* 标识符
* 类型
* 位置
* 大小
* 保护
* 时间、日期和用户标识
<>文件的逻辑结构

* 无结构文件(流式文件)
无结构文件是最简单的文件组织形式。无结构文件将数据按顺序组织成记录并积累保存,他是有序相关信息项的集合,以字节为单位。

*
有结构文件(记录式文件)

* 顺序文件
文件中的记录一个接一个地顺序排列,记录通常是定长的,可以顺序存储或以链表形式存储。

​ 1. 串结构

​ 记录之间的顺序与关键字无关,通常按照存入时间的先后排列。

​ 2. 顺序结构

​ 指文件中的所有记录按关键字顺序排列。

*
索引文件

*

索引顺序文件是顺序和索引两种组织形式的结合。索引顺序文件将顺序文件中的所有记录分为若干组,为顺序文件建立一张索引表,在索引表中为每组中的第一个记录建立一个索引项。

*
直接文件或散列文件

给定记录的键值或通过Hash函数转换的键值直接决定记录的物理地址。

<>目录结构

<>文件控制块和索引

*
文件控制块。FCB用来存放控制文件所需要的各种信息的数据结构。FCB的有序集合称为文件目录,一个FCB就是一个文件目录项。

FCB主要包含以下信息:

* 基本信息
* 存取控制信息
* 使用信息
*
索引节点

<>目录结构

* 单级目录结构。整个文件系统中只建立一张目录表,每个文件占一个目录项。
* 两级目录结构。将文件目录分为主文件目录和用户文件目录。主文件目录项记录用户名及相应用户文件目录所在的存储位置。用户文件目录项记录该用户文件的FCB信息。
* 多级目录结构
* 无环图目录结构。引入改种目录结构是为了实现文件共享。
<>文件共享

* 基于索引结点(硬连接):共享文件指向同一个索引结点
* 基于符号链(软连接):保存共享文件的路径名
<>文件保护

* 口令保护:通过口令访问文件
* 加密保护:对文件进行加密处理
* 访问控制:根据访问者的身份进行限制
<>文件系统层次结构

文件系统类型:FAT32、NTFS、ext2、ext3、ext4



<>目录实现

* 线性列表
* 哈希表
<>文件实现

* 文件分配方式
* 连续分配
* 链接分配
* 索引分配


<>文件存储器的空间管理

* 空闲表法:把所有空闲块组织成表
* 空闲链表法:把所有空闲块组织成链表
* 位示图:利用二进制的每位记录空闲块
* 成组链接:空闲表和空闲链表的结合,适合大的文件系统
<>磁盘调度算法

* FCFS(先来先服务算法)


* 最短寻找时间优先算法(SSTF)算法


* 扫描(SCAN)算法(又称电梯算法)


* 循环扫描(C-SCAN)算法






<>I/O管理

<>I/O控制方式

*
程序直接控制方式

*
中断驱动方式

允许I/O设备主动打断CPU的允许并请求服务,从而“解放”CPU,使得其向I/O控制器发送读命令后可以继续做其他有用的工作。

*
DMA方式

DMA方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放”CPU。DMA方式的特点:

* 基本单位是数据块
* 所传送的数据,是从设备直接送入内存的,或者相反
* 仅在传送一个或多个数据块的开始和结束时,才需CPU干预,整块数据的传送是在DMA控制器的控制下完成的。


*
通道控制方式






友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信