sistemas operativos
DESCRIPTION
Contienes definiciones basicas de un sistema operativo, transiciones tipo de programas en java y procesosTRANSCRIPT
SISTEMAS OPERATIVOS
CONCEPTOS BÁSICOS
Un programa software, es un artefacto construido por un desarrollador de software, utilizando algún lenguaje de programación
Cuando un programa se ejecuta en un compilador se representa como un proceso
Programas y procesos de computación
En ejecución – el ocupa la CPU, se esta ejecutando
Listo o preparado – dispone de todos los recursos
Bloqueado – falta recursos para seguir ejecutándose
Solamente puede haber un proceso en ejecución a la vez, pero pueden existir varios listos y varios pueden estar bloqueados
Transiciones de estado de los procesos
El código para crear procesos se lo realiza en JAVA, se conoce tres tipos:
AplicacionesApplesServlets
Tipos de programas en JAVA
Una clase java (APLICACIÓN), tiene un método principal (main) y se ejecuta como un proceso independiente (stand – alone)
Un APPLET, no tiene un método main y se ejecuta mediante el uso de un navegador (appletviewer)
Un SERVLET se parece a un applet, ya que no tiene un método main y se ejecuta en un servido r web
Un programa java que se compile sin importar el tipo de programa, se convierte en un código denominado bytecode (código objeto universal)
PROGRAMACION CONCURRENTE
La computación distribuida supone el uso de programación concurrente, que consiste en la ejecución simultanea de procesos
Hay tres tipos:
1. Procesos concurrentes ejecutados en múltiples computadores2. Procesos concurrentes ejecutados en un solo computador3. Programación concurrente dentro de un proceso
Procesos concurrentes ejecutados en múltiples computadores.
Son procesos separados ejecutándose concurrentemente en computadoras independientes interconectados a través de una red.
Interactúan con otros procesos mediante el intercambio de datos sobre la red, pero su ejecución es completamente independiente
La programación concurrente, que implica a múltiples máquinas requiere de determinado soporte de programación.
Procesos concurrentes ejecutados en un único computador
La concurrencia puede ser real o virtual
La concurrencia multitarea solo es posible si el computador tiene múltiples CPU, de manera que cada CPU pueda ejecutar un proceso
Se utiliza tiempo compartido, lo que permite que los procesos puedan ejecutarse por turnos, creando una ilusión que se ejecutan en paralelo
No se necesita una programación especial, para llevar a cabo este tipo de programación.
Programación concurrente dentro de un proceso
Además de la programación concurrente entre diferentes procesos, muchas veces un único programa necesita iniciar diferentes tareas que se ejecuten concurrentemente.
También se podrá necesitar que se ejecute varias tareas en paralelo por motivo de rendimiento.
La programación concurrente dentro de un proceso se lleva a cabo a través de dos tipos de herramientas, proporcionadas por el sistema operativo:
1. Procesos padres e hijos2. Threads o hilos
Procesos padres e hijos
En tiempo de ejecución, un proceso puede crear procesos subordinados o procesos hijos.
A través de la multitarea real o virtual, el proceso original, denominado proceso padre, continua ejecutándose simultáneamente con el proceso hijo.
Un proceso hijo es un proceso completo que consiste en un programa en ejecución, con valores propios información de estado, que hereda del proceso padre.
Un proceso padre puede saber cuando un proceso hijo ha finalizado.
http://www.unach.edu.ec/Virtualizacion/Sistemas_Operativos/paginas/Unidad8.gif
Threads o hilos
En vez de procesos hijos, un proceso crear threads o hilos, también conocidos como procesos ligeros
Los hilos poseen una mínima información de estado, comportándose por lo demás de la misma forma que los procesos
Debido a que implican menos sobrecarga, es preferible utilizar hilos procesos hijos
El software correspondiente al programa debe escribirse con la lógica necesaria para la creación de hilos y la coordinación o sincronización de la ejecución de la familia de hilos creados por el hilo padre.