第0周做业:对本书每章提一个问题html
http://www.cnblogs.com/lmc1998/p/8011599.htmljava
第一周做业:熟悉Linux系统下的开发环境及一些软件的使用,学习连接的知识。git
http://www.cnblogs.com/lmc1998/p/7587541.html算法
第二周做业:复习C语言中关于二进制文件和文本文件读写的相关内容,模仿od完成myod。编程
http://www.cnblogs.com/lmc1998/p/7606215.html缓存
第三周做业:学习第二章《信息的表示和处理》进一步理解“信息=位+上下文”。安全
http://www.cnblogs.com/lmc1998/p/7657916.htmlbash
第四周做业:完成myod改进版,学习第十章,掌握系统编程错误处理的方式。服务器
http://www.cnblogs.com/lmc1998/p/7673924.html网络
第五周做业:掌握X86汇编基础,了解ISA(指令集体系结构),学习函数调用栈帧的概念,并用GDB进行调试。
http://www.cnblogs.com/lmc1998/p/7709305.html
第六周做业:学习教材第八章,了解异常及其种类,理解进程和并发的概念,掌握进程建立和控制的系统调用及函数使用。
http://www.cnblogs.com/lmc1998/p/7751335.html
第七周做业:学习第四章,了解并掌握ISA,触类旁通学习其余体系结构。
http://www.cnblogs.com/lmc1998/p/7782962.html
第八周做业:学习第十一十二章内容,掌握三种并发的方式:进程、线程、I/O多路复用,线程控制及相关系统调用,线程同步互斥及相关系统调用
http://www.cnblogs.com/lmc1998/p/7821487.html
第九周做业:学习第六章《存储器层次结构》,掌握有关知识。
http://www.cnblogs.com/lmc1998/p/7859606.html
第十周做业:无
第十一周做业:学习第九章《虚拟存储器》的内容。
http://www.cnblogs.com/lmc1998/p/7967387.html
第十二周做业:无
第十三周做业:回顾一学期所学知识,我感受网络编程和并发很重要,因此从新作了总结。
http://www.cnblogs.com/lmc1998/p/8051942.html
第十四周做业:我认为我学的最差的是存储器这一章,因此我从新学习了一遍。
http://www.cnblogs.com/lmc1998/p/8093181.html
第十五周做业:课程总结
第五周加分题--mybash的实现:使用fork,exec,wait实现mybash。
http://www.cnblogs.com/lmc1998/p/8011063.html
第六周课上做业:完成课上没完成的以及补充做业。
http://www.cnblogs.com/lmc1998/p/7750251.html
第六章课上考试题:课上没交上的做业的博客补交。
http://www.cnblogs.com/lmc1998/p/7897485.html
第八周课下总结:完成课上没完成的以及补充做业。
http://www.cnblogs.com/lmc1998/p/7821975.html
课下加分项mypwd实现:经过getcwd和readdir()来实现mypwd。
http://www.cnblogs.com/lmc1998/p/7859280.html
第十周课下做业-IPC:研究Linux下IPC机制:原理,优缺点。
http://www.cnblogs.com/lmc1998/p/8011521.html
实验一 开发环境的熟悉:学习了交叉编译,分清了宿主机与目标机,了解了NFC和超级终端的使用。
http://www.cnblogs.com/lmc1998/p/7690037.html
课下实验 缓冲区溢出漏洞:漏洞的出现是因为数据缓冲器和返回地址的暂时关闭,溢出会引发返回地址被重写,利用该漏洞进行攻击。
http://www.cnblogs.com/lmc1998/p/7749681.html
实验二 固件程序设计:学习使用并安装MDK,JLink驱动,完成LED实验。
http://www.cnblogs.com/ljq1997/p/7786639.html
实验三 实时系统:基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端,以及多线程的改进版。
http://www.cnblogs.com/lmc1998/p/7862586.html
实验四 外设驱动程序设计:学习资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章,并完成其中的test试验。
http://www.cnblogs.com/lmc1998/p/7967340.html
实验五 通信协议设计:基于Socket实现TCP通讯,研究OpenSSL算法,测试对称算法中的AES,非对称算法中的RSA,Hash算法中的MD5。选用合适的算法,基于混合密码系统实现对TCP通讯进行机密性、完整性保护。实现对实验二中的“wc服务器”经过混合密码系统进行防御。
http://www.cnblogs.com/lmc1998/p/8040473.html
https://gitee.com/lmc1998/lmc20155326/tree/master/src
截图 git log --pretty=format:"%h - %an, %ar : %s" 的结果
代码量汇总提交statistics.sh的支持截图
很惭愧,没有彻底作到。
多练习的确是提升的最有效的办法,勤于动手,知识才能学到手。
才开始时,没有进行有效的实践,只是运行了代码,没有思考代码的意义是什么,致使效率低下。
我以为开学初提出的问题比较肤浅,只是抓住了表面。
第一章、什么是计算机系统?
计算机系统由计算机硬件和软件两部分组成。硬件包括中央处理机、存储器和外部设备等;软件是计算机的运行程序和相应的文档。计算机系统具备接收和存储信息、按程序快速计算和判断并输出处理结果等功能。
第二章 浮点运算中IEEE标准的运算规则是什么样的?
IEEE定义了多种浮点格式,但最多见的是三种类型:单精度、双精度、扩展双精度,分别适用于不一样的计算要求。通常而言,单精度适合通常计算,双精度适合科学计算,扩展双精度适合高精度计算。一个遵循IEEE 754标准的系统必须支持单精度类型(强制类型)、最好也支持双精度类型(推荐类型),至于扩展双精度类型能够随意。
第三章 为何要懂汇编语言,汇编语言能带来哪些方便?
汇编语言可以保持机器语言的一致性,直接、简捷,并能像机器指令同样访问、控制计算机的各类硬件设备,如磁盘、存储器、CPU、I/O端口等,使用汇编语言,能够访问全部可以被访问的软、硬件资源。
第四章 处理器的流水线原理是什么?
CPU将操做分红一个一个的阶段(stage)。每一个stage都是由一个组合逻辑电路和一个流水线寄存器构成的。它经过时钟周期来控制信号,若是遇到了时钟的上升沿,那么就会转移到下一个阶段。在CPU内部,造成了一套取指令-译码-执行-访存-写回的硬件设计。当有数据完成了取指令的操做的时候,就能够发下一个取指令的信号了,这样能够保证取指令的硬件逻辑不会闲着。
第五章 如何进行程序优化?具体在哪些方面
1)高级设计。选择恰当的数据结构和算法;
2)基本编码原则:消除连续的函数调用;消除没必要要的存储器引用;
3)低级优化。循环展开;提升并行性,如多个累积变量,从新结合技术,条件传送代替条件选择。
第六章 存储器的层次结构有哪些?
存储器层次结构示例以下图所示:
存储器层次结构的中心思想是,对于每一个k,位于k层的更快更小的存储设备做为位于k+1层的更大更慢的存储设备的缓存。数据老是以块大小做为传送单元在第k层和k+1层之间来回拷贝的。
第七章 动态连接静态连接有什么不一样分别怎样进行呢?
连接是将各类代码和数据部分收集起来并组合成为一个单一文件的过程,这个文件可被加载(拷贝)到存储器中并执行。连接能够执行于编译时,也就是源代码翻译成机器码时,也能够执行于加载时,也就是程序被加载到存储器并执行时,甚至执行于运行时,由应用程序来执行。
动态连接是指在生成可执行文件时不将全部程序用到的函数连接到一个文件,由于有许多函数在操做系统带的dll文件中,当程序运行时直接从操做系统中找。而静态连接就是把全部用到的函数所有连接到exe文件中。动态连接是只创建一个引用的接口,而真正的代码和数据存放在另外的可执行模块中,在运行时再装入;而静态连接是把全部的代码和数据都复制到本模块中,运行时就再也不须要库了。
第八章 怎么处理异常,如何有效避免异常?
当处理器检测到有事件发生时,它会经过跳转表,进行一个间接过程调用(异常),到异常处理程序。
系统中可能的某种类型的异常都分配了一个惟一的非负整数的异常号。异常号是到异常表中的索引。
第九章 虚拟存储器的功能
将主存看做是一个存储在磁盘上的地址空间的高速缓存,在主存中只保护活动的区域,并根据须要在磁盘和主存之间来回传送数据;为每一个进程提供了一致的地址空间,从而简化了存储器管理;
保护了每一个进程的地址空间不被其它进程破坏。
第十章 I/O函数常见的有哪些?
CPU与外部设备、存储器的链接和数据交换都须要经过接口设备来实现,前者被称为I/O接口,然后者则被称为存储器接口。存储器一般在CPU的同步控制下工做,接口电路比较简单;而I/O设备品种繁多,其相应的接口电路也各不相同,所以,习惯上说到接口只是指I/O接口。
第十一章 网络编程是什么具体怎样实现?
客户端的编程主要由三个步骤实现:
一、 创建网络链接
二、 交换数据
三、 关闭网络链接
服务器端的编程步骤和客户端不一样,是由四个步骤实现,依次是:
一、 监听端口
二、 得到链接
三、 交换数据
四、关闭和客户端的链接。
第十二章 并发编程是什么为何要学习它?
所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。
因为不知道全部的加分博客,只列出了已知的加分博客:
我认为当你深刻学习,讲你的学习历程一一展示时,就会是优秀博客了。
http://www.cnblogs.com/lmc1998/p/8128633.html
不动手实践,致使课上做业完不成
没交上做业
这学期其实比起上学期的java,我认真了很多,多是习惯了这种方法吧,可是我心里仍是对这种偏自学的模式不太感冒。
我以为我应该须要提升个人学习积极性和效率。
个人结对对象是20155320,在结对过程当中咱们一块儿对学习过程当中遇到的问题进行了讨论,便于两方的学习。
加油吧~
加大学习热情和效率。
平均花了三十五小时的样子,花在了学习书上内容以及课上没完成的做业和补充做业上。
感受和上学期学习java相比提升了很多。
说实话,跟上学期的java课程比起来是满意的,可是和其余相似于c语言这样的学习效果差了一点。
课程结束后,估计是不能保持一周一篇博客了。
我认为应该继续讲课,这学期不光光自学感到很好。
中止使用不能自动提交的蓝墨云,有时候明明作了(虽然可能没作完)可是却由于时间截止一分都没有很难过。
多与学生交流吧。
感受这学期比起以前,改变了部分教学模式,老师也开始讲课了,才开始讲的第一节课我真的是有流泪的冲动,终于不是彻底自学了。
http://www.cnblogs.com/lmc1998/p/8128633.html