资源描述:
《网络编程与分层协议设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、自从人类进入商品经济社会以来,贸易即已成为人们日常活动的主要部分,并成为一国经济增长的主动力。国际分工的深化、大量国际统一标准规则的建立网络编程与分层协议设计 篇一:网络编程与分层协议设计部分习题答案 第2章Linux下C编程环境 习题4 信号忽略是指不对该信号做出任何响应,就犹如该信号没有发生过一样,进程不对其做任何处理. 信号阻塞是指若在某一时刻该信号发生了,此时内核不会将该信号发送给进程,而是将该信号保存起来,待到该函数解除对该信号的阻塞之后,再发送给该进程进行处理. 在信号受到阻塞和进程解除对该信号的阻塞,但信号还未到达进程之间的时间段,
2、进程可以任意改变对该信号的处理.当然如果到该进程结束之时如果还没有解除阻塞的话对则该信号的处理和忽略差不多 习题5 参见程序2_ 习题6 参见程序2_ 习题7 参见程序2_和程序2_7_ 习题8随着信息化和全球化的发展,国家及地区之间的贸易也已成为拉动一国经济的三驾马车之一,甚至是三驾马车之首,奥巴马政府成立之日起自从人类进入商品经济社会以来,贸易即已成为人们日常活动的主要部分,并成为一国经济增长的主动力。国际分工的深化、大量国际统一标准规则的建立 此处第8行和第10行是可以交换的.当将其交换以后,首先执行pthread_cond_signa
3、l(&mqlock_ready),此时对于另一个之前因条件不满足的线程thread2_run感知到条件变量的变化,开始获取锁.类似于调用pthread_mutex_lock(&mqlock),而此时线程thread1_run尚未解除锁,因此前一个线程thread2_run因无法获取锁而阻塞.随后线程thread1_run调用thread_mutex_unlock(&mqlock)释放锁.此时线程thread2_run得到锁,继续执行.当然对于其他的程序环境是否能够交换视具体环境而定.总得来说都对,不过都有缺陷(参看《Unix环境高级编程》)。 习题9 参
4、见程序2_ 第3章网络编程中常用的典型知识 习题2 参见程序3_ 习题4 structlen_and_flag { unsignedshortreserved:4, };hlen:4,fin:1,syn:1,rst:1,psh:1,ack:1,urg:1,ece:1,cwr:1; 习题5随着信息化和全球化的发展,国家及地区之间的贸易也已成为拉动一国经济的三驾马车之一,甚至是三驾马车之首,奥巴马政府成立之日起自从人类进入商品经济社会以来,贸易即已成为人们日常活动的主要部分,并成为一国经济增长的主动力。国际分工的深化、大量国际统一标准规则的建立
5、 可以将链表节点置于宿主的固定位置,例如宿主的首个元素位置,然后通过将指向链表节点的指针强制类型转换为宿主节点的地址。 习题6 参见程序3_ 习题7 先分析为什么要使用双向链表,而不使用单链表: 考虑普通的单链表,如下: structnode { } 假定a是某个单链表中的节点(structnodea),而b是刚定义的节点(structnodeb) structnode*next; 对于这样的链表,在指定的节点a后插入b很容易:=;=&b; 然而在指定的节点a前插入b却很麻烦; structnodehead;设head为头结点
6、structnode*temp; temp=&head; while(temp->next!=&a)temp=temp-&(转载于:小龙文档网:网络编程与分层协议设计)gt;next;得到a的前一个节点 temp->next=&b;=&a;将b插入temp与a之间随着信息化和全球化的发展,国家及地区之间的贸易也已成为拉动一国经济的三驾马车之一,甚至是三驾马车之首,奥巴马政府成立之日起自从人类进入商品经济社会以来,贸易即已成为人们日常活动的主要部分,并成为一国经济增长的主动力。国际分工的深化、大量国际统一标准规则的建立 这就花费了一定的时间来搜索a的前
7、一个节点,而linux要节省这部分时间.因此使用 双向链表,这就决定一个节点应该含有两个指针(一个向前,一个向后) 然后分析为什么prev要是用二级指针,而不使用一级指针: Linux内核中,除了有通用了双向链表,还有通用的哈希链表。后者定义与前者有些 不同。因为通常一个哈希表的表头要占用很大空间,而如果每个表头都用一个双向链表来做 的话,就显得太浪费了。只用一个指针可以实现相同的功能,并且可以节省一半的表头存储 空间.因此这就决定表头只含有一个指针(向前) 哈希链表定义如下: structhlist_head{ structhlist_n
8、ode*first; } structhlist