1.在分页存储管理系统中,从页号到物理块号的地址映射是通过(  )实现的。

A.段表

B.页表

C.PCB

D.JCB

答案:B

用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等,可将用户程序的某一页放在内存的一个块中。线性地址包含了页号信息和页内偏移量信息(页大小为4Kbyte时线性地址的低12位为页内偏移量),页表的功能是将一个线性地址的页号转换为某一个物理块的物理地址。得到了物理块的物理地址后通过线性地址中的页内偏移量就可以找到精确的物理地址。

分段是将逻辑地址转换为线性地址,在LINUX中逻辑地址与线性地址是一致的,即LINUX实际上没有使用分段功能。

PCB(进程控制块):进程创建时内核为其分配的一个由结构体task_struct所定义的数据结构,其中包括了管理进程所需的各种信息,进程自身不能对其直接存取。

JCB:作业是用户提交给操作系统计算的一个独立任务,一般每个作业必须经过若干个相对独立又相互关联的顺序加工步骤才能得到结果。为有效管理作业,操作系统为每个作业建立作业控制块JCB(Job Control Block)用于对作业进行管理。JCB通常在批作业进入系统时建立,它是作业存在于系统的标志,作业撤离时,JCB也被撤销。

2.快速排序在( )情况下最易发挥其长处

A.被排序的数据中含有多个相同排序码

B.被排序的数据已基本有序

C.被排序的数据完全无序

D.被排序的数据中的最大值和最小值相差悬殊

答案: C

在快速排序算法中, n个元素被分成三段:左段l e f t,右段r i g h t和中段m i d d l e。中段仅包含一个元素。左段中各元素都小于等于中段元素,右段中各元素都大于等于中段元素。

因此l e f t和r i g h t中的元素可以独立排序,并且不必对l e f t和r i g h t的排序结果进行合并。m i d d l e中的元素被称为支点( pivot )。支点的一种选法是选择待排序段中的第一个元素。

在最坏情况下(被排序的数据已基本有序) l e f t总是为空,快速排序所需的计算时间为O(n^2)。在最好情况下(被排序的数据完全无序), le f t和r i g h t中的元素数目大致相同,快速排序的复杂性为O(nlogn)。

3.采用(  )不会产生内部碎片
    A.分页存储管理   B.分段存储管理   C.固定分区存储管   D.段页式存储管理

答案: B

在一个分区内部出现的碎片(即被浪费的空间)称做内部碎片,如固定分区法会产生内部碎片.在所有分区之外新增的碎片称做外部碎片.
     在分页系统中,允许将进程的各个页离散地存储在内存不同的物理块中,但系统应能保证进程的正确运行,即能在内存中找到每个页面所对应的物理块。为此,系统又为每个进程建立了一张页面映像表,简称页表。
     分段管理方式和分页管理方式在实现思路上是很相似的,只不过他们的基本单位不同。分段有段表,也有地址变换机构。
     段页式系统的基本原理,是分段和分页原理的结合,即先将用户程序分成若干个段,再把每个段分成若干个页,并为每一个段赋予一个段名。在段页式系统中,地址结构由段号、段内页号和页内地址三部分所组成。

分页和分段的主要区别:
1、两者相似之处:两者都采用离散分配方式,且都要通过地址映射机构来实现地址变换。
2、两者不同之处:
(1)页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率。或者说,分页仅仅是由于系统管理的需要而不是用户的需要。段则是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好地满足用户的需要。
(2)页的大小固定且由系统决定,而段的长度却不固定。
(3)分页的作业地址空间是一维的,即单一的线性地址空间;而分段的作业地址空间则是二维的。

4.下面叙述中正确的是(  )。
    A.操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同
    B.为了避免发生进程死锁,各进程只能逐个申请资源
    C.操作系统用PCB管理进程,用户进程可以从PCB中读出与本身运行状态有关的信息
    D.进程同步是指某些进程之间在逻辑上的相互制约关系

标准答案是 D

A:不同进程可以执行相同的代码,例如动态库。

B:产生死锁的四个必要条件:

(1)互斥条件:一个资源每次只能被一个进程使用。
(2)请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
(3)不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
(4)循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。

C:个人觉得也算正确,不管是用户进程还是内核线程,只要是在内核态就可以读取自身PCB。问题是目前用户进程进入内核态的方式只能是系统调用和中断处理,而目前操作系统没有提供这种接口给用户进程使用。
D:进程同步指的是进程间逻辑上的直接制约关系,进程异步是进程间逻辑上的间接制约关系。

5.Linux软中断softirq是在什么上下文中运行的?

A.进程上下文
 B. 中断上下文
 C. 可能是中断上下文也可能是进程上下文
 D. 以上都不对

答案:C
      softirq 属于中段下半部,一般来说是在中断上下文中执行。但是如果系统中的sofrirq一次执行的次数太多,内核会把softirq转由softirqd内核线程执行,
      参与CPU竞争,从而保证sortirq太频繁的情况下,普通进程也能够被执行;
nt max_restart = MAX_SOFTIRQ_RESTART; //最大的softirq执行次数
if (pending && --max_restart) //如果没有到最大次数,继续执行
goto restart;
...
if (pending) //如果在执行上次softirq途中又pending了新的softirq请求并且已经不能再继续执行softirq了,那么唤醒softirqd吧。
wakeup_softirqd();

6. intel x86架构CPU有一种新类型的中断SMI,一下对SMI描述不正确的说法是:

A. SMI中断是x86体系结构的一种新的CPU执行模式;
 B. SMI中断又称系统管理中断,由引脚SMI# Pin或者APIC SMI message触发;
 C. SMM中断对操作系统透明,操作系统不感知SMM中断的执行
 D. SMM中断就是普通中断,只是中断调用号不同而已;

答案:D
 CPU的四种运行模式

¡实模式

¡保护模式

¡系统管理模式

¡V86模式

SMM是Intel在386SL之后引入x86体系结构的一种CPU的执行模式。系统管理模式只能通过系统管理中断(System Management Interrupt, SMI)进入,并只能通过执行RSM指令推出。SMM模式对操作系统透明,换句话说,操作系统根本不知道系统何时进入SMM模式,也无法感知SMM模式曾经执行过。为了实现SMM,Intel在其CPU上新增了一个引脚SMI# Pin,当这个引脚上为高电平的时候,CPU会进入该模式。在SMM模式下一切被都屏蔽,包括所有的中断。SMM模式下的执行的程序被称作SMM处理程序,所有的SMM处理程序只能在称作系统管理内存(System Management RAM,SMRAM)的空间内运行。可以通过设置SMBASE的寄存器来设置SMRAM的空间。SMM处理程序只能由系统固件实现。
   进入SMM的唯一方法就是通过SMI,也即是系统管理中断(System Management Interrupt)。而触发SMI的唯一方法是将前述的SMI Pin引脚上加一个物理电平。而这个电平是由系统chipset根据不同的物理执行环境(如某些事件到来,某些设备需要特别服务)加到CPU上去的。

7.以下哪一点不是异常的特点:

A.异常与指令执行的是同步的,由指令的异常情况触发;
 B. 当异常发生时,CPU将当前指令的地址入栈,在异常返回时,可能会重复执行该指令;
 C. 异常发生时,当前执行的程序也会被打断;
 D. 异常也可能由CPU的外部引脚所触发;

答案:D

8. 一下哪一点不是中断的特点:

A.中断分为可屏蔽中断和不可屏蔽中断;
 B. 当CPU执行关中断执行时,NMI中断不会被屏蔽;
 C. 在中断中要打印信息时,必须使用不可睡眠的printk命令;
 D. CPU SF寄存器,反映了系统当前对中断的是否屏蔽的状态;

答案:D
     同步的中断,也称为异常,之所以称为"同步",是因为这些异常是在程序执行的时候某条语句触发的,比如除0错误,缺页异常等等,有名的段错误也属于其中的一种,这个时候,你的程序不能继续往下走,而必须对这些异常做出回应,也就是处理.
  异步的中断,也就是中断,之所以称为"异步",是因为这些中断是在当前指令之外的指令触发的.比如你的程序正在执行,来了一个I/O请求,或者定时器到时间被触发了,等等.也就是说,程序无法预知中断在什么时候到来.
  总的来说:中断分为两种,同步的中断叫做异常,一般由程序中的错误触发;异步的中断叫做中断,一般由当前程序外部触发,比如IO请求,定时器等触发.
中断分类:
v可屏蔽中断(Maskable interrupt)
ØI/O设备发出的所有中断请求(IRQ)都可以产生可屏蔽中断。
Ø可屏蔽中断可以处于两种状态:屏蔽的(masked)和非屏蔽的(unmasked)
v非屏蔽中断(Nonmaskable interrupt)
Ø只有几个特定的危急事件才引起非屏蔽中断。如硬件故障或是掉电
中断是否得到响应由两条件决定:一是IF寄存器,为0时,所有可屏蔽中断都不被响应。二是8259上的中断屏蔽寄存器,当其相应位为1,且IF寄存器为1时,中断才可以被响应。
异常分类 
v处理器探测异常
Ø由CPU执行指令时探测到一个反常条件时产生,如溢出、除0错等
v编程异常
Ø由编程者发出的特定请求产生,通常由int类指令触发
Ø通常叫做“软中断”
 
v对于处理器探测异常,根据异常时保存在内核堆栈中的eip的值可以进一步分为:
Ø故障(fault):eip=引起故障的指令的地址
l通常可以纠正,处理完异常时,该指令被重新执行
l例如缺页异常
Ø陷阱(trap):eip=随后要执行的指令的地址。
Ø异常中止(abort):

9. 一下关于中断号共享正确的是:

A. Linux下中断是不能共享的;
 B. 中断号共享是只所有的中断号共享一条中断线;
 C. 对于共享的中断号,当中断触发时,LInux一定要把所有的共享中断例程都执行一遍;
 D. 所有的中断历程都支持中断号共享;

答案:C
     共享同一中断号的ISR,通过request_irq中的同一个中断号注册到系统中的同一个中断链表中,而dev_id则用于区分该中断链表中不同的ISR,因此注册时dev_id不能相同,也不能为NULL
     共享中断的所有注册,其第3个参数都必须指明IRQF_SHARED,以表示是注册共享中断,中断发生时,系统会顺次调用中断链表中所有的ISR。因此ISR一定要根据自己是否真的发生了中断,来返回IRQ_HANDLED或IRQ_NONE,释放中断free_irq的第2个参数dev_id,正是用来查找中断链表中要被释放的中断。

转载于:https://www.cnblogs.com/wangfengju/archive/2013/05/20/6173057.html

华为内部面试题库---(2)相关推荐

  1. 华为内部面试题库---(9)

    1.spinlock可通过配置选项CONFIG_DEBUG_SPINLOCK来打开内核编译选项,进行自旋锁调试,作用有(多选):(参考:Linux内核设计与实现,第二版,第9章,9.2节) A. 内核 ...

  2. 华为内部面试题库---(19)

    1. 在Linux操作系统中,以Ext文件系统为例,下列那个数据结构在磁盘上没有对应的项:(<深入理解Linux内核>P461-480) A.inode: B.dentry: C.supe ...

  3. 华为内部面试题库---(10)

    1. 对于linux内核信号量,说法正确的是(多选):(参考:Linux内核设计与实现,第二版,第9章,9.4小节) A. 如果获取一个被占用的信号量,任务会睡眠,等待信号量释放之后,该任务才能重新获 ...

  4. 华为内部面试题库---(6)

    1.在SMP体系结构中,中断亲和性是指将一个或者多个中断绑定到特定CPU core上运行,下列说法错误的是:A.每个硬件设备都会在/proc/irq下有个中断号命令的目录来标志中断亲和性B.IRQ#目 ...

  5. 华为工程师面试题库—通信类

    华为工程师面试题库-通信类 [ 2007-5-21 16:41:00 | By: bjxiong ]   应聘华为各类工程师通信基础题库以及答案-知己知彼.百战不殆 电信基础知识题库 (以下题目可以按 ...

  6. 国内一线互联网公司内部面试题库

    原文链接:https://github.com/JackyAndroid/AndroidInterview-Q-A/blob/master/README-CN.md 欢迎在GitHub或者掘金上关注我 ...

  7. 华为通信基础面试题库以及答案

    华为通信基础知识题库 (以下题目可以按填空.判断或简答方式出题,也可以经过变化成为选择题) 1.语音信号数字化过程中,采用的是的量化方法是非均匀量化. 2.PCM30/32路系统中,每个码的时间间隔是 ...

  8. 华为java机试题库社招,月薪30K

    前言 作为一个已经毕业的计算机专业学长,其实几年大学走来还是挺感慨万千的.(说明一下:一本,非958.211) 老实说,上大学之前填志愿选专业的时候没有任何打算,就觉得学海熬到头了,向往已久的大学舒坦 ...

  9. Java高级工程师必备知识!华为java机试题库社招

    前言 对Java开发的知识点进行深入的学习,并打算做成系列,先从基础常用的重点**(面试点)**知识开始,后续会陆续扩展,加油! 涉及到底层的可能代码块会多点,但要学习底层不看代码看啥?代码说明一切! ...

最新文章

  1. 使用工作集(Working Set)整理项目
  2. 深度学习在推荐系统上的应用
  3. 一文搞懂 Java 泛型,非常详细!
  4. 4/100. Maximum Depth of Binary Tree
  5. python中的try与if,python中if和try的区别是什么
  6. hive check in checkDiagnosticMessage found error
  7. isp和3a的联系与区别是什么?
  8. 【VS】项目属性配置(上)
  9. 力扣-53 最大子序和
  10. 基于麻雀搜索算法优化的SVM数据分类预测 - 附代码
  11. Selenium TestNG Java环境搭建过程中所遇问题汇总
  12. 使用Supervisor让你的Swift Perfect服务器项目后台运行
  13. WPF 设置TextBox的输入法
  14. TextpatternCMS安装插件时可以安装后门导致getshell
  15. (附源码)php积极心理学交流网站 毕业设计 100623
  16. 蓝牙耳机连接笔记本后,音乐会断断续续,卡顿。
  17. 计算机制作不同数据数据图表,数据图表与分析.doc
  18. 基于ENVI与ERDAS的Hyperion高光谱经验比值法、一阶微分法叶绿素及地表参数反演
  19. 开店选址分析(转自:https://www.sohu.com/a/228415364_167028)
  20. 全球与中国PMN-PT单晶市场深度研究分析报告

热门文章

  1. python调用其它文件函数或类
  2. 算术表达式的实现,支持加减乘除,括号运算,表达式转二叉树
  3. R语言入门4---R语言流程控制
  4. Matplotlib(一)工作流程
  5. 机器学习里面的树形模型
  6. Spark Streaming 实战案例(五) Spark Streaming与Kafka
  7. 搜索推荐中的召回匹配模型综述(三):基于匹配函数学习的深度学习方法
  8. 推荐场景中召回模型的演化过程
  9. RunLoop总结与面试
  10. AXURE RP EXTENSION For Chrome