ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

课程学习总结报告

2020-07-10 21:42:32  阅读:265  来源: 互联网

标签:操作系统 总结报告 文件系统 学习 课程 存放 内存 Linux 进程


一、报告要求

  请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的、自洽的,并举例某一两个具体例子(比如读写文件、分配内存、使用I/O驱动某个硬件等)纳入模型中验证模型。谈谈您对课程的心得体会,改进建议等。出要求是发表一篇博客文章,长度不限,只谈自己的思考,严禁引用任何资料造成文章虚长。

二、Linux系统概念模型

  首先要明确的是操作系统的定义:是管理计算机硬件与软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

  Linux内核实现了操作系统的三大核心功能,即进程管理、内存管理和文件系统,对应操作系统原理课程中最重要的3个抽象概念是进程、 虚拟地址和文件。实现了三个核心功能就实现了操作系统最基本的功能,本文将从这三个核心功能的角度剖析LInux操作系统。

三、进程管理

  在系统运行的过程中,我们会创建新的进程去执行新的任务。为了提高CPU的利用率(有些进程等待IO资源,CPU无事可做),设计了各种进程调度算法。

  为了实现进程的切换,引入中断的概念。在中断的过程中,保存下当前进程运行所需要的信息,然后将下一个进程的信息加载到当前的寄存器和内存中,开始执行新的进程。

  这样就使得多任务能同时在系统内执行,而且合适的进程调度算法使得不会有进程得不到执行。  

四、内存管理

  进程(执行的程序)占用的用户空间按照「 访问属性一致的地址空间存放在一起 」的原则,划分成 5个不同的内存区域。 访问属性指的是“可读、可写、可执行等 。

  代码段代码段是用来存放可执行文件的操作指令,可执行程序在内存中的镜像。代码段需要防止在运行时被非法修改,所以只准许读取操作,它是不可写的。数据段数据段用来存放可执行文件中已初始化全局变量,换句话说就是存放程序静态分配的变量和全局变量。BSS段BSS段包含了程序中未初始化的全局变量,在内存中 bss 段全部置零。堆 heap堆是用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。当进程调用malloc等函数分配内存时,新分配的内存就被动态添加到堆上(堆被扩张);当利用free等函数释放内存时,被释放的内存从堆中被剔除(堆被缩减)栈 stack栈是用户存放程序临时创建的局部变量,也就是函数中定义的变量(但不包括 static 声明的变量,static意味着在数据段中存放变量)。除此以外,在函数被调用时,其参数也会被压入发起调用的进程栈中,并且待到调用结束后,函数的返回值也会被存放回栈中。由于栈的先进先出特点,所以栈特别方便用来保存/恢复调用现场。从这个意义上讲,我们可以把堆栈看成一个寄存、交换临时数据的内存区。上述几种内存区域中数据段、BSS段、堆通常是被连续存储在内存中,在位置上是连续的,而代码段和栈往往会被独立存放。堆和栈两个区域在i386体系结构中栈向下扩展、堆向上扩展,相对而生。

五、文件系统

在Linux中,一切都是文件,通过对文件的定义和操作来控制设备的执行和数据的存储。并且使用VFS虚拟文件系统,实现对多种文件系统的兼容。

要实现操作系统对其它各种不同文件系统的支持,就要将对各种不同文件系统的操作和管理纳入到一个统一的框架中。 对用户程序隐去各种不同文件系统的实现细节,为用户程序提供一个统一的、抽象的、虚拟的文件系统界面,这就是所谓的虚拟文件系统(VFS)。

六、小结

  通过这门课的理论与实验,我对Linux操作系统有了一个更为直观、更为底层的认知,如果可以的话,希望以后的课程在加个实验,把文件操作系统或者内存管理系统的某个模块的源码给讲一下,因为我们在学的时候用的很多都是伪码表示,自己看的时候存在一定困难,如果老师可以带着看一下并分析一下,可以让我们更好地自行阅读源码,触类旁通,非常感谢老师的指导。

标签:操作系统,总结报告,文件系统,学习,课程,存放,内存,Linux,进程
来源: https://www.cnblogs.com/ustc-BlueSky/p/13281283.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有