首页 > 其他 > 详细

课程学习总结报告

时间:2020-07-09 22:48:17      阅读:73      评论:0      收藏:0      [点我收藏+]

Linux内核实现了操作系统的三?核?功能,即进程管理、内存管理和?件系统。

程序和数据均储存在硬盘中,由文件系统管理,Linux系统中一切皆文件。运行中的程序在内存中以进程为单位进行管理,用进程控制块来描述进程。
 
电脑加电启动?先从硬盘中加载操作系统内核至内存中运行,接着挂载?件系统,之后不断地将需要的程序和数据从硬盘调入内存中。
 
宏观上 Linux 操作系统的体系架构分为?户态和内核态。
 
CPU在任何时刻都处于以下3种情况之?:
  运?于?户态,执??户进程上下?。
  运?于内核空间,处于进程(内核线程)上下?。
  运?于内核空间,处于中断(中断处理程序ISR,包括系统调?处理过程)上下?。
 
操作系统的运行过程即是所有进程轮流在CPU上执行的过程。管理进程的核心问题是进程调度,进程调度需要在内核态中进行。
 
中断实现了方便地从用户态进入内核态。
中断(广义)会改变处理器执行指令的顺序。中断分外部中断(硬件中断)和内部中断(软件中断),内部中断?称为异常(Exception),异常?分为故障(fault)和陷阱(trap)。
 

总的来说,进程调度时机就是内核调?schedule函数的时机:
  1)?户进程上下?中主动调?特定的系统调?进?中断上下?,系统调?返回?户态之前, 中断处理程序主动调?schedule函数进?进程调度。

  2)内核线程或可中断的中断处理程序,执?过程中发?中断进?中断上下?,在中断返回前, 中断处理程序主动调? schedule函数进?进程调度。

  3)内核线程主动调?schedule函数进?进程调度。

 
进程调度涉及到进程的切换,利用进程上下文和中断上下文完成。
 
有了以上基本功能,所有进程就轮流运行了起来,用户可以编写自己的应用程序,在用户态下以进程为单位来执行,而应用程序使用计算机的功能和设备时必须在内核态中,需要使用系统调用进入内核态。
 
系统调?的意义是操作系统为?户态进程与硬件设备进?交互提供了?组接?。
 
系统调?就是利?陷阱(trap)这种软件中断?式主动从?户态进?内核态的。
技术分享图片
 
系统调?具有以下功能和特性:
  把?户从底层的硬件编程中解放出来。操作系统为我们管理硬件,?户态进程不?直接与硬件设备打交道。
  极?地提?系统的安全性。如果?户态进程直接与硬件设备打交道,会产?安全隐患,可能引起系统崩溃。
  使?户程序具有可移植性。?户程序与具体的硬件已经解耦合并?接?代替了,不会有紧密的关系,便于在不同系统间移植。
技术分享图片
 
下图为程序运行的基本架构:
技术分享图片

 

以读取文件为例分析这个过程。用户应用程序要读取硬盘上的某个文件,调用了系统库中的接口,系统库中的该功能通过系统调用实现,由用户态切换到内核态中执行系统调用,对硬件进行操作,读取出文件后再传回给应用程序,然后从内核态回到用户态,应用程序继续执行。

 

 整个课程学完,对Linux系统有了基本的理解,对程序的运行过程有了更深入的认识,收获很多。
个人建议,读系统内核代码过于枯燥和繁琐,自己动手编写简单的系统内核功能是个很好的方向,希望增加这方面的内容。

课程学习总结报告

原文:https://www.cnblogs.com/gy101/p/13276649.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!