BLCR技术初探

BLCR技术到底是什么技术?我没空和你乱扯,自己去看该官方网站的介绍:http://crd.lbl.gov/groups-depts/ftg/projects/current-projects/BLCR

首先要下载BLCR的源代码,可以在上面提到的官网上下载,现在最新版本是0.8.5的,目前已经有RPM安装包,但我是下载的源代码包:blcr-0.8.5.tar.gz。编译安装blcr如下所示

    % tar xvzf blcr-0.8.5.tar.gz
    % cd blcr-0.8.5
    % mkdir builddir
    % cd builddir
    % ../configure 
    % make
    % make install
  %insmod /usr/local/lib/blcr/3.2.0-29-generic/blcr_imports.ko
   %insmod /usr/local/lib/blcr/3.2.0-29-generic/blcr.ko
   %ldconfig


说下最后一个命令ldconfig,官网上说现在的linux系统一般会把一些动态库存放在高速缓存中,因为安装BLCR的时候有加入动态库,所以要显示使用ldconfig命令,
将新加入的动态库也放进高速缓存卓中。
   然后自己写个测试程序:testblcr.c
#include <stdio.h>  
  
int main()  
{  
    int number = 0,i;  
    printf("start process
"); 
  
    for (i = 0; i < 100; i++) {    
        printf("%d
", number);  
        sleep(1);  
        number++;
    }  
  
    return 0;  
}

然后正常编译该程序 gcc testblcr.c -o testblcr

然后让blcr来运行我们的程序:  

  % cr_run  ./testblcr&

让程序在后台进行,获得进程的PID

然后生成进程运行快照:

      % cr_checkpoint <PID>

该命令会在当前目录生成快照文件context_<PID>

用kill命令杀死该进程。

然后从快照中继续运行进程:

     % cr_restart context_<PID>

你会发现该进程并没有从头执行而是从快照文件保存的进程执行点中开始继续执行。



原文地址:https://www.cnblogs.com/Blue-Moon/p/3865737.html