sistemas operativos

sistemas operativos
¡Conocelos a fondo!

miércoles, 7 de mayo de 2014

Conclusion


Un sistema operativo no es solo como usualmente lo conocemos, conlleva una serie de pequeños detalles que lo hacen ser, una cosa depende de la otra, desde lo más bajo del sistema operativo hacia lo más alto cada elemento depende uno del otro como el hardware del software y viceversa decimos que el hardware de un computador sin un controlador que es software, no funcionaria.

Asimismo dependiendo de las necesidades que ha tenido el hombre a lo largo de la historia ha requerido de computadores, pero; ¿Qué es una maquina sin su parte lógica? Esa fue la pregunta que se formularon muchos, y fue allí donde surgió la necesidad de un software que controlara las computadoras de aquellos tiempos, después surgieron problemas, y de la misma manera  errores, se solucionaban y encontraban nuevos, así ha sido por muchos años al día de hoy que podemos gozar de computadores personales que son parte indispensable de nuestra vida, los vemos en todo lugar, en nuestro trabajo, en la escuela, hasta en una tienda se requiere para llevar el conteo de productos, en coches actualmente, para llevar un control sobre  lo que este requiere.

La programación está presente en muchos lugares hasta una lavadora la contiene, gracias a esto hoy en día tenemos tantas comodidades  como pudiésemos imaginar y a veces no nos damos cuenta que todo empezó en  un sistema operativo que conllevo programación,  y de aquí nacieron programas y demás utilidades que hoy en día aun ocupamos.

El sistema operativo ya sea de una computadora, de un televisor, de una consola de videojuegos así como de millones de aparatos que podríamos nombrar siempre realizara su función de hacer un uso eficiente del aparato que se tiene y aprovecharlo al máximo si el software lo permite.
 

domingo, 4 de mayo de 2014

Tecnicas de administracion del planificador


FIFO

Cuando se tiene que elegir a que proceso asignar la CPU se escoge al que llevara más tiempo listo. El proceso se mantiene en la CPU hasta que se bloquea voluntariamente.


Al igual que el algoritmo fifo las ráfagas se ejecutan sin interrupción, por tanto, solo es útil para entornos batch. Su característica es que cuando se activa el planificador, este elige la ráfaga  de menor duración. Es decir, introduce una noción de prioridad entre ráfagas. Hay que recordar que en los entornos batch se pueden hacer estimaciones del tiempo de ejecución de los procesos. La ventaja de este al fifo es que minimiza el tiempo de finalización promedio.




Este es uno de los algoritmos más antiguos, sencillos y equitativos en el reparto de la CPU entre los procesos, muy válido para entornos de tiempo compartido. Cada proceso tiene asignado un intervalo de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloque o termina antes de agotar su quantum también se alterna el uso de la CPU.

viernes, 2 de mayo de 2014

Niveles, objetivos y criterios de planificacion


Se consideran tres niveles importantes de planificación, los que se detallan a continuación:

Ø  Planificación de alto nivel: se encarga de llevar procesos de disco a memoria y viceversa.

Ø  Planificación de nivel intermedio: en algunos casos, en especial cuando el sistema esta sobrecargado, el planificador  de nivel medio encuentra ventajoso retirar trabajos activos de la memoria para reducir el grado de multiprogramación.

Ø  Planificación de bajo nivel: se encarga de pasar de unos procesos a otro en memoria principal. Determinando a cual proceso listo se le asignara el CPU cuando este se encuentra disponible. Determina a que proceso listo se le asigna la CPU cuando esta queda disponible y asigna la CPU al mismo, es decir que despacha al CPU al proceso.


miércoles, 30 de abril de 2014

Sincronizacion de procesos



El primer gran avance en la resolución de los problemas de los procesos concurrentes llego en 1965,  con el tratado de Dijkstra  sobre la cooperación entre procesos secuenciales (DIJK65) dijkstra estaba interesado en el diseño de un sistema operativo como un conjunto de procesos secuenciales cooperantes y en el desarrollo de mecanismos eficientes y fiables para dar soporte  a la cooperación. Los procesos de usuario podrán utilizar estos mecanismos eficientes y fiables para dar soporte a la cooperación.

Los procesos de usuario podrán utilizar estos mecanismos en tanto que el procesador y el sistema operativo los hagan disponibles.

A fin de facilitar la escritura de programas correctos, hoare y brinch Hansen  propusieron una primitiva de sincronización de nivel más alto llamada monitor. Sus propuestas tenían  pequeñas diferencias, que describiremos mas adelante. Un monitor es una colección de procedimientos, variables y estructuras de datos que se agrupan en un tipo especial de modulo o paquete. Los procesos pueden invocar los procedimientos de un monitor en el momento en que deseen, pero no pueden acceder directamente a las estructuras de datos internas del monitor desde procedimientos declarados afuera del monitor.

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, para el caso general no existe una solución eficiente. En esta sección, se examinara la naturaleza del problema del interbloqueo.

La estrategia de prevención del interbloqueo consiste, a grandes rasgos,  en diseñar un sistema de manera que está excluida, a priori, la posibilidad de interbloqueo. Los métodos para prevenir el interbloqueo son de dos tipos.  Los métodos indirectos consisten en impedir la aparición de alguna  de las tres condiciones necesarias. Los métodos directos consisten en evitar la aparición del círculo vicioso de espera.

Se examinaran a continuación las técnicas relacionadas con cada una de las cuatro condiciones.
 


En general, la primera de las cuatro condiciones no puede anularse. Si el acceso a un recurso necesita exclusión mutua, el sistema operativo debe soportar la exclusión mutua.  Algunos recursos, como los archivos, pueden permitir varios accesos para lectura, pero solo accesos exclusivos para escritura. Incluso en este caso, se puede producir interbloqueo si más de un proceso necesita permiso de escritura.
 


La condición de retención y espera puede prevenirse exigiendo que todos los procesos soliciten todos los recursos que necesiten a un mismo tiempo y bloqueando el proceso hasta que todos los recursos puedan concederse  simultáneamente. Esta solución resulta ineficiente por dos factores. En primer lugar, un proceso puede estar suspendido durante mucho tiempo, esperando que se concedan todas sus solicitudes de recursos, cuando de hecho podría haber avanzado con solo algunos de los recursos.  Y en segundo lugar, los recursos asignados a un proceso pueden permanecer sin usarse durante periodos considerables, tiempo durante el cual se priva del acceso a otros procesos

La condición de no apropiación puede prevenirse de varias formas. Primero, si a unos procesos que retiene ciertos recursos se le deniega una nueva solicitud, dicho procesos deberá liberar sus recursos anteriores y solicitarlos de nuevo, cuando sea necesario, junto con el recurso adicional.


La condición del círculo vicioso de espera puede prevenirse definiendo una ordenación lineal de los tipos de recursos. Si a un proceso se le han asignado recursos de tipo R, entonces solo podrá realizar peticiones posteriores sobre los recursos de los tipos siguientes a R en la ordenación.
 


Las estrategias de prevención del interbloqueo son muy conservadoras; solucionan el problema del interbloqueo  limitando el accesos a los recursos e imponiendo restricciones a  los procesos. En el lado opuesto, las estrategias de  detección del interbloqueo no limitan el acceso a los recursos ni restringen las acciones de los procesos. Con detección del interbloqueo, se concederán los recursos que los procesos necesiten  siempre que sea posible. Periódicamente, el sistema operativo ejecuta un algoritmo que permite detectar la condición de círculo vicioso de espera descrita en el punto 4 anterior. Puede emplearse cualquier algoritmo de detección de ciclos en grafos dirigidos.


Un sistema que pretenda recuperarse  del interbloqueo, debe invocar un  algoritmo de detección cuando lo considere oportuno.

sábado, 19 de abril de 2014

Concurrencia y secuencialidad


La concurrencia es el punto clave de los tres campos anteriores y fundamentales para el diseño de sistemas operativos. La concurrencia comprende un gran número de cuestiones de diseño, incluyendo la comunicación entre procesos de varios procesos y asignación del tiempo  de procesador a los procesos. Se verá que estas cuestiones no solo surgen en entornos de multiprocesadores y procesos distribuidos, sino incluso en sistemas multiprogramados con un solo procesador.
 
 

Hay varias formas de satisfacer los requisitos de exclusión mutua. Una manera es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente. Así pues, tanto si  son programas del sistema como de aplicación, los procesos deben coordinarse unos  con otros para cumplir la exclusión mutua, sin ayuda por parte del lenguaje de programación o del sistema operativo. Estos métodos se conocen como soluciones por software. Aunque las soluciones por software son propensas a errores y a una fuerte carga de proceso, resulta útil estudiar estos métodos para tener un mejor entendimiento de la complejidad del proceso concurrente. Un segundo método propone el uso de instrucciones de la maquina a tal efecto. Estas tienen la ventaja de reducir  la sobrecarga. El tercer método consiste en dar algún tipo de soporte en el sistema operativo.

jueves, 17 de abril de 2014

Administracion de procesos y del procesador.


El concepto de proceso es fundamental en la estructura de los sistemas operativos. Este término fue acuñado por primera vez por los diseñadores en los años 60. Es un término algo más general que el de trabajo. Se han dado muchas definiciones para el término proceso, entre las que se incluyen las siguientes:

Ø  Un programa de ejecución.

Ø  El “espíritu animado” de un programa.

Ø  La entidad que puede ser asignada al procesador y ejecutada por el.

Ø  Estados y transiciones de los procesos

El estado de un proceso puede plasmarse como un gráfico el  cual asemeja una máquina virtual. Cuando ninguno de los procesos  en memoria principal está en estado listo el sistema operativo expulsa hacia el disco a alguno de los procesos que este bloqueado y lo  pasa a alguna lista de suspendidos.



En la mayoría de los sistemas operativos, estas dos características son, de hecho, la esencia de un proceso.  Sin embargo, algunos argumentos  pueden convencer de estas dos características  son independientes y que deben ser tratadas de manera independiente por el sistema operativo. Esto se hace así en una serie de sistemas operativos, en partículas en algunos sistemas operativos de desarrollo reciente. Para distinguir estas dos características, la unidad de expedición se conoce como hilo (thread) o proceso ligero (lightweight process). Mientras que a la unidad de propiedad de los recursos se le suele llamar procesos o tarea.

 

miércoles, 9 de abril de 2014

Nucleo o kernel


El Núcleo o kernel es una colección de módulos de software que se ejecutan en forma privilegiada, lo que significa que tienen acceso pleno a los recursos del sistema. El Núcleo normalmente representa solo una pequeña parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el código que más se utiliza. Por esta razón, el núcleo reside por lo regular en la memoria principal, mientras que otras partes del sistema operativo son cargadas en la memoria principal.
 
El núcleo de un sistema operativo normalmente contiene el código necesario para realizar las siguientes funciones:

Ø  Manejo de interrupciones.

Ø  Creación y destrucción de procesos.

Ø  Cambio de estado de los procesos.

Ø  Despacho.

Ø  Suspensión y reanudación de procesos.

Ø  Sincronización de procesos.

Ø  Comunicación entre procesos.

Ø  Manipulación de los bloques de control de procesos.

Ø  Apoyo para las actividades de entrada/salida.

Ø  Apoyo para asignación y liberación de memoria.

Ø  Apoyo para el sistema de archivos.

Ø  Apoyo para el mecanismo de llamada y retorno de un procedimiento.

Ø  Apoyo para ciertas funciones de contabilidad del sistema.


Casi todos los computadores tienen un mecanismo mediante el cual otros modulos pueden interrumpir la ejecución normal de procesador. Enumera las clases mas comunes de interrupciones.

Las interrupciones aparecen,  principalmente, como una vía para mejorar la eficiencia del procesamiento. Por ejemplo, la mayoría de los dispositivos externos son mucho más lentos.
 

Con las interrupciones, el procesador se puede dedicar a la ejecución de otras instrucciones mientras una operación de E/S está en proceso. Al igual que antes, el programa de usuario alcanza un punto en el que  hace una llamada al sistema en forma de una llamada escribir. El programa E/S que se invoca consta solo del código de preparación y de la orden concreta de E/S. Después de que se ejecuten estas pocas instrucciones, se devuelve el control al programa de usuario. Mientras tanto, el dispositivo externo estará ocupado recibiendo datos desde la memoria del computador e imprimiéndolos. Esta operación E/S se lleva a cabo concurrentemente con la ejecución de las instrucciones del programa de usuario.


Optimiza la eficiencia del sistema, de acuerdo con criterios considerados importantes para el ambiente del sistema operativo. Sus funciones son:

Ø  Examina la prioridad de los procesos.

Ø  Controla los dispositivos de periféricos conectados a la máquina.

Ø  Cambio de contexto.

Ø  Cambio a modo usuario.
 

Es una función básica de los sistemas operativos. Los procesos pueden comunicarse entre sí a través de compartir espacios de memoria, ya sean variables compartidas o buffers o a través de las herramientas provistas por las rutinas de IPC.

La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí. Normalmente a través de un sistema de bajo nivel de paro de mensajes que ofrece la red subyacente.

La comunicación se establece siguiendo una serie de reglas (protocolos de comunicación).

 Los protocolos desarrollados para internet son los mayormente usados: protocolo de internet (capa de red),  protocolo de control de transmisión (capa de transporte) y protocolo de transferencia de archivos, protocolo de transferencia de hipertexto  (capa de aplicación).
 

 

lunes, 7 de abril de 2014

Introduccion al sistema operativo

Introducción al sistema operativo



El sistema operativo es el programa o software más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etc. En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un policía de tráfico, se asegura de que los programas y usuarios que están funcionando al mismo tiempo no interfieran entre ellos. El sistema operativo también es responsable de la seguridad, asegurándose de que los usuarios no autorizados no tengan acceso al sistema.


Un sistema operativo es un software que proporciona un acceso sencillo y seguro  al soporte físico del ordenador (hardware), ocultando al usuario detalles de la implementación particular y creando la ilusión de existencia de recursos ilimitados o abundantes.


Un sistema operativo es un programa que controla la ejecución de los programas de aplicación y que actúa como interfaz entre el usuario de un computador y el hardware de la misma. Puede considerarse que un sistema operativo tiene tres objetivos o lleva a cabo tres funciones:

Comodidad: un sistema operativo hace que un computador sea más cómodo de utilizar.

Eficiencia: un sistema operativo permite que los recursos de un sistema informático se aprovechen de una manera más eficiente.

Capacidad de evolución: un sistema operativo debe construirse de modo que permita el desarrollo efectivo, la verificación y la introducción de nuevas funciones en el sistema y, a la vez, no interferir en los servicios que brinda.



Los sistemas operativos han estado evolucionando durante muchos años. La primera computadora digital verdadera fue diseñada por el matemático ingles charles Babbage ( 1792-1871). Aunque Babbage invirtió la mayor parte de su vida y su fortuna tratando de construir su “maquina analítica”, nunca logro que funcionara correctamente porque era totalmente mecánica, y la tecnología de su época no podía producir las ruedas, engranes y levas con la elevada precisión que el requería. Huelga decir que la maquina analítica no contaba con un sistema operativo.

Como acotación histórica interesante, diremos que Babbage se dio cuenta de que necesitaría software para su máquina analítica, así que contrato a una joven mujer, Ada Lovelace, hija del famoso poeta británico, Lord Byron, como la primera programadora de la historia. El lenguaje de programación Ada recibió su nombre en honor a ella.

Ø  La primera generación (1945-55): tubos de vacío y tableros de conmutación.

Ø  La segunda generación (1955-65): transistores y sistemas por lote
 


Con el paso del tiempo, los sistemas operativos fueron clasificándose de diferentes maneras, dependiendo del uso o de la aplicación que se les daba. A continuación se mostraran diversos tipos de sistemas operativos que existen en la actualidad:

Ø  Sistemas operativos de multiprogramación (multitarea).

Ø  Sistema operativo Monotarea.

Ø  Sistema operativo Monousuario.

Ø  Sistema operativo Multiusuario.

Ø  Sistemas operativos por lotes.

Ø  Sistemas operativos de tiempo real.

Ø  Sistemas operativos de tiempo compartido.

Ø  Sistemas operativos distribuidos.

Ø  Sistemas operativos de red.

Ø  Sistemas operativos paralelos.
 


 

Cargador: cualquier programa que requiere ser ejecutado en la computadora, deberá ser transferido desde su lugar de residencia a la memoria principal.

Cargador para el sistema operativo: este programa se encarga de transferir desde algún medio de almacenamiento externo (disco, cinta o tambor) a la memoria principal, los programas del sistema operativo que tienen como finalidad establecer el ambiente de trabajo del equipo de cómputo, existe un programa especial almacenado en memoria ROM que se encarga de accesar a este programa cargador.

Cargador incluido en el sistema operativo: su función es cargar a memoria todos los archivos necesarios para la ejecución de un proceso.

Supervisor (ejecutivo o monitor): es el administrador del sistema que controla todo el proceso de la información por medio de un gran número de rutinas que entran en acción cuando son requeridos funge como enlace entre los programas del usuario y todas las rutinas que controlan los recursos requeridos por el programa para posteriormente continuar con su ejecución.

El supervisor también realiza otras funciones como son: administrar la memoria, las rutinas que controlan el funcionamiento de los recursos de la computadora, manejo de archivos, administración y control de la ejecución de los programas.

Lenguaje de comunicación: es el medio a través del cual el usuario interactúa directamente con el sistema operativo y está formado por comandos que son introducidos a través de algún dispositivo.

Utilería de sistema: son programas  o rutinas del sistema operativo que realizan diversas funciones de uso común o aplicación frecuente como son: clasificar, copiar e imprimir informacion