计算机操作系统学习笔记(1)

操作系统内核特征

  • 并发:
    并发与并行区别
    并发:在一段时间内,有多个程序可以运行
    并行:在一个时间点上,有多个程序可以同时执行
  • 共享:分时访问,一个时间点某一个内存单元只有一个访问,互斥共享,操作系统带来共享特征
  1. 同时访问
  2. 互斥共享
  • 虚拟:运用多道程序设计技术,让每个用户都觉得有一个计算机专门为他法务。虚拟化硬件,比如,cpu虚拟化为进程,磁盘虚拟化为文件,内存虚拟化为地址空间
  • 异步:
    程序不是一直执行到底,而是走走停停,向前速度不可预知的异步的执行过程
    只要程序运行环境相同,程序最终运行结果也是相同的
    即使异步也要保证结果是正确的

操作系统启动

BIOS上电自检->bootloader->OS

产生源头

  • 系统调用:应用程序主动向操作系统发出服务请求
  • 异常:是应用程序意想不到的行为,非法指令或者其他坏的处理状态,由操作系统完成
  • 中断:来源于外设,来自不同的硬件设备的计时器或网络的中断

处理时间

  • 中断:异步
  • 异常:同步
  • 系统调用:异步或同步

响应

  • 中断:持续,对用户应用程序是透明的,几乎察觉不到的
  • 异常:杀死或或重新执行
  • 系统调用:等待或持续

处理中断:中断编号

硬件处理:

  • 设置中断标记,将内、外部时间设置中断标记,中断事件的ID

软件处理:

  1. 保存当前处理状态
  2. 中断服务程序处理
  3. 清除中断标记
  4. 恢复之前保存的处理状态

处理异常:异常编号

  1. 保存现场
  2. 异常处理:
    -- 杀死产生异常的程序
    -- 重新执行异常指令对应用程序透明
  3. 恢复现场

操作系统连续内存的分配

内存碎片问题

  • 空闲内存不能被利用
  • 外部碎片:在分配单元间的未使用内存
  • 内部碎片:在分配单元中的未使用内存

简单的内存管理方法

  • 当一个程序准许运行在内存中时,分配一个连续的区间
  • 分配一个连续的内存区间给运行的程序以访问数据

分配策略:

首次适配:

当应用程序提出申请,请求n个byte,操作系统从低地址到高地址分配第一个可用的空间块

  • 简单实现

  • 需求:

  1. 按地址排序的空闲块列表
  2. 分配需要找到一个合适的分区
  3. 重分配需要检查,看自由分区能否合并于相邻的空闲分区
  • 优势:
  1. 简单
  2. 易于产生更大空闲块,向着地址空间的结尾
  • 劣势:
  1. 容易产生外部碎片
  2. 不确定性

最优适配

当应用程序提出申请,请求n个byte,操作系统从低地址到高地址分配最适合的空间块

  • 为了避免对大的空闲块拆分
  • 最小化外部碎片的尺寸
  • 需求:
  1. 按尺寸排列空闲块列表
  2. 寻找一个最合适的分区
  3. 重分配需要考虑相邻的空闲分区
  • 优势:
  1. 当大部分分配是小尺寸时非常有效
  2. 比较简单
  • 劣势:
  1. 对外部空间拆分的比较细,产生小的难以利用的外部碎片
  2. 重分配慢

最差适配

当应用程序提出申请,请求n个byte,操作系统从低地址到高地址分配最大的空间块,避免拆分小块

  • 为了避免产生大量微小的碎片
  • 需求
  1. 按尺寸排序空闲块列表
  2. 分配很快,获得最大分区
  3. 重分配需要合并相邻的空闲分区,调整空闲块列表
  • 优势:
  1. 分配中大型请求效果最好
  • 劣势:
  1. 一开始就分配大块,在以后需要大块时可能分配不到
  2. 重分配慢
  3. 外部碎片
posted @ 2017-09-20 20:05  卷积蘑菇  阅读(450)  评论(0编辑  收藏  举报