Submit Search
Upload
RTOS入門 タスク間同期通信
•
Download as PPTX, PDF
•
0 likes
•
2,287 views
miwarin
Follow
RTOSのタスク間同期・通信について説明。セマフォとイベントフラグ
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 18
Download now
Recommended
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
Masahito Zembutsu
「ZabbixのAPIを使って運用を楽しくする話」 'Serf orchestration with ZABBIX APIs' Serf the Liberator - 始まりの物語 ---- 1. ZABBIX API 超入門 ・シェルで始める ZABBIX API (言語知識不要) 2. Serf と Zabbix の連携 ・Serf とは? ・API を使えば、こんな事が簡単にできるよ! 3. 仕事は楽しいかね? ・ Serf the Liberator 【叛逆の物語】 ---- 第6回 ZABBIX-JP勉強会 http://atnd.org/events/48954 Masahito Zembutsu Apr 12, 2014 , Osaki Tokyo ZABBIX-JP 6th meetup #zabbix_jp
RTOS入門 タスク概要
RTOS入門 タスク概要
miwarin
RTOSのタスクについて説明
AWS RDSでの冗長化
AWS RDSでの冗長化
iPride Co., Ltd.
2023/1/13の勉強会で発表されたものです。
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
.NET Conf Tokyo 2019 にて登壇。 https://vsuc.connpass.com/event/146588/ C# 8.0 の新機能のうち、非同期ストリームと呼ばれるもの(await foreach, await と yield の混在)について説明します。 また、非同期ストリームの内部的な仕組みの説明と合わせて、ValueTask や IValueTaskSource など、Task がらみのパフォーマンス改善の歴史を振り返ります。
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
Kernel/Vm探検隊 online part2. 発表動画: https://youtu.be/brrm328XItM?t=8221
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
2021/02/25(木) Node学園 35時限目の発表資料 https://nodejs.connpass.com/event/203464/ Node.js の ES Modules 対応について
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
DroidKaigi 2019講演資料
Recommended
ZabbixのAPIを使って運用を楽しくする話
ZabbixのAPIを使って運用を楽しくする話
Masahito Zembutsu
「ZabbixのAPIを使って運用を楽しくする話」 'Serf orchestration with ZABBIX APIs' Serf the Liberator - 始まりの物語 ---- 1. ZABBIX API 超入門 ・シェルで始める ZABBIX API (言語知識不要) 2. Serf と Zabbix の連携 ・Serf とは? ・API を使えば、こんな事が簡単にできるよ! 3. 仕事は楽しいかね? ・ Serf the Liberator 【叛逆の物語】 ---- 第6回 ZABBIX-JP勉強会 http://atnd.org/events/48954 Masahito Zembutsu Apr 12, 2014 , Osaki Tokyo ZABBIX-JP 6th meetup #zabbix_jp
RTOS入門 タスク概要
RTOS入門 タスク概要
miwarin
RTOSのタスクについて説明
AWS RDSでの冗長化
AWS RDSでの冗長化
iPride Co., Ltd.
2023/1/13の勉強会で発表されたものです。
Twitterのsnowflakeについて
Twitterのsnowflakeについて
moai kids
C# 8.0 非同期ストリーム
C# 8.0 非同期ストリーム
信之 岩永
.NET Conf Tokyo 2019 にて登壇。 https://vsuc.connpass.com/event/146588/ C# 8.0 の新機能のうち、非同期ストリームと呼ばれるもの(await foreach, await と yield の混在)について説明します。 また、非同期ストリームの内部的な仕組みの説明と合わせて、ValueTask や IValueTaskSource など、Task がらみのパフォーマンス改善の歴史を振り返ります。
WebAssemblyのWeb以外のことぜんぶ話す
WebAssemblyのWeb以外のことぜんぶ話す
Takaya Saeki
Kernel/Vm探検隊 online part2. 発表動画: https://youtu.be/brrm328XItM?t=8221
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Node.js Native ESM への道 〜最終章: Babel / TypeScript Modules との闘い〜
Teppei Sato
2021/02/25(木) Node学園 35時限目の発表資料 https://nodejs.connpass.com/event/203464/ Node.js の ES Modules 対応について
FridaによるAndroidアプリの動的解析とフッキングの基礎
FridaによるAndroidアプリの動的解析とフッキングの基礎
ken_kitahara
DroidKaigi 2019講演資料
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
2021/12/21 PHPerKaigi petit - PHP8.1リリース祝賀会 でのトーク「モダンPHPテクニック 12選 ―PsalmとPHP 8.1で今はこんなこともできる!―」のスライドです。発表時点からごくわずかに加筆修正した部分があります。 https://phperkaigi.connpass.com/event/233022/
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
Docker / Kubernetesのネットワークアーキテクチャの解説と、代表的なCNIプラグインとしてFlannel、Calico、Canal、NSX-T Container Plugin (NCP) を取り上げ、それぞれの実装の比較しています。Japan Container Days v18.12 での講演資料です。
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
Masahito Zembutsu
Docker道場オンライン#1発表資料です。 https://dockerdojo.connpass.com/event/191772/ 配信動画 https://youtu.be/XMw0Ivtfxak
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
分散システムのFault Injectionの話 NTTデータテクノロジーカンファレンス2017で発表する際に用いたプレゼン資料 https://oss.nttdata.com/hadoop/event/201710/index.html
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
Masahito Zembutsu
アプリケーションエンジニアでもわかる Docker と Mesos 勉強会 https://sakura-kanto.doorkeeper.jp/events/53777 2016年11月18日(金) 発表資料 本スライドの想定は 「 Mesos って聞いたことあるけど、よくわかんない 」 「 Apache Mesosって何だ? 」 といった疑問を持つ読者であり Mesos の概念や背景を知るための資料です
Consistent hash
Consistent hash
paulowniaceae
(in japanese)コンシステントハッシュ法の簡単な説明でうす。ネットでググって出てくる以上の内容はありません
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
2021年にインフィニットループ社内の新卒向け研修で使われた資料です。
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
現在のマルチスレッドプログラミングの抱える問題点と、代替案をわかりやすく解説いたします。最近登場したConcurrent Revisionsも解説します。
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
勲 國府田
中小規模のWEBサービスをApacheで運用している方がはじめてApacheチューニングする際にみていただくと良いと思います。
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
Narami Kiyokura
2013/10/12 .NET 勉強会 / ヒーロー島 『ヒーロー島 秋の収穫祭 2013』の同名のセッションの資料です サンプルソースやフォローアップなどはこちら: http://d.hatena.ne.jp/kiyokura/20131014/p1
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
KMC 関東例会での講座の資料 (by @nojima)
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
Satoshi Shimazaki
CloudStack再入門!15分でおさらいするCloudStackの基礎 第19回CloudStackユーザー会in名古屋の発表資料です。
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
学生LT発表コンテンツ
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
「企業のためのDocker実戦ガイド」発表資料 2017年2月27日(月) https://itmedia.smartseminar.jp/public/seminar/view/981
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
Makoto SAKAI
Node-RED UG Osaka勉強会 vol.3 発表資料
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
Kuniyasu Suzaki
第32回コンピュータシステム・シンポジウム(ComSys2020)招待講演で使ったスライドです。TEE(Trusted Execution Environment)のハードウェア実装(Arm TrustZone, Intel SGX, RISC-V Keystone)の解説から、それぞれのTEE上のソフトウェア実装が多く異なる話、仮想化(Arm v8.4AでのTEE内仮想化、Intel TDX: Trusted Domain Extensions、AMD SEV: Secure Encrypted Virtualization)が導入されてくる話をしました。また、TEEに対するアンチテーゼの研究や関連規格などを紹介しました。
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Linux女子部 「Fedora最新技術情報&Systemd勉強会」 http://connpass.com/event/3859/ で使用した資料です。 変更履歴 2013/11/04 ver1.0 初版 2013/11/05 ver1.1 誤植修正、少し追記 2013/11/06 ver1.2 daemon-reload,mask,テンプレート機能を追記 2013/11/12 ver1.3 User/Groupオプションの説明追加 2013/11/24 ver1.4 誤植修正 2014/05/05 ver1.5 imjournalモジュールの説明追加
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
エヴァンス本を読んだことがない人、ネット上の情報を聞きかじったことがある程度の人、そんな人たちを対象に、ドメイン駆動設計について、わかりやすく説明してみました。
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」
AdvancedTechNight
音田 司 BigDataといえば、大規模イベントログ収集は必須!! 簡単、かつ、リアルタイムにログを収集するために、 今、ストリーム転送が注目されています。 そのためのOSSプロダクトとして、 今回は、Javaで開発されている 「FlumeNG」 について、解説します。 本プロダクトはHadoopディストリビューションのCDHでサポートされている 「Flume」の進化系のプロダクトであり、今後要注目のプロダクトと考えています。
Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
kazuyas
More Related Content
What's hot
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
2021/12/21 PHPerKaigi petit - PHP8.1リリース祝賀会 でのトーク「モダンPHPテクニック 12選 ―PsalmとPHP 8.1で今はこんなこともできる!―」のスライドです。発表時点からごくわずかに加筆修正した部分があります。 https://phperkaigi.connpass.com/event/233022/
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
Docker / Kubernetesのネットワークアーキテクチャの解説と、代表的なCNIプラグインとしてFlannel、Calico、Canal、NSX-T Container Plugin (NCP) を取り上げ、それぞれの実装の比較しています。Japan Container Days v18.12 での講演資料です。
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
Masahito Zembutsu
Docker道場オンライン#1発表資料です。 https://dockerdojo.connpass.com/event/191772/ 配信動画 https://youtu.be/XMw0Ivtfxak
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
分散システムのFault Injectionの話 NTTデータテクノロジーカンファレンス2017で発表する際に用いたプレゼン資料 https://oss.nttdata.com/hadoop/event/201710/index.html
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
Masahito Zembutsu
アプリケーションエンジニアでもわかる Docker と Mesos 勉強会 https://sakura-kanto.doorkeeper.jp/events/53777 2016年11月18日(金) 発表資料 本スライドの想定は 「 Mesos って聞いたことあるけど、よくわかんない 」 「 Apache Mesosって何だ? 」 といった疑問を持つ読者であり Mesos の概念や背景を知るための資料です
Consistent hash
Consistent hash
paulowniaceae
(in japanese)コンシステントハッシュ法の簡単な説明でうす。ネットでググって出てくる以上の内容はありません
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui
2021年にインフィニットループ社内の新卒向け研修で使われた資料です。
できる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
現在のマルチスレッドプログラミングの抱える問題点と、代替案をわかりやすく解説いたします。最近登場したConcurrent Revisionsも解説します。
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
勲 國府田
中小規模のWEBサービスをApacheで運用している方がはじめてApacheチューニングする際にみていただくと良いと思います。
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
Narami Kiyokura
2013/10/12 .NET 勉強会 / ヒーロー島 『ヒーロー島 秋の収穫祭 2013』の同名のセッションの資料です サンプルソースやフォローアップなどはこちら: http://d.hatena.ne.jp/kiyokura/20131014/p1
C++ マルチスレッド 入門
C++ マルチスレッド 入門
京大 マイコンクラブ
KMC 関東例会での講座の資料 (by @nojima)
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
Satoshi Shimazaki
CloudStack再入門!15分でおさらいするCloudStackの基礎 第19回CloudStackユーザー会in名古屋の発表資料です。
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
Atsushi Nakamura
学生LT発表コンテンツ
例外設計における大罪
例外設計における大罪
Takuto Wada
例外設計における大罪 Jun 27, 2012 @ java-ja
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Masahito Zembutsu
「企業のためのDocker実戦ガイド」発表資料 2017年2月27日(月) https://itmedia.smartseminar.jp/public/seminar/view/981
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
Makoto SAKAI
Node-RED UG Osaka勉強会 vol.3 発表資料
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
Kuniyasu Suzaki
第32回コンピュータシステム・シンポジウム(ComSys2020)招待講演で使ったスライドです。TEE(Trusted Execution Environment)のハードウェア実装(Arm TrustZone, Intel SGX, RISC-V Keystone)の解説から、それぞれのTEE上のソフトウェア実装が多く異なる話、仮想化(Arm v8.4AでのTEE内仮想化、Intel TDX: Trusted Domain Extensions、AMD SEV: Secure Encrypted Virtualization)が導入されてくる話をしました。また、TEEに対するアンチテーゼの研究や関連規格などを紹介しました。
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
Linux女子部 「Fedora最新技術情報&Systemd勉強会」 http://connpass.com/event/3859/ で使用した資料です。 変更履歴 2013/11/04 ver1.0 初版 2013/11/05 ver1.1 誤植修正、少し追記 2013/11/06 ver1.2 daemon-reload,mask,テンプレート機能を追記 2013/11/12 ver1.3 User/Groupオプションの説明追加 2013/11/24 ver1.4 誤植修正 2014/05/05 ver1.5 imjournalモジュールの説明追加
メタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
増田 亨
エヴァンス本を読んだことがない人、ネット上の情報を聞きかじったことがある程度の人、そんな人たちを対象に、ドメイン駆動設計について、わかりやすく説明してみました。
What's hot
(20)
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
忙しい人の5分で分かるMesos入門 - Mesos って何だ?
Consistent hash
Consistent hash
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
できる!並列・並行プログラミング
できる!並列・並行プログラミング
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
ADO.NETとORMとMicro-ORM -dapper dot netを使ってみた
C++ マルチスレッド 入門
C++ マルチスレッド 入門
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
「関心の分離」と「疎結合」 ソフトウェアアーキテクチャのひとかけら
例外設計における大罪
例外設計における大罪
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
Dockerの期待と現実~Docker都市伝説はなぜ生まれるのか~
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
TEE (Trusted Execution Environment)は第二の仮想化技術になるか?
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
メタプログラミングって何だろう
メタプログラミングって何だろう
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
Similar to RTOS入門 タスク間同期通信
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」
AdvancedTechNight
音田 司 BigDataといえば、大規模イベントログ収集は必須!! 簡単、かつ、リアルタイムにログを収集するために、 今、ストリーム転送が注目されています。 そのためのOSSプロダクトとして、 今回は、Javaで開発されている 「FlumeNG」 について、解説します。 本プロダクトはHadoopディストリビューションのCDHでサポートされている 「Flume」の進化系のプロダクトであり、今後要注目のプロダクトと考えています。
Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
kazuyas
Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門
AdvancedTechNight
鈴木 貴典+木村 宗太郎 TwitterのNathan Marz氏が開発している 「Storm」 。 2011年9月に、オープンソースとして公開されましたが、まだまだ日本で得られる情報は少なく、 詳細は不明なところも多いです。 そこで、日本初(たぶん)の「Storm」セッションを行います。 「Storm」は、CEP(Complex Event Processing=複合イベント処理)に属するプロダクトであり、 分散リアルタイム処理を行うための基本セットを提供しています。 今回のセッションでは、その概念や特性などについて解説してみます。
Webサーバのチューニング
Webサーバのチューニング
Yu Komiya
2010/12/10の勉強会で発表。 主催者ページ↓ http://d.hatena.ne.jp/oranie/20101212
Mr201304 open flow_security_jpn
Mr201304 open flow_security_jpn
FFRI, Inc.
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Yuichi Sakuraba
JJUG CCC 2019 Spring Project Loom - 限定継続と軽量スレッド -
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Masahito Zembutsu
Serfが面白いと俺の中で話題にwwwwww 【改訂版】 『ニンゲンヤメマスカ→運用自動化への希望、オーケストレーション』 Masahito Zembutsu Mar 1, 2013 オープンクラウドにゃんぱすー Open Source Conference 2014 Tokyo/Spring #osc14tk 3/4追記:blogに追記しました。 LVSとSerfでDSRロードバランサを自動管理してみた話 | Pocketstudio.jp log3 http://pocketstudio.jp/log3/2014/03/04/orchestration_with_serf_to_manage_lvs/
Similar to RTOS入門 タスク間同期通信
(7)
ログ収集フレームワークの新バージョン「FlumeNG」
ログ収集フレームワークの新バージョン「FlumeNG」
Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
Twitterのリアルタイム分散処理システム「Storm」入門
Twitterのリアルタイム分散処理システム「Storm」入門
Webサーバのチューニング
Webサーバのチューニング
Mr201304 open flow_security_jpn
Mr201304 open flow_security_jpn
Project Loom - 限定継続と軽量スレッド -
Project Loom - 限定継続と軽量スレッド -
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
Serfが面白いと俺の中で話題にwwwwww 【改訂版】
More from miwarin
GoF デザインパターン 2009
GoF デザインパターン 2009
miwarin
t-wada さんが fukabori.fm で「デザインパターンの内訳が 2009 年に更新されていた」という話題をされていたので、自分でも整理します。
RTOS入門 割り込み制御
RTOS入門 割り込み制御
miwarin
RTOSの割り込みについて説明
リーンスタートアップとは
リーンスタートアップとは
miwarin
マーケティングとは
マーケティングとは
miwarin
スクラムとは
スクラムとは
miwarin
Clangとは
Clangとは
miwarin
NetBSDとは
NetBSDとは
miwarin
リーンキャンバステンプレ
リーンキャンバステンプレ
miwarin
More from miwarin
(8)
GoF デザインパターン 2009
GoF デザインパターン 2009
RTOS入門 割り込み制御
RTOS入門 割り込み制御
リーンスタートアップとは
リーンスタートアップとは
マーケティングとは
マーケティングとは
スクラムとは
スクラムとは
Clangとは
Clangとは
NetBSDとは
NetBSDとは
リーンキャンバステンプレ
リーンキャンバステンプレ
RTOS入門 タスク間同期通信
1.
RTOS入門 タスク間同期・通信 2016-09-09 三輪
2.
お品書き タスク間同期・通信は複数のタスクの実行を制御したり、タスク 間でデータを送受信するためのものである。ここではセマフォ、 イベントフラグについて取り上げる。 • セマフォ • イベントフラグ 注意事項として以下のものを取り上げる。 •
優先度逆転 • デッドロック
3.
セマフォ 排他制御や同期関数の実装に使う。バイナリセマフォと計数セマフォ がある • バイナリセマフォ: 初期値
0 のセマフォ。呼び出し元を待機させた いときに使う • 計数セマフォ: 初期値 1 以上のセマフォ。1 つのハードウェアへ 高々 1 つだけのタスクからアクセスさせたいときに使う。いわゆる ロック/アンロック • ロック/アンロックしておかないと、ハードウェアを制御するシーケンスが途 中まで実施されたところに、さらに別のクライアントからもアクセスされ、 シーケンスが異常となってしまうといったことが発生しうる。 • 優先度逆転、デッドロックに注意
4.
同期処理/非同期処理 同期処理: あるタスクが実行している間、他のタスクの処理は中断される。 非同期処理: あるタスクが実行をしている際に、他のタスクが別の処理を実行できる。 http://www.ipa.go.jp/files/000018441.pdf
5.
タスクA タスクB セマフォ ① メッセージキュー(CallBackも渡す) ②
セマフォ取得待ち wai_sem ⑤ CallBack呼ぶ セマフォ返却 sig_sem ⑥ セマフォ取得 ③ 待機される バイナリセマフォ よくある使い方:同期処理の実装 ④何かやる セマフォ値0 セマフォ値1
6.
計数セマフォ セマフォ ① take ② take ③
take 待たされる ④ give ⑤ 取得 初期値 2 の計数セマフォ ① セマフォ値 2 => 1 ② セマフォ値 1 => 0 ③ 0 なので待機 ④ セマフォ値 0 => 1 ⑤ 1 になったので取得 よくある使い方:資源にアクセスするクライアント数を制限する
7.
イベントフラグ • イベントの有無をビット毎のフラグで表現し、同期をおこなう • ビットの「OR待ち」と「AND待ち」がある。 •
優先度逆転、デッドロックに注意
8.
イベントフラグの OR 待ち •
どれかのビットが立ってるかチェック • ビット立ったら READY へ遷移 • 立ってない場合は WAITING へ遷移 • イベントフラグを削除すると READY -> DESTROYED へ遷移 • 複数ビットを利用する場合 最初にビット立てたイベントが チェックできる( どれか 1 つでもビットが立てば READY され るため )
9.
wai_flg(0x06, OR) ビット0又は2が1にな るのを待つ 1 1 イベントフラグの OR
待ち ビット0 ビット3
10.
イベントフラグの AND 待ち •
全てのビットが立ってるかチェック • ビット立ったら READY へ遷移 • 立ってない場合は WAITING へ遷移 • イベントフラグを削除すると READY -> DESTROYED へ遷移 • 複数ビットを利用する場合 最後にビット立てたイベントが チェックできる( 全ビットがが立てば READY されるため )
11.
wai_flg(0x06, AND) ビット0且つ2が1にな るのを待つ 1 1 イベントフラグの AND
待ち ビット0 ビット3
12.
イベントフラグ よくある使い方:全ての他タスクの準備が出来たら開始する タスクA タスクB タスC
タスクD イベント フラグ イベントフラグ AND待ち ビット0セット ビット1セット ビット2セットイベントフラグ待ち 解除
13.
自タスクによる待ち slp_tsk セマフォ取得待ち イベント取得待ち sus_tsk 他タスクや割り込みハンドラによる待ち解除 slp_tsk完了 セマフォ取得完了 イベント取得完了 rsm_tsk http://www.kumikomi.net/archives/2008/12/32rtos.php?page=6 ディスパッチ 再びタスク状態遷移
14.
注意事項 • 優先度逆転 • デッドロック
15.
優先度逆転 1 つのセマフォを高優先度タスクと低優先度タスクが使おうとす ると発生しうる • 症状:
自タスクよりも低優先度のタスクが実行される • 処方箋: 万能薬は無い • どうしてもセマフォが必要か? • セマフォを占有する区間は最短か? • タスク優先度は適切か?
16.
優先度逆転 高優先度タスクが走りたいのに中優先度タスクが走ってしまう。1つのセマフォを複数のタスク が使おうとすると起きうる。
17.
デッドロック • 症状: 複数のタスクがずっと止まる(
セマフォ取得待ちによる WAIT 状態 ) • 処方箋: 万能薬は無い • 相互参照が原因ならば相互参照を解消すべし • シーケンスが原因ならばシーケンスを見直すべし 優先度逆転もデッドロックも「これさえやれば回避できる」とい う万能薬はない。設計段階で注意すべし。
18.
デッドロック 複数のセマフォを複数のタスクが使おうとすると起きうる
Download now