• Home
  • About
    • yukiiris photo

      yukiiris

      少说话,多读书

    • Learn More
    • Twitter
    • Facebook
    • Instagram
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects
  • Moon

操作系统学习笔记(一)

20 Sep 2017

Reading time ~1 minute

引论

1.3 计算机硬件

  1. 处理器/CPU:从内存中取出指令并执行
    • 寄存器:保存关键变量和临时数据
      • 程序计数器:保存下一条指令的地址
      • 堆栈指针:指向内存中当前栈的顶端
      • 程序状态字:条件码位、模式(用户or内核)、CPU优先级
    • 流水线机制
    • 超标量CPU(执行顺序问题)
  2. 存储器
    • 顶层:寄存器,由软件管理,少,快
    • 第二层:高速缓存,硬件控制,少,快
    • 第三层:主存/RAM,稍大,慢。高速缓存未命中的访问都将送往主存
    • 第四层:磁盘
      • 磁道
      • 扇区:512字节
      • 柱面
    • 第五层:磁带,保存大量数据
    • 只读存储器/ROM:快,便宜,只读
    • EEPROM和闪存:非易失,可擦除和重写
    • CMOS:易失的
  3. 磁盘
  4. 磁带
  5. I/O设备
    • 设备控制器
    • 设备本身
  6. 总线
  7. 启动计算机
    • 基本输入输出系统/BIOS运行
    • BIOS检查各设备及储存是否正常
    • 扫描总线上的设备并记录、配置
    • BIOS通过尝试存储在CMOS存储器中的设备清单决定启动设备
    • 操作系统询问BIOS,获得配置,检查驱动并调入内核
    • 初始化表格,创建背景进程,启动登录程序或GUI

1.4 操作系统们

  • 大型操作系统:OS/390
  • 服务器操作系统:linux、window server
  • 多处理器操作系统
  • 个人计算机操作系统
  • 掌上计算机操作系统
  • 传感器节点操作系统
  • 实时操作系统
  • 智能卡操作系统

1.5 操作系统概念

  1. 进程
  2. 地址空间
  3. 文件
  4. 输入/输出
  5. 保护
  6. shell

1.6 系统调用

  • 操作系统的作用:为用户程序提供抽象和管理计算机资源
  • 一个CPU一次只能执行一条指令
  • TRAP指令:用户态和内核态切换
  1. 用于进程管理的系统调用
    • fork(派生)
    • waitpid
    • execve
  2. 用于文件管理的系统调用
    • open
    • read
    • write
  3. 用于目录管理的系统调用
    • mkdir
    • rmdir
    • link
    • mount(树)

1.7 操作系统结构

  1. 单体系统:全部操作系统在内核态中以单一方式运行
    • 构造目标程序的方法:编译所有单个过程或文件,然后通过系统链接程序将它们链接成单一目标文件
  2. 层次式系统:上层软件都是在下层软件的基础上构建的
    • 每一层都不需要关心其下面层已经构建好的功能的细节
    • 各个部分仍由链接完成单个过程
  3. 微内核:为了实现高可靠性,将操作系统划分成小的、定义良好的模块。只有其中一个微内核运行在内核态上,其余全在用户态上。
    • 内核态的外部
      • 驱动:
      • 用户态:完成操作系统的多数操作
  4. 客户-服务器模式
  5. 虚拟机
  6. 外核


operate system Share Tweet +1