第0周学习总结html
简要内容:java
了解课程内容,阅读老师的博客。以后对学习内容进行总结,提出本身不懂以及最想解决的问题。安装虚拟机,学会其简单的操做方法。linux
第1周学习总结git
简要内容:编程
对实验楼中的内容进行实践学习。了解linux系统,学会基本概念和操做,如终端、用户管理、文件建立、删除等等。对linux的核心命令熟练运用掌握。如find、locate、cheat、grep、which、whereis等。vim
第2周学习总结数组
简要内容:缓存
学习vim的一些基本操做,如光标移动、保存退出、删除、复制、替换等等,gcc编译代码的过程及原理,实践应用gcc编译的方法,运用gdb对代码进行调试,学习makefile的基本原理及语法规范安全
第3周学习总结服务器
简要内容:
理解三种数字(无符号数、补码、浮点数)的概念,理解什么是整数溢出,学会在64位机器上生成32位代码,理解掌握大端法和小端法,掌握布尔运算在C语言中的应用,掌握逻辑运算和位运算,学会补码的计算
简要内容:
熟练掌握编译产生汇编代码的方法,学会运用反汇编命令,理解操做数三种类型的定义,理解栈的特色,掌握gdb使用的流程并实践运用
简要内容:
学习Y86指令集的内容,理解并掌握Y86异常、Y86指令集功能码,学习HCL表达式,理解HCL表达式和C语言中表达式的区别,安装Y86模拟器并掌握其使用的方法,完成并仔细分析课后例题中的重点题
简要内容:
了解RAM、ROM、磁盘、固态硬盘,理解局部性的定义和性质,掌握缓存命中、缓存不命中、冲突不命中的定义,按照老师的要求在git中创建一tree,将代码分类管理
简要内容:
复习linux的经常使用命令,如man、cheat、grap、find、cd、vim、gdb等,对本身半个学期来的收获进行总结,发现本身学习过程当中仍然存在的问题和不足
简要内容:
掌握Unix I/O中文件打开、读写、关闭的原理,经过实践熟悉文件打开,读写文件、关闭文件的函数调用,掌握I/O重定向的方法,理解标准I/O库的概念,在学习过程当中发现问题并将问题发到论坛中与同窗们共同讨论
简要内容:
对上一周课本中的知识回顾复习,学习老师在QQ群里发的代码,掌握每一个代码运行的方法和功能,并对代码中不懂的函数、参数进行分析,理解代码功能是怎样实现的。学习视频,掌握两个重要命令:man -k key1 | grep key2| grep 2 和 grep -nr XXX /usr/include
简要内容:
对老师发的代码进学习,掌握进程建立和控制的系统调用及函数使用,理解异常及异常种类的定义,掌握异常处理的方法,理解进程和并发的概念,理解数组指针、指针数组、函数指针、指针函数的区别,理解信号机制:kill,alarm,signal,sigaction
简要内容:
本周主要复习了前三周的学习内容,对以前老师发的代码以及实验中用到的代码进行了仔细地分析、学习,理解数组指针、指针数组、函数指针、指针函数的定义,掌握他们的区别方法,理解信号产生的方法和信号处理函数
简要内容:
掌握网络编程模型,学习套接字接口的相关函数,理解wev服务器,掌握三种并发的方式:进程、线程、I/O多路复用,掌握线程控制及相关系统调用,掌握线程同步互斥及相关系统调用,对老师发的代码进行了仔细地分析、学习
简要内容:
理解虚拟存储器的概念和做用,理解地址翻译的概念,理解存储器映射,掌握动态存储器分配的方法,理解垃圾收集的概念,了解C语言中与存储器有关的错误
简要内容:
熟悉linux开发环境,使用linux的ARM编译,了解嵌入式开发的基本过程
简要内容:
了解多线程程序设计的基本原理,熟悉终端I/O函数的使用,学习使用多线程来实现串口的收发处理,使用linux的armv4l-unknown-linux-gcc编译
简要内容:
掌握uC/OSII的移植过程,掌握C语言、汇编语言的混合编译
简要内容:
学习在linux下驱动设计的原理,掌握使用模块方式进行驱动开发调试的过程
简要内容:
掌握在ARM开发板实现一个简单WEB服务器的过程,学习在ARM开发板上的SOCKET网络编程,学习在linux环境下signal函数的调用
刚开始学习时,并无意识到代码驱动学习的重要性,每次在git.oschina.net中上传代码的时候,都怀着一种不良的情绪,以为这样作就是对时间极大的浪费,彻底没有必要把老师给的代码下载下来再传上去啊。装完linux后,本应该完成linux下git的安装,可是由于对git学习的这种不良情绪的存在,就没有按老师的要求完成学习任务。
后来进入了老师的待及格队伍,在老师的严格监管下迫于压力才认真完成了git的安装,当时写了http://www.cnblogs.com/20144303sys/p/5953437.html 这篇博客。当时安装git的过程并不顺利,遇到了各类各样的问题,这就又让我对这个git的好感度降低了很多。
直到有一次,个人虚拟机忽然爆炸,在登陆界面一直登录不进去,无奈之下选择了从新安装。可是从新安装虚拟机以后,以前敲过的代码、学习注释之类的不是都没有了吗?这时候,git的价值就体现出来了。这也让我想起了娄老师课上曾经告诉咱们,如今要求作的事情,可能有一天真正用到的时候,就知道他的好处了。
以后每周我都是认认真真的将代码一个一个标上注释,以每周为一类上传。其实,git的用处不只仅是能挽救咱们的数据,咱们用它来查改代码,增添代码都十分的简单。在完成第一次的git配置以后,每次上传代码,只须要简单的输三个命令就能够完成。这也让我明白,不管作什么事情,前期基础中付出越多的努力,之后作起来就会越简单
确实,要理解一个代码,硬生生的看是不够的,效率也比较低。经过对代码的增删和修改能让咱们更快的理解代码。举一个简单的例子,好比说filesize这段代码。在第一次编译运行时,输出The size of /etc/networks is 54 。刚开始看到的时候一头雾水,后来把 /etc/networks修改为其余的文件路径,查看这些文件的大小以后,发现输出结果就是定义路径文件的大小。所以,不须要查代码中参数的意义,就能够将其理解消化。
或者有的时候咱们对有些函数的功能不是很理解,能够把这段函数的代码删掉,再次运行,对比先后输出结果的不一样,就能明白。
所以,加点代码,改点代码不只能加深咱们对代码的理解,也能提升学习的效率。
在动手实践的过程当中不要偷懒。以为git没有意义,是浪费时间,不按老师要求完成。认为代码太过复杂,懒得去查各个参数和使用的函数。这些都是在学习过程当中曾经出现的问题,也是实践的大忌。可能起初比较轻松的是那些省略掉实践过程的人。但那些真的按老师要求,一步步动手实践的同窗越日后越轻松。因此,不能忽视每一次实践的机会,老师要求本身动手的东西必定要亲自实践。
感受并无抓住重点.....
1.系统硬件是如何组成的?
电脑组成硬件:主板、CPU、内存、显卡、电源、散热器、显示器。
主板:电脑核心部件,用于搭载电脑其他硬件设备的一个平台。
CPU:电脑核心部件,用于处理数据。
内存:电脑核心部件,用于给CPU提供数据存放的地方。
显卡:分为集成显卡和独立显卡,集成显卡是必须部件,独立显卡是可选部件,用于将数字信号转换为图形信号。
电源:根本部件,用于提供电脑各个硬件工做电压。
散热器:辅助类不可缺乏部件,用于散去CPU工做产生的热量。
显示器:必备部件,用于将显卡的图形信号转换为图像。
2.信息如何处理表示?
三种最重要的数字表示:无符号,补码,浮点数
3.程序语言是如何转换成计算机语言的?
由C编译器生成IA32和X86-64汇编语言
4.处理器是如何设计的?
从设计单时钟周期、非流水线化的数据通路开始,而后引入流水线化的思想,将处理一条指令所须要的不一样步骤实现为独立阶段。
5.如何消除循环的低效率?
提升局部性
6.存储器的结构?
寄存器、高速缓存、主存、本地二级存储、远程二级存储
7.什么是静态连接?
以一组可重定位目标文件和命令行参数做为输入,生成一个彻底连接的能够加载和运行的可执行目标文件做为输出
8.进程的基本概念是什么?
进程是对一个正在执行的程序的一种抽象
9.虚拟存储器的功能有哪些?
虚拟存储器是硬件异常、硬件地址翻译、主存、磁盘文件和内核软件的完美交互,它为每一个进程提供了一我的的一致的的私有的地址空间
10.什么是I\O?
I/O指输入输出,输入操做是从I/O设备拷贝数据到主存,而输出操做是从主存拷贝数据到i/o设备
11.如何进行网络编程?
利用socket、listen、connect、rent、rev等函数进行编程
12.并发和并行的区别是什么?
并发和并行从宏观上来说都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。
个人加分共10分,其中3分来自于优秀博客加分,5分是问题总结加分,2分是匿名调查加分。
优秀博客:
二维码:
二维码:
二维码:
问题汇总:
二维码:
一个学期的学习就快要完了,回过头总结这个学期这门课收获到了什么,我想主要是三个方面的进步。
第一个方面是课程知识学习。经过这一个学期的学习,掌握了《深刻理解计算机系统》这本书中的知识。
第二个方面是学习工具使用方法的学习。在这一个学期的学习过程当中,老师教会咱们使用了多种学习工具,好比linux下的git、markdown、实验楼等等。这些学习工具不只提升了咱们学习的效率,也让咱们学习的过程更加生动有趣,不只仅停留在课本上。同时,这些学习工具在从此任何一门课程或是平常的工做和生活中,都能给咱们带来极大的便利。当咱们有一天用markdown完成排版任务,用git恢复丢失的数据,或是经过博客园回顾知识时,会想到是娄老师给予了咱们这些宝贵的财富。
第三个方面是学习能力和心态的进步。从上学期的java学习到如今,在娄老师的教学方法下已经快一年多了。我的认为在学习能力方面有了较大的提高,懂得了如何使用学习工具,明白了怎样提升学习效率。好比说前段时间个人linux系统一直进不去,输入登陆密码后又会从新弹出来登陆界面。出现问题后,我就在博客园中搜索到了解决的办法,综合网上的各类资料,独立的挽救了个人虚拟机。我以为这就是学习能力提高的一个表现吧。
须要改进的地方,我以为仍是在学习中的惰性吧。每次老师在周一的时候就会下发本周的学习任务,可是我老是拖到周4、周五才开始学习。
还有就是在学习的时候不够耐心。就像是在代码学习的过程当中,假如这个代码中有不少不懂得参数和函数,每每看着看着就会放掉其中一些细节的地方。
优势:
让处在待及格队伍中的同窗意识到差距和危机的存在,及时的告诫同窗们不能再应付差事。让暂时成绩稍差的同窗明白应该从什么地方开始作起,有了一个明确的目标和动力。也确保了这些同窗每周都在认真完成学习任务。
但愿老师能创建一个学习帮助机制。让一个成绩较好的同窗帮助一个待及格队伍中的同窗,解决他们在学习中遇到的问题,帮助他们提升成绩。不少时候待及格队伍中的同窗有问题但找不到人能帮助解决问题。这可能会打消你们学习的积极性。
学习过程着眼重点,抓住细节。每周老师都会给这周学习的任务和考试重点,要提升学习效率天然要抓住每周的重点学习。同时,在学习过程当中,也要注意每一处的细节。其实老师要求咱们作的每一件事情都是他以为精华的的东西。老师要求要完成的每一件事情都要认真完成,不能以为作这件事没有意义就不肯意去作,不能只拘泥于眼前,要看到长远的影响。
20个小时
从进入待及格队伍以后,学习效率就有提升
还算比较满意,但仍有不少事情没有作好
每周的随堂测试,待及格管理机制,自选实践项目
没有
改善一下待及格管理,创建一个学习帮助机制
连接:http://www.cnblogs.com/20144303sys/p/6219906.html
二维码: