条件码寄存器中保存着单个位的条件码,由CPU维护,如:
CF:进位标志
ZF:零标志
SF:符号标志
OF:溢出标志缓存
有几类指令可以修改条件码:
算术指令:既改变操做数,也有可能改变条件码。
CMP指令:右操做数减左操做数,只可能改变条件码。
TEST指令:两操做数相与,只可能改变条件码。服务器
条件码寄存器不能直接读取,有三种方法:
set指令:根据条件码,设置一个字节。
jump指令:根据条件码进行跳转,即控制的条件转移。
cmov条件传送指令:根据条件码决定是否进行mov操做。网络
#include <unistd.h> #include <stdio.h> #include <errno.h> ssize_t rio_readn(int fd, void *usrbuf, size_t n) { size_t nleft = n; ssize_t nread; char *bufp = usrbuf; while (nleft > 0) { if ((nread = read(fd, bufp, nleft)) < 0) { if (errno == EINTR) { nread = 0; } else { return -1; } } else if (nread == 0) { break; } nleft -= nread; bufp += nread; } return (n-nleft); } ssize_t rio_writen(int fd, void *usrbuf, size_t n) { size_t nleft = n; ssize_t nwritten; char *bufp = usrbuf; while (nleft > 0) { if ((nwritten = write(fd, bufp, nleft)) <= 0) { if (errno == EINTR) { nwritten = 0; } else { return -1; } } nleft -= nwritten; bufp += nwritten; } return n; }
应用层经过传输层进行数据通讯时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP链接或多个应用程序进程可能须要 经过同一个TCP协议端口传输数据。为了区别不一样的应用程序进程和链接,许多计算机操做系统为应用程序与TCP/IP协议交互提供了称为套接字 (Socket)的接口,区分不一样应用程序进程间的网络通讯和链接。
生成套接字,主要有3个参数:通讯的目的IP地址、使用的传输 层协议(TCP或UDP)和使用的端口号。Socket原意是“插座”。经过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就能够和传输 层经过套接字接口,区分来自不一样应用程序进程或网络链接的通讯,实现数据传输的并发服务。数据结构
加载套接字库,建立套接字(WSAStartup()/socket()); 绑定套接字到一个IP地址和一个端口上(bind()); 将套接字设置为监听模式等待链接请求(listen()); 请求到来后,接受链接请求,返回一个新的对应于这次链接的套接字(accept()); 用返回的套接字和客户端进行通讯(send()/recv()); 关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup()); 加载套接字库,建立套接字(WSAStartup()/socket()); 向服务器发出链接请求(connect()) 关闭套接字,关闭加载的套接字库(closesocket()/WSACleanup());
位:位是数据存储的最小单位,位又称为比特(bit),8位=1字节(8bit=1Byte),每一个字节表示程序中的某些文本字符。每一位的状态只能是0或1:1bit=0或者1bit=1。字母用一个字节表示进行表示和存储,而一个汉字是两个字节表示和存储。 程序的生命周期是从一个源程序(或者说是源文件)开始的。源程序实际上就是一个由值0和1组成的位序列。
上下文(context)理解:并发
1.简单的说就是跟当前主题有关的全部内容 2.说到程序的上下文,就是当前这段程序之上和之下的程序段。由于有些变量、函数不必定都定义在一块儿,并且一个程序段不是一行就能写完,之间有有不少的联系。就像看英语阅读或者小说等都须要先后理解的。 3.“设备上下文”(the device context):是一种包含有关某个设备(如显示器或打印机)的绘制属性信息的Windows数据结构。全部绘制调用都经过设备上下文对象进行,这些对象封装了用于绘制线条、形状和文本的 Windows API。设备上下文容许在 Windows 中进行与设备无关的绘制。设备上下文可用于绘制到屏幕、打印机或者图元文件.
方法三:基于gettimeofday函数的测量
socket