Tuesday, 20 January 2015

Multiprocessing

Multiprocessing, in computing, a mode of operation in which two or more processors in a computer simultaneously process two or more different portions of the same program (set of instructions). Multiprocessing is typically carried out by two or more microprocessors, each of which is in effect a central processing unit (CPU) on a single tiny chip. Supercomputers typically combine thousands of such microprocessors to interpret and execute instructions.

The primary advantage of a multiprocessor computer is speed, and thus the ability to manage larger amounts of information. Because each processor in such a system is assigned to perform a specific function, it can perform its task, pass the instruction set on to the next processor, and begin working on a new set of instructions. For example, different processors may be used to manage memory storage, data communications, or arithmetic functions. Or a larger processor might utilize “slave” processors to conduct miscellaneous housekeeping duties, such as memory management. Multiprocessor systems first appeared in large computers known as mainframes, before their costs declined enough to warrant inclusion in personal computers (PCs).

Personal computers had long relied on increasing clock speeds, measured in megahertz (MHz) or gigahertz (GHz), which correlates to the number of computations the CPU calculates per second, in order to handle ever more complex tasks. But as gains in clock speed became difficult to sustain, in part because of overheating in the microprocessor circuitry, another approach developed in which specialized processors were used for tasks such as video display. These video processors typically come on modular units known as video cards, or graphic accelerator cards. The best cards, which are needed to play the most graphic-intensive electronic games on personal computers, often cost more than a bargain PC. The commercial demands for ever better cards to run ever more realistic games, on PCs and video game systems, led IBM to develop a multiprocessor microchip, known as the Cell Broadband Engine, for use in the Sony Computer Entertainment PlayStation 3 and a new supercomputer that included thousands of the microchips.

It must be noted, however, that simply adding more processors does not guarantee significant gains in computing power; computer program problems remain. While programmers and computer programming languages have developed some proficiency in allocating executions among a small number of processors, parsing instructions beyond two to eight processors is impracticable for all but the most repetitive tasks. (Fortunately, many of the typical supercomputer scientific applications involve applying exactly the same formula or computation to a vast array of data, which is a difficult but tractable problem.)


IBM led one effort to address the problem of programming multiprocessor computers through an open source initiative, in which academics, nonprofit organizations, and other corporations contributed advancements. Similar proprietary research was pursued by Microsoft Corporation and Apple Inc.

Multithreading

Multithreading is the ability of a program or an operating system process to manage its use by more than one user at a time and to even manage multiple requests by the same user without having to have multiple copies of the programming running in the computer. Central processing units have hardware support to efficiently execute multiple threads. These are distinguished from multiprocessing systems (such as multi-core systems) in that the threads have to share the resources of a single core: the computing units, the CPU caches and the translation look aside buffer (TLB), where multiprocessing systems include multiple complete processing units, multithreading aims to increase utilization of a single core by using thread-level as well as instruction-level parallelism. As the two techniques are complementary, they are sometimes combined in systems with multiple multithreading CPUs and in CPUs with multiple multithreading cores.

Multiprogramming

A multiprogramming operating system is one that allows end-users to run more than one program at a time. The development of such a system, the first type to allow this functionality, was a major step in the development of sophisticated computers. The technology works by allowing the central processing unit (CPU) of a computer to switch between two or more running tasks when the CPU is idle.
Early computers were largely dedicated to executing one program — or, more accurately, one task initiated by a program — at a time. Understanding the concept of tasks is key to understanding how a multiprogramming operating system functions. A "task" is a small sequence of commands that, when combined, comprises the execution of a running program. For example, if the program is a calculator, one task of the program would be recording the numbers being input by the end-user.

A multiprogramming operating system acts by analyzing the current CPU activity in the computer. When the CPU is idle — when it is between tasks — it has the opportunity to use that downtime to run tasks for another program. In this way, the functions of several programs may be executed sequentially. For example, when the CPU is waiting for the end-user to enter numbers to be calculated, instead of being entirely idle, it may run load the components of a web page the user is accessing.

Multiprogramming

Multiprogramming is a rudimentary form of parallel processing in which several programs are run at the same time on a uniprocessor. Since there is only one processor, there can be no true simultaneous execution of different programs. Instead, the operating system executes part of one program, then part of another, and so on. To the user it appears that all programs are executing at the same time.
If the machine has the capability of causing an interrupt after a specified time interval, then the operating system will execute each program for a given length of time, regain control, and then execute another program for a given length of time, and so on. In the absence of this mechanism, the operating system has no choice but to begin to execute a program with the expectation, but not the certainty, that the program will eventually return control to the operating system.
If the machine has the capability of protecting memory, then a bug in one program is less likely to interfere with the execution of other programs. In a system without memory protection, one program can change the contents of storage assigned to other programs or even the storage assigned to the operating system. The resulting system crashes are not only disruptive, they may be very difficult to debug since it may not be obvious which of several programs is at fault.

Monday, 19 January 2015

Main Functions of an Operating System

A separate module of operating system software performs following functions:

  • Process Management: A process is a program in execution. During execution a process needs certain resources such as CPU time, memory space and I/O devices. At a particular instance of time, a computer system normally consists of a collection of processes. Process management module take care of creation and deletion of processes, scheduling of system resources to different processes requesting them and providing mechanisms for synchronization and communication among processes.
  • Memory Management: To execute a program, it must be loaded in main memory (at least partially) together with the data it accesses. To improve CPU utilization and to provide better response time to its users, a computer system normally keeps several programs in main memory. Memory management module takes care of allocation and de-allocation of memory space to programs in need of  this resource.
  • File Management: All computer systems store, retrieve and share information. Normally, a computer stores such information in units called files. Process read information from files and create new files for storing newly generated information. File management modules takes care of file related activities such as organization, storage, retrieval, naming, sharing and protection of files.
  • Device Management: Normally, a computer system consists of several I/O devices such as terminal printer, disk and tape. The device management module of an operating system controls all I\O devices. It keeps track of I\O requests from processes, issues commands as I\O devices and ensures correct data transmission to\from an I\O device. It also provides a simple and easy interface between the devices and rest of the system.
  • Security: Computer systems often store large amount of information, some of which are highly sensitive and valuable for its users. Users can trust a computer system and rely on it only if its various resources and information stored in it are protected against destruction and unauthorized access. Security modules protects the resources and information of a computer system against destruction and unauthorized access. It also ensures that when the system executes several disjoint processes simultaneously, one process does not interfere with others or with the operating system itself.
  • Command Interpretation: Command interpretation module interprets user commands and directs system resources to process the commands.  

Data Communication

Data communication refers to the exchange of data between a source and a receiver. Data communication is said to be local if communicating devices are in the same building or a similarly restricted geographical area.
The meanings of source and receiver are very simple. The device that transmits the data is known as source and the device that receives the transmitted data is known as receiver. Data communication aims at the transfer of data and maintenance of the data during the process but not the actual generation of the information at the source and receiver.

Datum mean the facts information statistics or the like derived by calculation or experimentation. The facts and information so gathered are processed in accordance with defined systems of procedure. Data can exist in a variety of forms such as numbers, text, bits and bytes. The Figure is an illustration of a simple data communication system.


A data communication system may collect data from remote locations through data transmission circuits, and then outputs processed results to remote locations. Figure provides a broader view of data communication networks. The different data communication techniques which are presently in widespread use evolved gradually either to improve the data communication techniques already existing or to replace the same with better options and features. Then, there are data communication jargons to contend with such as baud rate, modems, routers, LAN, WAN, TCP/IP, ISDN, during the selection of communication systems. Hence, it becomes necessary to review and understand these terms and gradual development of data communication methods.


Components of data communication system

1. Message: It is the information or data to be communicated. It can consist of text, numbers, pictures, sound or video or any combination of these.
2. Sender: It is the device/computer that generates and sends that message.
3. Receiver: It is the device or computer that receives the message. The location of receiver computer is generally different from the sender computer. The distance between sender and receiver depends upon the types of network used in between.
4. Medium: It is the channel or physical path through which the message is carried from sender to the receiver. The medium can be wired like twisted pair wire, coaxial cable, fiber optic cable or wireless like laser, radio waves, and microwaves.
5. Protocol: It is a set of rules that govern the communication between the devices. Both sender and receiver follow same protocols to communicate with each other

A protocol performs the following functions:
1. Data sequencing: It refers to breaking a long message into smaller packets of fixed size. Data sequencing rules define the method of numbering packets to detect loss or duplication of packets, and to correctly identify packets, which belong to same message.
2. Data routing: Data routing defines the most efficient path between the source and destination.
3. Data formatting: Data formatting rules define which group of bits or characters within packet constitute data, control, addressing, or other information.
4. Flow control: A communication protocol also prevents a fast sender from overwhelming a slow receiver. It ensures resource sharing and protection against traffic congestion by regulating the flow of data on communication lines.
5. Error control: These rules are designed to detect errors in messages and to ensure transmission of correct messages. The most common method is to retransmit erroneous message block. In such a case, a block having error is discarded by the receiver and is retransmitted by the sender.
6. Precedence and order of transmission: These rules ensure that all the nodes get a chance to use the communication lines and other resources of the network based on the priorities assigned to them.
7. Connection establishment and termination: These rules define how connections are established, maintained and terminated when two nodes of a network want to communicate with each other.


8. Data security: Providing data security and privacy is also built into most communication software packages. It prevents access of data by unauthorized users.
9. Log information: Several communication softwares are designed to develop log information, which consists of all jobs and data communications tasks that have taken place. Such information may be used for charging the users of the network based on their usage of the network resources.

Thursday, 15 January 2015

Information Systems Security

Computer system threats come in many different forms. Some of the most common threats today are software attacks, theft of intellectual property, identity theft, theft of equipment or information, sabotage, and information extortion. Most people have experienced software attacks of some sort. Viruses, worms, phishing attacks, and trojan horses are a few common examples of software attacks. The theft of intellectual property has also been an extensive issue for many businesses in the IT field. Intellectual property is the ownership of property usually consisting of some form of protection. Theft of software is probably the most common in IT businesses today. Identity theft is the attempt to act as someone else usually to obtain that person's personal information or to take advantage of their access to vital information. Theft of equipment or information is becoming more prevalent today due to the fact that most devices today are mobile. Cell phones are prone to theft and have also become far more desirable as the amount of data capacity increases. Sabotage usually consists of the destruction of an organization′s website in an attempt to cause loss of confidence to its customers. Information extortion consists of theft of a company′s property or information as an attempt to receive a payment in exchange for returning the information or property back to its owner. There are many ways to help protect yourself from some of these attacks but one of the most functional precautions is user carefulness.

Governments, military, corporations, financial institutions, hospitals and private businesses amass a great deal of confidential information about their employees, customers, products, research and financial status. Most of this information is now collected, processed and stored on electronic computers and transmitted across networks to other computers.

Should confidential information about a business' customers or finances or new product line fall into the hands of a competitor or a black hat hacker, a business and its customers could suffer widespread, irreparable financial loss, as well as damage to the company's reputation. Protecting confidential information is a business requirement and in many cases also an ethical and legal requirement. A key concern for organizations is the derivation of the optimal amount to invest, from an economics perspective, on information security. The Gordon-Loeb Model provides a mathematical economic approach for addressing this latter concern.

For the individual, information security has a significant effect on privacy, which is viewed very differently in different cultures.

The field of information security has grown and evolved significantly in recent years. There are many ways of gaining entry into the field as a career. It offers many areas for specialization including securing network(s) and allied infrastructure, securing applications and databases, security testing, information systems auditing, business continuity planning and digital forensics.