Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 冻结并恢复Cocoa任务或线程?_Objective C_Macos_Cocoa_Memory Management - Fatal编程技术网

Objective c 冻结并恢复Cocoa任务或线程?

Objective c 冻结并恢复Cocoa任务或线程?,objective-c,macos,cocoa,memory-management,Objective C,Macos,Cocoa,Memory Management,只是想知道 比方说,我使用NSTask或[NSWorkspace-sharedWorkspace]openURL:或Cocoa应用程序中的其他内容启动外部应用程序(我正在考虑OSX,但iOS也可能有所帮助) 我知道有可能停止这项任务并重新开始 但是。。是否可以保存该任务使用的所有内存信息,保存到磁盘,并在将来恢复 如果可能的话,怎么做?从哪里开始?有没有提供这种功能的项目?有什么例子吗 谢谢 不,这在Mac OS X内核上目前是不可能的 值得一提的是,Linux对该功能提供了实验性支持(称为。不

只是想知道

比方说,我使用
NSTask
[NSWorkspace-sharedWorkspace]openURL:
或Cocoa应用程序中的其他内容启动外部应用程序(我正在考虑OSX,但iOS也可能有所帮助)

我知道有可能停止这项任务并重新开始

但是。。是否可以保存该任务使用的所有内存信息,保存到磁盘,并在将来恢复

如果可能的话,怎么做?从哪里开始?有没有提供这种功能的项目?有什么例子吗


谢谢

不,这在Mac OS X内核上目前是不可能的


值得一提的是,Linux对该功能提供了实验性支持(称为。不过,该实现完全特定于Linux内核,除非完全重写,否则无法移植到Mac OS X。

从技术上讲,保存所有内存是可行的:它被称为内核转储。我不知道是否可以通过编程触发一个,但这是一个存在的东西。最难的部分是恢复内存(IIRC,一些较旧的Unix允许您执行内核转储,但如果OS X从未获得或不允许该功能,我也不会感到惊讶),如果您将其拔出,将给人留下深刻印象的部分是恢复所有线程的状态(并确保计时器的行为就像机器已经休眠一样),不可能的部分是重新连接文件描述符和其他连接。谢谢Peter,非常有用。您知道C/C++中是否有针对小型应用程序的简单示例,或者此功能是操作系统潜在功能的一部分吗?我在用类似模拟器的东西思考。一些视频游戏模拟器可以保存控制台的状态,我想我可以在信息较少的普通应用程序中尝试同样的方法,对吗?再次感谢!模拟器是运行来宾操作系统/程序/游戏的机器;来宾计算机的内存只是emulator进程中的一个
malloc
ked缓冲区,因此emulator将其保存到主机上的文件与任何其他程序保存任何其他缓冲区没有什么不同。转储自己进程的全部内存是一项完全不同的任务,我不知道具体如何做。查看阿米特·辛格的《MacOSX内部结构》,如果有任何一本书会有这样的信息,那本书会的。我真的很感激,谢谢!