As COS was written by ex-Control Data employees, its command language and internal organization bore strong resemblance to the CDC SCOPE operating system on the CDC 7600 and before that EXEC*8 from CDC's earlier ERA/Univac pedigree. User jobs were submitted to COS via front-end computers via a high-speed channel interface, and so-called station software. Front end stations were typically large IBM or Control Data mainframes. However the DEC VAX was also a very popular front-end. Interactive use of COS was possible through the stations, but most users simply submitted batch jobs.
Disk-resident datasets used by a user program were 'local' to the individual job. Once a job completed, its local datasets would be released and space reclaimed. In order to retain the data between jobs, datasets had to be explicitly made 'permanent'. Magnetic tape datasets were also supported on Cray systems which were equipped with an I/O Subsystem.
COS also provided job scheduling and checkpoint/restart facilities to manage large workloads, even across system downtimes (both scheduled and unscheduled.)
Internally, COS was divided into a very small message-passing EXEC, and a number of System Task Processors (STP tasks). Each STP task was similar in nature to the peripheral processor programs in earlier Control Data operating systems, but since the Cray machines did not have peripheral processors, the main central processor executed the operating system code.