Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas...

30
Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos

Transcript of Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas...

Page 1: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Programación Java y Desarrollo de Aplicaciones

Modulo 1

Arquitectura de ordenadores

Tema 2

Sistemas operativos

Page 2: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Índice

Conceptos básicos Algunos sistemas operativos existentes Gestión de usuarios Gestión de memoria Gestión de ficheros Gestión de procesos Gestión de recursos La máquina virtual de Java (JVM)

Page 3: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Conceptos básicos

Controla el uso por parte de los programas de aplicación de todos los recursos del computador: memoria, CPU, unidades de entrada y salida

Independiza al programa de aplicación del hardware

Proporciona comunicación con otros computadores

Ejecuta servicios para los programas o aplicaciones

Ejecuta órdenes de los usuarios

Page 4: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Conceptos básicos Funciones del SO

Gestionan la memoria RAM de los distintos procesos. Un proceso es simplemente, un programa en ejecución, es decir, una tarea que realiza el ordenador.

Gestiona el almacenamiento de información de forma permanente en unidades de disco (disco duro, disquetes, pen drives, etc).

Gestiona el sistema de archivos que nos permite crear, eliminar y manipular archivos y carpetas (también llamadas directorios).

Crea mecanismos de protección para evitar el acceso de intrusos a recursos o servicios no autorizados.

Dispone de un intérprete de comandos. Es un recurso que permite al usuario comunicarse con el sistema operativo a través de órdenes o comandos que son escritos. También se llama consola o shell.

Gestiona los sistemas de entrada/salida, es decir, controla los diferentes dispositivos conectados al ordenador (monitor, impresora, etc)

Page 5: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Conceptos básicos

Niveles del sistema operativo

Page 6: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Conceptos básicos Interrupciones y excepciones

El SO ocupa una posición intermedia entre los programas de aplicación y el hardware. No se limita a utilizar el hardware a petición de las aplicaciones ya que hay situaciones en las que es el hardware el que necesita que se ejecute código del SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones: Algún dispositivo de E/S necesita atención. Se ha producido una situación de error al intentar ejecutar una

instrucción del programa (normalmente de la aplicación). En ambos casos, la acción realizada no está ordenada por el

programa de aplicación, es decir, no figura en el programa. Según los dos casos anteriores tenemos las interrupciones y la

excepciones:

Page 7: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Conceptos básicos Interrupción: señal que envía un dispositivo de E/S a la CPU

para indicar que la operación de la que se estaba ocupando, ya ha terminado.

Tratamiento de las interrupciones Una interrupción se trata en todo caso, después de terminar la

ejecución de la instrucción en curso. El tratamiento depende de cuál sea el dispositivo de E/S que ha

causado la interrupción, ante la cual debe poder identificar el dispositivo que la ha causado.

La ventaja de este procedimiento es que no se tiene que perder tiempo ejecutando continuamente rutinas para consultar el estado del periférico. El inconveniente es que el dispositivo debe tener los circuitos electrónicos necesarios para acceder al sistema de interrupciones del computador.

Page 8: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Conceptos básicos Importancia de las interrupciones

El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio de una aplicación, mientras otra permanece a la espera de que concluya una operación en un dispositivo de E/S.

El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el dispositivo, se continúe ejecutando.

En ciertos intervalos de tiempo puede convenir no aceptar señales de interrupción. Por ello las interrupciones pueden inhibirse por programa (aunque esto no deben poder hacerlo las mismas).

Un ejemplo de sincronismo por interrupción es el almacenamiento de caracteres introducidos mediante el teclado. Cuando se introduce un carácter, se codifica en el registro de datos del dispositivo y además se activa un bit del registro de estado quien crea una interrupción en el hardware. El procesador deja temporalmente la tarea que estaba completando y ejecuta la rutina de atención a la interrupción correspondiente. El teclado almacena el carácter en el vector de memoria intermedia ( también llamado buffer) asociada al teclado y despierta el proceso que había en el estado de espera de la operación de entrada/salida.

Page 9: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Conceptos básicos Excepción: una situación de error detectada por la

CPU mientras ejecutaba una instrucción, que requiere tratamiento por parte del SO.

Clases de excepciones Las instrucciones de un programa pueden estar mal

construidas por diversas razones: El código de operación puede ser incorrecto. Se intenta realizar alguna operación no definida, como

dividir por cero. La instrucción puede no estar permitida en el modo de

ejecución actual. La dirección de algún operando puede ser incorrecta o se

intenta violar alguno de sus permisos de uso.

Page 10: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Conceptos básicos Importancia de las excepciones

El mecanismo de tratamiento de las excepciones es esencial para impedir, junto a los modos de ejecución de la CPU y los mecanismos de protección de la memoria, que las aplicaciones realicen operaciones que no les están permitidas. En cualquier caso, el tratamiento específico de una excepción lo realiza el SO.

Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y éste es el que trata la situación como convenga.

Es bastante frecuente que el tratamiento de una excepción no retorne al programa que se estaba ejecutando cuando se produjo la excepción, sino que el SO aborte la ejecución de ese programa. Este factor depende de la pericia del programador para controlar la excepción adecuadamente.

Page 11: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Algunos sistemas operativos Windows (en sus diferentes versiones): Windows XP, Windows Vista,

Windows 7 ... Es un sistema operativo propiedad de la empresa MicroSoft que es privativo (de pago).

Mac OS: Es un sistema operativo propiedad de la empresa Apple, (el creador del Ipod) que es privativo.

Unix: Sistema operativo empleado por las supercomputadoras y ordenadores de grandes empresas, propiedad de la empresa AT&T y es privativo. Es un sistema muy seguro.

GNU/Linux: Sistema operativo que está en alza, completamente gratuito. Cualquiera lo puede modificar según sus necesidades. Además, es bastante seguro.

FreeBSD: Sistema operativo gratuito y según algunos autores uno de los más seguros.

Android: es un un sistema operativo orientado a dispositivos móviles y que usa una versión modificada del Kernel Linux. Es desarrollado por la Open Handset Alliance, que aglutina a fabricantes de software y hardware, entre los que destacan Google, T-Mobile, HTC, Qualcomm y Motorola entre otros.

Page 12: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de usuarios

Sistemas empotrados: sin usuarios directos forman parte de un sistema mayor ejemplo: controlador de un televisor

Sistemas monousuario: un solo usuario ejemplo: Windows 98

Sistemas multiusuario muchos usuarios Presenta protección entre usuarios ejemplos: Unix, Windows XP profesional

Page 13: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de usuarios

Los sistemas de protección pueden proteger cierta información o llamadas al sistema de cara a la gestión de usuarios o de cara a múltiples programas.

Clasificación de sistemas operativos según el nivel de protección Protegidos (Unix, Windows XP profesional) Semi-protegidos (Windows 98) No protegidos (Windows 3.1)

Page 14: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de memoria

La Memoria es una gran tabla de palabras o bytes que se referencian cada una mediante una dirección única. Este almacén de datos de rápido accesos es compartido por la CPU y los dispositivos de E/S, es volátil y pierde su contenido en los fallos del sistema. El SO es el responsable de: Conocer qué partes de la memoria están siendo utilizadas

y por quién. Decidir qué procesos se cargarán en memoria cuando

haya espacio disponible. Asignar y reclamar espacio de memoria cuando sea

necesario.

Page 15: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de memoria

Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de: Planificar los discos. Gestionar el espacio libre. Asignar el almacenamiento

Page 16: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de memoria

Un sistema de almacenamiento secundario es necesario, ya que la memoria principal (almacenamiento primario) es volátil y además muy pequeña para almacenar todos los programas y datos. También es necesario mantener los datos que no convenga mantener en la memoria principal. El SO se encarga de: Planificar los discos. Gestionar el espacio libre. Asignar el almacenamiento

Page 17: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de ficheros

Un archivo o fichero informático es un conjunto de bits almacenado en un dispositivo periférico.

Un archivo es identificado por un nombre y la descripción de la carpeta o directorio que lo contiene. Los archivos informáticos se llaman así porque son los equivalentes digitales de los archivos en tarjetas, papel o microfichas del entorno de oficina tradicional. Los archivos informáticos facilitan una manera de organizar los recursos usados para almacenar permanentemente datos en un sistema informático.

Page 18: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de ficheros

En los sistemas informáticos modernos, los archivos siempre tienen nombres. Los archivos se ubican en directorios. El nombre de un archivo debe ser único en ese directorio. En otras palabras, no puede haber dos archivos con el mismo nombre en el mismo directorio.

Page 19: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de ficheros El nombre de un archivo y la ruta al directorio del

archivo lo identifica de manera unívoca entre todos los demás archivos del sistema informático -no puede haber dos archivos con el mismo nombre y ruta-.

El aspecto del nombre depende del tipo de sistema informático que se use.

Algunos sistemas informáticos permiten nombres de archivo que contengan espacios; otros no. La distinción entre mayúsculas y minúsculas en los nombres de archivo está determinada por el sistemas de archivos.

Page 20: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de ficheros

¿Qué acciones permite el sistema operativo llevar a cabo sobre ficheros? Construir y eliminar archivos y directorios. Ofrecer funciones para manipular archivos y

directorios. Establecer la correspondencia entre archivos y

unidades de almacenamiento. Realizar copias de seguridad de archivos.

Page 21: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de ficheros

¿Qué es un sistema de archivos? Es el modo en el que se guardan los archivos en discos duros.

Los sistemas de archivos más comunes son: FAT32: empleado hasta Windows 98. NTFS: empleado por Windows XP y Windows Vista Ext3: empleado por Linux

Desde el punto de vista del usuario estas diferencias pueden parecer insignificantes a primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo, los sistemas de ficheros FAT32 y NTFS, que se utilizan fundamentalmente en sistemas operativos de Microsoft, tienen una gran diferencia para un usuario que utilice una base de datos con bastante información ya que el tamaño máximo de un fichero con un Sistema de Archivos FAT32 está limitado a 4 gigabytes, sin embargo, en un sistema NTFS el tamaño es considerablemente mayor.

Page 22: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de ficheros

Particiones del disco duro Una partición es una división del disco duro, de

forma que el sistema operativo la considera como si fuera una unidad totalmente independiente. Cada partición puede tener un sistema de archivos distinto. Esto hace que en cada partición puedas tener sistemas operativos distintos en un mismo ordenador, sin que interfieran entre sí.

Page 23: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de procesos

Concepto de programa y proceso Programa:

Es un fichero ejecutable, que reside en el disco Generalmente creado mediante un compilador

Proceso: Es una instancia de un programa que está siendo

ejecutada Un mismo programa se puede ejecutar varias

veces a la vez, dando lugar a varios procesos Es la unidad de concurrencia básica Tiene un espacio de direcciones propio

Page 24: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de procesos La computación concurrente (o simplemente concurrencia)

es la simultaneidad en la ejecución de múltiples tareas interactivas.

Estas tareas pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa.

Las tareas se pueden ejecutar en un sola unidad central de proceso (multiprogramación), en varios procesadores o en una red de computadores distribuidos.

La programación concurrente está relacionada con la programación paralela, pero enfatiza más la interacción entre tareas. Así, la correcta secuencia de interacciones o comunicaciones entre los procesos y el acceso coordinado de recursos que se comparten por todos los procesos o tareas son las claves de esta disciplina.

Page 25: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de procesos

Tipos de sistemas operativos según la gestión de concurrencia monoproceso y monotarea: un solo programa

con un solo flujo de control (MS-DOS) multitarea: capaz de ejecutar un sólo programa,

pero varias de sus partes a la vez (MaRTE OS) multiproceso: capaz de ejecutar varios

programas a la vez

Page 26: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de procesos

Acciones que se llevan a cabo sobre procesos Crear un proceso

A partir de un proceso padre, como una copia de él (UNIX)

A partir de un fichero ejecutable en el disco (Win32) Ejecutar un proceso

Arrancado por el sistema: proceso por lotes o batch Arrancado por el usuario: proceso interactivo

Terminar un proceso Terminación normal Terminación por un error Otro proceso o el usuario lo terminan

Page 27: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

Gestión de recursos

Como gestor de recursos, el Sistema Operativo administra: La CPU (Unidad Central de Proceso, donde está

alojado el microprocesador). Los dispositivos de E/S (entrada y salida) La memoria principal (o de acceso directo). Los discos (o memoria secundaria). Los procesos (o programas en ejecución). y en general todos los recursos del sistema.

Page 28: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

La máquina virtual de Java (JVM)

La máquina virtual de Java (Java Virtual Machine, JVM) es una capa que se interpone entre el sistema operativo y las aplicaciones Java.

De cara a las aplicaciones, ejerce de sistema operativo, proporcionando una API y haciendo de gestor del sistema.

De cara al sistema operativo, ejerce de aplicación, utilizando los recursos del sistema.

Page 29: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.

La máquina virtual de Java (JVM)

La máquina virtual de Java permite que las aplicaciones java sean compiladas una sola vez, pudiéndose utilizar en cualquier máquina, independientemente del sistema operativo que utilice.

Page 30: Programación Java y Desarrollo de Aplicaciones Modulo 1 Arquitectura de ordenadores Tema 2 Sistemas operativos.