【系统分析师】三、操作系统基本原理

操作系统是计算机系统中最重要、最基本的系统软件,它位于硬件和用户之间,一方面能向用户提供接口,方便用户使用计算机;另一方面能管理计算机软硬件资源,以便充分利用它们。

3.1 操作系统概述

操作系统功能
处理机管理
以进程为单位对处理机的分配和运行实施有效的管理
存储器管理
对内存进行分配保护和扩充
设备管理
对设备分配,数据传输,虚拟化进行管理
文件管理
对存储空间的分配回收进行管理,对目录,文件操作,文件保护等进行管理
用户接口
提供程序接口和操作接口,方便调用操作系统的功能,有效地组织作业和处理流程使整个系统能高效地运行
操作系统类型
单用户操作系统
一台处理器上只能支持一个用户程序的运行,系统的全部资源都提供给该用户使用
批处理操作系统\作业操作系统
分时系统
采用分时技术将CPU的时间划分为很短的时间片轮流分配给各个终端作业使用
实时系统
网络操作系统
支持网络中各资源共享的数据通信系统
分布式操作系统
网络操作系统的更高级形式,支持任务的分布性,即可以将一个大任务分解为若干个子任务
并行操作系统
嵌入式操作系统
运行于特定嵌入式芯片,对系统资源进行统一协调处理指挥和控制,具有微型化,可定制,实时性,可靠性,易移植等特点
操作系统结构
整体结构
基于结构化程序设计的一种软件设计方法设计实现操作系统
层次结构
将操作系统模块按功能的调用次序排列成若干层次,各层之间只能单向依赖或单向调用:低层为高层服务,高层可以调用低层的功能
客户服务器结构/微内核结构
从操作系统中去掉尽可能多的东西,只留下一个最小的核心.适用于分布式操作系统
面向对象结构
对象是操作系统管理信息和资源的抽象,被视为受保护信息或资源的总称.广泛应用于网络操作系统和分布式操作系统

3.2 进程管理

进程是操作系统进行资源分配和调度的基本单位。相对程序,进程是动态的概念,而程序是静态的概念,是指令的集合。
一个进程通常由三部分组成:程序、数据集合和进程控制块(PCB)。程序描述了进程所要完成的功能,数据集合描述了程序运行所需要的数据部分和工作区,进程控制块描述了进程的描述信息、控制信息和资源信息,是进程动态特性的集中反映。

3.2.1 进程的状态
1、三态模型
等待某事件
时间片到
具备执行条件
被调度
运行
阻塞
就绪
2、五态模型
内存
时间片到
等待某事件
调度
所等待事件到
挂起
挂起
挂起
激活或恢复
激活或恢复
所等待的事件发生
运行
活跃就绪
活跃阻塞
静止就绪
静止阻塞
3.2.2 信号量与PV操作

**进程同步:**主要源于进程合作,是进程之间共同完成一项任务时直接发生相互作用的关系,为进程之间的直接制约关系。
**进程互斥:**主要源于资源共享,是进程之间的简介制约关系。在多道程序系统中,每次仅允许一个进程访问的资源称为临界资源,进程互斥要保证每次只有一个进程使用临界资源。

**信号量:**一个二元组(S,Q),其中S是一个整形变量,初值为非负数,Q为一个初始状态为空的等待队列。在多道程序系统中,信号量机制是一种有效的实现进程同步与互斥的工具。信号量的值通常表示系统中某类资源的数目,值由PV操作进行改变。

PV操作是对信号量进行处理的操作过程,而且信号量只能由PV操作改变。P操作将信号量减1,意味着请求系统分配一个单位资源,若系统无可用资源则进程变为阻塞状态;V操作是对信号量加1,意味着释放一个单位资源,信号量大于等于0时,就从就绪队列唤醒一个进程,执行V操作的进程继续执行。

3.2.3 死锁问题

当若干个进程竞争使用资源时,如果每个进程都占有一定的资源,又申请使用已被另一个进程占用且不能抢占的资源,则所有这些进程都纷纷进入阻塞状态,不能继续运行,即系统中两个或两个以上的进程无限期地等待永远不会发生的条件,系统处于一种停滞状态,这种现象就称为死锁。

产生死锁的4个必要条件:

  • 互斥条件:任何一个时刻只允许一个进程使用资源。
  • 不可剥夺条件:进程已占用的资源,不会被强制剥夺。
  • 请求和保持条件:进程在请求资源时,不释放已占有的资源。
  • 环路条件:环路中每一条边是进程在请求另一个进程已占用的资源。

对死锁的处理方法:

  • 死锁预防:破坏死锁的4个必要条件。
  • 死锁避免:允许死锁的存在,但不让它发生,设置一种安全状态,进程按某种顺序为其分配资源。
  • 死锁的检测与接触:系统保存资源的请求和分配信息,利用算法对信息进行检查以判断是否存在死锁。一旦出现死锁,使用资源剥夺法、进程撤销法、进程回退法等方法进行恢复。
3.2.4 线程管理

在现代操作系统中,通常都引入了线程的概念。线程是进程的活动成分,是处理器分配资源的最小单元,它可以共享进程的资源与地址空间,通过线程的活动,进程可以提供多种服务(对系统进程而言)或实行子任务并行(对用户进程而言)。
每个进程创建时只有一个线程,根据需要在运行过程中可以创建更多的线程。

进程与线程比较:

方面进程线程
调度拥有资源的基本单位调度和分配的基本单位
并发性进程间可以并发执行线程间也可以时间片的方式并发执行
拥有资源资源可供它的所有线程共享不拥有系统资源,可以访问其隶属进程的资源
系统开销进程切换时需要当前进程CPU环境的保存,新进程CPU环境的设置只需保存和设置少量寄存器内容
通信方面需要进程同步和互斥等保证数据的一致性可以直接读写进程数据段进行通信

对线程模型:

线程模型
多对一模型
将多个用户线程映射到一个内核线程
一对一模型
每一个用户线程都映射到一个内核线程
多对多模型
将许多的用户线程映射到同样数量或更小数量的内核线程上

3.3 内存管理

由于任何内存和数据都必须占用内存空间后才能执行,因此内存管理的优劣直接影响系统性能。操作系统的任务之一就是尽可能的方便用户使用和提高内存的利用效率。
内存管理的主要功能:

  • 内存空间的分配和回收
  • 配合硬件进行地址转换(用户的逻辑地址转换为硬件的物理地址)
  • 内存空间的共享和保护
  • 借助大容量外存解决内存不够问题
3.3.1 地址变换(重定位)

目标程序的地址不是内存的实际地址,一般将用户目标程序使用的地址单元称为逻辑地址(或相对地址、虚拟地址),逻辑地址一般以0为基地址进行编址,是程序经过编译或汇编后形成的目标模块或装配连接程序的地址编码。当程序运行时,它将被装入内存地址空间的某些部分,此时程序和数据的实际地址一般不可能与原来的逻辑地址一致,将内存中的实际存储单位称为物理地址(或绝对地址、实际地址)。
为了保证程序的正确运行,必须将程序和数据的逻辑地址转换为物理地址,这一工作称为地址转换。转换后的地址计算公式:
物理地址 = 起始的物理地址 + 逻辑地址

地址转换通常有两种方式:静态重定向和动态重定向

  • 静态重定向:作业装入时由作业装入程序实现地址转换(MCU控制系统)
  • 动态重定向:程序执行期间CPU访问程序和数据之前实现地址转换(CPU计算系统)
3.3.2 存储管理

随着操作系统的发展,为了提高存储器的利用率,存储方式由固定式分区存储分配演变为了分页式存储管理方式,后为满足用户需求,由发展出了分段式存储管理方式和虚拟存储方式。

1、分区存储管理
分区类型说明优点缺点
固定分区在作业装入前将内存划分为若干个分区,运行期间不再重新分配实现简单,内存划分可控内存利用率不高,内存碎片较多
可变分区在作业装入内存时从可用内存中划出一块连续的区域分配使用,形式新的分区,常用算法:首次适应法、最佳适应法、最坏适应法获得了较大灵活性,提供了内存的利用率频繁的申请释放会导致内存碎片化而不可用
可重定向分区移动某些已分配区域中的信息,使所有分配紧挨存储器一端,将零散的空白区域合并提高了内存空间使用率内存区域信息移动,可能会降低程序运行效率
多重分区为一个作业分配一个以上的分区,允许运行期间动态申请不相连的分区便于共享子程序或数据需要硬件动态重定位支持

分区方式允许多道程序在内存中同时运行,但必须解决存储器保护问题。常用的方式有界地址保护设置存储键保护

2、段页式存储管理

分区存储管理要求把作业放在内存的一片连续区域,也产生了存储碎片和空间管理较复杂的问题。为了避免这种连续性的要求,可以将作业的逻辑地址空间分成若干个长度相等的区域(称为页),内存空间也划分成若干个与页长度相等的区域(称为页帧或块),程序装入时每页对应一个页帧,这就是分页存储管理的思想。

管理类型说明优点缺点
页式存储管理系统为每道作业建立一张页面映射表(称为页表),记录相应页在内存中对应的页帧号。实际使用的页帧号可以连续,也可以不连续消除了可变分区中紧致存储空间所带来的开销,同时实现了内存信息共享和虚拟存储技术每次访问数据,需要首先访问页表,再根据页表中的物理地址访问实际的数据,降低了处理速度。
段式存储管理按作业中自然段来划分逻辑空间,每段占用连续的地址空间,其逻辑地址由段号和段内地址组成。系统为每个作业建立段表记录该段内存的起始地址和段长。各段可以存放在内存不同的分区中,段的分配与回收与可变分区存储管理相同。方便用户编程,共享更易实现,支持动态链接和动态增长。同样存在二次访存问题,存储管理复杂,空间利用率差等缺点。
段页式存储管理将段式存储与分页存储管理结合:将作业分为若干段,每段又分为若干页。为实现地址转换,为每一个作业配置一张段表和若干张页表。内存管理以分配和回收页为单位内存空间使用率提高、内存管理难度降低。存在三次内存访问问题,系统指令执行速度会更慢。
查表导致的多次内存访问问题,可以使用快表进行解决。
3、虚拟存储管理

在虚拟存储管理技术之前,作业启动前需要分配足够的存储空间,以装入有关作业的全部信息,作业的大小不能超过内存的可用空间,但所占用的内存空间在作业运行期间可能并未使用而会造成资源浪费。
为了解决这一问题产生了虚拟存储管理技术:作业在运行之前并不必全部装入内存,仅需将当前运行的部分程序和数据装入内存便可启动程序运行,其他部分仍然驻留在外存中。当要执行的指令或访问的数据不在内存时,再由操作系统通过请求调用功能将它们调入内存以便程序继续执行;而内存已满时,采用置换算法将部分内存中的暂时不用的程序和数据调至外存,腾出相应的内存空间。
将这种具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的存储器系统称为虚拟存储系统。

对于虚拟存储管理系统,良好的页面置换算法应能够淘汰那些被访问概率最低的页,并将它们移出内存,从而提高系统性能。

内存管理算法
随机淘汰算法
轮转算法
先进先出算法
最近最久未使用算法LRU
最近没有使用页面置换算法NUR
最优置换算法,通常用来评估其他算法
时钟页面替换算法

3.4 文件系统

文件是操作系统进行信息管理的基本单位,对软件资源的管理是通过文件系统来实现的。
为了实现这些功能,操作系统必须考虑文件目录的建立和维护、存储空间的分配和回收、信息的编码方法和存储次序,以及如何检索用户信息等问题。

3.4.1 文件的组织结构
1、逻辑结构

文件的逻辑地址(逻辑文件)是指用户概念的文件。逻辑文件有两种形式:无结构的流式文件和有结构的记录式文件。

  • 流式文件:相关信息项的集合,基本单位为字节(或字)。在UNIX系统中,所有文件都被看成是流式文件。
  • 记录式文件:数据记录的集合,基本单位是逻辑地址,记录的长度有等长和变长之分。
2、物理结构

文件物理结构(物理文件)是指文件在存储介质上的组织方式,依赖物理的存储设备和存储空间。常用的文件物理存储结构有顺序结构、链接结构和索引结构。

  • 顺序结构(连续结构):连续的记录构成的文件分配到连续的物理块中。
  • 链接结构(串联结构):将信息存储在非连续的物理块中,每个物理块末尾均设有地址指向其后续的物理块。
  • 索引结构(随机结构):为每个文件建立一个索引表,每个表项指向信息所在的物理块号,表目按逻辑记录编写顺序排序。
3、树形文件结构

文件控制块的集合称为文件目录,文件目录也被组织成文件,常称为目录文件。文件管理的一个重要方面是对文件目录进行组织和管理。文件系统一般采用一级目录结构、二级目录结构及多级目录结构。

3.4.2 存储空间管理

文件系统应能自动为用户分配并管理系统和用户的存储空间。

存储空间管理
空闲文件目录
将连续的未分配区域单独建立一个目录进行管理
空闲块链
将所有空闲块用链接指针或索引结构组成一个空闲文件进行管理
位示图法
使用二进制的1位来表示文件存储空间中1个块的使用情况
成组链接法
将一个文件卷的所有空闲块按固定大小分成若干组并该组的空闲块数和所有盘块数记录到前一组最后一个盘块中
3.4.3 分布式文件系统

在计算机网络中,每一个节点运行一个包括自己的文件系统的本地操作系统,称为本地文件系统(Local File System,LFS)。
而分布式文件系统(Distributed File System,DFS)是允许通过网络互联,使不同机器上的用户共享文件的一种文件系统。

分布式文件系统具有网络透明性和位置透明性的特点。

  • 网络透明性:用户访问文件服务器的文件操作如同访问LFS的操作一样。
  • 位置透明性:用户通过文件名访问文件,即使文件的物理位置改变用户仍可进行访问。

分布式文件系统目前大多数采用客户/服务器架构,客户是访问文件的计算器,服务器是存储文件并运行用户访问的计算机。分布式文件系统软件由两部分组成:运行在服务器上的DFS软件和运行在每个客户机上的DFS软件。这两部分程序代码在运行中都与本机操作系统的文件系统紧密结合共同起作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Loong7066

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

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

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

打赏作者

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

抵扣说明:

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

余额充值