20145311 《信息安全系统设计基础》第十三周学习总结

20145311 《信息安全系统设计基础》第十三周学习总结

教材学习内容总结

第十一章 网络编程

客户端-服务器编程模型

一个应用是由一个服务器进程和一个或多个客户端进程组成
服务器进程 -> 管理某种资源 -> 通过操作这种资源来为它的客户端提供某种服务
基本操作:事务
一个客户端-服务器事务由四步组成:
    当一个客户端需要服务时,向服务器发送一个请求,发起一个事务。
    服务器收到请求后,解释它,并以适当的方式操作它的资源。
    服务器给客户端发送一个相应,并等待下一个请求。
    客户端收到响应并处理它。

客户端和服务器都是进程

网络

对主机而言,网络是一种I/O设备:从网络上接收到的数据从适配器经过I/O和存储器总线拷贝到存储器,典型地是通过DMA(直接存储器存取方式)传送。
物理上,网络是一个按照地理远近组成的层次系统:最低层是LAN(局域网),最流行的局域网技术是以太网。
以太网段
    包括一些电缆和集线器。每根电缆都有相同的最大位带宽,集线器不加分辩地将一个端口上收到的每个位复制到其他所有的端口上,因此每台主机都能看到每个位。
    每个以太网适配器都有一个全球唯一的48位地址,存储在适配器的非易失性存储器上。
    一台主机可以发送一段位:帧,到这个网段内其它任何主机。每个帧包括一些固定数量的头部位(标识此帧的源和目的地址及帧长)和数据位(有效载荷)。每个主机都能看到这个帧,但是只有目的主机能读取。
    使用电缆和网桥,多个以太网段可以连接成较大的局域网,称为桥接以太网。这些电缆的带宽可以是不同的。
    多个不兼容的局域网可以通过叫做路由器的特殊计算机连接起来,组成一个internet互联网络。
互联网重要特性:由采用不同技术,互不兼容的局域网和广域网组成,并能使其相互通信。其中不同网络相互通信的解决办法是一层运行在每台主机和路由器上的协议软件,消除不同网络的差异。
协议提供的两种基本能力
    命名机制:唯一的标示一台主机
    传送机制:定义一种把数据位捆扎成不连续的片的同一方式

IP地址

htonl函数将32位整数由主机字节顺序转换成网络字节顺序。
ntohl函数将32位整数从网络字节顺序转换成主机字节。
htons函数和ntohs为16位的整数执行相应的转换。
可以使用hostname -i来确定自己主机的点分十进制地址

网络的层次系统的最低层时LAN(局域网),其技术为以太网,每个以太网适配器都有一个全球唯一的48未地址。

第十二章 并发编程

并发编程

并发:逻辑控制流在时间上重叠
并发程序:使用应用级并发的应用程序称为并发程序。
三种基本的构造并发程序的方法:
    进程,用内核来调用和维护,有独立的虚拟地址空间,显式的进程间通信机制。
    I/O多路复用,应用程序在一个进程的上下文中显式的调度控制流。逻辑流被模型化为状态机。
    线程,运行在一个单一进程上下文中的逻辑流。由内核进行调度,共享同一个虚拟地址空间。

用信号量同步线程

共享变量引入了同步错误的可能性。
线程i的循环代码分解为五部分:
    Hi:在循环头部的指令块
    Li:加载共享变量cnt到寄存器%eax的指令,%eax表示线程i中的寄存器%eax的值
    Ui:更新(增加)%eax的指令
    Si:将%eaxi的更新值存回到共享变量cnt的指令
    Ti:循环尾部的指令块。

线程安全性

四个不相交的线程不安全函数类以及应对措施:

不保护共享变量的函数——用P和V这样的同步操作 保持跨越多个调用的状态的函数——重写 返回指向静态变量的指针的函数——①重写;②使用加锁-拷贝技术。

竞争

竞争发生的原因: 一个程序的正确性依赖于一个线程要在另一个线程到达y点之前到达它的控制流中的x点。也就是说,程序员假定线程会按照某种特殊的轨迹穿过执行状态空间,忘了一条准则规定:线程化的程序必须对任何可行的轨迹线都正确工作。 消除方法:
动态的为每个整数ID分配一个独立的块,并且传递给线程例程一个指向这个块的指针

死锁:一组线程被阻塞了,等待一个永远也不会为真的条件。

本周代码托管

其他(感悟、思考等,可选)

这周的学习内容主要是网络这一方面以及线程的知识,网络编程的知识在web编程这门课上已经学到了许多,

线程大致看了一下,感觉有些抽象,概念性的东西比较多。

学习进度条

  代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 100/100 1/2 10/10
第二周 150/200 2/4 8/18
第三周 200/250 1/5 5/23
第五周 50/300 1/6 9/32
第六周 20/320 1/7 8/40
第七周 20/340 1/8 6/46
第八周 60/400 2/10 6/52
第九周 80/480 1/11 8/60
第十周 60/540 2/13 6/66
第十一周 80/620 1/14 6/72
第十二周 50/670 1/15 5/77
第十三周 50/720 1/16 6/83

参考资料

时间: 2024-12-14 11:33:35

20145311 《信息安全系统设计基础》第十三周学习总结的相关文章

20135223何伟钦—信息安全系统设计基础第十三周学习总结

学习任务: 1. 掌握三种并发的方式:进程.线程.I/O多路复用 2. 掌握线程控制及相关系统调用 3. 掌握线程同步互斥及相关系统调用 1.并发的意义 概念:只要逻辑控制流在时间上重叠,那么就可以称为并发. 意义: 访问慢速设备(如I/O设备):[CPU可以在这样的慢速中“腾出手”再去做其他事情,使自己保持“繁忙”.] 与人交互:每次用户进行某种操作的请求的时候[用户不会在意在自己进行操作的时候系统是否还处理着其他程序],一个独立的逻辑并发流被用来处理这个程序. 通过推迟工作来降低延迟 服务多

信息安全系统设计基础第十三周学习总结——20135308

第11章 网络编程 所有的网络应用都是基于相同的基本编程模型有着相似的整体逻辑结构,并且依赖相同的编程接口. 网络应用依赖于很多在系统研究中已经学习过的概念,例如,进程.信号.字节器映射以及动态存储分配,都扮演着重要的角色. 我们需要理解基本的客户端-服务器编程模型,以及如何编写使用因特网提供的服务的客户端―服务器程序. 我们将把所有这些概念结合起来,开发一个小的但功能齐全的Web的服务器,能够为真实的Web,浏览器提供静态和动态的文本和图形内容. 11.1 客户端-服务器编程模型 1.每个网络

信息安全系统设计基础第十三周学习总结

第九章  虚拟存储器 一.虚拟存储器提供了三个重要能力: 1.将主存看作是一个存储在磁盘上的地址空间的高速缓存,在主存中只保护活动的区域,并根据需要在磁盘和主存之间来回传送数据: 2.为每个进程提供了一致的地址空间,从而简化了存储器管理: 3.保护了每个进程的地址空间不被其它进程破坏. 二.理解虚拟存储器的原因: 1.虚拟存储器是中心的:它是硬件异常.硬件地址翻译.主存.磁盘文件和内核软件的交互中心: 2.虚拟存储器是强大的:它可以创建和销毁存储器片.可以映射存储器片映射到磁盘某个部分等等: 3

20135205信息安全系统设计基础第十三周学习总结

第11章 网络编程 网络应用依赖于很多在系统研究中已经学习过的概念,例如,进程.信号.字节器映射以及动态存储分配,都扮演着重要的角色.还有一些新概念要掌握.我们需要理解基本的客户端-服务器编程模型,以及如何编写使用因特网提供的服务的客户端―服务器程序.最后,我们将把所有这些概念结合起来,开发一个小的但功能齐全的Web的服务器,能够为真实的Web,浏览器提供静态和动态的文本和图形内容. 11.1 客户端-服务器编程模型 每个人网络应用都是基于客户端-服务器模型的.才有陪你过这个模型,一个应用是由一

20135210程涵——信息安全系统设计基础第十三周学习总结

第12章 并发编程648 三种基本的构造并发程序的方法:进程.I/O多路复用.线程. 12.1 基于进程的并发编程 基于进程的并发服务器 关于进程的优劣 在父.子进程间共享状态信息,进程有一个非常清晰的模型:共享文件表,但是不共享用户地址空间.进程有独立的地址控件爱你既是优点又是缺点.由于独立的地址空间,所以进程不会覆盖另一个进程的虚拟存储器.但是另一方面进程间通信就比较麻烦,至少开销很高. 12.2 基于i/o多路复用的并发编程 I/O多路复用技术 基本思想:使用select函数,要求内核挂起

20135234马启扬-——信息安全系统设计基础第十三周学习总结

第十一章 网络编程 11.1 客户端-服务器编程模型 基本操作:事务 当一个客户端需要服务时,向服务器发送一个请求,发起一个事务. 服务器收到请求后,解释它,并以适当的方式操作它的资源. 服务器给客户端发送一个相应,并等待下一个请求. 客户端收到响应并处理它. 11.2 网络 (1)对主机而言:网络是一种I/O设备 从网络上接收到的数据从适配器经过I/O和存储器总线拷贝到存储器,典型地是通过DMA(直接存储器存取方式)传送. (2)物理上:网络是一个按照地理远近组成的层次系统 最底层:LAN(局

信息安全系统设计基础第十三周学习总结—20135227黄晓妍

第九章 虚拟存储器 将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,它高效地使用了主存.其实这一章还是讲解虚拟内存的,也就是和内核中的内存管理相关. 它为每个进程提供了一致的地址空间,从而简化了存储器管理 它保护了每个进程的地址空间不被其他进程破坏. 在硬件异常.汇编器.链接器.加载器.共享对象.文件和进程的设计中扮演着重要角色. 存储器让应用程序有了强大的能力,可以创建和销毁存储器片.将存储器片映射到磁盘文件的某个

信息安全系统设计基础第十三周学习总结-吕松鸿

第九章 虚拟存储器 虚拟存储器是计算机系统最重要的概念之一,它是对主存的一个抽象 三个重要能力: 它将主存看成是一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据,通过这种方式,高效的使用了主存 它为每个进程提供了一致的地址空间,从而简化了存储器管理 它保护了每个进程的地址空间不被其他进程破坏 9.1 物理和虚拟寻址 1.物理地址 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数组,每字节都有一个唯一的物理地址PA. 根据物理地址寻

20145311 《信息安全系统设计基础》第一周学习总结

20145311 <信息安全系统设计基础>第一周学习总结 教材学习内容总结 常用的部分命令 CTRL+SHIFT+T:新建标签页,编程时有重要应用: ALT+数字N:终端中切换到第N个标签页,编程时有重要应用: Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成: CTRL+C:中断程序运行 Ctrl+D:键盘输入结束或退出终端 Ctrl+S: 暂定当前程序,暂停后按下任意键恢复运行 Ctrl+A: 将光标移至输入行头,相当于Home键 Ctrl+E

20145311 《信息安全系统设计基础》第二周学习总结

20145311 <信息安全系统设计基础>第二周学习总结 教材学习内容总结 重新学习了一下上周的一部分命令:grep main wyx.c(grep的全文检索功能)ls > ls.txt :ls内容输出到文本find pathname -mtime -n/+nfind -size -n/+n (find的功能还是比较强大) 简单地学习了一下vim编辑器,跟着vimtutor简单地学了一些,在linux bash中使用vim能够极大地提高效率, vim的用法比较多,只学习了其中简单的一部分