操作系统学习01

  1. 什么是操作系统
    用户角度:一个控制软件,管理应用程序,为应用程序提供服务,杀死应用程序
    对象管理:资源管理,管理外设、分配资源
    层次架构:硬件之上,应用程序之下
    操作系统位于应用软件之下,为应用软件提供服务支持支撑
    Linux,Windows,Android的界面属于外壳(Shell),而不是内核(Kernel),Kernel是我们研究重点,在shelll之下。在这里插入图片描述
    Kernel:操作系统内部组件,包括:
    1. CPU调度器
    2. 物理内存管理
    3. 虚拟内存管理
    4. 文件系统管理
    5. 中断处理与设备驱动

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

  2. 操作系统的启动:
    在这里插入图片描述
    Disk:存放OS
    BIOS:基本I/O处理系统,加载bootloader
    bootloader:加载OS(从硬盘放到内存中)
    在这里插入图片描述
    系统调用(来源于应用程序):应用程序主动向操作系统发出服务请求(同步或者异步)(等待和持续)
    异常(来源于不良的应用程序):非法指令或者其他坏的处理状态(如内存出错)(同步,知道是在某条特殊指令是产生的异常)(杀死或者重新执行意想不到的应用程序指令)
    中断(来源于外设):来自不同的硬件设备的计时器和网络的中断(异步,不知道什么时候会产生)(对于用户应用程序是透明的,用户无法感知到)

    *在计算机运行中,内核是被信任的第三方;只有内核可以执行特权指令;为了方便应用程序

    1. 中断,异常和系统调用:
      中断处理机制:
      硬件:设置中断标记(CPU初始化),将内部外部事件设置中断标记,中断事件ID
      软件:保存当前处理状态(便于后续恢复),中断服务程序的处理,清楚中断标记,回复之前保存的处理状态
      异常处理机制:异常编号
      保存现场,异常处理(杀死产生异常的程序/重新执行异常指令),恢复现场
      系统调用:例如标准c库中应用程序调用printf(),会触发系统调用write()
      程序访问主要是通过高层次API接口而不是直接进行系统调用:例如Java API用于JVM,最终还是用Win 32 API用于Windows

    跨越操作系统边界的开销:
    在这里插入图片描述

  3. 计算机体系结构以及内存分层体系:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在操作系统中管理内存的不同方法:
    程序重定位;分段;分页;虚拟内存;按需分页虚拟内存
    其实现高度依赖于硬件:必须知道内存架构,MMU(内存管理单元):硬件组件负责处理CPU的内存访问请求。

  4. 地址空间与地址生成:
    地址空间定义,地址生成,地址安全检查:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  5. 连续内存分配:内存碎片与分区的动态分配:
    内存碎片问题:空闲内存不能被利用
    外部碎片:在分配单元间的未使用内存
    内部碎片:在分配单元中的未使用内存

    分区的动态分配:
    在这里插入图片描述
    首次适配算法:
    分配找到的第一个大于需要分配的大小的可用的空闲块。简单且便于实现。需求:按地值排序的空闲块列表;分配需要寻找第一个分区;若分配需要检查,看是否自由分区能合并于相邻的空闲分区。
    优点:简单;容易产生更大空闲块,向着地址空间的结尾
    缺点:产生外部碎片;产生不确定性
    在这里插入图片描述
    最优适配算法:
    寻找最适合的可用空闲块(即大于所需内存的最小值)
    特点:避免分割大空闲块,最小化外部碎片产生的尺寸,需求:按尺寸排列的空闲块列表,分配需要寻找一个合适的分区,重分配需要搜索及合并于相邻的空闲分区,如果有的话
    优点:当大部分分配是小尺寸是非常有效,比较简单
    缺点:外部碎片;重分配慢;易产生很多没有用的微小碎片
    在这里插入图片描述
    最差适配算法:
    使用最大的可用内存块。为了避免太多微小的碎片。需求:按尺寸排列的空闲块列表,分配很快,重分配需要合并于相邻的空闲分区,若有,然后调整空闲块列表
    优点:分配是中等尺寸效果最好
    缺点:重分配慢;外部碎片;易于破碎的空闲块一致大块区无法被分配

     ![在这里插入图片描述](https://img-blog.csdnimg.cn/73af236d0caa46f8ad9140c5b496027d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56a55rSL5Y2a,size_20,color_FFFFFF,t_70,g_se,x_16)
    
  6. 连续内存分配:压缩式与交换式碎片整理
    压缩式碎片整理:重置程序以合并孔洞;要求所有程序是动态可重置的。问题:何时重置?开销如何?
    交换式碎片整理:运行程序需要更多的内存,抢占等待的程序&回收它们的内存:被抢占的程序数据并未丢失,只是被存在了磁盘中。问题:选择哪些程序交换?
    在这里插入图片描述

  7. 非连续内存分配: 分段
    连续内存分配的缺点:分配给一个程序的物理内存是连续的,内存利用率低,有外碎片,内碎片的问题。
    非连续分配的优点:分配给一个程序的物理内存是非连续的,更好的内存利用和管理,允许共享代码与数据,支持动态加载与动态链接。
    缺点:如何建立虚拟地址和物理地址之间的转换(开销大):软件方案/硬件方案
    两种硬件方案:分段,分页。

    分段:程序的分段地址空间;分段的寻址方案:
    在这里插入图片描述
    在这里插入图片描述
    映射关系(逻辑地址——物理地址):
    在这里插入图片描述
    硬件的分段寻址方案:
    在这里插入图片描述
    段表:包含起始地址和长度限制 ,由操作系统建立段表
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值