定义
- 计算机软件是指计算机系统中的程序及其文档,是计算任务的处理对象和处理规则的描述。
- 软件系统:是指在计算机硬件系统上运行的程序、相关的文档资料和数据的集合。计算机软件用来扩充计算机系统的功能,提高计算机系统的效率。
- 系统软件:是为整个计算机系统配置的不依赖特定应用领域的通用软件。根据系统软件功能的不同,可将其划分为:操作系统、程序设计语言翻译系统、数据库管理系统和网络软件等。
- 应用软件: 为某类应用需要或解决某个特定问题而设计的软件。按照应用软件使用面的不同,可进一步把应用软件分为专用的应用软件和通用的应用软件两类。
操作系统
操作系统是计算机系统的资源管理者,它包含对系统软、硬件资源实施管理的一组程序,其首要作用就是通过CPU管理、存储管理、设备管理和文件管理对各种资源进行合理地分配,改善资源的共享和利用程度,最大限度地发挥计算机系统的工作效率,提高计算机系统在单位时间内处理工作的能力。
操作系统的作用
- 管理计算机中运行的程序和分配各种软硬件资源。
- 为用户提供友善的人机界面。
- 为应用程序的开发和运行提供一个高效率的平台。
- 除了上述三个方面的作用外,操作系统还具有辅导用户操作,处理软硬件错误,监控系统性能,保护系统安全等许多作用。总之,有了操作系统,计算机才能成为一个高效,可靠,通用的数据处理系统。
操作系统的特征
- 并发性: 在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序同时运行,但实际上在单CPU的运行环境,每一个时刻只有一个程序在执行。
- 共享性: 共享性是指操作系统中的资源可以被多个并发执行的进程共同使用,而不是被一个进程所独占。
- 虚拟性: 虚拟性它是把物理上的一个实体变成逻辑上的多个对应物,或把物理上的多个实体变成逻辑上的一个对应物的技术。
- 不确定性: 进程是以不确定的方式运行的,其导致的直接后果是程序执行结果可能不唯一。
操作系统的分类
- 批处理操作系统:批处理操作系统是一种早期的操作系统,它将多个作业组织成一批,然后由计算机自动地、顺序地执行这些作业。用户不需要直接干预作业的执行过程,系统资源利用率较高,但交互性较差。
- 分时操作系统: 分时操作系统允许多个用户通过终端同时与计算机交互。系统将CPU的时间划分成时间片,轮流为各个用户服务。这样,每个用户都感觉自己独占了一台计算机,提高了资源利用率并增强了交互性。
- 实时操作系统:实时操作系统(RTOS)用于需要对外部事件做出快速响应的场合。它具有严格的任务执行时间和可靠性要求,常用于航空航天、工业控制等领域。实时操作系统分为硬实时和软实时两种,硬实时要求必须在规定时间内完成任务,而软实时则允许一定的延迟。
- 网络操作系统:网络操作系统专门用于管理网络中的计算机资源和提供网络服务。它支持文件共享、打印机共享、用户权限管理等功能,使得多台计算机能够高效地协同工作。
- 分布式操作系统:分布式操作系统将物理上分散的多个计算机通过通信网络连接起来,形成一个逻辑上统一的整体。它负责管理这些计算机的资源,使用户感觉像在使用一台大型计算机。分布式操作系统具有高可靠性、高可用性和良好的可扩展性。
- 微型计算机操作系统: 微型计算机操作系统是指用于个人计算机(PC)的操作系统,如Windows、macOS和Linux等。它们提供了用户界面、文件管理、设备驱动程序等功能,以满足个人用户的需求。
- 嵌入式操作系统: 嵌入式操作系统用于嵌入式设备,如手机、家用电器、汽车电子等。它通常对资源占用有严格的限制,且具有高度的定制性。嵌入式操作系统通常专注于特定的任务,例如,实时控制、数据处理等。常见的嵌入式操作系统有Android、iOS、VxWorks等。
进程
进程通常由程序、数据集合、进程控制块PCB组成。PCB是一种数据结构,是进程存在的唯一标识。
- 进程的三态模型
- 进程的三种存储方式包括:线性方式、链接方式、索引方式
- 线性方式:把所有PCB组织在一张表中,每次查找需要全表扫描。
- 链接方式:把具有同一状态的PCB,用其中的链接字连接成一个队列,PCB存储在一个连续的区域。
- 索引方式:同一状态的进程归入一个索引表,多个状态对应多个不同的索引表。
- 进程的互斥:进程的互斥是指系统中多个进程因争用临界资源而互斥执行。临界资源是指一次只能提供一个进程的资源,如打印机。
- 进程的同步:在系统中有一些进程是需要相互合作,协同工作的。这样的进程之间的联系就叫同步。
前趋图
前趋图是一个有向无循环图,由节点和有向边组成,节点代表各程序段的操作,而节点间的有向边表示两个程序段操作之间存在的前驱关系。用于这种图可以描述多个程序或进程之间的执行顺序关系。
PV操作
使用前驱图描述进程的PV操作
- 信号量S:S>= 0表示某资源的可用数;若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。
- P操作
- 将信号量S的值减1,即S = S -1
- 若S>= 0,则该进程继续执行;否则该进程置为等待状态。
- V操作
- 将信号量S的值加1,即S = S +1
- 如果S>0该进程继续执行;否则说明有等待队列中有等待进程,需要唤醒等待进程。
- 互斥问题
- 进入临界区之前先执行P操作(可能阻塞当前进程)
- 离开临界区之后执行V操作(可能唤醒某个进程)离开临界区之后执行V操作(可能唤醒某个进程)
- 同步问题
- 运行条件不满足时,能让进程暂停(在关键操作之前执行P操作)
- 运行条件满足时,能让程序继续(在关键操作之后执行V操作)
- 信号量的分配 :从左到右,从小到大
存储管理
地址重定位是指将程序中的虚拟地址(逻辑地址)变换成内存的真实地址(物理地址)的过程。
- 逻辑地址:相对地址。用户目标程序所使用的存储单元,一般以0作为基址。
- 物理地址:绝对地址。加载到内存地址寄存器中的地址,内存单元的真正地址。
静态地址重定位
绝对地址 = 相对地址 + 程序内存存放的内存起始地址
- 程序运行前就确定映射关系
- 程序装入后不能移动
- 程序占用连续的内存空间
动态地址重定位
绝对地址 = 重定位寄存器的值(BR) + 逻辑地址寄存器的值(VR)
- 程序占用的内存空间可动态变化
- 程序不要求连续的内存空间
- 便于多个进程共享代码
存储管理方案
分区存储管理
- 把主存的用户区划分成若干个区域,每个区域分配给一个用户作业使用,并限定它们只能在自己的区域中运行。
分页存储管理
- 将一个进程的地址空间划分成若干个大小相等的区域,称为页。相应的,将主存空间划分成与页相同大小的若干个物理块,称为块或页框。
- 分页存储管理计算题
-
- 2100 转换为二进制 100000110100;
- 页和物理块大小 1024 是 那么 100000110100 后十位是页内地址,前两位是页号;
- 通过计算二进制转换为 10进制,页号 为 2 ,页内地址 为 52;
- 物理地址 = 对应的物理块号 * 物理块大小 + 页内地址大小 = 8 * 1024 + 52 = 8244;
分段存储管理
- 分段式存储管理系统中,为每个段分配一个连续的分区,而进程中的各个段可以离散地分配到主存的不同分区中。
- 在系统中为每个进程建立一张段映射表,简称“段表”。每个段在表中占有一个表项,在其中记录了该段在主存中的起始位置(基址)和段的长度。进程在执行时,通过查段表来找到每个段所对应的主存区。
段页式存储管理
- 在段页式系统中,其地址结构由段号,段内页号和页内地址三部分组成。
- 段页式系统的基本原理是先将整个主存划分成大小相等的存储块(页框),将用户程序按程序的逻辑关系分为若干个段,再将每个段分成若干个页,以页框为单位离散分配。
虚拟存储管理
- 虚拟存储体系由主存-辅存两级存储器构成
- 虚拟存储器只能基于非连续分配技术
- 虚拟存储器容量既不受外存容量限制,又不受内存容量限制,而是由CPU 的寻址范围决定
- 虚拟存储管理系统的基础是程序的局部性理论
- 虚拟存储管理三种实现方式:
- 请求分页存储管理
- 请求分段存储管理
- 请求段页式存储管理
设备管理
- 设备管理的主要目标是如何提高设备的利用率,为用户提供方便、统一的界面。
- 提高设备的利用率,就是提高CPU 与 I/O设备之间的并行操作程度
- 在设备管理中,主要利用的技术有:中断技术、DMA技术、通道技术和缓冲技术
程序控制
- 无条件传送:I/O 端口总是准备好,CPU 在需要时,随时直接利用访问相应的I/O端口
- 程序查询:CPU 必须不停地测试 I/O 设备的状态端口,CPU 与 I/O 设备是串行工作的。
中断
- 某个进程要启动某个设备时,CPU 就向相应的设备控制器发出一条设备I/O启动指令,然后CPU又返回做原来的工作。CPU与I/O设备可以并行工作
- 在中断过程中,程序现场信息保存在堆栈部分;
-
DMA
- 通过DMA控制器直接进行批量数据交换,除了在数据传输开始和结束时,整个过程无需CPU 的干预
- DMA 工作方式是在主存与外设之间建立起直接的数据通路
-
通道控制方式
在一定的硬件基础上利用软件手段实现对I/O的控制和传送,更多的免去了CPU 的接入,使主机和外设并行工作程度更高
I/O处理机
专门负责输入/输出的处理机,可以有独立的存储器,运算部件和指令控制部件。
文件系统
文件定义
文件是具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。例如,一个源文件、一个目标程序、编译程序、一批代加工的数据和各种文档等都可以各自组成一个文件。
文件是一种抽象机制,它隐藏了硬件的实现细节,提供了将信息保存在外存上而且便于以后读取的手段,使用户不必为了了解信息存储的方法、位置以及存储设备实际操作方式变可存取信息。
文件包含:
- 文件体:文件体是文件真实的内容。
- 文件说明:是操作系统为了管理文件用到的信息。
文件系统定义
文件系统是操作系统中实现文件统一管理的一组软件和相关数据的集合,是专门负责管理和存取文件信息的软件机构。
- 文件系统的功能
- 按名存取,而不是按地址存取
- 统一的用户接口,在不同设备上提供同样的接口,方便用户操作和编程
- 并发访问和控制,在多道程序系统中支持对文件的并发访问和控制
- 安全性控制,在多用户系统系统中的不同用户对同一文件可有不同的访问权限
- 优化性能,采用相关技术提高系统对文件的存储效率、检索和读/写性能
- 差错恢复,能够验证文件的正确性,并具有一定的差错恢复能力
文件的类型
- 按文件的性质和用途分类
- 系统文件
- 库文件
- 用户文件
- 按信息保存期限分类
- 临时文件
- 档案文件
- 永久文件
- 按文件的保护方式分类
- 只读文件
- 读/写文件
- 可执行文件
- 不保护文件
- UNIX 系统
- 普通文件
- 目录文件
- 设备文件(特殊文件)
- 目前常用的文件系统类型有 FAT、VFAT、NTFS、Ext2、HPFS 等
- 文件分类的目的是对不同文件进行管理,提高系统效率,提高用户界面友好性。
文件的存取方法
文件的存取方法是指读/写文件存储器上的一个物理块的方法
- 顺序存取:对文件中的信息按顺序依次进行读/写
- 随机存取:文件中的信息可以按任意的次序随机地读/写
存储空间管理
要将文件保存到外部存储器(外存或辅存)上,首先必须要知道存储空间的使用情况,即哪些物理块是被“占用”,哪些是“空闲”。特别是对大容量的磁盘存储空间被多用户共享时,用户执行程序经常要在磁盘上存储文件和删除文件,因此文件系统必须对磁盘空间进行管理。
空闲区表
将外存空间上的一个连续的未分配区域称为“空闲区”。操作系统为磁盘外存上的所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表中包含序号、空闲区的第1块号,空闲块的块数和状态等信息。它适用于连续文件结构。
空闲块链
每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置上(如管理块中),不需要磁盘分配表,节省空间。每次申请空闲物理块只需根据链表的头指针取出第1个空闲物理块,根据第一个空闲物理块的指针可找到第2个空闲物理块,依此类推。
成组链接法
UNIX 系统采用该方法。例如,在实现时系统将空闲块分成若干组,每100个空闲块为1组,每组的第1个空闲块登记了下一组空闲块的物理块号和空闲块总数。假如某个组的第1个空闲块号等于 0,意味着该组是最后一组,无下一组空闲块。
位示图方式
- 位示图是常用的空闲空间管理方法。这种方法是在外村上建立一张位示图(Bitmap),记录文件存储器的使用情况。
- 每一位对应文件存储器上的一个物理块,取值0 和 1分别表示空闲和占用。
- 例如,某文件存储器上位示图的大小为n,物理块依次编号为0,1,2...。假如计算机系统中字长为32位,那么在位示图中的第0 个字(逻辑编号)对应文件存储器上的 0,1,2...31号物理块;第一个字对应文件存储器上的32,32,34...63号物理块,依此类推。
位示图例题:
- 位示图的字号,位号均从 0 开始
- 物理块从 0 开始 ,0 - 256 刚好占用了 4个字 (256 / 64)= 4,256块应该是第 5 个字(4号字)的 0号位置
文件结构
文件的结构是指文件的组织方式
- 文件的逻辑结构:从用户角度看到的文件组织形式称为文件的逻辑结构
- 有结构的记录式文件,它是由一个以上的记录构成的文件
- 无结构的流式文件,它是由一串顺序字符流构成的文件
- 文件的物理结构:从实现的角度看,文件在文件存储器上的存放方式称为文件的物理结构
- 常见的文件物理结构包括:连续结构、链接结构、索引结构、多个物理块得索引表
- 连续结构:连续结构也称顺序结构,它将逻辑上连续的文件依次存放在连续编号的物理块上。只要知道文件的起始物理号和文件的长度,就可以很方便的进行文件的存取
- 链接结构:也称串联结构,它是将逻辑上连续的文件信息存放在不连续的物理块上,每个物理块设有一个指针指向下一个物理块。因此,只要知道文件的第1个物理块号,就可以按链指针查找整个文件
- 索引结构:在采用索引结构时,将逻辑上连续的文件信息存放在不连续的物理块中,系统为每个文件建立一张索引表。索引表记录了文件信息所在的逻辑块号对应的物理块号,并将索引表的起始地址放在与文件对应的文件目录项中。
- 多个物理块的索引表:索引表是在文件创建时由系统自动建立的,并与文件一起存放在同一文件卷上。根据一个文件大小的不同,其索引表占用物理块的个数不等,一般占一个或几个物理块。多个物理块的索引表可以有两种组织方式:链接文件和多重索引方式。
文件索引
- 直接索引: 索引结点个数 * 磁盘数据块大小
- 一级索引: 索引结点个数 * (磁盘索引块大小 / 地址项大小)* 磁盘数据块大小
- 二级索引: 索引结点个数 * (磁盘索引块大小 / 地址项大小)* 磁盘数据块大小 * (磁盘索引块大小 / 地址项大小)* 磁盘数据块大小
- 题目案例:
-
- 直接索引范围 = 索引结点个数 iaddr[0] -iaddr[5] 6个索引结点 * 磁盘数据块大小 4KB = 24KB,对应逻辑块号 0-5;
- 一级索引范围 = 1个索引结点 * ( 磁盘索引块大小 4KB / 地址项大小 4B)* 磁盘数据块大小 4KB= 4096 KB , 对应逻辑块号 6- 1029;
- 二级索引范围 = 1 * ( 磁盘索引块大小 4KB / 地址项大小 4B)*( 磁盘索引块大小 4KB / 地址项大小 4B)*磁盘数据块大小 4KB = 4194304KB ,对应逻辑块号 1030 即以上 ;
文件共享和保护
文件共享
文件共享是指不同用户进程使用同一文件,它不仅是不同用户完成同一任务所必须的功能,还可以节省大量的主存空间,减少由于文件复制而增加的访问外存次数。
- 硬链接: 文件的的硬链接是指两个文件目录表目指向同一个索引结点的链接,该链接也称基于索引结点的链接。换句话说,硬链接是指不同文件名与同一文件实体的链接。文件硬链接不利于文件主删除它拥有的文件,因为文件主要删除它拥有的共享文件,必须首先删除(关闭)所有的硬链接,否则就会造成共享该文件的用户的目录表目指针悬空。
- 符号链接: 符号链接建立新的文件或目录,并与原来文件或目录的路径名进行映射,当访问一个符号连接时,系统通过该映射找到原文件的路径,并对其进行访问。采用符号链接可以跨越文件系统,甚至可以通过计算机网络连接到世界上任何地方的机器中的文件,此时只须提供该文件所在的地址以及在该机器中的文件路径。
文件保护
文件系统对文件的保护常采用存取控制的方式进行。所谓存取控制,就是规定不同的用户对文件的访问有不同的权限,以防止文件被未经文件主同意的用户访问。
- 存取控制矩阵:理论上,存取控制的方法可用存取控制矩阵实现。
- 它是一个二维矩阵,一维列出计算机的全部用户,另一维列出系统中的全部文件。
- 通常,存取权限包括 可读R ,可写 W,可执行 X以及它们的组合。
- 读权限 (R) :4;写权限(W): 2;执行权限 (X): 1
用户/文件 |
ALPHA |
BEAT |
REPORT |
SORT |
张军 |
RWX |
—— |
R-X |
—— |
王伟 |
—— |
RWX |
R-X |
R-X |
- 存取控制表:存取控制矩阵由于太大往往无法实现。一个改进的办法是按用户对文件的访问的权力的差别对用户进行分类,由于某一文件往往只与少数几个用户有关,所以这种分类方法可使存取控制表简化。UNIX 系统就是使用了这种存取控制表方法,它把用户分成三类:文件主、同组用户和其他用户,每类用户的存取权限分为可读、可写、可执行以及它们的组合。
- 用户权限表:改进存取控制矩阵的另一种方法是以用户或用户组为单位将用户可存取的文件集中起来存入表中,这称为用户权限表。表中的每个表目表示该用户对应文件的存取权限,这相当于存取控制矩阵一行的简化。
- 密码:在创建文件时,由用户提供一个密码,在文件存入磁盘时用该密码对文件的内容加密。在进行读取操作时,要对文件进行加密,只有知道密码的用户才能读取文件。