• 大唐笔试题


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

    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;
    }

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

  • 相关阅读:
    编写第一个MapReduce程序—— 统计气温
    Oracle常用操作——创建表空间、临时表空间、创建表分区、创建索引、锁表处理
    Linux环境安装Eclipse及配置hadoop插件
    Hadoop的核心组件和生态圈
    安装hadoop集群服务器(hadoop1.2.1)
    python入门到精通[三]:基础学习(2)
    python入门到精通[二]:基础学习(1)
    com.mysql.jdbc.Driver 与 org.gjt.mm.mysql.Driver的区别
    Intellij IDEA中修改Maven项目的项目名称
    对CountDownLatch的初步学习
  • 原文地址:https://www.cnblogs.com/followyourdream/p/3401185.html
Copyright © 2020-2023  润新知