As a result of their nature and purpose, computers have often been used for criminal purposes, or in a way which endangers the users. In addition, the limits of computer technology in the modern day affects our lives, and will continue to do so in the future. An important act regarding appropriate computer use is the Computer Misuse Act 1990, which is a legal framework in order to punish accessing others' data without permission (often through using someone else's login) at its most basic level, but with more severe punishments if further crimes were committed (such as that person's password being distributed) and at its most severe changing data. This act is used to protect against computer use without permission, often through the use of hacking which involves breaking into computer systems, or cracking which refers to breaking codes in software, often with the view of changing the code or distributing the software.
Another key piece of legislation is the Data Protection Act of 1984 and 1998, which focusses around eight key principles: gathering, purpose, quantity, lifetime, individual rights, internal security and external security. These principles aim to make it the case that any data collected is not done so in an untruthful way, is not inappropriate (e.g. a Credit Card limit on a school questionnaire), is not excessive (more that the organization needs), can be requested or deleted by the subject at any time, will be disposed of once the organization is finished with the data, is not collected for an unsavoury purpose, is secure, and will not be transferred to a country with fewer or no data protection laws.
The Regulation of Investigatory Powers Act 2000 prohibits the interception of messages whether public or private, and defines to what extent and under what conditions intelligence agencies can monitor individuals. Without sufficient grounds and permission of the Secretary of State these agencies are not allowed to do so, but if they believe that an individual has engaged or is engaging in some kind of criminal activity across the internet then they may be able to intercept e-mails, telephone calls, internet traffic and texts in transit. They can also force ISPs to comply, even through making ISPs give them encryption keys to decrypt the data being transferred which would otherwise not be understandable. Lastly they access messages after they have reached the recipient, as at this point they are protected by the Data Protection Act.
The Copyright, Designs and Patents Act consists of copyright of intellectual property which protects media such as films or music, in addition to the protection of designs and as such a certain aesthetic or way something works, patents which refer to ideas, and trademarks such as a name or logo. Copyrighted items may only be used with permission of the author.
One last piece of legislation is the Health and Safety (Display Screen Equipment) Regulations of 1992, which protects workers who use computers for prolonged periods of time. The main provisions this act consists of are an appropriate position and posture in order to prevent Repetitive Strain Injury, fatigue or damage to the back - as well as complimentary eye tests for these staff, and appropriate software design in order to prevent straining the eyes through looking at clashing colours or small fonts, as well as minimizing the number of clicks needed to do something.
In the past software and media companies have often utilised Digital Rights Management in order to combat piracy and protect copyright. This consists of constraints in order to control how something is used, what machine it is used on, what piece of software it is used in (if it is music), and controls to prevent copying and distribution as well as limit how many times something can be installed (if it is software). In addition it will stop changes being made to the coding. The type of software this protects is known as proprietary software, and generally involves a licence to use which may dictate things such as how many times the software can be installed and if backup copies can be made. The opposite of this is free software such as the Linux operating system, which is open source, and as such one can make modifications to the coding and redistribute it, but not to make a profit.
Another way we are controlled outside of the law is through the code of conduct of an organization, which will limit our activities on computers. It is a behaviour policy, and if broken disciplinary action such as sacking may be taken, but no legal action unless a crime has been committed using their computers. It may contain rules such as not accessing a personal e-mail account on a work computer, not accessing others' accounts, and not installing software.
Robots also currently have and will continue to have an effect on society. They can be used in extreme environments, can conduct laborious tasks without assistance, make fewer mistakes, and may minimize risk to human life. In addition they can be used to explore places beyond the reach of humans (e.g. Mars). They are not fully independent however, and require human instructions in the form of programs due to an incapability to think or make decisions. Furthermore they can only conduct specific tasks that they are programmed to do, and cannot conduct these tasks if obstacles are met.
To conclude, computers have many positive effects in life, such as freedom of information and access to more information than before. In addition computers have been used to advance society. There are downsides however, such as reducing the social capability of individuals if they become obsessed with their use, the spread of false information or rumours, crime over the internet, and other individual social factors such as obesity due to a lack of exercise because of excessive computer use.
Tuesday, 14 December 2010
Friday, 10 December 2010
Stored Program Concept
The stored program concept refers to how programs are loaded from memory and executed. Initially they will be contained in secondary storage (e.g. a hard drive or on a DVD). The sequence of instructions that make up the program are then transferred to main memory (i.e. the RAM). As they are required these instructions are fetched and decoded, and subsequently executed by the processor. These instructions within the main memory can be replaced at any time. Each instruction is treated as data by the processor.
Wednesday, 8 December 2010
Hexadecimal
Another way to represent numbers in addition to binary and denary (base 10) is through using hexadecimal. This system is often used to represent machine code or binary op-codes, and the digits 0-9 retain their normal meanings when used as integers, but letters A-F represent the numbers 10 to 15. Each hexadecimal letter is worth 16 times what that digit would have been worth one place to the right. For example, AA would equal 170 (16x10 + 10).
Worked example: 212
Converted into binary, 212 = 11010100. Next we look at the first four and last four digits of this binary number separately. The first four which represent 208, which is 13 x 16. The other four represent 4. As such this number becomes D4.
Tuesday, 30 November 2010
Machine Level Architecture (Part 2 of 2)
Continuing on from my post about the CPU and Processor, there are four main factors that affect the speed of the CPU. Clock speed refers to 'ticks' of an internal clock, often one but possibly more per instruction. A faster clock results in instructions being executed at a faster rate, making the processor faster. Bus width refers to the number of wires that the bus (in the context the data bus) is comprised of. A wider bus results in a faster data transfer rate, data being broken down into fewer pieces and faster performance overall. Word length is the number of bits passed through the bus, and is often 32 or 64 bit. Large words are broken down into pieces to be transmitted through the bus. Lastly, if the CPU contains multiple processors this results in a greater number of instructions being conducted in the same amount of time. For example if a CPU contains two cores then it will be able to do the same amount of operations in half of the time that a CPU of the same clock speed with one core takes.
Machine Code Operations refer to operations in binary which are conducted on other binary numbers. High level programs such as Virtual Basic are converted into Machine Code, and executed. The machine code instructions will be comprised of an operation code (the instruction itself) and the operand (the subject of the operation). Each operation code has a unique binary number. There are three main operations:
-LOAD: load data from a specific memory location, and clear the current accumulator value (e.g. LOAD 5 would correspond to loading data from memory location 5).
-STORE: store the accumulator's current value in a memory location (e.g. STORE 5 would correspond to storing the accumulator's value in memory location 5, wiping the memory location's previous location).
-ADD: add to the total currently stored in the accumulator; may be a real number in which case a # is used (e.g. ADD #5) or a number from a memory location (e.g. ADD 5).
These instructions as well as others form the Fetch/Execute cycle in the CPU. Instructions are fetched (obtained) from main memory, and decoded (converted so that they can be understood by the processor), then executed. This cycle is made up of registries:
-Program Counter: contains the address of the subsequent instruction
-CIR: stores instructions in use during decoding and execution
-MAR: stores the address of the memory being accessed by the processor at that point
-MBR: contains data being transferred to or from the memory address contained in the MAR
-Accumulator: contains the output of the instructions after execution
They are often written in a notation like below (inequalities are used as arrows):
-PC + 1 < PC
-PC < [PC] + 1
-MAR < [PC]
-MBR < [MAR]
-CIR < [MBR]
-ACU < [CIR}
Machine Code Operations refer to operations in binary which are conducted on other binary numbers. High level programs such as Virtual Basic are converted into Machine Code, and executed. The machine code instructions will be comprised of an operation code (the instruction itself) and the operand (the subject of the operation). Each operation code has a unique binary number. There are three main operations:
-LOAD: load data from a specific memory location, and clear the current accumulator value (e.g. LOAD 5 would correspond to loading data from memory location 5).
-STORE: store the accumulator's current value in a memory location (e.g. STORE 5 would correspond to storing the accumulator's value in memory location 5, wiping the memory location's previous location).
-ADD: add to the total currently stored in the accumulator; may be a real number in which case a # is used (e.g. ADD #5) or a number from a memory location (e.g. ADD 5).
These instructions as well as others form the Fetch/Execute cycle in the CPU. Instructions are fetched (obtained) from main memory, and decoded (converted so that they can be understood by the processor), then executed. This cycle is made up of registries:
-Program Counter: contains the address of the subsequent instruction
-CIR: stores instructions in use during decoding and execution
-MAR: stores the address of the memory being accessed by the processor at that point
-MBR: contains data being transferred to or from the memory address contained in the MAR
-Accumulator: contains the output of the instructions after execution
They are often written in a notation like below (inequalities are used as arrows):
-PC + 1 < PC
-PC < [PC] + 1
-MAR < [PC]
-MBR < [MAR]
-CIR < [MBR]
-ACU < [CIR}
Monday, 29 November 2010
Boolean Algebra
This is a quick post to sum up a few points about Boolean Algebra - a way to represent logic gates algebraically.
-AND is represented as a full stop/dot
-OR is represented as a + symbol
-NOT is represented as a line above the input or the whole equation
Using DeMorgan's laws we can convert equations, and through using these conversions we make everything the opposite and as such, A+B would become NOT over the equation, (NOT A . NOT B). These can be a useful way to convert these expressions, as they can simplify them. Lastly is the order of operations, as unless the OR symbol is in a bracket, then the AND is done first. As such A+B.C = A+(B.C) and not (A+B).C.
-AND is represented as a full stop/dot
-OR is represented as a + symbol
-NOT is represented as a line above the input or the whole equation
Using DeMorgan's laws we can convert equations, and through using these conversions we make everything the opposite and as such, A+B would become NOT over the equation, (NOT A . NOT B). These can be a useful way to convert these expressions, as they can simplify them. Lastly is the order of operations, as unless the OR symbol is in a bracket, then the AND is done first. As such A+B.C = A+(B.C) and not (A+B).C.
Machine Level Architecture (Part 1 of 2)
In my computing lesson today I learned about some of the important concepts relating to the CPU (Central Processor Unit), what it is comprised of and what its functions are. The basics of the CPU can be summarised in von Neumann's 'Three Box Model' from 1945 (shown below).
The three main components:
-The Processor
-The Main Memory
-Inputs/Outputs (to the processor)
These three components are connected by a bus.
The processor interprets and executes programs which are sets of instructions. Each microprocessor may contain up to one billion transistors/logic gates. The main memory is comprised of the ROM where bootstrap (load-up) information is kept, and the RAM which is a volatile storage medium used by the processor to temporarily store information and as such this information is lost after the computer is turned off. Together these two make up what is known as Immediate Access Memory, because it can be quickly accessed by the processor. The I/O allows the processor to communicate with other devices (external peripherals), although they may not understand how these devices function. What are known as I/O devices (peripherals) are connected to the processor through an I/O port from an I/O controller, which results in the processor being compatible with new peripherals. All of these are connected by a bus, which passes information down microscopic wires, each bit passed down a different wire.
At a more fundamental level there are a greater number of components:
-Microprocessor and System Clock
-Hardware Devices and I/O
-RAM and ROM
-Control, Address, and Data Buses
In this form each bus performs a specific function. The Control Bus is generally comprised of 8 wires, and is used to send read, write, timing and reset instructions, and is two way. Secondly, the Address Bus is a one way bus that is used by the processor to specify which location it wants to read/write from. Each location has a different numeric address, meaning that it can be accessed individually. On the other hand, the data bus is used to transfer information between the processor, main memory and inputs/outputs. Running programs and storing data involves reading from and writing to the main memory (to fetch and obtain instructions in machine code), and the data bus handles this. The microprocessor executes instructions, whilst the speed of the system clock determines how many instructions are given per second. Its main functions are calculation, execution of instructions, locating components (addresses) and obtaining/sending data.
Inside the processor itself however there are even smaller components, which have even more specific functions. The PCU (Program Control Unit) executes programs separately, whilst the ALU (Arithmetic Logic Unit) carries out the instructions executed by the PCU, operating on data, and the Accumulator retains the data which is currently being operated on. Similar to their equivalents in the overall CPU, the processor contains a clock that also has a purpose relating to speed, and an internal bus allowing the components to communicate. Registers are also contained in the processor, and these are special memory for the processor's use. They may be 'dedicated' (and as such have a single, defined purpose in their design) or 'general purpose' and as such can be used to store data provisionally.
The three main components:
-The Processor
-The Main Memory
-Inputs/Outputs (to the processor)
These three components are connected by a bus.
The processor interprets and executes programs which are sets of instructions. Each microprocessor may contain up to one billion transistors/logic gates. The main memory is comprised of the ROM where bootstrap (load-up) information is kept, and the RAM which is a volatile storage medium used by the processor to temporarily store information and as such this information is lost after the computer is turned off. Together these two make up what is known as Immediate Access Memory, because it can be quickly accessed by the processor. The I/O allows the processor to communicate with other devices (external peripherals), although they may not understand how these devices function. What are known as I/O devices (peripherals) are connected to the processor through an I/O port from an I/O controller, which results in the processor being compatible with new peripherals. All of these are connected by a bus, which passes information down microscopic wires, each bit passed down a different wire.
At a more fundamental level there are a greater number of components:
-Microprocessor and System Clock
-Hardware Devices and I/O
-RAM and ROM
-Control, Address, and Data Buses
In this form each bus performs a specific function. The Control Bus is generally comprised of 8 wires, and is used to send read, write, timing and reset instructions, and is two way. Secondly, the Address Bus is a one way bus that is used by the processor to specify which location it wants to read/write from. Each location has a different numeric address, meaning that it can be accessed individually. On the other hand, the data bus is used to transfer information between the processor, main memory and inputs/outputs. Running programs and storing data involves reading from and writing to the main memory (to fetch and obtain instructions in machine code), and the data bus handles this. The microprocessor executes instructions, whilst the speed of the system clock determines how many instructions are given per second. Its main functions are calculation, execution of instructions, locating components (addresses) and obtaining/sending data.
Inside the processor itself however there are even smaller components, which have even more specific functions. The PCU (Program Control Unit) executes programs separately, whilst the ALU (Arithmetic Logic Unit) carries out the instructions executed by the PCU, operating on data, and the Accumulator retains the data which is currently being operated on. Similar to their equivalents in the overall CPU, the processor contains a clock that also has a purpose relating to speed, and an internal bus allowing the components to communicate. Registers are also contained in the processor, and these are special memory for the processor's use. They may be 'dedicated' (and as such have a single, defined purpose in their design) or 'general purpose' and as such can be used to store data provisionally.
Tuesday, 16 November 2010
Logic Gates
Logic gates are used within the digital circuits in computers, and conventional electrical circuits for many uses. Millions of them will be in a processor, used to add binary digits (1s and 0s). Their primary function involves one or two inputs and an output, and the output produced is dependent on the input and the nature of the gate. The inputs and output will be either true or false (i.e. a 1 or 0), which may be transmitted through the wire as a high/low voltage or as ons and offs. These combinations of different values of inputs and the corresponding outputs are represented in truth tables. Each type of logic gate has its own truth table.
What are known as Half-Adders and Full-Adders contain logic gates, and these are what are found in processors to add binary digits. A Half-Adder uses two inputs, an XOR gate and an AND gate, and is used two add two digits, and carry over that number two the next adder. On the other hand, a Full-Adder adds three bits, and is comprised of three inputs, two XOR gates, two AND gates and an OR gate. They also produce a sum and a carry. In processors many of these adders will be used to perform simple calculations.
What are known as Half-Adders and Full-Adders contain logic gates, and these are what are found in processors to add binary digits. A Half-Adder uses two inputs, an XOR gate and an AND gate, and is used two add two digits, and carry over that number two the next adder. On the other hand, a Full-Adder adds three bits, and is comprised of three inputs, two XOR gates, two AND gates and an OR gate. They also produce a sum and a carry. In processors many of these adders will be used to perform simple calculations.
AND gate | Both inputs must be true for the output to be true. |
| |||||||||||||||||||
OR gate | Used to express that either input or both being true will give an output that is true. |
| |||||||||||||||||||
NOT gate | The input must be false for the output to be true. These logic gates will only have one output. |
| |||||||||||||||||||
XOR gate (extended OR) | Used to express that either output but not both being true will give an output that is true. |
| |||||||||||||||||||
NAND gate (not AND) | As long as both of the inputs aren’t true then the outputs won’t be true. |
| |||||||||||||||||||
NOR gate (not OR) | Only if both inputs are false will the output be true. |
| |||||||||||||||||||
XNOR gate (extended NOR) | If neither or both of the inputs are true, then the output will be true. Therefore, if one input is true and the other is false then the output will be false. |
|
Tuesday, 2 November 2010
Secondary Storage Methods
Subscribe to:
Posts (Atom)