Linux Device Drivers (3rd Edition) [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Linux Device Drivers (3rd Edition) [Electronic resources] - نسخه متنی

Jonathan Corbet, Greg Kroah-Hartman, Alessandro Rubini

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید








Chapter 5. Concurrency and Race Conditions


Thus far, we have paid little attention to the problem of
concurrencyi.e., what happens when the system tries to do more
than one thing at once. The management of concurrency is, however,
one of the core problems in operating systems programming.
Concurrency-related bugs are some of the easiest to create and some
of the hardest to find. Even expert Linux kernel programmers end up
creating concurrency-related bugs on occasion.

In early Linux kernels, there were relatively few sources of
concurrency. Symmetric multiprocessing (SMP) systems were not
supported by the kernel, and the only cause of concurrent execution
was the servicing of hardware interrupts. That approach offers
simplicity, but it no longer works in a world that prizes performance
on systems with more and more processors, and that insists that the
system respond to events quickly. In response to the demands of
modern hardware and applications, the Linux kernel has evolved to a
point where many more things are going on simultaneously. This
evolution has resulted in far greater performance and scalability. It
has also, however, significantly complicated the task of kernel
programming. Device driver programmers must now factor concurrency
into their designs from the beginning, and they must have a strong
understanding of the facilities provided by the kernel for
concurrency management.

The purpose of this chapter is to begin the process of creating that
understanding. To that end, we introduce facilities that are
immediately applied to the scull driver from
Chapter 3. Other facilities
presented here are not put to use for some time yet. But first, we
take a look at what could go wrong with
our
simple scull driver and how to avoid these
potential problems.


    / 202