Computer - IEEE Centennial: the state of computing
Experience with Grapevine: the growth of a distributed system
ACM Transactions on Computer Systems (TOCS)
Operating system design: the XINU approach
Operating system design: the XINU approach
Quantitative system performance: computer system analysis using queueing network models
Quantitative system performance: computer system analysis using queueing network models
RCS—a system for version control
Software—Practice & Experience
Performance analysis of file replication schemes in distributed systems
SIGMETRICS '87 Proceedings of the 1987 ACM SIGMETRICS conference on Measurement and modeling of computer systems
Scale and performance in a distributed file system
ACM Transactions on Computer Systems (TOCS)
IEEE Transactions on Computers - Special issue on architectural support for programming languages and operating systems
Computer networks
A programmer's view of the Intel 432 system
A programmer's view of the Intel 432 system
Distributed operating systems
Communications of the ACM
Operating systems (3rd ed.): internals and design principles
Operating systems (3rd ed.): internals and design principles
Third Generation Computer Systems
ACM Computing Surveys (CSUR)
Fault Tolerant Operating Systems
ACM Computing Surveys (CSUR)
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
Grapevine: an exercise in distributed computing
Communications of the ACM
Medusa: an experiment in distributed operating system structure
Communications of the ACM
Modularization and hierarchy in a family of operating systems
Communications of the ACM
Communications of the ACM
Communications of the ACM
The structure of the “THE”-multiprogramming system
Communications of the ACM
The Thoth System
Operating system principles
Advances in Real-Time Systems
The UNIX Programming Environment
The UNIX Programming Environment
StarOS, a multiprocessor operating system for the support of task forces
SOSP '79 Proceedings of the seventh ACM symposium on Operating systems principles
LOCUS a network transparent, high reliability distributed system
SOSP '81 Proceedings of the eighth ACM symposium on Operating systems principles
Hi-index | 0.00 |
Early operating systems were control programs a few thousand bytes long that scheduled jobs, drove peripheral devices, and kept track of system usage for billing purposes. Modern operating systems are much larger, ranging from hundreds of thousands of bytes for personal computers (e.g. MS-DOS, Xenix) to tens of millions of bytes for mainframes (e.g. Honeywell's Multics, IBM's MVS, AT&T's Unix) and hundreds of millions of bytes for some servers (Microsoft's Windows NT). In addition to managing processors, memory, and dozens of input-output devices, modern operating systems also provide numerous services such as Internet communications, Web communications, interprocess communications, file and directory systems, data transfer over local networks, and command languages and graphical user interfaces for invoking and controlling programs. These high-level services hide the primitive facilities of the base computer, such as interrupts, status registers, and device interfaces, from the user. The operating system builds its high- level services by wrapping the low-level hardware facilities in layers of software, resulting in a powerful virtual machine that is much easier to use than the basic hardware. Thus an operating system provides two classes of functions: orderly allocation of computing resources among processes contending for them, and an extended machine that provides a powerful programming environment. These two classes are not independent; poor structure can make resource allocation a nightmare. The microkernel architecture to be discussed below is a good structure that enables efficient resource allocation and powerful programming environments.