2017-12-24 7 views
0

JavaScriptに関するコースを現在見ていて、実行コンテキストと実行スタックについて何か学びました。しかし、このトピックは私の中でいくつかの質問をリリースしました:PCで使用されているJavaScriptの実行スタックはどこですか?

私は実行スタックの仕組みを理解しており、すべてのプロセスが独自のスタックを持っていることを知っています。しかし、この実行スタックは、通常のプロセススタックの代わりになりますか?あるいは、この実行スタックを別のレベルで見つけることができますか?

JavaScriptコードは、ブラウザのエンジンによって実行されます。だから、実行スタックがこのエンジンで使われているのでしょうか?どのようにJSコードの実行はコンピュータ上で行われますか?たとえば、FireFoxのようなブラウザは、それ自体のプロセスです。

私はもちろんFireFoxに独自のスタックがあると仮定しますが、その中で実行されるJavaScriptコードはどうですか?または、マシン上でJavaScriptコードの実行中に作成された新しいプロセスですか?

私はそれの周りに頭を上げることはできません。事前に

おかげで、

マイク

答えて

2

JavaScriptはインタプリタ言語であり、そのようJSエンジンと呼ばれるインタプリタにより実行されます。 JSエンジンはウェブブラウザで動作するのが最も一般的ですが、ブラウザに限定されるものではありません。 NodeJSはそれ自身のサーバー側のJSインタプリタを実行します。 JSエンジンは、ECMA Script標準の実装であるsee a list of engines on WikiPediaです。いくつかの実装はオープンソースであり、全く異なるソフトウェアに組み込まれています。たとえば、Google ChromeとNodeJSは両方ともV8エンジンを使用してJSコードを実行します。

私はすべてのプロセスに独自のスタックがあることを知っています。しかし、この実行は スタックで、通常のプロセススタックの代わりになりますか?

ブラウザは、それ自身のOSのプロセスを実行し、大部分は(JSエンジンの別のインスタンスとクロムuses renderers様各が関連ウェブサイトは、このようにJSエンジンを同じレンダラを共有する)は、複数のOSのプロセスを使用するが、重要な点OS実行コンテキストとJS実行コンテキストを混同しないことです。後者は前者の中に存在する。

OSプロセスは、JSエンジン自体を実行します。 OSプロセスの実行コンテキストはOS(カーネル)によって制御され、JSの実行コンテキストはJSエンジンによって制御されます。

したがって、通常のプロセススタックを置き換えるJS実行スタックの考え方は、ナンセンスです。

+0

ありがとうございました!これにより、はるかに明確になりました。 – Maikkeyy

関連する問題