¿Cómo crear un robot para hacer la programación del kernel de Linux?
Para poder codificar el kernel de Linux, las siguientes capacidades son mínimamente necesarias:
a. Comprender los conceptos de bloqueo / desbloqueo o sincronización de acceso.
- ¿Cuáles son las sinergias entre los estudios en Operaciones y Gestión de la Información y Ciencias de la Computación?
- Como estudiante universitario de ciencias de la computación, cuál es la mejor opción entre cs o estadísticas Ph.D. para la carrera de ciencia de datos?
- Cómo etiquetar objetivamente objetos con etiquetas que son subjetivas, en sistemas expertos
- Cómo saber que un modelo de similitud de documentos puede lograr un alto rendimiento / mejor calidad que los otros modelos
- Cómo hacer un bot que pueda ser entrenado para jugar juegos simples usando Python
si. Comprender el significado del acceso por CPU frente al acceso de CPU cruzada o accesible globalmente por diferentes CPU.
C. Comprender la necesidad de asignación de memoria.
re. Comprender el significado de máquina de estado, protocolo de comunicación (entre dos objetos, CPU o dos computadoras, subprocesos, etc.) y sus convenciones, y protocolos de acceso de hardware (actualización / lectura / escritura).
Y muchos otros conceptos más. Y después de “comprender” este concepto, debe ser capaz de construir tareas lógicamente y programarlas para que se ejecuten en un cierto orden. Y luego poder simular el resultado de las tareas ejecutadas, de modo que si el resultado no parece correcto, poder “reprogramar” las tareas para un flujo de ejecución más optimizado. Es decir, “diagrama de flujo” y “planificación”. Los siguientes son los clásicos recursos de programación / optimizaciones:
Planificación y programación automatizadas – Wikipedia
http://users.dsic.upv.es/~msalid…
Es poco probable que las entidades sobre las que se basa la máquina de razonamiento sean lenguaje C, pero directamente manipulables y capaces de hacer razonamientos lógicos por parte de la computadora; algo como el IR de LLVM será una buena opción. Pero este es un gran problema clásico: cómo representar el conocimiento para el razonamiento:
http://airccse.org/journal/ijcse…
Representación del conocimiento y razonamiento
Otra estrategia de optimización es hacer un razonamiento de alto nivel: para esto necesita una tupla de acción + entradas, condiciones previas de la acción y resultados posteriores de las acciones. Y luego simplemente encadena las condiciones previas a la acción a sus resultados, que proporcionan condiciones previas para otra acción. El razonamiento se realiza en el nivel de “acción”, y los detalles de “acción” supuestamente se realizan antes.
Por ejemplo, “strcpy / memcpy /” como acción: todos pueden agruparse en una construcción genérica “copy_from_to”, y solo se necesitan tres entradas para esta construcción. Entonces, básicamente, se necesitan acciones + entradas. Y si se cumplen sus condiciones previas, la acción puede ejecutarse y los resultados generarse, lo que puede ser un precursor de otras acciones de razonamiento.
Estos conceptos se pueden encontrar en documentos de “razonamiento automatizado”:
http://www.cl.cam.ac.uk/~jrh13/s…
Razonamiento automatizado – Wikipedia
http://www.michaelbeeson.com/res…
http://www.cs.cornell.edu/home/k…
Muchas veces el razonamiento puede permitirse tener errores, ya que las consecuencias no son graves. Pero en la programación de computadoras, se necesita un razonamiento lógico más riguroso, razón por la cual se necesita un componente de “simulación” para verificarse a sí mismo. Quizás un ejemplo aproximado aproximado de esto es la inteligencia artificial “simbólica”, mediante el uso de la representación del conocimiento que podemos manipular fácilmente para hacer un razonamiento intuitivo y simbólico:
http://www2.fiit.stuba.sk/~kvasnicka/NeuralNetworks/1.prednaska/symbolic.pdf
https://mkw.host.cs.st-andrews.ac.uk/IC_Group/What_is_Symbolic_AI_full.html