LDK3读书笔记(第一章)

自作多情 提交于 2019-12-17 01:21:34
  • 操作系统
      操作系统是指在整个系统中负责完成基本功能系统管理的那些部分。包括内核、设备驱动程序、启动引导程序、用户界面、基本的文件管理工具和系统工具。

  • 内核基本组成

    • 负责响应中断的中断服务程序
    • 负责管理多个进程从而分享处理器时间的调度程序
    • 负责管理进程地址空间的内存管理程序
    • 网络
    • 进程间通信服务程序
    • 内核空间:处于系统态被保护起来的内存空间。
  • 应用程序的工作方式:
      当一个应用程序执行一条系统调用,我们说内核正在代其执行。如果进一步解释,在这种情况下,应用程序被称为通过系统调用在内核空间运行,而内核被称为运行于进程上下文中。这种交互关系(应用程序通过系统调用界面陷入内核)是应用程序完成其工作的基本行为方式。

  • 我们可以将每个处理器在任何指定时间点上的活动必然概括为下列三者之一:
    应用程序、内核和硬件的关系

    1. 运行于用户空间,执行用户进程;
    2. 运行于内核空间,处于进程上下文,代表某个特定的进程执行;
    3. 运行于内核空间,处于中断上下文,与任何进程无关,处理某个特定的中断。

  以上所列几乎包括所有情况,即使边边角角的情况也不例外。例如,当CPU空闲时,内核就运行一个空进程,处于进程上下文,但运行于内核空间。

  • 中断机制:
      当硬件设备想和系统通信的时候,它首先要发出一个异步的中断信号去打断处理器的执行,继而打断内核的执行。中断通常对应着一个中断号,内核通过这个中断号查找相应的中断服务程序,并调用这个程序相应和处理中断。eg: 当你敲击键盘的时候,键盘控制器发送一个中断信号告知系统,键盘缓冲区有数据到来。内核注意到这个中断对应的中断号,调用相应的中断服务程序。该服务程序处理键盘数据然后通知键盘控制器可以继续输入数据了。
      为了保证同步,内核可以停用中止——既可以停止所有的中断也可以有选择的停止某个中断号对应的中断。许多操作系统的中断服务程序,包括linux的,都不在进程上下文中执行。它们在一个与所有进程无关的、专门的中断上下文中运行。之所以存在这么一个专门的执行环境,就是为了保证中断服务程序能够在第一时间响应和处理中断请求,然后快速的退出。

  • 单内核与微内核的设计比较:

    • 单内核:所谓单内核就是把它从整体上作为一个单独的大过程来实现,同时也运行在一个单独的地址空间上。优点:内核可以直接调用函数,简单、性能高。
    • 微内核:微内核的功能被划分为多个独立的过程,每个过程叫做一个服务器。所有的服务器都保持独立并运行在各自的地址空间上,而且大多数都运行在用户空间。因此,内核不能直接调用函数,而是通过消息传递处理微内核通信。
      • 消息传递:微系统采用了进程间通信(IPC)机制,因此各个服务器之间通过IPC机制互通消息,互换”服务“。
      • 优点:服务器的各自独立有效的避免了一个服务器的失效祸及另外一个。
      • 缺点:IPC机制的开销多于函数调用,又涉及内核空间与用户空间的上下文切换,因此,消息传递需要一定的周期。
  • Linux与“单内核”和“微内核”的关系
      Linux是一个单内核,但是她汲取了微内核的精华:模块化设计、抢占式内核、支持内核线程以及动态装载内核模块的能力。不仅如此,Linux还避开了微内核性能损失的设计缺陷,让所有事情都运行在内核态,直接调用函数,无需消息传递。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!