■ このスレッドは過去ログ倉庫に格納されています
OSの機能なのにシステムコール呼び出しが遅い理由
- 1 :デフォルトの名無しさん:2022/05/18(水) 22:26:11.94 ID:NHYhl09k.net
- OSの機能は速いと習ったのですが
システムコールは遅いとも聞きました
矛盾しているようですが間違いじゃないですか?
- 7 :デフォルトの名無しさん:2022/05/25(水) 13:06:21.59 ID:iso8r4bW.net
- 普通のCの関数なんか、中でシステムコール読んでるだけなんだから、
システムコール直接呼ぶほうが速いだろ?
なんで遅いと思うの?
- 8 :デフォルトの名無しさん:2022/05/25(水) 16:36:44.14 ID:a7QlHf/a.net
- shはUNIXのコマンドです
- 9 :デフォルトの名無しさん:2022/05/25(水) 17:13:23.99 ID:f6RSTkPj.net
- たとえばシステムコールでディレクトリ読んだほうがlsで読んだ時より遅い気がするってこと?
気のせいじゃない。
あるいはよっぽどアホな呼び方をしてるとか
- 10 :デフォルトの名無しさん:2022/05/25(水) 18:15:38.47 ID:Kcsq3bch.net
- lsはOSの機能だから速いのに
システムコールは遅いっていうのが
意味がわからないんです
- 11 :デフォルトの名無しさん:2022/05/25(水) 18:49:11 ID:iso8r4bW.net
- システムコールでファイル一覧取得と、
lsでファイル一覧取得
コード書いて時間計測してみたら?
- 12 :デフォルトの名無しさん:2022/05/25(水) 18:51:07 ID:pzbMw6fx.net
- そりゃCPUが特権モードとかに変わるから単純な関数コールというわけには行かずコンテキストの保存、復帰が伴って遅くなるわね。
その上パイプラインストールするしキャッシュミスもする。
- 13 :デフォルトの名無しさん:2022/05/25(水) 19:15:07.19 ID:CdCNme9c.net
- >>11
計測するまでもなくlsだってシステムコールを
呼び出してるんだから遅くなるに決まってるだろ
- 14 :デフォルトの名無しさん:2022/05/25(水) 19:16:25.00 ID:Ak72ckFb.net
- >>13
それがわかってないスレ主にいっとるんだが?
日本語読めないなら引っ込んでろ
- 15 :デフォルトの名無しさん:2022/05/25(水) 19:24:56.22 ID:DuScdPEV.net
- DOS時代のファイラーならディレクトリ直読み書き換えなんて当たり前だったな
- 16 :デフォルトの名無しさん:2022/05/25(水) 21:08:42.80 ID:1Ax3IUew.net
- こんな事でも15も伸びるのか、、
システムコールでスレッド作れば遅いけど、コンテキストスイッチなどせずに時分割処理を協調的に書けば、それそのものが発生しない。
またメモリ確保などはlibc/mallocなどを通してOSのシステムコールを最終的に呼び出す。
これはOS管理外のメモリなんて存在しないため通常であれば、標準ライブラリが内包しているシステムコールなので速さはシステムコールだけで要求を満たすなら、それで言うまでもない。
しかし、あらかじめメモリプールでドカッと確保して、要求に応じてメモリーマネージメントをするような言語の場合はシステムコールをそもそも何回も呼び出さないため、メモリの配分(≒確保)は速い。
(ただしメモリーの解放処理・再利用に掛かるコストなどは別問題)
またシステムコールで特権命令を使用する場合はCPUにおけるリングプロテクションはOSをクラッシュさせたりすることが無いように何重にも状態のチェックが行われる。
ファイルシステムなどはデバイスドライバにより異なるが、VFS制御をいれるよりもブロックデバイスを直接読み取りしたほうが速い場合もある。
つまりシステムコールは速いのではなく、多くの人が見て優秀な人が書き、何回も呼び出されるため琢磨されて無駄の無いコードで書かれるが、
OSとしての機能を成立させるために、排他制御や複数プロセス・スレッドの切り替え制御、特権制御などを行うため、実行コストは重い。
OSの機能だから速いのではなく、OSの作成者のような同じ技量の人が、”排他処理などを省いて同等の機能を書けたら”その方が速いのである
- 17 :デフォルトの名無しさん:2022/05/26(木) 00:22:03 ID:9vBoz3hH.net
- ちょっと待って
lsとかはOSのコマンドだって知ってる?
OSのコマンドはアプリと違ってOSに近い所で動くから速いんだよ
OSの仕組みを勉強した方がいい
アプリ
↓
言語
↓
シェル(ここより下がOS)
↓
カーネル
↓
ハードウェア
こういう流れになってる。
アプリはOSから離れてるから遅いけど
OSのコマンドはOSに近いから速い
- 18 :デフォルトの名無しさん:2022/05/26(木) 00:23:35.48 ID:9vBoz3hH.net
- シェルのパイプもOSの機能だから
パイプを使うとネットワーク通信よりも遥かに
高速に通信できるという特徴がある
- 19 :デフォルトの名無しさん:2022/05/26(木) 01:11:57.76 ID:8b+fRcLu.net
- 機械語って聞いた事無いか?w
- 20 :デフォルトの名無しさん:2022/05/26(木) 06:34:58.81 ID:doHcAENt.net
- 馬鹿発見スレ乙
- 21 :デフォルトの名無しさん:2022/05/26(木) 07:44:24.54 ID:kn76ebN/.net
- >>17
昔のMSDOSと違ってUNIXではlsなんかも外部コマンドなんだよ
最近は違うのかもしれんけど
独立したソースがあると思う
- 22 :デフォルトの名無しさん:2022/05/26(木) 07:51:18.79 ID:kn76ebN/.net
- そうかcshとかbashとかで別々に実装するのは非効率だから
lsコマンドとかは外部になってると思うよ
cdみたいなのとかシェル固有の機能はシェルに入ってるだろうけど
- 23 :デフォルトの名無しさん:2022/05/26(木) 16:38:30.39 ID:0K7pUhl0.net
- >>17
デタラメを教えたらダメ
lsのソースを見ればわかるように
他のプログラムと全く同じで
OSシステムコールを行なう普通のC標準ライブラリを使っている
つまり全てのコマンド/アプリは対等
- 24 :デフォルトの名無しさん:2022/05/26(木) 16:42:59.88 ID:0K7pUhl0.net
- >>18
シェル自体もOSから見たら単なるアプリの一つにすぎない
シェルのパイプも他のアプリと全く同様に標準入出力切り替えや子プロセス起動などのシステムコールを行なうC標準ライブラリを使っているだけ
当然シェルでやっても自作のアプリでやっても速度は同じ
- 25 :デフォルトの名無しさん:2022/05/26(木) 19:46:18.19 ID:VJLso1OZ.net
- >>24
んだな。
仮にシェルがOSと不可分なら特定のOSに複数のシェルが動作可能ってことの説明がつきにくい。
あくまでOSのシステムコールを使いやすくCLIでラッビングしてるアプリケーションがシェル。
- 26 :デフォルトの名無しさん:2022/05/27(金) 11:41:43.29 ID:S0cy91Tb.net
- >>10-11
ファイル情報の取得にかかる時間 <<<<< 越えられない壁 <<<<< 表示にかかる時間
- 27 :デフォルトの名無しさん:2022/05/27(金) 11:46:42.46 ID:HNJHF6TR.net
- だからlsのソース見てみりゃいいって
普通にシステムコール使ってるだけ
- 28 :デフォルトの名無しさん:2022/05/27(金) 13:47:35.58 ID:zdoO8Saa.net
- そう。だからOSのコマンドであるlsは
システムコールを使ってるから速いんだよ
- 29 :デフォルトの名無しさん:2022/05/27(金) 14:40:43.55 ID:mYFmsEzc.net
- OSの定義に広義狭義があるけど、俺にはそもそも「lsがOSのコマンド」に違和感。
- 30 :デフォルトの名無しさん:2022/05/27(金) 15:07:49.44 ID:958raIs/.net
- ls は shell の機能
なら判る
- 31 :デフォルトの名無しさん:2022/05/27(金) 15:08:40.55 ID:tzFUQxnX.net
- シェルの機能はcdとかだろ
lsは独立したプログラム
- 32 :デフォルトの名無しさん:2022/05/27(金) 16:56:07.39 ID:T4Ajrju/.net
- >>28
UNIXはPOSIXでOSの機能が規定されてる
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/ls.html
- 33 :デフォルトの名無しさん:2022/05/27(金) 16:56:22.77 ID:T4Ajrju/.net
- >>29へのレスの間違い
- 34 :デフォルトの名無しさん:2022/05/27(金) 23:02:16.39 ID:Uk6q3si0.net
- システムコールもカーネル領域とユーザー領域がある
前者は大抵プロセスやドライバを跨ぐような機能の呼び出しだから遅い
- 35 :デフォルトの名無しさん:2022/05/27(金) 23:23:27.94 ID:W+r0e4yZ.net
- ニワカが多すぎる
- 36 :デフォルトの名無しさん:2022/05/27(金) 23:26:58.54 ID:Uk6q3si0.net
- そりゃ普通こんなスレはスルーだし
よっぽど暇じゃなきゃこないよ
- 37 :デフォルトの名無しさん:2022/05/28(土) 00:54:24.68 ID:pFMuCX7L.net
- wsl2ってあまり使う人いなくねwww
https://mevius.5ch.net/test/read.cgi/win/1635677537/
こっちで暴れてるユニケージバカと同じ人かな
- 38 :デフォルトの名無しさん:2022/05/28(土) 01:40:35 ID:wXWd2e2S.net
- togetterでもユニケージが言ってることのおかしさがまとめられてるね
これが「超高速開発手法」です。です!
https://togetter.com/li/960555
>「超高速開発手法については、例えば、Linux のオペレーティングシステム(OS)に直接命令を出す「シェルスクリプト」などが挙げられる。」
なぞ理論w
- 39 :デフォルトの名無しさん:2022/05/28(土) 01:41:41 ID:wXWd2e2S.net
- シェルスクリプトでビッグデータ処理~ユニケージ開発手法とは~
https://enterprisezine.jp/article/detail/4579
當仲 寛哲[著]
↑USB研究所の社長
- 40 :デフォルトの名無しさん:2022/05/28(土) 05:40:43.82 ID:GsM4WAAy.net
- >>39
素人相手に小難しい単語並べて煙に巻くコンサルの手本のような記事だなw
- 41 :デフォルトの名無しさん:2022/05/28(土) 11:26:49.78 ID:81XaDMLN.net
- >>31
shellの機能は
echo *
じゃないか
- 42 :デフォルトの名無しさん:2022/05/28(土) 12:04:24.71 ID:wnOf4Xgv.net
- シェルスクリプティングを自分等の開発した独自な手法、とか言ってる時点でヤバい会社だと分かる
- 43 :デフォルトの名無しさん:2022/05/28(土) 12:21:47.21 ID:wnOf4Xgv.net
- >>1
遅くない
- 44 :デフォルトの名無しさん:2022/05/28(土) 13:01:20.24 ID:HRUpjXKr.net
- >>42
POSIX原理主義「我々が考えた完璧な理論」
というのもある
実態は単に別の人達が作ったPOSIX、に準拠しろと言ってるだけ
w3cに準拠すれば互換性が高くなる
これを我々は「w3c原理主義と名付けた」
我らの理論は完璧だ!
- 45 :デフォルトの名無しさん:2022/05/28(土) 13:23:58 ID:R0+ouirM.net
- 何に対して遅いのか
秒間呼び出し回数はどの程度なのか
自作システムコールでも作って評価したことがあるのか
- 46 :デフォルトの名無しさん:2022/05/28(土) 14:52:20.78 ID:NEB1gEkf.net
- 回答は
気のせいです
- 47 :デフォルトの名無しさん:2022/05/29(日) 02:29:25.78 ID:tby4sC5N.net
- ユニケージのアーキテクチャ
https://unicage.eu/technology/architecture/
ユニケージはユーザースペースではなくOSの一部として動いている証拠
だから速いんだよ
- 48 :デフォルトの名無しさん:2022/05/29(日) 07:28:24.69 ID:d77+Um3N.net
- >>47
>ユニケージは大福帳方式です。
爆笑してしまった
だ大福帳方式ってあんた…
- 49 :デフォルトの名無しさん:2022/05/29(日) 08:57:41.65 ID:0qZEsS3g.net
- >>44
w3cのほうが良かったけどな。
Google主導のLiving standardは、HTMLを危険なものとしたうえで、「Googleが安全性を検証します」という方式になってしまった。
「Pタグをリストにする」なんてことも可能となってしまったので、もはやタグから意味を知ることはできない。
まあ、自分も仕事上は他社にキャッチアップされないようにハードルを上げることはよくやってるけど。
不思議なのは、虐げられるものほど、Googleを崇拝してることだな。
- 50 :デフォルトの名無しさん:2022/05/29(日) 09:24:17.38 ID:PHSAKkRW.net
- >>48
大福帳方式の何が悪いの?
- 51 :デフォルトの名無しさん:2022/05/29(日) 09:57:29.65 ID:ax9Vi8n6.net
- >>49
Pタグをリストにすることなんて出来ませんよ
Pの見た目は自由に変更できるのでLIを使わない限りリストになりません
逆にタグからじゃないと意味がわからなくなってしまったんですが?
- 52 :デフォルトの名無しさん:2022/05/29(日) 09:59:56.40 ID:MNYu/GXn.net
- なんか>>49ってPOSIX原理主義者っぽいな
偉そうな感じで自分が理解できてないとバレるような
的はずれなことを堂々と言ってしまうところがw
- 53 :デフォルトの名無しさん:2022/05/29(日) 17:58:05.09 ID:oZLXa3NG.net
- cのfwriteを使った方がキャッシュが効いてwrite何回も呼ぶよりも早い、というような話とごっちゃになってるんじゃない
- 54 :デフォルトの名無しさん:2022/05/30(月) 10:10:13.27 ID:N7THyQfE.net
- wsl2ってあまり使う人いなくねwww
https://mevius.5ch.net/test/read.cgi/win/1635677537/
こっちでも言い負かされて敗走したみたいね、原理主義者くん
- 55 :デフォルトの名無しさん:2022/06/22(水) 19:23:09.33 ID:9Vz354uY.net
- システム凍る
- 56 :デフォルトの名無しさん:2023/07/31(月) 05:14:45.99 ID:3WyuxSPM.net
- それではまず、10番を押してください
総レス数 56
16 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★