二维码:
html
简要内容:
1.了解Linux操做系统
2.掌握核心的Linux命令:find/locate/cheat/grep/which/whereis,熟练应用“搜索”进行触类旁通的学习
3.使用Linux中用户管理命令/系统相关命令/文件目录相关命令/打包压缩相关命令/比较合并相关命令/网络相关命令等git
二维码:
web
简要内容:
1.熟悉Linux系统下的开发环境
2.熟悉vi的基本操做
3.熟悉gcc编译器的基本原理
4.熟练使用gcc编译器的经常使用选项
5.熟练使用gdb调试技术
6.熟悉makefile基本原理及语法规范
7.掌握静态库和动态库的生成与调用方法编程
二维码:
数组
简要内容:
1.理解二进制在计算机中的重要地位
2.掌握布尔运算在C语言中的应用
3.理解有符号整数、无符号整数、浮点数的表示
4.理解补码的重要性
5.能避免C语言中溢出,数据类型转换中的陷阱和可能会致使的漏洞
6.进一步理解“信息=位+上下文”缓存
二维码:
安全
简要内容:
1.理解逆向的概念
2.掌握X86汇编基础,可以阅读(反)汇编代码
3.了解ISA(指令集体系结构)
4.理解函数调用栈帧的概念,并能用GDB进行调试
5.阅读教材,完成课后练习(书中有参考答案),考核:练习题把数据变换一下
6.教材3.1-3.7节中练习,重点:3.1,3.3,3.5,3.6,3.9,3.14,3.15,3.16,3.22,3.23,3.27,3.29,3.30,3.33,3.34服务器
二维码:
网络
简要内容:
1.了解ISA抽象的做用
2.掌握ISA,并能触类旁通学习其余体系结构
3.了解流水线和实现方式
4.教材4.1-4.3中练习,重点:4.1 4.2 4.5 4.6 4.8 4.10 4.11 4.12 4.16 4.17 4.19 4.21 4.24并发
二维码:
简要内容:
1.了解常见的存储技术(RAM、ROM、磁盘、固态硬盘等)
2.理解局部性原理
3.理解缓存思想
4.理解局部性原理和缓存思想在存储层次结构中的应用
5.高速缓存的原理和应用
二维码:
简要内容:
1.复习Linux命令,特别是man -k, cheat, grep -nr xxx /usr/include
2.复习vi, gcc, gdb,make的使用
3.复习教材内容ch01 ch02 ch03 ch04 ch06 ch07
4.复习前面的考题,下次考试考每次考试错的最多的题目
二维码:
简要内容:
1.掌握系统编程和系统调用的概念
2.掌握系统编程错误处理的方式
3.掌握Unix/Linux系统级I/O:open close read write seek stat
4.掌握RIO
5.掌握I/O重定向的方法
二维码:
简要内容:
1.掌握系统编程和系统调用的概念
2.掌握系统编程错误处理的方式
3.掌握Unix/Linux系统级I/O:open close read write seek stat
4.掌握RIO
5.掌握I/O重定向的方法
二维码:
简要内容:
1.了解异常及其种类
2.理解进程和并发的概念
3.掌握进程建立和控制的系统调用及函数使用:fork,exec,wait,waitpid,exit,getpid,getppid,sleep,pause,setenv,unsetenv,
4.理解数组指针、指针数组、函数指针、指针函数的区别
5.理解信号机制:kill,alarm,signal,sigaction
6.掌握管道和I/O重定向:pipe, dup, dup2
二维码:
简要内容:
1.第九周代码检查
2.第十周代码检查
3.第十一周代码检查
4.项目
二维码:
简要内容:
1.掌握三种并发的方式:进程、线程、I/O多路复用
2.掌握线程控制及相关系统调用
3.掌握线程同步互斥及相关系统调用
二维码:
简要内容:
1.理解虚拟存储器的概念和做用
2.理解地址翻译的概念
3.理解存储器映射
4.掌握动态存储器分配的方法
5.理解垃圾收集的概念
6.了解C语言中与存储器有关的错误
二维码:
二维码:
二维码:
二维码:
二维码:
代码驱动的学习作到没有?
作到了,前面老师并无要求要以周或者单元分类代码,因此没有整理,基本上本身敲完代码截图完后就没管了,到后面老师写了一篇关于代码驱动的博客教咱们如何进行代码驱动,首先下载git,而后新建文件夹,按每章节分类,把代码所有整合进去,后造成一个代码树分支,这样作很是有效以及方便本身找寻东西
加点代码,改点代码是理解的最好方式,参考编程的智慧,谈谈你的心得
说实话本身在代码上并无太多的理解,每次都只是敲了老师给的代码,而后运行编译,而后经过看书有一些基础的代码语法的了解,加点代码或者改点代码没有作过,以为本身看到代码都以为很烦躁,以为学习了书上的内容就足以应付考试了,这学期的书上的内容每一章我都有认真学习,理论的知识不少甚至我均可以背下来不少地方也有本身的理解,可是老师考试一出代码题就以为本身什么都不会了,一种深深的挫败感,因此我认为代码的理解和学习是很是有必要的
实践上有什么经验教训
说到实践想必不少同窗和我同样,只是敲了代码,运行而后编译以为本身已经进行了实践,其实并无去理解代码,以为运行截图而后放在博客里就表示本身已经学习了,这是一种自欺欺人的手法,看书上的内容应付考试百分之八十已经足够了,可是若是不理解的话,遇到代码问题就只会单纯的编译运行命令,说实话并无什么做用
总体评价一下第0周做业中本身提出的问题是否是抓住了学习重点
刚刚看了一下本身第0周的博客,感受提出的问题并无抓到重点,提出的只是一些小细节的概念问题,对于主要的大致诳街都没有把握住
对第0周问题的回答:
1.各类存储设备之间是怎样进行交流的
CPU是中央处理器,是控制和运算器;存储器的功能是存储程序、数据和各类信号、命令等信息,并在须要时提供这些信息;I/O接口是输入/输出的接口;硬盘(储存器)就是经过I/O接口,把数据送到内存中供CPU处理的
2.浮点表示方式在计算机中是如何实现的?
浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中一般是2)的整数次幂获得,这种表示方法相似于基数为10的科学记数法。
3.机器级表示是什么?
机器使用二级制数0/1串表示数据,咱们叫作位级表示,x86计算机,用8位表示一个字符,用32位表示一个整数,用64位表示一个浮点数。
4.计算机处理器是如何设计的?
5.什么是最小二乘方拟合?
寻求与给定点 {(Xi,Yi)}(i=0,1,…,m)的距离平方和为最小的曲线y=p(x).函数p(x)称为拟合函数或最小二乘解,求拟合函数p(x)的方法称为曲线拟合的最小二乘法.
6.基本存储技术都包括哪些?
7.动态连接共享库如何实现?
动态共享库是被全部使用它的应用程序共享的,不管调用一个动态共享库的进程有多少,系统中始终只运行着一个动态共享库,这里动态共享库中“共享”的含义。至于“动态”,则主要强调的是连接发生在什么阶段。对于静态连接库而言,连接过程发生在编译阶段,操做系统在加载程序时再也不对程序作任何改变
8.系统是如何处理遇到的突发情况
9.虚拟存储器如何工做?它有什么特性?
在具备层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器”;拟内存的做用 内存在计算机中的做用很大,电脑中全部运行的程序都须要通过内存来执行,若是执行的程序很大或不少,就会致使内存消耗殆尽。为了解决这个问题,Windows中运用了虚拟内存技术,即拿出一部分硬盘空间来充当内存使用,当内存占用完时,电脑就会自动调用硬盘来充当内存,以缓解内存的紧张。
10.咱们该使用哪些I/O函数?
11.web服务器如何搭建?
12.并发编程是什么?
所谓并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。
本身的收获
首先在第一周的时候阅读老师给的博客,因为新学期的热血沸腾本身学习得真的很认真,并且还被老师评为了优秀博客,到后面贪玩了几周进入了待及格,经过每周多写一篇博客以及找老师验收代码加了几分,而且端正了本身的学习态度,每周固定在周三开始学习,天天学习的内容很少,可是必定会弄懂,书上的内容理解得还挺透彻的,以前老师开玩笑说若是经过看书本的新旧程度判分数的话不会差不少,我当时以为很奇怪,如今以为真的是这个道理,如今个人课本每页都有本身的标记本身的理解,因为时间够充足固然效率会提升不少,不会盲目的过一遍书。说实话我以前习惯于到周末“一天一本书,一周一学期”的考试模式,如今以为这种方式比较起来学得东西固然会更多,细嚼慢咽比囫囵吞枣更让人感到舒服
本身须要改进的地方
本身每周看老师的要求学习任务,只是会机械的完成,除了任务外的东西多一点点都不会作,直到那周要交实验博客的时候,以前的累计着一直没写,那一周写了7篇博客,真的是写得快窒息了,以为本身又开始拖任务了,因此我须要改进的地方仍是不要把事情拖到最后一刻以及多学一点点东西并不会浪费时间而是掌握技能