zoukankan      html  css  js  c++  java
  • 华为内部面试题库(6)

    1.SMP体系结构中,中断亲和性是指将一个或者多个中断绑定到特定CPU core上运行,下列说法错误的是:
    A.每个硬件设备都会在/proc/irq下有个中断号命令的目录来标志中断亲和性
    B.IRQ#
    目录下smp_affinity文件,通过设置CPU位掩码,把相应中断绑定到不同CPU处理
    C.
    修改smp_affinity值,实际上修改IO_APIC IRT表中中断重定向值
    D.
    中断亲和性,即APIC总线格式化中断消息,把相关中断发送给一个或者多个LAPIC单元

    答案:A

      试题解析:对于已经在irq线上注册过的中断硬件设备,会在/proc/irq目录下新建该中断号,可以通过cat /proc/interrupts查看不同中断线上,不同硬件设备在不同CPU core上处理中断的次数。

      通过设置smp_affinity不同位,可以把该中断线上的硬件中断处理绑定到不同CPU core处理,其本质在于IOAPIC在处理其硬件中断传过来的中短信息,在转发给LAPIC处理时,会根据其IO管脚上的中断重定向表中目的字段,转发给唯一LAPIC还是一组APIC来决定中断亲和性。

     

    2.下面有关中断线程化,说法错误的是:
    A.标准Linux中断优先级最高,实时任务被打断而得不到及时处理,引入中断线程化,赋予其一定的优先级,实时
    任务与中断按照优先级调度。
    B.
    中断例程描述符结构体中IRQ_NODELAY位来判断此中断是否允许被线程化
    C.
    中断线程化是由内核线程中执行
    D.
    所有的中断都可以线程化

    答案:D

      试题解析:在标准Linux中,外部硬件中断一旦发生,如果没有关中断情况下,内核马上处理其中断对应的中断处理函数。
      中断线程化,主要是在把中断赋值一定的优先级,和普通进程按照优先级调度。
      打过实时补丁的内核,在内核初始化init()函数,为每一个IRQ创建内核线程,同时修改了中断描述符结构体
    irq_desc,
      设置IRQ_NODELAY标志位,来决定是否由内核线程来处理此中断。对于系统0-31号中断中某些中断或者异常时不能中断线程化,

      如果按照优先级来调度,就发生未知后果(比如定时器)。

     

    3.下面有关中断负载均衡,说法错误的是:
    A.CPU
    负载不高是,中断亲和性有利于提高性能,可能在访问ISR代码时,cache利用率较高
    B.
    如果某个CPU负载过大,中断负载均衡模块进行中断迁移,中断迁移到空闲CPU运行
    C.
    在中断迁移是,内核自动感知irq中断,调用do_irq_balance()函数,进行中断迁移
    D.
    其他

    答案:D

      试题解析:中断负载均衡不高的情况下,利用中断亲和性,绑定到特定CPU进行处理,CPU LAPIC处理此中断,直接访问其cacheISR代码,不用下次再不同的CPU LAPIC中处理,如果某个CPU负载很大的情况下,调用do_irq_balance,进行中断迁移,把中断处理迁移到空闲CPU上进行处理。

     

    4.Linux实时调度算法中SCHED_FIFOSCHED_RR,描述不正确的是:
    A.SHCED_RR
    策略的进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾。放在队列尾保证了所有具有相同优先级的RR任务的调度公平。
    B.SCHED_FIFO
    一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃。

    C.SCHED_FIFO
    SCHED_RR不仅适用于实时任务,还使用于分时任务

    D.
    其他

    答案:C

      试题解析:linux内核调度分为分时调度、实时调度。SCHED_FIFO(先到先服务)与SCHED_RR(时间片轮转)只能实时调度。
       SHCED_RR策略的进程的时间片用完,系统将重新分配时间片,并置于就绪队列尾。放在队列尾保证了所有具有相同优先级的RR任务的调度公平。
       SCHED_FIFO一旦占用cpu则一直运行。一直运行直到有更高优先级任务到达或自己放弃。
      两者按照可抢占优先级调度算法进行,同时遵循就绪态的实时任务立即抢占非实时任务。 

     

    5.(多选)下面属于linux标准内核软实时化改造的关键技术点是:
    A.
    中断线程化
    B.
    内核完全可抢占
    C.
    高精度定时器
    D.
    优化调度策略

    答案:ABCD

      试题解析:linux内核软实时化,主要从中断、调度、定时器方面来进行改造,在还会存在对任务时延、抢占、优先级反转问题。
       Linux内核硬实时化,主要采用微内核,超微内核,资源内核方法来改造,部分介绍资料如下:
    http://www.embedu.org/Column/Column279.htm
    http://wenku.baidu.com/view/429bce2d2af90242a895e593.html

  • 相关阅读:
    springboot02-SpringSecurity
    java基础07- 二维数组
    java基础06-数组的使用
    逆向工程核心原理——第四章
    逆向工程核心原理——第三章
    Crackme_1_Acid_burn
    Crackme_2_Afkayas.1
    逆向工程核心原理——第二章
    MessageBox
    Python(基础)
  • 原文地址:https://www.cnblogs.com/wangfengju/p/6173053.html
Copyright © 2011-2022 走看看