好的,这是一个愚蠢的问题...
管道、FIFO和套接字是共享内存还是消息传递..?
一开始我认为它们是共享内存,因为管道使用read()和write(),但现在我完全困惑了。从技术上讲,“消息”存储在内核的地址空间中,所以它是一条消息还是存储内存?我有一个操作系统导论的考试要在几个小时后进行,我只需要搞清楚这个问题。提前感谢您的帮助!
好的,这是一个愚蠢的问题...
管道、FIFO和套接字是共享内存还是消息传递..?
一开始我认为它们是共享内存,因为管道使用read()和write(),但现在我完全困惑了。从技术上讲,“消息”存储在内核的地址空间中,所以它是一条消息还是存储内存?我有一个操作系统导论的考试要在几个小时后进行,我只需要搞清楚这个问题。提前感谢您的帮助!
消息传递是指在发送方和接收方之间进行交互的通信方式,例如套接字。虽然可以使用共享内存来实现,但通信模式仍然是消息传递。
这是消息传递。您指定一个缓冲区来写入套接字缓冲区,并且可以使用getTxAvailable()或其他方法事先了解它有多少可用空间。它并不真正是共享内存,因为它执行缓冲区传输操作以帮助封装套接字。如果您谈论的是客户端到服务器端的套接字,那也是消息传递。类似于Java直接缓冲区或文件映射内存的东西才是共享内存。