Computer Science 101 The Virtual Machine: Operating Systems
From Hardware to Software Naked machine –Hardware bereft of any helpful user-oriented features –Data as well as instructions must be represented in binary To make a Von Neumann computer usable: –Create an interface or virtual machine between the user and the hardware
From Hardware to Software The virtual machine –System software: collection of computer programs that manage the resources of a computer and facilitate access to those resources –Software: sequences of instructions that solve a problem
Types of System Software
Operating system –Communicates with users –Determines what they want –Activates other system programs, applications packages, or user programs to carry out their request
Some Typical OS Commands
Terminal-based user interface (prompt and keyboard input of commands)
OS Responsibilities Major responsibilities of operating systems –User interface management (a receptionist) –Control of access to system and files (a security guard) –Program scheduling and activation (a dispatcher) –Efficient resource allocation (an efficiency expert) –Deadlock detection and error detection (a traffic officer)
History of Operating Systems First-generation system software –Roughly 1945–1955 –No operating systems and very little software support Second-generation system software –Called batch operating systems (1955–1965) Command language –Commands specifying to the operating system what operations to perform on programs
Batch Processing
Time Sharing Operating Systems Third-generation operating systems –Multiprogrammed operating systems (1965– 1985) –Many programs can be stored in memory –Allows programmer to enter system commands, programs, and data online –Allows multiple programmers to run programs simultaneously on one computer (time sharing)
A Time-Sharing System
Network Operating System Much of the computing was done remotely in the office, laboratory, classroom, and factory Fourth-generation operating system (1985– present)
The Future Multimedia user interfaces –Will interact with users and solicit requests in a variety of ways Parallel processing operating system –Can efficiently manage computer systems containing tens, hundreds, or even thousands of processors Distributed computing environment –Users do not need to know the location of a given resource within the network