操作系统之哲学原理.pdf

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
操作系统之哲学原理

目录 内核态和用户态 2 从用户态切换到内核态 2 进程 3 进程的产生 3 进程的死亡 3 进程的创建 3 进程的调度 4 进程通信 5 管道 5 套接字(socket) 5 信号 5 共享内存 6 线程 6 内核态线程实现 6 用户态线程实现 6 线程从用户态到内核态 7 线程同步 7 临界区 7 锁(互斥): 7 事件 7 信号量: 8 管程(monitor) 8 死锁 9 死锁的原因: 9 死锁的必要条件(缺少一个就不会死锁): 9 死锁的解除: 9 锁的实现方式 9 基本内存管理 9 管理策略: 11 交换: 11 重叠: 11 双基址: 11 页式内存管理 11 分段管理系统 15 段页式内存管理 15 段页式存储管理的优缺点 16 程序员的自我修养 17 1 注:黄色标注为突出文字;红色字体为书外添加; 内核态和用户态 运行在内核态(特权态)的程序能访问的资源更多,可靠性和安全性要求更高,维护管理都较复杂。 用户态访问的资源有限,但可靠性,安全性要求低,编写维护起来比较简单。一个程序运行在哪种状态 取决于对资源和效率的需求。 特权级0 是运行在内核态,硬件提供了特权级的相关机制(特权级0~3 );对于 Unix/Linux 来说,只使 用了0 级特权级和3 级特权级,用户态有最低的权限,即特权级3,。每一个程序都有一个内核栈 如果能运行在用户态,尽量运行在用户态。牵扯到计算机本体根本运行的应该在内核态下执行,与 用户数据和应用相关的在用户态下执行。对时序要求高的在内核态下执行。 1. cpu 的管理和内存的管理。可以在用户态下执行,但是不安全。 2. 诊断和测试程序。因为诊断和测试需要访问计算机的所有资源。 3. 文件系统,部分在内核态,部分在用户态。文件系统本身的管理,即文件系统的宏数据部分的 管理必须放在内核态,避免被随意破坏结构。文件系统的用户数据的管理可以放在用户态。 从用户态切换到内核态 a. 系统调用 (软中断) 这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提 供的服务程序完成工作,比如前例中fork()实际上就是执行了一个创建新进程的系统调用。而系统调用 的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux 的int 80h 中断。 b. 异常 当CPU 在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进 程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。 c. 外围设备的中断 当外围设备完成用户请求的操作后,会向CPU 发出相应的中断信号,这时 CPU 会暂停执行下一条 即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那 么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬 盘读写的中断处理程序中执行后续操作等。 从最终实际完成由用户态到内核态的切换操作上来说,涉及的关键步骤是完全一致的,没有任何区 别,都相当于执行了一个中断响应的过程,因为系统调用实际上最终是中断机制实现的,而异常和中断 的处理机制基本上也是一致的,关于它们的具体区别这里不再赘述。关于中断处理机制的细节和步骤这 里也不做过多分析,涉及到由用户态切换到内核态的步骤主要包括: [1] 从当前进

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档