zoukankan      html  css  js  c++  java
  • 美光科技面试经验总结(2017-1-6)

    总结昨天去面试美工半导体实习岗位的经验(成功)。

    首先,给你一个小时做一份c语言试卷,试卷题量较适中,可以一个小时完成。

    接着,是两个资深engineer拿着你的简历及做完的试卷进行面试。

      主要还是介绍你简历里面做的东西,其次就是看你做的试卷成果怎么样。

    再是,Manager直接过来简单面试,Manager还是很随和,人很好。

      Mannager只提了简单的三个问题。

        其中一个问题我没回答上来。

    最后是,HR过来直接告诉我面试通过,回去发英文简历和中文简历给她,需要在美国公司那边走个流程。

    接下来,就我在面试中碰到的问题,一一解答。看到的朋友可以借鉴。

    一、数组和链表的区别是什么,什么时候用数组什么时候用链表?

    我在网上查阅的答案如下:

    相同点:都是一种数据存储结构,

    不同点:

    (1)从逻辑结构来讲:

      1、数组必须事先定义好长度(元素的个数),不能适应数据的动态进行删除、增加操作。当数据增加时候,有可能超出数据原先定义的总长度,当数据较少时候,会引起内存浪费;数组可以根据下标进行直接存储、提取。

      2、链表进行动态的存储分配,可以适应数据的动态删减操作;方便数据项的插入删除操作。(数组中插入、删除数据项时候需要移动其他数据项,非常的繁琐),链表必须根据next指针找到下一个元素。

    (2)从内存存储分配来看:

      数组从栈中分配存储空间,对于程序员来说,方便快速,但是自由度小;

      链表是从堆中分配存储空间,自由度大,但是申请管理比较麻烦;  

    从上面来看,如果要快速访问数据,很少插入删除元素,就应该用数组;

      如果经常插入、删除元素就需要采用链表存储结构

    二、虚拟内存技术是基于什么原理?

    虚拟存储器是由硬件和操作系统自动实现存储信息调度和管理的。

    虚拟内存是基于信息调度的原理。

    三、操作系统是通过什么来管理一个进程?

      PCB(进程控制块,progress control block)

    PCB是进程存在的唯一标志.
    进程控制块保存进程状态、进程性质(如优先程度)、与进程有关的控制信息(如参数、信号量和消息等)、相应队列和现场保护区域等。
    进程控制块随着进程的建立而产生,随着进程的完成而撤消,它是操作系统核心中最主要的数据结构之一,它既是进程存在的标志和调度的依据,
    又是进程可以被打断并能恢复运行的基础。操作系统核心通过PCB管理进程,一般PCB是常驻内存的,尤其是调度信息必须常驻内存。
    
    
    操作系统中有许多进程,它们对应着不同的或相同的程序,竞争地使用着系统的资源。进程管理涉及到进程控制、队列管理和进程调度等。
    
    
    进程的生命过程从它被创建时开始,直至任务终止而撤消,其间会经历各种状态的转换,它们都是在操作系统控制下完成的。操作系统提供了对进程的基本操作,也称为原语。
    这些原语包括创建原语、阻塞原语、终止原语、优先级原语和调度原语。
    进程调度即处理器调度,它的主要功能是确定在什么时候分派处理器,并确定分给哪一个进程。
    在分时系统中,一般有一个确定的时间单位(时间片)。当一进程用完一个时间单位时,就发生进程调度,
    即让正在运行的进程改变状态并转入就绪队列的队尾,再由调度原语将绪队列的首进程取出,投入运行。
    进程调度的方法基本上分为两类:非剥夺调度与剥夺调度。所谓非剥夺调度是指一旦某个作业或进程占有了处理器,
    别的进程就不能把处理器从这个进程手中夺走;相反,如果别的进程可将处理器从这个进程手中夺走则是剥夺调度。
    进程调度的算法采用服务于系统目标的策略,对于不同的系统与系统目标,常采用不同的调度算法,如先来先服务、优先数调度和轮转法等。
    四、下列指令中不会改变指令指示器IP的是(A)
    A、MOV;B、JMP;C、CALL;D、RET

    RET:
    在这里RET指令的内部操作是:栈顶字单元出栈,其值赋给IP寄存器。
      即实现了一个程序的转移,将栈顶字单元保存的偏移地址作为下一条指令的偏移地址
    CALL:

    常见的CPU的CALL指令(“调用”指令)的功能,就是以下两点:
    (1)将下一条指令的所在地址(即当时程序计数器PC的内容)入栈,
    (2)并将子程序的起始地址送入PC(于是CPU的下一条指令就会转去执行子程序
    JMP:跳转。
    五、顺序表中插入一个元素需要移动的元素平均个数为(n+1)/2;
    但是我在数据结构的结果:
      

      删除一个元素需要移动的元素平均个数为(n-1)/2;
    六、一个栈的输入序列为:a、b、c、d、e;则栈的输出序列不可能为(B、C)
      栈是先进后出
        A.a、b、c、d、e; (一个输入接着这个输出,是有可能的)
        B.d、e、c、b、a;(这个不可能)
        C.d、c、e、a、b; (这个也不可能)
        D.e、d、c、b、a;(这个是可以的)

    七、简述信号量的物理意义
        1、系统中可用资源的数目
        2、因请求该资源而阻塞的数目
        信号量是通过定义好的“互斥”的变量元,来实现进程的同步.
        它不但可以使进程实现互斥访问,而且还能通过信号量本身的数值来反映物理资源数或进程数,以及反映是什么操作.
    一个很好的博客,但是还没来得及看,有时间认真看一下,博客地址如下:
    http://blog.csdn.net/wxwzy738/article/details/8063632


  • 相关阅读:
    xpath取其中几个使用position
    pycharm2018.3.5 下载激活(windows平台)
    switch host 切换本地host
    leveldb 学习记录(四)Log文件
    bittorrent 学习(一) 种子文件分析与bitmap位图
    分布式协议学习笔记(三) Raft 选举自编写代码练习
    谷歌开源的一个BTREE实现 Go语言
    分布式协议学习笔记(二) 日志复制
    分布式协议学习笔记(一) Raft 选举
    利用redis制作消息队列
  • 原文地址:https://www.cnblogs.com/hai5111/p/6255348.html
Copyright © 2011-2022 走看看