大唐笔试题

---恢复内容开始---

1.什么是中断?中断发生时cpu做什么工作?

  中断是CPU响应外设需求的一种模式,在外设需要CPU时,会向中断控制器发送中断请求,这时CPU要保护现场,即把正在运行的程序保存起来,一般是把状态压入堆栈,然后读中断号,启动相应的中断服务程序,服务完成后,载入保护现场,即把堆栈的数据弹出,继续运行之前的程序。 

  中断是指系统发生某一事件后,CPU暂停正在执行的程序转去执行处理该事件的程序过程,处理中断事件的程序称为中断处理程序,产生中断信号的那个部件称为中断源。硬件的中断机构与处理这些中断的程序统称为中断系统。

  改变工作模式至中断模式--->保存当前PC,敏感数据入栈--->PC被赋值中断起始地址--->CPU跳到中断起始地址处理中断--->返回到原来模式--->恢复PC,数据出栈,程序继续执行。

当中断发生时,硬件机构自动地进入响应中断过程,由操作系统的中断处理程序对中断事件进行处理,具体过程如下:

①.保存现场

系统开辟现场区,并将现场区组织成“栈”结构,当中断响应时,(1)硬件结构自动将PS和PC寄存器的内容压入栈中作为现场信息保存起来。(2)根据发生的中断,硬件从指定的中断向量单元中取出PS和PC内容,分别装入PS和PC寄存器,同时正确填入寄存器的“当前状态”和“先前状态”字段。

②.分析原因,转中断处理程序

不同原因产生的中断事件要进行不同的处理,根据中断的路寄存器内容得出发生该种中断的具体原因。转入相对应的中断处理程序运行。

③.恢复现场

在多级中断系统中,考虑退回当前中断时,必须依据原先被中断的程序,完成不同的工作,中断处理结束后,软件必须退出中断。如果此次是高级中断,并且被中断的程序是一个低级中断处理程序,则此次中断应返回到该低级中断处理程序。如果原来被中断的是用户程序,则退出中断前应先考虑进行一次调度选择,以挑选出更适合在当前情况下运行的新程序。

中断响应、处理和返回

  当满足了中断的条件后,CPU就会响应中断,转入中断程序处理。具体的工作过程如下:

  1. 关闭中断信号接收器

  2. 保存现场(context)

  3. 给出中断入口,转入相应的中断服务程序

  4. 处理完成,返回并恢复现场(context)

  5. 开启中断信号接收器

2.cpu在上电后,进入操作系统的main()之前必须做什么工作?

过程如下:
bios自举:检查硬件等
读取MBR
转到MBR执行它的代码,它会检测活动分区
活动分区的引导扇区的引导代码装入内存
运行引导代码
引导代码装入该分区的操作系统
也就是进入main()(当然不一定叫main,如linux下叫start_kernel)执行一系列的初始化,然后最终启动登录界面
实现启动过程


★MBR是什么?
MBR是英文Master Boot Record的缩写,中文意为主引导记录。硬盘的0磁道的第一个扇区称为MBR,它的大小是512字节,而这个区域可以分为两个部分。第一部分为pre-boot区(预启动区),占446字节;第二部分是Partition table区(分区表),占66个字节,该区相当于一个小程序,作用是判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码。

3.简述ISO OSI的物理层Layer1,链路层Layer2,网络层Layer3的任务。

  物理层为设备之间的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。
      数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其连接。媒体是长期的,连接是有生存期的。在连接生存期内,收发两端可以进行不等的一次或多次数据通信。每次通信都要经过建立通信联络 和拆除通信联络两过程。这种建立起来的数据收发关系就叫作数据链路。
      网络层主要功能:路由选择和中继;激活,终止网络连接;在一条数据链路上复用多条网络连接,多采取分时复用技术;差错检测与恢复;排序,流量控制;服务选择;网络管理。
   Layer1:提供网络的物理连接;

   Layer2:是进行数据封装和数据链接的建立;

   Layer3解决的是网络与网络之间,即网际的通信问题;

4.有线电话和无线电话有何区别?无线电话特别需要注意的是什么?
  信号传输途径不一样,一种是有形介质,一种是无形的,无线得注意频段和干扰

5.软件开发五个主要step是什么?
  需求分析,设计,编码,调试,测试

6.你在开发软件的时候,这5个step分别占用的时间百分比是多少?
  25 20 20 10 25

7.makefile文件的作用是什么?
  makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模 块及库等).创建程序(make程序)首先读取makefile文件,然后再激活编译器,汇编器,资源编译器和连接器以便产生最后的输出,最后输出并生成 的通常是可执行文件.创建程序利用内置的推理规则来激活编译器,以便通过对特定cpp文件的编译来产生特定的obj文件.
    简单一点就是,相当于项目管理文件,并设置编译、优化参数

8.unix显示文件夹中,文件名的命令是什么?能使文件内容显示在屏幕的命令是什么?
  ls cat或type

9.(选做)手机用户在从一个基站漫游到另一个基站的过程中,都会发生什么?
       离开当前基站前将自己的位置传输给基站,基站保留位置信息.进入下一基站时,更新位置信息...如果是夸网段则还要关联计费网关或者核心网.

10. 把32位的unsigned int按位倒过来:

unsigned int func(unsigned int nVar);
unsigned int revert(unsigned int num)
{
    int c;
    int n = 0;
    int index = 1;
    for (int i = 1; i <= 32; i++)
    {
       c = num & index;
       n = n | c;
       num = num >> 1;
       if(i != 32)        //只移动31步
       n = n << 1;   
    }
    return n;
}

---恢复内容结束---

原文地址:https://www.cnblogs.com/followyourdream/p/3401185.html