OS and system software
operating system
is software that manages the computer
purposes of OS
managing external devices
managing the memory
managing the processor
which process to execute next
handling interrupts
allocating and managing memory
using paging and segmentation
managing virtual memory
using device drivers
translate OS instructions into those understood by specific models
provides a platform for software and utility programs
framework for application to run
allowing them to open and close files easily
user can interact with OS to manage files and use range of utilities
providing networking
communication through protocols to other machines and devices
managing security
servicing and denying requests to access the resources connecting to the coputer
proves user interface
user interacts with applications through
graphical user interface
windows icons menus pointers
command line
memory managment
paging and segmentation
both pages and segments are stored on disk (virtual memory)
paging
segmentation
how it works
advantages
segments are different sizes
fixed size memory locations
physical devisions
disadvantages
doesn't take into account what each page is doing
virtual memory
stores idle programs to the hard disc
disc thrashing is when too much time is spent on moving memory in and out of memory
keeps complete sections of programs
allow programs to run despite insufficient memory
divide memory into sections
made to fit sections of memory
segments are logical divisions
allows programs to run with insufficient memory
interrupts
a device sends a signal to the CPU along the control bus
interrupt service routine
a stack is used to hold contents of the registers
stack holds the contents of the PC which can then be popped when interrupt is resolved
interrupts have priorities
types
hardware
software
input/output
power/reset button is pressed
memory parity error(corrupt memory)
illegal instruction encountered
arithmetic
new log-on request
buffer nearly empty
signal the completion of a data transfer to/from a device
scheduling
first in first served
runs the first program until completion
if jobs behind are quicker then they will have to wait
shortest job first
the shortest job is run first
long processes can end up not being processed for a long time
round robin
each process is allocated a fixed amount of time
quanta/time slice
if program is incomplete it goes to the back of the ready queue
fair but not always efficient
shortest remaining time
similar to shortest job first but this algorithm is pre-emptive
process can be suspended if a higher priority process joins the queue
multilevel feedback queues
number of queues increase each with different priorities
scheduler can move jobs between the queues
types of operating systems
distributed
embedded
multi-tasking
multi-user
real time
one processor can run more than one program at any one time
the processor schedules the programs
each program receives a very small time slice of processor
allows more than one user to use a computer at any time managing each users preferences
could be a server operating system managing the requests of multiple users on different computers
using multiple computers over a connected network to process a single instruction
processors exist on dedicated hardware, to run with the best efficency
guaranteed to run a process within a given time frame
redundancy is built to handle abnormal increases in inputs
never run at maximum capacity
bios
first checks to see if hardware is working power on self test
setting can be changed in the bios
sequence
boot loader (bootstrap) program to load operating system kernel before giving control to the OS
initial start up sequence is stored in ROM
bios parts that can be altered are stored in flash memory
drivers
software which tells OS how to communicate with the hardware
example: Printer
OS doesn't need to concern how to physically print a document
virtual machines
same functionality of a physical computer without it's native hardware
emulators
old arcade games can be run on emulators which use modern hardware.
games can be developed on PC and emulated for other types of hardware e.g. Xbox or PS3
server
virtual servers can be used on a small number of physical servers this is to have multiple servers
vertualization
this is when a physical server brakes and the other servers on the network can take up the slack so that the servers can carry on as if it never broke
intermediate code
virtual machines can interpret intermediate code for example java
means code can work on many different platforms
saves time
code would need to be written for each platform
or a suitable compiler would need to be used