The process-based programming model currently used in most real-time operating systems does not promote the maintenance and reuse of code. Furthermore, such systems usually have little or no information about the timing characteristics and the communication structure of the realtime applications. An object-oriented system can offer easier program maintenance and code reuse, and in addition, the communication (invocation) structure of the applications can be made explicit in an object-oriented language. The system can take advantage of this explicit information to more effectively schedule the applications by avoiding priority inversion, for instance. The adverse effects of priority inversion in the scheduling of real-time systems have been well-established [12,141, and several techniques have been introduced for priority inheritance among real-time tasks in order to minimize the effects of priority inversion [lo]. In this paper, we present the motivation for using an object model for real-time operating systems, and we describe the object model used in the ARTS Kernel, a real-time operating system developed in the ART Project at Carnegie Mellon University. We discuss our novel object classification and the priority inheritance properties which arise from this taxonomy. We also discuss various methods for implementing critical regions and give some guidelines as to the use of each.