zoukankan      html  css  js  c++  java
  • 操作系统笔记之二

    [清华向勇]操作系统笔记之二

    2.1 操作系统的启动

    DISK:存放OS

    BIOS:基本I/O 处理系统

    BootLoader :加载OS

    CS:IP = 0xf000:fff0(CS:段寄存器;IP:指令寄存器)

    POST(加电自检):寻找显卡和执行BIOS,先检查各种设备是否正常,然后将BootLoader加载到内存当中,

    BootLoader 一般存放在硬盘的第一个引导扇区(512K),BIOS将BootLoader加载到 0x7c00 的位置。随后BootLoader负责将Disk中的OS加载到内存。

    BootLoader接下来将找到OS的起始地址以及OS的长度,并将这块数据加载到内存中。然后将CPU的控制权交给OS。

    接下来整个操作系统的管理都由OS来处理。

    2.2 中断、异常、系统调用

    操作系统的interface有三个:中断、异常和系统调用。其中,面对外设是通过中断来处理;面向应用程序,通过系统调用和异常来处理。

    系统调用(来源于应用程序):应用程序主动向操作系统发出服务请求。

    异常(来源于不良的应用程序):非法指令或者其他坏的处理状态(如内存出错)

    中断(来源于外设):来自不同的硬件设备的计时器和网络的中断。

    为什么要通过interface?

    1. 在计算机运行中,内核是被新人的第三方;
    2. 只有内核可以执行特权指令;
    3. 为了方便应用程序。

    疑问:(系统调用和函数调用有什么区别?)

    三者有什么区别和特点?

    可以从以下三点来考虑:

    • 源头:
      中断——外设
      异常——应用程序意想不到的行为
      系统调用——应用程序请求操作提供服务。

    • 处理时间:
      中断——异步
      异常——同步
      系统调用——异步或同步

    • 响应:

      中断——持续,对用户应用程序是透明的
      异常——杀死或者重新执行意想不到的应用程序指令
      系统调用——等待或持续

    主动一点,世界会更大!
  • 相关阅读:
    Postgresql
    Partitioning with PostgreSQL v11 (转发)
    Partitioning with PostgreSQL v11 (转发)
    What is Data Partitioning?(转发)(未完待续)
    How to use table partitioning to scale PostgreSQL(转发)
    PostgreSQL 创建分区表(转发)
    json vs jsonb
    性能不佳的多线程应用程序的常见模式(microsoft)
    提高.net程序性能和稳定性-CLR Profile(转发)
    检查c#代码内存泄露工具-CLR Profiler工具使用(转发)
  • 原文地址:https://www.cnblogs.com/sweet-li/p/13610866.html
Copyright © 2011-2022 走看看