.KF
.if "\*(.T"mag" \{\
.	nr PS 12
.	nr VS 14
.	ps \n(PS
.	vs \n(VS
.\}
.PP
.PS
boxht = .3i
boxwid = .8i
movewid = .2i
Syscalls: [
	A: box "read()"; move
	B: box "open()"; move
	C: box "stat()"; move
	D: box "..."
]
boxwid = last [].wid
Remotecheck: box with .nw at Syscalls.A.sw - (0, .15i)
"check for ``remoteness''" at Remotecheck

boxht = last [].ht+1.2i
boxwid = last [].wid+.1i
Userlevel: box dashed with .n at last [].n + (0i, .3i)
arrow from Syscalls.A.s to (Syscalls.A.s.x, Remotecheck.n.y)
arrow from Syscalls.B.s to (Syscalls.B.s.x, Remotecheck.n.y)
arrow from Syscalls.C.s to (Syscalls.C.s.x, Remotecheck.n.y)
arrow from Syscalls.D.s to (Syscalls.D.s.x, Remotecheck.n.y)
arrow from Remotecheck.s to Userlevel.s - (0, .3i)
"\s+4A User's Program\s-4" at Userlevel.se + (0, .075i) rjust
.PE
.ce
\fIFigure 4\fP
.SP
.KE
