Alexia Massalin

Last updated
Alexia Massalin
Born
Henry Massalin

(1962-01-01)January 1, 1962
NationalityAmerican
CitizenshipUnited States
Alma mater Cooper Union School of Engineering, B.E. M.E., 1984
Columbia University, Ph.D., computer science, 1992
Known for Superoptimization
Scientific career
Fields Operating systems, optimizing compilers
Institutions MicroUnity Systems Engineering, Inc.
Thesis Synthesis: An Efficient Implementation of Fundamental Operating System Services  (1992)
Doctoral advisor Calton Pu

Alexia Massalin (formerly Henry Massalin) is an American computer scientist and programmer. She pioneered the concept of superoptimization, [1] [2] and designed the Synthesis kernel , a small kernel with a Unix compatibility layer that makes heavy use of self-modifying code for efficiency. [3] [4]

Contents

Life and career

After high school, she was given a scholarship to the Cooper Union School of Engineering in Manhattan, where she obtained a bachelor's and master's degree. [5] [2] She went to obtain her Ph.D. in computer science from Columbia University in 1992, studying under professor Calton Pu.

In the 1980s she worked for Philon Inc., a New York start up specializing in optimizing compilers. In October 1992, Massalin joined MicroUnity as a research scientist, where she became responsible for signal-processing modules and software architecture. [5]

Synthesis

Massalin's first breakthrough product came while studying at Columbia. Massalin developed Synthesis, an operating system kernel that allocated resources, ran security and low-level hardware interfaces, and created executable code to improve performance. [2] Synthesis optimized critical operating system code using run-time information, which was a new insight previously thought impractical. [2] To support Synthesis, Massalin invented object-like data structures called Quajects, which contain both data and code information. [4]

Massalin is still working on broadband microprocessors.[ citation needed ]

Personal life

Her parents were Croatian refugees from Trieste. In the 1940s, they moved to Astoria, Queens, New York, where her father became a construction worker. [2]

In a 1996 article in Wired magazine, the author Gary Andrew Poole said she "could be the Einstein of our time." [2] She was well known for offering piggy back rides to people she met, which included notable computer scientists such as Dennis Ritchie, Ken Thompson, and artificial intelligence pioneer Marvin Minsky. [6]

Related Research Articles

<span class="mw-page-title-main">Thread (computing)</span> Smallest sequence of programmed instructions that can be managed independently by a scheduler

In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. In many cases, a thread is a component of a process.

In computer science, self-modifying code is code that alters its own instructions while it is executing – usually to reduce the instruction path length and improve performance or simply to reduce otherwise repetitively similar code, thus simplifying maintenance. The term is usually only applied to code where the self-modification is intentional, not in situations where code accidentally modifies itself due to an error such as a buffer overflow.

In computing, binary translation is a form of binary recompilation where sequences of instructions are translated from a source instruction set to the target instruction set. In some cases such as instruction set simulation, the target instruction set may be the same as the source instruction set, providing testing and debugging features such as instruction trace, conditional breakpoints and hot spot detection.

<span class="mw-page-title-main">GNU Project</span> Free software project

The GNU Project is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and computing devices by collaboratively developing and publishing software that gives everyone the rights to freely run the software, copy and distribute it, study it, and modify it. GNU software grants these rights in its license.

The MicroBlaze is a soft microprocessor core designed for Xilinx field-programmable gate arrays (FPGA). As a soft-core processor, MicroBlaze is implemented entirely in the general-purpose memory and logic fabric of Xilinx FPGAs.

OS-level virtualization is an operating system (OS) virtualization paradigm in which the kernel allows the existence of multiple isolated user space instances, including containers, zones, virtual private servers (OpenVZ), partitions, virtual environments (VEs), virtual kernels, and jails. Such instances may look like real computers from the point of view of programs running in them. A computer program running on an ordinary operating system can see all resources of that computer. Programs running inside a container can only see the container's contents and devices assigned to the container.

<i>The Practice of Programming</i>

The Practice of Programming (ISBN 0-201-61586-X) by Brian W. Kernighan and Rob Pike is a 1999 book about computer programming and software engineering, published by Addison-Wesley.

Superoptimization is the process where a compiler automatically finds the optimal sequence for a loop-free sequence of instructions. Real-world compilers generally cannot produce genuinely optimal code, and while most standard compiler optimizations only improve code partly, a superoptimizer's goal is to find the optimal sequence, the canonical form. Superoptimizers can be used to improve conventional optimizers by highlighting missed opportunities so a human can write additional rules.

The ESPRESSO logic minimizer is a computer program using heuristic and specific algorithms for efficiently reducing the complexity of digital logic gate circuits. ESPRESSO-I was originally developed at IBM by Robert K. Brayton et al. in 1982. and improved as ESPRESSO-II in 1984. Richard L. Rudell later published the variant ESPRESSO-MV in 1986 and ESPRESSO-EXACT in 1987. Espresso has inspired many derivatives.

In computer operating systems, union mounting is a way of combining multiple directories into one that appears to contain their combined contents. Union mounting is supported in Linux, BSD and several of its successors, and Plan 9, with similar but subtly different behavior.

<span class="mw-page-title-main">Process management (computing)</span> Computer system for maintaining order among running programs

A process is a program in execution, and an integral part of any modern-day operating system (OS). The OS must allocate resources to processes, enable processes to share and exchange information, protect the resources of each process from other processes and enable synchronization among processes. To meet these requirements, The OS must maintain a data structure for each process, which describes the state and resource ownership of that process, and which enables the operating system to exert control over each process.

<span class="mw-page-title-main">Kernel (operating system)</span> Core of a computer operating system

The kernel is a computer program at the core of a computer's operating system and generally has complete control over everything in the system. The kernel is also responsible for preventing and mitigating conflicts between different processes. It is the portion of the operating system code that is always resident in memory and facilitates interactions between hardware and software components. A full kernel controls all hardware resources via device drivers, arbitrates conflicts between processes concerning such resources, and optimizes the utilization of common resources e.g. CPU & cache usage, file systems, and network sockets. On most systems, the kernel is one of the first programs loaded on startup. It handles the rest of the startup as well as memory, peripherals, and input/output (I/O) requests from software, translating them into data-processing instructions for the central processing unit.

In computer science, dynamic software updating (DSU) is a field of research pertaining to upgrading programs while they are running. DSU is not currently widely used in industry. However, researchers have developed a wide variety of systems and techniques for implementing DSU. These systems are commonly tested on real-world programs.

Supervisor Mode Access Prevention (SMAP) is a feature of some CPU implementations such as the Intel Broadwell microarchitecture that allows supervisor mode programs to optionally set user-space memory mappings so that access to those mappings from supervisor mode will cause a trap. This makes it harder for malicious programs to "trick" the kernel into using instructions or data from a user-space program.

devpts

devpts is a virtual filesystem directory available in the Linux kernel since version 2.1.93. It is normally mounted at /dev/pts and contains solely devices files which represent slaves to the multiplexing master located at /dev/ptmx which in turn is used to implement terminal emulators.

In computer science, a quaject is an object-like data structure containing both data and code, exposed as an interface in the form of callentries, and can accept a list of callentries to other quajects for callbacks and callouts. They were developed by Alexia Massalin in 1989 for the Synthesis kernel, and named for the Qua! Machine, a unique hardware platform built by Massalin. The origin of the term 'qua' is unclear; Massalin claims humorously that it is a sound made by koalas.

A virtual kernel architecture (vkernel) is an operating system virtualisation paradigm where kernel code can be compiled to run in the user space, for example, to ease debugging of various kernel-level components, in addition to general-purpose virtualisation and compartmentalisation of system resources. It is used by DragonFly BSD in its vkernel implementation since DragonFly 1.7, having been first revealed in September 2006, and first released in the stable branch with DragonFly 1.8 in January 2007.

XDP is an eBPF-based high-performance data path used to send and receive network packets at high rates by bypassing most of the operating system networking stack. It is merged in the Linux kernel since version 4.8. This implementation is licensed under GPL. Large technology firms including Amazon, Google and Intel support its development. Microsoft released their free and open source implementation XDP for Windows in May 2022. It is licensed under MIT License.

Thoth is a real-time, message passing operating system (OS) developed at the University of Waterloo in Waterloo, Ontario Canada.

References

  1. Massalin, Henry (1987). "Superoptimizer: A look at the smallest program" (PDF). ACM SIGARCH Computer Architecture News. 15 (5): 122–126. doi:10.1145/36177.36194 . Retrieved 2023-04-25. Given an instruction set, the superoptimizer finds the shortest program to compute a function. Startling programs have been generated, many of them engaging in convoluted bit-fiddling bearing little resemblance to the source programs which defined the functions. The key idea in the superoptimizer is a probabilistic test that makes exhaustive searches practical for programs of useful size.
  2. 1 2 3 4 5 6 Poole, Gary Andrew (1996-12-01). "Qua". Wired . Condé Nast. Archived from the original on 2017-07-04. Retrieved 2016-08-23.
  3. Pu, Calton; Massalin, Henry; Ioannidis, John (1992). Synthesis: An Efficient Implementation of Fundamental Operating System Services (PDF) (Ph.D. thesis). New York, NY, USA: Department of Computer Sciences, Columbia University. UMI Order No. GAX92-32050. Retrieved 2023-04-25. Archived 2016-03-12 at the Wayback Machine
  4. 1 2 Henson, Valerie. "KHB: Synthesis: An Efficient Implementation of Fundamental Operating Systems Services". LWN.net. LWN.net. Archived from the original on 2017-07-04. Retrieved 2016-10-27.
  5. 1 2 "Company: MicroUnity". Archived from the original on 2017-07-04. Retrieved 2012-05-11.
  6. Poole, Gary Andrew (1998-12-24). "In the Land of the Weird, Standing Out Takes a Little Work". The New York Times . ISSN   0362-4331. Archived from the original on 2017-07-04. Retrieved 2016-02-09.