Porting DMTCP to Mac OS X                   Liang Yu                                       Xiang Gong  College of Computer...
What is the DMTCP?•  DMTCP	  (Distributed	  Mul2Threaded	  Checkpoin2ng)	  	  •  A	  tool	  to	  transparently	  checkpoin...
Why porting to Mac•  Mac	  is	  used	  extensively	  •  No	  DMTCP	  in	  Mac	  recently	  
How to do that?What	  informa2on	  of	  a	  process	  we	  	  should	  pay	  aCen2on	  to:	  	  •      libraries	  •      ...
How implemented in Linux     and some Unix
But when it comes to Mac OS X ...
In MacDistinction in Some Commands
In MacDistinction in System Construction
WHAT SHOULD WE DO?
Option One :
How to Construct a Linux-likeProcfs in Mac OS X:•  Is	  MacFUSE	  the	  perfect	  solu2on	  for	  us?	  •  MacFUSE	  is	  ...
We feel less hope,then we try another method.
Then, we roll back to the previousproblem, thinking an alternative.
Option Two:
The VMA of a Processin Details
A Demo•  Find the Memory Range for the stack
Different mechanisms when itcomes the memory boundary•  Signal	  Func2on	  •  Sigac2on	  Func2on	  	  	  	  	  -­‐-­‐	  If...
Quick Video Demo – Find Heap
Probing the Libraries•  Considerably	  Complicated	  •  Right	  now,	  we	  choose	  “libc”	  as	  a	  beginning,	  	  	  ...
What discovered during the work        VS	  
Enhanced Access() Usage
Result of Enhanced Access()
FUTURE WORK …
•  Using	  access()	  call	  to	  replace	  sigac2on()	  call	  successes	                   in	  Linux,	  but	  crashes	 ...
Acknowledgments•  We	  would	  like	  to	  thank	  Prof.	  Gene	  Cooperman	  	  	  	  	  for	  every	  instruc2ons	  he	 ...
Upcoming SlideShare
Loading in …5
×

Porting dmtcp mac_slides

370 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
370
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Porting dmtcp mac_slides

  1. 1. Porting DMTCP to Mac OS X Liang Yu Xiang Gong College of Computer and Information Science College of Electrical and Computer Engineering Northeastern University Northeastern University Boston MA 02215 Boston MA 02215 Email: liangyu@ccs.neu.edu Email: gong.xi@ece.neu.edu
  2. 2. What is the DMTCP?•  DMTCP  (Distributed  Mul2Threaded  Checkpoin2ng)    •  A  tool  to  transparently  checkpoint  the  state  of   mul2ple  simultaneous  applica2ons,  including  mul2-­‐ threaded  and  distributed  applica2ons.  •  hCp://dmtcp.sourceforge.net/  
  3. 3. Why porting to Mac•  Mac  is  used  extensively  •  No  DMTCP  in  Mac  recently  
  4. 4. How to do that?What  informa2on  of  a  process  we    should  pay  aCen2on  to:    •  libraries  •  data  •  stack  •  heap  •  threads  •  open  file  descriptors  •  signal  status  •  mutexes  •  process  envrionment  
  5. 5. How implemented in Linux and some Unix
  6. 6. But when it comes to Mac OS X ...
  7. 7. In MacDistinction in Some Commands
  8. 8. In MacDistinction in System Construction
  9. 9. WHAT SHOULD WE DO?
  10. 10. Option One :
  11. 11. How to Construct a Linux-likeProcfs in Mac OS X:•  Is  MacFUSE  the  perfect  solu2on  for  us?  •  MacFUSE  is  a  Mac  OS  X  implementa2on              of  the  FUSE  (File  System  in  User  Space)              mechanism.
  12. 12. We feel less hope,then we try another method.
  13. 13. Then, we roll back to the previousproblem, thinking an alternative.
  14. 14. Option Two:
  15. 15. The VMA of a Processin Details
  16. 16. A Demo•  Find the Memory Range for the stack
  17. 17. Different mechanisms when itcomes the memory boundary•  Signal  Func2on  •  Sigac2on  Func2on          -­‐-­‐  If  you  use  a  global  variable  to  flag  a  signal  from                            a  signal-­‐handler  func2on,  it  should  be  of  the  special                            type  sig_atomic_t.  •  System  Call  Abuse          -­‐-­‐  e.g.  access()  system  call.  
  18. 18. Quick Video Demo – Find Heap
  19. 19. Probing the Libraries•  Considerably  Complicated  •  Right  now,  we  choose  “libc”  as  a  beginning,          and  we  make  it.  
  20. 20. What discovered during the work VS  
  21. 21. Enhanced Access() Usage
  22. 22. Result of Enhanced Access()
  23. 23. FUTURE WORK …
  24. 24. •  Using  access()  call  to  replace  sigac2on()  call  successes   in  Linux,  but  crashes  on  Mac,  need          to  figure  out.  •  Enhanced  Access()  can  only  get  all  the  valid          addresses  in  a  vague  way,  without  showing          which  does  a  segment  of  memory  address                should  belongs  to.  •  We  can  only  find  the  memory  range  of  libc,          con2nued  work  is  needed  to  find  other  libs,          if  existed.      •  The  access  right  of  each  memory  segment  is            is  also  unknown.  
  25. 25. Acknowledgments•  We  would  like  to  thank  Prof.  Gene  Cooperman          for  every  instruc2ons  he  gave  to  us  and  for  the            research  spirit  he  conveyed  to  us.  •  We  would  like  to  acknowledge  Kapil  and  Vlad,  for          the  system  knowledge  they  taught  us.  •  Finally,  I’d  like  to  thank  Mr.  Rick,  a  classmate          in  my  another  course,  for  introducing  me  such          a  wonderful  tool  to  depict  the  sketch.  

×