0% found this document useful (0 votes)
14 views3 pages

Operating System Functions and Evolution

This document summarizes the key functions and components of an operating system. It discusses how operating systems aim to provide convenience, efficiency, and ability to evolve. It then describes the major services OS's provide like program development, execution, I/O access, file access, system access, error detection, and accounting. The document also outlines important OS concepts like ISA, ABI, API, and how OS's evolve over time to support new hardware, services, and fixes. It discusses early computer scheduling and setup challenges and characteristics of Linux loadable modules. Finally, it lists the principal kernel components and three major lines of computer system development.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views3 pages

Operating System Functions and Evolution

This document summarizes the key functions and components of an operating system. It discusses how operating systems aim to provide convenience, efficiency, and ability to evolve. It then describes the major services OS's provide like program development, execution, I/O access, file access, system access, error detection, and accounting. The document also outlines important OS concepts like ISA, ABI, API, and how OS's evolve over time to support new hardware, services, and fixes. It discusses early computer scheduling and setup challenges and characteristics of Linux loadable modules. Finally, it lists the principal kernel components and three major lines of computer system development.
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Chapter 2-Operating System Overview

Operating system has three objectives


• Convenience: An OS makes a computer more convenient to use.
• Efficiency: An OS allows the computer system resources to be used in an effi-
cient manner.
• Ability to evolve:

OS typically provides services


Program development: The OS provides a variety of facilities and services, such as editors and
debuggers, to assist the programmer in creating programs.
Program execution: A number of steps need to be performed to execute a pro-gram.
Access to I/O devices: Each I/O device requires its own peculiar set of instruc-tions or control
signals for operation.
Controlled access to files: For file access, the OS must reflect a detailed under-standing of not
only the nature of the I/O device.
System access: For shared or public systems, the OS controls access to the sys-tem as a whole
and to specific system resources.
Error detection and response: A variety of errors can occur while a computer system is
running.
Accounting: A good OS will collect usage statistics for various resources and monitor
performance parameters such as response time.
Instruction set architecture (ISA): The ISA defines the repertoire of machine language
instructions that a computer can follow
Application binary interface (ABI): The ABI defines a standard for binary portability across
programs.
Application programming interface (API): The API gives a program access to the hardware
resources and services available in a system through the user ISA supplemented with high-level
language (HLL) library calls.

A major OS will evolve over time for a number of reasons


Hardware upgrades plus new types of hardware: For example, early versions of
UNIX and the Macintosh OS did not employ a paging mechanism because they were run on
processors without paging hardware.
New services: In response to user demand or in response to the needs of system managers, the
OS expands to offer new services.
Fixes: Any OS has faults. These are discovered over the course of time and fixes are made. Of
course, the fix may introduce new faults.

These early systems presented two main problems


Scheduling: Most installations used a hardcopy sign-up sheet to reserve computer time.
Setup time: A single program, called a job, could involve loading the compiler plus the high-
level language program (source program) into memory.

The Linux loadable modules have two important characteristics:


Dynamic linking: A kernel module can be loaded and linked into the kernel while the kernel is
already in memory and executing.
Stackable modules: The modules are arranged in a hierarchy.

Module table (linix)


Name: the module name
Refcnt: Module counter the counter is incremented when an operation involving the module’s
functions is started and decremented when the operation terminates.
num_syms: Number of exported symbols.
Syms: Pointer to this module’s symbol table.

The principal kernel components are the following


Signals: The kernel uses signals to call into a process.
System calls: The system call is the means by which a process requests a specific kernel service.
Processes and scheduler: Creates, manages, and schedules processes.
Virtual memory: Allocates and manages virtual memory for processes.
File systems: Provide a global, hierarchical namespace for files, directories, and other file-
related objects and provide file system functions.
Network protocols: Support the Sockets interface to users for the TCP/IP pro-tocol suite.

Three major lines of computer system development


• Multiprogramming batch operation
• Time-sharing
• Real-time transaction systems.
There are four main causes of such errors [DENN80a]
Improper synchronization: It is often the case that a routine must be suspended awaiting an
event elsewhere in the system.
Failed mutual exclusion: It is often the case that more than one user or program will attempt to
make use of a shared resource at the same time.
Nondeterminate program operation: The results of a particular program nor-mally should
depend only on the input to that program, and not on the activities of other programs in a shared
system.

Deadlocks: It is possible for two or more programs to be hung up waiting for each other.
Process as consisting of three components
• An executable program
• The associated data needed by the program (variables, work space, buffers.
• The execution context of the program
Five principal storage management responsibilities
Process isolation: The OS must prevent independent processes from interfering with each
other’s memory, both data and instructions.
Automatic allocation and management: Programs should be dynamically allo-cated across the
memory hierarchy as required.

Common questions

Powered by AI

The Application Programming Interface (API) in operating systems provides programs with access to system resources and services. It acts as an intermediary, allowing high-level language programs to use the hardware resources of the system through a standardized set of calls and instructions, which are supplementary to the user-level ISA .

Loadable modules provide flexibility in Linux by allowing kernel services to be extended without the need to recompile or reboot the kernel. Modules can be dynamically loaded into and unloaded from the kernel as needed. This not only allows for reduced memory consumption when modules are not in use but also allows updates and enhancements to be integrated into the system seamlessly, addressing both evolving computing needs and security patches .

The kernel's process scheduler plays a crucial role in system performance by managing the sequence and allocation of CPU time among processes. It determines the order of task execution to maximize resource utilization and minimize wait times. Efficient scheduling algorithms like round-robin or priority-based scheduling ensure that critical tasks receive necessary resources promptly, directly impacting system responsiveness and throughput .

Operating systems ensure efficient use of computer system resources by managing the allocation of resources such as CPU time, memory space, I/O devices, and file space. This is achieved through processes such as process scheduling, memory management, and I/O control. The OS handles tasks like file access and program execution using optimized algorithms to ensure minimal waste of resources while maximizing performance .

Operating systems handle errors by deploying a series of detection and response measures, ensuring system stability. They monitor for improper synchronization, failed mutual exclusion, nondeterminate operations, and deadlocks, which can cause systems to hang or crash. The OS actively checks for these conditions and attempts to mitigate them by rerouting processes, signaling errors to system administrators, or employing fail-safes like locking unused resources until conflicts can be resolved .

Dynamic linking in Linux kernel modules allows these components to be added to or removed from the kernel as needed, without needing a full system reboot. This concept enhances system operation by offering on-the-fly functionality changes, like loading device drivers or security updates, thus ensuring that the system can adapt to new requirements or threats swiftly, maintaining service continuity .

Process isolation is crucial to maintain the stability and security of an operating system by preventing processes from interfering with each other's memory space. This is achieved through mechanisms like virtual memory management, where each process operates in its own address space, and hardware support like memory protection units. These mechanisms protect data integrity and ensure that a fault in one process does not cascade, affecting others .

The evolution of a major operating system is driven by hardware upgrades, new services, and the need to fix faults. Hardware upgrades, like the addition of paging mechanisms, require the OS to support new processes and memory management techniques. User demand for new services necessitates the integration of additional functionalities. Finally, fixing faults involves constant updates, although these fixes may introduce new problems. This evolutionary process impacts functionality by expanding capabilities, improving efficiency, and adapting to new hardware standards .

Storage management in operating systems focuses on processes such as process isolation, memory allocation, and management of the storage hierarchy, ensuring clarity in process data and instructions. In contrast, process management deals with the creation, scheduling, and execution of processes, requiring coordination to maximize CPU efficiency and minimize latency. Storage management ensures data integrity across different processes, while process management ensures efficient task execution .

The principal causes of errors in shared computer systems include improper synchronization, failed mutual exclusion, nondeterminate program operation, and deadlocks. These can be mitigated through precise process management and synchronization techniques like semaphores or locks, ensuring exclusive resource access and implementing robust communication protocols to handle event suspensions and resource dependencies effectively .

You might also like