首页
社区
课程
招聘
[讨论]进程冻结,保存磁盘上。在需要的时候恢复进程状态
发表于: 2024-10-11 06:38 3787

[讨论]进程冻结,保存磁盘上。在需要的时候恢复进程状态

2024-10-11 06:38
3787

虚拟机可以把虚拟机当前状态冻结,并且保存在磁盘上。用的时候开机恢复 还能继续工作 环境都还在。
那么不用虚拟机的情况下。能不能把某个进程冻结了?
不知有没有大手子研究过。来讨论一下


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 3
支持
分享
赞赏记录
参与人
雪币
留言
时间
huangmo
你的分享对大家帮助很大,非常感谢!
2025-1-7 10:16
mb_zkbvqvuw
你的分享对大家帮助很大,非常感谢!
2024-11-24 20:47
暗月隐落
感谢你的贡献,论坛因你而更加精彩!
2024-10-11 09:06
最新回复 (7)
雪    币: 600
活跃值: (1947)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
类似快照的做法
2024-10-11 09:34
1
雪    币: 134
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3

可以让进程冻结休眠,但是无法保存在磁盘上再恢复,除非操作系统支持。

进程完整性不止内存数据和线程信息,更有各种资源句柄,比如原来程序打开了文件,恢复的进程如何才能继承原有文件句柄?所以,无法做到,只能SuspendThread ResumeThread所有线程让进程休眠,无法做到保存文件恢复。


可能的方式是,程序需要一直存在,但可以在休眠的时候压缩内存占用,恢复的时候再从磁盘加载内存,但无法做到进程消失再恢复。


除非写驱动去支持内核资源对接,让程序冻结退出的时候不关闭进程的内核资源,进程恢复的时候改变资源到新进程。



最后于 2024-10-11 09:53 被mb_hgrbqfun编辑 ,原因:
2024-10-11 09:45
2
雪    币: 203
活跃值: (1274)
能力值: ( LV9,RANK:195 )
在线值:
发帖
回帖
粉丝
4
像楼上说的,涉及到资源引用确实不好办。
2024-10-11 17:52
0
雪    币: 147
活跃值: (507)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
确实,如果系统不支持的话很难办。总不能写个虚拟机跑windows吧
2024-11-24 19:30
0
雪    币: 9730
活跃值: (697)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
YiW
6
短时间可以,有公司做这样的东西,用于进程在虚机之间的迁移。冻结不行,最简的一个点,tcp timeout了恢复不了
2024-11-25 07:14
0
雪    币: 62
活跃值: (403)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哈哈哈,那一个收费软件,登陆进去之后,冻结成文件,就可以给别人用啦
2025-1-7 10:17
0
雪    币: 3051
活跃值: (572)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
8
目前来看,微软也只是在虚拟机层面实现了透明迁移(那群人的 Hyper-V 第二代虚拟机由于 Guest OS 可以淦得比较薄,于是那群人不用担心性能问题)
个人觉得如果不用虚拟化的话,把任务跑在 JVM CLR WASM 这类字节码虚拟机里做这件事会容易很多
但如果既不想用虚拟化也不想把自己的应用搞成字节码版本的,那估计得整 Windows 用户态模拟器了,倒是有个现成的项目可以作为参考:https://github.com/momo5502/emulator

毛利
2025-1-13 19:15
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册