CIS 345 Operating Systems Chapter 1 Vocabulary
Process table
An array of structures, one for each process currently in existence
Distributed operating systems
An operating system that appears to its users as a traditional uniprocessor system, even though it actually composed of multiple processors.
Special file
Another important concept in UNIX is the special file. Special files are provided in order to make I/O devices look like files.
Block special files
Are used to model devices that consist of a collection of randomly addressable blocks, such as disks.
Character special files
Are used to model printers, modems, and other devices that accept or output a character stream.
working directory
At every instant, each process has a current working directory, in which path names not beginning with a slash are looked for
SCSI (Small Computer System Interface)
A high-performance bus intended for fast disks, scanners, and other devices needing considerable bandwidth.
cache miss
A request for data from the cache that cannot be filled because the data is not present in the cache.
root file system
Before the mount call, the root file system, on the hard disk, and a second file system, on a CD ROM, are separate and unrelated.
X Window System
Many UNIX users, especially experienced programmers, prefer a command based interface to a GUI, so nearly all UNIX systems support a windowing system called the X Window System (also known as X11) produced at M.I.T.
UNIX shared libraries
Many operating systems support loadable extensions, such as an I/O device-drivers and file systems. In Windows they are called DLLs
User friendly
Meanign that it was intended for uses who not only knew nothing about computers but furthermore had absolutely no intention whatsoever of learning.
shared bus architecture
Means that multiple devices use the same wires to transfer data. Thus, when multiple devices have dat to send, you need an arbiter to determine who can use the bus.
Parallel bus architecture
Means that you send each word of data over multiple wires
Windowos Me (Millennium Edition)
Microsoft came out with yet another version of Windows 98 called Windows Me. In 2001 a slightly upgraded version of Windows 2000, called Windows XP was released.
POSIX
Most versions of UNIX now support . POSIX defines a minimal system-call interface that conformant UNIX systems must support.
Superscalar CPU
Multiple execution units are present, for example, one for integer arithmetic, one for floating point arithmetic, and one for Boolean operations. Two or more instructions are fetched at once, decoded, and dumped into a holding buffer until they can be executed. As soon as an execution unit becomes available it looks in the holding buffer to see if there is an instruction it can handle, and if so, it removes the instruction from the buffer and executes it.
Stack pointer
Points to the top of the current stack in memory. The stack contains one frame for each procedure that has been entered but not yet exited.
stack segment
Portion of memory used by a program to hold procedure call frames. grows downward
RIM's
RIM's Blackberry OS (introduced for smartphones in 2002) and Apple's iOS (released for the first iPhone in 2007) started eating into Symbian's market share.
Interprocess Communication
Related processes that are cooperating to get some job done often need to communicate with one another and synchronize their activites
Cloud computing
Relatively small computers (including smartphones, tablets, and the like) are connected to servers in vast and distant data centers where all the computing is done, with the local computer just handling the user interface
Type 1 hypervisor
Software to manage virtual machines that is installed before any operating system is installed. A type 1 hypervisor has no underlying support and must perform all these functions itself. Type 1 hypervisors cannot do this because there is no host operating system to store files on. They must manage their own storage on a raw disk partition.
MULTICS
The designers of this system, known as MULTICS (MULTiplexed Information and Computing Service), envisioned one huge machine providing computing power for everyone in the Boston area. The idea that machines 10,000 time faster than their GE-645 mainframe would be sold (for well under $1000) by the millions only 40 years later was pure science fiction.
Device driver
The software that talks to a controller, giving it commands and accepting responses.
SATA
To make this point more concrete, consider modern SATA hard disks used on most computers.
directory
To provide a place to keep files, most PC operating systems concept of a directory as a way of grouping files together
Job
To run a job(i.e. , a program or set of programs), a programmer would first write the program on paper (in FORTRAN or assembler), then punch it on cards.
file descriptor
before a file can be read or written, it must be opened at which time the permissions are checked. If the access is permitted, the system returns a small integer called a file descriptor to use in subsequent operations
Execve
has three parameters: the name of the file to be executed, a pointer to the argument array, and a pointer to the environment array
L2 cache
holds several megabytes of recently used memory words.
EEPROM (Electrically Erasable PROM) and flash memory
nonvolatile but can be erased and rewritten
partitions or minor devices
portions of hard disk
Text segment
program code
data segment
the variables, grows upward
x86
to refer to all modern processors based on the family of instruction-set architectures that started with the 8086 in the 1970s.
USB (Universal Serial Bus)
was invented to attach all the slow I/O devices, such as keyboard and mouse, to the computer
x86-32 and x86-64
32-bit and 64-bit variants
Process
A program in execution
CMS (Conversational Monitor System)
A single-user interactive system for interactive timesharing users.
PDA (Personal Digital Assistant)
A small computer that can be held in your hand during operation.
Windows NT
(where the NT stands for New Technology), which was compatible with Windows 95 at a certain level, but a complete rewrite from scratch internally
Pipeline
A CPU might have separate fetch, decode, and execute units, so that while it is executing instruction n, it could also be decoding instruction n+1 and fetching instruction n+2.
Prompt
A character such as a dollar sign, which tells the user that the shell is waiting to access a command.
MINIX
A clone of UNIX for educational purposes
Command interpreter
A process called the command interpreter or shell reads commands from a terminal.
pipe
A sort of pseudofile that can be used to connect two processes
PCIe (peripheral component interconnect express)
An expansion bus architecture that uses serial communications rather than the parallel communications of PCI. Also called PCI Express and PCI-E. (1)
rwx bits
Each filed has a bit for read access, a bit for write access, and a bit for execute access. These 3 bits are know as the rwx bits
Child processes
Each process can start an unlimited number of other processes. These new processes are called
Address space
Each process has an address space, a list of memory locations from 0 to some maximum, which the process can read and write.
Path name
Every file within the directory hierarchy can be specified by giving its path name from the top of the directory hierarchy, the root directory
Basic cycle for CPU
Fetch the first instruction from memory, decode it to determine its type and operands, execute it, and then fetch, decode, and execute subsequent instructions.
BIOS (Basic Input Output System)
Firmware that can control much of a computer's input/output functions, such as communication with the keyboard and the monitor.
Context switch
In a multiprogramming system, when switching from one program to another, sometimes called a context switch, it may be necessary to flush all modified blocks from the cache and change the mapping registers in the MMU.
User mode
In which only a subset of the machine or do I/O Input/Output are forbidden to user mode programs
Disk driver
Instead a piece of software, called a disk driver, deals with the hardware and provides and interface to read and write disk blocks, without getting into the details
ROM (Read Only Memory)
Nonvolatile memory does not lose its contents when the power is switched off. ROM is programmed at the factory and cannot be changed afterward.
Servers
Provide some service
RAM
Random Access Memory; temporary memory. RAM is expandable, and resides on the motherboard.
Multiplexing
Resource management includes multiplexing (sharing) resources in two different ways: in time and in space
DMI (Direct Media Interface)
The CPU talks to memory over a fast DDR3 bus, to an external graphics device over PCIe and to all other devices via a hub
ICs (Integrated Circuits)
The IBM 360 was the first major computer line to use ICs (Integrated Circuits), thus providing a major price/performance advantage over the second-generation machines, which were built up from individual transistors.
I/O port space
The collection of all device registers
Kernel Mode
The operating system, the most fundamental piece of software, runs in kernel mode also called supervisor mode. In this mode it has complete access to all the hardware and can execute any instruction the machine is capable of executing.
Clients
Use services
Alarm signal
When the specified number of seconds has elapsed, the operating system sends an alarm signal to the process. The signal causes the process to temporarily suspend whatever it was doing, save its registers on the stack, and start running a special signal-handling procedure, for example, to retransmit a presumably lost message
Off line
When the whole batch was done, the operator removed the input and output tapes, replaced the input tape with the next batch, and brought the output tape to a 1401 for printing off line (i.e., not connected to the main computer).
Soft real-time system
Where missing an occasional deadline, while not desirable, is acceptable and does not cause any permanent damage.
System call
Which traps the kernel and invokes the operating system. The TRAP instruction switches from user mode to kernel mode and starts the operating system.
Busy waiting
While a process is in its critical section, any other process that tries to enter its critical section must loop continuously in the call to acquire().
Reincarnation server
Whose job is to check if the other servers and rivers are functioning correctly. In the event that a faulty one is detected, it is automatically replaced without any user intervention.
chdir
changes the current working directory
LSI (Large Scale Integration)
circuits chips containing thousands of transistors on a square centimeter of silicon the age of the personal computer dawned.
Create Process (Windows)
creates a new process. It does the combined work of fork and execve in UNIX. It has many parameters specifying the properties of the newly created process. Windows does not have a process hierarchy as UNIX does so there is no concept of a parent process and a child process. After a process is created, the creator and createe are equals.
FreeBSD
is also a popular UNIX derivative, originating from the BSD project at Berkeley.
WaitForSingleObject
is used to wait for an event. Many possible events can be waited for.
kill
stops a process
Digital Rights Management
techniques that made it harder for users to copy protected material
cache hit
the request is satisfied from the cache and no memory request is sent over the bus to the main memory.
Type 2 hypervisors
A type 2 makes uses of a hosting operating system and its file system to create processes, store files, and so on. After a type 2 hypervisor is started, it reads the installation CD-ROM for the chosen guest operating system and installs the guest OS on a virtual disk, which is just a big file in the host operating system's file system.
Timesharing
A variant of multiprogramming, in which each user has an online terminal. In a timesharing system, if 20 users are logged in and 17 of them are thinking or talking or drinking coffee, the CPU can be allocated in turn to the three jobs that want service.
Interrupt vector
Address where the CPU starts executing to service an interrupt
Symbian
After all most smartphones in the first decade after their inception were running Symbian OS.
Service packs
All of these versions of Windows forked off their variations in the form of service packs.
L1 cache
Always inside the CPU and usually feeds decoded instructions into the CPU's execution engine. Typically 16 KB each.
DMA (Direct Memory Access)
Chip that can control the flow of bits between memory and some controller without constant CPU intervention.
Program counter
Contains the memory address of the next instruction to be fetched. After that instruction has been fetched, the program counter is updated to point to its successor.
operating system
For this reason computers are equipped with a layer of software called the operating system, whose job is to provide user programs with a better, simpler, cleaner, model of the computer and to handle managing all the resources just mentioned.
DOS (Disk Operating System)
Gates realized that a local computer manufacturer Seattle Computer Products, had a suitable operating system DOS. He approached them and asked to buy it (allegedly for $75,000), which they readily accepted.
Dedicated hosting
Gives them their own machine, which is very flexible but not cost effective for small to medium Websites.
GPU
Graphics Processing Unit. A GPU is a processor with, literally thousands of tiny cores. They are very good for many small computations done in parallel, like rendering polygons in graphics applications.
Network operating systems
In a network operating system, the users are aware of existence of multiple computers and can log in to remote machines and copy files from one machine to another. Each machine runs its on local operating system and has its own local user (or users).
Microcomputers
In terms of architecture, personal computers (initially called microcomputers) were not all that different from minicomputers of the PDP-11 class, but in terms of price they certainly were different.
Shared hosting
Just gives users a login account on a Web server, but no control over the server software
UNIX
Ken Thompson, subsequently found a small PDP-7 minicomputer that no one was using and set out to write a stripped-down, one-user version of MULTICS. This work later developed into the UNIX operating system, which became popular in the academic world, with government agencies, and with many companies.
CP/M (Control Program for Microcomputers)
Kildall then wrote a disk-based operating system called CP/M
Object file
Object files, which have the suffix .o, contain binary instructions for the target machine. They will later be directly executed by the CPU.
Gnome or KDE
Often a complete GUI, such as Gnome or KDE, is available to run on top of X11, giving UNIX a look and feel something like the Macintosh or Microsoft Windows, for those UNIX users who want such a thing.
linker
Once all the .o files are ready, they are passed to a program called the linker to combine all of them into a single executable binary file.
Superuser
One UID, called the superuser (in UNIX) or Administrator (in Windows), has special power and may override many of the protection rules.
Virtual machine monitor
Runs on the bare hardware and does the multiprogramming, providing not one, but several virtual machines to the next layer up
SSD's (Solid State Disks)
SSDs do not have moving parts, do not contain platters in the shape of disks, and store data in (Flash) memory.
Serial bus architecture
Sends all bits in a message through a single connection, known as a lane, much like a network packet.
SATA
Serial AT Attachment
Hard real time system
The action absolutely must occur at a certain moment (or within a certain range)
Architecture
The architecture (instruction set, memory organization, I/O, and bus structure) of most computers at the machine-language level is primitive and awkward to program, especially for input/output.
CTSS
The first general-purpose timesharing system, CTSS (Compatible Time Sharing System), was developed at M.I.T. on a specially modified 7094.
C preprocessor
The first pass of the C compiler is called the C preprocessor. As it reads each .c file, every time it hits a #include directive, it goes and gets the header file named in it and processes it, expanding macros, handling conditional compilation (and certain other things) and passing the results to the next pass of the compiler as it they were physically included.
PID
The fork call returns a value, which is zero in the child and equal to the child's PID (Process IDentifier) in the parent
OS/360
The greatest strength of the "single-family" idea was simultaneously its greatest weakness. The original intention was that all software, including the operating system
Fork
The only way to create a new process in POSIX. It creates an exact duplicate of the original process, including all the file descriptors, registers--everything. After the fork, the original process and the copy (the parent and child) go their separate ways.
Interrupt
The operating system then blocks the called if need be and looks for other work to do. When the controlled detects the end of the transfer, it generates an interrupt to signal completion.
Shell and GUI (Graphical User Interface)
The program that users interact with, usually called the shell when it is text based and the GUI (Graphical User Interface) which is pronounced "gooey" when it uses icons, is actually not part of the operating system, although it uses the operating system to get its work done.
MS-DOS (MicroSoft Disk Operating System)
The revised system was renamed MS-DOS (MicroSoft Disk Operating System) and quickly came to dominate the IBM PC market. A key factor here was Gates' (in retrospect, extremely wise) decision to sell MS-DOS to computer companies for bundling with their hardware, compared to Kildall's.
Batch system
The solution generally adopted was the batch system. The idea behind it was to collect a tray full of jobs in the input room and then read them onto a magnetic tape using a small (relatively) inexpensive computer, such as the IBM 1401, which was quite good at reading cards, copying tapes, and printing output, but not at all good at numerical calculations.
Plug and play
The system automatically collect information about the I/O devices, centrally assign interrupt levels and I/O addresses, and then tell each card what its numbers are.
Mainframes
These machines now called mainframes, were locked away in large, specially air-conditioned computer rooms, with staffs of professional operators to run them
Multiprogramming
They also popularized several key techniques absent in second-generation operating systems. Probably the most important of these was multiprogramming.
PSW
This register contains the condition code bits, which are set by comparison instructions, the CPU priority, the mode (user or kernel), and various other control bits.
Spooling
This technique is called spooling (from Simultaneous Peripheral Operation on Line) and was also used for output. With spooling, the 1401s were no longer needed, and much carrying of tapes disappeared.
Mac OS X
Thus Mac OS X is a UNIX-based operating system, albeit with a very distinctive interface.
Core image
Thus, a (suspended) process consists of its address space, usually called the core image (in honor of the magnetic core memories used in the days of yore), and its process table entry, which contains the contents of its registers and many other items needed to restart the process later.
System V and BSD (Berkeley Software Distrubtion)
Two major versions developed, System V, from AT&T, and BSD (Berkeley Software Distribution) from the University of California at Berkeley.
Cache lines
Typically 64 bytes, with addresses 0 to 63 in cache line 0, 64 to 127 in cache line 1, and so on.
GID (Group Identification)
Users can be members of groups, each of which has a GID (Group Identification)
Client-Server model
a distributed approach in which a client makes requests of a server and the server responds
MMU (Memory Management Unit)
a hardware device that handles the details of address translation in a system with virtual memory inside the CPU
Virtual memory
a portion of a storage medium functioning as additional RAM
Multithreading or hyperthreading
allow the CPU to hold the state of two different threads and switch back and forth on a nanosecond time scale.
Linux
an open-source version of the UNIX operating system
SetFilePointer and GetFileAttributesEx
call set the file position and get some of the file attributes
Waitpid
can wait for a specific child, or for any old child by setting the first parameter to -1. When waitpid completes, the address pointed to by the second parameter, statloc, will be set to the child process' exit status (normal or abnormal termination and exit value).
chmod
change the mode of a file
UID (User IDentification)
each person authorized to use a system is assigned a UID by the system administrator.