Operating System and Batch
Processing
Operating System
• An operating system acts as an intermediary between the user of a
computer and the computer hardware.
• An operating system is a program that manages computer hardware.
• It also provides a basis for application programs.
• The goal is to maximize the ease of use and resource utilization.
• The operating system provides the means for proper use of these
resources in the operation of the computer system.
• An operating system is similar to a government. Like a government, it
performs no useful function by itself.
2
Operating System
3
Operating System
Computers have two modes of operation:
• Kernel mode and
• User mode
4
Operating System Structure
• Monolithic Systems
• Layered Systems
• Microkernels
• Client-Server Model
• Virtual Machines
• Exokernels
5
Operating System Structure: Monolithic
• In this approach the entire OS runs as a single program in kernel mode.
• The OS is written as a collection of procedures, linked together into a single
large executable program.
• Each procedure in the system is free to call any other one, if the latter
provides some useful computation that the former needs.
• Being able to call any procedure is very efficient, but having thousands of
procedures that can call each other without restriction may also lead to a
system that is difficult to understand.
6
Operating System Structure: Layered
• Layer 0 dealt with allocation of the processor, switching between processes
when interrupts occurred or timers expired.
• Layer 1 did the memory management. It allocated space for processes in
main memory.
• Layer 2 handled communication between each process and the operator
console (that is, the user).
• Layer 3 took care of managing the I/O devices and buffering the information
streams to and from them.
• Layer 4 was where the user programs were found.
• The system operator process was located in layer 5.
7
Operating System Structure: Client-Server
• Communication between clients and servers is often by message passing.
• To obtain a service, a client process constructs a message saying what it
wants and sends it to the appropriate service (server).
8
Command Processor
• A command processor, also known as a command-line interpreter or shell,
is a program that interprets commands entered by the user and executes
them.
• Interprets user commands and translates them into instructions that the
operating system can understand and execute.
• Provides users with a text-based interface to interact with the operating
system.
• Common command processors include Command Prompt (Windows),
Terminal (macOS), and Bash (Unix-like systems).
9
Scheduler Functionality
• A scheduler is a system component responsible for managing the execution
of tasks or processes within an operating system.
• Allocates system resources such as CPU time, memory, and I/O devices to
various tasks based on priority and scheduling algorithms.
• Ensures optimal utilization of system resources while meeting user and
system requirements.
Types:
• Preemptive: Allows higher priority tasks to interrupt lower priority ones.
• Non-preemptive: Executes tasks until completion without interruption.
10
Scheduler Functionality: Advantages
• Maximizes system throughput by efficiently allocating resources and
minimizing idle time.
• Ensures fair distribution of resources among competing processes,
preventing starvation and resource monopolization.
• Allows users to prioritize critical tasks, ensuring that essential operations
are executed in a timely manner.
• Enables concurrent execution of multiple tasks, facilitating efficient
multitasking and user productivity.
11
Field Manager and Resource Allocator
• A field manager and resource allocator are essential components within
organizational structures responsible for overseeing operations and
optimizing resource utilization.
• The field manager oversees and coordinates activities in various operational
domains, ensuring efficient use of resources and adherence to
organizational goals.
• The resource allocator allocates available resources such as finances,
personnel, equipment, and time to different projects, tasks, or departments
based on priorities and requirements.
12
Field Manager and Resource Allocator: Advantages
Field Manager:
• Oversees field operations, including project management, logistics, and
personnel coordination.
• Ensures compliance with safety regulations, quality standards, and
operational protocols.
Resource Allocator:
• Evaluates resource requirements and availability across projects and
departments.
• Allocates resources based on strategic objectives, project deadlines, and
budget constraints.
13
Dispatcher
• The dispatcher is a key component of an operating system responsible for
managing and coordinating the execution of processes.
• It controls the allocation of system resources such as CPU time and I/O
devices to various processes.
• The dispatcher selects processes from the ready queue and schedules
them for execution on the CPU based on scheduling algorithms.
• Facilitates multitasking and concurrent execution of processes, enhancing
system responsiveness and efficiency.
14
Batch Processing
• Batch processing is a method of executing computer programs or tasks
without manual intervention, where a series of jobs are processed in
sequence.
• Involves grouping similar tasks or programs into batches to be executed
consecutively.
• Typically used for non-interactive tasks such as bulk data processing, report
generation, and system maintenance.
• Enables automation of repetitive tasks, saving time and human effort.
• Optimizes resource utilization by scheduling and executing jobs during off-
peak hours.
15
Batch Processing
• Reduces overhead associated with manual intervention by automating the
execution of repetitive tasks.
• Improves system efficiency by optimizing resource utilization and workload
management.
• Facilitates scalability by allowing the processing of large volumes of data or
tasks in a systematic and controlled manner.
• Provides mechanisms for error detection and recovery, allowing failed jobs
to be reprocessed or handled appropriately.
• Commonly used in industries such as banking, telecommunications,
manufacturing, and data processing for tasks like payroll processing, billing,
and data analysis.
16
Multi Programming
• Multi-programming is a technique where multiple programs are loaded into
main memory simultaneously and executed concurrently.
• Allows the CPU to switch between executing different programs to keep it
busy and maximize CPU utilization.
• Time-sharing systems where multiple users interact with the computer
simultaneously.
• Keeps the CPU busy by allowing it to switch between processes, reducing
idle time.
• Enables the execution of multiple programs concurrently, enhancing system
throughput and responsiveness.
17
Multi Processing
• Multi-processing involves the simultaneous execution of multiple processes
across multiple CPUs or CPU cores.
• Distributes computational workload across multiple processing units to
enhance performance and scalability.
• Modern computers with dual-core, quad-core, or multi-core processors.
• Distributes workload across multiple processors, improving system
performance and responsiveness.
• Allows systems to scale performance by adding more processing units or
cores.
18
Disk Operating System (DOS)
• DOS is a non-graphical operating system that provides a command-line
interface to interact with a computer's hardware and software.
• Developed by Microsoft, DOS was initially released in 1981 as MS-DOS
(Microsoft Disk Operating System).
• Manages files and directories stored on disk drives.
• Executes applications and system utilities.
• Provides basic system services such as file management, memory
management, and device input/output (I/O).
19
Windows
• Windows is a family of graphical operating systems developed and
marketed by Microsoft Corporation.
• Introduced in 1985 with Windows 1.0, Windows has undergone numerous
iterations, with major releases including Windows 95, Windows XP,
Windows 7, Windows 10, and Windows 11.
• Provides a user-friendly graphical interface for interacting with hardware,
software, and files.
• Offers features such as multitasking, virtual memory management, device
drivers, and networking capabilities.
20
UNIX
• Unix is a powerful, multi-user, multi-tasking operating system originally
developed in the late 1960s at AT&T Bell Labs.
• Unix adheres to the principles of simplicity, modularity, and flexibility,
emphasizing the use of small, single-purpose utilities that can be combined
to perform complex tasks.
• Unix has inspired various flavors and distributions, including Linux, BSD,
and macOS (based on Darwin, a Unix-like kernel).
21
Language Processor
• A language processor is a software tool or program that translates high-
level programming languages into machine-readable code or performs
various operations on the code.
• Language processors typically include editor, compilers, interpreters,
assemblers, and linkers.
• Facilitates the development, debugging, and execution of programs written
in high-level programming languages.
22
Language Processor: Editor
• An editor is a software tool used to create, modify, and manage text-based
files, including source code files.
• It provides features such as syntax highlighting, code formatting, and search
and replace functionalities.
• Examples include Visual Studio Code, Sublime Text, and Vim.
23
Language Processor: Compiler
• A compiler is a program that translates source code written in a high-level
programming language into machine code or an intermediate code.
• It performs lexical analysis, syntax analysis, semantic analysis, optimization,
and code generation.
• Compilers produce standalone executable files that can be run
independently of the original source code.
24
Language Processor: Interpreter
• An interpreter is a program that directly executes source code line by line
without prior translation into machine code.
• It reads the source code, parses it, and executes it immediately, typically
without generating a separate executable file.
• Interpreters are commonly used in scripting languages like Python,
JavaScript, and Ruby.
25
Language Processor
• Editors, compilers, and interpreters are essential tools in software
development.
• While editors facilitate code creation and modification, compilers and
interpreters enable the translation and execution of high-level programming
languages into machine-readable code.
• Understanding the functionalities and differences between these tools is
crucial for efficient software development and debugging processes.
26