Mike Feeley

Associate Professor

Office
ICCS
393
Office Phone #
604-822-8179

Academic Information

Software Designer, CCA Inc. (1983); Vice President, Litton Federal Credit Union (1984-1988); B.Sc., University of Washington (1990); M.Sc., University of Washington (1992); Ph.D., University of Washington (1996); Assistant Professor, University of British Columbia (1997-2002); Associate Professor, University of BC (2003-).

Selected Publications

Yvonne Coady, Joon Suan Ong, and Michael J. Feeley, "Using Embedded Network Processors to Implement Global Memory Management in a Workstation Cluster". Proceedings of the IEEE Symposium on High Performance Distributed Computing, August 1999.
Douglas S. Santry, Michael J. Feeley, Norman C. Hutchinson, Alistair C.Veitch, "Elephant: The File System that Never Forgets". Proceedings of the IEEE Workshop on Hot Topics in Operating Systems (HOTOS), March 1999. (Best Student Paper)
M. J. Feeley, W. E. Morgan, F. H. Pighin, A. R. Karlin, H. M. Levy, and C.A. Thekkath, "Implementing Global Memory Management in a Workstation Cluster". Proceedings of the ACM Symposium on Operating Systems Principles (SOSP), 1995.
J. S. Chase, H. M. Levy, M. J. Feeley, and E. D. Lazowska, "Sharing and Protection in a Single Address Space Operating System". In ACM Transactions on Computer Systems, November 1994.

Research Areas

systems

Interests

My research is in the area of operating systems and distributed systems. I am interested in the design of software abstractions that simplify application programming, adapt to new applications and new hardware, and deliver the raw performance potential of modern hardware to the applications that need it. I am currently exploring these issues along several fronts, including wide-scale distribution in the Internet and closely coupled distribution in workstation and PC clusters.

A main focus of my research is small-scale distributed computing in workstation and personal computer clusters. My goal is to build systems that utilize new high-speed local-area networks to improve application performance. We are developing new operating system structures and algorithms for managing system resources such as processors, memory, network, and disks in a fully distributed and cooperative way.

For example, we have developed a system called GMS that allows programs on a heavily-loaded PC to automatically use memory on idle computers for both filesystem and virtual memory backing store, rather than disk, thereby reducing access time to that data. This operating system facility improves page-fault and data-read latency by 100-times for programs running in our gigabit-network testbed.

In another project, we are building a new file system, called Elephant, that leverages today's large cheap disks to automatically retain all-important versions of files. Elephant users are thus protected from accidental delete or overwrite. Elephant allows users to rollback a directory or file to any point in the past. Typing cd .#yesterday-11:00, for example, rollsback the current working directory to yesterday at 11:00.

Courses

2023 Winter
CPSC 213 - Introduction to Computer Systems
2022 Winter
CPSC 213 - Introduction to Computer Systems
2021 Winter
CPSC 313 - Computer Hardware and Operating Systems
CPSC 313 - Computer Hardware and Operating Systems
CPSC 213 - Introduction to Computer Systems
CPSC 213 - Introduction to Computer Systems
2020 Winter
CPSC 213 - Introduction to Computer Systems
2019 Winter
CPSC 213 - Introduction to Computer Systems
CPSC 213 - Introduction to Computer Systems
CPSC 213 - Introduction to Computer Systems
2019 Summer
CPSC 210 - Software Construction
2018 Winter
CPSC 213 - Introduction to Computer Systems
CPSC 210 - Software Construction
2017 Winter
CPSC 213 - Introduction to Computer Systems
CPSC 210 - Software Construction
2016 Winter
CPSC 213 - Introduction to Computer Systems
CPSC 213 - Introduction to Computer Systems
CPSC 313 - Computer Hardware and Operating Systems
2015 Winter
CPSC 213 - Introduction to Computer Systems
CPSC 213 - Introduction to Computer Systems
2015 Summer
CPSC 313 - Computer Hardware and Operating Systems
2014 Winter
CPSC 213 - Introduction to Computer Systems
CPSC 213 - Introduction to Computer Systems
CPSC 213 - Introduction to Computer Systems