WEB开发网
开发学院服务器服务器方案 集群系统MOSIX分析(4) 阅读

集群系统MOSIX分析(4)

 2008-12-01 11:02:39 来源:WEB开发网   
核心提示: comm_accept() :在Mosix通讯套接字上接受连接int comm_accept(mosix_link *ml, mosix_link **mlp, mosix_addr *ma, unsigned long t)接受建立连接请求,mlp指向建立的新连接,集群系统MOSIX分析

comm_accept() :在Mosix通讯套接字上接受连接

int comm_accept(mosix_link *ml, mosix_link **mlp, mosix_addr *ma, unsigned long t)

接受建立连接请求,mlp指向建立的新连接,连接的另一端的地址保存在ma中。

comm_waitaccept() :在Mosix通讯套接字上接受连接

static int

comm_waitaccept()comm_waitaccept()调用comm_accept接收连接请求并建立一条新的连接,然后comm_use这条新的连接并关闭旧的连接。

comm_send() :发送一条消息 (head + data)

int comm_send(int type, void *head, int hlen, void *data, int dlen, int uspace)

如果要发送的数据来自用户空间(uspace),且可能会导致远程page-fault(!dirty_all_remote_pages),则先把数据从用户空间拷入内核,然后检查地址范围的有效性(!ucache_ok)。

如果type & COMM_MFREGS或则type & COMM_MFIDENT,则分别通过comm_packregs(0, 0)和comm_packident(0)进行压缩,可能产生选项数据。

将数据按照消息格式组装起来,然后调用套接字操作集上的sendmsg操作将消息发送出去。

comm_sendto() :发送一个数据报

int comm_sendto(int mos, void *data, int len, mosix_link *mlink, mosix_addr *to)

通过mlink连接,发送len长的数据到to指明的地址,发送的数据在data中。

to指明目的地址,如果为空,则数据是发送给节点mos上的负载信息守护进程(INFO_DAEMON)。

调用套接字操作集上的sendmsg操作将消息发送到指定的地址。

comm_dorecv() :从连接中可靠的读取数据

int comm_dorecv(struct socket *sock, struct msghdr *msg, int len)

上一页  1 2 3 4 5  下一页

Tags:集群 MOSIX

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接