2009-05-14 10 views
5

"オペレーティングシステム"と "コンピュータアーキテクチャー"コースをコンピューターサイエンスの学生として完全に理解するために、ハードウェアの理解度はどれくらいですか?コンピュータサイエンスの知識は?

+0

明確にするために、comp Sciの学生として受け入れる "オペレーティングシステム"と "コンピュータアーキテクチャ"のコースを完全に理解するために必要なハードウェアの理解度を聞いているようです。あれは正しいですか? –

+0

@yx:彼はオペレーティングシステムやコンピュータアーキテクチャのようなものを理解するためにハードウェアを理解する必要があるかどうかを質問していると思います。しかし、私は確信していません。それは非常に暗い質問です。 – Welbog

+0

@mikeそれはもう少し意味がある、私は彼がハードウェアとしてOSを扱っていたと思った。 –

答えて

2

2つの考え:

まず、すべてが並行しています。マルチスレッドは一つのことです、マルチコアは別のものです。キャッシュ、メモリアーキテクチャー、リソース割り当てなどについては、多くの問題があります。これらの多くは、あなたのために「処理」されていますが、金属についてもっと知っている方が良いでしょう。

第2に、ハードウェアの番号表現。これはコンピューター科学そのものと同じくらい古いものですが、それでも全員がトリップになります。誰がこれを言ったのか分かりませんが、それは支部です: "無限の数字のビットを有限数のビットにマッピングすることは近似を伴う。"これと数値解析を理解することは、ベーコンの時間を節約します。シリアライゼーション、エンディアンなど

さらに、楽しいです!

4

このレベルでは、よりよく知っているほどですが、裸の必需品はコンピュータアーキテクチャのブール論理設計です。どのようにレジスタ、加算器、マルチプレクサ、フリップフロップなどを基本ロジックユニット(および、またはクロック)から設計するかを理解する。オペレーティング・システムは、ASM、メモリー・マップされたIO、および割り込みの基本的な理解から始まります。

編集:私はあなたが「ハードウェア」の意味を特定していませんが、論理設計をハードウェアと見なしますか?それとも、トランジスタについて話していたのですか?私はそれが半導体の基礎を理解することを傷つけることはないだろうと思うが、アーキテクチャは実際のハードウェアレベルを超えて抽象化されている。私はまた、オペレーティングシステムはアーキテクチャ上で抽象化されていると言います。

2

"コンピュータサイエンスは、天文学が望遠鏡よりもコンピュータに関するものではありません。

+0

はい、しかし、あなたの類推は完全に正しくない。コンピュータアーキテクチャは、(望遠鏡の設計分野をいくつか挿入する)望遠鏡についてのものです。 –

+2

間違った方法で解釈されない限り、適切な見積もり。望遠鏡について何も知らない天文学者は、天文学では優秀ではないでしょう。 –

+0

正確にその点です。望遠鏡がどのように働いているのか、その背後にある物理学、その特徴や限界が分からなければ、あなたは非常に貧しい天文学者です。 –

4

非常に基本的なレベルでは、Von Neumann architectureについて知っている必要がありますし、実際のコンピュータにマップする方法。その上、より多くの方が良い。そして、OSだけでなく、ガベージコレクションで& VM言語、ヒープ、スタック、および命令がどのように動作して実行されるかを知ることで、パフォーマンスが悪くなり、アーキテクチャーを最大限に活用する方法を知ることができます。

1

Comp Sciスタディで一般的に必要とされるハードウェア知識のベースライン知識を決定する良い方法は、幅広い権威ある大学のカリキュラムのWebサイトを訪れることです。私にとっては、MIT、スタンフォード、イリノイ大学アーバナ/シャンペーン校(UIUC)、ジョージア工科大学などのComp Sciカリキュラムをチェックしています。それから平均的な理解が得られました。

また、自分のニーズをパーソナライズした見解を得るために、あなたが出席または申請している大学のガイダンスカウンセラーに直接電話することもできます。彼らはあなたの欲望に基づいてあなたを導くことができます。教授はもっともっと。彼らは驚くほどアクセスしやすく、このようなことについてのフィードバックを非常に喜んでいます。

最近私は修士号を取得しようとしていました。 UIUCのミョウバンとして、私はいくつかの古い教授に電子メールを送り、彼らに私の興味を伝えました。私はgradschoolとその視点を理解するのに役立ついくつかの質問をしました。彼らは共有し、ほとんど私は電話とチャットを招待しました。

個人的には、私は@CookieOfFortuneに同意します。コンピュータが内部的にどのように動作するかを知るほど、ソフトウェアを書く際にその利点を生かすことができます。つまり、エレクトロニクスの物理を高度に理解する必要があるかのようにはなりません。興味深いのは確かですが、回路、ロジックなどに焦点を当てるべきです。多くのことは、良いオペレーティングシステムコースで提示するか、少なくともあなた自身で詳細を学ぶためのスプリングボードを提供する必要があります。

2

ターゲットとするハードウェアを最適化しようとするときに役立ちます。たとえば、ハードドライブを使用すると、シーク時間を最小限に抑えるために地域を利用するソフトウェアを作成するのに役立ちます。ハードドライブを「うまくいく」とみなし、ファイルとデータをその場に張り付けると、断片化の問題が深刻化し、パフォーマンスが低下します。

パフォーマンスを最大限に引き出そうとしているため、オペレーティングシステムを設計する際には、これが多く考慮されています。一言で言えば、それについて何かを学ぶことは助けになり、どんな方法でも傷つけることはありません。

関連する問題