linux复习.docxVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux复习

第一题:名词解释。1、单内核:单内核就是把它从整体上作为一个单独的大过程来实现,并同时运行在一个单独的地址空间。即所有内核服务都在一个大的内核空间中运行,内核可以直接调用函数。Linux是一个单内核,它运行在单独的内核地址空间。单内核模式具有简单和高性能的特点。2、进程、线程、内核线程:进程:一个进程就是处于执行期的程序以及它所包含的资源的总称。这些资源包括:打开的文件、挂起的信号、内核内部数据、处理器状态、地址空间及一个或多个执行线程等。线程:线程是在进程中活动的对象,它为共享一个地址空间的程序提供多个执行线索,它可以共享打开的文件和其他资源。内核调度的对象是线程而不是进程,每个线程拥有一个独立的程序计数器、进程栈和一组进程寄存器。在Linux中每个线程和进程一样有唯一(唯一隶属自己)的task_struck,在内核看来与一般进程没有什么区别,当进程间选择性的共享地址空间时它可视为线程。内核线程:独立运行在内核空间的标准进程,可以被调度,也可以被抢占,但是没有独立的地址空间,只在内核空间运行,负责完成内核在后台执行操作的任务,只能由其他内核线程创建。3、进程上下文:(表达不太准确)我们把系统提供给进程的处于动态变化的运行环境总和称为进程上下文,这些资源包括CPU的所有寄存器中的值、进程的状态以及堆栈中的内容,当前进程上下文均保存在进程的任务数结构中。一般程序在用户空间运行,它执行了系统调用或者触发了某个异常,它就陷入了内核空间,此时我们称“代表进程执行”并处于进程上下文。进程上下文是内核的一种操作模式,此时内核代表进程执行,可以通过current宏关联当前进程。因为进程是以进程上下文的形式连接到内核中的,因此,进程上下文可以睡眠,也可以抢占。4、写时拷贝:写时拷贝是指在需要写入的时候才进行资源复制,是一种可以推迟甚至免除拷贝数据的技术。Linux的fork()使用写时拷贝数据实现,创建子进程时不需要立即给子进程拷贝数据,而是让父子进程以只读的方式共享没有修改的数据和空间,而当父子进程之一修改数据时则进行拷贝。5、内核抢占/抢占:内核抢占是指,当进程位于内核空间,若有一个更高优先级的任务出现时,可以将当前任务挂起,切换去执行优先级更高的进程,而这个强制挂起的动作叫抢占。可抢占的前提需要确保重新调度是安全的,即当前的任务没有持有锁,在这种情况下内核可以在任何时间抢占正在执行的任务。2.6版本后的Linux内核是可抢占式内核,具有上述允许内核优先执行高优先级任务的能力。6、进程时间片:进程时间片是一个数值,表明进程在被抢占前所能持续运行的CPU时间,它是一个调度策略设定的数值。Linux采用了预加载调度策略,每个进程只运行很短的时间:200毫秒;同时Linux调度程序还能根据进程的优先级动态调整分配给它的时间片,来保证高优先级的进程执行的高频率和长时间。7、上下文切换:从一个可执行的进程切换到另一个可执行的进程。由context_switch()函数负责完成,它完成了两项基本工作:1)把虚拟内存从上一个进程映射切换到新进程中;2)从上一个进程的处理器状态切换到新进程的处理器状态中,包括保存、恢复栈信息和寄存器信息,还有其他任何与体系结构相关的状态信息,都必须以每个进程为对象进行管理和保存。8、系统调用(※):所有的操作系统在其内核里都有一些内建的接口函数,这些函数可以用来完成一些系统级别的功能。Linux系统使用的这样的函数叫做“系统调用”,英文是systemcall。这些函数代表了从用户空间到内核空间的一种转换,应用程序通过这些接口函数访问硬件设备和其他的操作系统资源。Linux中,系统调用时用户空间访问内核的唯一手段,除异常和陷入之外,它们是内核唯一的合法入口。9、中断上下文:当执行一个中断处理程序时,内核处于中断上下文。硬件通过触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递传递给内核,内核根据这些参数进行中断处理。所谓“中断上下文”,其实也可以看作就是硬件传递过来的这些参数和内核需要保存的一些其他环境(书上没有)。中断上下文不能睡眠。在中断处理函数中调用一个内核API之前,应该仔细分析它以确保其内部不会触发阻塞等待。中断处理函数中保护临界区,不能使用互斥体,因为它们也许导致睡眠。应该使用自旋锁代替互斥体,但是一定要记住的是只有真正需要的时候才采用它。中断处理函数不能与用户空间直接交互数据,因为它们经由进程上下文与用户空间建立连接。这也是为什么中断处理函数不能睡眠的第2个理由:调度器工作于进程之间,如果中断处理函数睡眠并被调度出去,它们怎么返回到运行队列呢?中断处理函数一方面需要快速地出来,另一方面又需要完成它的工作。为了规避这种冲突,中断处理函数通常被分成2个部分。瘦小的上半部标志

文档评论(0)

tianma2015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档