操作系统重点总结..docxVIP

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多
操作系统重点总结.

1、进程、轻量级进程和线程的概念以及它们的区别:进程(Process):进程是程序执行时的一个实例。可以看作是充分描述程序已经执行到何种程度的数据结构的汇集。进程的目的是担当分配系统资源(CPU时间、内存等)的实体。进程是资源管理的最小单元,能被内核单独调度。线程(Thread):线程代表进程的一个执行流。是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。线程不能被内核单独调度。轻量级进程(Lightwetght Process):轻量级进程(LWP)是一种实现多任务的方法。与普通进程相比,LWP与其他进程共享所有(或大部分)它的逻辑地址空间和系统资源;与线程相比,LWP有它自己的进程标识符,并和其他进程有着父子关系;这是和类Unix操作系统的系统调用vfork()生成的进程一样的。另外,线程既可由应用程序管理,又可由内核管理,而LWP只能由内核管理并像普通进程一样被调度。2、什么导致操作系统不实时?Linux操作系统存在关中断机制。导致的后果是:如果低优先级的进程由于进入临界去或者为了尽快完成人物而关闭了中断,那么即使有高优先级实时进程的中断发生系统也无法响应Linux操作系统的内核是禁止抢占的。一个进程一旦进入内核,它将运行直到系统调用结束或进程被阻塞。这时候一个高优先级的实时进程只能等待。Linux使用的是基于优先级的任务调度策略。这种调度策略不能保证实时任务按时完成。Linux虽然给实时进程提供了较高的优先级,但是,并没有加入时间限制。其他方面:Linux利用交换空间然进程运行在一个比实际内存大的虚拟内存空间中。当进程访问的虚拟内存的内容在交换空间里时,Linux就要把在交换空间里的页面交换到实际的内存中,而这段时间是不可预测的,造成了实时响应时间的不确定性。3、tast_struct类型结构(进程描述符就是这种结构)其中,thread_info:描述进程的基本信息;mm_struct:指向内存区描述符的指针;tty_struct:描述与进程相关的tty;fs_struct:当前目录;files_struct:指向文件描述符的指针;signal_struct:所接收的信号4、异常、中断中断通常分为同步(synchronous)中断和异步(asynchronous)中断。同步中断:是指当程序执行时由CPU控制单元产生的,之所以成为同步,是因为只有在一条指令终止执行后CPU才会发出中断。异步中断:是由其他硬件设备按照CPU时钟信号随机产生的。附:同步中断也称为异常(exception)、异步中断也称为中断(interrupt)中断和异常的分类:中断分为:可屏蔽中断、非屏蔽中断。异常分为:处理器探测到的异常、故障(错误、缺页)、陷阱(主要用途是调试程序)、异常中止(通常是出现硬件或系统表的严重错误)、编程异常(通常是编程者发出请求时发生,一般是由int或int3指令或into、bound指令触发)中断上半部和中断下半部中断处理一般分为两个部分,中断处理程序是上半部:接收到一个中断就立即执行,但只做有严格时限的工作,这些工作都是在所有中断被禁止的情况下完成的。能够被允许稍后完成的工作被推迟到下半部去。通常情况下,下半部会在中断处理程序返回时立即执行。下半部具体放到以后的什么时候去做呢?下半部并不需要指明一个确切时间,只要把这些任务推迟一点,让他们在系统不太繁忙并且中断恢复后执行就可以了。通常下半部在中断处理程序一返回就会马上执行。下半部执行的关键在于当它们运行的时候,允许响应所有中断。5、同步访问内核数据结构(保护内核控制路径访问的数据结构)访问数据结构的内核控制路径单处理器保护多处理器进一步保护异常信号量无中断本地中断禁止自旋锁可延迟函数无无或自旋锁异常与中断本地中断禁止自旋锁异常与可延迟函数本地软中断禁止自旋锁中断与可延迟函数本地中断禁止自旋锁异常、中断与可延迟函数本地中断禁止自旋锁6、进程切换通过一个进程切换保留对进程C的引用(示例图)对进程切换图的理解以及解释我们假定prev指向被替换进程的描述符;而next指向被激活进程的描述符;last是输出参数表示宏把进程C的描述符地址写在内存的什么位置。在进程切换之前,宏把第一个输入参数prev表示的变量的内容存入存入CPU的eax寄存器。在完成进程切换,A已经恢复执行时,宏把CPU的eax寄存器的内容写入由第三个输出函数-last所指示的A在内存中的位置。在schedule()执行过程中,参数last指向A的局部变量prev,所以prev被C的地址覆盖。进程切换步骤或由两部分组成切换页全局目录以安装一个新的地址空间切换内核态堆栈和硬件上下文,因为硬

文档评论(0)

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

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

1亿VIP精品文档

相关文档