关于MOOC的学习总结
20125133 马国祥 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
对Linux系统的理解及学习Linux内核的心得:
- Linux是一个极为庞大的,由C与汇编语言写成的操作系统。
- Linux分开内核态和保护态,内核态拥有最高的访问权限,常常帮助用户态进程实现功能。
- Linux创建新进程的代码十分的漂亮,fork()函数和execve()函数创建进程的方式是把父进程的复制一遍再破坏掉。
- Linux的进程切换做到了“智能”,在schedule()中有一个类似于OOD的策略模式封装在pick_next_task,挺让我惊讶的,而且随着内核版本迈进4.0时代,Linux的运行将有可能更高效。
- Linux的设计处处精巧,在这八个星期里面我们只学了汇编基础、程序的装载、线程的切换。让我们受益良多。
实验目录:
第一周实验
反汇编一个简单的C程序,分析汇编代码在计算机中的工作过程 http://user.qzone.qq.com/617434934/blog/1425827080
第二周实验
一个简单的时间片轮转多道程序内核代码 http://rc.qzone.qq.com/blog
第三周实验
跟踪分析Linux内核的启动过程查看 http://user.qzone.qq.com/617434934/2
第四周实验
使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 http://weibo.com/p/1001603825522235866495?from=page_100505_profile&wvr=6&mod=wenzhangmod
系统调用是进程进入内核空间的一种方法,稍后我们会接触到第二种进入内核的方式:中断。
第五周实验
分析system_call中断处理过程 http://weibo.com/p/1001603828405169700271?from=page_100505_profile&wvr=6&mod=wenzhangmod
中断异常也是一种进入内核态的方法之一,不过这个方法是不受程序所控制的,既我们无法预知和控制中断的到来。所以在中断的到来之前,我们必须做好准备。中断和系统调用一样,都会进入核心态,而且他们使用了一个同样的办法。定时器中断,它给系统提供了固定时间的中断间隔,也就是每过一个固定的时间,定时器都会发生一次中断。通过上面的学习,我们知道中断的发生,可以检查是否要发生进程的切换。所以在一定程度上,定时器中断可以调高系统的相应时间,尽量减少了进程长时间得到不处理器运行的饥饿情况。
第六周实验
分析Linux内核创建一个新进程的过程 http://weibo.com/p/1001603830732274442197?from=page_100505_profile&wvr=6&mod=wenzhangmod
内核同步是保证整个软件系统安全运行的一个非常重要的手段。进程是占用了一定的系统资源的一个程序的实体,或者说是正处于执行期的程序。进程不仅仅是一段可执行的代码,它还包括一些其他系统资源,如打开的文件、挂起的信号、内核内部数据、处理器的状态、地址空间以及一个或多个执行线程,当然还包括用来存放全局变量的数据段。
第七周实验
Linux内核如何装载和启动一个可执行程序http://weibo.com/p/1001603833670539597307?from=page_100505_profile&wvr=6&mod=wenzhangmod
第八周实验
理解进程调度时机跟踪分析进程调度与进程切换的过程 http://www.cnblogs.com/emochuanshuo/p/4394972.html
进程的调度是内核里面非常重要的一个部分,该模块完成了进程的切换功能,既它要选择一个最合适的进程去执行。
总结:
学习这门课最大的收获就是明白了一些分析代码问题的思路与方法,我觉得这也是最重要的的,抓住零散的代码中的关键才是深入理解的必要条件。也学会了边上课便做笔记,这样子的学习效率特别高,而且可以拓展到Offline的课堂,甚至到生活中去。夸张一点地说,学会记笔记,延长了自己的生命。因为当一天过去以后,不用思考自己这一天是不是又浑浑噩噩地度过了,至少我知道我记录下了我今天遇到的东西。等到有一天自己大脑的记忆体不再好用的时候,我还可以查看以前的笔记。学习了孟宁老师的课程收获挺多的,实在找不到什么最大的遗憾。要说遗憾就是因为时间有限,没能把Linux-3.18.6的内核代码全部分析一变,希望以后有时间可以完成这个艰巨的任务。
关于MOOC的学习总结的更多相关文章
- MOOC视频学习
mooc地址 2018/2/6-2/7学习计划: 学习第一周(1.1-1.4)内容. 学习笔记 2018/2/8-2/9学习计划: 学习第二周(1.5.2.1-2.5)内容. 学习笔记 2018/2/ ...
- 【MOOC课程学习记录】数据结构
看了中国大学MOOC zju的<数据结构>2019夏的第九次开课.做了一些PTA上的习题,没有全做,因为做得慢,老是不会,加上并不能做到一有空就学习,所以做不完了,给跪了Orz. 以后有时 ...
- mooc linux学习总结
通过八周的学习获得了很多知识. 首先,通过网课老师形象生动的讲述和描述一些专业词汇,使我更加深刻的记住并掌握了这些内容:动态的展示堆栈的变化,更容易理解一段汇编代码:分析操作系统的工作,记 ...
- 【MOOC课程学习记录】程序设计与算法(一)C语言程序设计
课程结课了,把做的习题都记录一下,告诉自己多少学了点东西,也能给自己一点鼓励. ps:题目都在cxsjsxmooc.openjudge.cn上能看到,参考答案在差不多结课的时候也会在mooc上放出来. ...
- mooc上学习acllib后写的包含背景音乐的小涂鸦板(初入江湖,大佬勿喷)
#include "acllib.h"ACL_Sound sound1;ACL_Image img;//开始图ACL_Image img1;//涂鸦图ACL_Color c=RED ...
- MOOC学习成果认证及对高等教育变革路径的影响
MOOC是网络开放教育创新发展的产物,也是备受人们欢迎的网络学习途径.当前制约MOOC能否可持续深入发展的问题聚焦于MOOC学习成果能否得到合理的认证.MOOC学习成果认证分为非学分认证和学分认证.M ...
- python学习之网页数据获取
由于需要学习机器学习的内容,了解到python在机器学习中使用很方便,开始学习之,机器学习目前主要在学<机器学习实战>这本书.python是在MOOC中学习<用python玩转数据& ...
- '"千"第一周学习情况记录
一周过去了,今天将我这一周的学习内容和主要感想记录与此和大家共同分享,一起进步.我将自己的学习计划命名为"千",因为我喜欢这个字,希望能用此来鼓舞自己不断前进.时间总是很快的,这一 ...
- Python入门学习笔记
了解 一下Python中的基本语法,发现挺不适应的,例如变量经常想去指定类型或者if加个括号之类的.这是在MOOC中学习到的知识中一点简单的笔记. Python的变量和数据类型: 1.Python这种 ...
随机推荐
- 《精通MVC5.0》笔记Razor
1.1.视图声明数据类型 Razor声明都是@开始,例如@model MVC.Models.Product声明了控制器创给视图的数据类型,这样就可以在视图使用@Modle.property访问数据,如 ...
- webfrrm基础
一.B/S和C/S 1.C/S C/S 架构是一种典型的两层架构,其全程是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据 ...
- 调整ESX的VMFS磁盘格式的块大小,让单个虚拟磁盘支持更大容量
调整ESX的VMFS磁盘格式的块大小,让单个虚拟磁盘支持更大容量 前因:客户搭建了VMware ESX企业版的测试平台:有一天接到一个需求,是测试数据库的,需要一个300G的磁盘. 解决过程: 1.按 ...
- SQL Server数据库性能优化之SQL语句篇【转】
SQL Server数据库性能优化之SQL语句篇http://www.blogjava.net/allen-zhe/archive/2010/07/23/326927.html 近期项目需要, 做了一 ...
- Memcached(1)-----基本介绍
memcached memcached概述 memcached是LiveJournal旗下Danga Interactive公司开发的一款软件.memcached是一个高性能,分布式内存对象缓存系统, ...
- C# 数据类型
1.整数类型: int 只能 存储证书,不能存储小数. 2.小数类型: doubie 机能存储整数,也能存储小数,小数点后面的额 15-16位. 3.金钱类型: decimal:用来存储金钱, ...
- spring -java.lang.NoClassDefFoundError: javax/mail/MessagingException
今天遇到这个问题,网上找了半天,终于解决了,最后记录一下. spring集成了mail,于是就测试了下,结果报了java.lang.NoClassDefFoundError: javax/mail/M ...
- php的__clone __call
(1) __clone方法在一个对象赋值给另外的一个对象的时候自动调用 <?php class A { public $a = "aa"; public $b = 10; f ...
- IOS App 右上脚红色数字提醒
IOS8.0以前直接显示: UIApplication *application=[UIApplication sharedApplication]; //设置图标上的更新数字 application ...
- hypermesh2flac3d
hypermesh2ansys2flac3d 目的: 将hypermesh中划分的网格输出到flac3d中.过程是hypermesh12.0-ansys13.0-flac3d3.0. 视频教程详见:h ...