zoukankan      html  css  js  c++  java
  • exception

    异常的产生:
    当处理器检测到有事件发生时,就会通过一个异常表 跳转到 内核程序(异常处理程序),来处理异常。

    异常的处理:
    系统为每个异常都分配了一个异常号。其中一些异常号是由处理器的设计者分配的,如:被0除,缺页,内存访问违例,断点,算术运算溢出等。其他的异常号是有操作系统内核设计者分配的,如:系统调用(syscall),外部I/O设备的引脚信号。
    运行时,若处理器检测到事件发生,确定异常号,然后读取CPU中的异常基址寄存器,从而找到异常处理程序的地址。控制器将控制转到异常处理程序(内核模式)。
    此过程由用户模式切换到内核模式。

    异常类型:
    中断(外部I/O产生的),系统调用(syscall n)(read ,write, fork, execve等),故障(被0除,缺页,内存访问限制等),中止(硬件错误)。

    • 系统调用:当用户进程调用write ,read等方法时,该方法内会调用syscall n 命令,进入内核的异常处理程序,通过内核操作处理读写。

    上下文切换:
    为了执行多任务,内核中的调度器,进行进程调度。在不同的用户程序之间进行上下文切换。内核为每个用户进程维护了一个上下文。

    内核态和用户态:
    在内核模式下,内核进程可以执行任何指令,访问任意的内存地址空间。而用户模式下,进程不能直接引用地址空间中内核区内的代码和数据(即内存地址空间的顶部,保留给内核的部分,操作系统常驻内存的部分)。

     

  • 相关阅读:
    python 用到的函数记录
    scala函数定义的四种方式
    java mail使用中遇到的550类型错误
    @Secured(), @PreAuthorize()
    jQuery each
    基于jQuery动态创建html元素
    jQuery validate在没有校验通过的情况下拒绝提交
    区别: @Secured(), @PreAuthorize() 及 @RolesAllowed()
    http meta
    注解:@Autowired
  • 原文地址:https://www.cnblogs.com/beaglebone/p/8443854.html
Copyright © 2011-2022 走看看