www.lmu.edu.ng CSC 316: OPERATING SYSTEMS 1 LECTURE 1 Lecturers Dr. Atanda Oladayo Gbenga Mr. Olowe Oluwanbo Course Outline Overview of O/S: Role & Purpose, Functionality Mechanisms to Support Clientserver. History, various types of operating systems (simple batch processing, multiprogrammed, batched systems, time-sharing systems, real time systems etc). Operating system components, 2 processes: concept, scheduling, threads, interprocess communication; cpu scheduling: scheduling criteria, scheduling algorithms, multiple process scheduling; Deadlocks: characterization, types, methods for handling deadlocks. What is Operating System? An operating system (OS) plays a central role in the operation of a computer system. Its primary purpose is to manage hardware resources and provide a platform for running software applications. Within the context of a client-server architecture, the OS performs several functions and mechanisms to support the interaction between clients and servers. 3 Role and Purpose of Operating System… Resource Management: The OS manages hardware resources, such as CPU, memory, storage, and input/output devices. It allocates and deallocates resources efficiently to ensure that multiple processes can run concurrently without interference. Process Management: It schedules and controls the execution of processes (applications and software) on the system, allowing for multitasking and providing each process with its share of CPU time. Memory Management: The OS allocates and manages memory to ensure that each process has the necessary memory space. It also provides mechanisms for virtual memory and memory protection. 4 Role and Purpose of Operating System… File System Management: The OS controls and organizes files and directories, allowing data to be stored, accessed, and managed efficiently. It also handles file permissions and security. Device Management: It interacts with and manages hardware devices, including input devices (keyboard, mouse), output devices (display, printer), and storage devices (hard drives, SSDs). Device drivers are used to facilitate this interaction. User Interface: The OS provides user interfaces, which can be graphical (GUI) or command-line (CLI), to allow users to interact with the system and applications. Security and Authentication: It enforces security measures, such as user authentication and permissions, to protect data and system resources. This is especially important in a client-server environment. 5 Goals of Operating System Convenience (Easy to use) Efficiency (e.g in Mainframe and Supercomputers) 6 Functionality Mechanisms to Support Client-Server In a client-server architecture, where multiple clients request services or resources from one or more servers, the operating system provides various mechanisms to facilitate these interactions: Network Stack: The OS includes a network stack that handles communication protocols, enabling clients to connect to servers over a network, send requests, and receive responses. It manages data transmission and reception. Process Synchronization: To support concurrent client-server operations, the OS provides mechanisms for process synchronization, such as inter-process communication (IPC) and synchronization primitives like semaphores and mutexes. Socket Programming: The OS offers socket APIs (Application Programming Interfaces) that allow applications to create, manage, and communicate over network sockets. Sockets facilitate the establishment of connections between clients and servers. 7 Functionality Mechanisms to Support Client-Server Security and Authentication: In a client-server environment, security is crucial. The OS manages user authentication and authorization to ensure that only authorized clients can access server resources. It enforces access controls and encryption for secure communication. Resource Allocation: The OS allocates resources efficiently among clientserver processes to ensure that the server can handle multiple client requests simultaneously without resource contention. Multi-Threading: The OS supports multi-threading, allowing server applications to handle multiple client requests in parallel by creating and managing multiple threads. Error Handling: It provides mechanisms for error detection, reporting, and recovery. This is important in a client-server environment to handle issues like dropped connections or server failures gracefully. 8 Functionality Mechanisms to Support Client-Server Logging and Monitoring: The OS may offer logging and monitoring tools to track and analyze client-server interactions, helping administrators diagnose issues and ensure system health. In summary, the operating system's role and purpose are to manage hardware resources and provide a platform for software applications. In a client-server architecture, it plays a crucial role in facilitating network communication, process management, security, and resource allocation to support efficient and secure interactions between clients and servers. 9 Thank You for Listening 10