Name: Shilpashree Srinivasamurthy Subject: ACS 560- Software Engineering Term: Fall 2010

advertisement
Name: Shilpashree Srinivasamurthy
Subject: ACS 560- Software Engineering
Term: Fall 2010
Chapter 4: Concurrent and Distributed System Technology
Textbook: Designing Concurrent, Distributed, and Real-Time Applications with
UML
This chapter provides an overview of the infrastructure, that is, the concurrent and
distributed processing technology required for real-time and distributed applications. The
infrastructure is provided by the operating system, networks, and middleware.
The chapter first describes the operating system support for the multiprogramming and
symmetric multiprocessing environments with further information provided on task
scheduling and device input/output.
Environments for Concurrent Processing: This section explains the main categories of
the environments for concurrent systems:
- Multiprogramming Environment: In multiprogramming also known as
multitasking environment, multiple tasks share one processor.
- Symmetric Multiprocessing Environment: In symmetric multiprocessing
environment, there are two or more processors with shared memory.
- Distributed Processing Environment: In distributed processing environment,
several nodes are interconnected by means of a communications network.
Runtime Support for Multiprogramming and Multiprocessing Environments:
Runtime support for concurrent processing may be provided by kernel of an operating
system, runtime support system or threads package each of which is described in detail in
this section.
- Operating System Services: Priority preemption scheduling, inter-task
communication using messages, mutual exclusion using semaphores, event
synchronization using signals, interrupt handling and basic I/O services, and
memory management are the typical services provided by an operating system
kernel.
- The POSIX Operating System Standard: POSIX which stands for Portable
Operating System Interface Standard, is an operating system software standard
produced by the IEEE Computer Society which is referred to as POSIX 1003.
POSIX 1003.1b defines a standard interface in the form of real-time operating
system services. Concurrent task management services, timing services, memory
management services, I/O services are the typical services provided by POSIX
1003.1b.
-
Real –Time Operating Systems: Support multitasking, support priority
preemption scheduling, provide task synchronization and communication
mechanisms, provide a memory-locking capability for tasks, provide a
mechanism for priority inheritance, and have a predictable behavior are the
typical tasks expected from a real-time operating system.
Task Scheduling: This section explains various task scheduling algorithms that have
been designed to provide alternative strategies for allocating tasks to the CPU such as
round-robin scheduling and priority preemption scheduling. It also explains the various
task states i.e. the various states a task goes through from creation to termination. This
section also explains about task context switching. When a task is suspended its current
context or processor state must be saved. When a task is assigned the CPU, its context
must be restored so it can resume executing. This process is known as context switching.
Operating System Input/Output Considerations: This section provides an overview
of how input/output devices are handled by the operating system. The two mechanisms
for performing input/output is explained namely interrupt driven I/O and polled I/O.
- Interrupt Handling: With interrupt-driven I/O, an interrupt is generated when
input arrives or after an output operation completes.
- Polled I/O: In polled I/O the system periodically samples an input device to
determine whether any input has arrived and periodically samples an output
device to determine whether an output operation has completed.
The chapter then explains the technology for distributed processing environments. This
includes an overview of a client/server technology and the technology of the World Wide
Web.
- Client/Server and Distributed System Technology: A client/server system
consists of two logical components, a client (or consumer) that requests services
and a server (or provider) that provides services. A client/server system is a
distributed application where the clients and server are geographically distributed.
- World Wide Web Technology: World Wide Web technology is popularly
known as www. The user can view www web pages through a web browser
which executes on the user’s node. World Wide Web pages are maintained on
web servers. Each webpage is identified by means of universal resource locator
(URL). Whenever the webpage is selected by the user, the web browser gets the
name of the web server using the URL and contacts the web server to download
the page. The browser then displays the downloaded page to the user.
The following section of the chapter explains the various services of distributed operating
system.
-
-
-
Name Service: In global naming service, a name server maintains the names of
all global services.
Binding between Clients and Servers: Binding refers to the association between
client and server. There are two types of binding: static binding where the binding
is done during the compile time and the dynamic binding where the binding is
done at the run time.
Distributed Message Communication Services: Transparent message
communication between distributed tasks can be handled by means of a
distributed kernel of a distributed operating system.
Socket Services: Sockets are an application programming interface (API) which
defines a set of operations an application can call when it communicates with
another application over a network using a specific protocol such as TCP/IP.
- Message Communication Using Ports: In distributed systems a component
on one node sends the message to an output port. A destination component
receives messages at its input port.
- Error recovery
The next section describes the middleware technology. Middleware is a layer of software
that sits above the heterogeneous operating system to provide a uniform platform above
which distributed applications can run.
The next section of the chapter lists the various distributed component technologies are
(COM, JavaBeans, Jini Connection Technology) providing a detailed explanation
CORBA.
The final section of the chapter explains Transaction Processing Systems. The transaction
processing applications are mission-critical or business-critical. A transaction is a request
from a client to a server, consisting of two or more operations that perform a single
logical function and which must be completed in its entirety or not at all. The various
properties of transaction include atomicity, consistency, isolation and durability. A
transaction processing monitor coordinates the flow of information between user clients,
who initiates the transaction requests, and the transaction processing application that
responds to the requests.
Download