Skip to content

Latest commit

 

History

History
184 lines (146 loc) · 7.59 KB

计算机操作系统.md

File metadata and controls

184 lines (146 loc) · 7.59 KB

计算机系统

第一章引论

  • 操作系统是运行在内核态的操作软件
  • 操作系统的主要任务隐藏硬件 ,呈现给程序一些抽象
  • 作为资源管理的操作系统 现代计算机包含处理器 存储器 时针 磁盘 鼠标 网络接口等
  • 操作系统的任务的主要任务是记录那个程序在使用什么资源,对资源进行请求分配,评估使用代价,并且为不同程序和用户调解
  • 互相冲突的资源请求
  • 多路复用 空间复用
  • 进程: 进程本质上是正在执行的一个程序
  • 命令解释器 shell的进程从终端读命令
  • 地址空间:每台计算机都有一些主存 ,用来保存正在执行的程序,简单操作系统中,如果运行第二个程序,第一个程序必须移出内存

第二章进程与线程

  • 多程序设计
  • 进程的创建 守护进程
  • 进程的层次结构
  • 进程的状态: 运行态 就绪态 阻塞态
  • 进程的实现: 为了实现进程模型 , 操作系统维护着一张表格 叫做 进程表
  • 多道程序设计模型
  • 线程: 由于线程比进程更轻量级 所以他们更容易创建 撤销
  • 轻量级进程
  • 进程中的不同线程不像不同进程之间那样存在很大的独立性。 所有的线程都有完全一样的地址空间 这意味着他们共享同样的全部变量
  • 进程间通信 : 竞争条件 临界区 忙等待的互斥 屏蔽中段 锁变量
  • 所以在等待一个循环 不停的测试 叫忙等待 用于忙等待的锁 叫做自旋锁
  • 生产者 消费者 问题 有界缓存区 消费者的代码 首先检测count 是否为0 如是则睡眠
  • 信号量的另一种用途 用于实现同步
  • pthread中的互斥量 : 一个线程想要进入临界区 ,它首先尝试解锁相关的互斥量 另一种同步机制: 条件变量 生产者使用互斥量可以进行原子检查

管程

进程间通信: 消息传递

*调度 调度程序 调度算法

  • 进程行为
  • 共同的目标是保持系统的所有部分尽可能忙碌 吞吐量 周转时间 CPU利用率 最小响应时间
  • 批处理的系统中的调度
  • 最短作业优先 最短剩余时间优先
  • 交互系统中的调度 轮转调度 优先级调度
  • 哲学家就餐问题

第三章内存管理

  • 分层存储器体系 高速缓存 和磁盘
  • 存储管理器 : 记录那些内存正在使用 那些内存是空闲的 ,在进程需要时为其 分配内存,在进程使用完成后释放内存
  • 我们希望每个程序都使用一套私有的本地地址来进行内存寻址
  • 地址空间是一个进程可用于寻址内存的一套地址集合,每个进程都有一个自己的地址空间,并且这个地址空间 地独立于其他进程的地址空间

基址寄存器与界限寄存器

*这个简单的解决办法是使用动态重定位 ,简单的把每个进程的地址空间映射到物理内存的 不同部分

  • 交换技术 虚拟内存
  • 内存紧缩
  • 空闲内存管理: 在动态分配内存时,操作系统进行管理
  • 使用链表的存储管理

虚拟内存

  • 虚拟内存 : 每个程序拥有自己的空间地址 ,这个空间被分割成多个块 每一页称为一页,每一页有连续的地址空间 内存管理单元把虚拟地址映射成虚拟地址
  • 缺页中断 或者缺页错误

分页

  • 内存管理单元

页表

加速分页过程 虚拟地址到物理地址映射必须非常快 2.如果虚拟地址空间很大,页表也会很大

转换检测缓存区TLB

  • 讨论加速分页机制和处理大的虚拟地址空间的实现方案 先介绍加速分页问题

  • 相联存储器 或者 快表

  • 软甲TLB管理

  • 针对大内存的页表

  • 多级页表

  • 页目录指针表

页面置换算法

*当发生缺页中断,操作系统必须在内存中选择一个页面将其换出内存 ,以便为即将调入的页面腾出空间

最优页面替换算法
最近未使用页面替换算法
最近最少使用页面替换算法
  • 虚拟内存的换页机制就是为了透明的满足这样一个场景: 多任务进程
  • 换出 : 虚拟页处于已经分配但是未映射物理内存的状态
  • 缺页异常 : 当应用程序访问已分分配但未映射至物理内存的虚拟页时
  • 利用换页机制 操作系统可以把物理内存放不下的数据临时存放到磁盘上,等到需要的时候再放回物理内存,从而实现 能够为应用程序提供超过物理内存容量的内存空间
  • 预取机制 当发生换入操作时 ,预测还有哪些页面即将被访问 ,提前将他们一并换入物理内存 从而减少缺页异常的次数
  • 按需页分配

工作集页面替换算法

  • 共享库

第四章文件系统

  • 所有的计算机应用程序存储和检索信息
  • 能够存储大量信息
  • 使用的信息的进程终止时,信息仍旧存在
  • 必须能使多个进程并发访问有关信息

####文件结构

####文件类型

####文件访问

####文件属性 ####文件操作 create delete open close read write ####目录管理

  • 一级目录系统
  • 层次目录系统
  • 路径名 绝对路径名
  • 相对路径名 工作目录
  • 每个进程都有自己的工作目录
  • 目录操作

####文件系统的实现

  • 文件系统布局
  • 文件的实现
  • 连续分配
  • 链表分配: 存储文件的第二个方法为每个文件构造磁盘块列表
  • 采用内存中的表进行链表分配
  • 文件分配表

目录的实现

  • 将查找结果存入高速缓存

共享文件

  • 日志结构文件系统

####文件系统性能

*减少磁盘访问次数 块高速缓存 或者 缓存区高速缓存

###第五章输入/输出

  • IO设备 分为块设备 和字符设备

设备控制器

  • 电子部件称做设备控制器 或者适配器
  • 内存映射IO
  • 在计算机设计中,实际上任何事情都要设计权衡
  • 现代个人计算机趋势是包含专有的高速内存总线
  • 直接存储器存取 DMA: 包含一个地址寄存器 ,一个字节 计数寄存器 一个或者多个寄存器
  • 大多数DMA使用物理地址进行传送 ,然后DMA控制器 必须使用MMU来完成虚拟地址到物理地址的转换
  • 在DMA开始之前 ,磁盘首先要将数据读入其内部的缓冲区中 通过进行内部缓存 磁盘控制器可以在开始传送之前检验校验和

重温中断

  • 精确中断 和 不精确中断

硬件结构

  • 冯洛伊曼结构: 1. 中央处理单元 2. 存储器 3. 输入输出
  • 指令集:通常包含一系列不同功能的指令 用于数据搬移计算 内存访问 过程调用
  • 数据搬移指令: mov
  • 寄存器指令: add sub
  • 内存读写指令 ldr str
  • CPU在执行过程中,可以通过访存指令向物理内存写入数据或者从中读取数据
  • 缓存结构:CPU缓存由若干个缓存行组成

第三章内存管理

分层存储体系 1. 高速缓存 2. 磁盘存储 操作系统把需要的程序从磁盘复制到内存并执行

这个简单的方法就是使用动态重定位,简单的把每个进程的地址空间映射到物理内存的不同部分

交换技术

虚拟内存: 每个程序拥有自己的空间地址,这个空间被分割成多个块,每一块称为一个页或者一个页面

分页: 内存管理单元把虚拟地址映射成物理内存地址 缺页中断 或者 缺页错误 分页的两个问题 : 虚拟地址到物理地址的映射必须非常快 2.如果虚拟地址空间很大,那么页表也会很大 转换检测缓存区或者是快表

针对大内存的页表 多级页表