课程学习总结报告

tangsongwz tangsongwz     2022-12-05     562

关键词:

linux课程学习总结报告

根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的、自洽的。因此在这里主要结合之前的实验心得来谈一谈linux的进程管理和中断机制。

一、 linux基础结构

1.1 用户态和内核态

linux可以分为用户态和内核态。
用户态:通常是上层应用程序的活动空间,应用程序的执行需要通过借助内核提供的资源,包括CPU资源、存储资源、I/O资源等。在该状态下代码可以访问的资源存在一定限制。
内核态:当需要执行一些特权指令时从用户态变换为内核态,在该状态下所有的指令包括特权指令都可以执?。
例如在内核态时,CS:EIP 的值可以是任意的地址,在 32 位 Linux 系统上有 4GB 的进程地址空间,内核态下的这 4GB 的地址空间全都可以访问。在?户态时,只能访问 0x00000000~0xbfffffff 的地址空间,0xc0000000 以上的地址空间只能在内核态下访问。

1.2 计算机体系机构

在目前的冯·诺依曼体系结构计算机中,计算机分为五个部分:运算器、控制器、存储器、输入设备和输出设备,各个部分之间由总线相互连接。存储器负责存储计算所需的数据和程序指令,因为指令和数据都可以以二进制形式存储。该体系结构的工作流程是,程序和操作数通过输入设备从外界接收并存于存储器内。当计算机工作时,控制器和存储器之间通过一个名为程序计数器(PC)的寄存器而相互关联,该寄存器内存储将要执行的下一条指令的存储地址,控制器以次为依据通过总线与存储器交互,获取所需的指令内容,后解析指令,得知执行指令所需的操作数,再通过多种寻址策略从存储器中取得所需的操作数,交给运算器执行。最后根据指令的含义,将执行结果进行适当的处理,PC自增,执行下一条指令,循环此过程即可实现计算机自动执行大量指令。

1.3 linux操作系统

为了能够在上述计算机体系结构下完成我们日常使用的应用程序,那么就需要一个落于底层硬件上层,但是位于其他应用程序下层,负责和底层硬件进行多种交互的应用程序,也就是操作系统。操作系统提供的功能包括:进程管理、内存管理、文件管理、I/O设备管理等。
(1)进程管理:保证各个进程能够合理地利用CPU资源完成自身任务。
(2)内存管理:管理内存资源,使得内存被进程安全使用。
(3)文件管理:通过文件系统来组织和管理在计算机中所存储的大量程序和数据。
(4)I/O设备管理:将鼠标、键盘等外设抽象为虚拟文件,Linux内核提供诸如open、write、read等接口函数对其统一管理。
其中Linux内核实现了操作系统的三?核?功能,即进程管理、内存管理和?件系统。

二、 linux进程管理

2.1 进程相关概念

进程是系统进行资源分配和调度的一个独立单位。
(1)进程控制块:进程控制块PCB是名字为task_struct的数据结构,它称为任务结构体。当一个进程被创建时,系统就为该进程建立一个 task_struct任务结构体。当进程运行结束时,系统撤消该进程的任务结构体。进程的任务结构体是进程存在的唯一标志。
(2)进程上下文:把系统提供给进程的处于动态变化的运行环境总和称为进程上下文。
(3)进程栈:linux系统为每个用户进程分配了两个栈:用户栈和内核栈。内核进程只有内核栈,没有用户栈。
(4)进程链表:为了对给定类型的进程进行有效的搜索,内核维护了几个进程链表。一般进程链表是双向链表。
(5)进程的状态:运行态、可运行态、等待态、暂停态、僵死态。

2.2 进程的创建

首先,任何进程都是源于开机后构建的0号进程,它是所有进程的祖先。开机时构建0号进程的过程成为初始化。除此之外,所有其他进程的初始化都是通过do_fork复制?进程的?式初始化的。1号和2号进程的创建是start_kernel初始化到最后由rest_ init通过kernel_thread创建了两个内核线程:?个是kernel_init,最终把?户态的进程init给启动起来,是所有?户进程的祖先;另?个是kthreadd内核线程,kthreadd内核线程是所有内核线程的祖先,负责管理所有内核线程。_do_fork的大体执行过程是把当前进程的描述符等相关进程资源复制?份,从?产??个?进程,并根据?进程的需要对复制的进程描述符做?些修改,然后把创建好的?进程放?运?队列。

2.3 进程的切换和调度

进程的切换主要通过切换页全局目录以安装一个新的地址空间,然后切换改变内核态堆栈和硬件上下文。
进程调度主要发生在以下的情况下:
(1)进程状态发生变化
(2)当前进程时间片用完
(3)进程从系统调用返回到用户态
(4)中断处理后,进程返回到用户态

三、 linux中断机制

3.1 中断的类型

中断分外部中断(硬件中断)和内部中断(软件中断),内部中断?称为异常(Exception),由CPU执行指令时探测到一个反常条件时产生,如溢出、除0错等。异常?分为故障(fault)和陷阱(trap)。系统调?就是利?陷阱(trap)这种软件中断?式主动从?户态进?内核态的。?般来说,从?户态进?内核态是由中断触发的,可能是硬件中断,在?户态进程执?时,硬件中断信号到来,进?内核态,就会执?这个中断对应的中断服务例程。也可能是?户态程序执?过程中,调?了?个系统调?,陷?了内核态,叫作陷阱(trap)。所以,系统调?也是特殊的中断。

3.2 中断的执行过程

首先根据中断向量找到异常处理程序,任何中断事件发生,CPU都会得到一个对应的中断向量,接下来转去中断处理程序。中断/异常处理完后,相应的处理程序会执行一条iret汇编指令,这条汇编指令让CPU控制单元做如下事情。首先用保存在栈中的值装载cs、eip和eflags寄存器,然后检查处理程序的特权级是否等于cs中最低两位的值(这意味着进程在被中断的时候是运行在内核态还是用户态)。若是表明依然在内核态,处理中断嵌套,iret终止执行;否则,从栈中装载ss和esp寄存器。最后检查ds、es、fs和gs段寄存器的内容,防止恶意用户程序利用这些寄存器访问内核空间。

四、 总结

最后,经过半个学期的linux课程学习,我通过结合老师上课的内容以及课后的动手实验,对于linux有了一个更加清晰深刻的认识。在这里要感谢孟宁老师和李春杰老师的认真教导。最后希望老师们可以对于课后的实验有一个比较详细的讲解,这样可以使得课程内容和实验更好的结合。最后衷心祝愿这门课越办越好!



















课程学习总结报告

linux课程学习总结报告根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的、自洽的。因此在这里主要结合之前的实验心得来谈一谈linux的进程... 查看详情

课程学习总结报告

课程学习总结报告请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的、自洽的,并举例某一两个具体例子(比如读写文件、分配内存、... 查看详情

课程学习总结报告

报告要求:请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的、自洽的,并举例某一两个具体例子(比如读写文件、分配内存、使用I/O... 查看详情

课程学习总结报告

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

课程总结

每周课程总结链接:第三周课程总结&实验报告一第四周课程总结&实验报告二第五周课程总结&试验报告(三)第六周&java实验报告四第七周课程总结&实验报告(五)第八周课程总结&实验报告(六)第九周课程... 查看详情

课程学习总结报告(代码片段)

报告要求:    请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的、自洽的,并举例某一两个具体例子(比如读写文件、... 查看详情

课程学习总结报告

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

课程学习总结报告

一 前言  请您根据本课程所学内容总结梳理出一个精简的Linux系统概念模型,最大程度统摄整顿本课程及相关的知识信息,模型应该是逻辑上可以运转的、自洽的,并举例某一两个具体例子(比如读写文件、分配内存、使用I... 查看详情

课程学习总结报告(代码片段)

课程学习总结报告Linux之进程  概述:进程是Linux进行资源分配和调度的基本单位,进程也被看做是程序的一次执行过程,当持久化在磁盘上的二进制代码被载入内存时,Linux操作系统为其分配了用户栈和内核栈,同时使用task_s... 查看详情

课程学习总结报告

linux的组成:  内核,shell,文件系统等组成了基本的linux系统。 linux系统的主要功能有中断机制和进程管理,其中系统调用为特殊的中断。linux的系统调用:通过int$0x80(32位)或syscall指令(64位)来触发系统调用,之... 查看详情

课程学习总结报告

一学期的课程就这样结束了,涉及的内容不少,但要把这些内容整合在一起重新组织纳入到自己的知识体系中还是比较困难,尽力而为吧。下面内容是按照各个模块进行总结,就算是期末前的复习了。 系统调用与用户态和内... 查看详情

课程学习总结报告

 一、linux模型 Linux系统一般有4个主要部分内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。  1.linux内核 内核(Kerna... 查看详情

课程总结报告

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

课程学习总结报告

一、精简的Linux系统概念模型概述  一个精简的Linux系统概念模型主要应该包括:进程管理,内存管理,文件和设备管理这几个主要部分,还应该有GUI等方便用户操作的平台。  操作系统的第一要务是帮助用户操作所有计算... 查看详情

课程学习总结报告

一.linux系统概念模型:其实这个模型老师在课堂上已经给出了,张贴在下面作为参考:   操作系统概念:在介绍这个系统模型之前,我觉得应该先弄清楚操作系统是什么,给出操作系统的概念:操作系统(OperatingSystem... 查看详情

课程学习总结报告

一:进程管理1:进程的定义:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。2:进程的状态:     3:进程控制块 当一个进程被创建时,系统就为该进程建立一个task_struct任务结... 查看详情

课程学习总结报告

Linux内核主要由以下几个功能:进程管理、文件系统、IO体系结构和设备驱动程序、内存管理等等。从这张图中,我们可以看到linux操作系统的架构。对底层来说,Linux系统与硬件交互,管理所有资源,对上层来说,通过系统调用... 查看详情

《密码安全新技术》课程总结报告(代码片段)

《密码安全新技术》课程总结报告课程学习内容总结第一次课网络(Web)安全与内容安全本次讲座的学习内容主要为两方面:1.Web应用安全SQL注入HavijPangolin1.反射型XSS2.存储型XSSApache解析漏洞Nginx解析漏洞2.隐私安全用户轨迹:移动... 查看详情