Computer multitasking ▪ Sale

In computing, multitasking is a method where multiple tasks, also known as processes, are performed during the same period of time. The tasks share common processing resources, such as a CPU and main memory. In the case of a computer with a single CPU, only one task is said to be running at any point in time, meaning that the CPU is actively executing instructions for that task. Multitasking solves the problem by scheduling which task may be the one running at any given time, and when another waiting task gets a turn. The act of reassigning a CPU from one task to another one is called a context switch. When context switches occur frequently enough the illusion of parallelism is achieved. Even on computers with more than one CPU (called multiprocessor machines), multitasking allows many more tasks to be run than there are CPUs. The term "multitasking" has become an international term, as the same word in many other languages such as German, Italian, Dutch, Danish and Norwegian.

Operating systems may adopt one of many different scheduling strategies, which generally fall into the following categories:

Multiprogramming [edit]

In the early days of computing, CPU time was expensive, and peripherals were very slow. When the computer ran a program that needed access to a peripheral, the Central processing unit (CPU) would have to stop executing program instructions while the peripheral processed the data. This was deemed very inefficient. The first computer using a multiprogramming system was the British Leo III owned by J. Lyons and Co.. Several different programs in batch were loaded in the computer memory, and the first one began to run. When the first program reached an instruction waiting for a peripheral, the context of this program was stored away, and the second program in memory was given a chance to run. The process continued until all programs finished running.

The use of multiprogramming was enhanced by the arrival of virtual memory and virtual machine technology, which enabled individual programs to make use of memory and operating system resources as if other concurrently running programs were, for all practical purposes, non-existent and invisible to them.

Multiprogramming doesn't give any guarantee that a program will run in a timely manner. Indeed, the very first program may very well run for hours without needing access to a peripheral. As there were no users waiting at an interactive terminal, this was no problem: users handed in a deck of punched cards to an operator, and came back a few hours later for printed results. Multiprogramming greatly reduced wait times when multiple batches were being processed.

Cooperative multitasking/time-sharing [edit]

The expression 'time sharing' was usually used to designate computers shared by interactive users at terminals, such as IBM's TSO, and VM/CMS. The term time-sharing is no longer commonly used, having been replaced by simply multitasking, and by the advent of personal computers and workstations rather than shared interactive systems. When computer usage evolved from batch mode to interactive mode, multiprogramming was no longer a suitable approach. Each user wanted to see his program running as if it were the only program in the computer. The use of time sharing made this possible, with the qualification that the computer would not seem as fast to any one user as it really would be if it were running only that user's program.

Early multitasking systems used applications that voluntarily ceded time to one another. This approach, which was eventually supported by many computer operating systems, is known today as cooperative multitasking. Although it is now rarely used in larger systems, cooperative multitasking was once the scheduling scheme employed by Microsoft Windows (prior to Windows 95 and Windows NT) and Mac OS (prior to Mac OS X) in order to enable multiple applications to be run simultaneously. Windows 9x also used cooperative multitasking, but only for 16-bit legacy applications, much the same way as pre-Leopard PowerPC versions of Mac OS X used it for Classic applications. The network operating system NetWare used cooperative multitasking up to NetWare 6.5. Cooperative multitasking is still used today on RISC OS systems.

Because a cooperatively multitasked system relies on each process regularly giving up time to other processes on the system, one poorly designed program can consume all of the CPU time for itself or cause the whole system to hang. In a server environment, this is a hazard that makes the entire network brittle and fragile. All software must be evaluated and cleared for use in a test environment before being installed on the main server, or a misbehaving program on the server slows down or freezes the entire network.

Despite the difficulty of designing and implementing cooperatively multitasked systems, time-constrained, real-time embedded systems (such as spacecraft) are often implemented using this paradigm. This allows highly reliable, deterministic control of complex real time sequences, for instance, the firing of thrusters for deep space course corrections.

Preemptive multitasking/time-sharing [edit]

Preemptive multitasking allows the computer system to guarantee more reliably each process a regular "slice" of operating time. It also allows the system to deal rapidly with important external events like incoming data, which might require the immediate attention of one or another process.

Operating systems were developed to take advantage of these hardware capabilities and run multiple processes preemptively. Digital Equipment Corporation was a leader in this. For example, preemptive multitasking was implemented in the earliest version of Unix in 1969, and is standard in Unix and Unix-like operating systems, including Linux, Solaris and BSD with its derivatives.

At any specific time, processes can be grouped into two categories: those that are waiting for input or output (called "I/O bound"), and those that are fully utilizing the CPU ("CPU bound"). In primitive systems, the software would often "poll", or "busywait" while waiting for requested input (such as disk, keyboard or network input). During this time, the system was not performing useful work. With the advent of interrupts and preemptive multitasking, I/O bound processes could be "blocked", or put on hold, pending the arrival of the necessary data, allowing other processes to utilize the CPU. As the arrival of the requested data would generate an interrupt, blocked processes could be guaranteed a timely return to execution.

The earliest preemptive multitasking OS available to home users was Sinclair QDOS on the Sinclair QL, released in 1984, but very few people bought the machine. Commodore's powerful Amiga, released the following year, was the first commercially successful home computer to use the technology, and its multimedia abilities make it a clear ancestor of contemporary multitasking personal computers. Microsoft made preemptive multitasking a core feature of their flagship operating system in the early 1990s when developing Windows NT 3.1 and then Windows 95. It was later adopted on the Apple Macintosh by Mac OS 9.x as an additional API, i.e. the application could be programmed to use the preemptive or cooperative model, and all legacy applications were multitasked cooperatively within a single process. Mac OS X, being a Unix-like system, uses preemptive multitasking for all native applications, although Classic applications are multitasked cooperatively in a Mac OS 9 environment that itself is running as an OS X process (and is subject to preemption like any other OS X process).

A similar model is used in Windows 9x and the Windows NT family, where native 32-bit applications are multitasked preemptively, and legacy 16-bit Windows 3.x programs are multitasked cooperatively within a single process, although in the NT family it is possible to force a 16-bit application to run as a separate preemptively multitasked process. 64-bit editions of Windows, both for the x86-64 and Itanium architectures, no longer provide support for legacy 16-bit applications, and thus provide preemptive multitasking for all supported applications.

Real time [edit]

Another reason for multitasking was in the design of real-time computing systems, where there are a number of possibly unrelated external activities needed to be controlled by a single processor system. In such systems a hierarchical interrupt system is coupled with process prioritization to ensure that key activities were given a greater share of available process time.

Multithreading [edit]

As multitasking greatly improved the throughput of computers, programmers started to implement applications as sets of cooperating processes (e. g., one process gathering input data, one process processing input data, one process writing out results on disk). This, however, required some tools to allow processes to efficiently exchange data.

Threads were born from the idea that the most efficient way for cooperating processes to exchange data would be to share their entire memory space. Thus, threads are basically processes that run in the same memory context. Threads are described as lightweight because switching between threads does not involve changing the memory context.

While threads are scheduled preemptively, some operating systems provide a variant to threads, named fibers, that are scheduled cooperatively. On operating systems that do not provide fibers, an application may implement its own fibers using repeated calls to worker functions. Fibers are even more lightweight than threads, and somewhat easier to program with, although they tend to lose some or all of the benefits of threads on machines with multiple processors.

Some systems directly support multithreading in hardware.

Memory protection [edit]

When multiple programs are present in memory, an ill-behaved program may (inadvertently or deliberately) overwrite memory belonging to another program, or even to the operating system itself.

The operating system therefore restricts the memory accessible to the running program. A program trying to access memory outside its allowed range is immediately stopped before it can change memory belonging to another process.

Another key innovation was the idea of privilege levels. Low privilege tasks are not allowed some kinds of memory access and are not allowed to perform certain instructions. When a task tries to perform a privileged operation a trap occurs and a supervisory program running at a higher level is allowed to decide how to respond.

Memory swapping [edit]

Use of a swap file or swap partition is a way for the operating system to provide more memory than is physically available by keeping portions of the primary memory in secondary storage. While multitasking and memory swapping are two completely unrelated techniques, they are very often used together, as swapping memory allows more tasks to be loaded at the same time. Typically, a multitasking system allows another process to run when the running process hits a point where it has to wait for some portion of memory to be reloaded from secondary storage.

Programming in a multitasking environment [edit]

Processes that are entirely independent are not much trouble to program. Most of the complexity in multitasking systems comes from the need to share computer resources between tasks and to synchronize the operation of co-operating tasks. Various concurrent computing techniques are used to avoid potential problems caused by multiple tasks attempting to access the same resource.

Bigger systems were sometimes built with a central processor(s) and some number of I/O processors, a kind of asymmetric multiprocessing.

Over the years, multitasking systems have been refined. Modern operating systems generally include detailed mechanisms for prioritizing processes, while symmetric multiprocessing has introduced new complexities and capabilities.

See also [edit]

Notes [edit]

  1. But Unix was far later than Digital. The Digital Research Initiative
  2. Technical Note TN2006: MP-Safe Routines
  3. Smart Computing Article - Windows 2000 &16-Bit Applications

Popular search requests

Computer multitasking is an object of interest for many people. For example, the people often search for Computer multitasking website, Computer multitasking blog, Computer multitasking online, Computer multitasking information, Computer multitasking photo, Computer multitasking picture, Computer multitasking video, Computer multitasking movie, Computer multitasking history, Computer multitasking news, Computer multitasking facts, Computer multitasking description, Computer multitasking detailed info, Computer multitasking features, Computer multitasking manual, Computer multitasking instructions, Computer multitasking comparison, Computer multitasking book, Computer multitasking story, Computer multitasking article, Computer multitasking review, Computer multitasking feedbacks, Computer multitasking selection, Computer multitasking data, Computer multitasking address, Computer multitasking phone number, download Computer multitasking, Computer multitasking reference, Computer multitasking wikipedia, Computer multitasking facebook, Computer multitasking twitter, Computer multitasking 2013, Computer multitasking 2014, Computer multitasking in the United States, Computer multitasking USA, Computer multitasking US, Computer multitasking in United Kingdom, Computer multitasking UK, Computer multitasking in Canada, Computer multitasking in Australia, etc.

Computer multitasking is also an object of commercial interest. For example, many people are interested in Computer multitasking offers, Computer multitasking buy, Computer multitasking sell, Computer multitasking sale, Computer multitasking discounts, discounted Computer multitasking, Computer multitasking coupon, Computer multitasking promo code, Computer multitasking order, to order Computer multitasking online, to buy Computer multitasking, how much for Computer multitasking, Computer multitasking price, Computer multitasking cost, Computer multitasking price list, Computer multitasking tariffs, Computer multitasking rates, Computer multitasking prices, Computer multitasking delivery, Computer multitasking store, Computer multitasking online store, Computer multitasking online shop, inexpensive Computer multitasking, cheap Computer multitasking, Computer multitasking for free, free Computer multitasking, used Computer multitasking, and so on.

Information source: wikipedia.org

Do you want to know more? Look at the full version of the Computer multitasking article.

HOT DESIGNS
Premium designs
Designs by country
Designs by U.S. state
Most popular designs
Newest, last added designs
Unique designs
Cheap, budget designs
Design super sale

DESIGNS BY THEME
Accounting, audit designs
Adult, sex designs
African designs
American, U.S. designs
Animals, birds, pets designs
Agricultural, farming designs
Architecture, building designs
Army, navy, military designs
Audio & video designs
Automobiles, car designs
Books, e-book designs
Beauty salon, SPA designs
Black, dark designs
Business, corporate designs
Charity, donation designs
Cinema, movie, film designs
Computer, hardware designs
Celebrity, star fan designs
Children, family designs
Christmas, New Year's designs
Green, St. Patrick designs
Dating, matchmaking designs
Design studio, creative designs
Educational, student designs
Electronics designs
Entertainment, fun designs
Fashion, wear designs
Finance, financial designs
Fishing & hunting designs
Flowers, floral shop designs
Food, nutrition designs
Football, soccer designs
Gambling, casino designs
Games, gaming designs
Gifts, gift designs
Halloween, carnival designs
Hotel, resort designs
Industry, industrial designs
Insurance, insurer designs
Interior, furniture designs
International designs
Internet technology designs
Jewelry, jewellery designs
Job & employment designs
Landscaping, garden designs
Law, juridical, legal designs
Love, romantic designs
Marketing designs
Media, radio, TV designs
Medicine, health care designs
Mortgage, loan designs
Music, musical designs
Night club, dancing designs
Photography, photo designs
Personal, individual designs
Politics, political designs
Real estate, realty designs
Religious, church designs
Restaurant, cafe designs
Retirement, pension designs
Science, scientific designs
Sea, ocean, river designs
Security, protection designs
Social, cultural designs
Spirit, meditational designs
Software designs
Sports, sporting designs
Telecommunication designs
Travel, vacation designs
Transport, logistic designs
Web hosting designs
Wedding, marriage designs
White, light designs

E-COMMERCE DESIGNS
Magento store designs
OpenCart store designs
PrestaShop store designs
CRE Loaded store designs
Jigoshop store designs
VirtueMart store designs
osCommerce store designs
Zen Cart store designs

CMS DESIGNS
Flash CMS designs
Joomla CMS designs
Mambo CMS designs
Drupal CMS designs
WordPress blog designs
Forum designs
phpBB forum designs
PHP-Nuke portal designs

ANIMATED WEBSITE DESIGNS
Flash CMS designs
Silverlight animated designs
Silverlight intro designs
Flash animated designs
Flash intro designs
XML Flash designs
Flash 8 animated designs
Dynamic Flash designs
Flash animated photo albums
Dynamic Swish designs
Swish animated designs
jQuery animated designs

WEBSITE DESIGNS
WebMatrix Razor designs
HTML 5 designs
Web 2.0 designs
3-color variation designs
3D, three-dimensional designs
Artwork, illustrated designs
Clean, simple designs
CSS based website designs
Full design packages
Full ready websites
Portal designs
Stretched, full screen designs
Universal, neutral designs

CORPORATE ID DESIGNS
Corporate identity sets
Logo layouts, logo designs
Logotype sets, logo packs
PowerPoint, PTT designs
Facebook themes

VIDEO, SOUND & MUSIC
Video e-cards
After Effects video intros
Special video effects
Music tracks, music loops
Stock music bank

GRAPHICS & CLIPART
Pro clipart & illustrations, $19/year
5,000+ icons by subscription
Icons, pictograms

 
Computer multitasking Sale - Buy now!
Super Offers
Super Offers
Custom Logo Design $149  ▪  Web Programming  ▪  ID Card Printing  ▪  Best Web Hosting  ▪  eCommerce Software  ▪  Add Your Link
© 1996-2013 MAGIA Internet StudioAboutPortfolioPhoto on DemandHostingAdvertiseSitemapPrivacyMaria Online