面试题准备_0720操作系统问题什么是用户空间,内核空间?对于32位Linux系统来说,Linux的虚拟地址空间是0~4G,Linux将虚拟地址分为两部分,高1G(0xC0000000~0xFFFFFFFF)地址用于内核,称为内核空间,低3G(0x00000000~0xBFFFFFFF)地址用于进程使用,称为用户空间。简单分析几种会导致设备重启的情况?硬件问题或者软件问题硬件问题电源复合过大,接触不良,电压不稳硬件冲突,不兼容散热不好内存条与插槽接触不良,内存本身质量问题CPU问题软件问题系统文件损坏内存泄漏定时软件或计划任务软件起作用计算机病毒软件实现问题(除零,野指针,临界资源访问等等)对内存管理的理解,简单介绍几种内存分配算法?例如:最佳分配算法,首次匹配算法等。内存管理是内核对物理内存的分配和释放,内核和进程都是以此为基础,整个系统的性能取决于如何管理这部分动态内存。各个不同系统有不同应用,那么就没有一个统一的最好的管理办法。管理算法应做到高效的索引技术,减少碎片,高效的swap技术,避免频繁swap等。内存分配算法:(1)首次适应算法。使用该算法进行内存分配时,从空闲分区链首开始查找,直至找到一个能满足其大小要求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存分配给请求者,余下的空闲分区仍留在空闲分区链中。该算法倾向于使用内存中低地址部分的空闲分区,在高地址部分的空闲分区很少被利用,从而保留了高地址部分的大空闲区。显然为以后到达的大作业分配大的内存空间创造了条件。缺点在于低址部分不断被划分,留下许多难以利用、很小的空闲区,而每次查找又都从低址部分开始,这无疑会增加查找的开销。(2)循环首次适应算法。该算法是由首次适应算法演变而成的。在为进程分配内存空间时,不再每次从链首开始查找,而是从上次找到的空闲分区开始查找,直至找到一个能满足要求的空闲分区,并从中划出一块来分给作业。该算法能使空闲中的内存分区分布得更加均匀,但将会缺乏大的空闲分区。(3)最佳适应算法。该算法总是把既能满足要求,又是最小的空闲分区分配给作业。为了加速查找,该算法要求将所有的空闲区按其大小排序后,以递增顺序形成一个空白链。这样每次找到的第一个满足要求的空闲区,必然是最优的。孤立地看,该算法似乎是最优的,但事实上并不一定。因为每次分配后剩余的空间一定是最小的,在存储器中将留下许多难以利用的小空闲区。同时每次分配后必须重新排序,这也带来了一定的开销。(4)最差适应算法。最差适应算法中,该算法按大小递减的顺序形成空闲区链,分配时直接从空闲区链的第一个空闲分区中分配(不能满足需要则不分配)。很显然,如果第一个空闲分区不能满足,那么再没有空闲分区能满足需要。这种分配方法初看起来不太合理,但它也有很强的直观吸引力:在大空闲区中放入程序后,剩下的空闲区常常也很大,于是还能装下一个较大的新程序。最坏适应算法与最佳适应算法的排序正好相反,它的队列指针总是指向最大的空闲区,在进行分配时,总是从最大的空闲区开始查寻。该算法克服了最佳适应算法留下的许多小的碎片的不足,但保留大的空闲区的可能性减小了,而且空闲区回收也和最佳适应算法一样复杂。嵌入式系统内存分配算法: (1)固定内存分配固定内存分配算法是最简单的算法,也是最好理解的算法。比如说有16M内存,现在我们假设分配的基本内存是4K,那么总共有16M/4
面试题准备 0720 来自淘豆网m.daumloan.com转载请标明出处.