TCP/IP网络技术基础重点.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用TCP/IP进行网际互连 一一客户-服务器编程与应用 客户-服务器模式 在分布式计算中,一个应用程序被动地等待,而另一个应用程序通过请求启 动通信的模式,称为客户-服务器模式。其中:发起通信的应用程序称为客户, 等待接收客户通信请求的程序称为服务器。客户和服务器分别指两个应用程序, 但在实际工作中,我们也将运行服务器程序的计算机简称为服务器。 充当客户的服务器 在服务器计算某个请求的响应时,它可能需要访问其他的网络服务。因此, 服务器也可能充当客户。在一个有许多可供使用的服务器的网络环境中,经常可 以发现某个应用的服务器对另一个应用则是客户。 并发 是指真正或表面呈现的同吋计算。真正的并发:DNA计算机、多处理器 (Multiprocessing)计算机;表面呈现的并发:通过分时(time sharing)机制, 使得单个处理器在多个任务之间足够快地切换,以致从表面上这些计算似乎是在 同时进行的,从而获得并发的效果。 进程vs线程 进程:是执行程序的实例,是具有一定独立功能的程序关于某个数据集合上 的一次运行活动,而不是程序的静态版本。进程包括一段地址空间和至少一个执 行的线程。线程最重要的信息时一个指令指针,它指明该进程正在执行的地址。 线程:是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。 关系:线程是进程的一个组成部分,线程由进程创建,因此一个进程中至少 存在一个线程,线程还可以创建其它线程;进程是资源分配和保护的基本单位, 线程只能在进程的地址空间活动,线程只能使用其所在进程的资源;线程作为基 本的调度单位,其状态有:就绪、运行、阻塞等;进程屮所有线程共享进程的存 储空间和分配资源。 线程的特征:动态创建、并发执行、抢先、私有局部变量、共享全局变量、 共享文件描述符、协调和同步函数。线程的优点:更高的效率:上下文交换的额 外开销减少;共享的存储器:通信开销减少,且更容易构造监控系统。补充:创 建和撤消线程的开销非常小:不需要向系统请求独立的地址空间及进行相关的地 址空间复制(例如父子进程),因此创建和撤销线程系统的开销要远小于进程。线 程的缺点:由于线程间共享存储器和进程状态,一个线程的动作可能对同一进程 中的其他线程产生影响:线程安全;健壮性。进程中有多个线程在同时运行,而 这些线程可能会同时运行一段代码。如果每次运行结果和单线程运行的结果是一 样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。若每个线程 中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是 线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就 可能影响线程安全。多个线程操作同一个数据段时,用相应的互斥机制,避免数据 段中的数据错误。 局部和全局变量的共享 如果多个线程在同一个进程内执行,则它们各自拥有一份独立的局部变量的 副本,且都可以共享进程的全局变量副本。 forkO函数:将运行的程序分为两个几乎完全一样的进程。用户执行该并行 程序时,OS创建一个含单线程的进程执行代码;当线程执行到forkO调用时,OS 复制进程,每个进程都启动一个从代码的同一位置幵始执行的线程,这两个进程 中的线程继续执行,就像两个用户同时启动了该应用程序的两个副本。调用fork() 函数的进程称为父进程,fork ()函数新创建的进程称为子进程。虽然一个进程 可以包含多个线程,但fork ()函数新创建的进程均为单线程的;fork函数要向它 的调用者返回一个值。返回给原来进程的值与返回给新创建进程的值是不同的。 在新创建的进程里,fork返回零;在原来的进程里,fork返回一个小的正整数来 标识(pid)新创建的进程。 #includestdib.h { printf ( “The value of I is %d\n”, #includestdio. h i); int sum; fflush(stdout) : //在printf ()后使用 main() { fflush (stdout)的作用是立刻将要输山的内 int i; 容输出。 sum=0; sum+=i;} fork (); printf( “The sum is %d\n” , sum); for (i=l;i =5;i++) exit(0); } s this. \n”); TOC \o 1-5 \h \z #includestdio.h } int sum; else{ main() { printf ( “The new process prints thi s. \ int pid; n” ); pid=fork () : } if (pid!=O) exit(0); { printf (“The original process pr

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档