码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-03-12 21:07:54      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:request   ogr   protect   time   步骤   软件   异步   系统   ber   

  • bootstrap:
  1. 执行者:boot-loader(不是操作系统的一部分). 如 GRUB
  2. 任务: 1)加载OS到内存  2)将控制转交给OS
  • 中断
  1. 处理步骤:
    • 硬件:保存寄存器, 切到ISR(Interrupt Service Routine)
    • ISR汇编:保存需要的寄存器,设置环境
    • ISR C: 处理中断,从外设读入数据
    • ISR C: 返回汇编ISR
    • ISR汇编:恢复寄存器,返回中断点。
  2. 中断向量:
    • 本质:以IRQ(Interrupt ReQuest number)为索引的ISR向量
    • 应用:处理中断时,CPU根据设备的IRQ定位Interrupt vector中对应的ISR
  3. 异常
    • 本质:处理器执行指令时遭遇异常。因是同步事件(处理完才返回),又称为软件中断或同步中断
    • 与中断区别:1)发起对象 外设 vs 软件 2)处理方式 异步 vs 同步
  • 外设的访问:device controller(含寄存器)
  1. I/O 端口(8/16地址):特殊命令,如IN/OUT reg, port 将I/O端口的数据读或写到CPU寄存器
  2. 内存映射I/O(内存地址):通用指令,同一总线。
    • 本质:视作内存
    • 优势:设备驱动可以用C语言写; 不需要单独的I/O保护机制;指令重用
    • 劣势:内存的缓冲机制对于外设很危险
  3. 现状:结合使用,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 and 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 ... 
  3. 如何trap into os? exception(INT 0x80/0x2e) or special instruction(SYSENTER and SYSEXIT)
  4. 与库函数的区别:系统调用需要切换到内核态,也就意味着更大的调用开销。库函数本质上和用户自定义的函数一致。

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

标签:request   ogr   protect   time   步骤   软件   异步   系统   ber   

原文地址:https://www.cnblogs.com/niuxu18/p/note_os_4.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!