软件设计师基础学习 三
三、操作系统知识
3.1.1 操作系统概述
-
操作系统的定义:能有效的组织和管理系统中的各种软/硬件资源,合理的组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口
-
操作系统的作用
-
通过资源管理提高计算机系统的效率
-
改善人机界面向用户提供友好的工作环境
-
-
操作系统的4个特性:并发性、共享性、虚拟性、不确定性
操作系统的功能
-
进程管理:实际上是对处理机的执行“时间”进行管理,采用多道程序等技术将CPU的时间合理地分配给每个任务,主要包括进程控制、进程同步、进程通信和进程调度
-
文件管理:主要包括文件存储空间管理、目录管理、文件的读/写管理、存储控制
-
存储管理:对住存储器“空间进行管理”,主要包括存储分配与回收、存储保护、地址映射(变换)和主存扩充
-
设备管理:实质上是对硬件设备的管理,包括对输入/输出设备的分配、启动、完成和回收
-
作业管理:包括任务、界面管理、人机交互、图形页面、语音控制和虚拟现实等
操作系统的分类
-
批处理系统:单道批处理和多道批处理(主机与外设可并行)
-
分时操作系统:一个计算机系统和多个终端设备连接。将CPU的工作时间划分为许多很短的时间片,轮流为各个终端的用户服务
-
实时操作系统:实时是指计算机对外来信息能够以足够快的速度进行处理,并在被控对象允许的时间范围内做出快速反应。实时系统对交互能力要求不高,但要求可靠性有保障
-
网络操作系统:是使联网计算机能方便而有效的共享网络资源,为网络用户提供各种服务的软件和有关协议的集合。三种模式:集中模式、客户端/服务器模式、对等模式
-
分布式操作系统:分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通信交换信息
-
微型计算机操作系统:简称微机操作系统,常见的有Windows、Mac OS、Linux
嵌入式操作系统
嵌入式操作系统的主要特点
-
微型化:从性能和成本的角度考虑,希望占用的资源和系统代码最少,如内存少、子长短、运行速度有限、能源少(用微小型电池)
-
可定制:从减少成本和缩短研发周期考虑,要求嵌入式系统能运行在不同的微机处理器平台上,能针对硬件变化进行结构和功能上的配置,以满足不同的需要
-
实时性:嵌入式操作系统主要应用于过程控制、数据采集、传输通信、多媒体信息及关键要害领域需要迅速响应的场合,所有实时性要求较高
-
可靠性:系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施
-
易移植性:为了提高系统的易移植性,通常采用硬件抽象层和板级支撑包的底层设计技术
嵌入式操作系统初始化过程按照自底向上、从硬件到软件的次序依次为:
片级初始化->板级初始化->系统初始化
3.1.2 进程组成和状态
-
进程的组成:
-
进程控制块PCB(唯一标志)
-
程序
-
数据
-
3.1.3 前驱图
用来表示哪些任务可以并行执行、哪些任务之间有顺序关系。
-
进程资源图
-
用来表示进程和资源之间的分配和请求关系
-
P代表进程、R代表资源
-
阻塞节点:某进程所请求的资源已经全部分配完毕,无法获取所需资源,该进程被阻塞了无法继续
-
非阻塞节点:某进程所请求的资源还有剩余,可以分配给该进程继续执行
-
当一个进程资源图中所有的进程都是阻塞节点时,即陷入死锁状态
-
3.1.4 进程的同步和互斥
-
临界资源:各进程需要以互斥方式对其进行访问的资源
-
临界区:指进程中对临界资源实施操作的那段程序。本质是一段程序代码
-
互斥:某资源在同一时间只能由一个任务单独使用,使用时需要加锁,使用完成解锁才能被其他任务使用
-
同步:多个任务可以并发执行,只不过速度上有差异,在一定情况下停下等待,不存在资源是否单独或共享的问题
-
互斥信号量:对临界资源进行互斥访问,使用互斥信号量后其他进程无法访问,初始值为1
-
同步信号量:对共享资源的访问控制,初始值一般是共享资源的数量
PV操作
-
P操作:申请资源
-
V操作:释放资源
3.1.5 进程调度
-
进程调度是指当有更高优先级的进程来到时如何分配CPU。分为可剥夺和不可剥夺两种。
-
在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度
-
高级调度:它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或者一组就绪进程。在系统中一个作业只需要经过一次高级调度
-
中级调度:它决定处于交换区中哪个就绪进程可以调入内存,以便直接参与对CPU的竞争
-
低级调度:他决定处于内存中的哪个就绪进程可以进入CPU。低级调度是操作系统中最活跃、最重要的调度程序,对系统的影响很大
-
调度算法
-
先来先服务FCFS:先到达的进程优先分配CPU。用于宏观调度
-
时间片轮转:分配给每个进程CPU时间片,轮流使用CPU,每个进程时间片大小相同,用于微观调度
-
优先级调度:每个进程都有一个优先级,优先级大的先分配CPU
-
多级反馈调度:时间片轮转和优先级调度结合而成,设置多个就绪队列,每个队列分别赋予不同的优先级,分配不同的时间长度;新进程先进入队列1的末尾,按照FCFS原则,执行队列1的时间片;若未能执行完进程,则转入队列2的末尾,如此重复。
3.1.6 死锁
当一个进程在等待永远不可能发生的事件时就会产生死锁,若系统中有多个进程处于死锁状态,就会造成系统的死锁
-
死锁产生的4个必要条件:资源互斥、每个进程占有资源并等待其他资源、系统不能剥夺进程资源、进程资源是一个环路
死锁的解决策略
-
死锁预防:采用某种策略限制并发进程对资源的请求,破坏死锁产生的四个条件之一,使系统任何时刻都不满足死锁的条件
-
死锁避免:一般采用银行家算法来避免,银行家算法就是提前计算出一条不会死锁的资源分配方法,才分配资源,否则不分配资源
-
死锁检测:允许死锁产生,但系统定时运行一个检测死锁的程序,若检测到系统中发生死锁,则设法加以解除
-
死锁解除:即死锁发生后的解除方法;如强制剥夺资源,撤销进程等
-
死锁资源计算:系统内有n个进程,每个进程都需要R个资源,那么其发生死锁的最大资源数为n(R-1),其不发生死锁的最小资源数为n(R-1)+1
3.1.7 线程
-
传统的进程有两个属性:可拥有资源的独立单位;可独立调度和分配的基本单位
-
引入线程的原因是进程在创建、撤销和切换的过程中,系统必须为之付出较大的失控开销,故在系统中设置的进程数目不宜过多,进程切换的频率不宜太高,这就限制了并发程度的提高。引入线程后,将传统进程的两个基本属性分开,线程作为调度和分配的基本单位,进程作为独立分配资源的单位。用户可以通过穿件线程来完成任务,以减少程序并发执行时付出的时空开销
-
线程是进程中的一个实体,是被系统独立分配和调度的基本单位。线程基本上不拥有资源,只拥有一点运行中必不可少的资源(如程序计数器、一组寄存器和栈),它可与同属一个进程的其他线程共享进程拥有的全部资源,但不能共享线程独有的资源,如线程的栈指针等标识数据
3.2 存储管理
3.2.1 分区存储管理
所谓的分区存储组织,就是整存,将某进程运行所需的内存整体一起分配给它,然后再执行。有三种分区方式
-
固定分区:静态分区方法,将主存分为若干个固定大小的分区,将要运行的作业装配进去,由于分区固定,大小和作业需要的大小不同,会产生内部碎片
-
可变分区:动态分区方法,主存空间的分区是在作业转入时划分的,正好划分为作业需要的大小,这样就不存在内部碎片,但容易将整片主存空间切割成许多块,会产生外部碎片
-
首次适应法
-
最佳适应法
-
最差适应法
-
循环首次适应法
-
-
可重定位分区:可以解决碎片问题,移动所有已经分配好的区域,使其成为一个连续的区域,这样其他外部细小的分区碎片可以合并为大的分区,满足作业需求。只在外部作业请求空间得不到满足时进行
3.2.2 分页存储管理
逻辑页分为页号和页内地址,页内地址就是物理偏移地址,而页号与物理块号并非按序对应的,需要查询页表,才能得知页号对应的物理块号,再用物理块号对应偏移地址才能得出真正的物理地址。
优点:利用率高,碎片小,分配及管理简单
缺点:增加了系统开销,可能产生抖动现象
页面置换算法
-
最优算法:OPT,理论上的算法,无法实现,实在进程执行完成后进行的最佳效率计算,用来让其他算法比较差距。原理是选择未来最长时间内不被访问的页面置换,这样可以保证未来执行的都是马上要访问的
-
先进先出算法:FIFO,先调入内存的页面先被淘汰置换,会产生抖动现象,即分配的页数越多,缺页率可能越多
-
最近最少使用:LRU,在最近的过去,进程执行过程中,过去最少使用的页面被淘汰置换,根据局部性原理,这种方法效率高,且不会产生抖动现象,使用大量计数器,但没有LFU多
淘汰原则:优先淘汰最近未访问的,而后淘汰最近未被修改的页面
快表
-
是一块小容量的相联存储器,由快速存储器组成,按内容访问,速度快,并且可以从硬件上保证按内容并行查找,一般用来存放当前访问最频繁的少数活动页面的页面
-
快表是将页表存于Cache中;慢表式将页表存于内存上。慢表需要访问两次内存才能取出页,而快表是访问一次Cache和一次内存,因此更快
3.2.3 分段存储管理
-
将进程空间分为一个个段,每段也有段号和段内地址,与页式存储不同的是,每段物理大小不同,分段是根据整体逻辑来分段的,因此,段表也与页表的内容不同,页表中直接是逻辑页号对应物理块号,段表有段长和基址两个属性,才能确定一个逻辑段在物理段中的位置
-
优点:多道程序共享内存,各段程序修改互不影响
-
缺点:内存利用率低,内存碎片浪费大
-
3.2.4 段页式存储管理
-
对进程空间先分段、后分页
-
优点:空间浪费小、存储共享容易、存储保护容易、能动态链接
-
缺点:由于管理软件的增加,复杂性和开销也随之增加,需要的硬件以及占用的内容也有所增加,使得执行速度大大下降
-
3.3 设备管理
3.3.1 设备管理概述
-
设备是计算机系统与外部交互的工具,具体负责计算机与外部的输入/输出工作,所以常称为外部设备(简称外设)。在计算机系统中,将负责管理设备和输入/输出的机构称为I/O系统。因此,I/O系统由设备、控制器、通道(具有通道的计算机系统)、总线和I/O软件组成。
设备的分类
-
按数据组织分类:块设备、字符设备
-
按照设备功能分类:输入设备、输出设备、存储设备、网络联网设备、供电设备
-
资源分配角度分类:独占设备、共享设备和虚拟设备
-
数据传输速率分类:低速设备、中速设备、高速设备
设备管理的任务是保证在多道程序环境下,当多个进程竞争适用设备时,按一定的策略分配和管理各种设备,控制设备的各种操作,完成I/O设备和主存之间的数据交换
设备管理的主要功能是动态的掌握并记录设备的状态、设备分配和释放、缓冲区管理、实现物理I/O设备的操作、提供设备使用的用户接口及设备的访问和控制
3.3.2 I/O软件
-
I/O设备管理软件
当用户程序试图读一个硬盘文件时,需要通过操作系统实现这一操作。与设备无关软件检查高速缓存中有无要读的数据块,若没有,则调用设备驱动程序,向I/O硬件发出一个请求。然后,用户进程阻塞并等待磁盘操作的完成。当磁盘操作完成时,硬件产生一个中断,转入中断处理程序。中断处理程序检查中断原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束这次的I/O请求。用户进程在得到了所需的硬盘文件内容之后,继续运行。
3.3.3 设备管理技术
-
一台独占设备,在同一个时间只能由一个进程使用,其他进程只能等待,且不知道什么时候空闲,此时,极大的浪费了外设的效率
-
引入SPOOLING(外围设备联机操作)技术,就是在外设上建立两个数据缓冲区,分别称为输入井和输出井,这样,无论多少进程,都可以共享这一台设备,实现了物理外设的共享,使得每个进程都感觉在使用一个设备,这就是物理设备的虚化。
3.4 文件管理
3.4.1 文件管理概述
-
文件是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合
-
信息项是构成文件内容的基本单位,可以是一个字符,也可以是一个记录,记录可以等长,也可以不等长。一个文件包括文件体和文件说明。文件体是文件真实的内容。文件说明是操作系统为了管理文件所用到的信息,包括文件名、文件内部标识、文件的类型、文件存储地址、文件的长度、访问权限、建立时间和访问时间等
-
文件管理系统,就是操作系统实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件的软件机构,简称文件系统。文件系统的功能包括按名存取;统一的用户接口;并发访问和控制;安全性控制;优化性能;差错恢复
-
文件的类型
-
按文件性质和用途可将文件分为系统文件、库文件和用户文件
-
按信息保存期限分类可将文件分为临时文件、档案文件和永久文件
-
按文件的保护方式分类可将文件分为只读文件、读/写文件、可执行文件和不保护文件
-
UNIX系统将文件分为普通文件、目录文件和设备文件(特殊文件)
-
文件的逻辑结构可分为两大类:有结构的记录式文件;无结构的流式文件
文件的物理结构是指文件在物理设备上的存放方式:
1)连续结构。连续结构也称顺序结构,它将逻辑上连续的文件信息(如记录)依次存放在连续编号的物理块上
2)链接结构。链接结构也称串联结构,它是将逻辑上连续的文件信息(如记录)存放在不连续的物理块上,每个物理块设有一个指针指向下一个物理块
3)索引结构。将逻辑上连续的文件信息(如记录)放在不连续的物理块中,系统为每一个文件建立一张索引表。索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
4)多个物理块的索引表。索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一文件卷上。根据一个文件大小的不同,其索引表占用物理块的个数不等,一般占一个或多个物理块
3.4.2 索引文件结果
-
直接索引
-
一级间接索引
-
二级间接索引
-
。。。。
3.4.3 文件目录
文件控制块包括以下三类信息:基本信息类、存取控制信息类、使用信息类
(1)基本信息类。例如文件名、文件的物理地址、文件的长度和文件块数
(2)存取控制信息类。文件的存取权限,向UNIX用户分成文件主、同组用户和一般用户三类,这三类用户的读/写执行RWX权限
(3)使用信息类。文件建立日期、最后一次修改日期、最后一次访问的日期、当前使用的信息(如打开文件的进程数、在文件上的等待队列)等
-
文件控制块的有序集合称为文件目录
-
相对路径:从当前路径开始的路径
-
绝对路径:从根目录开始的路径
-
全文件名=绝对路径+文件名。
3.4.4文件存储空间管理
-
文件的存取方式是指读/写文件存储器上的一个物理块的方法。通常有顺序存取和随机存取两种方法。顺序存取方法是指对文件中的信息按顺序依次进行读/写;随机存取方式是指对文件中的信息可以按任意的次序随机地读/写
-
文件存储空间的管理:
-
(1)空闲区表:将外存空间上的一个连续的未分配的区域称为“空闲区”。操作系统为磁盘外存上的所有空间区建一张空闲表,每个表项对应一个空闲区,适用于连续文件结构
-
(2)位示图:这种方法是在外存上建立一张位示图,记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用
-
(3)空闲块链:每个空闲物理块中有指向下一个空闲物理块的指针,所有控线物理块构成一个张链表,链表的头指针放在文件存储器的特定位置上,不需要磁盘分配表,节省空间
-
(4)成组链接法:例如,在实现时系统将空闲块分成若个组,每100个空闲块为一组,每组的第一个空闲块登记了下一组的空闲块的物理块号和空闲块数。假如某个组的第一个空闲块号等于0,意味着该组时最后一组,无下一组空闲块
-
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析