CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS What is an operating? A collection of software modules to assist programmers in enhancing efficiency, flexibility, and robustness An Extended Machine from the users viewpoint A Resource Manager from the s viewpoint What are the primary functions of an operating? multiplexing the processor(s) scheduling processes coordinating interaction among processes, interprocess communication and synchronization managing resources (I/O, memory, data files) enforcing access control and protection maintaining integrity and performing error recovery providing an interface to the users 1
Evolution of modern operating s 1. Centralized operating : resource management and extended machine to support Virtuality 2. Network operating : resource sharing to achieve Interoperability 3. Distributed operating : a single computer view of a multiplecomputer for Transparency 4. Cooperative autonomous : cooperative work with Autonomicity A spectrum of modern operating s Decreasing Degree of Hardware and Software Coupling 1st 3rd 4th 2nd centralized distributed cooperative operating operating autonomous operating 2
Operating structuring methods modularization vertical partitioning (layered one-in-one-out structure) horizontal partitioning client/server model minimal (or micro) kernel sub with API and SPI Windows NT: an example of operating structure OS / 2 client Win 32 client POSIX client OS / 2 Win 32 POSIX sub sub sub User Mode service API Kernel Mode object security reference monitor process local procedure call virtual memory I / O Executives kernel with hardware abstraction hardware platform 3
Overview of centralized operating s: Resource Manager Process management interprocess communication process synchronization process scheduling Memory management memory allocation and deallocation logical to physical address mapping virtual memory support: segmentation and paging protection Device management device driver buffering spooling Data management file access file sharing concurrency control data replication 4
Network operating interoperability: ability of information exchange among heterogeneous s supported by communication protocols transport service: the primary interface between operating and computer characterized by common applications (servers) remote login file transfer messaging browsing remote execution A file example application processes local file file service file device transport management service device KERNEL drivers service peer communication protocols application processes file transport service service file service KERNEL local file device management device drivers local hardware communication local hardware 5
Distributed operating transparency servers for supporting resource sharing and distributed processing algorithms to implement transparencies details in latter chapters Cooperative autonomous client/server model object model software bus (middleware, broker, or trader) CORBA and ODP Peer-to-Peer (P2P) s An example of cooperative autonomous well-known server servers objects newspaper salesperson car lot car buyer car buyer salesperson mechanic service shop clients dealership 6
Why do we need distributed control algorithms? An algorithm is sometimes called protocol if it specifies coordination more than computation. algorithm changes due to message passing need for consensus algorithms due to lack of global information concurrency control algorithms to avoid interference in resource sharing coherency control algorithms to maintain consistency for data replication protocols for group communication in distributed applications fault-tolerance algorithms for handling failure and recovery real-time and distributed scheduling algorithms 7