Q:

What is concurrency in operating systems?

A:

Quick Answer

In computer science, concurrency is the execution of several instruction sequences at the same time. In an operating system, this happens when there are several process threads running in parallel. These threads may communicate with each other through either shared memory or message passing.

Continue Reading

Full Answer

Distribution is a form of concurrency where all communication between simultaneous threads is done exclusively via message passing. Distribution is useful because it employs a more lenient scaling of resource consumption, which economizes these resources. Whereas shared memory concurrency often requires a single processor per thread, distribution allows several threads to co-exist and communicate between one another.

Concurrency is also a programming design philosophy. In concurrent programming, programmers attempt to break down a complex problem into several simultaneous executing processes that can be addressed individually. Although concurrent programming offers better program structure than sequential programming, it is not always more practical. In a concurrent system, computations being executed at the same time can diverge, giving indeterminate answers. They system may end in a deadlock if well-defined maxima are not assigned for the resource consumption of each of the executing threads. Thus, to design for robust concurrency in an operating system, a programmer needs to both reduce a problem into individual, parallel tasks and coordinate the execution, memory allocation and data exchange of those tasks.

Learn more about Software

Related Questions

  • Q:

    Why is database design so important?

    A:

    A good database design is important in ensuring consistent data, elimination of data redundancy, efficient execution of queries and high performance application. Taking the time to design a database saves time and frustration during development, and a well-designed database ensures ease of access and retrieval of information.

    Full Answer >
    Filed Under:
  • Q:

    How do you become a business process analyst?

    A:

    Become a business process analyst by obtaining a bachelor's degree in business or computer science, gaining experience in systems development and moving into a junior business analyst position. Additionally, consider obtaining certifications in business analysis or business process analysis.

    Full Answer >
    Filed Under:
  • Q:

    What are the most lucrative college degrees?

    A:

    College degrees in computer science, nursing, management information systems, software engineering and statistics are some of the most lucrative options, based on Kiplinger's 2014 to 2015 rankings of college majors. Finance, economics and civil engineering degrees also rank highly.

    Full Answer >
  • Q:

    What is a work instruction template?

    A:

    A work instruction template serves as a guide for business organizations to outline the steps required to perform a particular task through written instructions and visual prompts. This resource is also referred to as a job instruction template, visual work instructions template or operation instruction template.

    Full Answer >
    Filed Under:

Explore