关于过程和信号的概念性问题

Conceptual Questions About Processes and Signals

本文关键字:信号 概念性 问题 于过程 过程      更新时间:2023-10-16

我正在准备系统编程的期末考试,我有几个问题答不上来。

  1. 假设父进程派生出创建大对象的子进程。子进程是否可以很容易地使用信号将这个对象传递回父进程?

  2. 父进程派生子进程,子进程继续运行相同的程序。是最好的方式为父给一个数据结构,是在fork之前创建的一个孩子写一个单独的文件,并给孩子吗?(这一个我认为不是一个好方法,因为孩子仍然会共享一些父母的数据,包括所说的数据结构)

  3. 让我们假设你写了一个程序来测量a人的手指是通过捕捉信号信号,然后要求他们按下Ctrl-C越快越好。SIGINT信号处理程序将a加1在每次键入Ctrl-C时显示全局计数器。在预定义的时间之后停止并打印全局计数器除以所用时间。这个项目的根本问题是什么?

任何帮助都是感激的。

对你的问题的一些快速思考;

  1. 不,信号不适合传输数据。信号涉及大量开销,并且不能非常有效地排队。
  2. 多种IPC方法可用。UNIX中最流行的两个是套接字和共享内存(例如,请参阅shm)。在与不受信任的应用程序通信时,套接字通常更好。在您的应用程序分叉示例中,管道也将适用。
  3. 只要你能处理中断比他们进来快得多,你是OK的。也许在ctrl-c的例子中,你可以使用poll和fcntl(在UNIX上)做同样的事情,你可能会得到更好的精度。