Associate Professor, Department of Computer Science
University of Regina
Regina, Saskatchewan, Canada S4S 0A2
The prerequisite for CS330 is CS210 or its equivalent. A fundamental component of the course requires extensive programming, debugging, and testing of new features for HALos, an educational operating system written in C/C++. HALos manages a HAL9000 computer, a virtual machine written in C/C++ that runs on any computer running the Linux operating system. HALos supports the execution of foreground processes, background processes, and multiprogramming. HALos and the HAL9000 provide an environment for running "real" programs written in the HAL programming language. HAL supports integer, float, and string data types, local and global variables and constants, one-dimensional arrays, functions and procedures, pass-by-value and pass-by-reference variables, recursion, file I/O, arithmetic operations, and conditional and unconditional branching. Assignments will include the development of enhancements to HALshell, a command line interface to HALos, and the development of enhancements to HALos and the HAL9000 for handling new system calls, new CPU scheduling policies, and new memory managment policies.