¿QUE ES?
Un sistema es un conjunto de componentes que interaccionan entre si para lograr un objetivo común. Las personas se comunican con el lenguaje, que es un sistema muy desarrollado formado por palabras y símbolos que tienen significado que tienen significado para el que habla y para quienes lo escuchan, lo mismo es para las computadoras las cuales tienen sistemas y se comunican por medio de computadoras.
La programación es el proceso de convertir las especificaciones a grandes rasgos de los sistemas en instrucciones de maquina que produzcan los resultados deseados.
¿QUE ESTUDIA?
El trabajo de un programador de sistemas es seleccionar, modificar y mantener el complejo software del sistema operativo. Por lo tanto, los programadores de sistemas desempeñan una función de apoyo al mantener el ambiente del software del sistema operativo en el que trabajan los programadores de aplicaciones y los operadores de las computadoras. También participan en las decisiones relativas a reducciones o ampliaciones de hardware y/o software. Programación de Sistemas Conceptos y Aplicaciones Se entiende por programación de sistemas el conjunto de programas necesario para que una computadora de una imagen coherente y monolítica ante sus usuarios. Es un área especializada dentro de las ciencias de la computación. Así, mediante la programación de sistemas, no solo se manejan las computadoras por medio del lenguaje maquina (0 y 1) sino por otros sistemas operativos, sin lo cual sería muy difícil la interacción con la maquina.
El estudio de la programación de sistemas
En esta área se estudia la teoría de máquinas y su aplicación en el diseño de sistemas digitales y de arquitectura de computadoras.Áreas específicas: Sistemas digitales para arquitecturas paralelas y control de procesos y sistemas reconfigurables.
Inteligencia artificial aplicada a trabajo cooperativo En las aplicaciones cooperativas realizadas en el entorno Web, es viable hacer uso de las herramientas de inteligencia artificial. Se están diseñando y construyendo herramientas para elaborar un sistema sin costura que opere en Web con la finalidad de proporcionar a un grupo de coautores el soporte necesario para producir conjunta y simultáneamente un mismo documento. La plataforma, denominada PINAS, es un sistema de edición cooperativa (Alliance Web) y un sistema de notaciones sobre documentos complejos (COARSY) los cuales podrán permitir a coautores o revisores distribuidos en diferentes sitios del mundo, compartir y anotar observaciones sobre documentos complejos tales como capítulos de libro, artículos, reportes, expedientes médicos, etc.
Sistemas para arquitecturas paralelas y distribuidas
Diseño de sistemas operativos para arquitecturas paralelas y sistemas distribuidos, particularmente en lo que se refiere a manejo de memoria y calendarización de procesos. Redes y protocolos, programación distribuida, diseño y evaluación de “middleware” enfocados a aplicaciones de minería de datos y multimedia. Diseño de algoritmos paralelos y distribuidos. Herramientas para programación paralela y distribuida.
Sistemas de tiempo real
Relacionados con diversos aspectos de la planificación de los sistemas de tiempo real entre los cuales se encuentran los siguientes: planificación tolerante a fallas en sistemas de tiempo real, planificación de tiempo real en situaciones de sobrecarga, esto es en aplicaciones en donde se demande del procesador más del 100% de su capacidad, y planificación de sistemas de tiempo real aplicada al control de procesos y técnicas de planificación de tareas de tiempo real con restricciones de consumo de poder.
Diseño y programación de sistemas grandes
Los sistemas empotrados suelen ser grandes y complejos, formados por subsistemas relacionados, pero relativamente independientes. Algunos lenguajes ignoran el hecho de que los programas se construyen por partes, cada una de ellas compilada por separado y todas ellas enlazadas en una aplicación final. El resultado se convierte en aplicaciones monolíticas difíciles de mantener. Otros lenguajes, en contraste, parten del concepto de módulo y proporcionan mecanismos de encapsulamiento y abstracción que ayudan a programar sistemas grandes, ya que el trabajo del equipo de programación y posterior mantenimiento del sistema se ve facilitado. Uno de estos lenguajes es Ada, que está fuertemente fundamentado en la disciplina de la ingeniería del software por lo que es el lenguaje más apropiado en la programación de sistemas empotrados industriales grandes.Ada asume la necesidad de la compilación separada y proporciona dos mecanismos para realizarla, uno ascendente y otro descendente:
o El mecanismo descendente (descomposición): consiste en dividir un sistema complejo en componentes más sencillos. Es apropiado para el desarrollo de grandes programas coherentes que, son divididos en varias subunidades que pueden compilarse por separado. Las subunidades se compilan después que la unidad de la que forman parte.
o El mecanismo ascendente (abstracción): consiste en la especificación de los aspectos esenciales de un componente, posponiendo su diseño detallado. Es apropiado para la creación de bibliotecas de programa en las que las unidades se escriben para uso general y, consecuentemente, se escriben antes que los programas que las vayan a utilizar. El diseño de sistemas mediante módulos permite encapsular partes del sistema mediante interfaces bien definidas y permiten utilizar técnicas que facilitan el desarrollo de sistemas grandes como:
- Ocultación de información.
- Tipos abstractos de datos.
- Compilación separada.
Las unidades de programa en Ada son las siguientes:
- Subprograma que define los algoritmos ejecutables. Los procedimientos y las funciones son subprogramas.
- Paquete: define una colección de entidades. Los paquetes son el principal mecanismo de agrupación de Ada.
- Tarea: define una computación que puede llevarse a cabo en paralelo con otras computaciones.
- Unidades Genéricas: ayudan a realizar código reutilizable. Pueden ser subprogramas o paquetes.
- Unidad Protegida: puede coordinar el acceso a datos compartidos en el procesamiento paralelo. Aparece en el estándar Ada 95.
En Ada, las unidades de compilación pueden ser:
o Especificaciones de subprogramas o Especificaciones de paquetes o Cuerpos de subprogramas o paquetes
Algunos compiladores pueden establecer ciertos requisitos para las unidades de compilación. Por ejemplo, GNAT en su configuración predefinida exige que cada unidad esté definida en un fichero, con el nombre de la unidad y la extensión .ads para especificaciones y .adb para cuerpos. El guión “-“ se ha de utilizar en sustitución del punto “.” para unidades hijas y subunidades. Referencias: La Programacion de Sistemas es la accion de resolver eficientemente una necesidad mediante un codigo hecho programa que se comunican para satisfacer dicha necesidad en un ambiente amigable y facil de manejar para el usuario final.
Se entiende por programación de sistemas el conjunto de programas necesario para que una computadora de una imagen coherente y monolítica ante sus usuarios. Es un área especializada dentro de las ciencias de la computación. Así, mediante la programación de sistemas, no solo se manejan las computadoras por medio del lenguaje maquina (0 y 1) sino por otros sistemas operativos, sin lo cual sería muy difícil la interacción con la maquina.
Toda accion que codificada resuelva una necesidad o problema sistematizadamente.
Saludos www.itsemaya.edu.com.mx