Document 26
Document 26
Pair Activity:
a. Work with a partner to list all the software you’ve ever used.
b. Try to categorize them based on:
i. What they do (e.g., writing, gaming, browsing).
ii. How they’re used (e.g., for work, school, entertainment).
c. Examples of categories: Operating systems, word processors, web
browsers, etc.
Discussion Questions:
1. What problems do you think arise when using only assembly language?
2. How has the invention of programming languages like Fortran impacted how we
use computers today?
Types of Software
Computers rely on software to function. Software is like the brain of a computer, giving
it instructions. It’s categorized into:
1. System Software:
a. Manages hardware and other software.
b. Examples:
i. Operating Systems (OS): Windows, Linux, macOS, Android.
ii. Utility Programs: Help maintain the computer, such as:
1. System clean-up: Removes unused programs.
2. Defragmentation: Organizes files for better performance.
2. Application Software:
a. Helps the user perform specific tasks.
b. Examples (Generic names):
i. Word processor: For creating text-based documents.
ii. Spreadsheet: For calculations and data analysis.
iii. Database: For storing and searching data.
iv. Web browser: For viewing websites.
Activity:
Key Terms
This text explains key concepts related to operating systems (OS) and their functions,
providing an overview of their components and how they manage various tasks. Below
is a concise summary of the main points covered:
1. Providing an Interface:
a. Graphical User Interface (GUI): Uses windows, icons, menus, and
pointers (WIMP). It is intuitive and user-friendly, e.g., Windows.
b. Command Line Interface (CLI): Requires exact text commands, ideal for
experts.
c. Natural Language Interface: Accepts text or spoken commands, e.g.,
Alexa or Siri.
2. Managing Files:
a. Allows creating, moving, copying, deleting, and renaming files.
b. Supports organizing files into directories.
3. Managing Peripherals and Drivers:
a. Peripherals are external hardware devices like printers or keyboards.
b. Drivers enable communication between the OS and peripherals, ensuring
compatibility.
4. Managing Memory:
a. Allocates and monitors memory for processes.
b. Prevents multiple processes from accessing the same memory location.
5. Managing Multitasking:
a. Simulates simultaneous execution of multiple tasks by rapidly switching
between them.
b. Uses interrupts to prioritize tasks.
6. Providing a Platform for Applications:
a. Fetches and executes application instructions, allowing software to run
seamlessly.
7. Managing User Accounts:
a. Supports multiple users with unique preferences, usernames, and
passwords.
b. Restricts unauthorized access using security measures like biometrics or
passwords.
Interrupts
1. Definition:
a. Signals sent to the processor to gain its attention.
b. Can be hardware-based (e.g., keyboard input) or software-based (e.g.,
application errors).
2. Interrupt Handling:
a. Interrupts are prioritized by the interrupt handler (IH).
b. High-priority interrupts (e.g., hardware failure) are addressed before low-
priority ones (e.g., data input).
c. The interrupt service routine (ISR) processes each interrupt.
3. Process Flow:
a. The processor checks the interrupt queue after completing each fetch-
decode-execute (FDE) cycle.
b. If an interrupt has higher priority, the current process is paused, and the
interrupt is handled.
c. The processor resumes or fetches the next high-priority interrupt once
completed.
Questions
High-Level Languages
Low-Level Languages
• Types:
o Machine Code: Binary instructions (1s and 0s), executed directly by the
computer.
▪ Non-portable and specific to the hardware.
o Assembly Language: Uses mnemonics (e.g., STO, LDD) as shorthand for
binary instructions.
▪ Requires more effort but allows manipulation of hardware and is
slightly more human-readable.
▪ Example: LDD count
ADD 1
STO count
Equivalent to count = count + 1 in a high-level language.
• Advantages:
o Direct hardware manipulation.
o Efficient in speed and memory usage.
4.5 Translators
Definition:
• Software that converts code from one language to another, typically from high-
level or assembly language into machine code.
Key Words:
Questions:
Let me know if you'd like additional explanations, or help answering the questions!