操作系统基础篇

文章目录

  • 操作系统的演进
  • 多道程序设计
  • 操作系统五大功能
  • 操作系统相关概念
    • 并发性
    • 共享性
    • 虚拟性
  • 进程管理之进程实体
    • 为什么需要进程
    • 进程的实体
    • 进程控制块(PCB)
    • 进程与线程
    • 进程的五状态模型
    • 进程间的同步
    • 临界资源
    • 进程同步的原则
    • 进程同步的方法
    • 线程同步
  • Linux的进程管理
    • 进程的类型
    • 进程的标记
    • 操作Linux进程的相关命令
  • 作业管理之进程调度
    • 进程调度概述
    • 进程调度算法
  • 作业管理之死锁
    • 死锁的产生
    • 死锁的四个必要条件
    • 预防死锁的方法
  • 存储管理之内存分配与回收
    • 内存分配的过程
    • 动态分区分配
    • 内存回收的过程

操作系统的演进

操作系统基础篇_第1张图片

多道程序设计

  1. 多道程序设计是指在计算机内存中同时存放多个程序
  2. 多道程序在计算机的管理程序之下相互穿插运行

操作系统五大功能

操作系统基础篇_第2张图片

操作系统相关概念

并发性

  1. 并行是指两个或多个事件可以在同一个时刻发生
  2. 并发是指两个或多个事件可以在同一个时间间隔发生

共享性

  1. 共享性表现为操作系统中的资源可供多个并发的程序共同使用

  2. 这种共同使用的形式称之为资源共享
    操作系统基础篇_第3张图片

  3. 当资源被程序A占用时,其他想使用的话只能等待,
    只有进程A使用完以后,其他进程才可以使用该资源

  4. 某种资源在一段时间内并发地被多个程序访问,这种“同时”是宏观的,从宏观去看该资源可以被同时访问

虚拟性

  1. 虚拟性表现为把一个物理实体转变为若干个逻辑实体
  2. 物理实体是真实存在的,逻辑实体是虚拟的
  3. 虚拟的技术主要有时分复用技术和空分复用技术
  4. 时分复用技术:
    • 资源在时间上进行复用,不同程序并发使用
    • 多道程序分时使用计算机的硬件资源
    • 提高资源的利用率
      操作系统基础篇_第4张图片
  5. 空分复用技术
    • 空分复用技术用来实现虚拟磁盘、虚拟内存等
    • 提高资源的利用率,提升编程效率
      操作系统基础篇_第5张图片
  6. 异步性
    • 在多道程序环境下,允许多个进程并发执行
    • 进程在使用资源时可能需要等待或放弃
    • 进程的执行并不是一气呵成的,而是以走走停停的形式推进

进程管理之进程实体

为什么需要进程

  1. 进程是系统进行资源分配和调度的基本单位
  2. 进程作为程序独立运行的载体保障程序正常执行
  3. 进程的存在使得操作系统资源的利用率大幅提升

进程的实体

  1. 标识符:标识符唯一标记一个进程,用于区别其他进程
  2. 状态:标记进程的进程状态,如:运行态
  3. 程序计数器:进程即将被执行的下一条指令的地址
  4. 内存指针:程序代码、进程数据相关指针
  5. 上下文数据:进程执行时处理器存储的数据
  6. IO 状态信息:被进程IO操作所占用的文件列表
  7. 记账信息: 使用处理器时间、时钟数总和等

进程控制块(PCB)

  1. 用于描述和控制进程运行的通用数据结构
  2. 记录进程当前状态和控制进程运行的全部信息
  3. PCB的使得进程是能够独立运行的基本单位
  4. PCB是操作系统进行调度经常会被读取的信息
  5. PCB是常驻内存的,存放在系统专门开辟的PCB区域内

进程与线程

  1. 线程是操作系统进行运行调度的最小单位
  2. 包含在进程之中,是进程中实际运行工作的单位
    进程管理之进程实体
  3. 一个进程可以并发多个线程,每个线程执行不同的任务

进程的五状态模型

操作系统基础篇_第6张图片

  1. 就绪状态
    • 当进程被分配到除CPU以外所有必要的资源后
    • 只要再获得CPU的使用权,就可以立即运行
    • 其他资源都准备好、只差CPU资源的状态为就绪状态
  2. 执行状态
    • 进程获得CPU,其程序正在执行称为执行状态
    • 在单处理机中,在某个时刻只能有一个进程是处于执行状态
  3. 阻塞状态
    • 进程因某种原因如:其他设备未就绪而无法继续执行
    • 从而放弃CPU的状态称为阻塞状态
      操作系统基础篇_第7张图片
  4. 创建状态
    建进程时拥有PCB但其他资源尚未就绪的状态称为创建状态
    在这里插入图片描述
  5. 进程结束由系统清理或者归还PCB的状态称为终止状态
    在这里插入图片描述

进程间的同步

  1. 对竞争资源在多进程间进行使用次序的协调
  2. 使得并发执行的多个进程之间可以有效使用资源和相互合作

临界资源

临界资源指的是一些虽作为共享资源却又无法同时被多个线程共同 访问的共享资源。当有进程在使用临界资源时,其他进程必须依据 操作系统的同步机制等待占用进程释放该共享资源才可重新竞争使 用共享资源。

进程同步的原则

  1. 空闲让进:资源无占用,允许使用
  2. 忙则等待:资源有占用,请求进程等待
  3. 有限等待:保证有限等待时间能够使用资源
  4. 让权等待:等待时,进程需要让出CPU

进程同步的方法

  1. 消息队列
  2. 共享存储
  3. 信号量

线程同步

方法: 互斥量 读写锁 自旋锁 条件变量

Linux的进程管理

进程的类型

在这里插入图片描述

  1. 前台进程就是具有终端,可以和用户交互的进程
  2. 后台进程
    • 与前台进程相对,没有占用终端的就是后台进程
    • 后台程序基本上不和用户交互,优先级比前台进程低
    • 将需要执行的命令以“&”符号结束
  3. 守护进程
    • 守护(daemon)进程是特殊的后台进程
    • 很多守护进程在系统引导的时候启动,一直运行直到系统关闭
    • Linux有很多典型的守护进程

进程的标记

  1. 进程ID
    • 进程ID是进程的唯一标记,每个进程拥有不同的ID
    • 进程ID表现为一个非负整数,最大值由操作系统限定

操作系统基础篇_第8张图片

  1. 进程的状态标记

操作系统基础篇_第9张图片

操作Linux进程的相关命令

ps命令,top命令, kill命令
  1. ps命令常用于显示当前进程的状态
    ps命令常配合aux参数或ef参数和grep命令检索特定进程
  2. kill命令发送指定信号给进程, kill –l 可以查看操作系统支持的信号
  3. top,查看全部进程。

作业管理之进程调度

进程调度概述

进程调度是指计算机通过决策决定哪个就绪进程可以获得CPU使用

操作系统基础篇_第10张图片

进程调度算法

◆ 先来先服务调度算法
◆ 短进程优先调度算法
◆ 高优先权优先调度算法
◆ 时间片轮转调度算法

作业管理之死锁

死锁的产生

  1. 共享资源数量不满足各个进程需
  2. 各个进程之间发生资源竞争导致死锁

死锁的四个必要条件

◆ 互斥条件
◆ 请求保持条件
◆ 不可剥夺条件
◆ 环路等待条件

预防死锁的方法

操作系统基础篇_第11张图片
银行家算法
◆ 是一个可操作的著名的避免死锁的算法
◆ 以银行借贷系统分配策略为基础的算法

存储管理之内存分配与回收

内存分配的过程

  1. 单一连续分配
    ◆ 单一连续分配是最简单的内存分配方式
    ◆ 只能在单用户、单进程的操作系统中使用

  2. 固定分区分配

◆ 固定分区分配是支持多道程序的最简单存储分配方式
◆ 内存空间被划分为若干固定大小的区域
◆ 每个分区只提供给一个程序使用,互不干扰

动态分区分配

◆ 首次适应算法(FF算法)
◆ 最佳适应算法(BF算法)
◆ 快速适应算法(QF算法)

内存回收的过程

… 空闲区1 回收区 … …
◆ 不需要新建空闲
◆ 不需要新建空闲链表节点
◆ 只需要把空闲区1的容量增大为空闲区即可

你可能感兴趣的:(计算机组成原理)