Review on the paper entitled “A Fast File System for UNIX”

This is the review for the paper entitled “A Fast File System for Unix” by Marshall Kirk McKusick et. al. of the Computer Systems Research Group of University of California, Berkeley, rewritten in 1984.


The paper discussed about their reimplementation of UNIX file system where they adapt the system to a wide range of peripheral and processor characteristics. The new implementation of the system is tested to have ten times faster file access rate compared to the traditional UNIX file system. Several improvements on the file system were also discussed such as advisory locks on files, filename extension across file systems, ability to use long file names, and administrative control of resource usage.


The two major contributions  of this paper are the modifications in the file system organization.


  1. The first modification is on the storage utilization. The study optimized the storage utilization by increasing the block size. Through this bigger file can be transferred in a single disk transaction, thereby greatly increasing the throughput. However, Unix file system is composed of many small files, therefore large block size increases the space wasted. To resolve this issue. A single block is further partitioned into one or more addressable fragment. Since these fragments are addressable, multiple small files can reside on one data block.


  1. The second modification is on the file system reparameterization. This modification is essential to the perform an optimal configuration-dependent block allocations. Each file system used are parameterized and adapted to the type of disk where it is placed. The parameters used are the speed of the processor, the hardware support for mass storage transfers, and the characteristics of the mass storage devices.


Although this paper significantly improved the data transfer, the time to read and write the file is almost similar to the reading rate of the older file system. The writing rate of the new file system is 50% slower than the older file system, because the kernel has to do twice as many disk allocations per second.


Review on the paper entitled “A History and Evaluation of System R”

The paper  written by Donald Chamberlin et. al. under IBM Research Lab entitled “A History and Evaluation of System R” was published July 1981. In their paper, they discussed about an experimental database system called System R, where they demonstrate the usability advantages of the relational data model. It also discussed the lessons learned from the development of System R about the design of relational database systems.

The two major contributions  of this paper are the following.

1. The relational database system implementation (System R) where it provides a high-level non-navigational user interface that can support different types of rapidly changing database environments with concurrent users and has the capability to be in a consistent state after a failure.

2. To develop a fully operational database system, researchers followed a three phase program where in the first phase is the development of SQL. A high-level data sublanguage that the System R used to compile database queries into machine level codes.

Based from the experiments done in phase 2 of the System R project, the performance of relational database system is not yet equal to the navigational system where in paths and pointers are used to navigate among data nodes. However, the study hopes for more use of the system in the years ahead since relational database is more likely to be able to adapt to a broad spectrum of unanticipated applications.

Review on the paper entitled “The Unix Time-Sharing System”

The paper  written by Dennis Ritchie and Ken Thompson under Bell Laboratories was published July 1964. In their paper, they discussed about about a simple, multi-user, and interactive operating system called Unix for the computer PDP-11/40 and 45. The paper was organized as follows.

The first part of the paper briefly discussed the implemented operating system where they compare it to existing larger operating systems. They also listed the number of functionalities that the operating system can support. These are  assembler, text editor based on QED, linking loader, symbolic debugger, compiler for a language resembling BCPL  with types and structures (C), interpreter for a dialect of BASIC, text formatting program, Fortran compiler, Snobol interpreter, top-down compiler- compiler (TMG),  bottom-up compiler-compiler (YACC), form letter generator, macro processor (M6), and permuted index program. The main advantage of Unix compared to the larger system is that it is simple, elegant, and easy to use.

In the second section, they discussed about the file system used. In unix there are three types of files, these are ordinary, directory, and special files. An ordinary file contains information as strings separated by a new line. A directory imposes a structure of the set of ordinary files. It lets the user to organize the ordinary files into a tree form. The tree structure was imposed by defining a root directory, where all searches start. Every directory has a parent directory and all directories is rooted at the root directory. One major contribution of this paper is on allowing  links which are not allowed in existing larger operating systems. Instead of the actual directory, links are pointers to a directory. What happens to a directory happens to all links that are pointed in that directory. The third type of file is called special files. These files are associated with I/O devices that are supported by UNIX, examples of which are mountable devices such as external memory drives. Treating I/O devices as files, according to the paper has threefold advantage.

The advantages are the following.  “File and device I/O are as similar as possible; file and device names have the same syntax and meaning, so that a program expecting a file name as a parameter can be passed as device name; finally, special files are subject to the same protection mechanism as regular files.”

Aside from the three different versions of files, the paper also discussed about  file protection. i.e. control scheme used by UNIX. Where capability to read, write, or execute is controlled by a 7 bit information about the file.

The paper also discussed about I/O calls, from files in the main memory or from a mountable device. Files in mountable devices when mounted will be a subtree  of the file system from the root. Links between two separated memory drives are not allowed. They also discussed the implementation of the file system. In their implementation, each file has the following description.

1. Its owner.

2. Its protection bits.

3. The physical disk or tape addresses for the file contents.

4. Its size.

5. Time of last modification

6. The number of links to the file, that is, the number of times it appears in a directory.

7. A bit indicating whether the file is a directory.

8. A bit indicating whether the file is a special file.

9. A bit indicating whether the file is “large” or “small.”

A file is represented by an i-node where all information about the file is stored, the list of all files are called i-list.

Sections 5 and 6 of the paper discussed about the functionality of the operating system. In particular, how processes are called and executed. The paper also introduced the shell. It is a program that is responsible for interpreting commands from the user. Statistics on the performance of the operating system were also presented in the paper. However, interpretations of the statistics were not presented.

Sections 5 and 6 of the paper discussed about the functionality of the operating system. In particular, how processes are called and executed. The paper also introduced the shell. It is a program that is responsible for interpreting commands from the user. Statistics on the performance of the operating system were also presented in the paper. However, interpretations of the statistics were not presented.

One major flaw I have read in the paper is the number of hardware faults experienced by the PDP-11 where it has references to nonexistent of memory or unimplemented instructions.



You are invited to a Special Lecture on







Gary G. Yen, Fellow IEEE, Fellow IET

Oklahoma State University

School of Electrical and Computer Engineering


November 23, 2012 (Friday), 2:00 – 3:00 pm

Accenture Ideas Room, Department of Computer Science

Alumni Engineers Centennial Hall, UP Diliman



Evolutionary computation is the study of biologically motivated computational paradigms which exert novel ideas and inspiration from natural evolution and adaptation.  The applications of population-based heuristics in solving multiobjective optimization problems have been receiving a growing attention.  To search for a family of Pareto optimal solutions based on nature-inspiring problem solving paradigms, Evolutionary Multiobjective Optimization Algorithms (EMOs) have been successfully exploited to solve optimization problems in which the fitness measures and even constraints are uncertain and changed over time.

In this talk, I will overview the state of the art in the areas of Computational Intelligence and Evolutionary Multiobjective Optimization, aiming at the graduate students and researchers without much exposure to these growing technical fields.


About the Speaker

Gary G. Yen received the Ph.D. degree in electrical and computer engineering from the University of Notre Dame in 1992.  He is currently a Professor in the School of Electrical and Computer Engineering, Oklahoma State University.  His research interest includes intelligent control, computational intelligence, evolutionary multiobjective optimization, conditional health monitoring, signal processing and their industrial/defense applications.

Gary was an associate editor of the IEEE Transactions on Neural Networks and IEEE Control Systems Magazine during 1994-1999, and of the IEEE Transactions on Control Systems Technology, IEEE Transactions on Systems, Man and Cybernetics and IFAC Journal on Automatica and Mechatronics during 2000-2010.  He is currently serving as an associate editor for the IEEE Transactions on Evolutionary Computation.  Gary served as Vice President for the Technical Activities, IEEE Computational Intelligence Society in 2004-2005 and is the founding editor-in-chief of the IEEE Computational Intelligence Magazine, 2006-2009.  He was the President of the IEEE Computational Intelligence Society in 2010-2011 and is elected to be a Distinguished Lecturer for the term 2012-2014.  He received Regents Distinguished Research Award from OSU in 2009, 2011 Andrew P Sage Best Transactions Paper award from IEEE Systems, Man and Cybernetics Society, and 2013 Meritorious Service award from IEEE Computational Intelligence Society.  He is a Fellow of IEEE and IET.