操作系统学习Day01

操作系统(一)

操作系统是一个资源管理的分配器

操作系统将CPU抽象成进程,磁盘抽象成文件,内存抽象成地址空间来给应用程序使用

操作系统是系统软件,应用于硬件

操作系统位于应用软件之下,为应用软件提供服务支撑

操作系统的特征:并发、共享、虚拟、异步

操作系统的启动
  1. CPU, I/O, 内存通过总线连接
  2. DISK:存放OS;BIOS:基本I/O处理系统( basic I/O system); Bootloader: 加载OS到内存中。
  3. 当电脑通电时,段寄存器CS和指令寄存器IP能够确定一个内存地址,例如CS:IP = 0xf000:fff0
  4. POST(加电自检),寻找显卡和执行BIOS。(显示器,键盘…是否正常)。
为什么应用程序不能直接访问硬件而是通过操作系统?
  • 计算机运行时,内核是被信任的第三方
  • 只有内核可以执行特权命令
  • 为了方便应用程序
中断、异常、系统调用的不同和特点
  1. 从源头看:
    • 中断:外设
    • 异常:应用程序意想不到的行为;比如说,指令异常导致计算机无法工作,一些恶意程序越 过权限访问其他内存的地址
    • 系统调用:应用程序请求操作提供服务;比如:打开文件,关闭,读取文件,发送网络包等等
  2. 处理时间:
    • 中断:异步(不知道什么时候发生)
    • 异常:同步(知道什么时候发生,比如:除0操作,发生了之后立马异常)
    • 系统调用:异步或同步
  3. 响应状态
    • 中断:持续,对用户应用程序是透明的
    • 异常:杀死或者重新执行意想不到的应用程序指令
    • 系统调用:等待和持续
中断、异常和系统调用
  1. 中断、异常处理机制

    中断是外设的时间,异常时CPU的事件;中断/异常迫使CPU访问一些被中断和异常服务访问的功能

  2. 中断处理机制

    硬件:设置中断标记(CPU初始化)

    • 将内部/外部事件设置中断标记
    • 中断事件的ID(程序访问的中断向量的地址)

    软件(操作系统):

    • 保存当前处理状态
    • 中断服务程序处理
    • 清除中断标记
    • 恢复之前保存的处理状态
  3. 异常处理机制

    异常:异常编号

    • 保存现场
    • 异常处理:杀死产生异常的程序指令;重新执行异常指令
    • 恢复现场
  4. 系统调用

    • 一条指令会触发一个系统调用

    • 程序访问主要是通过高层次的API接口而不是直接进行系统调用

    • 通常情况下,存在与每个系统调用相关的序号,系统调用接口根据这些序号来维护表的索引。

    • 系统调用接口调用内核态中预期的系统调用,并返回系统调用的状态和其它任何返回值。

    • 用户不需要知道系统调用是如何实现的,只需要获取API和了解操作新系统将什么作为返回结果。操作系统接口的细节大部分都隐藏在API中,并通过运行程序支持的库来管理。

    • -用户态:应用程序在执行的过程中,CPU执行的特权级的状态(很低,不能访问特殊机器指令和IO)。

    • 内核态:应用程序在执行的过程中,CPU执行的特权级的状态(高,操作系统可以执行CPU任何一条指令)。

    • 系统调用时涉及到特权级从用户态到内核态的转换,应用程序和操作系统有各自的堆栈,这两个变化比函数调用的开销更大,但更安全和可靠。(而程序调用是在一个栈空间实现参数的调用和返回)。

    • 跨越操作系统边界的开销

      • 在执行时间上超过程序调用
      • 开销包括:
        • 建立中断/异常/系统调用号与对应服务例程映射关系的初始化开销
        • 建立内核堆栈(操作系统和应用程序的堆栈不一样);
        • 验证参数(操作系统会检查数据);
        • 内核态映射到用户态的地址空间,更新页面映射权限(内存拷贝开销);
        • 内核态独立地址空间TLB。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值