- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TCP/IP网络技术基础重点
用TCP/IP进行网际互连
——客户-服务器编程与应用
1.客户-服务器模式
在分布式计算中,一个应用程序被动地等待,而另一个应用程序通过请求启动通信的模式,称为客户-服务器模式。其中:发起通信的应用程序称为客户,等待接收客户通信请求的程序称为服务器。客户和服务器分别指两个应用程序,但在实际工作中,我们也将运行服务器程序的计算机简称为服务器。
2.充当客户的服务器
在服务器计算某个请求的响应时,它可能需要访问其他的网络服务。因此,服务器也可能充当客户。在一个有许多可供使用的服务器的网络环境中,经常可以发现某个应用的服务器对另一个应用则是客户。
3.并发
是指真正或表面呈现的同时计算。真正的并发:DNA计算机、多处理器(Multiprocessing)计算机;表面呈现的并发:通过分时(time sharing)机制,使得单个处理器在多个任务之间足够快地切换,以致从表面上这些计算似乎是在同时进行的,从而获得并发的效果。
4.进程vs线程
进程:是执行程序的实例,是具有一定独立功能的程序关于某个数据集合上的一次运行活动,而不是程序的静态版本。进程包括一段地址空间和至少一个执行的线程。线程最重要的信息时一个指令指针,它指明该进程正在执行的地址。线程:是进程中执行运算的最小单位,亦即执行处理机调度的基本单位。
关系:线程是进程的一个组成部分,线程由进程创建,因此一个进程中至少存在一个线程,线程还可以创建其它线程;进程是资源分配和保护的基本单位,线程只能在进程的地址空间活动,线程只能使用其所在进程的资源;线程作为基本的调度单位,其状态有:就绪、运行、阻塞等;进程中所有线程共享进程的存储空间和分配资源。
线程的特征:动态创建、并发执行、抢先、私有局部变量、共享全局变量、共享文件描述符、协调和同步函数。线程的优点:更高的效率:上下文交换的额外开销减少;共享的存储器:通信开销减少,且更容易构造监控系统。补充:创建和撤消线程的开销非常小:不需要向系统请求独立的地址空间及进行相关的地址空间复制(例如父子进程),因此创建和撤销线程系统的开销要远小于进程。线程的缺点:由于线程间共享存储器和进程状态,一个线程的动作可能对同一进程中的其他线程产生影响:线程安全;健壮性。进程中有多个线程在同时运行,而这些线程可能会同时运行一段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。多个线程操作同一个数据段时,用相应的互斥机制,避免数据段中的数据错误。
5.局部和全局变量的共享
如果多个线程在同一个进程内执行,则它们各自拥有一份独立的局部变量的副本,且都可以共享进程的全局变量副本。
fork()函数:将运行的程序分为两个几乎完全一样的进程。用户执行该并行程序时,OS创建一个含单线程的进程执行代码;当线程执行到fork()调用时,OS复制进程,每个进程都启动一个从代码的同一位置开始执行的线程,这两个进程中的线程继续执行,就像两个用户同时启动了该应用程序的两个副本。调用fork()函数的进程称为父进程, fork()函数新创建的进程称为子进程。虽然一个进程可以包含多个线程,但fork()函数新创建的进程均为单线程的;fork函数要向它的调用者返回一个值。返回给原来进程的值与返回给新创建进程的值是不同的。在新创建的进程里,fork返回零;在原来的进程里,fork返回一个小的正整数来标识(pid)新创建的进程。
#includestdib.h
#includestdio.h
int sum;
main(){
int i;
sum=0;
fork();
for (i=1;i=5;i++)
{ printf(“The value of I is %d\n”,i);
fflush(stdout); //在printf()后使用fflush(stdout)的作用是立刻将要输出的内容输出。
sum+=i;}
printf(“The sum is %d\n”,sum);
exit(0);
}
#includestdio.h
int sum;
main(){
int pid;
pid=fork();
if(pid!=0)
{ printf(“The original process prints this.\n”);
}
else{
printf(“The new process prints this.\n”);
}
exit(0);6.接口的功能
分配用于通信的本地资源;指定本地和远程通信端点;(客户端)启动连接;(客户端)发送数据报;(服务器端)等待连
您可能关注的文档
- ARM技术应用领域的现状及发展趋势.docx
- BluecatSolution解决方案.docx
- CAD复杂三维设计模型在GIS中展示的实现方法.docx
- CAD画齿轮的渐开线程序 (lsp)和渐开线齿轮关系.doc
- C5C9的精制及利用.doc
- CASIO计算器在桥梁平面线形测量中的应用.doc
- CIK细胞的作用机制和研究现状.doc
- CNC加工技术介绍.doc
- CTMR室规范化建设方案和措施.doc
- CRC原理的理解与编程.doc
- 2024年陕西咸阳亨通电力(集团)有限公司供电服务业务部直聘用工招聘145人笔试参考题库附带答案详解 .docx
- 2024年中建四局土木工程有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年四川雅茶贸易有限公司公开招聘和考察聘用人员3人笔试参考题库附带答案详解 .docx
- 2024年中国烟草总公司辽宁省公司公开招聘拟录用人员(166人)笔试参考题库附带答案详解 .docx
- 2024江苏连云港中诚物业管理有限公司招聘工作人员1人笔试参考题库附带答案详解 .docx
- [毕节]2025年贵州毕节市引进人才649人笔试历年参考题库附带答案详解.docx
- 2024年度中国东航技术应用研发中心有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年福建省厦门盐业有限责任公司春季人才招聘1人笔试参考题库附带答案详解 .docx
- 2024年山东省环保发展集团绿能有限公司职业经理人招聘2人笔试参考题库附带答案详解 .docx
- 2024年安徽滁州郊源阳光电力维修工程有限责任公司招聘41人(第一批次)笔试参考题库附带答案详解 .docx
最近下载
- 2023年山东省临沂市中考物理测试试卷及解析.pdf VIP
- 统编版《道德与法治》一年级下册教案.pdf VIP
- 部编版小学道德与法治四年级教材解读及教学建议.pptx
- Unit 5 First Aid Reading and Thinking教学设计-2023-2024学年高中英语人教版选择性必修第二册.docx
- (2025春新版本)部编版一年级语文下册全册教案.pdf
- 《MSA测量系统分析》课件.ppt VIP
- 2024年江西工业职业技术学院单招职业技能测试题库标准卷.docx VIP
- 中职英语新课标词汇表.doc
- 2025年江苏安全技术职业学院单招职业适应性测试题库及1套完整答案.docx VIP
- 积极心理学全套课件.ppt VIP
文档评论(0)