- 博客(4)
- 收藏
- 关注
原创 实验三 守护进程
守护进程是一种长期运行的进程,在后台运行,它是独立于控制终端的,使一个进程成为守护进程的步骤为:1)fork()创建子进程,父进程exit()退出;2)在子进程调用setsid()创建新会话,释放与控制终端之间的关联关系;
2023-04-07 11:29:53
468
2
原创 实验八 进程间通信——Socket(2)
这个实验实现 linux的 socket 网络编程,socket 简单来说就是 ip+端口。socket用来创建一个通信的端点。返回的是一个文件描述符fd:对于客户端来说,就是通过fd来与服务器来发起通信的,对于服务器来说,这个就是一个监听套接字。bind把socket创建的套接字绑定到指定的ip和port,因为socket系统调用就是告诉操作系统,我要一个通信啦,你要给我准备好来,这样,os就给我们创建了一个基本的数据结构,但是里面还没有填充数据,bind函数就是给数据结构填充数据的。
2023-04-07 11:23:28
874
2
原创 实验六 进程间通信——共享内存与信号量
共享内存会利用虚拟内存和物理内存的映射关系,让不同进程开辟一块虚拟空间映射到相同的物理内存上,从而实现了两个进程对相同区域的读写,即进程间通信。但是共享内存并未提供同步机制,在第一个进程结束对共享内存的写操作之前,并无自动机制可以阻止第二个进程开始对它进行读取,这样会导致每次程序每次执行的结果都不一样。
2023-04-07 11:08:05
1156
2
原创 linux进程间通信——有名管道
无名管道只能在父子进程之间进行通信,有名管道提供了一个路径名与之关联,以 FIFO 的文件形式存在于文件系统中,并且其打开方式与打开一个普通文件是一样的,这样即使与 FIFO 的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此通过 FIFO 相互通信,因此,任意两个进程通过 FIFO 都能交换数据。要注意FIFO的内容不在磁盘中,而是在内存中。有名管道的本质是文件,FIFO同样有文件描述符,同样可以使用open/write/read等函数,明白这一点的话的话编程就容易很多了。
2023-04-07 11:04:27
987
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人