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. 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. Why porting to Mac
• Mac
is
used
extensively
• No
DMTCP
in
Mac
recently
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
11. How to Construct a Linux-like
Procfs 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.
17. Different mechanisms when it
comes 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.
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. 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.