The Sys class was originally designed to be static, but it was later redesigned as a non-static class in order to allow components to work in parallel (multiple systems). This works by sending a Sys object as a parameter to other components, which need it. The Processor, Memory, and GUI constructors take a Sys argument. The Processor and Memory are actually constructed when the Sys object is constructed, since every system will have memory and processor. The SaM instructions use a method(void setSystem(Sys sys)) to get access to the system at execution time - they don't need it prior to that time.
To use this class, simply create a new Sys object. This will initialize the processor and memory. If you pass an integer to the constructor you can instantiate multiple processors - this feature is currently of limited functionality, but could be used to implement multiprocessing in the future. The following methods are available to work with the Sys object: