操作系统基础_1/2

一. 概述

1. 操作系统的概念、功能和目标

1.1 操作系统的概念

操作系统是指控制和管理整个计算机的软件和硬件资源,并合理地组织调度计算机的工作和资源的分配,提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件。
在这里插入图片描述

1.2 操作的功能

1.2.1 作为系统资源的管理者
提供的功能
  1. 处理机管理
  2. 存储器管理
  3. 文件管理
  4. 设备管理
操作系统的目标

高效、安全

1.2.2 作为用户和计算机硬件之间的接口
提供的功能
  1. 命令接口
    联机命令接口:用户说一句,系统做一句
    非联机命令接口:用户说一堆,系统做一堆
  2. 程序接口:由一组系统调用组成
  3. 图形用户界面
操作系统的目标

方便用户使用

1.2.3 作为最接近硬件的层次
提供的功能和目标

实现对硬件机器的拓展(逻辑 虚拟机)

2. 操作系统的特点

2.1 并发(最基本特点)

**并发:**并发是指两个或多个事件在同一时间间隔内发生。这些事件在宏观上是同时发生,但在微观上是交替发生的。
**并行:**是指两个或多个事件在同一时刻同时发生。

2.2 共享(最基本特点)

共享: 即资源共享,是指系统中的资源可供内存中并发执行的进程共同使用。

共享方式:

  1. 互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但是在一个时间段内只允许一个进程访问该资源。
  2. 同时共享方式:允许一个时间段由多个进程“同时”对它们进行访问。

2.3 虚拟

虚拟: 把物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,逻辑上的对应物是用户感受到的。

虚拟技术:

  • 空分复用技术(如虚拟存储器)

  • 时分复用技术(虚拟处理器)

2.4 异步

异步: 是指 在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

3. 操作系统的发展和分类

3.1 手工操作阶段

缺点:用户独占全机、人机速度矛盾导致

3.2 批处理阶段

  1. 单道批处理系统

    缺点:CPU有大量的时间是在空闲等待I/O完成

  2. 多道批处理系统(操作系统开始实现)

    缺点:没有人机交互功能

3.3 分时操作系统

优点: 提供人机交互

缺点: 不能优先处理紧急业务

3.4 实时操作系统

分类:

**硬实时系统: ** 必须在严格的规定时间内完成处理

软实时系统: 能接受偶尔违反时间规定

3.5 网络操作系统、 分布式操作系统、个人计算机操作系统

4. 操作系统的运行机制和体系结构

4.1 运行机制

  1. 两种指令
    • 特权指令:不允许用户使用
    • 非特权指令
  2. 两种处理器状态
    • 核心态(管态):特权指令和非特权指令都可以执行
    • 用户态(目态):CPU只可以执行非特权指令
      切换:
      用户态 --> 核心态: 通过中断来实现,中断是唯一途径
      核心态 --> 用户态: 通过执行一个特权指令来实现,将程序状态字(PSW)的标志位设置为“用户态”
  3. 两种程序
    • 内核程序:系统的管理者,特权指令和非特权指令都可以执行,运行在核心态
    • 应用程序:为了保证运行安全,只能执行非特权指令,运行在用户态

4.2 操作系统内核

  1. 时钟管理:实现计时功能
  2. 中断处理:负责实现中断机制
  3. 原语(设备驱动、CPU切换)
    • 是一种特殊的程序
    • 处于操作系统最底层,是最接近硬件的部分
    • 这种程序的运行具有原子性……其运行只能一气呵成,不可中断
    • 运行时间较短、调用频繁
  4. 对系统资源进行管理的功能
    • 进程管理
    • 设备管理
    • 存储器管理
      在这里插入图片描述

4.3操作系统的体系结构

4.3.1 大内核
  1. 将操作系统的主要功能模块都作为系统内核,运行在核心态
  2. 优点:高性能
  3. 缺点:内核代码庞大,结构混乱,难以维护
4.3.2 微内核
  1. 只把基本的功能保留在内核
  2. 优点:内核功能少,结构清晰,方便维护
  3. 缺点:需要频繁地在核心态和用户态之间切换,性能低

5. 中断和异常

5.1 中断机制的诞生

本质 发生中断就意味着需要操作系统的介入,开展管理工作。

5.2 中断的概念和作用

  1. 当中断发生时,CPU立即进入核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不同的处理
  4. 发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。

5.3 中断的分类

  1. 内中断(也称为“异常”、例外、陷入)
    • 自愿中断:指令中断,如系统调用时使用的访管指令(又叫小茹指令、trap指令)
    • 强迫中断:
      硬件故障,如缺页
      软件中断,如除0运算.
  2. 外中断
    • 外设请求,如I/O操作完成发出的中断信号
    • 人工干预
  3. 区别
    • 信号来源:内中断是CPU内部,外中断是CPU外部
    • 内中断与当前执行的指令有关,而外中断无关

5.4 外中断的处理过程

二. 进程与线程

1. 进程的定义、组成、组织方式、特征

1.1 定义

程序: 就是一个指令序列
进程实体: 程序段、数据段、PCB三部分组成了进程实体 (进程映像)
PCB是进程存在的唯一标志
进程: 进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
注: 严格来说,进程实体时静态的,进程则是动态的。

1.2 组成

  1. 程序段(程序本身运行所需的数据):存放程序代码
  2. 数据段(程序本身运行所需的数据):存放程序运行时使用、产生的运算数据。如全局变量、局部变量、宏定义的常量等。
  3. PCB(进程的管理者即操作系统所需要的数据都在PCB中):操作系统通过PCB(进程控制块)来管理进程,因此PCB中应该包含操作系统对其进行管理所需的各种信息
    PCB的内容:
    • 进程描述信息:进程标识符PID、用户标识符UID
    • 进程控制和管理信息:进程当前状态、进程优先级
    • 进程分配清单:程序段指针、数据段指针、键盘、鼠标
    • 处理机相关信息:各种寄存器值

1.3 组织方式

  1. 链接方式
    • 按照进程状态将PCB分为多个队列
    • 操作系统持有指向各个队列的指针
  2. 索引方式
    • 根据进程状态的不同,建立几张索引表
    • 操作系统持有指向各个索引表的指针

1.4 特征

  1. 动态性(最基本):进程是程序的一次执行过程,是动态地产生、变化和消失的
  2. 并发性:内存中有多个进程实体,各进程可并发执行
  3. 独立性:进程是能独立运行、独立获得资源、独立接受调度的基本单位
  4. 异步性:各进程按各自独立的、不可预知的速度向前推进,操作系统要提供“进程同步机制”来解决异步问题
  5. 结构性:每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成

2. 进程的状态与转换

2.1 状态

  1. 运行状态(基本):占用CPU,并在CPU上运行
  2. 就绪状态(基本):已经具备运行条件,但由于没有空闲CPU,而暂时不能运行
  3. 阻塞状态(又称等待态 基本):因等待某一事件而暂时不能运行
  4. 创建状态(又称新建态):进程正在被创建,操作系统为进程分配资源、初始化PCB
  5. 终止状态(又称结束态):进程正在从系统中撤销,操作系统会回收进程拥有的资源、撤销PCB

2.2进程状态间的转换

  • 就绪态 -> 运行态
  • 运行态 -> 就绪态
  • 运行态 -> 阻塞态
  • 阻塞态 -> 就绪态

在这里插入图片描述

3. 进程控制

3.1 基本概念

进程控制的主要功能是对系统中的所有实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能

3.2 进程控制相关的原语

用原语实现进程的控制:原语采用“关中断指令”和“开中断指令”来实现一气呵成的特点。
过程:

  1. 更新PCB中的信息(如修改进程状态标志)

    • a. 所有的进程控制原语一定都会修改进程状态标志
    • b. 剥夺当前运行进程的CPU使用权必然需要保存其运行环境
    • c. 某进程开始运行前必须要恢其运行环境
  2. 将PCB插入合适的队列

  3. 分配/回收资源

进程的创建

  1. 创建原语
  • a. 申请空白PCB

  • b. 为新进程分配所需资源

  • c. 初始化PCB

  • d. 将PCB插入就绪队列

    1. 引起进程创建的事件
  • 用户登录

  • 作业调度

  • 提供服务

  • 应用请求

进程的终止

  1. 撤销原语
  • 从PCB集合中找到终止进程的PCB

  • 若进程正在运行,立即剥夺CPU,将CPU分配给其他进程

  • 终止其所有子进程

  • 将进程拥有的所有资源归还给父进程或操作系统

    1. 引起进程终止的事件
  • 正常结束
  • 异常结束
  • 外界干预

进程的阻塞和唤醒

  1. 进程的阻塞
  • 阻塞原语
    • a.找到要阻塞的进程对应的PCB
    • b.保护进程运行现场,将PCB状态信息设置为“阻塞态”,暂时停止进程运行
    • c.将PCB插入相应事件的等待队列
  • 引起进程阻塞的事件
    • 需要等待系统分配某中资源
    • 需要等待相互合作的其他进程完成工作

4. 进程通信

4.1 共享存储

两个进程对共享空间的访问必须是互斥的

  • 基于数据结构的共享:比如共享空间里只能放一个长度为10的数组,特点:速度慢、限制多(低级通信方式)
  • 基于存储区的共享:在内存中画出一块共享存存储区,数据的形式、存放位置都由进程控制,而不是操作系统,特点:速度更快(高级通信方式)

4.2 消息传递

以格式化的消息为单位,通过“发送消息/接收消息”完成。一条消息包括消息头和消息体两部分

  • 直接通信方式
  • 间接通信方式

4.3 管道通信

  1. 采用半双工通信
  2. 各进程互斥地访问管道
  3. 当管道写满时,写进程的write()系统调用被阻塞,等待读进程将数据取走。当读进程全部取完数据时,读进程的read()系统调用被阻塞
  4. 如果没写满,就不允许读。如果没读空,就不允许写
  5. 数据一旦读出,则该数据就被抛弃,意味着,读进程最多只能有一个

5. 线程概念、多线程模型

5.1 概念

线程: 是一个基本的CPU执行单元,也是程序执行流的最小单位
引入线程后,进程只作为除CPU之外的系统资源的分配单元(如打印机都是分配给进程的)

5.2 优点

  • 资源分配、调度
  • 并发性
  • 系统开销

5.3 属性

  • 线程是处理机调度的单位
  • 多CPU计算机中,各个线程可占用不同的CPU
  • 多个线程都有一个线程ID、线程控制块(TCB)
  • 线程也有就绪、阻塞、运行三种基本状态
  • 线程几乎不拥有系统资源
  • 同一进程的不同线程间共享进程的资源
  • 由于共享内存地址,同一进程中的线程间通信甚至无需系统干预
  • 同一进程中的线程切换,不会引起进程切换
  • 不同进程中的线程切换,会引起进程切换
  • 切换同进程内的线程,系统开销很小

5.4 实现方式

  1. 用户级线程
  • 由应用程序通过线程库实现。所有的线程管理工作都由应用程序负责(包括线程切换)。
  • 切换线程可以在用户态下即可完成,无需操作系统干预
  • 在用户看来,是有多个线程。但是操作系统内核看来,并意识不到线程的存在。(用户级线程对用户不透明,对操作系统透明)
  1. 内核级线程
    重点: 操作系统只”看得见“内核级线程,因此只有内核级线程才是处理机分配的单位

5.5 多线程模型

  1. 多对一模型:多个用户级线程映射到一个内核级线程。每个用户进程对应一个内核级线程
  2. 一对一模型:一个用户级线程映射到一个内核级线程。每个用户进程有与用户及线程同数量的内核级线程
  3. 多对多模型:n用户级线程映射到m个内核级线程(n>=m)。每个用户进程对应m个内核级线程
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值