计算机操作系统
第一部分
- 操作系统概览
- 进程管理
- 作业管理
- 存储管理
- 文件管理
- 设备管理
操作系统概览
- 操作系统的演进
- What&Why
- 操作系统的基本功能
- 操作系统相关概念
操作系统的演进
- 无操作系统
- 批处理系统
- 分时系统
多道程序设计
定义:指在计算机内存中同时存放多个程序,在管理程序之下相互穿插运行,是操作系统的重要功能。
解决的问题:
- 早期批处理系统只能一次处理一个任务
- 多道程序设计使得批处理系统可以一次处理多个任务
- 大幅度提高计算机利用率
What&Why
什么是操作系统?
- 操作系统是管理计算机硬件和软件资源的计算机程序
为什么使用操作系统?
- 可以管理配置内存、决定资源供需顺序、控制输入输出设备等
- 我们不能直接操作计算机硬件,操作系统提供用户与系统交互的操作界面,提高生产力
- 操作系统种类非常多,从手机到超级计算机都有用到
常见的操作系统
- 手机端
- Android
- IOS
- 电脑端
- Windows
- MacOS
- Linux
- 手机端
TIP
MIUI、ColorOS、Flyme 等系统严格来说不算操作系统,只是在 Android 操作系统下做了一些个性化的修改或优化。
操作系统的基本功能
- 统一管理计算机资源
- 对计算机资源的抽象
- 提供了用户与计算机之间的接口
统一管理计算机资源:
- 处理器资源
- 存储器资源
- IO 设备资源
- 文件资源
对计算机资源的抽象:
- 用户无需面向硬件接口编程
- 比如文件管理软件,会提供操作文件的接口,我们直接使用就可以
提供了用户与计算机之间的接口:
- 图像窗口形式
- 命令形式
- 系统调用形式
操作系统相关概念
- 并发性
- 共享性
- 虚拟性
- 异步性
并发性:
并行:是指两个或多个事件可以在同一个时刻发生
并发:是指两个或多个事件可以在同一个时间间隔发生
共享性:
操作系统中的资源可供多个并发的程序共同使用,也称为资源共享
互斥共享形式:当资源被程序 A 占用时,其他想使用的程序只能等待
同时访问形式:某种资源在一段时间内并发地被多个程序访问,这种“同时”是宏观的
虚拟性:
- 表现为把一个
物理实体
转变为若干个虚拟的逻辑实体
- 主要的技术有
时分复用技术
和空分复用技术
时分复用技术:
空分复用技术:
- 用来实现虚拟磁盘、虚拟内存等
- 提高资源的利用率,提升编程效率
异步性:
- 在多道程序环境下,允许多个进程并发执行
- 进程在使用资源时可能需要等待或放弃
- 进程的执行是以走走停停的形式推进
进程管理
- 为什么需要进程?
- 进程的实体
- 五状态模型
- 进程同步
- Linux 的进程管理
为什么需要进程?
没有操作系统之前,一次只能运行一个指定的程序,资源属于当前运行的程序。加入操作系统之后,引入多道程序设计
的概念,合理的隔离资源和运行环境,提升资源利用率。
- 操作系统利用进程提高利用率
- 进程是操作系统进行资源分配和调度的
基本单位
- 进程是程序独立运行的载体,保障程序正常运行
进程的实体
- 主存中的进程形态
- 进程与线程
主存中的进程形态:
在主存里面,进程也是一段连续存储的空间,称为进程控制块(PCB)
。在这个空间中有很多信息,有:标识符、状态、优先级、程序计数器、内存指针、上下文数据、IOS 状态信息......。
进程控制块(PCB):
- 用于描述和控制进程运行的通用数据结构
- 记录进程当前状态和控制进程运行的全部信息
- PCB 使得进程是能够独立运行的基本单位
- 经常被读取,常驻内存中,存放在系统专门开辟的区域内
进程与线程:
- 进程(Process)
- 线程(Thread)
一个进程可以有多个线程。线程是操作系统运行调度的最小单位
,进程是基本单位
。
操作系统的调度,实际上是对进程里面的具体线程做调度,实际运行逻辑的是线程。
一个进程可以并发多个线程,每个线程可以执行不同的任务。
进程拥有资源,里面的线程共享这些资源。
五状态模型
进程状态:
- 就绪
- 其它资源都准备好了,就只差 CPU 资源的状态下,在就绪队列中排队
- 执行
- 程序在 CPU 中运行的状态
- 阻塞
- 其它设备未就绪而无法继续执行的状态,在阻塞队列中排队
- 创建
- 拥有 PCB 但其它资源尚未就绪的状态
- 终止
- 进程结束由系统清理或归还 PCB 的状态
进程同步
- 为什么需要进程间同步
- 进程间同步的原则
- 线程同步
为什么需要进程间同步:
生产者-消费者问题
,两者并发执行可能会出差错。
哲学家进餐问题
。
问题的根源是彼此之间没有通信,所以需要进程间的同步,解决竞争资源在多进程间使用次序的协调,使并发执行的多个程序可以有效的利用资源与相互合作。
进程间同步的原则:
临界资源
:指一些虽作为共享资源,却又无法同时被多个线程共同访问的共享资源。当有进程在使用临界资源时,其他进程需要等待进程释放。
同步原则:
- 空闲让进
- 忙则等待
- 有限等待
- 让权等待
同步方法:
- 消息队列
- 共享存储
- 信号量
线程同步:
进程内多线程并发使用资源也会遇到进程所遇到的相同问题,所以也需要同步。
同步方法:
- 互斥量
- 读写锁
- 自旋锁
- 条件变量
Linux 的进程管理
- 进程的类型
- 进程的标记
- Linux 操作进程的相关命令
进程的类型:
- 前台进程:具有终端,可以和用户进行交互的进程。比如:终端 Shell。
- 后台进程:没有占用终端,不和用户进行交互的就是后台进程,优先级比前台进程低。
- 守护进程:是特殊的后台进程,在系统引导时启动,一直运行到系统关闭。比如:crond、httpd、sshd、mysqld。
进程的标记
- 进程的 ID:唯一标记,非负整数,由系统限定。进程 A 创建进程 B,之间就是父子关系
- 进程的状态标记:状态符号有 R、S、D、T、Z
Linux 操作进程的相关命令:
- ps 命令
- top 命令
- kill 命令
作业管理
- 进程调度概述
- 进程调度的算法
进程调度概述
进程调度是指计算机通过决策决定,哪个就绪进程可以获得 CPU 使用权。
- 保留旧进程的运行信息,请出旧进程
- 选择新进程,准备运行环境并分配 CPU
进程调度的算法
- 先来先服务调度算法
- 短进程优先调度算法
- 高优先权优先调度算法
- 时间片轮转调度算法
存储管理
- 内存分配的过程
- 内存回收的过程