Deciding to major in accounting wasn’t very difficult for me. My father had worked as an accountant all my growing-up years. The first time I sensed I liked to deal with data came when I was 20, while serving as a volunteer missionary in Japan for my church. The mission president complained about not being able to read my handwriting. So he gave me a portable typewriter to complete reports. I remember one day completing a report which summarized data from a number of other reports, stopping for a minute, looking at it, feeling a sense of satisfaction at what I had produced, and thinking I could improve the process.
Before returning to college in 1985 after my missionary service, I suggested to my father that my mission president was right about my handwriting; I needed a typewriter. While I was in Japan, personal computers had become widely available. My father suggested we look at them. We went to a newly opened retail computer store on a Saturday morning. The place was packed with people who seemed to know everything about computers. They were buying software, hardware, upgrades and host of other things I hadn’t ever heard of. We couldn’t get anyone’s attention. After moving the mouse around on a demo Apple Computer that I now know badly needed to be rebooted, we gave up and bought a typewriter. The experience left me wondering how all those people knew so much about computers.
Based upon these feelings, I registered for an introductory course in information systems. It gave me a better sense of the history of computers, and how they worked. The professor for the course, Dr. Gary Carlson must have been in his mid-sixties. He was mostly bald with clipped gray hair around the ears, glasses and somewhat portly. I remember his suit pants being just short enough to give the impression he knew a lot about computers. Later I learned he had pioneered the use of computers at the university over many years. It seemed plausible that he could have worked on the first computers. I vaguely remember heroic stories of his meeting the inventors of various languages and hardware innovations. The first day he promised to de-mystify the computer; that we would learn how to turn one on and make it work. And I did, booting up an IBM® PC from a 5¼ inch floppy drive, and writing a paper and making a spreadsheet.
To understand my experiences with events based accounting theory, one needs to understand three basic components of a computer: the CPU or processor, memory, and disk storage. These might be easiest to understand by using an analogy of a group of people in a meeting. Think of the hard disk as a three ring binder containing minutes of the last meeting, the white board as computer memory, and the CPU as the people in the meeting. When the meeting starts up, one person copies the diagrams and bullet points of the last meeting from the binder onto the whiteboard so that everyone can see them. As the meeting progresses, changes are made to the information on the white board; new things are added, and some erased. At the conclusion of the meeting, the contents of the white board are again copied as minutes into the binder for use in the next meeting.
For the most part, the people don’t interact with the binder directly; passing it around for everyone to read would be too slow. Remember this: access to the binder is slow. Likewise, the process of reading and writing data to and from the hard disk is slow. But the binder and hard disk are permanent. Between meetings the whiteboard might be erased or changed. Its contents, like computer memory, are volatile. Computer memory is erased every time the computer is turned off or loses power. Anyone that has lost work on a document when the computer crashed understands that principle. Access to the whiteboard is also quick, as is communication between the people or processors.
So the basic process of computing can be summarized as the processor moving data from the hard disk to memory when starting a program or opening a file, and then back to the hard disk when the data is saved. Once in memory, the data can be modified or new data created by the processors. Accessing data from a disk is many times slower than accessing memory.
Our analogy isn’t completely accurate. Unlike humans, processors do not think; they only do what they are told. To correct our analogy imagine that the people need a lot of help to get through the meeting, so some very formal procedures are created, similar to Robert’s Rules of Order. The rules say everything that must be done in the meeting, in a very detailed way. The “processors” follow those rules exactly to conduct the meeting. In computers, these procedures are like computer programs. The procedures aren’t written in English. They are written in computer languages. After my initial classes with Dr. Carlson, I had classes in programming languages, both BASIC and COBOL. From these I learned how to instruct the computer processors to do very specific tasks.
The amount of work a processor can do is measured by its processing speed. Imagine that in meetings for some reason, people speak in a very rhythmic way. Japanese is a language that actually has an element of time to each syllable. Suppose people in our meeting can say a syllable in exactly a ½ second. To communicate a thought of 40 syllables, 20 seconds will be required. A different set of people in another meeting may be able to say one syllable every ¼ second, thus communicating twice as many syllables in the same amount of time. But this doesn’t mean that meeting will accomplish more than our meeting. It depends on the meeting language. If the language for the other meeting is verbose or formal like that used in Congress, such as “I agree that my esteemed colleague’s proposal is the proper approach to the problem” (24 syllables) rather than “That’s great” (two syllables) for our meeting, our meeting may actually accomplish more even though we speak fewer syllables per second.
Processors work in a similar way, executing so many computer “instructions” per second. Processor speeds are often measured in gigahertz now, megahertz a few years ago, reflecting that they can execute so many billions or millions of computer instructions in one second. But processor speed is only one part of how long a process will take. If the computer program is not efficient, it can waste the speed of the processor1.
The process of getting data to and from the disk is similar to writing in a binder. A disk has an “arm” that contains a read/write head. It is somewhat similar to both a pen and an eye, but this pen and eye only work with the binder; they don’t write on the white board, don’t use a white board marker on the binder, nor a pen on the white board. The pen can only be writing one thing at a time, and it cannot be reading at the same time it is writing. The person has to correctly position either his or her eyes to the right place in the binder to read, or the pen to the correct location to write. And just as it takes time to flip pages to find open space or find the needed information, it takes time for the disk to spin and be correctly positioned to read or write data.
In these programming classes, I learned that there are two basic ways to access data from the hard disk: sequentially or indexed. Sequential access is the oldest and the simplest. Indexed access is more complex, but more useful for many types of problems. Let’s continue the analogy focusing on the binder or notebook to understand the difference. Let’s assume the contents of our binder are so valuable we ultimately turn it into a full-fledged book.
Sequential access to a book is simple: pick up the book and begin reading until done. One can stop after a sentence, a page, a chapter, or after completing the entire book. If one finishes the book, everything the book contains will be known. But finding something in the middle of the book can be difficult and time-consuming.
Indexed access is more complex but more useful if we know we are going to pick up the book and try to find something without reading the entire book. But before building an index, one has to have an idea of how it will be used. Will we access our meeting minutes by date? Do the meetings cover multiple topics? If so will an index to a specific topic be important to see how it evolved over time? How detailed should we be about the topics? Should we have an entry for every time a word is used which will make our index very large, or only to the first use within a meeting? Perhaps we need another index to people’s names with their associated action items.
Sequential disk access is similar to reading the book from the beginning. Imagine for a minute we have a computer file that has a record for each employee. When I am going to process payroll, I might know that everyone in this file needs a payroll check. It doesn’t really matter who I start with. My program can read the first record on the file and using the employee name and salary, calculate the person’s payroll for the period. The program then reads the next employee record, and proceeds through the file for every employee on the file. My program has used sequential access.
Indexed access means we have to know much more about the questions we will be asking of the data. The simplest form of indexed access, the form I used in my first programming class, is to know the length of each record. If each person’s payroll record is 50 characters2 and I need the 10th record, I know I can skip 499 characters and start reading the file at the 500th character to obtain that record. This type of index is very simple but not very useful. It would be like knowing that our meetings minutes always take up one and only one page, and we hold them on a regular schedule. We could use these two facts plus the date of the first meeting to know that if we skip 10 pages we would be at the meeting minutes for a certain day. It is indexed access, but very simple.
Use of the minutes over time will probably help determine what indexes we need to create, and even improve when we can’t find something. But that time spent searching for something when we can’t find it can take a lot of time; and in the world of computers for certain problems, sequential access to the whole thing (like the “find” feature in a word processor) may actually be faster3.
If you have ever purchased a home PC, you might know that real memory, the white board in our example, is much smaller than disk storage, orders of magnitude smaller. A personal computer when I was taking these classes would have had 256 kilobytes of memory (256 times about 1000 bytes, or 256,000 “characters” in a sense), but 20 megabytes of hard disk space (20 times approximately 1 million bytes).4Thus the hard disk could hold 80 copies of what fit in memory; as if the contents of the white board filled one page in our binder, and our binder has 80 pages in it. The amount of disk space available in most PCs has grown faster than the memory available, such that a standard computer today might have 160 times more hard disk than memory. Again, consistent with our analogy, it is easier to add pages to our binder than to add whiteboards to the room.
Computers can be made to look like they have more memory than they do by writing portions of memory to disk that aren’t required at the moment. This would be similar to copying the contents of the whiteboard into the binder before starting on a new topic. But remember that working with the memory and the white board is faster than getting data from disk or the binder. Thus a break in the meeting occurs while someone copies all this down in the binder and the contents of the binder for the new topic is copied to the board. This process slows down processing significantly. But it is preferable to bringing the meeting to a halt because of lack of white board space, or having the computer stop processing because of lack of memory.
Certainly there are many more facets to computers. In Dr. Carlson’s introductory classes I heard stories about other types of computers than PCs, and my COBOL class did include work on a larger shared machine. But I didn’t really understand much about them. I also knew that somehow the instructions I wrote in the computer language—the procedures—were “compiled” into something else that really is what the processor used, but I didn’t see the need to understand this in a lot more detail at the time. My interest was not in the computers themselves. It was in the information they provided. I needed to better understand the framework for providing information. I got my wish in my next semester, in studying one of the oldest information frameworks called accounting.
Next: Chapter 5: Accounting
Previous: Part 2: The Professor
Parent Topic: Part 2: The Professor