You are on page 1of 23

Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012

3.3.1 The function of operating systems


TYPES OF OPERATING SYSTEM 1
BATCH 1
REAL TIME 1
SINGLE USER 1
MULTI-USER 1
SINGLE TASKING 1
MULTI-TASKING 2
MULTI-PROGRAMMING 2
DISTRIBUTED SYSTEMS 2
INTERRUPTS 3
CONDITIONS THAT MAY GENERATE INTERRUPTS 3
PRIORITIES 4
INTERRUPT MASKS 4
MEMORY MANAGEMENT 5
PAGING 5
SEGMENTATION 6
VIRTUAL MEMORY 7
DEVICE I/O 8
DATA TRANSFER 8
SIGNALLING 9
POLLING 9
INTERRUPTS 9
BUFFERING I/O 10
I/O CACHE 11
LOGICAL AND PHYSICAL DEVICES 11
MEMORY MAPPED I/O 12
MEMORY MANAGEMENT UNIT (MMU) 12
ACCOUNTING AND SECURITY 13
PROCEDURES ON MULTI-USER NETWORKS 13
ENCRYPTION 13
ACTIVITY LOGS 14
FILE MANAGEMENT 15
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
FILE MANIPULATION 15
ARCHIVING 15
DATA COMPRESSION 15
FILE SYSTEMS, FILE ALLOCATION TABLE FAT 16
FRAGMENTATION 17
DELETION OF FILES 17
BOOT FILES 17
SCHEDULING 18
PROCESS 18
PROCESS CONTROL BLOCK 20
SCHEDULING 20


3.3.1 Function of Operating Systems page 1
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Types of Operating System
The mode of an operating system determines how it handles programs, processes and users. Traditionally the
O/S would operate in one mode only, but there has been a gradual blurring of this due to the increase in CPU
power and decrease in storage (primary and secondary) costs.
Batch
Data processing is performed with little or no interaction with user.
Jobs are submitted and run until complete, next job can then be processed.
User needs to specify job and any parameters.
Uses: payroll, bank statements, or any large scale high volume repetitive data processing job, 3D scene
rendering, video/audio encoding, data analysis (Finite Element analysis, simulation etc)
Real time
Inputs are processed and appropriate actions are taken immediately with appropriate outputs.
Often found in safety critical systems and systems where quick feedback essential
Where immediate response is require for the experience of the user.
Uses: Fly-by-Wire plane systems, Power plants, Games
Single User
Allows one user to access the O/S and hence the facilitates, software/devices of the host.
This may be the ability to run more than one program at once (multi-tasking) or just a single program at
once (single-tasking)
Uses: Desktop/Laptop machine
Multi-user
The ability to allow multiple users access the O/S and hence the facilities software/devices on the host
computer.
Often users can run multiple programs/applications by multi-tasking or multi-programming.
Uses: Mini-computer, Mainframe, large scale network with central application servers.
Single tasking

The ability to run only one program/application at a time.
This is the way most computers used to be, is still found in embedded systems.
Uses: Domestic appliances video/DVD player/ washing machine etc
3.3.1 Function of Operating Systems page 2
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Multi-tasking
The ability to switch between a number of programs/processes giving the illusion that they are running
simultaneously, while in fact they are given a slice of time to run.
O/S needs to schedule the running of the processes.
Uses: Desktop/Laptop machines also central processing servers on networks.

Multi-programming
Is the ability to physically run more than one program or process at the same time.
It requires more than one physical core (Processor).
Often found on servers (mini and mainframes), allowing more processing to be carried out in a shorter
space of time.
This will often be coupled with multi-user ability.
Uses: for large scale data processing application, simulation, corporate database
Distributed systems
A system where the processing is farmed out to several machines connected across some form of LAN or
WAN (local or wide area network).

Data is split up into jobs (by some central controller) to be processed individually by machines on the
network.
Once a job is completed its results are sent back to the central controller to be collated.
The O/S needs to be able to handle these remote connections and manage the data being sent out and results
returned. It can sometimes involve hundreds of thousands of workstations/servers.
Uses: Very large scale data processing projects that would generally take thousands of computer years to
process on a single system.

Uses: 3D graphics rendering for films and television (render farms), Protein folding simulation
(folding@home), SETI (Search for ExtraTerrestial Intelligence) program analysing radio signals from space,
simulations.
3.3.1 Function of Operating Systems page 3
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Interrupts
Interrupts are signals generated by devices or software that are used to seek the attention of the O/S.
Once received the O/S will pass control to a program called an Interrupt handler. This program (often inside a
device handler) will know how to handle the task the interrupt.

E.g.
User presses CTRL + ALT + DEL
The O/S will stop running the current process (see scheduling)
Home screen for Windows will be displayed
Once finished the O/S will restart whatever process was interrupted (hence the name)
Conditions that may generate interrupts
Interrupts can be generated from several sources
I/O Devices that need attention
User Interrupt (CTRL+ALT+DEL on a PC)
O/S interrupts (time slice finished)
Software requesting attention (a device or O/S function)
Hardware faults
O/S faults (kernel faults will be catastrophic blue screen of death)
Run-time errors generate by software, programmers can generate their own exceptions.

Interrupts generated by software are often referred to as exceptions.
3.3.1 Function of Operating Systems page 4
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Priorities
If all interrupts were given the same priority then they would keep interrupting each other. A time
independent I/O request (such as a file save operation) could potentially interrupt the scheduling of a process
(this would be bad).

In order to deal with this interrupts need to be allocated a priority (which is essentially just a number)

This allows an interrupt to interrupt another if it has a higher priority.

Example
Interrupt level 3 occurs, O/S starts to process
Interrupt level 2 occurs, O/S ignores the interrupt
Interrupt level 5 occurs, O/S pauses processing of level 3 interrupt and process level 5 one
When level 5 one finishes level 3 interrupt processing continues

Interrupt masks
Sometimes when processing interrupts a programmer may not want to be interrupted by other interrupts.

When writing interrupt handlers often the first line of code disables interrupts below a certain priority,
allowing them to continue when the interrupt handler has finished. This is achieved by setting and clearing
the Interrupt register of the CPU.

How this works exactly depends on the CPU involved, but it involves the setting and clearing of bits, which is
why setting the allowable interrupt level is known as masking. The O/S uses this when deciding what
interrupts to ignore and which to process.

Generally all interrupts can be blocked except critical O/S interrupts (such as scheduler); these are known as
NMI or Non-Maskable Interrupts (as there is no way of masking their processing).

3.3.1 Function of Operating Systems page 5
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Memory management
Memory is a physical Device, with memory locations organised in a linear fashion. Each memory location is
accessed by using a memory address.
Memory addresses start at 0 and continue up to the maximum amount of RAM available.
Memory management in a multi-tasking environment is an important issue for OS designers. The OS must be
responsible for controlling which parts of main memory processes can access. (Main memory is the RAM of a
computer)
This is only possible with special registers and functions built into modern CPUs; a software only solution to
memory management is not possible.
The OS must ensure that processes within the system do not
Access the program code of another process
Access the data belonging to another process
Overwrite the data or code of another process
Directly access any part of the OS

Paging
Paging is one way of tackling the memory protection problem.
Main memory is split into a number of physical pages, each occupying a fixed number of bytes (typical page
sizes from 256 bytes up to 64KB).
The OS numbers these pages from 0 onwards (0 being the page occupying the lowest part of main memory).
The OS maintains a list of all the free pages in main memory
When a process is loaded by the OS, pages from the free list are allocated
The OS maintains a list of the pages occupied by code and data of processes within the system
A list of pages used by each individual process is maintained in each process control block
If a process attempts to access a page which it does not own then the OS can take action against the process
(Killing or disabling the process, letting the operator know what has happened through some form of dialog)

This is made possible thanks to relative addressing. This allows the OS to load program code and data
anywhere in main memory. Program or data doesnt have to reside in consecutive pages; the OS invisibly
controls access to code and data within separate pages. The application does not need to be aware of where
it is physically stored the memory management unit makes all the address translations transparently.
3.3.1 Function of Operating Systems page 6
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Segmentation
Memory is split into logical divisions known as segments.
These segments are of variable size (unlike pages which are fixed) to accommodate whatever is being stored.
Often Applications have multiple segments allocated to them for different types of data, these may include
the following segments:
Text segment: Executable code (machine code of the application)
Data segment: the already initialised data for the application
BSS segment: uninitialised data (space for dynamic data structures)
Because they are variable size managing them is more complex than paged memory system. Each of the
segments of an application will have its own memory protection and management.

3.3.1 Function of Operating Systems page 7
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Virtual memory
Virtual memory is an extension of paging
Often called Paged Virtual Memory, it allows the OS to run programs and manipulate data files that are larger
than main memory can accommodate. The CPU can only access code and data, held in main memory. This
complication must be overcome by virtual memory.
Uses fast (must be to work effectively) secondary storage (disk drive) to hold additional (virtual) pages of
memory
Secondary storage space is a cheaper than main memory
The O/S maintains a list of Logical pages (which the O/S can create as many as it likes)
The logical pages can exist in RAM (occupying physical pages)
Pages stored in secondary storage are referred to as being in the swap file, they are listed in a form of disk
directory (which is used to quickly look up the location of pages)
The OS maintains a record about each page containing information such as
Is this page in main memory or in the swap file
Last time paged was accessed
Number of times this page has been accessed
Is this page accessed straight after a another page
The location of a page is transparent to the process that owns it (it doesnt need to know where pages are
stored)
If a process tries to access one of its pages stored in the swap file then the OS must load it into main memory
first.
In order to accommodate this page in main memory, a page currently in main memory must be moved into
the swap file. The page record (above) is used to determine which
The OS can decide which pages to move into the swap file in many different ways
Longest time without access
Page not used for the longest time is moved into the swap file
Heuristic approach
The OS monitors how pages are being accessed by processes
It predicts when certain pages will be needed and ensures they are in main memory when needed
When the OS thinks they are not needed they are automatically moved into the swap file (making space for
other pages)
This intelligent approach can make virtual memory very effective
3.3.1 Function of Operating Systems page 8
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Device I/O
The communication between devices and the CPU is one of the main jobs of the operating system. A device is
any piece of equipment that can communicate with the CPU. We call devices that are external to the main
computer unit peripheral devices.
Communicating with devices involves Data transfer and signalling.
Data Transfer
Sending data to a device
Receiving data from a device

Data Transfer between memory and devices is achieved in two main ways:
CPU responsible for the data transfer (Happens on simple computer systems)
Input/Output Channel responsible for the data transfer. (Modern computers)
Data block info (address, number of bytes) passed by OS to I/O channel
I/O channel acts independently of the CPU
OS can get on with the job of running process/tasks using the CPU
When transfer complete I/O channel signals the OS to let in know

3.3.1 Function of Operating Systems page 9
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Signalling

Communications between the Operating system and devices (physical or logical devices)
Sending messages to a device telling it to do something
Receiving messages from a device about its status


Signalling achieved by two methods appropriate in different situations

Polling

Used when status of a device is wanted at a regular interval (e.g. mouse, keyboard, gamepad)
Only suitable if time interval is large (milliseconds)
Polling rate dependant on device, i.e. mouse is often polled very quickly (200Hz) so smooth movement as
used for primary interaction with Operating System.
OS responsible for asking devices what their status is
Device sends immediate response of its status to the OS
Too much polling can halt an OS, leaving it no time to run programs
Interrupts

Are used when the status of a device can change at random intervals
Removes burden from OS - Device responsible for generating interrupt.
OS stops what its doing and runs an interrupt handler
Interrupt handler must execute quickly so OS can use the CPU
Interrupts have priorities: Low for fast devices as they will be able to get on quickly once they have got
their response
High for slow devices (e.g. printers) as they need a response quickly so they can continue doing their
jobs
3.3.1 Function of Operating Systems page 10
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Buffering I/O
A buffer is a temporary area of RAM, which is used to hold data waiting to be processed. If buffers were not
used then data might be lost from the device, if the O/S was not ready to receive it.
Buffers act as a link between devices which operate at different speeds, e.g. the CPU and the keyboard.
Buffers can be read (emptied) and written (filled) but only one action can be carried out at a time.
When the buffer is full the O/S can be signalled (as it was probably off doing something else) so that it can
process the data in the buffer. The device will then have to wait until the buffer has been processed before it
can continue
Double buffers
Are a way of speeding up reading and writing to buffers by allowing simultaneous reads and writes. It enables
the operating system to keep the slower device working as often as possible.
The process is as follows (the read/write can obviously be performed the other way round):
Device fills Buffer One
O/S can now process Buffer One
Device can now fill Buffer Two, while Buffer One is busy (being emptied)
Used on graphics cards so 3d scenes can be rendered while the previous one is displayed (sometimes triple
buffers are used to keep the slower device even busier)

Filling buffer
Device
O/S
Empty Buffer
O/S
Empty Buffer One
While Device fills
buffer Two
Fills buffer One
Device
Then Fills buffer Two
Single Buffer can only read or write (not at same time)
Double Buffer can read and write (different buffers)
Keeps slower device working most of the time

3.3.1 Function of Operating Systems page 11
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
I/O Cache
Some devices will carry out a high number of data transfers, e.g. disk drives. This often involves some
mechanical process, which is inherently slow.
One way of reducing the amount of physical reads and writes is to introduce a cache system. This works in a
similar way as CPU cache, which is used to reduce the number of reads and writes to RAM (which is slower
than Cache RAM).
A dedicated buffer in either RAM or physically connected to the device is used to hold the most recent or
often used data requested for the device.
When reading from the device, if the data is in the cache then this can be quickly retrieved without the
need to access the device.
When writing to the device, if the data is in the cache then this is updated in the cache but must also be
updated on the device.
Writing is the trade-off with cache; reading is where we get the true speed up.
The actual mechanisms used are dependent on the device and its corresponding driver, and there are several
ways to maximise the performance of the cache this is down to the manufacturer to sort out.
Logical and Physical devices
A Device handler (Device driver) knows how to communicate with a particular device. The physical hardware
is known as Physical device.
OS sends instructions to the device handler, which acts as an interpreter between the OS and a particular
device.
The physical devices that a device handler communicates with appear to the O/S as a logical device.
For every physical device there should be a corresponding logical device.
The device handler must be able to perform all the requests that the O/S may pass to it. The O/S does not
know how the device handler performs these requests. This allows a Device handler to work with devices that
do and dont actually exist.
This is what daemon tools takes advantage of in order to mount CD/DVD images (which are just files) and
make them appear as logical drives. Which act just like a real CD.
Logical devices can also be used to create RAM disks, which effectively use a large buffer in RAM to pretend to
be a hard disk. This will appear in My Computer as another Hard Disk, the device driver must be able to
perform (or at least handle) any request that a normal hard disk may be asked to perform (including format!).

The examples given here all related to disk devices, but you could implement any type of logical device.
3.3.1 Function of Operating Systems page 12
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
MEMORY MAPPED I/O
Is a method to control and communication with devices that share the same Address and Data buses as the
CPU.
A nice and simple way of connecting more than one device to the Address and Data buses made possible by
the MMU.
Memory addresses used to refer to registers on device, often by using one memory address to specify the
register to select and another to specify either the data to send to the register or the data read from a register
on the device.
Memory Management Unit (MMU)
Responsible for Mapping Memory addresses to RAM and other devices
Takes addresses specified by the MAR and determines whether the location resides in RAM or whether the
Address maps to another device connected to the Address and Data Buses.
Set blocks of Memory addresses are used to map to locations other than RAM.
These memory addresses usually reside at the very end of the memory addressing range.
MEMORY ADDRESS RANGE MAPPING ASSIGNMENT
0x00000000 0x0000 in BIOS (for booting purposes)
0x00000001 to 0x00000FFF Hardware vectors
0x00001000 to 0x0FFFFFFF RAM
0xF0000000 to 0xF0FFFFFF Graphics RAM on graphics card
0xFF000000 to 0xFF0FFFFF Sound Card RAM
0xFFF00000 to 0xFFF0FFFF I/O buffers
0xFFFF0000 to 0xFFFFFFFF 0x0000 to 0xFFFF of Graphics BIOS ROM

FFFFFC02 maps a register inside the keyboard processor of an ATARI ST
Memory mapped I/0 can be used to do the following operations
Reading & writing registers within a control processor
Reading & writing data I/O ports
Reading memory locations inside ROM chips
Executing code inside ROM chips (passing the address to the PC)
Allowing access to more RAM/ROM through Bank switching (done on Atari VCS, NES, SNES, MegaDrive
etc)
3.3.1 Function of Operating Systems page 13
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Accounting and security
An important task in a multi-user O/S is to keep track of who can do what and who did what.
In order to do this all users need accounts that define the permissions allowed for that user. The actual
permissions possible are dependent on the particular O/S but general sets include those for:
Administrators who have access to all O/S features and facilities
Users who have limited access to features and facilities
Security systems work well and O/S security system are very complex, they are let down by users not
following procedures.
Procedures on multi-user networks
In order to minimise threats caused by user carelessness, policies need to put in place by administrators on
the network:
Encryption and copying policies
Password policies
Acceptable use policies
Program installation blocking for users
Download blocking policies (exe, zip, scripts etc)
Virus scanning of attachments
E-mail spam filtering
USB device policies
Plus many others.
Encryption
A method of coding data so it cannot be read by an unauthorised third party, this process is reversible.
A private key is used to control an algorithm to encrypt the data.
This data can be de-crypted by supplying the key.
Many methods of encryption exist, keys need generally to be at least 128 bits long so that they cannot be
brute forced (broken by simple methods) or broken by examining similar encrypted data.
Some things are encrypted using one way encryption, so they can never be re-read. This is mainly used for
passwords, pin numbers etc
Pin encrypted and held by bank, when you enter your pin this is encrypted and this is compared with
the encrypted version stored at the bank
3.3.1 Function of Operating Systems page 14
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Public key encryption
This is the use of a secret encoding system to prevent hackers from reading data transmitted down a
communications line. The sender uses software to encrypt the data (translate it into the secret code) and
software at the receiving end decrypts it (translates it back to normal text).
Encryption is often used for highly sensitive financial, legal, military and security-related information. The EFT
(electronic funds transfer) system, by means of which banks transfer large amounts of money in electronic
form, is protected by the most advanced encryption techniques.
The ENCRYPTION KEY is the method of translating the message into the code. The DECRYPTION key reverses
this process to return you to the original message.
One problem with encryption is this: how do you tell someone what your decryption key is without it being
intercepted? (You cant send it in encrypted form, as the recipient would already need to know the decryption
key in order to understand it!)

This problem was solved in the 1970s with the invention of PUBLIC KEY ENCRYPTION. The essential features
of this system are:
1. Each individual or organisation has a decryption key, which is used to decipher any messages sent to
them. This decryption key is private -- known only to them.
2. However, the corresponding encryption key for each individual or organisation will be generally known.
3. The complexity of the encryption key is such that it is not possible in practice to work out the decryption
key from it.

Activity logs
Most operating systems the O/S can log in detail many actions performed by users, such as:
What programs have been run by user
What files have been browsed, read, written
How much time spent running programs
What activities have been done with those programs (particularly used with web browsers)
3.3.1 Function of Operating Systems page 15
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
File management
File manipulation
In order to manage file access, you have to have user accounts. Once setup you can give permissions for users
to access and manipulate files in the standard ways.
File and Folder
Create
Read
Delete
Copy
Archiving
Hiding
You can also allow users to view/share have access to certain folders and block others. This is particularly
important on web servers; guest users need browse access to folders with web pages on them.
You may do some of these tasks on your home network to allow a printer to be shared by all the computers
on your network or to allow you to copy/read files from your central computer.
Archiving
Will generally compress files that have not been used for a certain period of time, this can free up disk space.
This is not the same as making a backup. They will still be accessible but it will need to be decompressed as
you open it.
Data Compression
This is a technique for enabling the data in a file to be represented using a smaller number of bits, thus
reducing storage requirements as well as data transmission times. One method involves taking frequently
occurring combinations of characters (e.g. th and ng in English) and replacing them with single character
codes. Another technique, applicable to graphics files, involves representing groups of pixels that are all the
same colour by a pair of numbers, one giving the colour code and the other giving the number of pixels in the
group (as opposed to repeating the colour code for each individual pixel).
3.3.1 Function of Operating Systems page 16
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
File systems, File Allocation Table FAT
The O/S needs to physically store files on the secondary storage device. In order to efficiently access these
files it needs to know about the physical locations. It does this using a File Allocation Table or FAT. The File
allocation system needs to implement security features so files are only accessible by authorised users.
The surface of a disk is split into clusters which allow the storage of a fixed number of bytes. Typical cluster
sizes range from 512bytes up 32Kbytes. The actual size of the clusters depends on 2 things:
Size of the storage device
File system in use (NTFS, FAT, FAT32 etc...)
The File Allocation table is essentially a linked list which identifies the physical clusters used by all the files on
the disk. Each cluster needs a unique address for the FAT. Different FAT systems use a different size integer to
hold the cluster ID.
FAT - FAT(16)
Standard FAT (FAT16) uses a 16 bit unsigned number to identify the clusters, this means you can address
65536 different clusters on the disk.
For a 1GB disk this means that 1GB/65536 = 16384 or 16KB cluster size
FAT16 can have maximum cluster size of 32KB which means it cannot access disk above 2GB.
FAT32
Uses a 32 bit unsigned number to identify clusters (only 28 bits are used tho) which allows a theoretical drive
limit of 8TB (Terra bytes). Microsoft limit this internally to 32GB. So for disk sizes larger than this you need to
use NTFS, which uses a separate type of technology making use of tree structures organised around individual
clusters.
Clusters and Files
Whatever file system we use we try to keep the cluster size a small as possible so that we do not waste
physical drive space.
Example:
If we have a cluster size of 32KB and a file of size 33KB we will require 2 clusters to store this file and that
would mean we waste about 15KB of space (clusters cannot be subdivided). So the physical space occupied by
the file is 33KB but the logical space is actually 64KB. If these sort of files are stored a lot you could potentially
only be using half the physical space on the drive.
In the above example if we had clusters of size 4KB, we would need 9 clusters to store the file, which would
mean we only wasted approximately 3KB of space. The trade of is in choosing an appropriate file system.

It is the job of the File system to make sure we make efficient use of available physical space.
The FAT is usually stored in multiple locations on the disk surface. This is known as redundancy and allows
recovery of files in case a portion of the disk surface is damaged.
3.3.1 Function of Operating Systems page 17
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Fragmentation
In this example FAT we have 4 files stored A, B, C and D
Cluster# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
File A A B B A B A B C C C A D D D
Files C and D are in consecutive clusters, when they are accessed this will be quick as there will not need to be
much mechanical movement of the disk drive (this is relatively slow)
Files A and B are stored in non-consecutive clusters, they are fragmented. There will be a need to move the
disk drive heads or wait for the surface to spin to the correct position under the heads.
As more files are added the fragmentation will get worse as less and less available clusters will be in
consecutive locations.
A defragmenter will try to re-organise the clusters allocated so that files appear in consecutive clusters. This
takes ages.
Deletion of files
Files do not get physically deleted; the cluster allocations in the FAT are added to the list of free clusters ready
to be used again. This is how we can recover data from disks even after they have been formatted. The only
way to prevent recovery is to physically write data over unused clusters.
Boot files
Boot files are a way of getting the operating system loaded.
There are various levels of boot files:
The Master boot record
The master boot record is automatically loaded by the BIOS (Basic Input Output system). This specifies basic
information about the operating system to load such as location of O/S boot files.
Various storage devices can hold Master boot records such as CDs this is how the windows gets installed. If
set to do so the BIOS can be asked to locate master boot records on CD/DVD, USB and across network cards.
This allows flexible O/S loading as well as multi-O/S booting.
The following boot files are specific to the older Windows (pre XP) platforms but similar files exist for other
O/Ss.
Boot.ini
Specifies multi O/S boot options (by default this does not force anything to start-up). If
you have installed multi O/Ss this file will be modified to bring up a boot choice so you
can start the desired O/S.
Win.ini
Contains information about windows settings at boot up, such as desktop settings
AutoExec.Bat
Contains information about applications to run at start-up
Config.sys
Contains driver install information and file buffering settings
3.3.1 Function of Operating Systems page 18
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Scheduling
One of the core functions of the O/S is the management and running of programs and applications.
Process
A Process is a program that requires CPU time in order to fulfil its goals. CPU time is a special case of a
resource, processes need to be allocated CPU time just like they need printers and disk drives.
Task and job are other names that in general mean the same thing as process. Processes can also be
generated by programs themselves, these are called threads and they run independently of the program that
generated them.
On computers with a single CPU, only a single process can execute at any given time.
A modern multi-tasking OS can manage lots of processes, allocating CPU time to each, in order for them to
complete their goals.
Until a process has completed its goals, it is said to be Alive or Live.
While Live a process can be in one of 3 states.

READY
RUNNING
BLOCKED
Blocked by O/S or by user
I/O device available
or Interrupt (wake up)
or O/S unblocked
Device I/O request
or Sleeping
or O/S Suspended process
Time slice completed
Time slice granted

3.3.1 Function of Operating Systems page 19
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Running/Executing
A process has been allocated CPU time and is now being executed.
Ready
A process if given the chance could execute. It is only waiting for the OS to allocate it CPU time.
Blocked/Waiting
Waiting for an I/O device to become available
Waiting for an I/O device request to be completed e.g. File transfer from disk to memory or data that a
process wants to manipulate
Process has gone to sleep (completed the current work it wants to do for now, will wake up later), will be
woken by an interrupt
A process is waiting for some event to happen, and cannot execute until it has occurred.
Once the event that blocked a process has occurred, the process moves on to the ready state.
READY
RUNNING
BLOCKED
Blocked by O/S or by user
I/O device available
or Interrupt (wake up)
or O/S unblocked
Device I/O request
or Sleeping
or O/S Suspended process
Time slice completed
Time slice granted

3.3.1 Function of Operating Systems page 20
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
Process Control Block
Each process has its state stored in a record that is maintained by the OS known as the Process Control Block.
Lots of things are stored in this; here is a selection of the most common items. (Different operating systems
store different things).
Handle a reference to the process
Name of a process
Owner of process (OS or user id) who can control this process
Process state
Allocated CPU time so far
Estimated time to completion (Only really possible with batch processes)
Allocated resources
Memory allocations (see Memory management for more details)
The memory allocations may include:
What pages are occupied by the process code
What pages are occupied by the process data
What pages have been allocated for dynamic data
Scheduling
The scheduler is the name given to a part of the OS that decides which process is allocated CPU time (is next
scheduled to use the CPU).
As the scheduler is part of the OS, it also needs CPU time to execute (remember the OS is a program too!).
Whichever method of scheduling is chosen, the scheduler needs to spend as little time as possible deciding
which process goes next (it will be using up CPU time deciding).
How scheduling works
CPU time is broken into slices, known as time slices
Time slice is achieved by means of a clock, which generates an interrupt at periodic (regular) intervals.
This interrupt tells the OS to hand control to the scheduler (the scheduler is the interrupt handler for this
particular interrupt)
Scheduler saves the state of the current process into its process descriptor block
Scheduler decides which process to run next and allows the CPU to execute it

3.3.1 Function of Operating Systems page 21
Created by E Barwell Spring 2008 rev Autumn 2009, rev Aug 2012
It is important to allocate priorities to all the processes in a system. So that important processes are allocated
more CPU time and so execute more often, this can be achieved by:
Allocating longer time slices to high priority processes
Allocating more time slices to high priority processes
Having ready queues for different priorities
High priority processes include
Crucial OS tasks (such as screen updates)
I/O intensive processes (when the get I/O resources they get a chance to execute before the OS takes the
resources back from them)
Short running processes (whos activity will be over in a short time)
Low priority processes include
CPU intensive processes (ones that dont require any resources other than the CPU time mathematical or
number crunching processes)
Long running processes (whos duration may be very long)
Batch processes (a special case of the above, as they will take ages to execute anyway)
Simple scheduling schemes (how the scheduler decides process to run)
Round Robin
Single queue for ready processes, join back of queue when time up
High priority processes allowed to run more than one time slice at a time
Low priority given a single time slice at a time
Shortest job first
The scheduler picks the processes that will take the smallest amount of time to execute. This involves being
able to estimate the run time of a process. This basically gives priority to little jobs
Shortest time remaining
The scheduler looks at how long a process has run, and picks the one which has the shortest amount of time
left to run. This basically gives priority for jobs that have nearly finished so they can be forgotten about.

Priority queues
A queue for each level of priority
Processes waiting in High priority allocated CPU time first, and so on down to the lowest queue

You might also like