首页 > 其他 > 详细

课程学习总结报告

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

实验要求

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

老师很早就讲到过计算机的三大法宝:存储程序计算机,函数调用堆栈,中断。

在目前的冯·诺依曼体系结构计算机中,计算机分为五个部分:运算器、控制器、存储器、输入设备和输出设备,

linux操作系统提供的功能包括:系统调用。进程管理、内存管理、文件管理、I/O设备管理等。

函数调用堆栈:

技术分享图片

 

 中断:

中断分为外部中断和内中断,内中断又称为异常,包括故障和陷阱。

CPU处理中断的方式:

当执行了一条指令后,cs和eip这对寄存器包含 了下一条将要执行的指令的逻辑地址。 在执行这条指令之前,进入一个中断周期,CPU控制单元会检查在运行前一条指令时是否发生了一个中断或者异常。 如果发生了一个中断或异常,那么CPU控制单元执行下列操作

  • 确定中断关联的向量i

  • 读IDT表中的第i项

  • 读取IDT表项所对应的段

  • 中断是由授权的发生源发出的。

  • 检查是否发生了特权级的变化,一般指是否由用户态陷入了内核态。如果是由用户态陷入了内核态,控制单元必须开 始使用与新的特权级相关的堆栈

  • 在栈中保存eflags、cs和eip的内容

  • 装载cs和eip寄存器

Linux内核概念

技术分享图片

 

 

 linux操作系统提供的功能包括:系统调用。进程管理、内存管理、文件管理、I/O设备管理等。

而且linux主要由四个部分:内核、shell、文件系统和应用程序

系统调用

系统调用是将系统中的重要特权指令单独放到内核中,从而减少了因为应用程序员在缺乏对系统了解的情况下,造成整个系统的崩溃。

首先指令流执行到系统调用函数时,系统调用函数通过int 0x80指令进入系统调用入口程序,并且把系统调用号放入%eax中。进入系统调用入口程序(System_call)后,它首先把相关的寄存器压入内核堆栈(以备将来恢复),这个过程称为保护现场。保护现场的工作完成后,开始检查系统调用号是不是一个有效值,如果不是则退出。接下来根据系统调用号开始调用系统调用处理程序,从系统调用处理程序返回后,就会还原现场,从断点处继续执行之前的进程

进程管理

这一部分主要分为进程进程状态,进程切换,进程撤销,进程创建,进程调度

技术分享图片

进程状态

运行态,可运行态,僵死态,等待,暂停

每个线程创建了之后系统就为它创建了一结构体PCB,线程销毁,PCB也被销毁。PCB是进程存在的唯一标志,进程控制块PCB是名字为task_struct的数据结构,称为任务结构体

linux系统为每个用户进程分配了两个栈:用户栈和内核栈。内核进程只有内核栈,没有用户栈。

进程切换

为了控制进程的执行,内核必须有能力挂起正在CPU 上执行的进程,并恢复以前挂起的某个进程的执行, 这叫做进程切换。它主要由两步完成:

- 切换页全局目录以安装一个新的地址空间

- 切换内核态堆栈和硬件上下文

进程的撤销

主动撤销:可能是执行完代码,或者通知内核释放进程 的资源

被动撤销:内核有选择地强迫进程死掉。

进程的创建

我们的linux系统提供了一系列系统调用来供我们创建进程比如 Fork,vfork和clone系统调用创建新进程。以及exec系统调用执行一个新程序,以及exit系统调用终止进程

进程的调度

操作系统种存在许多进程调度的算法,分为剥夺式算法和非剥夺式算法。剥夺式算法操作存在许多的剥夺原则,比如优先权原则、短进程、优先原则、 时间片原则,这些都是,不剥夺算法就是一旦把处理机分配给某进程后 便让它一直运行下去,直到进程完成或发生某事件而 阻塞时,才把处理机分配给另一个进程。

常见的调度算法有:先进先出算法,短作业优先算法,最高优先级算法,先权优先调度算法。轮转法

进程调度算法的很重要的作用就是:选择占有处理机的进程以及进行进程上下文切换

文件管理

linux的虚拟文件系统分为以下几部分:

如图所示:

VFS是一个软件层,用来处理与Unix标准文件系统相关的所有系统调用,能为各种文件系统提供一个通用的、统一的接口。对于用户而言,不再需要自己针对每个不同的文件系统执行不同的操作命令,只需要用统一的open\read\write等操作。

技术分享图片

 时钟

主要用于时间片的计时,进程运行时间。和操作系统的墙上时间,即显示的年月日具体。以及维持定时器

还有以下几点作用:

- 确定当前进程的执行时间,考虑是否需要抢占

- 更新资源使用统计情况

- 检查到期的软定时器

打开一个文件的具体过程

打开文件首先会产生一个中断(软中断),跳到中断处理程序。保存现场,解析int指令得到参数,以参数为索引,得到系统调用对应的项。随后执行系统调用对应的sys_open函数,创建一个新的系统文件表,即file对象,还有对应的fcb,然后将指针值放到打开文件表中,使其指向file对象,并返回fd。

系统以及可以通过fd找到file对象,调用file->file_operation中对应的函数,进行write,read操作

总结与建议

通过这门课,我了解了linux的大致框架,与linux的大致构成。需要完全熟悉这个庞然大物还需要在以后多下功夫,阅读源码,熟悉细节。我对这门课的建议是:老师由浅入深地为我们介绍了linux操作系统,深入底层源码,让我对操作系统的底层更加了解,如果可以的话,建议可以多些解读源码的课时,更加深入地了解linux的操作系统。

 

课程学习总结报告

原文:https://www.cnblogs.com/yizhan-eventually/p/13276539.html

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