2009-05-14 36 views
5

¿Cuánta comprensión de hardware se necesita para comprender completamente los cursos de "Sistema operativo" y "Arquitectura de computadora" que se toman como estudiantes de informática?¿Conocimiento de hardware en informática?

+0

Para aclarar, parece que está preguntando cuánto hardware necesita para comprender completamente los cursos de "Sistema operativo" y "Arquitectura de computadora" que tomará como estudiante de informática. ¿Es eso correcto? –

+0

@yx: Creo que está preguntando si necesita comprender el hardware para comprender cosas como los sistemas operativos y la arquitectura de la computadora. Aunque no estoy seguro. Es una pregunta muy críptica. – Welbog

+0

@mike que tiene mucho más sentido, por un segundo allí pensé que estaba tratando el sistema operativo como hardware –

Respuesta

2

dos pensamientos:

En primer lugar, todo va paralelo. Multi-threading es una cosa, multi-core es otra. Hay montones de problemas relacionados con el almacenamiento en caché, la arquitectura de la memoria, la asignación de recursos, etc. Muchos de estos son 'manejados' para usted, pero cuanto más sepa sobre el metal, mejor.

Segundo, representaciones de números en hardware. Esto es tan antiguo como la ciencia de la computación en sí misma, pero todavía molesta a todos. No estoy seguro de quién dijo esto, pero es perfecto: "Mapear una infinidad de números en un número finito de bits implica aproximaciones". Comprender esto y el análisis numérico en general le salvará el tocino una y otra vez. Serialización y endianidad, etc.

¡Además, es divertido!

4

En ese nivel, cuanto más sepa mejor, pero las necesidades básicas son el diseño lógico booleano para la arquitectura de la computadora. Comprenda cómo diseña registros, sumadores, multiplexores, flip flops, etc. a partir de unidades lógicas básicas (y/o relojes). Probablemente pueda comprender los sistemas operativos a partir de la comprensión básica de ASM, IO mapeada en memoria e interrupciones.

EDITAR: No estoy seguro de lo que quiere decir con "hardware", ¿considera que el diseño lógico es hardware? ¿O estabas hablando de transistores? Supongo que no estaría de más entender los conceptos básicos de los semiconductores, pero la arquitectura se abstrae por encima del nivel real del hardware. También diría que los sistemas operativos están resumidos por encima de la arquitectura.

2

"Las ciencias de la computación no son más sobre computadoras que lo que la astronomía es sobre telescopios".

+0

sí, pero su analogía no es del todo correcta. La arquitectura de computadora se trata de computadoras como (inserte un campo de diseño de telescopio) sobre telescopios. –

+2

Una cita apropiada, siempre que no se interprete de la manera incorrecta. Un astrónomo que no sabe nada acerca de los telescopios es poco probable que se destaque en la astronomía. –

+0

Exactamente ese es el punto. Si no sabes cómo funcionan tus telescopios, la física detrás de él, sus características y limitaciones, entonces eres un astrónomo muy pobre en ese momento. –

4

En el nivel básico, debe conocer Von Neumann architecture y cómo se asigna a las computadoras de la vida real. Por encima de eso, cuanto más, mejor. Y no solo el sistema operativo: en la recolección de basura & lenguajes VM, cómo funcionan el montón, la pila y las instrucciones, para que sepa qué funcionará mal y cómo mejorarlo para sacar el mejor provecho de la arquitectura.

1

Una buena manera de determinar un conjunto de conocimientos de referencia para el conocimiento de hardware generalmente necesarios para los estudios de Comp Sci es visitar los sitios web de planes de estudios de una amplia gama de universidades de prestigio. Para mí, verificaría el plan de estudios de Comp Sci en el MIT, Stanford, la Universidad de Illinois en Urbana/Champaign (UIUC), Georgia Tech, etc. Luego obtendría un entendimiento promedio de eso.

Además, también puede llamar personalmente a los consejeros de orientación de las universidades a las que asistirá o solicitar para obtener una visión personalizada de sus necesidades. Estarían disponibles para guiarte según tus deseos. Profesores aún más. Son sorprendentemente accesibles y están muy dispuestos a dar su opinión sobre este tipo de cosas.

Recientemente, busqué obtener mi maestría. Como exalumno de UIUC, envié un correo electrónico a algunos profesores antiguos y les dije mi interés. Les hice varias preguntas orientadas a comprender Gradschool y su perspectiva. Compartieron y la mayoría me invitó a llamar y chatear.

Personalmente, estoy de acuerdo con @CookieOfFortune. Cuanto más sepa acerca de cómo funciona una computadora internamente, más podrá usarla para su beneficio mientras escribe software. Dicho esto, no es como si realmente necesitaras entender la física de la electrónica en un alto grado. Es interesante, claro, pero su enfoque debe estar en los circuitos, la lógica, etc. Gran parte de esto debe presentarse en un buen curso de Sistemas Operativos o al menos proporcionarle trampolines para aprender más por su cuenta.

2

Ayuda cuando intenta optimizar para el hardware al que se dirige. Tome un disco duro, por ejemplo, ayuda a escribir software que aproveche la localidad para minimizar el tiempo de búsqueda. Si solo trata un disco duro como 'funciona' y pega archivos y datos por todas partes, se encontrará con problemas graves de fragmentación y dará como resultado un menor rendimiento.

Mucho de esto se tiene en cuenta al diseñar un sistema operativo, ya que está tratando de maximizar el rendimiento. En resumen, aprender algo sobre esto puede ayudar, y ciertamente no puede doler de ninguna manera.

Cuestiones relacionadas