la programación de sistemas oscar josé luis cruz reyes [email protected] [email protected]

26
La Programación de La Programación de Sistemas Sistemas Oscar José Luis Cruz Reyes [email protected] [email protected]

Upload: catalina-maidana-correa

Post on 23-Jan-2016

217 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

La Programación de La Programación de SistemasSistemas

Oscar José Luis Cruz [email protected]

[email protected]

Page 2: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Systems programming (or system programming)

Is the activity of programming system software. The primary distinguishing characteristic of systems programming when compared to application programming is that application programming aims to produce software which provides services to the user (e.g. word processor), whereas systems programming aims to produce software which provides services to the computer hardware (e.g. disk defragmenter). It also requires a greater degree of hardware awareness.

Page 3: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

In system programming more specifically:

The programmer will make assumptions about the hardware and other properties of the system that the program runs on, and will often exploit those properties (for example by using an algorithm that is known to be efficient when used with specific hardware).

Page 4: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Usually a low-level programming language or programming language dialect is used that:

Can operate in resource-constrained environments. Is very efficient and has little runtime overhead. Has a small runtime library, or none at all. Allows for direct and "raw" control over memory access

and control flow. Lets the programmer write parts of the program directly

in assembly language.

Page 5: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

In system programming, often limited programming facilities are available. The use of automatic garbage collection is not common and debugging is sometimes hard to do.

Implementing certain parts in operating system and networking requires systems programming (for example implementing Paging (Virtual Memory) or a device driver for an operating system).

Page 6: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

System Software

Is any computer software which manages and controls computer hardware so that application software can perform a task. Operating systems, such as Microsoft Windows, Mac OS X or Linux, are prominent examples of system software. System software contrasts with application software, which are programs that enable the end-user to perform specific, productive tasks, such as word processing or image manipulation.

Page 7: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

System Software [2]

System software performs tasks like transferring data from memory to disk, or rendering text onto a display device. Specific kinds of system software include loading programs, Operating systems, device drivers, programming tools, compilers, assemblers, linkers, and utility software.

If system software is stored on non-volatile memory such as integrated circuits, it is usually termed firmware.

Page 8: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Según [Tischer 96] para entender qué es la programación de sistemas se debe partir del concepto de programación de una aplicación … allí el punto que importa es el como se representa y se manipula la información.

Page 9: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Los algoritmos no dependerán de la arquitectura o sistema en cuestión, sino que se pueden describirse de forma general para cualquier máquina imaginable. Lo que sí dependen del sistema es que pasa con la información una vez dentro del programa y la forma en que ésta saldrá una vez tratada. Así, las funciones que competen a la programación de sistemas son el: acceso a archivos, el teclado, la pantalla y el resto de dispositivos...

Page 10: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx
Page 11: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Editores

Desde el punto de vista de los editores existen dos clasificaciones según [Englander 02, pág. 672]:

Los editores de línea y los de pantalla. Los editores de línea aceptan las instrucciones

una a una tal y como si fuese una ventana de comandos (shell) del SO. Mencione un ejemplo.

Page 12: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Editores [2]

Los editores de pantalla son más parecidos a un procesador de textos, uno se puede desplazar libremente por la pantalla y simplemente editar. Dentro de esta categoría existen algunos editores particulares que permiten trabajar en modo comando o modo edición. Ídem

Page 13: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Intérpretes

Es un traductor de lenguaje, igual que un compilador, pero difiere de éste en que ejecuta el programa fuente inmediantamente, en vez de generar un código objeto que se ejecuta después de que se completa la traducción.

Es preferible usar un compilador si lo que importa es la velocidad de ejecución, ya que el código objeto compilado es siempre más rápido que el código fuente interpretado.

Page 14: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Cargadores

Un programa se ha traducido a lenguaje máquina (código objto) y está almacenado en un disco magnético.

¿Cómo hacer para que ese programa se ejecute? ........

Page 15: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Cargadores [2]

Debe cargarse en la memoria principal. Debe tomarse en cuenta que otro programa

denominado cargador, ya se encuentra en la memoria principal.

La ejecución del cargador efectúa la secuencia adecuada de operaciones de E / S necesarias para transferir un programa en lenguaje de máquina, de una localización especificada del disco a una localización especificada de memoria principal.

Page 16: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Cargadores [3]

Una vez cargado el código objeto, el cargador empieza a ejecutar el programa objeto ramificando a su primera instrucción.

Page 17: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Intérpretes

Page 18: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Generadores

Page 19: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Ensambladores

Page 20: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Compiladores

Page 21: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Ligadores

Page 22: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Preprocesadores

Page 23: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Depuradores

Page 24: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Perfiladores

Page 25: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Administradores de Proyecto

Page 26: La Programación de Sistemas Oscar José Luis Cruz Reyes ocruz22@gmail.com ocruz@uv.mx

Referencias:

http://en.wikipedia.org/wiki/Systems_programming http://en.wikipedia.org/wiki/System_software [Tischer 96] Michael Tischer, PC Interno 5,

Marcombo, 1996. [Englander 02] Irv Englander, Arquitectura

computacional 2da Edición, CECSA, 2002