0% found this document useful (0 votes)
3 views6 pages

Software

lj

Uploaded by

Ellie
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 views6 pages

Software

lj

Uploaded by

Ellie
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

Unit 4

Software
Software is a set of programs run by a computer system. There are 2 types of Software:

Application Software
Software that performs a specific task that is end user related task is called application
software. It is used to perform specific jobs for a user that they would perform by other means,
eg., word-processing software to write a report, spreadsheet software to manage finances.
Ex. Word, MS-office, Adobe photoshop,etc.

System Software
Software that provides the user interface and tools to manage the hardware is called system
software. It is further divided into 2 types:

1. Operating System – helps the users to interact with the hardware. It works as the
interface between the hardware and the software. Ex. Windows, Macintosh, Linux, iOS, Android,
etc.
Functions of Operating System:
1. Process management - The OS handles the creation, scheduling, and termination of
processes. It ensures that each process gets enough CPU time to function efficiently.
2. Memory management - The OS manages the allocation and deallocation of memory
space as needed by programs.
3. Virtual memory management
4. File management - The OS takes care of the reading, writing, and organization of files
on storage devices.
5. Peripheral/Input Output device management - The OS controls and coordinates the
use of hardware devices such as printers, disk drives, and keyboards.
6. Network management – OS manages network connections with Bluetooth or wi-fi.
7. Security management - The OS provides mechanisms to protect data and resources
from unauthorized access, ensuring system security.
8. User management - The OS provides a user interface, such as a command-line interface
(CLI) or graphical user interface (GUI), enabling users to interact with the computer.
9. Scheduling Processes – Operating system allows each running process to use CPU time
equally.
10. Paging – Operating system uses this algorithm to move programs from RAM to disk and
back again when needed.
Types of Operating System:
1. Single User OS - is designed to manage the computer so that one user can work at a
given time. Ex. windows, MacOS
2. Multi-user OS - is designed to allow multiple users to access and use the computer
system simultaneously. This type of OS is typically used in environments where several
individuals need to share resources, such as in servers, mainframes, and workstations.
Ex. Linux
3. Time-Sharing Operating System: Allows multiple users to access the computer
simultaneously by sharing time equally among all users.
4. Distributed Operating System: Manages a group of computers located at different locations
and makes them appear to be a single computer.
5. Real-Time Operating System (RTOS): Designed to process data as it comes in, typically
used in Point-of-sale terminals.
6. Multi-tasking Operating System – An OS that allows processes to run concurrently.

Authentication – is used to verify the identity of the user or prove that users are who they say
they are.
Validation - is used to check that the data/password entered by a user is correct for processing
or whether it meets specified requirements or not.

Frequently asked questions


Ques1. Describe how the operating system enables processes to share a single CPU in a
multitasking OS.
Ans. Operating system enables processes to share a single CPU through the following:
1. The operating system uses a scheduler to control processes
2. The operating system holds processes in a queue
3. Some processes may be given higher priorities than others
4. Each process gains accesses to the CPU for a short time. They get a time slice to execute a
process
5. Processes are swapped to or from the CPU through paging.

Ques2. Describe how an operating system manages the storage of a file on random access
secondary storage.
Ans. The OS checks whether sufficient space is available on the storage (media) for the file.
Then the file is broken into blocks. The blocks are stored in spaces that are large enough. OS
looks for (FAT/NTFS)/ reserves (linux) (groups of) contiguous blocks. These blocks can reside
anywhere on the storage media. The OS updates the file allocation table (with the start location
and sequence number of each block). OS sets hard links to files. OS updates journal/MFT/
ntfs/linux. Metadata about the file such as read/write permissions, date created and last
accessed is separately stored
2. Utility Software – a software that does a useful job for the user. It performs a task related
to managing computer resources and ensuring the smooth working of the device. Some
common utility software are:
• Antivirus Programs: Protect against malware and viruses.
• Disk Cleaners: Remove unnecessary files to free up space.
• Backup Software: Create copies of data to prevent loss.
• File Compressors: Reduce the size of files for storage or transfer.
• System Monitors: Track and display system performance metrics.
• Disk Defragmenter: a utility that moves file clusters on a disk so they are closer to
each other in order to speed up disk access. Since the file is not saved as a large chunk
rather they are divided into small clusters which are saved at different location in the
disk, which makes accessing file a slow process. Defragmenter brings all the clusters
together to speed up the process.
• Firewall: a utility that stops unauthorized access to the network. It controls both
incoming and outgoing data access to the network.

Simulation Software
Simulation software allows users to model and replicate real-world processes, systems, or
environments on a computer. By creating a virtual representation, you can test and analyze
various scenarios, optimize performance, and predict outcomes without the risks and costs
associated with real-world experimentation.
Simulation software allows us to do experiments that can’t (or shouldn’t be) done in the real
world.

Benefits of Simulation:
1. What-if’ questions can be asked by changing variables to make predictions.
2. The simulation can be rerun with different values to see how the outcomes will change.
3. The simulation can be run faster than real life so multiple generations of animal results can
be seen / long-term trends can be seen.
4. The simulation can be safer than experimenting in real life. For ex. if animals are used for
experiments it can be the danger of animal interaction
5. The simulation would be more convenient and will save time because if done in real life,
observers would have to be present outside for a longer time to study the changes.
Drawbacks of Simulation:
1. The model or simulation includes assumptions. It is not reality, so the answers might not be
right.
2. The real world is far too complicated to allow for every possible factor in your model. So, you
have to use abstraction to simplify it. This makes it even less likely that you will get a
completely right answer.

Examples of Computer Models


A flight simulator allows pilots to train to fly aircraft safely. They can make mistakes in the
simulator without endangering their own lives or the lives of passengers.

Computer Models are based on following algorithms:


1. Heuristics – algorithm which finds a solution to a problem quickly and easily. This is done
through trial and error but they always don’t find the best solution but usually find the one that
works fine.
2. Monte Carlo Method – carries out statistical analysis of number of random samples to get
approximate solutions to a problem. The larger the number of samples used, the more accurate
the result is likely to be.
3. Neural networks – process information in a similar way to human brains and learn and
adapt over time.

Programming Languages
There are 2 types of programming language. They are:
1) Low level language - These languages are closer to machine code and are highly specific to
the hardware architecture of a computer. Low-level languages offer high performance and
efficiency since they can directly manipulate hardware resources. It is a programming language
that is closely related to the CPU’s machine code.
Ex. Assembly language, machine code

2) High-level language – It is a human understandable language. They are designed to be


more user-friendly and closer to human language. High-level languages are portable across
different platforms, meaning the same code can run on various types of hardware with minimal
modification.
Ex. Python, C++, Java
Difference between Low-Level and High-level Languages
1. Readability: high-level language is easily readable by a human because it is designed to look
like English whereas a low-level language is binary patterns or strings of 0s and 1s
2. Portability: code written in a high-level language is easily transportable across machines
whereas a low-level language is designed for a specific microprocessor or a piece of hardware.
3. Uses: low-level languages are commonly used to write programs for hardware or devices,
like printers, whereas high-level languages are commonly used for to write higher-level
applications, such as word processors.
4. Optimisation: low-level languages are used to improve performance, especially of hardware,
whereas high-level languages have to go through multiple layers of software to get to the
hardware, e.g. the need for HLL to be compiled/interpreted makes programmes run slower
than LLL, HLL has a higher level of abstraction removing unnecessary detail (one to many), LLL
keeps more of a detail (one to one)
5. Ease of use: high-level languages usually have tools, functions, libraries and development
environments which are accessible, even by those with little knowledge, whereas, low-level
languages are often challenging to work with and require expertise and depth of knowledge.

Translators
Converts high level languages into machine code language. It is of 3 types:
1) Assembler – translates assembly language programs into machine code for the
microprocessor to carry out instructions.
2) Compiler – A translator that converts whole program to machine code at one go.
3) Interpreter – A translator that converts the program to machine code line by line.

Difference between Compiler and Interpreter:


Compiler Interpreter
Converts to machine code at one go Converts to machine code line by line
Converts to machine code and saves the There is no object code file, only original
output as an object code. The extension of source code is available.
this code is usually .exe (executable file)
The object code can run on any machine It needs to install the software first before
without installing the software running the program.
It is slower because translation is done It is faster to execute as object code is the
line by line while the program is running. converted version so it takes less time to
execute.
Compiler
• One line of a compiled language maps to multiple executable instructions
• Reads in a whole file and translates it at once
• Produces an executable file
• Executable file is portable between machines with the same architecture and operating
systems
• End-user cannot see the programming source code
• Does not need an additional environment/software to run the code

Interpreter
• One line of a compiled language maps to multiple executable instructions
• Reads, translates, and executes one line at a time
• A special environment is needed to be installed on the user’s machine to run the code; this is
machine specific
• Source code is portable to any machine with an interpreter which can run on it
• End-user can see the programming source code

Similarities
• One line of a compiled language maps to multiple executable instructions/one to many
relationship to machine code
• Both are used to interpret high level programming languages
• Both produce machine code from human-readable programming code

Differences
• Compiler reads in a whole file and translates it at once. Interpreter reads, translates and
executes one line at a time
• Compiler produces an executable file, interpreter does not
• Executable files produced by a compiler will only execute on machines with the same
architecture and operating systems. Source code produced by an interpreter is portable to any
machine with an interpreter which can run on it
• Compiled code does not require any additional software to execute the code. An interpreter
needs a special environment to be installed on the user’s machine to run the code; this is
machine specific

You might also like