操作系统笔记(四)中断和系统调用等

  • bootstrap:
  1. 执行者:boot-loader(不是操作系统的一部分). 如 GRUB
  2. 任务: 1)加载OS到内存  2)将控制转交给OS
  • 中断
  1. 处理步骤:
    • 硬件:保存寄存器, 切到ISR(Interrupt Service Routine)
    • ISR汇编:保存需要的寄存器,设置环境
    • ISR C: 处理中断,从外设读入数据
    • ISR C: 返回汇编ISR
    • ISR汇编:恢复寄存器,返回中断点。
  2. ISR:
    • 本质:以IRQ(Interrupt ReQuest number)为索引检索interrupt vector
    • 应用:处理中断时,CPU根据设备的IRQ定位Interrupt vector中对应的ISR
  3. 异步事件
  • 异常
    • 本质:处理器执行指令时遭遇异常。因是同步事件(处理完才返回),又称为软件中断或同步中断
    • 与中断区别:1)发起对象 外设 vs 软件 2)处理方式 异步 vs 同步
  • 外设的访问:device controller(含寄存器)
  1. I/O 传输
    • 同步I/O:同步事件,进程阻塞。
    • 异步I/O:异步事件,多次中断。
    • DMA:异步事件,一次中断。
    • 操作系统笔记(四)中断和系统调用等_第1张图片
  2. I/O 端口(8/16地址):特殊命令,如IN/OUT reg, port 将I/O端口的数据读或写到CPU寄存器
  3. 内存映射I/O(内存地址):通用指令,同一总线。
    • 本质:视作内存
    • 优势:设备驱动可以用C语言写; 不需要单独的I/O保护机制;指令重用
    • 劣势:内存的缓冲机制对于外设很危险
  4. 现状:结合使用,memory-mapped i/o用于数据寄存器,i/o端口用于指令寄存器
  • 硬件保护
  1. dual mode operation: 0 for 内核,1 for 用户。设置在硬件上。
  2. privileged instructions:I/o 保护。包括所有I/o命令。仅在内核态执行。
  3. memory protection:控制内存可访问的范围。base register and limit register。【base, base + limit)
  4. cpu protection: 防止单程序一直占用CPU。计时器(counter register 和 holding register)
  • 系统调用
  1. 操作系统提供给用户程序访问的接口
  2. call wapper of system call in C run-time(CRT) library -> store system call number -> trap into os -> get system call service routine by indexing a system call table using system call number -> run system call service routine and return to user programs ... 
    • 操作系统笔记(四)中断和系统调用等_第2张图片
  3. 如何trap into os? exception(INT 0x80/0x2e) or special instruction(SYSENTER and SYSEXIT)
  4. 与库函数的区别:系统调用需要切换到内核态,也就意味着更大的调用开销。库函数本质上和用户自定义的函数一致。

转载于:https://www.cnblogs.com/niuxu18/p/note_os_4.html

你可能感兴趣的:(操作系统笔记(四)中断和系统调用等)