NOTE: I am not teaching CS-704 this term. The material in this page is drawn from a comparison between CS-701 and CS-704 that was written for the Fall 1995 term.

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.

Your Background

Students who take CS-704 are expected to have completed the equivalent of a Queens College undergraduate major in computer science. For many Master's students, this requirement is met by taking our CS-601, CS-602, and CS-640 courses. In addition, CS-700 is a prerequisite for CS-704.

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:

In addition, I will expect you to have studied operating system principles, including process scheduling, process synchronization, memory management, and I/O design before taking CS-704.

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.


The programming environment for this course will be Intel's iRMX real-time operating system. Real-time systems must support traditional systems programming operations, such as concurrency control and memory management, by application developers. Thus, the resources that are available for real-time development are ideal for studying systems programming techniques.

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.

Reference Material

Vickery, C. Real-Time and Systems Programming, McGraw-Hill, 1993. Required

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.

Christopher Vickery
Queens College of CUNY
Home Page