操作系统

操作系统

操作系统结构

简单结构

  • 简单,较小,并未仔细划分模块
  • 功能有限,未很好地区分接口和功能层次,易受错误程序伤害

分层

  • 自顶向下,将操作系统分成若干层,使构造调试简单化
  • 每层利用较低层的功能来实现,难点在对层的详细定义,与其他方法比效率较差

微内核

  • 将所有非基本部分从内核中移走,以消息传递方式通信
  • 便于扩充操作系统,提供良好地安全性和可靠性,忍受由于系统功能开销而导致系统性能下降
  • 功能:进程管理,低级存储器管理,中断陷入管理

模块

  • 核心部件
  • 动态链接附加服务,灵活,高效

进程间通信

  • 低级通信
    资源竞争 –> 临界区 –> 进程互斥–>信号量 <–进程同步
  • 高级通信
    共享存储系统
    信息传递系统(直接、间接)
    管道通信

死锁

多个进程因竞争资源而造成的僵局,若无外力,无法恢复

产生原因

  • 资源竞争
  • 进程推进顺序不当

必要条件及预防

1. 互斥
2. 占有并等待  (静态分配)
3. 非抢占         (抢占)
4. 循环等待     (增量序列,递增顺序申请资源)

银行家算法

  • Available
  • Max
  • Allocation
  • Need

临界区三大要求

临界区:并发进程中访问共享变量的程序段

1. 互斥
2. 前进
3. 有限等待

信号量

  • 同步点
  • 伪代码
  • P、V位置

生产者–消费者问题

P:while(1){           //互斥信号量:S1=1;S2=1;
	生产;          //同步信号量:S3=0;S4=n;
	P(S4);
	P(S1);
	取产品[i];
	i++;
	V(S1);
	V(S3);
}
V:while(1){
	P(S3);
	P(S2);
	取产品[j];
	j++;
	V(S2);
	V(S4);
	消费;
}
Do{                  //初值:empty=n;full=0;mutex=1
	//Produce
	P(empty);
	P(mutex);
	//add i++
	V(mutex);
	V(full);
}
Do{	
	P(full);
	P(mutex);
	//remove j++
	V(mutex);
	V(empty);
	//consume
}

操作系统

操作系统:管理计算机硬件,为应用程序提供基础,充当硬件与用户的媒介

分类:

  • 多道程序处理系统
    优:作业吞吐量大,资源利用率高
    缺:周转时间长,无交互能力
  • 分时处理系统
    交互性,多用户同时性,独立性,及时性,(时间片轮转)
    适用开发、调试、小作业
  • 实时处理系统
    实时性,可靠性,安全性,专用性
    适用高科技(导弹)
  • 单道批处理系统
    适用大作业,科学计算

功能

  • 处理机管理:处理用户命令
  • 存储器管理:读写文件
  • 设备管理:分配,回收资源,并处理软硬件出现的错误
  • 文件管理

系统调用

  • 为上层提供服务接口,API

进程

引入进程原因:引入并发,并控制并发执行的程序

特点

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

组成部分

  • 程序段(堆栈段 –> 临时数据)
  • 数据段(全局变量)
  • PCB   (堆 –> 动态分配)

状态

新的 就绪 运行 等待 终止 分派 I/O 中断 I/O 新的 就绪 运行 等待 终止

控制块 PCB

  • 进程状态
  • 程序计数器
  • CPU寄存器
  • CPU调度信息
  • 内存管理信息
  • I/O状态信息
  • 记账信息

进程与程序

进程程序
动态静态
有生命周期长久
并发行(独立、异步)
资源分配基本单位
不同进程可包含同一程序同一程序执行可产生多进程
堆栈段(参数、返回地址、局部变量)
数据段(全局变量)
堆(动态分配)

进程与线程

进程线程
调度资源分配基本单位调度和分派的基本单位
并发性
资源自身资源+其隶属进程的资源
系统开销开销大

CPU调度

  • 周转时间:提交到完成
  • 等待时间:就绪花费
  • 响应时间:开始响应

内存分配

固定内存分配

  • 管理简单
  • 利用率低
  • 内部碎片大

动态内存分配

  • 首次适应(检索速度、回收过程、适合大作业、简单、碎片)
  • 最佳适应(碎片、适合大作业、复杂)
  • 最差适应(无碎片、复杂)

系统颠簸

频繁调页,置换算法选择不当

内核内存

  • Buddy:连续固定大小
  • Slab:Cache,连续动态

文件访问方法

  • 顺序(编辑器、编译器)
  • 直接(数据库)
  • 其他(索引)

目录结构

单层目录结构

  • 简单,便于理解和支持
  • 易命名冲突,且无文件夹分组
  • 数目越大,效率越低

双层目录结构

  • 解决命名冲突,但存在隔离(用户文件+主文件)
  • 数目越大,效率越高

树状文件目录

  • 唯一路径,但可能存在路径过长
  • 无隔离,但禁止共享(子目录)
  • 数目越大,效率越高

无环图

同一文件或子目录可出现在两个不同目录中,允许目录含有共享子目录和文件

  • 实现方式:链接,复制
  • 支持共享
  • 树状目录的扩展,灵活,复杂

通用图

  • 确保无环
  • 简单算法遍历
  • 确定是否存在引用
  • 便于使用

空闲空间管理

位向量

  • 速度慢
  • 物理块号需二次计算

链表

  • 释放难
  • 写入难

计数

缓冲处理

  • 数据流,生产者、消费者速度差异
  • CPU,外设(高速缓存)
  • 传输数据大小不一致
  • 支持应用程序I/O控制

同步与互斥

  • 同步
    并发进程间存在的相互制约和相互依赖的关系
  • 互斥
    若干进程共享一资源时,任何时刻只允许一个进程使用

I/O操作

主存与外围设备间的信息传送操作

I/O控制方法及特点

  • 程序自动控制
    优:简单,硬件少
    缺:只可串行工作,无法处理错误
  • 中断
    根据CPU和内存内外分为外中断和内中断,内中断存在陷阱
  • DMA
    减少中断次数,无需CPU帮助,可传送连续数据块
  • 通道:I/O处理机
    处理非连续、离散数据块,减少中断,拥有特有的指令系统,相当于一个简化版CPU

设备分配时应考虑的因素

  • 固有属性:独占性,共享性,可虚拟设备
  • 分配算法:FCFS,优先级
  • 安全性

分页

页表

  • 页号
  • 基地址
  • 标志
  • 主存块号

分页与分段

  • 共同点:离散分配,通过地址映射机构实现地址变换
分页分段
页为物理单位,为系统管理而生段为逻辑单位,为满足需要而设
页大小固定段长度不固定
页地址空间一维段地址空间二维
分页产生内部碎片分段产生外部碎片
段可动态链接
  • 设备需求:内存,外存,页(段)表,缺页中断,地址变换

页错误陷阱处理的基本流程

  • 检查进程页表,确定地址访问是否合法
  • 若合法则调入页面,否则终止进程
  • 寻找空闲帧或牺牲帧
  • 调度磁盘,将页调入帧
  • 修改页表和内部表
  • 指令重启

磁盘调度

  • FCFS      先来先服务
  • SSTF      最短寻道时间优先
  • SCAN      电梯算法
  • C-SCAN  均匀等待时间
  • LOOK      无边界SCAN
  • C-LOOK  无边界C-SCAN

文件系统分层组织结构

  1. 应用程序
  2. 逻辑文件系统(逻辑文件结构,元数据)
  3. 文件组织系统(空闲管理,分配磁盘块)
  4. 基本文件系统(磁盘驱动)
  5. I/O控制          (设备驱动程序,内存与磁盘,中断处理,信息传输)
  6. 设备
    原文作者:银行家问题
    原文地址: https://blog.csdn.net/qq_39478684/article/details/88622572
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞