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

第11章 网络编程

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

11.1 客户端-服务器编程模型

  每个人网络应用都是基于客户端-服务器模型的。才有陪你过这个模型,一个应用是由一个服务器进程和一个或者多个客户端进程组成。

  服务器管理某种资源,并且通过操作这种资源来为它的客户端提供某种服务。

  客户端-服务器模型中的基础操作是事务。一个客户端-服务器事务由四步组成:

  1)当一个客户端需要服务时,它向服务器发送一个请求,发起一个事务。

  2)服务器收到请求后,解释它,并以适当的方式操作它的资源。

  3)服务器给客户端发送一个响应,并等待下一个请求。

  4)客户端收到响应并处理它。

11.2 网络

客户端和服务器通常运行在不同的主机上,并且通过计算机网络的硬件和软件资源来通信。

对于一个主机而言,网络只是又一种I/O设备,作为数据源和数据接收方。

一个以太网段,包括电缆和集线器;每根电缆都有相同的最大位带宽;集线器不加分辩地将一个端口上收到的每个位复制到其他所有的端口上。因此,每台主机都能看到每个位。

每个以太网适配器都有—个全球唯一的48位地址,它存储在这个适配器的非易失性存储器上。每个主机适配器都能看到这个帧,但是只有目的主机实际读取它。

桥接以太网 由 电缆和网桥 将多个以太网段连接起来,形成的较大的局域网。连接网桥的电缆传输速率可以不同(例:网桥与网桥之间1GB/S, 网桥与集线器之间100MB/S)。

网桥作用:连接不同网段。同一网段内A向B传输数据时,帧到达网桥输入端口,网桥将其丢弃,不予转发。A向另一网段内C传输数据时,网桥才将帧拷贝到与相应网段连接的端口上。从而节省了网段的带宽

在层次的更高级别中,多个不兼容的局域网可以通过叫做路由器的特殊计算机连接起来,组成一个internet。

每台路由器对于它所连接到的每个网络都有一个适配器(端口)。

11.3 全球IP因特网

每台因特网主机都运行实现TCP/IP协议的软件,几乎每个现代计算机系统都支持这个协议。因特网的客户端和服务器混合使用套接字函数典型地是作为会陷入内核的系统调用来实现的,并调用各种内核模式的TCP/IP函数。

一个IP地址就是一个32位无符号整数。

网络程序将IP地址存放在下图所示的IP地址结构中。

因为因特网主机可以有不同的主机字节顺序,TCP/IP为任意整数数据项定义了统一的网络字节顺序(大端字节顺序)例如IP地址,它放在包头中跨过网络被携带。在IP地址结构中存放的地址总是以(大端法)网络字节顺序存放的,即使主机字节顺序是小端法。

因特网客户端和服务器互相通信时使用的是IP地址。然而,对于人们而言,大整数是很难记住的,所以因特网也定义了一组更加人性化的域名,以及一种将域名映射到IP地址的机制。域名是一串用句点分隔的单词(字母、数字和破折号)。

域名集合形成了一个层次结构,每个域名编码了它在这个层次中的位置。通过一个示例你将很容易理解这点。下展示了域名层次结构的一部分。层次结构可以表示为一棵树。树的节点表示城名,反向到根的路径形成了域名。子树称为子域。层次结构中的第一层是个未命名的根节点。下一层是一组一级域名由非赢利组织(因特网分酒名字数字协会)定义。常见的第一层域名包括com、edu、gov、org、net,这些域名是由ICANN的各个授权代理按照先到先服务的基础分配的的。一旦一个组织得到了一个二级域名,那么它就可以在这个子域中创建任何新的域名了。

11.4 套接字接口

套接字接口是一组函数,它们和Unix I/O函数结合起来,用以创建网络

第十二章 并发编程

一、基于进程的并发编程

构造并发进程最简单的方法是用进程,使用像fork,exec和waitpid等函数。

例:一个构造并发服务器的自然方法就是在父进程中接受客户端连接请求,然后创建一个新的子进程来为每个新客户端提供服务。

1、  通常服务器运行很长的时间,所以我们必须要包括一个SIGCHLD处理程序,来回收僵死子进程的资源。

2、  其次父进程必须关闭他们各自的connfd拷贝。

3、  最后,因为套接字的文件表选项中的引用计数,直到父子进程的connfd都关闭了,到客户端的连接才会终止。

二、基于I/O多路复用的并发进程

基本的思路就是使用select函数,要求内核挂起进程,只有在一个或多个I/O事件发生后,才将控制返回给应用程序。

Select函数处理类型为fd_set的集合,也叫做描述符集合。逻辑上,我们将描述符集合看成一个大小为n的位向量

I/O多路复用可以用作并发事件驱动程序的基础,在事件驱动程序中,流是因为某种事件而前进的。一般概念是将逻辑流模型转换为状态机。

状态机:就是一组状态、输入事件和转移。

三、基于线程的并发编程

线程就是运行在进程上下文中的逻辑流。

多线程的执行模型在某些方面和多进程的执行模型是相似的。

每个进程开始生命周期时都是单一线程,这个线程为主线程。在某一时刻,主线程创建一个对等线程,从这个时间点开始,两个线程就并发地与运行。

Posix线程是在C程序中处理线程的一个标准接口。

终止进程:

1、  当顶层的线程例程返回时,线程会隐式地终止

2、  通过调用pthread_exit函数,线程会显示地终止。

3、  某个对等线程调用Unix的exit函数,该函数终止进程以及所有与该进程相关的线程

4、  另一个对等线程通过以当前线程ID作为参数调用pthread_cancle函数来终止当前线程

四、多线程程序中的共享变量

一组并发线程运行在一个进程的上下文中。每个线程都有它自己独立的线程上下文,包括线程ID、栈、栈指针、程序计数器、条件码和通用目的寄存器值。每个进程和其他进程一起分享线程上下文的剩余部分。

将变量映射到存储器:

线程化的C程序中变量根据它们的存储类型被映射到虚拟存储器:全局变量、本地自动变量和本地静态变量。

----------------------------------------------------------------------------------

参考资料:

深入理解计算机系统

时间: 2024-08-09 02:21:12

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

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

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

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

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

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

第六周 存储器层次结构 ---------------------------------------------------------------------- 第一节 存储技术 1.三种常见存储技术 1)RAM 静态RAM:SRAM将每个位存储在一个双稳态的存储单元里. 每个单元是用一个六晶体管电路实现的这个电路有这样一个属性,可以无限期地保持在两个不同的电压配置或状态之一. 动态RAM:DRAM将每个位存储为对一个电容的充电. 每个单元由一个电容和一个访问晶体管组成. 与SRAM不同,D

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

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

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. 根据物理地址寻

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

第八章 异常控制流 异常及其种类 异常:就是控制流中的突变,用来响应处理器状态中的某些变化. 在处理器中,状态被编码为不同的位和信号.状态变化称为事件.事件可能和当前指令的执行没有关系. 在任何情况下,当处理器检测到有事件发生时,它就会通过一张叫做异常表的跳转表,进行一个间接调用异常,到一个专门设计用来处理这类事件的操作子程序(异常处理程序) 当异常处理程序完成处理后,根据引起异常的事件的类型,会发生以下三种情况中的一种: 1)处理程序将控制返回当前指令,即当事件发生时正在执行的指令. 2)处理