课程学习总结报告

一、Linux系统概念模型

  从程序员的视角看,操作系统为程序员屏蔽了计算机硬件的复杂性,使得程序员只需要在程序语言层面即可完成和计算机的交互。在操作系统原理课程中,我学习到操作系统通过提供系统调用、进程管理、内存管理、文件管理、IO管理等机制来完成屏蔽硬件系统复杂性的目标。Linux内核分析这门课程从一个具体的操作系统出发来讲述Linux内核是怎么具体实现操作系统原理中定义的操作系统职能。在系统调用的实现中,了解了Linux内核提供了哪些应用程序接口,并知道了Linux执行一个具体系统调用的过程,包括中断,⽤户态、内核态的切换等,并从代码层面分析了一个系统调用的执行流程。通过李老师的课程,则更加深入地了解了Linux处理中断、进程管理、内存管理、文件和IO管理的细节,李老师的每一节课都让我受益良多。

  以进程管理为例,Linux的进程模型如下图所示。

课程学习总结报告_第1张图片

 

   由于需要满足同时运行多个程序的需求,有了中断的概念。CPU在指令周期的中断周期中,检查在指令执行期间是否有中断发生,如果发生中断,则进入中断处理程序。这其中又涉及到中断向量表、中断处理程序、中断嵌套、中断优先级等一系列问题,在此不作展开。进程的切换从根本上来说也是依赖中断机制来实现,不过在更高的层面,还需要考虑一些其他的问题,比如进程的状态、进程的切换策略等。进程的切换策略即如何在进程列表中选出下一个需要执行的进程,目前主流的Linux内核通过CFS算法来进行进程切换,在此不作展开。在本课程中,内存管理、文件系统以及IO都有涉及,在此也不作展开。

 

二、课程心得体会

  学习本课程让我从一个具体的操作系统出发,让我能够更加直接的体会到操作系统这样的程序的设计思想,对操作系统原理课程中涉及的原理算法也有了一些更加具体的认识。孟老师帮助我复习了一些计算机系统的基础知识,在此基础上 帮助我建立起函数调用堆栈的概念,李老师则从实现的层面让我了解了Linux进程管理、内存管理、文件管理、IO管理等机制的实现细节。我认为李老师对代码细节内容的讲述内容偏少,因此上课节奏偏快,加上代码细节的理解本身有一定难度,因此希望能分配给李老师更多的课时。

你可能感兴趣的:(课程学习总结报告)