第七章:
连接能够在编译时依靠静态编译器完成,也能够在加载时靠动态连接器完成。连接器的目标文件只有二进制文件一种。
连接器主要任务有二:符号解析和从新定义。
GCC编译器在工做过程当中调用获得的连接器为静态连接器,其余编译驱动程序亦是如此。
与编译位置无关的代码的共享库能够加载到任何地方,亦能够在运行中被多个进程共享。html
计算机将信息编码为比特,一般组织成字节序列。
有不一样的编码方式来表示整数、实数和字符串。
现代计算机绝大多数是64位字长机,便是本计算机的虚拟地址空间为16EB,大约是1.8410^19字节。然而个人笔记本电脑是32位字长机,其虚拟地址空间只有4GB,刚超过410^9字节。
计算机内一个字节八个比特,值域00000000~11111111。用十进制表示为0~255,十六进制是00~FF,或是0x00~0xFF。
计算机用16位ASCII值表示全部字符。
布尔代数用于逻辑计算,布尔数只有0和1两个数,结果也只有0和1两种,逻辑运算符只有~(非)、&(与)、|(或)、^(非或)。
二进制小数表示方法是依据小数点后几位来表示对应的2的负几回方,如二进制小数0.001表示十进制小数0.125,不过这种表示方法只能在表示x/2^n时能十分精确,形如十分之一这类分母不是2的几回方的小数,计算机只能经过二进制小数来近似表示。这类小数在不一样的计算机容易引发没必要要的偏差。
IEEE 754标准是由美国电气电子工程师学会(IEEE)计算机学会旗下的微处理器标准委员会(Microprocessor Standards Committee, MSC)发布。java
错误处理
附录内有三种错误风格报告函数:void unix_error(char msg)、void posix_error(int code,char msg)、* void gai_error(int code,char msg)。这些错误报告函数对应的风格就是Unix的错误、Posix的错误及GAI错误。还有一个void add_error(char msg)*,这个只是一个用来反馈错误的函数,并非报告错误的函数。git
指令集体系结构
ISA(指令集体系结构)包含如下四种: 复杂指令集运算(Complex Instruction Set Computing,CISC);精简指令集运算(Reduced Instruction Set Computing,RISC) ;显式并行指令集运算(Explicitly Parallel Instruction Computing,EPIC);超长指令字指令集运算(VLIW)。算法
Y86-64执行模式编程
线程vim
局部性原理和缓存思想在存储层次结构中的应用缓存
C语言中与存储器有关的错误安全
对我认为重要的第十二章从新学习过一遍,并把我认为的重点写上去。服务器
我第八章学习得不行,便从新学习一遍,一并将错过或误解的内容附上去。网络
清理工做
SM2,SM3,SM4
-SM1加密解密实验
实验二
使用多线程实现wc服务器并使用同步互斥机制保证计数正确
任务二
在Ubuntu完成资源中全课中的“hqyj.嵌入式Linux应用程序开发标准教程.pdf”中的第十一章的test试验
提交编译,加载模块,卸载模块,测试运行的截图(要多张,全屏,体现学号信息)
任务二
在Ubuntu中实现对实验三中的“wc服务器”经过混合密码系统进行防御。
答:在部分上作到了。只是在对多线程多进程上,还有尝试理解不占用内存的编码方式上用过,其余状况就只是看着每行代码去对着课本学习。
从原有代码当中添加一些本身新学习的代码,是一个颇有效的学习方法,至少我不用考虑怎么从新搭建一个大框架以学习一小片的代码。目前我还不能搭建出成百上千行的大规模代码,最多就是东拼西凑,可能不能很好地实现“高内聚,低耦合”的编码理念。
也许我应该在每个代码里面添加计时功能,有时候我并不知道哪类代码结构更快出结果。
有些有,有些没有。我并无作到通读每一章,基本上除了第一和第七章是彻底读过学过而没有疑惑,其余章节就是看了每章最后的总结就提问了。
第十二章:目录所说起的三种并发模式,其优势和缺点有什么?
进程并发实现起来最简单,可是不能及时将内存资源腾出给新的进程。
I/O多路复用能够很好的利用系统资源,可是代码复杂度随预计访问量的上升而上升。
线程并发有上二者的优势,可是必须依靠信号量来解决竞争冲突。
不足:
永远是超过计划用时地学习,有时还将学习时间调的太高,致使没有给其余科目留下时间来完成。
都%¥#给我滚去早点看书、早点学习,别成天处处晃悠!
你以为这门课老师应该开始作什么新的事情? 玩玩在线视频教学,在没开学的时候?