Thursday, 10 December 2015

Device drivers

Every piece of hard ware makes up the computer or connected to it, will have a device driver that allows the OS to control and communicate with it.There could be hundred of device drivers pre installed with the OS and the right ones for the particular computer set up it loaded on boot up.

device drivers  communicate with the device , e.g a printer driver , The process of how to complete the task if handled by the driver.



Thursday, 3 December 2015

Open Source:


Source code is the raw code produced by developers and defines what they want their software to do. It is written by developers using a programming language such as Java.


Open-source software is the direct opposite of closed source. For software to be open source, you must be able to download the source code and make changes to it as you wish. There is a big difference between free software and open source. Free software does not make the source code available. Open-source code tends to have a lot of developers working on it for free, or being sponsored by a larger company. Anyone can join the community of developers to make changes to the code and upload their changes for the rest of the world to see. If the changes are good, they will be merged into the main source code and all users can benefit. Some famous examples of open-source software are Mozilla Firefox and the Linux kernel.


One of the most common licences is the GNU General Public License (GNU GPL or GPL) (GNU is a recursive acronym that stands for ‘GNU’s not UNIX’). Linux is under this type of license.



A program is free software, for you, a particular user, if:

You have the freedom to run the program as you wish, for any purpose. 
You have the freedom to modify the program to suit your needs. (To make this freedom effective in practice, you must have access to the source code, since making changes in a program without having the source code is exceedingly difficult.) 


Pros:

- Free to use for anyone

- Allows developers to create new programs and ideas that can be implemented on a larger scale

- Continually evolving over time

- Modify software to business practices, not possible with proprietary software


Cons:

- High number of bugs

- Bugs can take time to be fixed developers with less support

- Generally harder to use

- Can have underlying costs

- Source code open to malicious users


Questions:

1, Open source software has the source code available in the public domain for viewing and editing.


2. Off the shelf software can be bought online as a download or in a shop on an optical disk. It is ready to use straight away for general tasks for a wide range of users. It cannot be used for specific tasks. Bespoke software is custom designed for a specific purpose by a company for a client that has a specific request, for example software for business. This generally has less support but features can be added on request.


3. GNOME, Apache, OpenOffice.


4. It is better value for money for the government without being locked into proprietary software. It allows flexibility without extra costs.


5. Benefits: lower costs, easier to add new features, it will evolve continually over time. Issues: lower security issues, source code available to malicious users, little to no support, bugs take a while to be fixed.


6. Licenses are needed to stop people using open source software for commercial reasons and making money off a free to use program. However it also stops malicious users from taking software and not sharing their edits with other users, for example GNU license.

Tuesday, 24 November 2015

Utility software/Programs

Utility software often comes packaged with the os.Its purpose os to ensure it looks after or runs 'house keeping tasks' for the computer devices and prpgrams in the following areas

  • File sorting
  • File renaming
  • File conversion 
  • File repair 
  • disk monitoring and de fragmentation 
  • printing jobs
  • backing up data
  • Anti virus
Utility software helps to manage, maintain and control computer resources. Operating systems typically contain the necessary tools for this, but separate utility programs can provide improved functionality. Utility software is often somewhat technical and targeted at users with a solid knowledge of computers. If you use a computer mostly for e-mail, some Internet browsing and typing up a report, you may not have much need for these utilities. However, if you are an avid computer user, these utilities can help make sure your computer stays in tip-top shape.


A utility programs will have a specific task and so will only do a couple of these jobs

Antivirus software is an example of a utility software , as the name suggests, helps to protect a computer system from viruses and other harmful programs. A computer virus is a computer program that can cause damage to a computer's software, hardware or data. It is referred to as a virus because it has the capability to replicate itself and hide inside other computer files.
One of the most common ways to get a virus is to download a file from the Internet. Antivirus software scans your on line activity to make sure you are not downloading infected files. New viruses are coming out all the time, so antivirus software needs to be updated very frequently.

Benefits

  • Malware protection
    •  fully functioning antivirus program protects computers from malware. Most have a built-in real-time protection to detect malware and either delete or quarantine it.
  • Data protection
    • hackers are known to install spyware on your computer to steal personal information such as passwords, financial data and account information. Antivirus protection software keep a tight leash on the ports hackers are known to open to steal this type of information.
  • Network protection
    • Some of these programs are rogue security programs that try to trick you into purchasing full versions of fake software. Antivirus protection programs are typically accompanied by firewall software, which limits network access to specific programs.








Friday, 20 November 2015

Knowledge base systems

A knowledge base system or expert system looks to mimic human knowledge and experience a particular field , The knowledge base system finds solution to problems with given set of conditions.

Human experts all act in a similar way


  1. someone asks the expert for advice about a particular problem
  2. the expert asks them a series of questions to find the best solution 
  3. keep the dialogue open until more than one solution is found 
  4. prioritise soultions based on budget, time etc
  5. A knowledge base system seeks to replicate this


The knowledge base has four components
  • the human computer interface - this is the system that allows a non-expert user to query (question) the expert system, and to receive advice. The user-interface is designed to be a simple to use as possible.
  • the knowledge base -This is a collection of facts and rules. The knowledge base is created from information provided by human experts
  • the rule base
  • the inference engine - This acts rather like a search engine, examining the knowledge base for information that matches the user's query


Expert system




inference engine is the part of knowledge base system that works out a reasonable solution using the results of the rule base.

Human computer interface is

The NHS choices knowledge base interface asks a series of questions to attempt to find out what kind of illness or pain you are suffering from and what the cause of it is and the solutions etc. It is very good  to find out a general. basis of the injury or illness , the symptoms ,the causes , the treatment and the complications .However if you don't know exactly what you have then it can prove very difficult to find out what it is when using  it for example you can answer the series of questions to get to a certain point when it gives a list of possible injury's or illnesses but there are often so many possibility's  that it can be very difficult to actually find out what it is. Therefore  making the knowledge base only useful up to a certain point before it becomes very difficult to use.

Some more examples of knowledge base systems are


  • diagnostic tool for fixing machinery and vehicles
  • on-line medical systems for diagnosing a problem
  • telephone based help desk
  • finance firm making credit decisions
  • government services such as working out tax benefits

Advantages


  • expert advice all of the time
  • knowledge of an expert can be captured before they move on
  • can be used for staff training to increase expertise of all staff
  • does not get tired or over worked
  • efficient way of getting answers as it is an automated system
  • makes rational decisions without emotional overhead 

Disadvantages


  • only covers a narrow range of knowledge 
  • a lot of effort and cost required to make a good knowledge base system
  • not as good as having human expert hands
  • most systems are menu driven which may not deal well with ambiguous problems
  • advanced interfaces still have some way to go before they can be truly effective
  • can only learn from mistakes if user feedback and human maintenance is part of the on going development.



How to set up an expert system?

To set up an expert computer system you will need a database with information about the different types of issues and the solution to each problem. This will need to be linked to a rule base that will contain the probabilities of each problem happening so the most likely problem will be chosen, an unresponsive computer will most likely be fixed with a reboot and not new hardware. Finally a Human Computer Interface will be needed for the users to interact with the system and the inference engine can query the database / knowledge base. 


Examples of expert systems?

  • Medical diagnosis
  • strategy games (e.g chess against the computer)
  • Providing financial advice - whether to invest in a business, etc.
  • Helping to identify items such as plants / animals / rocks / etc
  • Helping to discover locations to drill for water / oil 
  • Helping to diagnose car engine problems
  • Government tax credits
  • Tax claims
  • Auto pilots 
Drawbacks of expert systems?
  • Can't easily adapt to new circumstances (e.g. if they are presented with totally unexpected data, they are unable to process it)
  • Can be difficult to use (if the non-expert user makes mistakes when using the system, the resulting advice could be very wrong)
  • They have no 'common sense' (a human user tends to notice obvious errors, whereas a computer wouldn't)
  • Can make mistakes, just as humans do – even a low error rate e.g. in the diagnosis of a disease, may cause people to mistrust it
  •  Expert systems do not learn from their mistake – new knowledge has to be entered into the knowledge base as it becomes available
  •  Difficult to acquire all the required knowledge from the human experts in order to build the expert system 


Thursday, 19 November 2015

Microsoft excel

Review of excel 2013

Image result for excel Microsoft Excel is a spreadsheet developed by Microsoft for Microsoft Windows, Mac OS X, and iOS. It features calculation, graphing tools, pivot, and a macro programming language called Visual Basic for Applications. It has been a very widely applied spreadsheet for these platforms, especially since version 5 in 1993

Microsoft Excel has the basic features of all spreadsheets, using a grid of cells arranged in numbered rows and letter-named columns to organize data manipulations like arithmetic operations.  In addition, it can display data as line graphs, histograms and charts, and with a very limited three-dimensional graphical display. It has a programming aspect, Visual Basic for Applications, allowing the user to employ a wide variety of numerical methods, for example, for solving differential equations of mathematical physics, and then reporting the results back to the spreadsheet. It also has a variety of interactive features allowing user interfaces that can completely hide the spreadsheet from the user. 

The simplification of the interface means that some functions have been lost or hidden or have become more complicated to find and use than before. For example Auto Correct features have disappeared from the right click menu so you have to enter a settings menu to add corrections you want to use.

Pros:
  • -          Touch Friendly
  • -           Simple interface
  • -          New useful functions such as importing video and alignment grids
  • -          the ability to organize large amounts of data into orderly, logical spreadsheets and charts
  • -          Excel crunches numbers almost instantly, making batch calculations much easier than working things out yourself with a calculator.
  • -          as part of Microsoft's Office suite, Excel works with almost every other piece of software in Office. Excel spreadsheets can be easily added to Word documents etc.



-          Cons:

  • -          PDF import still has formatting issues
  • -          Its quite hard to understand some areas of the software and getting the full benefit out of it takes a lot of practice
  • -          Excel has no means of checking for human error during data entry, which means that the wrong information can skew all the results
  • -          Manually entering data into Excel can take a very long time -- especially if you have a lot of data to enter.
  • -          While there are several low or no-cost alternatives, getting genuine Microsoft Excel isn't free

Abstraction in its many forms is a fundamental concept used in computational thinking and problem solving
Removing irrelevant details allows the computer scientist to focus on the essence of a problem

Data abstraction is used to create and manipulate complex data structures


Abstraction is Representation of the real world but hiding certain details. The London                      underground maps is a good example of information hiding as the                              tracks are not exact and neither is the location of the stations. It has                              removed unnecessary details that would only create confusion.this is                            called information hiding.
                     Games are also abstract , they try to represent certain aspects of the                          real world but also take out all the so many little details that would                                make it so complicated (simplify it).E.g. raising children in Sims would                            take maybe 5 steps which we know there is a lot more to do.

Problem abstraction - removing details until the problem reduces to one which has already been solved.

Automation – in this context refers to building models of real work objects in order to solve a particular problem Computer scientists have to decide what details are relevant to the problem and discard everything else
Algorithms and data structures can then be designed to solve the problem the algorithm is then implemented in program code and executed

Google moon abstractions
http://www.google.com/moon/ - shows abstraction
It is 2d representation of the moon and the moon isn’t 2d therefore it has been abstracted as making it 3d would require too much data
Landing sites have detailed imaging surrounding them, while the rest of the moon has lower resolution images. The lower resolution images have been 'abstracted'

Decomposition
      Procedural decomposition means breaking a problem into a number of sub-problems, so that each sub-problem accomplishes an identifiable task
      The sub-problems may themselves be further subdivided


Composition is the opposite
·         combining procedures to form a compound procedure
·         Combining data objects to form compound data objects such as a tree or stack (which you will study next year)

Procedural abstraction is used to keep the actual values used in a computation separate from the overall design

Functional abstraction
      When you call a function to calculate a square root, or generate a random number, for example, abstraction is taken one stage further
      Using a function does not require you to know anything about how the computation is carried out
      You simply have to know how to call the function and what parameters to pass

Data Abstraction
The data or information that is relevant to solving a problem may be in the form of an abstract data structure such as an array, stack or queue

It could be implemented as an array and a pointer to the top of the stack – items do not need to be actually removed from the array or sorted within it
OS functions

BIOS

Image result for BIOS
  • this stands for basic input/output system.when it is first switched in it looks into the bios to get it up and running and so the processors program counter points to the Bios memory
  • The Bios will check that the computer is functional , memory is installed and accessible the processor is working.This is called the power- on-self-test (POST). Once this is done it can use a boot loader program to load the operating systems kernel into memory.
  • The BIOS is usually stored on flash memory so that it can be updated, this also allows settings such as boot order of disks to be changed  
Virtual machines
it is possible to write a program that has the same functionality as a physical computer.A common use of virtual machines is to run operating systems within another operating system.This might be because a program is needed that will not run on the host operating system or it might be because it offers a convenient way to test a program being developed.

system virtualisation 
Because virtual machines are just programs and data , they have advantages over physical machines.They can be backed up and duplicated and more than once can be run at one time on physical machine.It is for these reasons that many organisations are virtualising their network infrastructure , making their servers a group of virtual machines running from a cluster of physical machines 


Process virtualisation
Another common of virtual machine is for interpreting intermediate code. intermediate code offers a compromise between these two approaches.A complier converts the source code into something called byte code.This isn't  machine code but is a much more efficient representation than  the original source code.Because it isn't machine code it can be run directly on a processor. instead a virtual machine is used to read the code.this means code can be highly portable , as hardware becomes cheaper and more powerful , virtual machines are likley to become more common place


Tuesday, 3 November 2015

Buffers

  •  A buffer is a small amount of fast memory used as a temporary.
  • The processor can store data to the buffer or receive data from the buffer very quickly and then get on with something else while the storage device takes its time in reading or sending data.
  • Saving data from primary memory to secondary storage has two stages : fill the processor from the buffer and then empty the buffer to storage
  • the system in fine if the buffer can hold all the data that needs to be sent to the storage device however if there is more data than will fit in the buffer , the storage device has to be able to tell the processor that it as used up all the data in the buffer and is ready for more.
Interrupts


  • The storage device sends an interrupt to signal to the processor that it needs attention.When the processor receives an interrupt , it stores it and carries on with what is it doing
  • It checks al the waiting interrupts and services the most important one, in this case the processor would fill the buffer with more data.
  • The use of interrupts is widespread in any computer system.Any device  e.g printer keyboard and can use an interrupt to signal that it needs attention of the processor 








There are a number of different types  interrupts 

I/O interrupt - these are input and output interrupts devices such as the keyboard and mouse demand attention, otherwise your mouse and keyboard inputs would never get a look in

Time interruptSome programs trigger a 'timer interrupt' for example a data-logging application that *has* to read an input sensor every 1 second.Or perhaps a screen recording application that has to read the next screen update.

Program interrupt - software is also allows to issue interrupts to the CPU.For example software has detected that an error has occurred and will issue a software interrupt for the CPU to run somes instructions to try to clear the error 

Hardware commands interrupt -Reset Button pressed,Power Supply failure,Power-down command (screen off, hibernate etc.),These send a physical signal to the CPU via the interrupt chip.







The operating system manages the interrupt.After the execution of an instruction the processor checks to see if an interrupt has occurred if it has the operating system services the interrupt if it more important than the task already being carried out