1 April 2015
Vita
Personal Data
Name: James Lyle Peterson
Current Employment: Retired
Net Address: jklp.org
E-mail Address: lyle@austin.rr.com
Citizenship: United States of America
Home Address: 10601 Barker Ridge Cove, Austin, Texas 78759-5108
Home Phone: (512) 345-6304
University Education
B.S., Computer Science, March 1970
Michigan State University, East Lansing, Michigan 48823
M.S., Electrical Engineering, June 1971
Stanford University, Stanford, CA 94305
Ph.D., Electrical Engineering, January 1974
Stanford University, Stanford, CA 94305
Thesis: ``Modelling of Parallel Systems''
Employment Background
- Department of Computer Sciences, University of Texas, Austin, Texas
Adjunct Professor, 2013
IBM Austin Research Lab, Austin, Texas
Research Staff Member, March 2001 - September 2010
Research into the
K42 Operating System
(March 2001-June 2002) [Manager: Elmootazbellah Elnozahy (Mootaz)]
Mambo Full System Simulator for the PowerPC
(June 2002-Sept 2010) [Manager: Pat Bohrer, Ahmed Gheith, Mike Kistler]
Netpliance, Austin, Texas
Development Programmer, July 1999 - March 2001
[Manager: Wayne Blackard, Mark Weiland, Craig Cantrell]
Software design and development for a consumer Internet
Appliance; web browser porting and development; Operating
System abstraction layer.
IBM, Austin, Texas
Senior Programmer/Scientist, Jan 1990 - July 1999
OSF/1 operating system evaluation for IBM 6000; porting, system build, bug fixes [Manager: Khua Nguyen, Jim Thomas];
AWD Future Systems [Software], POWER/4: non-cache coherent
multiprocessor operating systems (OSF/1-AD) (Oct 1991-Feb 1994) [Ted Scardamalia];
AIX bringup on PowerPC 604 (1994) [Manager: DeVonna Naviar];
performance tool development for IBM Microkernel (1994) [Jerry Kilpatrick];
development of Release 2 of the IBM Microkernel (Feb 1995-March 1996) [Manager Judy MacKenzie];
OS/2 Kernel (April 1996-July 1996) [Manager: Joe Tano],
Bronco System Development (Aug 1996-July 1997) [Manager: Pat Donica];
Java Performance (July 1997 - Oct 1998) [Manager: Don Matson, Maria Jenny];
partitioning for Non-Uniform Memory Access (NUMA) multiprocessor (Oct 1998 - July 1999) [Manager: Mark Dean].
Advisory Programmer, Jan 1989 - Jan 1990
Andrew window manager on AIX 2.2.1 for IBM/RT; design and
implementation of software support for Softcopy Pubs for AIX Version 3
(1989).
[Manager: Mark Wieland, Carole Kincaid, Ion Ratiu]
MCC, Austin, Texas
Senior Member of the Technical Staff, July 1985 - Jan 1989
[Manager: Frank Halasz, Michael Begeman]
Working on window systems, distributed computing,
object-oriented development systems
Information Technology Center, CMU, Pittsburgh, PA
Member of the Technical Staff, June 1983 - June 1985
Working on Pascal-to-C translator, window systems, system
construction
IBM Corporation, Austin, Texas
Visiting Professor, May 1982 - August 1982
With the IBM 5520 development group
Laboratory for Computer Science, MIT, Cambridge, MA
Visiting Scholar, Sept 1978 - June 1979
Working on Distributed Systems, Petri Nets, and Spelling
Programs
Department of Computer Sciences, University of Texas, Austin, Texas
Assistant Professor, 1974 - 1981
Associate Professor, 1981 - 1985
Professional Societies
IEEE Computer Society, 1976 - 1993
ACM Special Interest Group on Operating Systems (SigOps), 1973 - 1993
ACM Special Interest Group on Programming Languages (SigPlan), 1973 - 1993
Professional Activities
Certificate in Computer Programming (CCP), 1978
Institute for Certification of Computer Professionals (ICCP)
Associate Editor, ``ACM Computing Surveys'', 1984 - 1987
Patents
-
C.R. Attanasio, M. Butrico, J.L. Peterson, C.A. Polyzois, S.E. Smith,
Virtual Shared Disks With Application Transparent Recovery ,
U.S. Patent Number 5,668,943, September 16, 1997.
-
Bishop Brock, David Glasco, J. L. Peterson, Ram Rajamony, and Ron Rockhold,
Interconnected processing nodes configurable as at least one non-uniform
memory access (NUMA) data processing system ,
U.S. Patent Number 6,421,775, July 16, 2002;
TW NI-142985, February 18, 2002.
-
Michael Thomas Collins, James Lyle Peterson, Weiming Gu,
Method and apparatus for efficiently allocating objects in
object oriented systems ,
U.S. Patent Number 6,490,670, December 3, 2002.
-
James Lyle Peterson,
System and Method for Initializing Variables in an Object-Oriented Program
,
U.S. Patent Number 6,708,181 B1, March 16, 2004.
-
Craig Alan Bennett, Christian Lita, James Lyle Peterson, Joseph Raymond Thompson,
Client side socks server for an internet client ,
U.S. Patent Number 7,020,700, March 28, 2006.
HTML version .
-
James Lyle Peterson, Ramakrishnan Rajamony, Hazim Shafi,
Directory Based Support for Function Shipping in a Multiprocessor System ,
U.S. Patent Number 7,080,214 B2, July 18, 2006.
-
Ahmed Gheith, James Lyle Peterson, Richard Ormond Simpson,
Extended Register Bank Allocation Based on Status Mask Bits
Set By Allocation Instruction For Respective Code Block,
U.S. Patent Number 7,231,509, June 12, 2007.
-
Elmootazbellah Nabil Elnozahy, James Lyle Peterson, Ramakrishnan Rajamony, Hazim Shafi,
Superpage coalescing which supports read/write access to a new virtual superpage mapping during copying of physical pages ,
U.S. Patent Number US 8,417,913 B2, April 9, 2013.
-
Elmootazbellah Nabil Elnozahy, Heather Lynn Hanson, James Lyle Peterson, Freeman Leigh Rawson, III, Malcolm Scott Ware,
Framework for scheduling multicore processors ,
U.S. Patent Number US 8,510,749 B2, August 13, 2013;
U.S. Patent Number US 8,990,831 B2, March 24, 2015.
-
Bohrer, Patrick J., Gheith, Ahmed, Peterson, James L.,
Creating a thread of execution in a computer processor without operating system intervention,
U.S. Patent Number US 8,561,070 B2, October 15, 2013.
U.S. Patent Number US 9,009,716 B2, April 14, 2015.
-
Bohrer, Patrick J., Gheith, Ahmed, Peterson, James L.,
Inter-thread data communications in a computer processor ,
U.S. Patent Number US 8,572,628, October 29, 2013;
U.S. Patent Number US 8,893,153, November 18, 2014.
-
Bohrer, Patrick J., Gheith, Ahmed, Peterson, James L.,
Analyzing simulated operation of a computer,
U.S. Patent Number US 8,762,126, June 24, 2014.
-
Bohrer, Patrick Joseph, Gheith, Ahmed, Peterson, James Lyle,
Managing data access in mobile devices ,
U.S. Patent Number US 10,469,979, November 5, 2019
Publications
Books
-
James L. Peterson,
Computer Organization and Assembly Language Programming,
Academic Press, New York, (March 1978), 448 pages, ISBN 0-12-552250-9.
Digital Edition, (January 2019), ISBN 978-1-79288-496-2.
-
James L. Peterson,
Computer Programs for Spelling Correction: An
Experiment in Program Design,
Volume 96, Lecture Notes in Computer
Science, Springer-Verlag, Berlin, (October 1980), 213 pages.
ISBN 0-387-10259-0, 3-540-10259-0.
-
James L. Peterson,
Petri Net Theory and the Modelling of Systems,
Prentice-Hall, Englewood Cliffs, New Jersey, (April
1981), 290 pages, ISBN 0-13-661983-5.
Translated into Russian and Japanese.
Digital Edition, (August 2019), ISBN 978-1-08-059117-6.
-
James L. Peterson and Abraham Silberschatz,
Operating Systems Concepts,
Addison-Wesley, Reading, Mass., (1983), 548 pages, ISBN 0-201-06097-3.
Second Edition 1985. Translated into Japanese and Dutch.
Alternate Edition 1988.
Third Edition 1991.
Fourth Edition 1994.
-
James L. Peterson and Abraham Silberschatz,
Instructor's Manual to Accompany Operating Systems Concepts,
Second Edition, Addison-Wesley, Reading, Mass., (1987), 373 pages.
Third Edition (1991).
Refereed Journal Articles
-
James L. Peterson and T. H. Bredt, ``A Comparison of Models of
Parallel Computation'', Information Processing 74:
Proceedings of the IFIP 74 Congress, (August 1974), pages 466-470.
-
K. K. Shen and James L. Peterson,
``A Weighted Buddy Method for
Dynamic Storage Allocation'',
Communications of the ACM, Volume
17, Number 10, (October 1974), pages 558-562; Corrigendum
CACM, Volume 18, Number 4, (April 1975), page 202.
-
James L. Peterson, ``Computation Sequence Sets'', Journal of
Computer and Systems Science, Volume 13, Number 1, (August 1976),
pages 1-24.
-
James L. Peterson and T. A. Norman, ``Buddy Systems'',
Communications of the ACM, Volume 20, Number 6, (June 1977),
pages 421-430.
-
James L. Peterson, ``Petri Nets'', Computing Surveys, Volume 9,
Number 3, (September 1977), pages 223-252; translated to Japanese,
Computer Science (BIT), Volume 10, Number 12, (1978), pages
99-127.
-
James L. Peterson, James R. Bitner, and John H. Howard,
``On the Selection of Optimal Tab Settings'',
Communications of the ACM,
Volume 21, Number 12, (December 1978), pages 1004-1007.
-
James L. Peterson,
``A Note on Colored Petri Nets'',
Information Processing Letters, Volume 11, Number 1, (August 1980), pages
40-43.
-
James L. Peterson,
``Computer Programs for Detecting and Correcting Spelling Errors'',
Communications of the ACM, Volume 23, Number
12, (December 1980), pages 676-687.
-
John S. Quarterman, Abraham Silberschatz, and James L. Peterson,
``4.2BSD and 4.3BSD as Examples of the UNIX System'',
Computing Surveys, Volume 17, Number 4, (December 1985), pages 379-418;
translated to Japanese, Computer Science (BIT), Volume 18,
Number 3, (1986), pages 175-213.
-
James L. Peterson,
``A Note on Undetected Typing Errors'',
Communications of the ACM, Volume 29, Number 7, (July 1986),
pages 633-637; Corrigendum, Communications of the ACM, Volume
29, Number 9, page 922.
-
James L. Peterson,
``XSCOPE: A Debugging and Performance Tool for X11'',
Information Processing 89: Proceedings of the IFIP 89 Congress,
(August 1989), pages 49-54.
-
James L. Peterson,
``Automatic generation of X11 client
programs from intercepted communications'', The X Journal,
Volume 1, Number 4, (March-April 1992), pages 44-51.
-
B. C. Brock, G. D. Carpenter, E. Chiprout, M. E. Dean, P. L. De
Backer, E. N. Elnozahy, H. Franke, M. E. Giampapa, D. Glasco,
J. L. Peterson, R. Rajamony, R. Ravindran, F. L. Rawson, R.
L. Rockhold, and J. Rubio,
"Experience with building a commodity Intel-based ccNUMA system",
IBM Journal of Research and Development,
Volume 45, Number 2, (March 2001), pages 207-227.
-
H. Shafi, P. J. Bohrer, J. Phelan, C. A. Rusu, and J. L. Peterson,
``Design and validation of a performance and power simulator for
PowerPC systems'',
IBM Journal of Research and Development,
Volume 47, Number 5/6, (Nov 2003), pages 641-652.
-
J.L. Peterson, P.J. Bohrer, L. Chen, E.N. Elnozahy, A. Gheith,
R.H. Jewell, M.D. Kistler, T.R. Maeurer, S.A. Malone,
D.B. Murrell, N. Needel, K. Rajamani, M.A. Rinaldi, R.O. Simpson,
K. Sudeep, L. Zhang,
``Application of full-system simulation in
exploratory system design and development'',
IBM Journal of Research and Development,
Volume 50, Number 2/3, Spring 2006.
Invited Papers
-
James L. Peterson,
``An Introduction to Petri Nets'',
Proceedings of the National Electronics Conference,
Volume 32, (October 1978), pages 144-148.
-
Peter J. Denning, James C. Browne, and James L. Peterson,
``The Impact of Operating Systems Research on Software Technology'',
in Peter Wegner (Editor), Research Directions in Software Technology,
MIT Press, Cambridge, Mass., (June 1979), pages 490-513.
-
James L. Peterson, ``Petri Nets'',
Encyclopedia of Computer Science,
Second Edition, Van Nostrand Reinhold Company, New York,
1982, pages 1139-1141.
-
Michael K. Molloy and James L. Peterson,
``Petri Net'',
Encyclopedia of Computer Science,
Third Edition, Van Nostrand Reinhold Company, New York,
1993, pages 1162-1064.
-
James L. Peterson,
``Spelling Programs'',
Encyclopedia of Computer Science,
Third Edition, Van Nostrand Reinhold Company, New York,
1993, pages 1266-1268.
-
James L. Peterson,
``Spelling Programs'',
Concise Encyclopedia of Computer Science,
Edwin D. Reilly (Editor), John Wiley & Sons, West Sussex, England
2004, pages 716-717.
Reviewed Publications
-
James L. Peterson, Modelling of Parallel Systems, Ph.D.
Dissertation, Department of Electrical Engineering, Stanford
University, (December 1973), 255 pages; also Technical Report 46,
Digital Systems Laboratory, Stanford University, (February 1974), 241
pages; also Technical Report STAN-VS-74-410, Computer Science
Department, Stanford University, (February 1974), 241 pages.
-
James L. Peterson, ``Dynamic Storage Allocation with Buddy Systems'',
Proceedings of the Fourth Texas Conference on Computing
Systems, (November 1975), pages 2B4.1 to 2B4.6.
-
James L. Peterson,
``Use of Webster's Seventh New Collegiate
Dictionary to Construct a Master Hyphenation List'',
Proceedings of the AFIPS 1982 National Computer Conference,
(June 1982), pages 665-670.
-
Douglas R. McCallum and James L. Peterson,
``Computer-Based Readability Indexes'',
Proceedings of the ACM '82 Conference,
(October 1982), pages 44-48.
-
James L. Peterson,
``Translating Pascal into C'',
IEEE Software, (July 1984), page 82-86.
-
James L. Peterson,
``The MACH Kernel'',
Share Europe, Cannes, France,
(March - April 1992),
pages 571-578.
-
Ronald L. Rockhold and James L. Peterson,
``Operating System Support for Shared Memory Clusters'',
27th Hawaii International Conference
on System Sciences, Maui, Hawaii, (January 1994).
-
Bishop Brock, Gary Carpenter, Eli Chiprout, Mark Dean,
Elmootazbellah Elnozahy, David Glasco, James Peterson,
Ramakrishnan Rajamony, Ron Rockhold and Andrew Zimmerman,
``Windows NT in a ccNUMA System'',
3rd USENIX Windows NT Symposium, Seattle, Washington, (July 1999).
-
P. Bohrer, M. Elnozahy, A. Gheith, C. Lefurgy, T. Nakra, J. Peterson,
R. Rajamony, R. Rockhold, H. Shafi, R. Simpson, E. Speight, K. Sudeep,
E. Van Hensbergen, and Lixin Zhang,
"Mambo -- A Full System Simulator for the PowerPC Architecture",
ACM SIGMETRICS Performance Evaluation Review,
Volume 31, Number 4, March 2004, pages 8 to 12.
Invited Presentations
-
Patrick Bohrer, James Peterson, Hazim Shafi,
"Mambo: Advances in PowerPC System Simulation",
Invited Tutorial, 2003 IEEE International Symposium on
Performance Analysis of Systems and Software (ISPASS),
March 9, 2003, Austin, Texas.
Unreviewed Papers
-
James L. Peterson,
``Referee Coordination for the Fifth Symposium on
Operating Systems Principles'',
Operating Systems Review, Volume
10, Number 1, (January 1976), pages 7-16.
-
James L. Peterson,
``On the Formatting of Pascal Programs'',
SIGPLAN Notices, Volume 12, Number 12, (December 1977), pages 83-86.
-
James L. Peterson,
``Text Compression'',
Byte, Volume 4, Number
12, (December 1979), pages 106-118; also reprinted in Bits and
Pieces, Byte Books, Peterborough, NH, (1980), pages 135-141.
-
James L. Peterson,
``Notes on a Workshop on Distributed Computing'',
Operating Systems Review, Volume 13, Number 3, (July 1979),
pages 18-30.
-
James L. Peterson,
``Availability of Some Early English Language Reports On Petri Nets'',
Newsletter of the Special Interest Group
on Petri Nets and Related System Models, Number 4, (February
1980), pages 21-27.
Technical Reports and Memos
-
James L. Peterson,
``A Critique of the Programming Language CLU'',
CLU Design Note 78, Laboratory for Computer Science, MIT, (April 1979),
33 pages.
-
James L. Peterson,
``Webster's Seventh New Collegiate Dictionary: A
Computer-Readable File Format'', TR-196, Department of Computer
Sciences, University of Texas, Austin, Texas, (May 1982), 28 pages.
-
James L. Peterson, ``Design Issues for Window Managers'', MCC Technical
Report Number STP-266-86, Software Technology Program, MCC, (Aug
1986), 29 pages.
-
Glenn Downing and James L. Peterson, ``NX: Native Common Lisp
Interface to X -- A Programmers Manual'', MCC Technical Report Number
STP-225-87(P), Software Technology Program, MCC, (July 1987), 60
pages.
-
Frank G. Halasz, Robert S. Pettengill, James L. Peterson, Tom J.
Smith, and Zvi Weiss, ``The Window Server Independent Interface --
WSII: Release 1'', MCC Technical Report Number STP-348-87(P), Software
Technology Program, MCC, (Oct 1987), 42 pages.
-
James L. Peterson, ``XSCOPE: A Debugging and Performance Tool for
X11'', MCC Technical Report Number STP-335-88, Software Technology
Program, MCC, (Sept 1988), 16 pages.
-
C.R. Attanasio, M. Butrico, C.A. Polyzois, S.E. Smith, and J.L. Peterson,
``Design and Implementation of a Recoverable Virtual Shared Disk'',
IBM Research Report Number RC 19843, IBM Thomas J. Watson Research
Center, (Nov 1994), 26 pages.
-
James Peterson, Glenn Downing and Ron Rockhold,
``Translating Java Programs into C++'',
(July 1998).
Goals
For the past 25 years, I have been working in a UNIX environment doing
programming and development of large software systems. I am skilled
at making large scale programmatic changes to software and other large
collections of information, such as merging diverged software bases,
porting to new hardware, compilers, or build environments, writing
programs and scripts to manipulate programs at the C source level.
My general interests are quite broad: to apply computer technology to
the solution of problems. These problems tend to be either systems
problems, dealing with the creation of computer systems (operating
systems, programming languages, compilers, and so on) or restricted
to specific application areas which I have direct knowledge of (such
as writing and programming, web browsing).
Because of this rather general interest in solving problems with
computers, I have been involved over the past 25 years in research
and development in several areas.
Contributions
-
Buddy Systems. Working from the basic powers-of-two buddy system,
such as presented in Knuth Volume 1, I have developed algorithms for
generalizing these classes of memory management algorithms, first to
the weighted buddy system and then to more general buddy systems.
The general algorithms, based on powers-of-two, Fibonacci, or
weighted, were determined to be very expensive to use, but possibly
suitable for extreme cases.
-
Petri Nets. My thesis was on modelling of parallel systems, such
as operating systems. I found Petri nets to be the best
representation for parallel systems. My approach has been to model
systems with Petri nets, and then analyze the model for logical
correctness. By viewing the Petri net as an automaton, the results
and approaches of automata theory can be brought to bear on Petri net
problems. My contribution has been especially in the development of
the theory of Petri Net languages, and in establishing the power of
the Petri net model, both for modelling and analysis.
-
Spelling Programs. Starting with a survey of existing systems, I
have developed, in a methodical top-down design, a non-trivial
example spelling checker/corrector program. The design and code for
this program was discussed in two publications, and the program has
been distributed world-wide.
-
Operating Systems. Porting and designing operating systems (OSF/1 and
AIX) to RISC workstation systems, both single and multiple processor
systems. Particularly developing subsystems to provide single system
image across a cluster of processors.
-
Program Development Tools. Developing tools that can provide
checking, and correcting, of properties of large data bases,
particularly large data bases of source code. If particular
properties of code can be defined, a program can be written to check
for the correctness of that property across all files. With a large
enough data base, some files will (almost always) violate the
prescribed property.