Advertisement

操作系统总结

阅读量:

文章目录

  • 一、第一章操作系统引论

    • 1.操作系统的目标和作用
    • 2.操作系统的发展过程
    • 3.操作系统的基本特性
    • 4.操作系统的主要功能
    • 5.操作系统的环境
    • 6.微内核OS结构
  • 二、进程的描述与控制

    • 1.前驱图和程序执行

    • 2.进程的描述

      • 挂起操作和进程状态的转换
      • 进程控制块(PCB)
    • 3.进程控制

    • 4.进程同步

      • 经典同步问题-生产者-消费者问题
    • 5.进程通信

    • 6.线程的基本概念

    • 7.线程的实现方式

  • 第三章 处理机调度与死锁

  • 第四章 存储器管理

  • 第五章 虚拟存储器

  • 第六章 输入输出系统

  • 第七章 文件管理

    • 文件和文件系统
  • 第八章 磁盘存储器的管理

    • 外存的组织方式

    • 文件存储空间的管理

      • 成组链接法
    • 提高I/O速度的途径

    • 提高磁盘可靠性技术

    • 数据一致性控制

一、第一章操作系统引论

在这里插入图片描述

1.操作系统的目标和作用

  • 操作系统的目的:
    (1)方便性
    (2)有效性
    (3)可扩充性
    (4)开放性
  • 操作系统的作用:
    (1)OS作为用户与计算机硬件系统之间的接口
    (2)OS作为计算机系统资源的管理者
    (3)OS实现了对计算机资源的抽象

2.操作系统的发展过程

  • 未配置操作系统的计算机系统
    (1)人工操作方式
    (2)脱机输入/输出方式
  • 单道批处理系统
  • 多道批处理系统
    (1)特征:多道、宏观上并行、微观上串行
  • 分时系统
    (1)特征:多路性、独立性、及时性、交互性
  • 实时系统
    (1)实时系统的类型
    A.工业武器控制系统
    B.信息查询系统(订票等)
    C.多媒体系统
    D.嵌入式系统
    (2)实时系统最主要的特征便是及时性与可靠性
  • 微机操作系统的发展
    按照方式分为以下几类:
    (1)单用户单任务操作系统
    (2)单用户多任务操作系统
    (3)多用户多任务操作系统

3.操作系统的基本特性

  • (1)并发
  • 区分并行和并发:并行性是指两个或者多个事件在同一时刻发生;并发性是指两个或者多个事件在同一时间间隔内发生
  • (2)共享
  • 目前实现资源共享的主要方式:互斥共享方式和同时访问方式
  • (3)虚拟
  • (4)异步
  • 并发和共享是多用户(多任务)OS两个最基本的特征

4.操作系统的主要功能

  • 处理机管理功能
    对处理机的管理可以归结未对进程的管理。处理机的管理的主要功能有:
  • (1)进程控制
  • (2)进程同步
  • (3)进程通信
  • (4)调度
  • 存储器管理功能
  • (1)内存分配
  • (2)内存保护
  • (3)地址映射
  • (4)内存扩充
  • 设备管理功能
  • (1)缓冲管理
  • (2)设备分配
  • (3)设备处理
  • 文件管理功能
  • (1)文件存储空间的管理
  • (2)目录管理
  • (3)文件的读/写管理和保护
  • 操作系统与用户之间的接口
  • (1)用户接口
    用户接口进一步分为联机用户接口、脱机用户接口和图形用户接口三种
  • (2)程序接口
    程序接口是由一组系统调用组成的,每一个系统调用都是一个能够完成特定功能的子程序
  • 系统调用
  • (1)系统调用又被称为广义指令
  • (2)系统调用的相关处理都是在核心态下进行
  • (3)系统调用按功能分类为:设备管理、文件管理、进程控制、进程通信、内存管理

5.操作系统的环境

  • 内核态和用户态
  • (1)操作系统的内核是计算机上配置的底层软件,是操作系统最基本、最核心的部分
  • (2)操作系统的内核的核心功能包括时钟管理、中断处理、原语、进程管理、存储器管理、设备管理
  • (3)用户态也叫做目态,核心态也叫管态
  • 操作系统的指令分为特权指令和非特权指令
  • (1)特权指令是只能由操作系统才能执行的指令,如I/O指令,内存清零指令,只能在核心态下执行
  • (2)非特权指令是用户可以去执行的指令,在用户态下执行
  • 中断与异常
  • (1)中断分为内中断和外中断。其中,内中断信号的来源是CPU内部,与当前执行指令有关;外中断信号的来源是CPU 外部,与当前执行指令无关
  • (2)内中断也称为异常或者陷入
  • (3)外中断就是侠义的中断
  • (4)中断可以使CPU从用户态切换为核心态

6.微内核OS结构

  • (1)基本概念
    微内核并非是一个完整的OS,而只是将操作系统中最基本的部分放入微内核,微内核通常包含以下几部分:
  • A.与硬件处理紧密相关的部分
  • B.一些较基本的功能
  • C.客户和服务器之间的通信
  • (2)微内核的基本功能
  • A.进程(线程)管理
  • B.低级存储器管理
  • C.中断和陷入处理
  • (3)微内核操作系统的优点
  • A.提高了操作系统的可拓展性
  • B.增强了系统的可靠性
  • C.可移植性强
  • D.提供了对分布式系统的支持
  • E.融入了面向对象技术
  • (4)微内核操作系统存在的问题
    较之前的OS,微内核OS的效率有所降低

二、进程的描述与控制

在这里插入图片描述

1.前驱图和程序执行

  • 前驱图定义:一个有向无循环图,记作DAG,用于描述进程之间执行的先后顺序
    在这里插入图片描述
  • 程序的执行
  • (1)程序顺序执行的特征
    A.顺序性
    B.封闭性
    C.可再现性
  • (2)程序并发执行时的特征
    A.间断性
    B.失去封闭性
    C.不可再现性

2.进程的描述

  • 进程的定义和特征
  • (1)进程的定义
    A.进程是程序的一次执行
    B.进程是一个程序及其数据在处理机上顺序执行时所发生的活动
    C.进程是具有独立功能的程序在一个数据集合上的过程,它是系统进行资源分配和调度的一个独立单位
  • (2)进程的特征
    A.动态性(动态性是进程的最基本的特征)
    B.并发性
    C.独立性
    D.异步性
  • (3)进程实体
    通常,进程实体由进程控制块(PCB),程序段,数据段三部分组成
  • 进程的状态及转换
    (1)进程有三种基本状态:就绪状态、执行状态、阻塞(等待)状态
    在这里插入图片描述
  • (2)引入进程的创建状态和终止状态后,就变成5种状态
    在这里插入图片描述

挂起操作和进程状态的转换

  • (1)当挂起操作作用于某一个进程时,该进程将被挂起,意味着此时该进程处于静止状态。如果进程正在执行,它将暂时执行。若原本就处于就绪状态,则该进程此时暂时不接受调度。与挂起操作对应的操作是激活操作。
  • (2)引入挂起原语操作后三个进程状态的转换:
    A.活动就绪–>静止就绪
    B.活动阻塞–>静止阻塞
    C.静止就绪–>活动就绪
    D.静止阻塞–>活动阻塞
  • (3)引入挂起操作后五个进程状态的转换
    在这里插入图片描述

进程控制块(PCB)

  • (1)概念:PCB是一记录型数据结构,它作为进程实体的一部分,记录了操作系统所需的、用于描述进程的当前情况以及管理进程的全部信息。
  • (2)进程控制块中的信息
处理机状态 进程调度信息 进程控制信息
通用寄存器 进程状态 程序和数据的地址
指令计数器 进程优先级 进程同步和通信机制
程序状态字 进程调度所需的其他信息 资源清单
用户栈指针 事件 链接指针
  • (3)进程控制块的组织方式
    A.线性方式
    B.链接方式
    C.索引方式

3.进程控制

  • 进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已完成的进程、将因发生异常情况而无法继续的进程置于阻塞状态、负责进程中的状态转换等功能

4.进程同步

  • 进程同步的基本概念
  • (1)进程同步机制的主要任务
    对于国歌相关进程在执行次序上进行协调,使并发执行的进程之间能够按照一定的规则(或时序)共享系统资源,并能够很好地相互合作,从而使程序的执行具有可再现性
  • (2)临界资源
    一次仅允许一个进程使用的资源被称为临界资源
  • (3)临界区
    将在每一个进程中访问临界资源的那段代码称为临界区
  • (4)同步机制应遵循的规则
    A.空闲让进
    B.忙则等待
    C.有限等待
    D.让权等待
  • 硬件同步机制
  • (1)关中断
  • (2)利用Test-and-Set 指令实现互斥
  • (3)利用Swap指令实现进程互斥
  • 信号量机制
  • (1)整型信号量
  • 定义:把整型信号量定义为一个用于表示资源数目的整型量S
  • 描述:通过两个标准的原子操作wait(S) 和signal(S)来访问S,两个操作一直被分别称为P,V操作。wait和signal 操作可描述如下:
复制代码
    wait(S)
    {
    	while(S<=0);     /*do no-op*/
    	S--;
    }
    
    signal(S)
    {
    	S++;
    }
    
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-15/lVytKmNdXPUH56crQMBf9JGjqxIo.png)
  • (2)记录型信号量
    定义:记录型信号量机制采用了记录型的数据结构,是一种不存在“忙等”现象的进程同步机制
复制代码
    typedef struct
    {
    	int value; //代表资源数目的整型变量
    	struct process_control_block *list;
    }semaphore;
    
    wait(S) 和 signal(S)操作可描述如下:
    wait(semaphore *S)
    {
    	S-value--;
    	if(S->value<0)
    		block(S->list);
    }
    
    signal(semaphore *S)
    {
    	S->value++;
    	if(S->value<=0)
    		wakeup(S->list);
    }
    
    
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-15/2Ow01AnPhi6Gu5zSlvax3YLRDTgm.png)

经典同步问题-生产者-消费者问题

  • 问题描述:一组生产者进程和一组消费者进程共享一个初始为空、大小为n 个单元的缓冲区。只有当缓冲区没满时,生产者才可以把消息放进缓冲区,否则必须等待;只有当缓冲区不空时,消费者才可以从中取出消息,否则必须等待。由于缓冲区是临界资源,只允许一个生产者放入信息或者一个消费者从中取出信息,不允许同时访问缓冲区。
  • 信号量设置:定义信号量mutex 为互斥信号量,初值为1,用于表示互斥访问缓冲区;信号量empty用于表示当前缓冲区可用空间的大小,初值为n;信号量full 用于表示当前缓冲区中已用空间大小,初值为0.

程序描述:

复制代码
    semaphore mutex = 1 ;
    semaphore empty = n ;
    semaphore full = 0;
    producer()
    { //生产者进程
    	while(True)
    	{
    		//生产一个消息
    		p(empty); //申请缓冲区的一个空单元
    		p(mutex); //申请访问缓冲区
    		//将信息存入缓冲区
    		v(mutex); //释放互斥信号量
    		v(full); //缓冲区中满单元数加一
    		}
    }
    
    consumer()
    {
    	//消费者进程
    	while(true)
    	{
    		p(full); //申请从缓冲区中的满单元取出消息
    		p(mutex); //申请访问缓冲区
    		//将消息取出缓冲区
    		v(mutex); //释放互斥信号量
    		v(empty); //缓冲区中空单元数加一
    	}
    }
    
    
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-15/I1yXZNnE4M7tz3ADJ0TdfaPe9qxg.png)
  • 管程机制
  • (1)一个管程定义了一个数据结构和能为并发进程所执行(在该数据结构上)的一组操作,这组操作能同步进程哈改变管程中的数据。
  • (2)组成
    A.管程的名称
    B.局部于管程的共享数据结构说明
    C.对该数据结构进行操作的一组过程
    D.对局部于管程的共享数据设置初始值的语句

5.进程通信

  • 进程通信的概念
    A.定义:进程通信是指进程之间的信息交换
    B.进程通信的分类:高级进程通信和低级进程通信
  • 高级进程通信的类型
  • (1)共享存储器系统
    A.基于共享数据结构的通信方式
    B.基于共享存储区的通信方式
  • (2)管道通信系统
  • (3)消息传递系统
    A.直接通信方式
    B.间接通信方式
  • (4)客户机-服务器系统

6.线程的基本概念

  • 线程的引入
  • (1)进程的两个基本属性
    A.进程是一个可拥有资源的独立单位
    B.进程同时又是一个可独立和分派的基本单位
  • (2)线程引入原因:减少程序并发执行所需的时空开销,使操作系统具有更好的并发性
  • 线程与进程的比较
  • (1)调度的基本单位
    A.在传统的OS中,进程是作为独立调度和分派的基本单位,因而进程是能独立的基本单位
    B.在引入线程的OS中,已经把线程作为调度和分配的基本单位,因而线程是能独立的基本单位
  • (2)并发性
    不同的进程之间、在一个进程中的多个线程之间或者不同的进程中的线程之间都能并发执行
  • (3)拥有资源
    A.进程是系统中拥有资源的基本单位
    B.线程本身并不拥有系统资源,而是仅有一点必不可少的、能保证独立的资源
  • (4)独立性
    在同一进程的不同的线程之间的独立性要比不同进程之间的独立性低得多
  • (5)系统开销
    A.创建或撤销进程时所付出的开销明显大于线程创建或撤销时所付出的开销
    B.线程的切换代价也远低于进程的切换代价
  • 线程的状态和线程控制块
  • (1)线程的三个状态:执行状态、就绪状态、阻塞状态
  • (2)线程控制块TCB
  • 线程控制块通常有这样几项信息:
    A.线程标识符
    B.一组寄存器
    C.线程状态
    D.优先级
    E.线程专有存储区
    F.信号屏蔽
    G.堆栈指针
    在多线程OS中,线程作为独立(或称调度)的基本单位;而进程仍是资源分配的基本单位

7.线程的实现方式

  • (1)内核支持线程KST
  • (2)用户级线程ULT
  • (3)组合方式
    在这里插入图片描述

第三章 处理机调度与死锁

在这里插入图片描述

第四章 存储器管理

在这里插入图片描述

第五章 虚拟存储器

在这里插入图片描述

第六章 输入输出系统

在这里插入图片描述

第七章 文件管理

在这里插入图片描述

文件和文件系统

  • 数据项、记录、文件
  • 数据项:在文件系统中,数据项是最低级的数据组织方式
    (1)基本数据项:描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,又称为字段。
    基本数据项除了数据名,还有数据类型
    (2)组合数据项:由若干个基本数据项组成,简称组项
  • 记录
    (1)记录是一组相关数据项的集合,用于描述一个对象在某方面的属性
    (2)一个记录包含哪些数据项,取决于需要描述对象的哪个方面/
    (3)为了能够唯一标识一个记录,必须在一个记录的各个数据项中确定一个或几个数据项,把它们的集合称为关键字(key)
  • 文件
    (1)文件是指由创建者所定义的、具有文件名的一组相关元素的集合,可分为结构文件和无结构文件。
    (2)有结构文件中,文件由若干个相关记录组成;无结构文件则被看成一个字符流
    (3)文件在问价系统中是一个最大的数据结构单位,它描述了一个对象集。
    (4)文件属性包括:
    A.文件类型。可以从不同的角度来规定问价的类型,如源文件、目标文件以及可执行文件
    B.文件长度。文件长度指文件的当前长度,长度的单位可以是字节、字或块,也可以是最大可执行的长度。
    C.问价的物理位置。该项属性通常用于指示文件所在的设备以及所在设备中地址的指针。
    D.文件的建立时间。这里指最后一次的修改时间。
  • 文件名和类型
  • 文件名和拓展名:
    (1)文件名:不同的系统,对于文件名的规定是不同的。
    (2)拓展名:拓展名是添加在文件名后面的若干个附加字符,又称为后缀名,用于指示文件的类型。
  • 文件类型:
    (1)按用途分类:
    A.系统文件:指由系统软件构成的文件。大多数系统文件只允许用户调用,但不允许用户去读,更不允许修改;有的系统文件不直接对用户开放。
    B.用户文件,指由用户的源代码、目标文件、可执行文件或数据等构成的文件。
    C.库文件,这时由标准子例程及常用的例程等构成的文件。这类文件允许用户调用,但是不允许修改。
    (2)按文件中数据的形式分类
    A.源文件,这是指由源程序和数据构成的文件。
    B.目标文件,这是指将源程序经过编译程序编译过,但尚未经过链接程序链接的目标代码所构成的文件。目标文件所使用的后缀名是“.obj”
    C.可执行文件,这是指把编译后所产生的目标代码经过链接程序链接后所形成的文件。其后缀名是“.exe”
    (3)按存取控制属性分类(根据系统管理员或用户所规定的存取控制属性)
    A.可执行文件,该类文件只允许被批准被核准的用户调用执行,不允许读和写。
    B.只读文件,该类文件只允许文件主及被核准的用户去读,不允许写
    C.读写文件,这是指允许文件主和被核准的用户去读或写的文件。
    (4)按组织形式和处理方式分类
    A.普通文件,是由ASCII码或二进制码组成的字符文件
    B.目录文件,是由文件目录组成的文件
    C.特殊文件,特指系统中的各类I/O设备
  • 文件系统的层次结构:文件系统的模型可分为三个层次,最底层是对象以及属性,中间层是对对象进行操纵和管理的软件集合,最高层是文件系统提供给用户的接口
在这里插入图片描述
  • 对象及其属性:
    文件管理系统管理的对象如下:
    (1)文件。在文件系统中有各式各样不同类型的文件,它们作为文件管理的直接对象
    (2)目录。为了方便用户对文件的存取和检索,在文件系统中必须配置目录,在目录的每一个目录项中,必须包含文件名,对文件属性的说明,以及该文件所在的物理地址(或指针)。
    (3)磁盘(磁带)存储空间。文件和目录必定占用存储空间,对这部分空间的有效管理,不仅能提高外存的利用率,而且能够提高对文件的存取速度。
  • 对对象操纵和管理的软件集合
    该层是文件管理系统的核心部分,文件系统的功能大多是在这一层实现的,其中包含:(通常采用层次组织结构)
    (1)对文件存储空间的管理
    (2)对文件目录的管理
    (3)用于将文件的逻辑地址转换成物理地址的机制
    (4)对文件读和写的管理
    (5)对文件的共享与保护等功能。
    与文件系统有关的软件分为四个层次
    (1)I/O 控制层,是文件系统二等最底层,主要是磁盘驱动程序组成,也可以称为设备驱动程序层
    (2)基本文件系统层,主要用于处理内存与磁盘之间数据块的交换
    (3)基本I/O 管理程序,该层用于完成与磁盘磁盘I/O有关的事务
    (4)逻辑文件系统,用于处理与记录和文件相关的操作
  • 文件系统的接口:
    (1)命令接口,是指作为用户与文件系统直接交互的接口,用户可以通过键盘终端输入命令取得文件系统的服务
    (2)程序接口,是指作为用户程序与文件系统的接口,用户程序可通过系统调用取得文件系统的服务
  • 文件操作
    用户通过文件系统提供的系统调用实施对文件的操作,它对文件施加的主要操作如下:
    (1)最基本的文件操作
    创建文件、删除文件、读文件、写文件、截断文件、设置文件的读/写位置
    (2)文件的打开和关闭操作:
    (3)其他文件操作
    A.对文件属性进行操作,即允许用户直接设置和获取文件的属性
    B.对文件目录进行操作,如创建目录
    C.用于实现文件共享的系统调用和用于对文件系统进行操作的系统调用等

为什么在大多数OS中都引入“打开”这一文件系统调用?打开的含意是什么?

  • (1)当用户要求对一个文件实施多次读,写或其他操作时,每一次都要从检索目录开始。为了避免多次重复检索目录,在大多数OS中都引入“打开”这一文件系统调用,当用户第一次请求对某文件进行操作时,须先利用open系统调用将该文件打开
    (2)“打开”的含义
    A.“打开”是指系统将指名文件的属性(包括该文件在外存上的物理地址),从外存拷贝到内存打开文件表的一个表目中,并将该表目的编号(或称为索引号)返回给用户。
    B.“打开”是在用户和指定文件之间建立起一个连接。此后,用户可通过该连接直接得到文件信息,从而避免了再次通过目录检索文件,即当用户再次向系统发出文件操作请求时,系统根据用户提供的索引号可以直接在打开文件表中查找文件信息

何谓文件的逻辑结构?何谓文件的物理结构?

  • (1)文件的逻辑结构是从哦用户观点出发所观察到的文件组织形式,即文件是由一系列的逻辑记录组成的,是用户可以直接处理的数据及其结构,它独立于文件的物理特性,又称为文件组织。
    (2)文件的物理结构又称为文件的储存结构,这是指系统将文件存储在外存上所形成的一种存储组织形式,是用户不能看见的。文件的物理结构不仅与存储介质的存储性能有关,而且与所采用的外存分配方式有关。无论是文件的逻辑结构,还是其物理结构,都会影响对文件的检索 速度。

按照文件的组织方式可将文件分为哪几种类型?

  • 根据文件的组织方式,可把有结构的文件分为顺序文件,索引文件,索引顺序文件三类

如何提高对变长记录顺序文件的检索速度?

  • (1)为变长记录文件建立一个索引表,对主文件中的每个记录,在索引表中设有一个相应的表项,用于记录该记录的长度L及指向该记录的指针(指向该记录在逻辑地址空间的首址)。由于索引表是按记录键排序的,因此,索引表本身是一个定长记录的顺序文件,从而也就可以方便地实现存储。

第八章 磁盘存储器的管理

在这里插入图片描述

外存的组织方式

文件存储空间的管理

成组链接法

参考博主的讲解
在这里插入图片描述

  • 以这个图片为例子:
    空闲盘块号栈:用来存储一组空闲盘块号(最多含100个号),以及栈中当前尚有的空闲盘块号数目N,栈底是S.free(0),栈顶是S.free(99)
    最前面的栈被称为超级栈
  • 空闲盘块的分配:
    在这里插入图片描述
    开始的空间如上,当需要分配空间给文件的时候,会从栈中出栈,例如将盘块号4给文件同时N-1,如果空间还是不够,那么继续将盘块号3给空间,N-1,如果还是不够,那么就将盘块号2分配给文件,同时将空闲栈2的信息复制给超级栈,此时超级栈N=2,分别指向5和6
    在这里插入图片描述
  • 空闲盘块的分配:对于超级栈,直接分配空间,N-1,栈顶的指针断开,继续指向最后的元素;当N=1,并分配完空间之后,将栈顶指向的空间(相同的空闲盘块栈,复制到超级栈,同时存储当前的空闲盘块栈)
  • 空闲盘块的回收:直接N+1,同时多一个指向新回收的盘块;当空闲盘块达到100,那就将此时的超级栈的信息分配给一个新的栈,同时超级栈的N=1,指向新分配的栈
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

例子:
在这里插入图片描述

  • 对于空闲盘块的计算?每一个空闲盘块的栈的N 相加最后再减1
  • 分配的方向,从下到上,从左向右重复进行
  • 回收空间的方向和分配的方向相反

提高I/O速度的途径

提高磁盘可靠性技术

数据一致性控制

全部评论 (0)

还没有任何评论哟~