OSの機能は速いと習ったのですが
システムコールは遅いとも聞きました
矛盾しているようですが間違いじゃないですか?
OSの機能なのにシステムコール呼び出しが遅い理由
■ このスレッドは過去ログ倉庫に格納されています
2022/05/18(水) 22:26:11.94ID:NHYhl09k
2022/05/18(水) 22:31:31.72ID:sbCplmon
2022/05/18(水) 23:26:22.64ID:cwnZPj3W
2022/05/23(月) 00:07:06.61ID:KAnLsp+B
5デフォルトの名無しさん
2022/05/25(水) 11:45:22.87ID:Kcsq3bch >>4
OSの機能というのはUnixコマンドのことです
OSの機能というのはUnixコマンドのことです
2022/05/25(水) 12:09:40.10ID:a7QlHf/a
???
2022/05/25(水) 13:06:21.59ID:iso8r4bW
普通のCの関数なんか、中でシステムコール読んでるだけなんだから、
システムコール直接呼ぶほうが速いだろ?
なんで遅いと思うの?
システムコール直接呼ぶほうが速いだろ?
なんで遅いと思うの?
2022/05/25(水) 16:36:44.14ID:a7QlHf/a
shはUNIXのコマンドです
2022/05/25(水) 17:13:23.99ID:f6RSTkPj
たとえばシステムコールでディレクトリ読んだほうがlsで読んだ時より遅い気がするってこと?
気のせいじゃない。
あるいはよっぽどアホな呼び方をしてるとか
気のせいじゃない。
あるいはよっぽどアホな呼び方をしてるとか
10デフォルトの名無しさん
2022/05/25(水) 18:15:38.47ID:Kcsq3bch lsはOSの機能だから速いのに
システムコールは遅いっていうのが
意味がわからないんです
システムコールは遅いっていうのが
意味がわからないんです
2022/05/25(水) 18:49:11.64ID:iso8r4bW
システムコールでファイル一覧取得と、
lsでファイル一覧取得
コード書いて時間計測してみたら?
lsでファイル一覧取得
コード書いて時間計測してみたら?
2022/05/25(水) 18:51:07.37ID:pzbMw6fx
そりゃCPUが特権モードとかに変わるから単純な関数コールというわけには行かずコンテキストの保存、復帰が伴って遅くなるわね。
その上パイプラインストールするしキャッシュミスもする。
その上パイプラインストールするしキャッシュミスもする。
2022/05/25(水) 19:15:07.19ID:CdCNme9c
2022/05/25(水) 19:16:25.00ID:Ak72ckFb
2022/05/25(水) 19:24:56.22ID:DuScdPEV
DOS時代のファイラーならディレクトリ直読み書き換えなんて当たり前だったな
2022/05/25(水) 21:08:42.80ID:1Ax3IUew
こんな事でも15も伸びるのか、、
システムコールでスレッド作れば遅いけど、コンテキストスイッチなどせずに時分割処理を協調的に書けば、それそのものが発生しない。
またメモリ確保などはlibc/mallocなどを通してOSのシステムコールを最終的に呼び出す。
これはOS管理外のメモリなんて存在しないため通常であれば、標準ライブラリが内包しているシステムコールなので速さはシステムコールだけで要求を満たすなら、それで言うまでもない。
しかし、あらかじめメモリプールでドカッと確保して、要求に応じてメモリーマネージメントをするような言語の場合はシステムコールをそもそも何回も呼び出さないため、メモリの配分(≒確保)は速い。
(ただしメモリーの解放処理・再利用に掛かるコストなどは別問題)
またシステムコールで特権命令を使用する場合はCPUにおけるリングプロテクションはOSをクラッシュさせたりすることが無いように何重にも状態のチェックが行われる。
ファイルシステムなどはデバイスドライバにより異なるが、VFS制御をいれるよりもブロックデバイスを直接読み取りしたほうが速い場合もある。
つまりシステムコールは速いのではなく、多くの人が見て優秀な人が書き、何回も呼び出されるため琢磨されて無駄の無いコードで書かれるが、
OSとしての機能を成立させるために、排他制御や複数プロセス・スレッドの切り替え制御、特権制御などを行うため、実行コストは重い。
OSの機能だから速いのではなく、OSの作成者のような同じ技量の人が、”排他処理などを省いて同等の機能を書けたら”その方が速いのである
システムコールでスレッド作れば遅いけど、コンテキストスイッチなどせずに時分割処理を協調的に書けば、それそのものが発生しない。
またメモリ確保などはlibc/mallocなどを通してOSのシステムコールを最終的に呼び出す。
これはOS管理外のメモリなんて存在しないため通常であれば、標準ライブラリが内包しているシステムコールなので速さはシステムコールだけで要求を満たすなら、それで言うまでもない。
しかし、あらかじめメモリプールでドカッと確保して、要求に応じてメモリーマネージメントをするような言語の場合はシステムコールをそもそも何回も呼び出さないため、メモリの配分(≒確保)は速い。
(ただしメモリーの解放処理・再利用に掛かるコストなどは別問題)
またシステムコールで特権命令を使用する場合はCPUにおけるリングプロテクションはOSをクラッシュさせたりすることが無いように何重にも状態のチェックが行われる。
ファイルシステムなどはデバイスドライバにより異なるが、VFS制御をいれるよりもブロックデバイスを直接読み取りしたほうが速い場合もある。
つまりシステムコールは速いのではなく、多くの人が見て優秀な人が書き、何回も呼び出されるため琢磨されて無駄の無いコードで書かれるが、
OSとしての機能を成立させるために、排他制御や複数プロセス・スレッドの切り替え制御、特権制御などを行うため、実行コストは重い。
OSの機能だから速いのではなく、OSの作成者のような同じ技量の人が、”排他処理などを省いて同等の機能を書けたら”その方が速いのである
2022/05/26(木) 00:22:03.72ID:9vBoz3hH
ちょっと待って
lsとかはOSのコマンドだって知ってる?
OSのコマンドはアプリと違ってOSに近い所で動くから速いんだよ
OSの仕組みを勉強した方がいい
アプリ
↓
言語
↓
シェル(ここより下がOS)
↓
カーネル
↓
ハードウェア
こういう流れになってる。
アプリはOSから離れてるから遅いけど
OSのコマンドはOSに近いから速い
lsとかはOSのコマンドだって知ってる?
OSのコマンドはアプリと違ってOSに近い所で動くから速いんだよ
OSの仕組みを勉強した方がいい
アプリ
↓
言語
↓
シェル(ここより下がOS)
↓
カーネル
↓
ハードウェア
こういう流れになってる。
アプリはOSから離れてるから遅いけど
OSのコマンドはOSに近いから速い
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【東京】赤坂サウナ火事2人死亡 サウナ室のドアノブ外れ閉じ込められた可能性 ★4 [nita★]
- 「PC買うなら急げ」は本当だった。マウスが一部販売停止&1月値上げを発表 [♪♪♪★]
- 国会が「238秒停止」「3連続音声オフ」 代打・小泉大臣にも大音量ヤジ 起立する議員続出…高市総理の発言めぐり紛糾 [♪♪♪★]
- フィンランド、ミスや国会議員つり目投稿 くり返されるアジア人差別 ★3 [蚤の市★]
- 「こども2万円給付」は“ずるい”?「子持ちだけ優遇されてる」「来年から独身税もあるのに」…子育て世帯への支援は“不公平”なのか [♪♪♪★]
- 【速報】 ロシア潜水艦が攻撃されて巨大水柱 [お断り★]
- 【高市与党】吉村はん「社会保険料は下げられる!」 [115996789]
- 今お前らの小腸と大腸煮込んでた
- 野党「台湾を国と認めてるの?」高市「◯☓※▲😤」野党「いや答えて」高市「◯☓~」野党「速記止めろぉ!」 [359965264]
- 【高市✈MRJ】中国の純国産旅客機 C909さん。 中国以外の12カ国含めに175機を納入。 3000万人を安全に運んでしまう…… [485983549]
- 【高市悲報】「格闘ゲーム」 👈いろいろ頑張って流行らせようとしたけどなんかイマイチだよな… なんでだ [862423712]
- 3時のおやつ🧁はふなキャンディー🍬🏡
