CS100A Lecture 21 12 November 1998 - PowerPoint PPT Presentation

1 / 8
About This Presentation
Title:

CS100A Lecture 21 12 November 1998

Description:

Clock: Ticking away. The accelerator: Will be switched on and off by the program ... wait for the next clock tick (handled by thread SystemClock) before proceeding. ... – PowerPoint PPT presentation

Number of Views:58
Avg rating:3.0/5.0
Slides: 9
Provided by: david148
Category:

less

Transcript and Presenter's Notes

Title: CS100A Lecture 21 12 November 1998


1
  • CS100A Lecture 21 12 November 1998
  • Prelim 3
  • Tuesday evening, 17 November, 730--9PM
  • Uris Auditorium
  • Programming assignment 9
  • a control program
  • threads of execution

2
Prelim 3 Coverage 1. You should KNOW linear
search (lecture 14, slide 4) binary search
(lecture 14, slides 5--9) selection sort
(lecture 15-17, slides 2--3) insertion sort
(lecture 15-17, slide 4) partition (lecture
15-17, slide 5-6 exponentiation (lecture
15-17, slide 17) For example. if we say What is
selection sort?, you state the problem, give the
loop invariant, and develop the loop. 2. One-and
two-dimensional arrays in Java. 3. Loops (and
invariants), especially those that use arrays 4.
Matlab --know the basics and be able to write
simple Matlab program segments. 5. Everything
that was on prelims 1 and 2 See (a) Slide 2 for
lecture 13 (15 October) (b) Slide 12 of lecture
8 (24 September)
3
Real-time application Often software that is
running on a host computer, communicating with
several microprocessors, each of which senses
some physical property or controls a
device. Communicate through a fixed memory
location in the host, called a register. Program
Status word (psw) used to synchronize. E.g. Host
might do the following Set bit C of psw to
1 Wait for C to be set to 0 (by a
microprocessor) Read the register We simplify
communication using a method readValue.
4
Your Assignment Simulating Cruise
Control Clock Ticking away The accelerator
Will be switched on and off by the program The
desired speed something you change by inputting
a value. The road grade something that you can
change by inputting a value. The current speed
maintained by your program. The main program
The host Behind the scenes, controlling the
other components.
5
Threads of Execution Computer executes one
sequence of instructions at a time, so dont we
need 6 computers, one for each of the
components? We simulate the system using one
computer using threads of execution. The
computer alternates among these threads, giving
each some execution time, but so fast that it
looks to us like they are executing in
parallel. Clock Desired speed
real speed accelerator
6
Thread of execution
havent public class SystemClock extend
Frame discussed implements runnable //
Class must have this method. It is called by
system // start execution of the thread public
void run( ) Sequence of instructions making up
the thread public class MainClass static
SystemClock c static Thread cThread static
public void main ( ) c new SystemClock(
) cThread new Thread(c) // Call method start
of cThread in turn, that method // will call
method run of c to start the thread
running cThread.start( ) ...
7
  • Synchronization
  • Two threads may need to synchronize --pause
    during execution until they are at appropriate
    places.
  • Example The accelerator thread may want to wait
    for the next clock tick (handled by thread
    SystemClock) before proceeding.
  • c.wait wait for cs thread to execute a
    notifyAll call
  • Within c execution of notifyAll( ) tells the
    system that all threads who have executed c.wait
    can now continue.
  • Property synchronized on a statement or method
    within a class indicates that no other method or
    field of this class can be executed while this
    statement or method is being executed.

8
Synchronization SystemClock c // Wait for next
tick of clock c static public void sleep ( )
synchronized(c) c.wait ( ) -------------
-------------------------- public class
SystemClock ( ) public void run ( ) // Each
iteration of the this loop sleeps for 5
seconds // notifies all waiting threads that
they can continue, // and adds 1 to the clock
counter while (true) Thread.currentThread (
).sleep(5000) synchronized(this) notifyAll(
) counter counter1
Write a Comment
User Comments (0)
About PowerShow.com