Datos personales

INTEGRANTES DEL EQIPO

Cruz Angulo Juan Carlos.
Diaz Astorga Jessica.
Godinez Hernandez Diana Karen.
Mercado Pichardo Cristina,

miércoles, 30 de noviembre de 2011

Unidad 3


DESCRIPCIÓN Y CONTROL DE PROCESOS

Proceso
Un proceso es un programa en ejecución la ejecución de un proceso debe proceder de manera secuencial.

Estados de los procesos
A medida que un proceso s ejecuta cambia de estado.
El estado de un proceso esta definido en parte por la actividad actual  del proceso, el cual puede encontrarse en los siguientes estados.
1.- Nuevo: el proceso se esta creando
2.- En ejecución: se están ejecutando instrucciones
3.- Listo: Proceso que esta preparado para ejecutarse en cuanto se pueda
4.- Bloqueado: Proceso que no se puede ejecutar hasta que se produzca cierto suceso como la terminación de e/s.
5.- Terminado: Proceso que ha sido  excluido por el sistema del grupo e procesos ejecutables, bien porque se detuvo o fue abandonado.

Control de Procesos
Los requisitos que debe satisfacer un sistema operativo están expresados haciendo referencia a los procesos.
·         El S.O. debe asignar los recursos a los procesos conforme a una política específica, por ejemplo en ciertas funciones o aplicaciones que son de mayor prioridad.
·         El S.O. dará soporte a la comunicación entre procesos por parte del usuario, labores que pueden ayudar en la estructuración de las aplicaciones.

Modos de ejecución
Se asocian con el sistema operativo y los programas del usuario, la mayoría de los procesadores soportan al menos dos modos de ejecución. Se usan dos modos porque es necesario proteger al sistema y a las tablas importantes del mismo como los bloques de control de procesos de las injerencias de los programas
·         
      Modo sistema (o modo privilegiado)
El cual tiene ciertas instrucciones que solo se ejecutan de esta forma
·         
      Modo Usuario
Los programas de usuario se ejecutan normalmente de este modo

      Hilos
Es una pequeña unidad de procesamiento que rescata a un proceso antes ejecutado, guarda la llamada a dicho proceso para ser ejecutado más rápidamente en caso de ser requerido, característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente).
Los hilos comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc.
Un hilo es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea.

Principios generales de la Concurrencia
Comprende multiples cuestiones en cuanto al diseño de un sistema operativo, como son la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación del tiempo de procesador a los procesos.  Dichas cuestiones no solo surgen en entornos de multiprocesadores, sino en sistemas multiprogramados con un solo procesador; los procesos se intercalan en el tiempo aparentando una ejecución simultánea lo que produce beneficios en la eficiencia del procesamiento y en la estructuración de los programas a lo cual le podemos llamar concurrencia.
Los problemas surgen a consecuencia de la velocidad de ejecución de los procesos que no pueden predecirse y depende de las actividades de otros procesos.


Concurrencia
Es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre si
La concurrencia puede presentarse en tres contextos diferentes:
 Múltiples aplicaciones: multiprogramación.
 Aplicaciones estructuradas: algunas aplicaciones pueden implementarse como un conjunto de procesos concurrentes.
 Estructura del sistema operativo

Exclusión Mutua
consiste en que un solo proceso excluye temporalmente a todos los demás para usar un recurso compartido de forma que garantice la integridad del sistema.

Sección critica.
Es la parte del programa con un comienzo y un final claramente marcados que generalmente contiene la actualización de una mas variables compartidas. Para que una solución al problema de la exclusión mutua sea válida, se tienen que cumplir una serie de condiciones:
  • Hay que garantizar la exclusión mutua entre los diferentes procesos a la hora de acceder al recurso compartido. No puede haber en nungún momento dos procesos dentro de sus respectivas secciones criticas.
  • No se deben hacer suposiciones en cuanto a la velocidad relativa de los procesos en conflicto.
  • Ningún proceso que esté fuera de sus sección critica debe interrumpir a otros para el acceso a la sección critica.
  • Cuanto mas de un proceso desee entrar en su sección critica, se le debe conceder la entrada en un tiempo finito, es decir, que nunca se le tendrá esperando en un bucle que no tenga final.
  • Para solucionar el problema de la exclusión mutua vamos a tener tres tipos de soluciones:
    • Software
    • Hardware
    • Aportadas por el S.O

Sincronización
·         Entre subrutinas de la misma tarea
En este caso una subrutina llamada asicrónicamente (como respuesta a una señal) deberá coordinar el acceso con el resto del programa. (Por ejemplo, el acceso a una variable global. Ejemplos: práctico.).
·         Entre tareas del mismo proceso
Las tareas del mismo proceso son ejecutadas en un orden no definido por el SO y pueden ser interrumpidas en cualquier momento.
·         Entre procesos diferentes
Diferentes procesos cooperativos deberán sincronizarse para acceder a recursos, como por ejemplo, un archivo de configuración R/W.

Cuando no es necesario sincronizar:
Cuando no hay recursos compartidos.
Cuando sabemos el orden en el cual nuestro código se ejecutará.
Cuando el acceso al recurso compartido es en sí atómico.



Semáforos
Ayudan a solucionar problemas de procesos concurrentes, se diseño un S.O. como un conjunto de procesos secuenciales, eficiente y fiable para dar soporte a la cooperación. Los procesos de usuario podrían utilizar estos mecanismos si el procesador y el S.O. los hacían disponible.
Múltiples procesos pueden cooperar por medio de simples señales, de manera que se pueda obligar a un proceso a detener en una posición determinada hasta que reciba una señal específica. Para la señalización se usan variables especiales llamadas semáforos "S", los procesos ejecutan las primitivas wait para un proceso suspendido y signal para un para ejecutar .

Monitores del Sistema Operativo
Los monitores son estructuras de un lenguaje de programación que ofrecen una funcionalidad equivalente a las de los semáforos pero son más fáciles de controlar.
 es un modulo de software que consta de uno o más procedimientos, una secuencia de inicio y uno datos locales. Sus características son las siguientes:
  1. Solo los procedimientos del monitor acceden a variables de datos locales.
  2. Un proceso entra en el monitor invocando a uno de sus procedimientos.
  3. En el monitor solo un proceso puede ser ejecutado en un momento dado; cualquier otro proceso quedara suspendido esperando la disponibilidad del monitor.
El monitor proporciona variables de condición que son accesibles solo desde dentro del monitor.
Hay dos funciones para operar variables de condición:
  1. cwait (c): suspende la ejecución del proceso que llama bajo la condición "c". El monitor está ahora disponible para otro proceso.
  2. csignal (c): retorna la ejecución de un proceso suspendido después de un cwait, bajo la misma condición. Si hay varios procesos elige uno de ellos.

 Pasos de mensajes de los Sistemas Operativos
El paso de mensajes es un método que permite que se realice ambas funciones. Este método tiene la ventaja de que es de fácil implementación en sistemas distribuidos y también es sistemas de multiprocesador y monoprocesador de memoria compartida.
La funcionalidad real del paso de mensajes, generalmente, se da por medio de un par de primitivas:
·         send(destino, mensaje)
·         receive(origen, mensaje)
Este es el conjunto mínimo de operaciones necesarias para que los procesos puedan dedicarse al paso de mensajes.

Interbloqueo
Es el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión concurrente de procesos, no existe una solución eficiente para el caso general.
Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o más procesos.

Condiciones para producir interbloqueo
 En la política del sistema operativo, deben darse tres condiciones para que pueda producirse un interbloqueo:
1-     Condición de exclusión mutua: Cada recurso esta asignado a un único proceso o esta disponible.
2-     Condición de posesión y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos.
3-     Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un  proceso. El proceso que los posee debe liberarlos en forma explicita.

miércoles, 12 de octubre de 2011

CUADRO COMPARATIVO (WINDOWS, MAC, LINUX, GOOGLE)


Sistemas Operativos



Hoy en día es muy común utilizar uno o diferentes sistemas operativos sin embargo difundimos en este blog una definición clara y concisa de lo que a este  se refiere y las principales funciones que presenta.
Un sistema operativo es el software básico de una computadora que proporciona una interfaz entre el usuario y los programas.
Las funciones básicas del Sistema operativo son administrar, gestionar los recursos de la maquina así como coordinar el hardware y aplicaciones u organizar archivos, etc.

SUB-SISTEMAS DE UN SO. 

Un sub-sistema es otro sistema que se ejecuta sobre un SO y es dependiente del mismo, este puede ser un intérprete de comando (Shell) mismo del sistema operativo primario o puede ser una maquina virtual.



ESTRUCTURA DE LOS S.O


ESTRUCTURA MONOLITICA:

Es la estructura de los primeros sistemas operativos constituidos fundamentalmente es solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra. Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligador. Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora como memoria, disco etc.
Generalmente están hechos a medida, por lo que son eficientes y rápidos en su ejecución y gestión, pero carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones.



ESTRUCTURA JERARQUICA:

A medida que fueron creciendo las necesidades de los usuarios se hizo necesaria una mayor organización del sistema operativo, donde una parte del sistema contenía subpartes y esto organizado en forma de niveles.Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con una interfaz con el resto de elementos.Se constituyó una estructura jerárquica o de niveles en los sistemas operativos. Se puede pensar también en estos sistemas como si fueran `multicapa'. (Multics y Unix) En esta estructura se basan prácticamente la mayoría de los sistemas operativos actuales. Llamada también de anillos con-céntricos o "rings" En el sistema de anillos, cada uno tiene una apertura, conocida como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas inferiores. De esta forma, las zonas más internas del sistema operativo o núcleo del sistema estarán más protegidas de accesos indeseados desde las capas más externas. Las capas más internas serán, por tanto, más privilegiadas que las externas.



MAQUINA VIRTUAL

Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramación y la máquina extendida. El objetivo de los sistemas operativos de máquina virtual es  integrar distintos sistemas operativos dando la sensación de ser varias maquinas diferentes.
El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como misión llevar a cabo la multiprogramación, presentando a los niveles superiores tantas máquinas virtuales como se soliciten. Estas máquinas virtuales no son máquinas extendidas, sino una copia de la máquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca la maquina extendida al usuario.



CLIENTE-SERVIDOR (MICROKERNEL)

Este puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas. Este sistema sirve para toda clase de aplicaciones.
El núcleo tiene como misión establecer la comunicación entre los clientes y los servidores. Los procesos pueden ser tanto servidores como clientes, ofrece gran flexibilidad en cuanto a los servicios posibles en el sistema final, ya que el núcleo provee solamente funciones muy básicas de memoria, entrada/salida, archivos y procesos, dejando a los servidores proveer la mayoría que el usuario final o programador puede usar. Estos servidores deben tener mecanismos de seguridad y protección que serán filtrados por el núcleo que controla el hardware. Actualmente se está trabajando en una versión de UNIX que contempla en su diseño este paradigma.