操作系统基础篇

操作系统的演进

在这里插入图片描述

多道程序设计

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

操作系统五大功能

在这里插入图片描述

操作系统相关概念

并发性

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

共享性

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

  2. 这种共同使用的形式称之为资源共享
    在这里插入图片描述

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

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

虚拟性

  1. 虚拟性表现为把一个物理实体转变为若干个逻辑实体
  2. 物理实体是真实存在的,逻辑实体是虚拟的
  3. 虚拟的技术主要有时分复用技术和空分复用技术
  4. 时分复用技术:
    • 资源在时间上进行复用,不同程序并发使用
    • 多道程序分时使用计算机的硬件资源
    • 提高资源的利用率
      在这里插入图片描述
  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. 一个进程可以并发多个线程,每个线程执行不同的任务

进程的五状态模型

在这里插入图片描述

  1. 就绪状态
    • 当进程被分配到除CPU以外所有必要的资源后
    • 只要再获得CPU的使用权,就可以立即运行
    • 其他资源都准备好、只差CPU资源的状态为就绪状态
  2. 执行状态
    • 进程获得CPU,其程序正在执行称为执行状态
    • 在单处理机中,在某个时刻只能有一个进程是处于执行状态
  3. 阻塞状态
    • 进程因某种原因如:其他设备未就绪而无法继续执行
    • 从而放弃CPU的状态称为阻塞状态
      在这里插入图片描述
  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表现为一个非负整数,最大值由操作系统限定

在这里插入图片描述

  1. 进程的状态标记

在这里插入图片描述

操作Linux进程的相关命令

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

作业管理之进程调度

进程调度概述

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

在这里插入图片描述

进程调度算法

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

作业管理之死锁

死锁的产生

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

死锁的四个必要条件

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

预防死锁的方法

在这里插入图片描述
银行家算法
◆ 是一个可操作的著名的避免死锁的算法
◆ 以银行借贷系统分配策略为基础的算法

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

内存分配的过程

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

  2. 固定分区分配

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

动态分区分配

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

内存回收的过程

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值