The focus of CS-704 is to introduce you to systems programming using a real-time operating system. The development tools available to us are more primitive than the ones used in CS-701, but in exchange we get to write programs that genuinely perform such low-level operations as interrupt, process, and memory management.
CS-704 uses a relatively obscure real-time operating system (Intel's iRMX) running on PCs, but it is gaining in importance as the multimedia revolution makes the issues of real-time computing more visible to the computing public. We will not be doing multimedia computing in CS-704, but we will be dealing with fundamental issues of real-time computing methodology.
CS-704 assumes that you already know how to program in C. To give you an idea of the degree of programming competence I expect, here is a list of some of the things you should be able to do in C before you start:
Remember that each graduate student in the Computer Science Department has an account on the Academic Computer Center's timesharing system running Unix, qcunix, which you can use to bring your C programming up to speed before the course begins.
iRMX for Windows is an extended version of iRMX III that runs on any machine that runs DOS (provided it has an 80386 or higher processor, at least 6 MB of RAM, and 15 MB of disk space). Copies of iRMX for Windows will be available for students to install on their own computers if they wish. There will also be computers running iRMX for Windows in the OS Lab. Microsoft Windows is not required in order to run iRMX for Windows, but may be run if desired. To use iRMX for Windows, you boot DOS, and then load iRMX, which encapsulates DOS as an iRMX task. Both operating systems share the same DOS file system.
Projects will be done in C using standard development tools: Intel's C compiler and linker, (iC386 and BND386),the make utility, and SoftScope, the iRMX debugger. The development tools may be run under either iRMX or DOS, and there is a version of SoftScope that runs under Windows, so you can code and build projects without access to iRMX, although you have to have an iRMX system to run and test your code. Standard DOS/Windows development tools (Borland or Microsoft C, for example) are not compatible with iRMX at the present time, although a new release of the operating system due during the Fall will support both Borland and Microsoft C when it becomes available. The C++ language is not compatible with iRMX and will not be supported in the next release either. iRMX for Windows is not compatible with Windows95 either.
Projects will emphasize I/O, concurrency, and object management in a networked environment. Students will work individually on all projects. Students will be expected to be reasonably familiar with DOS and Unix before starting the course. Programming projects will include complete documentation of the code, and at least one project will consist of a set of experiments that will be written up as a research report.
Harbison, S. P. and Steele, G. L. Jr. C: A Reference Manual, Fourth Edition, Prentice-Hall, 1995. Highly Recommended
Oram, A. and Talbott, S. make, O'Reilly & Associates,1991. Recommended
van der Linden, P. Expert C Programming: Deep C Secrets, Prentice-Hall, 1994. Recommended
Documentation Set for the iRMX Operating System, Intel Corporation, 1994. You may take a complete iRMX documentation set home for the semester, courtesy of Intel Corporation.