Skip to Content
Linuxカーネルプログラミング 第2版
book

Linuxカーネルプログラミング 第2版

by Kaiwan N. Billimoria, 武内 覚, 大岩 尚宏
July 2025
Intermediate to advanced
492 pages
8h 23m
Japanese
O'Reilly Japan, Inc.
Content preview from Linuxカーネルプログラミング 第2版

8章カーネルの同期

本章はカーネルの同期について説明します。マルチスレッド環境でプログラミングをしている開発者であれば、馴染みがあるでしょう。2つ以上のスレッドが書き込み可能なデータを共有する場合には同期が必要です。同期なしで共有データにアクセスすると競合、あるいはレースコンディションが発生します。競合が発生するとデータが不正となり予期しない動作となりえます。これをデータ競合と呼びます。データ競合は複数のスレッド、または割り込み処理により発生します。

純粋なコードは読み込み権限と実行権限(r-x)のパーミッションであればデータ競合は発生しません。複数のCPUから同時の読み込みや実行は、むしろスループット向上のため推奨されます。しかし書き込み可能な共有データは注意が必要です。

8.1 クリティカルセクションと排他実行

マルチコアシステムで複数のコードパスを並列で実行することは望ましいことです。書き込み可能な共有データへのアクセスがあるコードパスの並列実行は、1つのスレッドだけがそのデータにアクセスすることを保証する必要があります。

単純に複数のコードパスが、並列に書き込み可能な共有データ上で動作している場合、データを破壊してしまう可能性があります。

8.1.1 クリティカルセクション

次の2つを満たすコードパスのことをクリティカルセクションと呼びます。

  • 条件1:同時に実行される、つまり並行して実行される可能性がある。
  • 条件2:書き込み可能な共有データを読み書きしている。

つまりクリティカルセクションには並列処理に対する保護が必要です。別の言い方をすると、クリティカルセクションは排他的に、またはアトミックに動作しなければならないコードの一部分です。

排他的に動作するとは、データを安全に扱うために1つのスレッドだけがクリティカルセクションのコードを実行することです。アトミックとは他の処理に割り込まれずに処理を完了するということです。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Gitハンズオンラーニング ―手を動かして学ぶバージョン管理システムの基本

Gitハンズオンラーニング ―手を動かして学ぶバージョン管理システムの基本

Anna Skoulikari, 原 隆文
プロダクトマネージャーのしごと 第2版 ―1日目から使える実践ガイド

プロダクトマネージャーのしごと 第2版 ―1日目から使える実践ガイド

Matt LeMay, 永瀬 美穂, 吉羽 龍太郎, 原田 騎郎, 高橋 一貴
プログラミングRust 第2版

プログラミングRust 第2版

Jim Blandy, Jason Orendorff, Leonora F. S. Tindall, 中田 秀基

Publisher Resources

ISBN: 9784814401109Publisher Website