About the Talk
July 25, 2009 11:55 AM
London, UKLondon, UK
During the course of this talk I'll look at Ruby's support for the *nix process model and explore some of the cool ways this can be exploited to create multi-process applications suited to today's multi-core systems.
There will be a fair amount of code for off-line study which will be glossed over during the presentation due to the time constraint and overall the pace is likely to be brisk with the intention of going from basics to intermediate level in about thirty minutes. I would estimate between thirty and forty slides in total, which will be available online as soon as the presentation is over.
We start with the basics, demonstrating the uses of Kernel#fork and Process to spawn and manage *nix processes. This is followed by coverage of interprocess communication using signals, pipes and sockets. Next we introduce Kernel#syscall as a means of tapping directly into low-level functionality, rolling our own version of Kernel#fork on OSX before looking at named pipes and memory mapped files.
Example applications will be examined such as watchdog timers, background I/O processes and parallel enumerators.
With time running short we'll optionally follow up with coverage of System V IPC using Kernel#syscall for message queues, semaphores and shared memory.