Tuesday, December 11, 2012

Semaphore


In computer science, a semaphore is a variable or abstract data type that provides a simple but useful abstraction for controlling access by multiple processes to a common resource in a parallel programming or multi user environment.
A useful way to think of a semaphore is as a record of how many units of a particular resource are available, coupled with operations to safely (i.e., without race conditions) adjust that record as units are required or become free, and if necessary wait until a unit of the resource becomes available. Semaphores are a useful tool in the prevention of race conditions; however, their use is by no means a guarantee that a program is free from these problems. Semaphores which allow an arbitrary resource count are called counting semaphores, while semaphores which are restricted to the values 0 and 1 (or locked/unlocked, unavailable/available) are called binary semaphores (same functionality that mutexes have).
The semaphore concept was invented by Dutch computer scientist Edsger Dijkstra in 1965, and the concept has found widespread use in a variety of operating systems.

Important observations

When used for a pool of resources, a semaphore does not keep track of which of the resources are free, only how many there are. Some other mechanism (possibly involving more semaphores) may be required to select a particular free resource.
Processes are trusted to follow the protocol. Fairness and safety are likely to be compromised (which practically means a program may behave slowly, act erratically, hang or crash) if even a single process acts incorrectly. This includes:
  • requesting a resource and forgetting to release it
  • releasing a resource that was never requested
  • holding a resource for a long time without needing it
  • using a resource without requesting it first (or after releasing it).
Even if all processes follow these rules, multi-resource deadlock may still occur when there are different resources managed by different semaphores and when processes need to use more than one resource at a time, as illustrated by the dining philosophers problem.

CUI V/S GUI


CUI and GUI are acronyms that stand for different kinds of user interface systems. These are terms used in reference to computers. CUI stands for Character User Interface while GUI refers to Graphical User Interface. Though both are interfaces and serve the purpose of running the programs, they differ in their features and the control they provide to the user. Here is a brief explanation of the two types of user interface for the help of those who do not know about them.


What is CUI?
CUI means you have to take help of a keyboard to type commands to interact with the computer. You can only type text to give commands to the computer as in MS DOS or command prompt. There are no images or graphics on the screen and it is a primitive type of interface. In the beginning, computers had to be operated through this interface and users who have seen it say that they had to contend with a black screen with white text only. In those days, there was no need of a mouse as CUI did not support the use of pointer devices. CUI’s have gradually become outdated with the more advanced GUI taking their place. However, even the most modern computers have a modified version of CUI called CLI (Command Line Interface).


What is GUI?
GUI is what most modern computers make use of. This is an interface that makes use of graphics, images and other visual clues such as icons. This interface made it possible for a mouse to be used with a computer and interaction really became very easy as the user could interact with just a click of the mouse rather than having to type every time to give commands to the computer.


Tuesday, December 04, 2012

Project management


Project management is the discipline of planning, organizing, securing, managing, leading, and controlling resources to achieve specific goals. A project is a temporary endeavor with a defined beginning and end (usually time-constrained, and often constrained by funding or deliverables), undertaken to meet unique goals and objectives, typically to bring about beneficial change or added value. The temporary nature of projects stands in contrast with business as usual (or operations), which are repetitive, permanent, or semi-permanent functional activities to produce products or services. In practice, the management of these two systems is often quite different, and as such requires the development of distinct technical skills and management strategies.
The primary challenge of project management is to achieve all of the project goals and objectives while honoring the preconceived constraints. The primary constraints are scope, time, quality and budget. The secondary —and more ambitious— challenge is to optimize the allocation of necessary inputs and integrate them to meet pre-defined objectives.

Management


Management in all business and organizational activities is the act of getting people together to accomplish desired goals and bjectives using available resources efficiently and effectively. Management comprises planning, organizing, staffing, leading or directing, and controlling an organization (a group of one or more people or entities) or effort for the purpose of accomplishing a goal.Resourcing encompasses the deployment and manipulation of human resources, financial resources, technological resources andnatural resources.
Since organizations can be viewed as systems, management can also be defined as human action, including design, to facilitate the production of useful outcomes from a system. This view opens the opportunity to 'manage' oneself, a pre-requisite to attempting to manage others.

INTERNET


The Internet (or internet) is a global system of interconnected computer networks that use the standard Internet protocol suite (often called TCP/IP, although not all applications use TCP) to serve billions of users worldwide. It is a network of networks that consists of millions of private, public, academic, business, and government networks, of local to global scope, that are linked by a broad array of electronic, wireless and optical networking technologies. The Internet carries an extensive range of information resources and services, such as the inter-linked hypertextdocuments of the World Wide Web (WWW) and the infrastructure to support email.
Most traditional communications media including telephone, music, film, and television are being reshaped or redefined by the Internet, giving birth to new services such as Voice over Internet Protocol (VoIP) and Internet Protocol Television (IPTV). Newspaper, book and other print publishing are adapting to Web site technology, or are reshaped into blogging and web feeds. The Internet has enabled and accelerated new forms of human interactions through instant messaging, Internet forums, and social networking. Online shopping has boomed both for major retail outlets and smallartisans and traders. Business-to-business and financial services on the Internet affect supply chains across entire industries.