6.1.1 – 6.1.4 – System Resources

6.1.1 – Identify the resources that need to be managed within a computer system

What resources need to be managed within a computer system and why?

System resources

  • Hardware
  • Software
  • Trained personnel
  • Infrastructure

In most cases the Operating System is responsible for successfully managing hardware and software resources

Critical hardware resources include: Primary Memory, RAM and cache memory, ROM, secondary storage, CPU, bandwidth, screen resolution, sound processor, graphics processor network connectivity (NIC card)

Primary Memory RAM

What it does:

Place where all data/programs currently being processed are kept

Common capacities:

Gigabytes (GB): 1/2/4/8/16

Effect on system if too limited:

If too little physical memory exists, the system will need to use secondary storage, which is much slower, by means of virtual memory.

If virtual memory cannot be created or is insufficient, the program/data simply cannot be loaded.

It influences how many processes can be done simultaneously.

Secondary Storage (HDD/SSD/Optical)

What it does:

Place were data/program can be stored if powered is lost (RAM is volatile).

Common capacities:

Gigabytes (GB) / Terabyte (TB):

HDD: 500GB / 1TB / 2TB  

SDD: 256GB / 512GB

Optical: CD 650MB / DVD 4.7GB

Effect on system if too limited:

No place to ‘save’ work – so data might be lost

Can also prevent the OS from using storage as virtual memory if RAM fills up

Limits how much data can be kept

CPU (Processor Speed)

What it does:

Processor does all calculations in a computer system.

Speed is measurement of how many calculations can be done per second (1Ghz = 1 billion calculations per second)

Common speeds:

Gigahertz (GHz): 1/1.2/2/2.4/3.2

Effect on system if too limited:

Processor will take longer to perform tasks

Cores (Processor)

What it does:

Each processor has at least 1 ALU or core. If you have 2 ALUs you can do two operations at once, etc.

Common capacities:

2 core=dualcore,

4=quad,

8=octa

Effect on system if too limited:

If you have only one core, you can only perform one set of operations/calculations at a time.

If you have two or more you can do more calculation in the same time frame.

It affects how many tasks a system can cope with simultaneously.

Cache

What it does:

Contains the instruction/data the CPU is likely to request next from RAM – it massively speeds up processing as the CPU does not have to ‘wait’ for instructions to arrive from RAM.

Common capacities:

Megabytes (MB): 1 to 128

Effect on system if too limited:

CPU will have to ‘wait’ for instructions/data to be fetched from RAM – slowing down system. User experiences ‘sluggish’ system.

Bandwidth (Network Transmission)

What it does:

Measurement of how much data can be sent at same time in a certain time frame (also called bitrate)

Common capacities:

Measured in bits per second (bps): Broadband = 16-100Mbps;
LAN = up to 1Gbps (note: 1 Gbps = 1/8 GBps)

Effect on system if too limited:

Limiting the bandwidth means data will take longer to move between two points.

It affects how long it takes before data can be processed in its entirety.

Memory Bandwidth – the rate at which data can travel from RAM to the processor and vice versa

Screen Resolution

What it is:

Measurement of number of pixels in height x width of display

Common capacities:

1024×768 (XGA)

1366×768 (HD 720p)

1920×1080 (HD 1080p)

4096×2304 (4K)

Effect on system if too limited:

If resolution is too limited, the number of pixels that can be displayed is less (display might be pixelated (blocky) )

Lower resolutions = smaller file size but poorer quality images

Sound Processor

What it does:

Sound reproduction is done by a separate processor, freeing up the CPU to do other calculations.

Can also contain a bank of ‘sampled’ sounds to reproduce better quality music/audio

Commonly seen in:

Sound Cards

Home theatre systems uCinemas

Effect on system if too limited:

CPU is taxed with having to processes sounds, slows down system overall.

Overall quality is not as high as in a system with a dedicated sound processor.

Graphics Processor

What it does:

Does complex graphic processing (like 3D rendering)

Commonly seen as:

Nvidia graphics card

ATI graphics card

Effect on system if too limited:

If CPU has to do graphics processing, it will take longer or be limited.

6.1.2 – Evaluate the resources available in a variety of computer systems

Supercomputers

Extremely fast and expensive

Focus on mathematical calculations

New supercomputers can draw power from more than 30000 processors!

Used for  weather forecasting, molecular modelling, climate research

Great for one large monumental task

Main Frames

Very powerful CPU power

Housed in isolated air conditioned rooms

Vast amounts of RAM

Arrays of disks

Able to handed very high volumes of input / output and run lots of different applications / processes concurrently

Use for things such as: Large scale transaction processing, consumer statistics, bulk data processing

More bulk data compared to Supercomputers or dealing with instructions from many users.

Great for dealing with huge amounts of smaller tasks (Transactions as an example)

Servers / Server Farm

Many high spec PCs running in parallel (3-4GHz)

Primary memory: Big capacity (32GB+ per machine)\

Secondary memory: Terabyte per machine

Used to serve networks and as data centers for cloud storage

Size varies according to use

PC’s

Can be used in offices/homes and are very widespread

Processor speeds vary from 1.5 GHZ to 4GHZ

Can be upgraded (adding more RAM/ Independent Graphics card etc)

Tablets / NetBooks

Simplified version of a laptop

Runs a more simplified OS compared to laptops

Great Battery life

Relatively cheap

Cell Phones

More widespread that any other communication device

Persistent storage can be easily upgraded via MicroSD card

Year on year they become more powerful and are quickly catching up with some of the more powerful devices (Laptop, Cameras, Video Cameras etc)

Still limited in terms of the screen size & input method (no keyboard)

Digital Cameras

Expandable storage memory via the use of an SD card

Due to the widespread use of camera photography, Digital cameras as now reserved for higher end or professional photography

6.1.3 – Identify the limitations of a range of resources in a specified computer system

Looking at the above we can see the role in each component for each type of computer/device in terms of creating a balanced system for the intended task.

It is however, also very important to determine the difference between a MultiCore and Multiprocessor System.

Multicore System

It is a single computing component with two or more separate processing units called cores. These cores can individually read and execute program instructions. It means that the system has one CPU with multiple cores. They work in such a way that it feels like the computer system has several processors but in reality, they are the cores and not processors. The instructions that can be executed by these cores are normal CPU instructions like add, move data and branch.

In a multicore system, a single processor can run several instructions at the same time and this, in turn, increases the overall speed of the program execution in the system. It lessens the heat generated by the CPU and increases the speed of execution of instructions. These multicore processors are widely used in many domains like general-purpose, embedded, network, and graphics(GPU).

The performance of a multicore system totally or majorly depends on the software algorithms that are used for the implementation of the cores in the multi-core system. More focus is given to make those Softwares that can run parallelly because we want to achieve parallel execution with the help of multiple cores.

Advantages:

  • Since multiple CPU cores are placed on the same die, so in this case, cache coherency will be higher.
  • It allows higher performance at lower energy because the cores are very energy efficient.

Disadvantages:

  • If you are using a dual-core system, then its speed should be double than the single-core but in reality, you will get 70-80% more speed only.
  • Not every Operating System supports multi-core.

Multiprocessor System

As we know that in a uni-processor system, the processor can execute only one process at a time. But when your system is having a lot of work to do and one processor is very less to perform all those work in the required unit of time, then we can use more than one processors in the same system.

So, two or more processors present in the same computer, sharing the system bus, memory, and other I/O is said to be Multiprocessing System.

Suppose, we are having 5 processes P1, P2, P3, P4, and P5. In a uni-processor system, only one process can be executed at a time and after its execution, the next process will be executed and so on. But in a multiprocessor system, the different process can be assigned to different processors and this, in turn, decreases the overall process execution time by the system. A dual-processor system can execute two processes at a time while a quad-processor can execute four processes at a time.

Advantages of Multiprocessing

  • Since more than one processors are working at a time, so more work is done in a shorter period of time. Throughput will be increased. You can read more about throughput from here.
  • We have more than one processor, so if one processor is not working then the job can be done with the help of other processors. This, in turn, increases reliability.
  • If you are providing lots of work on one processor then it will result in more battery drain. But if the work is divided into various processors then it will provide a better battery efficiency.
  • Multiprocessing is an example of true parallel processing i.e. more than one processes executing at the same time.

Disadvantages of Multiprocessing

  • As more than processors are working at a particular instant of time. So, the coordination between these is very complex.
  • Since, the buses, memory, and I/O devices are shared. So, if some processors are using some I/O then another processor has to wait for its turn and this will result in the reduction of throughput.
  • To have the efficient working of all the processors at a time, we need to have a large main memory and this, in turn, increase the cost.

Multicore System vs Multiprocessor System

We have seen what a multicore system and a multiprocessor system is. These are two different things. The only common thing that they share is both want to increase the processing speed of the system by executing more than one processes at a time. Some of the differences between these two are:

  • In a multicore system, we have only one CPU and multiple cores are present in that CPU. While in a multiprocessor system, we have more than one CPU.
  • Since the multicore system contains only one CPU, so the cost of the multicore system is lower as compared to the multiprocessor system.
  • If you want to run a single program then the multicore system will be faster. But if you are running multiple programs then the multiprocessor system will be faster.

https://afteracademy.com/blog/what-is-the-difference-between-a-multicore-system-and-a-multiprocessor-system

Multicore executes a single program faster. On the other hand, multiprocessor executes multiple programs faster.

Latest computers have multiple CPUs each with multiple cores to read and execute several instructions at a time.

6.1.4 – Describe the possible problems resulting from the limitations in the resources in a computer system

30-40 years ago very few computers could process more than one program at a time

Single program operation

This was the most common and the loading/running of these programs was run under a simple OS such as MS-DOS. Resources like today were not available and it took a long time to complete tasks that needed more than a single program to run.

This was a 5mb hard drive in the 1950’s *Note the forklift!*

As computer systems became more sophisticated and complex an operation called batch processing appeared.

Batch Processing

Tasks put together as a group and then run one at a time in a queue without any user intervention (Just imagine leaving something to do its think on its own and not have to intervene every 2 minutes !)

Computer technology then moved forward to Multi Programming

Multi Programming

Two or more programs are loaded into the main memory

One program is run at a point in  time.

BUT If current program is performing something that doesn’t require the CPU (example -waiting for input) it gives control to the next program

This minimizes the IDLE time of the CPU!

Even with this technology if all programs are CPU intensive the program at the end of the queue needs to wait until the end.

Given the example “If 1 is a short task, 2 a large task and 3 a small task”

It will complete task 1 quickly however task 2 will take considerable time to complete as it is much larger and result in task 3 having to wait to be completed. (or even not at all) This is known as starvation.

It can be said that Multiprogramming would be unbounded waiting as essentially a program could be waiting for an infinite amount of time

There were also problems with memory fragmentation (inefficient use of storage as programs move to and from memory )

The next technology to emerge was …..

Multi-tasking

In Multi- tasking each process is given a set amount of time.

It is important though to understand that Multi-Tasking deals with tasks or processes and not whole programs unlike Multi Programming.

For example maybe there are 3 processes Task 1 – Small, Task 2 -Large and Task 3 small.

Each process regardless of its size will be given the same amount of processing time.

This will be known as bounded time as the intervals are fixed (unlike Multiprogrammings unbounded waiting) and eliminates the issues of previously mentioned ‘starvation.

MultiProgramming vs Multi-tasking Battle!

So say for example we were using our home computer.

We are writing an essay (MS Word), Browsing the Internet for research and listening to our favourite music.

Using Multiprogramming we can start to experience latency issues such as typing on the keyboard and it not appearing straight away.

When you use Multitasking though each process has a set amount of time therefore it will give the illusion that things are happening simultaneously.

Multi Processing

Multi Processing (done by the CPU) would refer to Hardware (As the CPU is hardware!!)

Multiprogramming and multitasking are both examples of software!

A system can be Multiprocessing as well as multiprogramming or multitasking!

For an in depth explanation on Multi Processing please refer back up to 6.1.3

MultiThreading

The ability of a program or an operating system to execute different part of a program called threads simultaneously.

The program has to be specially designed by the programmer so that all threads can be executed at the same time without interference from each other.

Several threads from the same process can share the CPU

Multithreading is mainly used with a program with a graphical user interface (GUI)

If the user carried out a complex task the GUI may freeze.

Multithreading allows the complex task to be carried out and the user still being able use the GUI

The difference between Multi tasking and Multi threading

The basic difference between multitasking and multithreading is that in multitasking, the system allows executing multiple tasks at the same time, whereas, in multithreading, the system executes multiple threads of the same or different processes at the same time

Multi Access

A computer system in which computational and data resources are made available simultaneously to a number of users who access the system through terminal devices.

A multiaccess computer system may consist of only a single central processor connected directly to a number of terminals (that is, a star configuration), or it may consist of a number of processing systems which are distributed and interconnected with each other as well as with the user terminals. The primary purpose of multiaccess computer systems is to share resources. The resources being shared may be simply the data-processing capabilities of the central processor, or they may be the programs and the data bases they utilize. The earliest examples of the first mode of sharing are the general-purpose, time-sharing, computational services. Examples of the latter mode are airlines reservation systems in which it is essential that all ticket agents have immediate access to current information.