西安邮电大学Linux复习汇总.docxVIP

  • 0
  • 0
  • 约1.05万字
  • 约 3页
  • 2021-08-30 发布于天津
  • 举报
厶 口 事 曰 页 的 就是 厶 是 , 5 *pos; r;ld enter s;,struct %s\n,p- ^the number of pr( y\t)%; d\t(0=1b=y4pKeB, )\n, y); t); n,\nty, p 以管 td()SparpriO cwstpid 、 l=t 曰 ,为什么现代造作 ,是 c Lic 于什 用理软件, 核心 1code segm SLT0Ex D I PT0YEx080xx001 gba:s1e;_high; t lbimasite__llow;; i{}ngtdmt_atin(int argc, char *argv { 0nn8t gdt[4] = {0x0fff, 0x0000, 08t gdt[4] = {0x7fff, 0x0000, 0 , 0x800 f2,f0fx,10,0x;cf//f0ff}, 0 eoidu)nistd.h 应目录!在内存的 取 }{ rperitnutrfn(0e;rror); }{else if(pid == 0) %地址。etW^Tid }else 用malloc()可以动态分配的空间,也叫动态内存或 堆。 4什么是虚存映射?有哪几种类型? 答:随着进程的运行,被引用的程序部分会由操作 系统装入到物理内存,这种将映像链接到进程用户 空间的方法被称为虚存映射”,也就是把文件从磁 盘映射到进程的用户空间,这样把对文件的访问转 化为对虚存区的访问。有两种类型的虚存映射: 共享的:有几个进程共享这一映射,也就是 说,如果一个进程对共享的虚存区进行写,其它进 程都能感觉到,而且会修改磁盘上对应的文件。 私有的:进程创建的这种映射只是为了读文 件,而不是写文件,因此,对虚存区的写操作不会 修改磁盘上的文件,由此可以看出,私有映射的效 率要比共享映射的高。 除了这两种映射外,如果 映射与文件无关,就叫匿名映射。 5、 一个进程一般包含哪些虚存区?举例说明。 6、 说明mmap()系统调用的功能?利用 mmap()写 一个拷贝文件的程序。 答:mmap()系统调用时通过调用 do_mmap内核函 数来实现建立文件到显存的映射。 int i,fd1,fd2; char *buf1,buf2; fd1 = ope n(data,0 KDOMCY); if(fd1 fd2(fstar(fd);star buf1()=0) { if(lseek(fd) statbuf,st_size-1,seek_set)0 { - - perrorlseek target); exit(-1); } if(MAP_FAILED == buf()) { perror(Lmap source); exit(-1); } if((map_FAFCE) == buf2) { perror(mmap target); exit(-1); } mempy(buf2,buf1,(size - f)startbuf,st_size); } - 7、 Linux是如何实现请求调页的? 答:1)如果被访问的页不在内存,也就是说,这个 页还没有被存放在任何一个物理页面中,那么,内 核分配一个新的页面并将其适当地初始化,这种技 术称为“请求调页”;2) “请求调页”是一种动态 内存分配技术,它将页面的分配推迟到不能再推迟 为止,也就是说,一直推迟到进程要访问的页不在 物理内存时为止,由此引起一个缺页异常;该技术 的引入主要是因为进程开始运行时并不访问其地 址空间中的全部地址。 8、 试叙述伙伴算法的工作原理,并说明为什么伙 伴算法可以消除外碎片? 答:假设要求分配的块其大小为 128个页面。该算 法先在块大小为128个页面的链表中查找,看是否 有这样一个空闲块。如果有,就直接分配;如果没 有,该算法会查找下一个更大的块,具体地说,就 是在块大小为256个页面的链表中查找一个空闲 块。如果存在这样的空闲块,内核就把这 256个页 面分为两等份,一份分配出去,另一份插入到块大 小为128个页面的链表中。如果在块大小为 256个 页面的链表中也没有找到空闲页块,就继续找更大 的块,即512个页面的块。如果存在这样的块,内 核就从512个页面的块中分出128个页面满足请 求,然后从384个页面中取出256个页面插入到块 大小为256个页面的链表中。然后把剩余的 128个 页面插入到块大小为128个页面的链表中。如果512 个页面的链表中还没有空闲块,该算法就放弃分 配,并发出出错信号。 9、 vmalloc()和kmalloc()有何区别?编写内核模块 程序,调用这两个函数以观察二者所分配空间位于 不同的区域。 答:在内核空间中调用 kmalloc()分配连续物理空 间,而调用vmalloc

文档评论(0)

1亿VIP精品文档

相关文档