0
点赞
收藏
分享

微信扫一扫

操作系统复习总结

陆佃 2022-01-20 阅读 40

操作系统复习总结

  1. 什么是os
    从用户的角度看呢,os是用户和硬件系统的借口。
    从资源管理角度看,os是资源的管理者,这句话我觉得是核心,os是计算机的资源管理者,管理计算机的很多资源。
    从虚拟机角度看,os是一组命令

  2. os到底是干啥的
    os是程序的集合,管理资源(处理器资源,存储器资源,文件管理,内存管理等等)

  3. 操作系统的四大特性

    1. 并发性:(多个事件在同一个时间间隔内发生)
    2. 共享:(互斥共享和同时共享):临界资源只允许一个进程在这段时间访问,和多个进程可以同时访问。
    3. 虚拟:把一个物理实体,变成若干个逻辑实体。
    4. 异步:进程的推进顺序是不可预知的。因为竞争资源的存在导致。
      其中,并发和共享互为存在条件,如果不并发,共享就没有意义。如果不共享,无法并发。
  4. 处理机的特权级
    分级是为了保护os的系统,不可能让用户级的程序拥有太大的权利的。

    1. 管态:又称系统态,处于这个状态的进程可以使用所有指令,特权非特权级别的指令都可以使用。
    2. 目态:又称用户态,只能是有非特权指令,并且只能访问自身所在的存储区域。
  5. 系统调用

    1. 系统调用的流程提取如下:
      • 用户发送请求系统调用指令
      • 传递系统调用的参数
      • 执行trap(陷入)指令
      • 执行相应的服务程序
      • 返回用户态
    2. 系统调用本身是操作系统为了用户提供的一些接口,一些高级的语言比如C,Java会封装这些系统调用成为一些库函数。而系统调用
  6. 进程的一些知识点

    1. 进程是静止的程序。也可以说进程是程序的一次执行过程。而程序本身是一个指令的集合。程序和进程不是一一对应的,一个程序可以对应多个进程,(多次执行)。
    2. 程序的执行可以分为顺序执行与并发执行
      1. 顺序执行:
        • 顺序性:指令自上而下,一条一条运行
        • 封闭性:指令的执行与外界因素没什么关系
        • 可再现性:再一次运行运行程序,结果相同
      2. 并发执行:
        • 间隔性:运行一段时间,暂停一段时间。
        • 不可再现:由于推进速度的不同,结果可能会不一样
        • 失去封闭性:本进程暂停运行的同事,可能会有其他的进程来修改本进程所需要的资源。
    3. 进程是动态的,具有以下几点特征:
      1. 动态
      2. 独立性(它是系统资源分配的最小单位)
      3. 并发性
      4. 异步性
    4. 一个进程的结构:
      1. pcb(记录了这个进程的一些信息,相当重要)
      2. 数据段
      3. 程序段
    5. Pcb:
      1. 记录进程的动态特征
      2. 是进程存在的唯一标志
      3. pcb的一部分一直存在在内存中,也就是,就算虚拟内存在,也不会全部调出去。
    6. 进程同步
      1. 同步的原则:
        1. 空闲让进:临界区资源空就可以拿到
        2. 忙则等待:临界区资源不空,就等待别的进程用完
        3. 有限等待:不能一直无限期等下去
        4. 让权等待:没有拿到临界区资源的进程,释放cpu
    7. 进程的调度
      1. 调度的时机
        1. 时间片用到了
        2. 申请临界区资源需要等待
        3. 中断返回等
      2. 进程调度算法
        1. 先来先服务(FCFS):哪个进程先进入,就先处理它,处理完再说(对短进程不利)
        2. 短作业优先:短的进程先服务(对长进程不利)
        3. 优先级算法:有两种,静态的就是对进程设定权重,权重大的先服务,动态的是等待时间越久优先级越大。
        4. 时间片轮转调度:一个进程分配一个时间片,运行结束,就让出cpu。
        5. 多级反馈调度:优先级高的队列越能进入cpu,一个队列中的进程是遵循FCFS来执行的。
          8.进程状态图
          在这里插入图片描述
      3. 创建态到就绪态:需要分配除了cpu之外的一切资源(这里也说明了,cpu其实是最重要的资源),从创建态可以直接到就绪挂起状态。
      4. 就绪态:就绪态的进程拥有除了cpu之外的一切资源。就绪态和就绪挂起可以互相转换。就绪态的进程一旦拥有了cpu就会变成运行态。
      5. 运行态:运行态的进程拥有包括cpu在内的所有资源。一旦时间片到了,或者cpu被强占,运行态的程序就会退化到就绪态,而当运行态的程序需要请求一些系统调用(比如输入输出)她就会进入阻塞态,阻塞态的进程需要等待被唤醒。
      6. 阻塞态:阻塞态的进程是不能直接进入运行状态的。阻塞状态的进程放弃了自己的所有资源,但是这个进程还是在内存中的。
      7. 阻塞挂起和就绪挂起,长时间不能进入就绪态的就绪进程和阻塞进程,就会被挂起,挂起的意思是,进程被调入外存,而不在内存了
      8. 终止态,系统运行完毕,就会进入终止态。
  7. 线程的一些知识点:

    1. 进程是系统分配资源最小的单位。但是县城是cpu执行的最小单位。
    2. 属性有:
      1. 并发性
      2. 共享所属进程所有的资源

    3.线程分为用户级线程和系统进程。

  8. 死锁
    死锁:一组进程中,每个进程都在无限等待另一个进程释放资源。

    1. 死锁产生的原因
      1. 竞争资源:资源够多就不需要竞争了。
      2. 进程的推进顺序不当
    2. 死锁的必要条件
      1. 互斥
      2. 环路等待
      3. 请求与保持
      4. 不剥夺
  9. 存储器管理

    1. 内存的分配
      1. 分区分配,分区等长,或者分区不等长
      2. 可变分区分配
        1. 首次适应
        2. 最佳适应
        3. 最坏适应
      3. 可变分区分配之分页与分段
        1. 分页
          1. 基本概念:页面=页,页框=帧。
          2. 地址结构 页号P + 页内地址d
          3. 页表:在这里插入图片描述
            理解这张图就能把页表这个概念理解透彻了。
            虚拟地址分为,页号,页内地址。首先根据页号找到页表中块的存储位置,再根据页内地址映射出真实的物理地址。
          4. 多级页表:多级页表的存在主要是为了解决页表太大,读取一张页表很占内存的问题。
          5. 快表:块表的存在是记录近几次访问到的内存地址,提高访问速度。如果这个页号是之前存在快表中的,那无需读取页表,直接访问内存地址即可。
          6. 分页是对程序员隐藏的,就是不可见的,虽然提高了内存的利用率,但是对于使用者来说是一个黑盒
      4. 分段式(这个是对程序员不隐藏的)
      5. 段页式存储(用的最多的)
  10. 虚拟存储(两张图)

    1. 页表项
      在这里插入图片描述
      1. 页号
      2. 物理块:在内存中的地址
      3. 状态位:是否在内存
      4. 访问字段:提供页面置换算法使用
      5. 修改为:是否被修改
      6. 外存地址:如果放在外存,那是放在了哪儿
    2. 页面置换算法
      1. 先进先出
      2. 始终算法
      3. LRU算法
      4. 最佳算法(不可能存在)
举报

相关推荐

0 条评论