La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación de Sistemas

Presentaciones similares


Presentación del tema: "Programación de Sistemas"— Transcripción de la presentación:

1 Programación de Sistemas
Unidad 2 Sistemas Operativos y Programación de Software de Base

2 Contenido Introducción a los Sistemas Operativos (SO)
Definición y conceptos de SO Visualización de un sistema de cómputo desde distintos puntos de vista Capas de un SO El SO visto como una máquina extendida Estructura y núcleo del SO (Linux y Windows) Programación de Software de Base Entornos y lenguajes de desarrollo para la programación de software de base Programación de interfaces de usuario

3 Introducción a los sistemas operativos
Definiciones y concepto de SO: El software y/o firmware que hace utilizable al hardware [Deitel]. Es un programa que controla la ejecución de los programas de aplicación y que actúa como interfaz entre los usuarios y el hardware [Stallings]. Es un programa que actúa como intermediario entre el usuario y el hardware. El primer objetivo es la comodidad, el segundo la eficiencia [Silberschatz]. Es un programa que tiene encomendada una serie de funciones diferentes cuyo objetivo es simplificar el manejo y utilización de la computadora, haciéndolo seguro y eficiente [Carretero].

4 Introducción a los sistemas operativos (2)
Visualización de un sistema de cómputo desde distintos puntos de vista Usuario Final Programador Programas de aplicación (Resuelven problemas para los usuarios) (Word, Excel, …) Diseñador del Sistema Operativo Utilidades (Shell, Ensamblador, Enlazador, bibliotecas, …) Sistema Operativo (Windows, Linux, Mac OS X) Hardware del computador (PC, Mac, Sun, …)

5 Introducción a los sistemas operativos (3)
Conceptualmente un S.O. esta formado por tres capas: Capa del Núcleo o kernel. Suministra la funcionalidad básica del sistema gestionando los recursos de hardware. Capa de servicios o llamadas al sistema. Ofrece una máquina virtual extendida a los programas. Capa de intérprete de mandatos o Shell. Provee una interfaz a través de la cual el usuario puede dialogar interactivamente con la computadora. Programas de Usuario Núcleo Hardware Servicios Shell Usuarios S.O

6 Introducción a los sistemas operativos (4)
El Sistema operativo como una máquina extendida. Ofrece a los programas un conjunto de servicios, o llamadas al sistema, que pueden solicitar cuando lo necesiten. Los servicios se pueden agrupar en cuatro clases: Ejecución de programas. El S.O. incluye servicios para lanzar a ejecución, parar o abortar un programa. Órdenes de E/S. Servicios para proveer a los programas de operaciones de lectura, escritura y modificación del estado de los periférico, de forma cómoda y protegida. Operaciones sobre archivos. Es un nivel de abstracción mayor que las órdenes de E/S. Estos servicios permiten: creación, borrado, apertura, escritura y lectura de archivos. Detección y tratamiento de errores. El S.O. debe tratar todas las condiciones de error que detecte el hardware. Algunos de los errores que pueden aparecer son provocados por la E/S y otros por la ejecución de los programas.

7 Introducción a los sistemas operativos (5)
Estructura general y núcleo de un sistema Unix/Linux Nivel Usuario Programas de usuario Librerías Hardware Programas de Aplicación Nivel Kernel Interfaz de llamadas al sistema Hardware Interfaz de Llamadas al Sistema Subsistema de Archivos Comunicación entre procesos Núcleo Sistema de control de procesos Planificador Hardware Buffer cache Gestor de memoria Caracter Bloque Controladores de dispositivos Shell Comandos y Librerías Componentes del compilador Control del hardware Compilador Nivel Hardware Hardware

8 Introducción a los sistemas operativos (6)
Arquitectura simplificada de Windows (NT) Procesos de Soporte del Sistema Procesos de Servicio Aplicaciones de Usuario Subsistemas de Ambiente Modo Usuario Subsistema de DLL’s Modo Kernel Ejecutor Sistema de Ventanas y Gráficos Kernel Controladores de Dispositivos Capa de Abstracción de Hardware (HAL)

9 Introducción a los sistemas operativos (7)
MS-DOS, Windows 95, 98 y ME (16 bits) sobre Windows XP (32 bits). Windows corre una Máquina DOS Virtual NT (NTVDM.EXE), la cual es una imagen Windows de 16 bits montada sobre el Subsistema de DLL’s. En realidad CMD.EXE es una aplicación de consola de Windows. Para aplicaciones de 16 bits NTVDM carga “WOW”, un traductor de API de 16 a 32 bits. 0 K Aplicación MS-DOS 640 K Aplicación de 16 bits Emulación MS-DOS 16 bits 1 MB Memoria Extendida de MS-DOS 16 MB Emulación de MS-DOS a 32 bits Controladores de dispositivos Virtuales (COM, LPT, Teclado) 32 bits Subsistema de DLL’s 7FFFFFFF Procesos de Soporte del Sistema Procesos de Servicio Aplicaciones de Usuario Subsistemas de Ambiente Modo Usuario Subsistema de DLL’s Modo Kernel Administrador Sistema de Ventanas y Gráficos Kernel Controladores de Dispositivos Capa de Abstracción de Hardware (HAL)

10 Programación de software de base
Entornos y lenguajes de desarrollo de software base. La mayoría del software base ha sido programado bajo los paradigmas imperativo y estructurado. Sin embargo en la actualidad también se aprovechan las bondades de la POO. El lenguaje de programación de sistemas por excelencia es el C ya fue concebido para tal fin. Sin embargo se pueden utilizar otros lenguajes de alto nivel si la eficiencia en tiempo de ejecución no es primordial. O en caso contrario, si la eficiencia es demasiado crítica, vale la pena probar con ensamblador. La mayoría de los lenguajes de programación tienen diferentes entornos de desarrollo integrado (IDE), dichos entornos cuentan mínimo con: a) precompilador, b) compilador y c) enlazador; otros cuentan también con editor, administrador de proyectos e inclusive con generadores automáticos de plantillas. La interfaz de las IDE pueden ser en línea de comandos, en modo texto y en modo gráfico.

11 Programación de software de base (2)
Ejemplos comunes de entornos de desarrollo para el lenguaje C En MS-DOS/Windows Borland C++ Tiene una interfaz de texto para MS-DOS y una para Windows Provee de editor de código fuente, precompilador, compilador y enlazador, además de un depurador. Existen distribuciones gratuitas. Dev-Cpp (o Dev-C++) Ambiente para Windows Provee de editor de código fuente, precompilador, compilador y enlazador; hace un enlace con gdb para depurar . Genera aplicaciones Win32. Es gratuito y de libre distribución. En Linux gcc Su interfaz es desde la línea de comandos de la terminal No provee de editor (el código fuente se edita en otra aplicación), sin embargo si provee de: precompilador, compilador y enlazador. Es software libre. La administración de proyectos se da conjuntamente con make y la depuración con gdb. glade-2 Es una herramienta de desarrollo visual de aplicaciones mediante GTK/GNOME. La salida es código fuente en C y scripts para configurar, construir y compilar con make usando el gcc. También se puede generar código para otros lenguajes como C++ y Ada. Es de gratuito y de libre distribución.

12 Programación de software de base (3)
Cuando se desarrolla software con un lenguaje de alto nivel como C se puede visualizar una jerarquía de computadoras virtuales. Datos de entrada Datos de salida COMPUTADORA VIRTUAL DESARROLLADA POR EL PROGRAMADOR (Implementada por el modelo de ejecución desarrollado en el programa en C para uso en la computadora virtual de C) COMPUTADORA VIRTUAL DE C (Implementada por rutinas de biblioteca en tiempo de ejecución cargadas con el programa compilado) COMPUTADORA VIRTUAL DEL SISTEMA OPERATIVO (Implementada por programas en lenguaje de máquina en ejecución en la computadora virtual de firmware) COMPUTADORA VIRTUAL DE FIRMWARE (Instrucciones en lenguaje de máquina implementadas por microcódigo ejecutado por la computadora real) COMPUTADORA DE HARDWARE REAL (Implementada por dispositivos físicos)

13 Programación de software de base (4)
La interfaz de usuario suele ser de cuatro tipos: Desde la línea de comandos Los datos de entrada se proveen desde la línea de comandos La salida es a través de la pantalla (salida estándar) o por medio de un archivo. De texto interactiva El software solicita de forma secuencial la información de entrada al programa. El software provee de un shell para la introducción de sentencias que son ejecutadas. Gráfica (programación por eventos) El software provee entre otras cosas de ventanas, menús, barras de herramientas, cuadros de dialogo, botones, eventos de ratón, etc. La salida, por lo regular, se da por medio de las propias ventanas y cuadros de dialogo del software, aunque también puede ser a archivo e inclusive a pantalla (salida estándar). Una combinación de cualquiera de las tres anteriores Las interfaces de usuario actuales hacen una combinación de las tres anteriores tomando lo mejor de cada una, lo que aumenta la productividad.

14 Programación de software de base (5)
A excepción de los IDE asociados a los lenguajes de programación, en la mayoría del software de base es común que la entrada se de mediante la línea de comandos o a través de un shell. Aún cuando en la actualidad el estándar es la programación visual (dirigida por eventos), las aplicaciones proveen al usuario de un shell para introducir sentencias o comandos. Ejemplos: Matlab, Autocad, la mayoría de los SO, etc. En la programación de interfaces gráficas en Linux es común usar GTK GTK es un grupo rutinas o funciones de bibliotecas para desarrollar GUI para los entornos gráficos de sistemas Linux. Está diseñado para programar en diversos lenguajes, entre ellos en C. La herramienta Glade genera plantillas usando GTK a partir de una especificación visual. Si se pretende programar interfaces gráficas en Windows utilizando el lenguaje C una opción viable son las API Win32 Win32 API es un conjunto de funciones residentes en bibliotecas (DLL) que permiten que una aplicación corra bajo Windows. La categorías principalmente utilizadas de éstas APIS son: GDI (interfaz gráfica), E/S de dispositivos y la Interfaz de usuario Windows. La IDE Dev-Cpp permite desarrollar software sobre dichas API utilizando el lenguaje C.


Descargar ppt "Programación de Sistemas"

Presentaciones similares


Anuncios Google