计算机操作系统知识点汇总(第四版同步陆续更新)

第一章、操作系统引论

1.1 操作系统的目标和作用

  • 操作系统是什么?

    操作系统(Operating System OS)是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。其主要作用是管理好这些设备,提高它们的利用率和吞吐量,并未用户和应用程序提供一个简单的接口,便于用户使用。操作系统为用户完成所有“硬件相关,应用无关“的工作,以给用户方便、高效、安全的使用环境。

1.1.1 目标

  • 方便性

    配置OS后计算机系统更容易使用。

  • 有效性

    改善资源利用率,提高系统吞吐量

  • 可扩充性

    OS的结构:(如层次的变化:无结构发展——模块化结构——层次化结构——微内核结构)

  • 开放性

    OS遵循世界标准范围

1.1.2 作用

  • OS作为用户与计算机硬件系统之间的接口(API/CUI/GUI)

    即OS处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。

  • OS是计算机系统资源的管理者(处理机、存储器、I/O设备、文件)

    处理机管理是用于分配和控制处理机
    存储器管理是负责内存的分配与回收
    I/O设备管理是负责I/O设备的分配(回收)与操纵
    文件管理是用于文件的存取、共享和保护

  • OS实现了对计算机资源的抽象(OS是扩充机/虚拟机)

1.1.3 推动操作系统发展的主要动力

  • 不断提高计算机资源利用率
  • 方便用户
  • 器件的不断更新迭代
  • 计算机体系结构的不断发展
  • 不断提出新的应用需求

1.2 操作系统的发展过程

1.2.1 未配置操作系统的计算机系统(1945-1955人工操作阶段)
  • 人工操作方式:用户独占全机,资源空闲浪费,CPU等待人工操作

    缺点:
    手工装载、人工判断、手工修改与调试内存指令等造成CPU空闲;
    提前完成造成剩余预约时间内的CPU完全空闲;
    I/O设备的慢速与CPU的舒服不匹配造成的CPU空闲等待时间。

  • 脱机输入输出(Off-Line I/O)方式。

    优点:
    减少了CPU的空闲时间
    提高了I/O速度

1.2.2 单道批处理系统(20世纪50年代)

  • 单道批处理系统(Simple Batch Processing System)的处理过程

    单道批处理系统是在解决人机矛盾和CPU与I/O设备速度不匹配矛盾的过程中形成的。批处理系统旨在提高系统资源的利用率和系统的吞吐量。(但批处理系统仍不能充分利用资源,故现在已很少使用)
    分为两种处理机制:
    联机批处理:CPU直接控制作业输入/输出
    脱机批处理:由外围机控制作业输入/输出

  • 缺点

    系统资源利用率低(因为在内存中只存在一道程序,I/O请求成功前CPU都处于空闲状态)

  • 特征

    自动型:正常情况下,一批作业能自动依次执行,无需人工干预。
    顺序性:各道作业是顺序进入内存,FCFS。
    单道性:内存中任何时候只能有一道作业。

  • 单道批处理系统工作原理:
    在这里插入图片描述

1.2.3 多道批处理系统(60年代初)

  • 多道批处理系统(Multiprogrammed Batch Processing System)
  • 目的:为了进一步提高资源利用率和系统吞吐量。
  • 该系统中,用户提交的作业都先存在外存中,在作业A在执行I/O请求时,CPU空闲;此时调用作业B,防止CPU空闲。同理按照一定的算法调用作业,防止CPU空闲。
  • 推动多道批处理系统形成和发展的动力是提高资源利用率和系统吞吐量。
  • 优点

    资源利用率高(资源指CPU、存储器、设备、数据)
    系统吞吐量大(系统吞吐量指系统在单位时间完成的总工作量——作业数量)

  • 缺点

    平均周转时间长(作业的周转时间是指从作业进入系统开始,直至其完成并退出系统为止所经历的时间)
    无交互能力

  • 特点

    多道:内存同时存在多个作业
    宏观上并行:同时有多道程序在内存运行,某一时间段上,各道程序不同程度的向前推进。
    微观上串行:任一时刻最多只有一道作业占用CPU,多道程序交替使用CPU。

  • 还需解决的问题:
    • 处理机管理问题
    • 内存管理问题(内存分配和保护)
    • I/O设备管理问题
    • 文件管理问题(文件的组织和管理)
    • 作业管理问题
    • 用户与系统的接口(OS还应提供用户与OS的接口,方便用户操作)
  • 多道批处理系统工作原理:
    在这里插入图片描述

1.2.4 分时系统

  • 分时系统(Time Sharing Ssytem)

    分时系统是指在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的键盘,以交互的方式使用计算机,共享主机中的资源。

  • 推动分时系统的形成和发展的动力是用户的需要:交互、共享主机、方便上机
  • 关键问题:
    • 即时接收(多路卡和缓冲区):作业直接进入内存、不允许一个作业长期占用处理机。
    • 即时处理(划分时间片):多个用户分时使用主机,每一用户分得一个时间片,用完这个时间片后操作系统将处理机分给另一用户,如此循环,每一用户可以周期性的获得CPU的使用权,这样没一用户都一种独占CPU的感觉。
  • 特征:

    多路性:允许同一主机联接多态终端。
    独立性:每一用户独占一个终端;每个用户感觉不到其他用户的存在
    及时性:用户请求能及时响应。
    交互性:可进行广泛的人机对话。

1.2.5 实时操作系统(60年代中)

  • 实时系统(Real-Time System)

    实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一直地运行。

  • 特征:
    • 多路性:
      对实时处理系统,系统按分时原则为多个终端服务;
      对实时控制系统,系统经常对多路现场信息进行采集,以及对多个对象或多个执行机构进行控制。
    • 独立性:
      实时处理系统,每个终端用户向实时系统提出服务请求,笔试独立;
      实时控制系统,对信息的采集和对对象的控制彼此不受干扰。
    • 及时性:开始截止时间/完成截止时间
    • 交互性:仅限于访问专用服务程序
    • 可靠性:多级容错措施保障系统和数据安全

1.2.6 微机操作系统

  • 单用户单任务操作系统:CP/M(75年)、MS-DOS(81年)
  • 单用户多任务操作系统:OS/2(87年)、MS WINDOS(90年windows 3.0)
  • 多用户多任务操作系统:UNIX(70年)

1.2.7 多处理机操作系统

1.2.8 网络操作系统

1.2.9 分布式操作系统

1.3 操作系统的基本特性

1.3.1 并发性

  • 并发是指在内部中放多道作业,在一个时间段上来看,每一道作业都能不同程度地向前推进。但在任一个时间点上只能有一道占用CPU
  • 两个概念:

    串行:在内存中每次只能放一道作业,只有它完全执行完后,别的作业才能进入内存执行。
    并行:存在于有多个CPU的环境中,在内存中放多道作业,在任一时间点上都可能有多道作业在不同的CPU上同时执行。

1.3.2 共享性

  • 系统中的资源可供多个并发的进程共同使用。
  • 根据资源属性的不同,有两种资源共享方式。

    互斥共享性(临界/独资源)
    同时访问方式

  • 并发和共享是OS的两个最基本特性,二者互为条件!!!

1.3.3 虚拟性

  • 通过某种技术将一个物理实体映射为若干个逻辑上对应物

    如CPU;一个屏幕可看成多个屏幕-窗口;或将多个物理实体映射为一个逻辑实体(如虚拟存储时内部和外存的虚拟)

  • 虚拟是操作系统管理系统资源的重要手段,课提高资源利用率。
    • CPU——多道程序设计技术/每个用户(进程)的“虚拟处理机”;
    • 存储器——每个进程都占有的地址空间(指令+数据+堆栈);
    • I/O设备——打印机、多窗口或虚拟终端。

1.3.4 异步性

  • 不确定性:什么时候开始、执行多久时间、终止时间。

1.4 操作系统的主要功能

1.4.1 处理机管理功能

  • 进程控制、进程同步、进程通信、调度(作业调度和进程调度)

1.4.2 存储器管理功能

  • 内存分配、内存保护、存储扩充、地址映射

1.4.3 设备管理功能

  • 缓冲管理、设备分配、设备处理

1.4.4 文件管理功能

  • 文件存储空间的管理、目录管理、文件的读/写管理和保护

1.4.5 操作系统与用户之间的接口

  • 命令接口、程序接口、图形接口

1.4.6 现代OS的新功能

  • 系统安全:为保障数据的保密性、完整性和可用性,常使用的技术:技术认证、密码认证、访问控制认证、反病毒技术
  • 网络功能和服务:网络通信、资源管理、应用互操作
  • 支持多媒体

1.5 OS结构设计

  • 传统结构的OS
    • 无结构OS
    • 模块化OS结构
    • 分层式结构OS结构
  • 微内核结构的OS称为现代结构的OS

第二章、进程的描述与控制

2.1 前趋图和程序执行

2.1.2 前趋图(Precedence Graph)

  • 前趋图是为了描述为了能更好的地描述程序的顺序和并发执行情况或一个程序的各部分间的依赖关系,或者是一个大的计算的各个子任务间的因果关系的图示。
    在这里插入图片描述

2.1.2 程序顺序执行

  • 程序的顺序执行

    顺序执行是程序的一种执行方式。是把一个具有独立功能的程序独占处理机直至最终结束的过程称为程序的顺序执行。

  • 程序顺序执行时的特征
    • 顺序性
      程序顺序执行时,其执行过程可看作一系列严格按程序规定的状态转移过程,也即是每执行一条指令,系统将从上一个执行状态转移到下一个执行状态,且上一条指令的执行结束是下一条指令执行开始的充分必要条件。
    • 封闭性
      程序执行得到的最终结果由给定的初始条件决定,不受外界因素的影响。
    • 可再现性
      顺序执行的最终结果可再现是说他与执行速度无关。只要输入的初始条件相同,则无论何时重复执行该程序都会得到相同的结果。

2.1.3 程序并发执行

  • 程序的并发执行
    • 程序顺序执行时,虽然可以给程序员带来方便,但是系统资源利用率却很低。
    • 为此我们引入了多道程序技术,使程序或程序段之间可以并发执行。
    • 一组在逻辑上互相独立的程序或程序段在执行过程中,其执行时间在客观上互相重叠,即一个程序段的执行尚未结束,另一个程序段的执行已经开始的这种执行方式。
  • 特征:
    • 间断性
    • 失去封闭性
    • 不可再现性

2.2 进程的描述

2.2.1 进程的定义和特征

  • 定义(典型)
    • 程序的一次执行
    • 进程是一个程序及其数据在处理机上顺序执行时所发生的的活动。
    • 具有一定功能的程序在某个数据集合上的一次活动。
    • 进程是一个程序与其数据一道通过处理机的执行所发生的活动。
    • 进程是具有独立功能的程序在一个数据集上运行的过程,是系统进行资源分配和调度的一个独立单位
    • 程序的执行过程,从开始到结束。
      进程实体(简称进程):程序段、相关的数据段、进程控制块PCB(Process Control Block)。
  • 特征:
    • 结构性:由程序段、数据段、进程控制块(PCB)三部分组成。
    • 动态性:进程是程序的执行过程。
    • 并发性:多个进程可同时存在于内存中,能在一段时间内同时(交替)运行。
    • 独立性:独立运行的基本单位,独立获得资源和调度的基本单位。
    • 异步性:各进程按各自独立的不可预知的速度向前推进。
  • 进程与程序的区别:
    • 程序是指令的有序集合,其本身没有任何运行的意义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。程序是静态的,进程是动态的。
    • 程序可作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。
    • 进程更能真实的描述并发,而程序不能。
    • 进程是由程序段、数据段和进程控制块PCB三部分组成。
    • 进程具有创建其他进程的功能,而程序没有。
    • 同一程序同时运行在若干个数据集合上,它将属于若干个不同的进程。也就是说同一程序可以包含多个进程。

2.2.2 进程的3种基本状态及转换

  • 就绪状态(Ready R态):

    存在于处理机调度队列中的所有进程,他们已经准备就绪,一旦得到CPU,就立即可以运行。这些进程所处的状态就是就绪状态。

    • 就绪队列:
      处于就绪状态的进程按一定策略排队,同一时刻可有多个就绪队列。
  • 运行状态(Running E态):

    正在运行的进程所处的状态为运行状态。

  • 等待/阻塞/睡眠状态(Wait/Blocked B态):

    若一进程正在等待某一事件发生(如等待输入输出工作完成),这时,即使给他CPU,它也无法运行,称该进程处于等待状态(阻塞、睡眠、封锁状态)。

    • 阻塞队列:
      根据阻塞队列可以设置多个队列。
  • 进程的三态变迁图:
    在这里插入图片描述

2.2.3 进程的5种状态及转换

  • 五态模型:

    对于一个实际的系统,进程的状态及其转换更为复杂。引入新建态和终止态构成了进程的五态模型。

  • 新建态:

    对应于进程刚刚被创建时没有被提交的状态,并等待系统完成创建进程的所有必要信息。 进程正在创建过程中,还不能运行。操作系统在创建状态要进行的工作包括分配建立进程控制块表项建立资源表格(如打开文件表)并分配资源加载程序并建立地址空间表等。
    创建进程时分为两个阶段,第一个阶段为一个新进程创建必要的管理信息,第二个阶段让该进程进入就绪状态。由于有了新建态,操作系统往往可以根据系统的性能和主存容量的限制推迟新建态进程的提交。

  • 终止态:

    进程已结束运行,回收除进程控制块之外的其他资源,并让其他进程从进程控制块中收集有关信息(如记帐和将退出代码传递给父进程)。类似的,进程的终止也可分为两个阶段,第一个阶段等待操作系统进行善后处理,第二个阶段释放主存。

  • 进程的五态模型: 在这里插入图片描述

  • 思考题(理解上述模型结构):

    如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个最少几个;等待进程最多几个,最少几个?

    运行:1 0
    就绪:N-1 0
    等待:N 0

2.2.4 进程管理中的数据结构

  • 进程控制块PCB

    为了便于系统描述和管理进程运行,在OS结构的核心中为每个进程专门定义了一个数据结构——进程控制块PCB(Process Control Block)。
    PCB作为进程实体的一部分,记录了操作系统所需的,用于描述进程的当前情况以及管理进程运行的全部信息,是操作系统中最重要的记录型数据结构

  • PCB是OS感知进程存在的唯一标志
  • 进程与PCB是一一对应的。
  • PCB随进程创建而创建,随进程结束而结束。
  • PCB应常驻内存中。
  • 作用:

    将一个不能独立运行的程序,变成一个可以独立运行的基本单位,变成一个能与其他进程并发执行的进程。

  • 进程描述信息:
    • 进程标识符(process ID):唯一,通常是一个整数。
    • 进程名:通常基于可执行文件名(不唯一)。
    • 用户标识符(user ID):进程组关系。

2.3 进程控制

2.3.1 操作系统内核

2.3.2 进程的创建

2.3.3 进程的终止

2.3.4 进程的阻塞与唤醒

2.3.5 进程的挂起与激活

2.4 进程同步

2.4.1 进程同步的基本概念

  • 两种形式的制约关系:

    间接相互制约关系:系统资源竞争,进程间彼此无关。
    直接相互制约关系:进程间合作,彼此无关。

  • 临界资源(Critical Resource)

    一次只允许一个进程访问的资源。

  • 临界区(Critical Section)

    临界段,在每个程序中,访问临界资源的那段程序段就是临界区。

    不论是硬件临界资源还是软件临界资源,多个进程必须互斥地对它进行访问
    我们把每个进程中访问临界资源的那段代码称为临界区。

  • 注意:临界区是对某一临界资源而言的,对于不同临界资源的临界区,他们之间不存在互斥。

  • eg:如程序段A、B有关于变量X的临界区,而C、D有关于变量Y的临界区,那么,A、B之间需要互斥执行,C、D之间需要互斥执行;而A与C和B与D之间没有互斥而言。
  • 同步机制应遵循的规则:
    • 空闲等待
    • 忙则等待
    • 有限等待(有限时间等待,以免“死等”)
    • 让权等待(不能进入自己的临界区时,应及时释放处理机,以免进程陷入“忙等”)

2.4.3 信号量机制

  • 整型信号量:定义为一个整型量,由两个标准原子操作wait(S)(P操作)和signal(S)(V操作)来访问。
  • P(S) 或 wait(S):
    while S≤0 do no-op;
    S:=S-1;
    
  • V(S) 或 signal(S):
    S:=S+1;
    
  • 两种操作皆为原语操作。

2.5 经典进程的同步问题

进程同步练习题:

思考题:

  • 1、桌上有一空盘,最多允许存放一只水果。爸爸可向盘中放一个苹果或放一个桔子,儿子专等吃盘中的桔子,女儿专等吃苹果。
    试用P、V操作实现爸爸、儿子、女儿三个并发进程的同步。

    提示:设置三个信号量分别表示可否向盘中放水果、可否取桔子、可否取苹果。

    解:
    设置三个信号量S,So,Sa 。
    S:表示可否向盘中放水果,初值为1。
    So:表示可否取桔子,初值为0。
    Sa:表示可否取苹果,初值为0

    在这里插入图片描述

  • 2、有一个仓库,可以存放A和B两种产品。存储空间充分大,但要求:
    (1) 每次只能存入一种产品(A或B)
    (2) -N<A产品数量-B产品数量<M。
    其中,N和M是正整数。试用P、V操作描述产品A与B的入库过程。

    提示:设两个信号量Sa、Sb
    Sa:表示允许A产品比B产品入库的数量多
    Sb:表示允许B产品比A产品入库的数量多

     解:
      设:互斥信号量mutex,初值为1。
      Sa:表示允许A产品比B产品多入库的数量,初值为M-1; 即B的数量为0,A最多为M-1
      Sb:表示允许B产品比A产品多入库的数量,初值为N-1;即A的数量为0,B最多为N-1
    

    在这里插入图片描述

  • 3、问题描述:假定阅览室最多容纳100人阅读,读者进入时,必须在门口的登记表上登记,内容包括:姓名、座号等;离开时要撤销登记内容。用P、V操作描述读者进程的同步算法。
    在这里插入图片描述

  • 4、问题描述:设公共汽车上,司机和售票员的活动分别为:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.6 进程通信

  • 所谓进程通信是指进程之间信息交换。
  • 高级通信:用户可直接利用OS提供的一组通信命令高效传送大量数据。
  • 分为如下两种:

    共享存储器系统(Shared-Memory System):进程间通过共享某些数据结构或共享存储区进行通信。
    消息传递系统(Message Passing System):

    • 直接通信:发送进程直接把消息发送给接收者,并将它挂在接收进程的消息缓冲队列中。接收进程从消息缓冲队列中取得消息。也称为消息缓冲通信。
    • 间接通信:发送进程将消息发送到某种中间实体中(信箱),接收进程从(信箱)中取得消息。也称信箱通信,在网络中称为电子邮件系统。
  • 思考:直接通信与间接通信方式的主要区别?
    • 直接通信需要两种进程同时都存在。
    • 间接通信不需要两种通信同时存在。
  • 管道(Pipe)通信(共享文件方式)

2.7 线程(Threads)的基本概念

  • 线程:是进程中的一个实体,是被系统独立调度的基本单位。

2.7.1 线程的引入

  • 引入进程的目的是为了使多个程序更好的并发执行,改善资源利用率、提高系统效率。
  • 引入线程则是为了减少并发执行时所付出的时空开销,使并发粒度更细、并发性更好。

2.7.2 进程的两个基本属性

  • 进程是一个资源分配的基本单位。
  • 进程是一个可独立调度和分派的基本单位。

2.7.3 引入线程的好处

  • 创建一个新线程花费时间少
  • 线程的终止时间比进程
  • 同进程内的线程切换时间比进程短
  • 因为同一进程内的线程共享内存和文件,因此它们之间相互通信无需调用内核
  • 适合多处理机系统

2.7.4 线程的属性

  • 轻型实体:基本不拥有资源
  • 独立调度的基本单位
  • 可以并发执行
  • 共享进程资源
线程:进程描述
1:1(DOS)每个线程的执行就是一个进程
n:1(VxWorks)每个进程定义一个地址空间并动态拥有资源;同一个进程可产生多个线程运行
1:n(Unix/Linux)一个线程可以在多个进程间转移
n:n(WinNT/2k)包含n:1和1:n的性质

2.8 线程的实现

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一宿君

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

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

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

打赏作者

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

抵扣说明:

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

余额充值