Date: Tue, 14 Jan 1997 23:00:30 GMT Server: NCSA/1.5 Content-type: text/html BU CAS CS 552: Operating Systems---Homework

BU CAS CS 552: Operating Systems--- Fall'96--- A. Heddaya

Homework 2---due Fri 96.09.20 (extended to Mon 09.23)

[ As of 1996.09.24 ]

  1. Read and review any paper on Operating Systems from the following list of publications. Your review should be one page long, with one third of it being devoted to a critique of the original paper. (See the reviewing guidelines.)

    1. Tanenbaum 2.1.
    2. Tanenbaum 2.2. (Note: the definition in [Tanenbaum 92, p.34] is wrong, although the explanation is correct.)

  2. Design the OS for a special purpose computer that controls the various components of a car. The system would consist of CPU, RAM, multiple sensors (speed, gas pedal position, brake pedal position, proximity to other objects on the road, etc.), multiple actuators (fuel flow, fuel/air mixture, brakes, transmission, etc.), and multiple displays (gauges of various kinds). Assume that you have a function controlCar that implements one step of a successive approximation control algorithm. Given a set of sensor values, controlCar returns an approximation of the actuator parameter values, but, if it is also (optionally) given a previous approximation of its output for the same input, it returns a better approximation. Further assume that controlCar will be the only user program running on your system, and that invoking it at the proper times with the correct inputs will be the task of your special purpose OS.

    Your OS would have to observe the constraints imposed by the physical properties of the various components of the car, by driving convenience, and, most importantly, by the necessity to maintain the safety of human passengers. The physical properties of the actuators dictate a maximum allowable rate of change for the actuator values. (Some of the physical properties of the system are handled by the function controlCar, however the OS still needs to maintain basic constraints.) Driving convenience includes such issues as the delay between pressing on the gas pedal and the beginning of acceleration being imperceptible (say 100ms). Safety dictates that certain functions be more important than others, and places time limits on the allowable response times. For example, when the driver depresses the brake pedal, the brakes must be applied within 10ms, for example.

    A general requirement is that the OS should use the best approximations for the actuator values that can be obtained by successive calls to controlCar without violating more important requirements.

    The main design decision for your OS will be whether to adopt a software architecture based on polling or interrupts, or perhaps a hybrid.

    As part of your design, you should specify:

    1. A hardware configuration for an example system that can run your OS. You do not need to produce a full hardware design of a system, it suffices to draw a block diagram, and and point out any hardware features that your OS requires.
    2. Formulate the constraints that your OS will deal with (e.g., timing constraints and priority constraints), in terms of your system in (1).
    3. Sketch the software structure of your OS. To do this you can use a variety of diagrams, such as block structure, control flow, data flow, and execution trace diagrams.
    4. Briefly explain how your OS works. What would it take to substitute different implementations of controlCar?

[ Created 1996.09 . Maintained by Abdelsalam Heddaya]