性能之巅读书笔记-操作系统部分概念

  1.内核

    内核管理包括:CPU调度、内存、文件系统、网络协议栈、硬件设备(磁盘、网卡等);其对外提供系统调用接口,用户态的应用程序可以通过有系统调用或者系统库提供的接口来调用内核。

     内核调度需要考虑点:

         (1)资源竞争:如CPU竞争,在多进程系统中,CPU资源不足时,内核调度器需要决定哪个进程占用CPU,哪个进程需要等待,这种情况下,系统的某些功能的性能可能就会受到影响;

         (2)内核态和用户态间切换的时间开销:内核是唯一运行在特殊CPU模式下的程序,这种CPU模式叫内核态,这种状态下,设备的一切访问和特权指令都可以执行;应用程序运行在用户态,对内核的特权操作需要通过系统调用切换到内核态;用户态和内核态有自己的软件执行上下文(包括栈和寄存器),这些上下文的切换就会引起CPU耗时;

  2.栈

    栈:用函数和寄存器的方式记录线程的执行历史。通过栈信息可以看到全部的调用历史。

  3.进程

    进程:用以执行用户级别程序的环境,包括内存地址空间、文件描述符、线程栈和寄存器。类似于早起电脑的虚拟化,里面只执行1个程序,用着自己的寄存器和栈。

    线程:可以被调度运行在CPU上的可执行上下文,包括栈、寄存器和程序计数器,多线程可以让单一进程在多个CPU上并发执行。

    二者的区别:在内核的角度,线程仅仅被视为一个与其他进程共享某些资源的进程,而是否共享地址空间几乎是进程和 Linux 中所谓线程的唯一区别。线程创建的时候,加上了 CLONE_VM 标记,这样 线程的内存描述符将直接指向 父进程的内存描述符。

4.文件系统

    

etc存放系统配置文件;usr是系统提供的用户界别的程序和库;dev是设备文件;var是包括系统日志在内的各种文件

posted @ 2019-10-14 21:45  小溪&  阅读(249)  评论(0)    收藏  举报