Please enable JavaScript.
Coggle requires JavaScript to display documents.
操作系统 - Coggle Diagram
操作系统
概论
特征
并发
共享
最基本的两个特征
互斥共享方式
同时共享方式
虚拟
空分复用技术(如虚拟存储技术)
时分复用技术(如虚拟处理器技术)
异步
发展与分类
手工操作阶段
缺:人机速度矛盾
批处理阶段
单道批处理系统(引入脱机输入输出技术)
优:缓解人机速度矛盾
缺:资源利用率依然很低
分时操作系统
优:提供人机交互功能
缺:不能优先处理紧急任务
实时操作系统
硬实时系统
必须在绝对严格的规定时间内完成处理
软实时系统
能接受偶尔违反时间规定
优:能优先处理紧急任务
操作系统的概念
负责管理协调硬件、软件等计算机资源的工作
为上层用户、应用程序提供简单易用的服务
是一种系统软件
功能和目标
资源的管理者
处理机管理
储存器管理
文件管理
设备管理
向用户提供服务
命令接口
联机命令接口
脱机命令接口
程序接口
由一组系统调用组成
GUI用户图形界面
对硬件机器的扩展
扩充机器
运行机制和体系结构
运行机制
两种指令
特权指令
非特权指令
两种处理器状态
核心态
用户态
两种程序
内核程序
应用程序
操作系统内核
时钟管理
中断处理
原语
是一种特殊的程序,其执行不可中断,具有原子性
对系统资源进行管理的功能
进程管理
储存器管理
设备管理
体系结构
大内核
优点:高性能
缺点:内核代码大,结构混乱,难以维护
微内核
优点:内核功能少,结构清晰,方便维护
缺点:需要频繁地在核心态和用户态之间切换、性能低
中断和异常
中断机制的诞生
为了实现多道程序并发执行而引入的一种技术
中断的概念和作用
发生中断,CPU就会立即进入核心态
“中断”是CPU从用户态进入核心态的唯一途径
中断的分类
内中断(异常、例外、陷入)
自愿中断——指令中断
强迫中断
硬件故障
软件中断
外中断(中断)
外设请求
人工干预
系统调用
概念,作用
操作系统提供给应用程序使用的接口
应用程序通过系统调用来请求获得操作系统的服务
系统调用会使处理器从用户态进入核心态
分类
设备管理
文件管理
进程控制
进程通信
内存管理
系统调用和库函数的区别
系统调用是操作系统线上层提供的接口
有的库函数是对系统调用的进一步封装
当今编写的应用程序大多是通过高级语言提供的库函数间接地进行系统调用
系统调用背后的过程
1、传递系统调用参数
2、执行陷入指令
3、执行系统调用相应服务程序
4、返回用户程序
进程管理
进程与线程
什么是进程?
组成
PCB
进程描述信息
进程控制和管理信息
资源分配清单
处理机相关信息
程序段
存放要执行的程序代码
数据段
存放程序运行过程中处理的各种数据
组织形式
连接方式
按进程状态将PCB分为多个队列
索引方式
按照进程状态建立几张索引表,各表项指向一个PCB
特征
动态性
进程的最基本特征
并发性
独立性
进程是系统进行资源分配、调度的独立单位
异步性
各进程以不可预知的速度向前推进,可能导致运行结果的不确定性
结构性
定义
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
进程状态与转换
状态
运行状态
CPU :check: 所有其他所有资源 :check:
就绪状态
CPU :red_cross:其他所有资源 :check:
阻塞状态
CPU :red_cross:其他所有资源 :red_cross:
创建状态
操作系统为新进程分配资源、创建PCB
终止状态
操作系统回收进程的资源、撤销PCB
进程状态间的转换
就绪态->运行态
进程被调度
运行态->就绪态
时间片到,或CPU被其他高优先级的进程抢占
运行态->阻塞态
等待系统分配资源,或等待某件事发生(主动行为)
阻塞态->就绪态
资源分配到位,等待事件发生(被动行为)
创建态->就绪态
系统完成创建进程相关工作
运行态->终止态
进程运行结束,或运行过程中遇到不可修复的错误
进程控制
基本概念
进程控制就是要实现进程状态的转换
进程控制用原语实现
原语用关/开中断来实现
原语是一种特殊的程序
原语的执行必须一气呵成,不可中断
相关原语
进程的创建
进程的终止
进程的阻塞
进程的唤醒
进程的切换
进程通信
共享储存
设置一个共享空间
要互斥地访问共享空间
两种方式
基于数据结构(低级)
基于存储区的共享(高级)
管道通信
设置一个特殊的共享文件(管道),其实就是一个缓冲区
一个管道只能实现半双工通信
实现双向通信要建立两个管道
各进程要互斥访问管道
写满时,不能再写,读空时,不能再读
没写满,不能读。没读空,不能写
消息传递
传递结构化的信息(消息头/消息体)
系统提供“发送/接受原语”
两种方式
直接通信方式
消息直接挂到接收方的消息队列力
间接通信方式
消息先发到中间体(信箱)