System_Software_Notes

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

Unit I: System Software and Operating System Concepts

1. Introduction to System Software:

- Definition: System software is a type of computer program that is designed to run a computer's

hardware and application programs.

- Examples: Operating systems, compilers, assemblers, and utility software.

- Differences: System software manages hardware resources, whereas application software

performs specific user-oriented tasks.

2. Types of System Software:

- System Control Software: Operating systems.

- System Support Software: Utility programs like disk management tools.

- System Development Software: Compilers, debuggers, and interpreters.

3. Operating System Concepts:

- Functions: Resource management, process scheduling, memory management, file systems,

security, and networking.

- User Interface: Command Line Interface (CLI) vs. Graphical User Interface (GUI).

4. Types of Operating Systems:

- Batch Operating System: Processes are executed in batches without user interaction.

- Time-Sharing Operating System: Allows multiple users to interact with the system

simultaneously.

- Distributed Operating System: Manages a group of independent computers.

- Real-Time Operating System: Provides immediate processing for real-time applications.

5. Multi-Programming and Multi-Processing Systems:


- Multi-Programming: Multiple programs are loaded into memory and executed simultaneously.

- Multi-Processing: Use of two or more CPUs for simultaneous processing.

6. Time-Sharing System:

- Concept: Divides CPU time among multiple users/processes.

- Benefits: Efficient CPU utilization, reduced response time.

7. Process Concepts:

- Process: A program in execution.

- Process Lifecycle: States include New, Ready, Running, Waiting, and Terminated.

8. Inter-Process Communication (IPC):

- Mechanisms: Pipes, message queues, shared memory, sockets.

- Importance: Synchronization, data exchange between processes.

9. Process Scheduling:

- Types: Preemptive (e.g., Round Robin) and Non-Preemptive (e.g., FCFS, SJF).

- Scheduling Algorithms: First-Come-First-Serve, Shortest Job First, Round Robin.

10. Context Switching:

- Definition: Switching the CPU from one process to another.

- Importance: Enables multitasking.

11. Dispatcher:

- Role: Assigns the CPU to processes ready to run.


Unit II: Language Processors

1. Introduction:

- Language processors convert high-level programming languages to machine code.

- Examples: Compilers, assemblers, interpreters.

2. Bootstrapping:

- Process of writing a self-compiling compiler.

3. Data Structures for Language Processing:

- Symbol Tables: Store identifiers and attributes.

- Syntax Trees: Hierarchical representation of code structure.

4. Scanning and Parsing:

- Lexical Analysis: Tokenization of input code.

- Parsing: Analyzing syntax according to grammar rules.


Unit III: Assemblers and Linkers

1. Elements of Assembly Language Programming:

- Low-level programming, close to machine code.

- Syntax involves mnemonics and operands.

2. Assemblers:

- Two-Pass Assembler: Processes source code twice to resolve symbols.

- Single-Pass Assembler: Resolves symbols in one pass.

3. Macros and Macro Processors:

- Macros: Reusable code blocks.

- Macro Processor: Handles macro definitions and expansions.

4. Linkers:

- Function: Combines object files into a single executable.

- Features: Relocation, linking overlays, loaders.

5. Software Tools:

- Examples: Debuggers, editors, and IDEs.


Unit IV: Compilers

1. Compilers:

- Function: Converts source code into executable code.

- Components: Lexical, syntactic, semantic analysis, optimization, and code generation.

2. Optimization:

- Machine-Dependent: Specific to hardware architecture.

- Machine-Independent: Applies to general code improvements.

3. Phases of a Compiler:

- Lexical Analysis: Tokenization.

- Syntax Analysis: Parsing structure.

- Semantic Analysis: Meaning of code.

- Code Generation: Produces machine code.

4. General Model:

- High-level structure of compilers.


Unit V: Data Structures and Interpreters

1. Data Structures:

- Examples: Stacks, queues, linked lists, trees, graphs.

- Applications: Memory management, recursion.

2. Storage Classes:

- Static, automatic, external, and based storage.

3. Interpreters:

- Function: Executes source code line-by-line.

- Comparison: Slower than compilers but easier for debugging.

You might also like