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

1.2 Software and Software Development

The document provides an overview of operating systems, their functions, and memory management techniques such as paging and segmentation. It discusses various scheduling algorithms, types of operating systems, and the roles of BIOS, device drivers, and virtual machines. Additionally, it explains the distinction between system software and application software, as well as the function of translators in converting code.

Uploaded by

mohit.reddy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views6 pages

1.2 Software and Software Development

The document provides an overview of operating systems, their functions, and memory management techniques such as paging and segmentation. It discusses various scheduling algorithms, types of operating systems, and the roles of BIOS, device drivers, and virtual machines. Additionally, it explains the distinction between system software and application software, as well as the function of translators in converting code.

Uploaded by

mohit.reddy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

1.

2 Software and Software


Development
Operating System – A system software which is a collection of programs
that work together to provide a user interface and allow the user to
communicate with the computer’s hardware. They can also complete
certain low-level tasks involving the management of computer memory
and resources.

Operating systems provide the following features:

 Memory Management
 Resource Management
 File Management
 Input/Output Management
 User Interface
 Utility Software
 Security
 Interrupt Management

Paging – A method of memory management by which the memory is


divided up into equal-sized chunks called pages, with programs being
made of a certain number of these equally-sized pages. These pages can
be swapped between the main memory and hard disk as needed.

Segmentation – A method of memory management by which the


memory is divided into logically sized chunks called segments which vary
in size. The size of a segment depends on the structure and logical flow of
the program.

Virtual Memory:

 Virtual memory uses the secondary storage to act as RAM in the


case that the RAM runs out of space for storing the programs being
used. Sections of programs that are not in use are temporarily
moved to the secondary storage through paging, making space for
other programs in the RAM.
 The key issue is disk thrashing – the computer will freeze due to
more time being spent switching pages between the RAM and the
secondary storage. This issue gets progressively worse as the VM
fills up.
Interrupts – Signals created by software or hardware which indicate to a
processor that a certain process needs attention. Interrupts have priorities
that are assigned by the OS. Interrupts are stored in order of priority in an
abstract data structure called an interrupt queue in the interrupt register.

Interrupt Service Routine:

 The processor checks the contents of the interrupt register at the


end of every FDE cycle.
 If an interrupt of higher priority than the process about to be
executed exists, all of the contents of the registers in the CPU are
temporarily transferred to a data structure called a stack.
 The processor then responds to the interrupt by loading the
appropriate Interrupt Service Routine (ISR) into the RAM.
 A flag is set to signal that the ISR has started.
 The interrupt is then serviced, the flag is reset. The interrupt
register is then checked again for any interrupts of higher priority
than the instruction originally being executed, and the whole cycle
starts again.

Scheduling:

 Round Robin – Each job is given a section of processor time called


a time slice within which it is allowed to execute. Once each job in
the queue has used its first time slice, the OS will re-assign an equal
time slice to each job. This continues until the job is completed.
+ Round Robin ensure that each job is seen to.
- Longer jobs take a lot longer due to their execution being
inefficiently split up into multiple cycles.
- Job priority is not taken into account.
 First Come First Served – Jobs are processed in the chronological
order in which they enter the queue.
+ Easy to implement
- Does not take job priority into account
 Multilevel Feedback Queues – This algorithm implements
multiple job queues ordered by priority which the processor follows.
- Hard to prioritise each job.
 Shortest Remaining Time – The queue storing tasks to be
completed is ordered by the remaining time for the job to be
completed, with the job with the least amount of processor time at
the front.
- Processor starvation
- The processor must be able to calculate how long each job will
take, which is not always possible.
 Shortest Job First – The queue storing the tasks to be completed
is ordered the time required for completion, with the shortest job
being at the front of the queue.
+ Suitable for batch systems where shorter jobs are prioritised to
minimise waiting time.
- The processor must be able to calculate how long each job will
take, which is not always possible.
- There is a risk of processor starvation should short jobs be
continuously added to the queue.

Types of OS:

 Distributed – This is a type of operating system which runs across


multiple devices, allowing the load to be spread across multiple
processors.
 Embedded – Operating systems that are built to perform specific
tasks catered for a specific device. They are limited in functionality
and hard to update, but they are extremely power efficient.
 Multi-Tasking - Operating systems which enable the user to run
tasks seemingly simultaneously by using time slicing to switch
quickly between programs and applications in memory.
 Real Time – Commonly used in time-critical systems, a real time OS
is designed to perform tasks within a guaranteed time-frame.

BIOS:

 The Basic Input Output System is the first program which is


switched on. The BIOS is responsible for running several key tests
before the OS is loaded into the RAM:
o POST (Power-on-self-test) which ensures all hardware is
correctly connected and functional.
o Checking the CPU clock, memory and processor are operation.
o Testing for external memory devices connected to the
computer.
Device Drivers:

 Device drivers are pieces of software provided by the OS which


enable the OS to interact with hardware.
 Specific to computer architecture and OS.

Virtual Machines:

 A theoretical computer is a software implementation of a computer


system which provides an environment with a translator for
intermediate code to run.
 Intermediate code is code that is half-way between object code and
machine code. This means that it is independent of computer
architecture and and OS.
 + Saves time and money that would be required to make a machine
soley for testing.
- Often run slower than the actual system.

System Software – System software is low-level software that is


responsible for the smooth running of a computer system. It interacts with
hardware and provides a platform on which application software can run.
The user does not directly interact with system software, but it plays a key
role in ensuring high performance.

Application Software – Application software is software designed to be


run by the end-user to perform a specific task. It requires system software
to run off.

Utilities:

 Type of system software which help to maintain the computer.


 Compression
 Disk Fragmentation
 Backup
 Antivirus
Translators – Programs that convert high-level source code into low-level
object code which can then be executed by a computer:

 Compiler – Translates high-level object code into machine code all


at once after carrying out a number of checks and reporting back
any errors. This initial compilation process takes longer than using
other translators, and if any changes are made, the whole source
code must be re-compiled. Also, the compiled machine code is
processor-specific. However, once a program has been compiled for
the final time, the machine code itself can be distributed.
 Interpreter – Translates and executed the source code line-by-line.
Execution may at first appear faster than compilation, but it is
slower than running an already compiled code. This code can be
used over a variety of platforms providing that a suitable interpreter.
 Assembler – Assembly code is a low-level language which is
processor specific because it depends on the specific processor’s
instruction set.
Assemblers translate assembly language into machine code – each
instruction in assembly language is roughly worth 1 instruction in
machine code.
Assembly Language Instruction Set:

You might also like