操作系统学习笔记001

操作系统学习笔记001

预备知识:数据结构,计算机组成原理

什么是操作系统:

  • 没有一个完整,精确,公认的定义
  • 从功能和特点来介绍操作系统
    • 功能
      • 用户角度上,操作系统是一个控制软件
      • 管理应用程序
      • 为应用程序提供服务
      • 杀死应用程序
    • 对于操作系统管理的内部对象来说
      • 资源管理
        在这里插入图片描述
      • 管理外设,分配资源

操作系统层次结构
- 硬件之上
- 应用程序之下
在这里插入图片描述

应用软件:办公软件,视频播放软件
操作系统位于应用软件之下,为应用软件提供服务支撑

外壳(Shell) kernel(内核)

OS Kernel的特征
- 并发
- 计算机系统中同时存在多个运行的程序,需要OS管理和调度
- 共享
- “同时”访问
- 互斥共享
- 虚拟
- 利用多道程序设计技术,让每个用户都觉得有一个计算机专门为他服务
- 异步
- 程序的执行不是一贯到底,而是走走停停,向前推进的速度不可预知
- 但只要运行环境相同,OS需要保证程序运行的结果也要相同

为什么要学习操作系统

  • 综合课程 -结合许多不同的课程

    • 程序设计语言
    • 数据结构
    • 算法
    • 计算机体系结构
    • 材料
    • 操作系统概念和原理,源代码
    • 技能
    • 操作系统的设计与实现
  • 已经有了很多操作系统,例如Windows,Linux

  • 为什么要学习操作系统:

    • 操作系统还在不停的发展,在工控等各种领域有强烈的需求!
    • 操作系统很酷,很有用,有挑战。
  • 操作系统:计算机科学研究的基石之一

    • 计算机系统的基本组成部分
    • 由硬件的发展和应用的需求驱动
    • 学术和工业的持续推进
  • 工业界

    • 微软,谷歌、Facebook,,,
    • 苹果:iPhone,iPad,,,以OS为核心
  • 学术界

    • ACM
    • IEEE
    • USENIX
    • 国内:CCF
  • 了解操作系统最新进展的会议:

    • SOSP(每两年,1967 - …)
    • USENIX(每两年,1994 - …)
  • 学习操作系统很有挑战:

    • Windowsxp 4500万行代码
    • 实际操作系统的代码量巨大不可能完全掌握
    • 目标是理解其核心内容
    • 操作系统管理并发
      • 并发导致有趣的编程挑战
    • 操作系统代码管理原始硬件
      • 时间依赖行为,非法行为,硬件故障
    • 操作系统代码必须是高效的
      • 低耗cpu、内存、磁盘
    • 操作系统出错,就意味着机器出错
      • 操作系统必须比用户程序拥有更高的稳定性
    • 操作系统是系统安全的基础
  • 操作系统需要权衡:

    • 空间与时间
    • 性能和可预测性
    • 公平和性能
  • 硬件方面,操作系统需要:

    • 良好的硬件管理
    • 合理的资源分配
    • 例如:硬盘速度跟CPU,内存相差很多,操作系统需要协调处理
  • 如何学习操作系统:

    • 我听到的我会忘记
    • 我看到的我能记住
    • 只有我做过的我才能理解
  • 操作系统实例

    • UNIX BSD
      在这里插入图片描述

    • Linux仿UNIX
      在这里插入图片描述

  • Windows家族
    在这里插入图片描述

  • 操作系统的历史
    计算机硬件 应用需求的发展操作系统发展

  • 早期计算机使用纸带传输程序和数据,操作系统只起到加载作用

  • CPU等硬件快速发展,计算机速度得到提升,性能未得到充分利用

批处理阶段

  • 内存越来越大,cpu执行多个程序

    多道程序设计
  • 为了更好的利用计算机资源,并且更好的和用户交互,出现了分时系统
    • 时钟来触发操作系统切换应用程序,中断

操作系统结构

ms-dos
linux

ucore:
在这里插入图片描述
消息传递调用取代函数调用 松耦合->微内核:
在这里插入图片描述
灵活和安全,代价是性能

外核:
在这里插入图片描述
和应用紧耦合,主要在学术界,性能好,安全

VMM 虚拟机监视器
加粗样式
运行在传统os中

优点:多操作系统共享硬件资源

启动 中断 异常 系统调用

在这里插入图片描述
disk:存放os
bios:基本i/o处理系统

boot loader:加载os,到内存 cpu可执行

通电后BIOS执行0xf000:fff0内存地址的内容
在这里插入图片描述
BIOS执行自检
post(加电自检)
检查完毕加载boot loader
在这里插入图片描述

bootloader一般放在硬盘的一个扇区512kb

系统调用 中断 异常

在这里插入图片描述
在这里插入图片描述

  • 定义:

    • 系统调用(来源于应用程序)
      • 应用程序主动向操作系统发出服务请求
    • 异常(来源于不良的应用程序)
      • 非法指令或者其他坏的处理状态(如:内存出错)
    • 中断(来源于外设)
      • 来自不同的硬件设备的计时器和网络的中断
  • 在计算机运行中,内核是被信任的第三方

  • 只有内核可以执行特权指令

  • 为了方便应用程序

操作系统如何设计实现中断 异常 系统调用
它们三者有什么区别和特点

在这里插入图片描述

  • 源头
    • 中断:外设
    • 异常:应用程序意想不到的行为
    • 系统调用:应用程序请求操作系统提供服务
  • 处理时间
    • 中断:异步
    • 异常:同步
    • 系统调用:异步或同步
  • 响应
    • 中断:持续,对用户应用程序是透明的
    • 异常:杀死或者重新执行意想不到的应用程序指令
    • 系统调用:等待和持续

在这里插入图片描述

物理内存管理 连续内存分配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

地址空间定义

逻辑地址空间与物理地址空间

在这里插入图片描述

逻辑地址生成

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上为地址相关知识,接下来内存分配相关知识

连续内存分配和内存碎片

在这里插入图片描述
连续内存分配:分配的地址是连续的
在这里插入图片描述
###碎片整理
####紧凑(compaction)
在这里插入图片描述
####碎片整理:分区对换(Swapping in/out)
在这里插入图片描述
在这里插入图片描述

非连续内存分配:分段

本章内容:
为社么要采用非连续内存分配
分段
分页
页表

连续分配内存的缺点

  • 分配给一个程序的物理内存是连续的
  • 内存利用率较低
  • 有外碎片、内碎片的产生

非连续分配内存的优点缺点

非连续分配的缺点
  • 一个程序的物理地址空间是非连续的
  • 更好的内存利用和管理
  • 允许共享代码与数据(共享库等…)
  • 支持动态加载和动态链接
非连续分配的缺点
  • 如何建立虚拟地址和物理地址直接的转换
    • 软件方案
    • 硬件方案

两种硬件方案

分段
分页
分段
需要关注的问题:
1. 程序的分段地址空间
2. 分段寻址方案

在这里插入图片描述
逻辑地址与物理空间 数据分类 隔离与共享
这样的设计需要一个映射机制映射逻辑地址到物理地址 :
在这里插入图片描述
分段寻址方案:
在这里插入图片描述
在这里插入图片描述

非连续分页:分页

分段机制用的很少,更多的是使用分页机制
分段的大小是可变的 分页内存的划分是有固定大小的帧(Frame)的

本节重点:
1. 分页地址空间
2. 页寻址方案
  • 划分物理地址内存至固定大小的帧(Frame)
    • 大小是2的幂,e.g.,512,4096,8192
  • 划分逻辑地址空间至相同大小的页(Page)
    • 大小是2的幂,e.g:512,4096,8192
  • 建立方案 转换逻辑地址为物理地址(pages to frames)
    • 页表
    • MMU/TLB
帧(Frame)

在这里插入图片描述
o:offset
上图不明,只做参考
在这里插入图片描述

  • 解析 :
    用9bit可以表示2的9次方512的地址偏移,即帧的大小是512
    3,6 表示第三段 偏移6 得:物理地址=3*512+6=1542

  • 以上为物理帧的表示,接下来为逻辑地址页的实现
    在这里插入图片描述
    页的计算和帧的技术相似

接下来逻辑地址和物理地址映射:
在这里插入图片描述

非连续内存分配:页表

概述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
MMU内存管理单元里的TLB

二级页表 多级页表

在这里插入图片描述
在这里插入图片描述

反向页表

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

虚拟内存

在这里插入图片描述

覆盖技术

上世纪89十年代技术,为了应对当时内存小的状况
内存中要有一段常驻内存来调度内存的覆盖 

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
这个技术为面对当时的生态的的技术 现在很少使用

交换技术

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

虚存技术

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值