CITS2002 Systems Programming |
CITS2002 | CITS2002 schedule | |||||
An Introduction to Operating SystemsWhat is an operating system? A piece of systems software that provides a convenient, efficient environment for the execution of user programs. It's probably the largest and most complex program you'll ever run! Why do we need an operating system?
CITS2002 Systems Programming, Lecture 3, p1, 29th July 2024.
Operating System ≠ User/Computer InterfaceAn operating system is often simply seen and described as the user/computer interface. We often (mistakenly) claim to understand, and like or dislike, an "operating system" based on its interface. Such an interface provides us with:
CITS2002 Systems Programming, Lecture 3, p2, 29th July 2024.
Operating System ≡ Resource ManagerAn operating system is better considered as being in control of its hardware and software resources. Better still, because the "controls" are often temporal or external to the operating system itself, let's consider the operating system as a resource manager. An operating system is just another program running on the available hardware. Most of the time, the operating system relinquishes control to the user processes until the hardware again dispatches the control.
CITS2002 Systems Programming, Lecture 3, p3, 29th July 2024.
Operating Systems Must Be ExtensibleOf importance is an operating system's ability to evolve to meet new hardware and software demands:
A view of operating system services
Of course,
the above diagram provides a very simplified representation of operating
systems and their services.
In practice, the relationships between the modular components become very
complex -
Linux and
Windows-10
and the Interactive map of Linux kernel.
CITS2002 Systems Programming, Lecture 3, p4, 29th July 2024.
Traditional Operating System Services
CITS2002 Systems Programming, Lecture 3, p5, 29th July 2024.
Traditional Operating System Services, continued
CITS2002 Systems Programming, Lecture 3, p6, 29th July 2024.
A Whirlwind History of Operating SystemsTo understand the way modern operating systems are the way they are, it is useful to examine their evolution over the last almost eighty years. Advances in operating systems often accompanied advances in hardware, falling prices, and "exploding" capacities.
Everything that can be invented has been invented. Charles H. Duell, Commissioner, U.S. Office of Patents, 1899.
CITS2002 Systems Programming, Lecture 3, p7, 29th July 2024.
1945-55: Vacuum Tubes and PlugboardsUntil World War II, little progress was made in constructing digital computers. Six significant groups can reasonably claim the first electrical computers:
I think there is a world market for maybe five computers. Thomas Watson (1874-1956), Chairman of IBM, 1943.Programs were loaded manually using console switches, or more likely by direct reconfiguration of wiring; indication of a program's execution and debugging returned through console lights. Advantages:
CITS2002 Systems Programming, Lecture 3, p8, 29th July 2024.
1955-65: Transistors and Batch SystemsProgramming languages and operating systems (as we know them today) still unheard of. Collections of subroutines (procedures) to drive peripherals and to evaluate trigonometric functions were the first examples of operating systems services. The mid-1950s saw the user (still as the programmer) submitting a deck of punched Hollerith cards describing a job to be executed.
CITS2002 Systems Programming, Lecture 3, p9, 29th July 2024.
1955-65: Transistors and Batch Systems, continuedGenerally, an inexpensive computer, such as an IBM 1401, was used for reading cards and printing from output tapes. The expensive machine, such as an IBM 7094, was used solely for the mathematical computations. Advantages:
CITS2002 Systems Programming, Lecture 3, p10, 29th July 2024.
1965-1980: Integrated Circuits and MultiprogrammingIn the early 1960s, computer manufacturers typically made two types of computers - word-oriented, large scale scientific computers (such as the IBM-7094), and character-oriented commercial computers (such as the IBM-1401), which were really better suited for I/O. Incompatibility and a lack of an upgrade path were the problems of the day. IBM attempted to address both problems with the release of their System/360, a family of software compatible machines differing only in capacity, price and performance. The machines had the same architecture and instruction set. With heavy CPU-bound scientific calculations, I/O is infrequent, so the time spent (wasted) waiting was not significant. However, commercial processing programs in the emerging COBOL (Computer Oriented Business Organizational Language) often spent 80-90% of its time waiting for I/O to complete. The advent of separate I/O processors made simultaneous I/O and CPU execution possible. The CPU was multiplexed (shared), or employed multiprogramming, amongst a number of jobs - while one job was waiting for I/O from comparatively slow I/O devices (such as a keyboard or tape), another job could use the CPU. Jobs would run until their completion or until they made an I/O request. Advantages:
CITS2002 Systems Programming, Lecture 3, p11, 29th July 2024.
1965-1980: Integrated Circuits and Multiprogramming, continuedStill, the desire for quicker response times inspired a variant of multiprogramming in which each user communicated directly with one of a multitude of I/O devices. The introduction of timesharing introduced pre-emptive scheduling. Jobs would execute for at most pre-defined time interval, after which it was another job's turn to use the CPU. The first serious timesharing system (CTSS, from MIT 1962) lacked adequate memory protection. Most (modern) operating system complexity was first introduced with the support of multiprogramming - scheduling algorithms, deadlock prevention, memory protection, and memory management. The world's first commercially available time-sharing computer, the DEC PDP-6, was installed in UWA's Physics Building in 1965 - cf.Cyberhistory, by Keith Falloon, UWA MSc thesis, 2001, and pdp6-serials.
CITS2002 Systems Programming, Lecture 3, p12, 29th July 2024.
Early Operating System Security
CITS2002 Systems Programming, Lecture 3, p13, 29th July 2024.
1970s: Minicomputers and MicrocomputersThere are only two things to come out of Berkeley, Unix and LSD, and I don't think this is a coincidence. Jeremy S. Anderson.Another major development occurring in parallel was the phenomenal growth in minicomputers, starting with the DEC (Digital Equipment Corporation) PDP-1 (Programmed Data Processor) in 1961. The PDP-1, with 4K of 18-bit words cost only US$120,000 - 5% of the IBM 7094. The trend was towards many small mid-range personal computers, rather than a single mainframe. Early minicomputers and microcomputers were simple in their hardware architectures, and so there was some regression to earlier operating system ideas (single user, no pre-emption, no multiprogramming). For example, MS-DOS on an IBM-PC (circa. 1975) was essentially introduced as a batch system, similar to those of the 1960s, with a few modern additions, such as a hierarchical file system. With some notable exceptions, the trend quickly moved towards support of all modern operating system facilities on microcomputers. There is no reason anyone would want a computer in their home. Ken Olsen, DEC Founder and Chairman, 1977.Perhaps most significant has been the evolution, and importance, of operating systems' user interfaces. In particular, the graphical desktop metaphor has remained for some time.
CITS2002 Systems Programming, Lecture 3, p14, 29th July 2024.
1980-90s: Personal Computers and Networking640K ought to be enough for anybody. Bill Gates (1955-), in 1981.The decentralization of computing resources, now data and not the hardware, required more support for inter-operating system communication - both physical support and application program support. As minicomputers shrunk in size, but exploded in capacity, the powerful computer workstation was born. Companies such as Sun Microsystems (SUN) and Silicon Graphics (SGI) rode this wave of success. Local-area networks (primarily Ethernet and token-ring) connected workstations, while wide-area networks connected minicomputers. Operating system developments included the development of fast and efficient network communication protocols, data encryption (of networks and file systems), security, reliability, and consistency of distributed data.
CITS2002 Systems Programming, Lecture 3, p15, 29th July 2024.
2000s and Beyond: Speeds, Capacities, Mobility, and Ubiquity
For years, we thought that a million monkeys sitting at a million keyboards would produce the complete works of Shakespeare. Today, thanks to the Internet, we know that's not true. Anon.
CITS2002 Systems Programming, Lecture 3, p16, 29th July 2024.
|