计算机操作系统

第一部分

  • 操作系统概览
  • 进程管理
  • 作业管理
  • 存储管理
  • 文件管理
  • 设备管理

操作系统概览

  • 操作系统的演进
  • What&Why
  • 操作系统的基本功能
  • 操作系统相关概念

操作系统的演进

  1. 无操作系统
  2. 批处理系统
  3. 分时系统

image

多道程序设计

定义:指在计算机内存中同时存放多个程序,在管理程序之下相互穿插运行,是操作系统的重要功能。

解决的问题:

  • 早期批处理系统只能一次处理一个任务
  • 多道程序设计使得批处理系统可以一次处理多个任务
  • 大幅度提高计算机利用率

What&Why

  • 什么是操作系统?

    • 操作系统是管理计算机硬件和软件资源的计算机程序
  • 为什么使用操作系统?

    • 可以管理配置内存、决定资源供需顺序、控制输入输出设备等
    • 我们不能直接操作计算机硬件,操作系统提供用户与系统交互的操作界面,提高生产力
    • 操作系统种类非常多,从手机到超级计算机都有用到
  • 常见的操作系统

    • 手机端
      • Android
      • IOS
    • 电脑端
      • Windows
      • MacOS
      • Linux

TIP

MIUI、ColorOS、Flyme 等系统严格来说不算操作系统,只是在 Android 操作系统下做了一些个性化的修改或优化。

操作系统的基本功能

  • 统一管理计算机资源
  • 对计算机资源的抽象
  • 提供了用户与计算机之间的接口

统一管理计算机资源:

  • 处理器资源
  • 存储器资源
  • IO 设备资源
  • 文件资源

对计算机资源的抽象:

  • 用户无需面向硬件接口编程
  • 比如文件管理软件,会提供操作文件的接口,我们直接使用就可以

提供了用户与计算机之间的接口:

  • 图像窗口形式
  • 命令形式
  • 系统调用形式

image

操作系统相关概念

  • 并发性
  • 共享性
  • 虚拟性
  • 异步性

并发性:

  • 并行:是指两个或多个事件可以在同一个时刻发生

  • 并发:是指两个或多个事件可以在同一个时间间隔发生

image

image

共享性:

  • 操作系统中的资源可供多个并发的程序共同使用,也称为资源共享

  • 互斥共享形式:当资源被程序 A 占用时,其他想使用的程序只能等待

  • 同时访问形式:某种资源在一段时间内并发地被多个程序访问,这种“同时”是宏观的

image

虚拟性:

  • 表现为把一个物理实体转变为若干个虚拟的逻辑实体
  • 主要的技术有时分复用技术空分复用技术

时分复用技术:

image

image

空分复用技术:

  • 用来实现虚拟磁盘、虚拟内存等
  • 提高资源的利用率,提升编程效率

image

异步性:

  • 在多道程序环境下,允许多个进程并发执行
  • 进程在使用资源时可能需要等待或放弃
  • 进程的执行是以走走停停的形式推进

image

进程管理

  • 为什么需要进程?
  • 进程的实体
  • 五状态模型
  • 进程同步
  • Linux 的进程管理

为什么需要进程?

没有操作系统之前,一次只能运行一个指定的程序,资源属于当前运行的程序。加入操作系统之后,引入多道程序设计的概念,合理的隔离资源和运行环境,提升资源利用率。

  • 操作系统利用进程提高利用率
  • 进程是操作系统进行资源分配和调度的基本单位
  • 进程是程序独立运行的载体,保障程序正常运行

进程的实体

  • 主存中的进程形态
  • 进程与线程

主存中的进程形态:

在主存里面,进程也是一段连续存储的空间,称为进程控制块(PCB)。在这个空间中有很多信息,有:标识符、状态、优先级、程序计数器、内存指针、上下文数据、IOS 状态信息......。

进程控制块(PCB):

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

进程与线程:

  • 进程(Process)
  • 线程(Thread)

一个进程可以有多个线程。线程是操作系统运行调度的最小单位,进程是基本单位

操作系统的调度,实际上是对进程里面的具体线程做调度,实际运行逻辑的是线程。

一个进程可以并发多个线程,每个线程可以执行不同的任务。

进程拥有资源,里面的线程共享这些资源。

五状态模型

进程状态:

  • 就绪
    • 其它资源都准备好了,就只差 CPU 资源的状态下,在就绪队列中排队
  • 执行
    • 程序在 CPU 中运行的状态
  • 阻塞
    • 其它设备未就绪而无法继续执行的状态,在阻塞队列中排队
  • 创建
    • 拥有 PCB 但其它资源尚未就绪的状态
  • 终止
    • 进程结束由系统清理或归还 PCB 的状态

进程同步

  • 为什么需要进程间同步
  • 进程间同步的原则
  • 线程同步

为什么需要进程间同步:

image

生产者-消费者问题,两者并发执行可能会出差错。

哲学家进餐问题

问题的根源是彼此之间没有通信,所以需要进程间的同步,解决竞争资源在多进程间使用次序的协调,使并发执行的多个程序可以有效的利用资源与相互合作。

进程间同步的原则:

临界资源:指一些虽作为共享资源,却又无法同时被多个线程共同访问的共享资源。当有进程在使用临界资源时,其他进程需要等待进程释放。

同步原则:

  • 空闲让进
  • 忙则等待
  • 有限等待
  • 让权等待

同步方法:

  • 消息队列
  • 共享存储
  • 信号量

线程同步:

进程内多线程并发使用资源也会遇到进程所遇到的相同问题,所以也需要同步。

同步方法:

  • 互斥量
  • 读写锁
  • 自旋锁
  • 条件变量

Linux 的进程管理

  • 进程的类型
  • 进程的标记
  • Linux 操作进程的相关命令

进程的类型:

  • 前台进程:具有终端,可以和用户进行交互的进程。比如:终端 Shell。
  • 后台进程:没有占用终端,不和用户进行交互的就是后台进程,优先级比前台进程低。
  • 守护进程:是特殊的后台进程,在系统引导时启动,一直运行到系统关闭。比如:crond、httpd、sshd、mysqld。

进程的标记

  • 进程的 ID:唯一标记,非负整数,由系统限定。进程 A 创建进程 B,之间就是父子关系
  • 进程的状态标记:状态符号有 R、S、D、T、Z

Linux 操作进程的相关命令:

  • ps 命令
  • top 命令
  • kill 命令

作业管理

  • 进程调度概述
  • 进程调度的算法

进程调度概述

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

  1. 保留旧进程的运行信息,请出旧进程
  2. 选择新进程,准备运行环境并分配 CPU

进程调度的算法

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

存储管理

  • 内存分配的过程
  • 内存回收的过程

内存分配的过程

Last Updated: 2023/8/2 10:45:34
Contributors: licong96