0% found this document useful (0 votes)
3 views

ComputerScienceOverview-StudyGuide

The document outlines the two main categories of software: system software, which includes operating systems and utility software essential for computer operation, and application software, which is user-chosen for specific tasks. It details the functions of operating systems, including file management, user interfaces, and memory management, as well as the role of device drivers and interrupts. Additionally, it discusses programming languages, their levels, and the tools used for coding, such as compilers, interpreters, and Integrated Development Environments (IDEs).
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

ComputerScienceOverview-StudyGuide

The document outlines the two main categories of software: system software, which includes operating systems and utility software essential for computer operation, and application software, which is user-chosen for specific tasks. It details the functions of operating systems, including file management, user interfaces, and memory management, as well as the role of device drivers and interrupts. Additionally, it discusses programming languages, their levels, and the tools used for coding, such as compilers, interpreters, and Integrated Development Environments (IDEs).
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Computer Science

System Software & Application Software


Software is divided into two categories: system software and application software.

System Software
Essential for the operation of the computer system.
Provides a platform to run applications.
Examples:
Operating System (OS)
Utility Software

Utility Software
Designed to maintain, enhance, and troubleshoot/repair a computer system.
Performs a limited number of tasks.
Interacts with computer hardware (e.g., secondary storage).
Some utility software comes installed with the OS.
Examples:
Defragmentation (maintain)
Compression (enhance)
Encryption (enhance)
Task Manager (troubleshoot/repair)

Application Software
Chosen by the user to carry out specific tasks.
Installed on top of system software.
Categories:
Productivity (word processors, spreadsheets, presentation software)
Communication (email, browsers, messaging apps)
Entertainment (media players, games)

Operating Systems
Purpose & Functionality
An OS manages computer hardware and provides a platform for running applications.
It provides an interface between the user and the hardware.
Hides hardware complexities from the user.
Key Functions
File Management: Creating, organizing, manipulating, and accessing files and folders.
Allows users to create, name, rename, copy, move, and delete files/folders.
Controls user access and permissions.
Provides a search facility.
Interrupt Handling: Managing interrupt events that require immediate CPU attention.
For example, cancelling a file conversion process.
User Interface: How the user interacts with the OS.
Command Line Interface (CLI)
Graphical User Interface (GUI)
Menu Interface
Natural Language Interface (NLI)

User Interfaces
CLI: Text-based commands; used by advanced users. (e.g. MSDOS, Raspbian)
GUI: Visual elements (windows, icons, menus, pointers). (e.g. Windows, Android, MAC OS)
Menu Interface: Successive menus with single options. (e.g. Chip and pin machines, Vending
machines)
NLI: Spoken word/textual input. (e.g. Virtual assistants, Search engines)

Peripheral Management & Device Drivers


Peripheral Management: Managing how peripherals interact with software.
Allocates system resources to peripherals.
Enables plug-and-play (PnP) functionality.
Device Driver: Software that controls a piece of hardware.
OS has generic drivers built-in.
Separate drivers may be needed for maximum capacity.
Device drivers are OS specific and are regularly updated.

Memory Management & Multitasking


Memory Management: Allocating main memory (RAM) between programs.
Copies programs and data from secondary to primary storage.
Allocates RAM based on priority and fairness.
Dynamically adjusts memory allocation.
Enables multitasking.
Multitasking: Simultaneously managing system resources to give the user the perception of
running multiple programs at the same time.
Splits tasks and allocates resources based on priority.

Other Functions
Providing a Platform for Running Applications: Allows software access to system resources
(e.g., GPU, network card).
Providing System Security: Password-protected accounts, firewalls, virus scanning, file
encryption.
User Management: Enables different users to log onto a computer with individual settings.

Hardware, Firmware, and the Operating System


Application Software communicates with the Operating System, which interacts with the
Hardware. The Hardware processes and sends information to the Operating System, which
relays it to the Application Software.
Firmware: Embedded in the hardware to make it function.
Bootstrap loader: Initial boot-up instructions contained in ROM.
BIOS (Basic Input/Output System): Firmware that handles the initial start-up process.
Firmware translates between the hardware and the software.

Interrupts
An interrupt is a signal for the CPU to stop its current task and do something else with higher
priority.
Generated by hardware or software.

How it works
1. Interrupt is generated.
2. Added to the Interrupt Service Routine (ISR).
3. Contents of CPU registers are copied to a stack (reserved area in RAM).
4. The interrupt is executed instead of the original instructions.

Examples
Hardware: Power button pressed, mouse movement, keyboard presses.
Software: Program not responding, division by zero, processes trying to access the same
memory location.

Programming Languages
Levels of Programming Languages
Low-Level Languages: Directly translates to machine code.
First Generation: Machine code (binary).
Second Generation: Assembly code (mnemonics).
High-Level Languages: Uses English-like statements.
Examples: Python, Java, Basic, C++.
Assembly Language
A second-generation, low-level language using mnemonics (e.g., LDA, ADD, STO).
Needs an assembler to convert to machine code.

Translators
Translators convert program source code to machine code.
Assembler: Translates assembly code.
Compiler: Translates high-level languages all at once.
Interpreter: Translates high-level languages one line at a time.

Compiler vs
InterpreterFeatureCompilerInterpreterTranslationAll at
onceOne line at a timeDistributionCreates an
executableNeeds translation software to runError
ReportingReports errors at the endStops when it finds an
errorSpeedFaster executionSlower
executionMemoryMore memory intensiveRequires less
RAM

Integrated Development Environments (IDEs)


Software to make writing high-level languages more efficient.
Tools and Facilities:
Editor: Environment to write, edit, and maintain code.
Basic formatting tools.
Prettyprint (syntax highlighting).
Code editing (auto-completion, auto-correction).
Commenting code.
Error Diagnostics: Tools to identify, understand, and fix errors.
Highlighting errors.
Debugger (step-through command).
Run-time Environment: Ability to run and see the output of code.
Translator: Built-in compiler or interpreter.

You might also like