课程学习总结报告

课程学习总结报告

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

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

产出要求是发表一篇博客文章,长度不限,只谈自己的思考,严禁引用任何资料造成文章虚长。

 

一、liinux系统概念模型

1 计算机的三个法宝,存储程序计算机,堆栈、中断

  1.1存储程序计算机

冯·诺伊曼体系结构

课程学习总结报告_第1张图片

 

运算器、存储器、控制器、输入输出设备构成了计算机的硬件

它的主要思想是存储程序计算机,程序和数据一同存入存储器,然后通过计算机运行时的时序加以区分。

  1.2堆栈

堆栈作为一种先入后出的数据结构,在linux系统中能够起到记录函数调用框架、传递函数参数、保存返回值的地址、提供函数内部变量的存储空间的作用

  1.3 中断

中断分为硬件中断和软件中断,能够被用来提高计算机的处理性能,提高计算机的工作效率。

 

2 系统调用

课程学习总结报告_第2张图片

 

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

  2.1 系统调用作用

通过良好的设计,应用程序能够通过系统调用简介访问内核相关功能,执行相应的命令。

系统调用同时属于一种中断,能够提高系统的安全性,是程序具有可移植性,把用户从底层硬件编程中解放出来。

  2.2系统调用过程简介

一个系统调用被执行时,首先会进入内核处理系统调用,在系统调用的服务结束并放回到用户态之前,会发生进程调度,而在进程调度的时候就会有进程上下文切换的出现。

3 进程

操作系统实现了:进程管理(进程),内存管理(虚拟内存),文件系统(文件)。其中

进程的创建使用了fork,也属于系统调用。

  3.1进程创建

创建进程是通过复制父进程,复制pcb,分配新的内核堆栈,修改复制过来的进程数据,最后返回进程号。

  3.2进程的切换

每个进程都有自己的地址空间,但是cpu以及寄存器都是进程之间共享的,因此切换正在运行的进程的时候,首先要保存需要挂起程序的寄存器值,相应得在重新恢复进程的时候,必须要重新恢复之前存储的寄存器值。

 操作系统的“两把宝剑”

中断上下文和进程上下文

中断上下文:中断上下文的切换被用来保存现场和恢复现场。

进程的上下文:当一个进程在执行时,CPU的所有寄存器中的值、进程的状态以及堆栈中的内容被称为该进程的上下文。当内核需要切换到另一个进程时,它需要保存当前进程的所有状态,即保存当前进程的上下文,以便在再次执行该进程时,能够得到切换时的状态执行下去。

 

二、系统的运行过程

linux通过将特权指令装入内核,实现了内核代码和应用代码的分离,同时保证了软件的可移植性。应用需要执行特权操作时需要调用系统调用,这是系统触发中断,从用户态进入内核态,使用linux提供的内核调用实现用户需要的功能,然后返回。系统由内核态回到用户态,过程中用户无法感受。

进程打开文件的过程,首先获得文件描述符,它能够作为后续操作的参数。文件描述符唯一的指定一个打开的文件。打开文件使用了系统调用open,如果成果则能够得到一个文件描述符。打开后可以使用read带读文件,没有数据时,read调用则会被阻塞,一直等到文件可读,。写文件是write被调用时,数据从用户空间的缓存区拷贝到内核空间的缓冲区,但是不立即写入磁盘,使用延迟写,并设置最大存放时效,能够防止磁盘系统崩溃时的数据丢失。close系统调用则是能够关闭文件描述符和文件之间的连接,之后文件描述符能够重用。

 

 三、心得体会,改进建议

两位老师的课都很精彩,前半段重动手,后半段中理解,深入浅出,让人在充分认识到linux系统的结构和原理的同时,能够学着将自己的代码作为这个庞大而系统的一部分,一起运行。

改进建议,可以增加更多的动手实验。

 

 

你可能感兴趣的:(课程学习总结报告)