Operating Systems Concurrent Processes Activation of one or more processes at the same time. Two types of concurrency normally discussed : Apparent or Pseudo Concurrency : A single hardware processor is switched between processes by interleaving. Over a period of time this gives the illusion of concurrent execution of the processes. Real Concurrency : Multiple hardware processors are present in the machine, and the OS can schedule tasks onto the processors. Usually, processors are much less than the number of processes. Example of Concurrent Activity Processes Activities being performed : Order Clerk Bagger Cook Cashier Customers Shared Communication Areas Order list turntable Cooked Hamburger bin Checkout counter Real Time Operating Systems System must respond to external stimuli within a finite and specified time . Correctness depends not only on logical result BUT also on response time . Problem : Shedule all activities to meet some requirements . Hard Real Time : Absolutely imperative that responses occur within specified deadlines. Late result failure. Soft Real Time : Response times are important, but system will still function if deadlines are missed. Embedded System : Systems which are interfaced to some external physical equipment, and perform monitoring and control. The computer is PART of the overall system, and hence Real Time. Real Time systems are used for : Hard : Nuclear Power Stations, Flight Control, Missile Guidance Soft : Train or Airline Reservation Embedded : Washing Machine, Chemical plant control etc Distinction between OS and R/T systems are quite blurred Distributed and Parallel Operating Systems Facilitate use of geographically distributed resources. Supports communication between a job or between different jobs. Information sharing is of most significance. Support for parallel applications wishing to obtain speedup of computationally intensive tasks. Supports synchronisation of activities to coordinate sharing of information. Use of primitives defined within OS, such as RPC (Remote Procedure Call) to support distributed activities. Efficient Communication primitives between activities also supported. Move towards the development of Object Oriented (OO) Methodologies or OO Frameworks to support distributed applications Non Determinism in Operating Systems Operating and Real Time systems are non-deterministic, in that they must respond to events that occur in an unpredictable order, and at unpredictable times. Such as results generated from I/O devices. The way an Operating system switches between processes cannot be pre-determined, since the events which cause the switches are not deterministic. The interleaving of instructions, executed by a processor, from a set of processes is non-deterministic The Events or Interrupts cause process switches, such as an I/O completion interrupt causing the OS to switch to an I/O handling process .