课程学习总结报告

  请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的、自洽的,并举例某一两个具体例子(比如读写文件、分配内存、使用I/O驱动某个硬件等)纳入模型中验证模型。

  谈谈您对课程的心得体会,改进建议等。

一. 精简的Linux系统

  Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。如下图所示:

  Linux内核主要是:进程管理、内存管理、文件系统。

  进程管理主要有以下几个部分:

  1.进程的描述 

  2. 程的初始化

  3. 进程的状态以及状态之间的切换

  4. 进程的创建

  5. 可执行程序是如何作为⼀个进程工作的

  6. 进程的上下文切换

  7. 进程的特权模式切换

  内存管理是:

  Linux把进程地址空间分成内核区和用户区两部分。当在内核态申请内存时直接给分配,而进程在用户态申请内存时,只是给了一个新的线性地址空间的一个使用权,真的要用的时候会产生缺页异常,然后再真的分配。请求调页是一种动态内存分配技术,它把页框的分配推迟到不能再推迟为止。与之相关的分配页框的方式为写时复制:父子进程是共享页框的,当读的时候,不分配新的页框。当写的时候,谁写就给谁分配,两者各自过运行一段时间都就都有了自己的空间。

  文件管理:

  Linux支持多种文件系统,包括ext2、ext3、vfat等等。Linux采用虚拟文件系统VFS来达到支持多种文件系统格式的目标。VFS为各类文件系统提供一个统一的操作界面和编程接口。向上提供统一的编程接口,向下对各种文件系统进行兼容。

  二. 敲下键盘产生中断

  当用户按键时,键盘接口会得到一个代表该按键的键盘扫描码,同时产生一个中断请求。键盘中断服务程序先从键盘接口取得按键的扫描码,然后根据其扫描码判断用户所按的键并作相应的处理,最后通知中断控制器本次中断结束并实现中断返回。当键盘上的一个按键按下时,键盘会发送一个中断信号给 CPU,与此同时,键盘在指定端口(0x60) 输出一个数值,这个数值对应按键的扫描码(make code),当按键弹起时,键盘又给端口输出一个数值,这个数值叫断码(break code).处理键盘中断时,要获取按键的扫描码和断码的数值,同时将数值转换为字符串,最后再将字符串的每一个字符绘制到界面上。这一系列其实是很耗时的计算。假设这时候有网络数据抵达系统,但是 CPU 忙于处理键盘中断,不能及时接收网络数据,这样,系统便会丢失网络数据。所以,对于中断,我们要尽可能快的处理,然后把控制器交还给原来的任务。对于键盘中断,我们可以把键盘发送的扫描码和断码数值缓存起来,然后把控制器交换给原来任务,等到 CPU 稍微空闲时再处理键盘事件,以设置一个缓冲区。

   三.   心得体会

  经过一学期的Linux操作系统的学习,在李老师和孟老师认真细心的教导下,我由原来对linux一无所知到有了一定的认识,了解了linux内核运行的方式,进程创建和切换的运行模式等,对以后学习linux操作系统有很大的帮助。遗憾的是时间太紧,很多知识还没有很好的消化吸收,希望接下来的复习可以加深知识点的理解。非常感谢两位老师疫情期间不辞辛苦的教学,谢谢!

posted @ 2020-07-09 19:52  蒋学成  阅读(242)  评论(0)    收藏  举报