2.6 Técnicas de administración del planificar
Las disciplinas del planificador del software del sistema operativo encargado de asignar los recursos de un sistema entre los procesos que solicitan. Los algoritmos tienen distintas propiedades según los criterios en los que saben para su construcción, lo cual se refleja en qué tipo de procesos se puede ver favorecido frente a otro en la disputa del microprocesador, antes de realizar la elección de un algoritmo se debe considerar las propiedades de estos frente al criterio de diseño elegido, algunos de estos son:
a) Eficacia: Se expresa como un porcentaje del tiempo medio de utilización. Aunque pueden parecer lógico intentar mantener este parámetro próximo al 100% con valor elevado.
b) Rendimiento: Es una medida de numero de procesos completados por unidad de tiempo.
c) Tiempo de retorno o regreso: Es el intervalo del tiempo que transcurre desde que un proceso se crea o presta hasta que se completa por el sistema.
d)Tiempo de espera: Es el tiempo que el proceso espera hasta que se le concede el procesador.
e)Tiempo de respuesta a un evento: Se denomina al intervalo o del tiempo que transcurre desde que se señala un evento hasta que se ejecuta la primera instrucción de la rutina.
f) Fifo: Es un método utilizado en la estructura de datos, contabilidad de datos y teoría de cola, que guarda analogía con las personas que esperan en una cola y atendidas en que llegaron.
g) Sjf: Al igual que el algoritmo de la fifo las rofagas se ejecutan sin interrupción, solo es útil para entornos bateh.
h) Rr: Cada proceso tiene asignado un intervalo de tiempo de ejecución llamadas Quantums.
Asignación de memoria conflictiva
La memoria esta usualmente dividida en dos particiones: una para el sistema operativo residente y otra para los procesos del usuario.
Mapeo de memoria y protección
Cuando el planificador de la CPU selecciona un procesador para su ejecución el despachador carga los registros de re ubicación y del límite los valores correctos.
Asignación de memoria
Es uno de los métodos más simples para asignar la memoria consistente en dividirla en varias particiones múltiples de tamaño fijo en donde se involucran agujeros de primer ajuste, mejor ajuste y peor ajuste.
Fragmentación
Esta estrategia de primer ajuste como la de mejor ajuste para la asignación de memoria sufren de problemas denominados fragmentación de externa.
Segmentación
Es un aspecto importante de la gestión de memoria que se volvió inevitable con los mecanismos de paginación es la separación entre el usuario tiene de la memoria y la memoria física real.
Memoria virtual
La técnica de memoria virtual, es un mecanismo que permite la ejecución de procesos que no se encuentran completamente en memoria. La memoria virtual incluye la separación de la memoria lógica, tal como la percibe el usuario, con respecto a la memoria física.
lunes, 19 de septiembre de 2016
2.5 Niveles, objetivos y criterios de planificacion
2.5 Niveles, objetivos y criterios de planificacion
Libro: Sistemas Operativos Modernos
Autor: Andrew S. Tanenbaum
Planificación
Cuando una computadora se multiprograma, con frecuencia tiene varios procesos o hilos que compiten por la CPU al mismo tiempo. Esta situación ocurre cada vez que dos o más de estos procesos se encuentran al mismo tiempo en el estado listo.
La parte del sistema operativo que realiza esa decisión se conoce como planificador de procesos y el algoritmo que utiliza se conoce como algoritmo de planificación.
Introducción a la planificación
Con los sistemas de multiprogramación, el algoritmo de planificación se volvió más complejo debido a que comúnmente había varios usuarios esperando ser atendidos.
Comportamiento de un proceso
Casi todos los procesos alternan ráfagas de cálculos con peticiones de E/S (de disco). Por lo general la CPU opera durante cierto tiempo sin detenerse, después se realiza una llamada al sistema para leer datos de un archivo o escribirlos en el mismo.
Cuándo planificar procesos
Una cuestión clave relacionada con la planificación es saber cuándo tomar decisiones de planificación.
En primer lugar, cuando se crea un nuevo proceso se debe tomar una decisión en cuanto a si se debe ejecutar el proceso padre o el proceso hijo.
un algoritmo de planificación apropiativa selecciona un proceso y deja que se ejecute por un máximo de tiempo fijo.
Categorías de los algoritmos de planificación
Esta situación se presenta debido a que las diferentes áreas de aplicación (y los distintos tipos de sistemas operativos) tienen diferentes objetivos.
Tres de los entornos que vale la pena mencionar son:
1. Procesamiento por lotes.
2. Interactivo.
3. De tiempo real.
Metas de los algoritmos de planificación
Todos los sistemas Equidad - Otorgar a cada proceso una parte justa de la CPU Aplicación de políticas - Verificar que se lleven a cabo las políticas establecidas Balance - Mantener ocupadas todas las partes del sistema
Sistemas de procesamiento por lotes Rendimiento - Maximizar el número de trabajos por hora Tiempo de retorno - Minimizar el tiempo entre la entrega y la terminación Utilización de la CPU - Mantener ocupada la CPU todo el tiempo
Sistemas interactivos Tiempo de respuesta - Responder a las peticiones con rapidez Proporcionalidad - Cumplir las expectativas de los usuarios
Sistemas de tiempo real Cumplir con los plazos - Evitar perder datos Predictibilidad - Evitar la degradación de la calidad en los sistemas multimedia
Planificación en sistemas de procesamiento por lotes
Primero en entrar, primero en ser atendido
Con este algoritmo, la CPU se asigna a los procesos en el orden en el que la solicitan.
Cuando el primer trabajo entra al sistema desde el exterior en la mañana, se inicia de inmediato y se le permite ejecutarse todo el tiempo que desee. La gran fuerza de este algoritmo es que es fácil de comprender e igualmente sencillo de programar.
El trabajo más corto primero
supone que los tiempos de ejecución se conocen de antemano. Por ejemplo, en una compañía de seguros las personas pueden predecir con bastante precisión cuánto tiempo se requerirá para ejecutar un lote de 1000 reclamaciones, ya que se realiza un trabajo similar cada día.
El menor tiempo restante a continuación
Una versión apropiativa del algoritmo tipo el trabajo más corto primero es el menor tiempo restante a continuación (SRTN, Shortest Remaining Time Next). Con este algoritmo, el planificador siempre selecciona el proceso cuyo tiempo restante de ejecución sea el más corto.
Planificación en sistemas interactivos
Planificación por turno circular
A cada proceso se le asigna un intervalo de tiempo, conocido como quántum, durante el cual se le permite ejecutarse.
Si el proceso se bloquea o termina antes de que haya transcurrido el quántum, la conmutación de la CPU se realiza cuando el proceso se bloquea, desde luego.
Planificación por prioridad
La planificación por turno circular hace la suposición implícita de que todos los procesos tienen igual importancia. Con frecuencia, las personas que poseen y operan computadoras multiusuario tienen diferentes ideas en cuanto a ese aspecto.
Múltiples colas
Uno de los primeros planificadores por prioridad estaba en CTSS, el Sistema de tiempo compartido compatible del M.I.T. que se ejecutaba en la IBM 7094 (Corbató y colaboradores, 1962).
Cada conmutación de procesos ocasionaba intercambiar (swapping) el proceso actual al disco y leer uno nuevo del disco.
El proceso más corto a continuación
Como el algoritmo tipo el trabajo más corto primero siempre produce el tiempo de respuesta promedio mínimo para los sistemas de procesamiento por lotes, sería bueno si se pudiera utilizar para los procesos interactivos también.
Un método es realizar estimaciones con base en el comportamiento anterior y ejecutar el proceso con el tiempo de ejecución estimado más corto.
Planificación garantizada
Un método completamente distinto para la planificación es hacer promesas reales a los usuarios acerca del rendimiento y después cumplirlas.
Planificación por sorteo
Aunque hacer promesas a los usuarios y cumplirlas es una buena idea, es algo difícil de implementar. Sin embargo, se puede utilizar otro algoritmo para producir resultados similares con una implementación mucho más sencilla.
Planificación de sistemas en tiempo real
Es un sistema de tiempo real, el tiempo desempeña un papel esencial ya que por lo general uno o mas dispositivos físicos externos a la computadora generan estímulos.
Política contra mecanismos
Separa el mecanismo de planificación de la política de planificación esto significa que esta parametrizado de cierta forma pero los procesos de un usuario pueden llenar los parámetros.
Planificación de hilos
La planificación en esta diferencia de forma considerable, dependiendo si hay soporte para hilos a nivel usuario o para hilo a nivel.
Libro: Sistemas Operativos 2da Edición
Autor: William Stallings
Planificación del mono procesador
El sistema operativo puede tomar tres tipos de decisiones que efectúan a la ejecución de los procesos. La planificación a largo plazo determina cuando se admiten los nuevos procesos, al sistema la planificación a medio plazo forma parte de la función de intercambio y determina cuando se lleva parcial o totalmente el proceso será ejecutado a continuación por el microprocesador. Desde el punto de vista de un usuario, la característica más importante de un sistema es en general el tiempo de respuesta mientras que desde el otro punto de vista del sistema.
Planificación de multiprocesadores y en tiempo real
En un multiprocesador frecuentemente acoplado a varios procesadores tienen acceso al mismo procesador durante toda su vida o se puede expedir hacia un procesador distinto.
En este contexto no son aplicables los criterios tradicionales de selección de algoritmos de planificación. En su lugar clave el factor esta en cumplir los plazos. Son apropiados en este contexto los algoritmos que dependen mucho de la propiedad y reacción a los plazos relativos.
Libro: Sistemas Operativos
Autor: Magister David Luis La Red Martinez
Introducción y definición sobre procesos
El concepto central de cualquier sistema operativo es el proceso: una abstracción de un programa en ejecución también llamado tarea.
Estados de procesos
Durante su existencia un proceso pasa por una serie de estados discretos, siendo varias las circunstancias que pueden hacer que el mismo cambie de estado.
Procesamiento de interrupciones
Una interrupción es un evento que altera la secuencia en que el procesador ejecuta las interrupciones; es un hecho generado por el hardware de la computadora.
El núcleo del sistema operativo
Controla todas las operaciones que implican procesos y representa solo una pequeña porción del código de todo el sistema operativo pero es de amplio uso.
Planificación de procesos
Cuando mas de un proceso es ejecutable desde el punto de vista lógico, el sistema operativo debe decidir cual de ellos debe ejecutarse en primer termino.
El planificador es la porción del sistema operativo que decide y el algoritmo de planificación es el utilizado.
Niveles de planificación del procesador
Se consideran 3 niveles importantes de planificación
1- Planificación de alto nivel.
2- Planificación de nivel intermedio.
3- Planificación de bajo nivel.
Objetivos de la planificación
- Ser justa
- Maximizar la capacidad de ejecución
- Maximizar el numero de usuario interactivos que reciben unos tiempos de respuesta aceptable
- Ser predecible
- Minimizar la sobrecarga
- Equilibrar el uso de recursos
- Equilibrar respuesta y utilización
- Evitar la postergación indefinida
- Asegurar la prioridad
- Dar preferencia a los procesos que mantienen recursos claves
- Dar mejor tratamiento a los procesos que muestren un "comportamiento deseable"
- Degradarse suavemente con cargas pesadas
Criterios de planificación
* La limitación de un proceso a las operaciones de E/S
* La limitación de un proceso a la CPU
* Si un proceso es por lote (bath) o interactivo
* La prioridad de un proceso
Planificación apropiada Versus no apropiaiva
Es útil cuando los procesos de alta prioridad requieren atención rápida.
Es importante para garantizar buenos tiempos de respuesta en sistemas interactivos de tiempo compartido.
Temporizador de intervalos o reloj de interrupción
El proceso al cual está asignada la CPU se dice que esta en ejecución y puede ser un proceso de sistemas operativo o de usuario.
El sistema operativo posee un reloj de interrupción para generar una interrupción, en algún tiempo futuro especifico o después de un transcurso de tiempo en el futuro.
Prioridades
Prioridades estáticas
Características:
* No cambian
* Los mecanismos de implementación son sencillos
* Implican una sobrecarga relativamente baja
* No responden a cambios en el ambiente que aria deseable ajustar alguna prioridad
Prioridades dinámicas
Características:
* Responden al cambio
* La prioridad inicial asignada a un proceso puede durar poco tiempo, luego se reajusta a u mejor valor
* Los mecanismos de implementación son mas complicados que prioridades estáticas
Tipos de planificación
Planificación a plazo fijo
Ciertos trabajos se planifican para ser terminados en tiempo especifico o a plazo fijo.
Planificación garantizada
Se establece compromiso de desempeño con el proceso de usuario por ejemplo, si existen "n" procesos en el sistema, el proceso del usuario recibirá cerca del "1/n" de la potencia de la CPU.
Planificación del primero en entrar primero en salir (FIFO)
Los procesos se despachan de acuerdo con su tiempo de llegada a la cola de listos.
Planificación de asignación de rueda (RR)
Los procesos se despachan en FIFO y disponen una cantidad limitada de tiempo de CPU, llamada "división de tiempo" o "cuanto".
Tamaño del cuanto o Quantum
La determinación del tamaño del cuanto es decisiva para la operación efectiva de un sistema computacional.
Planificación del trabajo mas corto primero (SJF)
Es una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo compartido.
Planificación del tiempo restante mas corto (SRT)
Es la contra parte apropiativa del SJF.
Es útil en sistemas de tiempo compartido.
Planificación el siguiente con relación de respuesta máxima (HRN)
Comige algunas debilidades de SJF, tales como el acceso de perjuicio hacia los procesos largos y el exceso de favoritismo hacia las nuevos trabajos cortos.
Planificación por prioridad
Considera factores externos al proceso.
Las ideas centrales que son cada proceso tiene asociada una prioridad y que el proceso ejecutable on máxima prioridad es el que tiene el permiso de ejecución.
Colas de retroalimentación de niveles múltiples
- Favorece trabajos cortos.
- Favorece trabajos limitados por la E/S par optimizar el uso de los dispositivos de E/S.
- Determinar la naturaleza de un trabajo lo mas rápido posible y planificar el trabajo de consecuencia.
Libro: Sistemas Operativos Modernos
Autor: Andrew S. Tanenbaum
Planificación
Cuando una computadora se multiprograma, con frecuencia tiene varios procesos o hilos que compiten por la CPU al mismo tiempo. Esta situación ocurre cada vez que dos o más de estos procesos se encuentran al mismo tiempo en el estado listo.
La parte del sistema operativo que realiza esa decisión se conoce como planificador de procesos y el algoritmo que utiliza se conoce como algoritmo de planificación.
Introducción a la planificación
Con los sistemas de multiprogramación, el algoritmo de planificación se volvió más complejo debido a que comúnmente había varios usuarios esperando ser atendidos.
Comportamiento de un proceso
Casi todos los procesos alternan ráfagas de cálculos con peticiones de E/S (de disco). Por lo general la CPU opera durante cierto tiempo sin detenerse, después se realiza una llamada al sistema para leer datos de un archivo o escribirlos en el mismo.
Cuándo planificar procesos
Una cuestión clave relacionada con la planificación es saber cuándo tomar decisiones de planificación.
En primer lugar, cuando se crea un nuevo proceso se debe tomar una decisión en cuanto a si se debe ejecutar el proceso padre o el proceso hijo.
un algoritmo de planificación apropiativa selecciona un proceso y deja que se ejecute por un máximo de tiempo fijo.
Categorías de los algoritmos de planificación
Esta situación se presenta debido a que las diferentes áreas de aplicación (y los distintos tipos de sistemas operativos) tienen diferentes objetivos.
Tres de los entornos que vale la pena mencionar son:
1. Procesamiento por lotes.
2. Interactivo.
3. De tiempo real.
Metas de los algoritmos de planificación
Todos los sistemas Equidad - Otorgar a cada proceso una parte justa de la CPU Aplicación de políticas - Verificar que se lleven a cabo las políticas establecidas Balance - Mantener ocupadas todas las partes del sistema
Sistemas de procesamiento por lotes Rendimiento - Maximizar el número de trabajos por hora Tiempo de retorno - Minimizar el tiempo entre la entrega y la terminación Utilización de la CPU - Mantener ocupada la CPU todo el tiempo
Sistemas interactivos Tiempo de respuesta - Responder a las peticiones con rapidez Proporcionalidad - Cumplir las expectativas de los usuarios
Sistemas de tiempo real Cumplir con los plazos - Evitar perder datos Predictibilidad - Evitar la degradación de la calidad en los sistemas multimedia
Planificación en sistemas de procesamiento por lotes
Primero en entrar, primero en ser atendido
Con este algoritmo, la CPU se asigna a los procesos en el orden en el que la solicitan.
Cuando el primer trabajo entra al sistema desde el exterior en la mañana, se inicia de inmediato y se le permite ejecutarse todo el tiempo que desee. La gran fuerza de este algoritmo es que es fácil de comprender e igualmente sencillo de programar.
El trabajo más corto primero
supone que los tiempos de ejecución se conocen de antemano. Por ejemplo, en una compañía de seguros las personas pueden predecir con bastante precisión cuánto tiempo se requerirá para ejecutar un lote de 1000 reclamaciones, ya que se realiza un trabajo similar cada día.
El menor tiempo restante a continuación
Una versión apropiativa del algoritmo tipo el trabajo más corto primero es el menor tiempo restante a continuación (SRTN, Shortest Remaining Time Next). Con este algoritmo, el planificador siempre selecciona el proceso cuyo tiempo restante de ejecución sea el más corto.
Planificación en sistemas interactivos
Planificación por turno circular
A cada proceso se le asigna un intervalo de tiempo, conocido como quántum, durante el cual se le permite ejecutarse.
Si el proceso se bloquea o termina antes de que haya transcurrido el quántum, la conmutación de la CPU se realiza cuando el proceso se bloquea, desde luego.
Planificación por prioridad
La planificación por turno circular hace la suposición implícita de que todos los procesos tienen igual importancia. Con frecuencia, las personas que poseen y operan computadoras multiusuario tienen diferentes ideas en cuanto a ese aspecto.
Múltiples colas
Uno de los primeros planificadores por prioridad estaba en CTSS, el Sistema de tiempo compartido compatible del M.I.T. que se ejecutaba en la IBM 7094 (Corbató y colaboradores, 1962).
Cada conmutación de procesos ocasionaba intercambiar (swapping) el proceso actual al disco y leer uno nuevo del disco.
El proceso más corto a continuación
Como el algoritmo tipo el trabajo más corto primero siempre produce el tiempo de respuesta promedio mínimo para los sistemas de procesamiento por lotes, sería bueno si se pudiera utilizar para los procesos interactivos también.
Un método es realizar estimaciones con base en el comportamiento anterior y ejecutar el proceso con el tiempo de ejecución estimado más corto.
Planificación garantizada
Un método completamente distinto para la planificación es hacer promesas reales a los usuarios acerca del rendimiento y después cumplirlas.
Planificación por sorteo
Aunque hacer promesas a los usuarios y cumplirlas es una buena idea, es algo difícil de implementar. Sin embargo, se puede utilizar otro algoritmo para producir resultados similares con una implementación mucho más sencilla.
Planificación de sistemas en tiempo real
Es un sistema de tiempo real, el tiempo desempeña un papel esencial ya que por lo general uno o mas dispositivos físicos externos a la computadora generan estímulos.
Política contra mecanismos
Separa el mecanismo de planificación de la política de planificación esto significa que esta parametrizado de cierta forma pero los procesos de un usuario pueden llenar los parámetros.
Planificación de hilos
La planificación en esta diferencia de forma considerable, dependiendo si hay soporte para hilos a nivel usuario o para hilo a nivel.
Libro: Sistemas Operativos 2da Edición
Autor: William Stallings
Planificación del mono procesador
El sistema operativo puede tomar tres tipos de decisiones que efectúan a la ejecución de los procesos. La planificación a largo plazo determina cuando se admiten los nuevos procesos, al sistema la planificación a medio plazo forma parte de la función de intercambio y determina cuando se lleva parcial o totalmente el proceso será ejecutado a continuación por el microprocesador. Desde el punto de vista de un usuario, la característica más importante de un sistema es en general el tiempo de respuesta mientras que desde el otro punto de vista del sistema.
Planificación de multiprocesadores y en tiempo real
En un multiprocesador frecuentemente acoplado a varios procesadores tienen acceso al mismo procesador durante toda su vida o se puede expedir hacia un procesador distinto.
En este contexto no son aplicables los criterios tradicionales de selección de algoritmos de planificación. En su lugar clave el factor esta en cumplir los plazos. Son apropiados en este contexto los algoritmos que dependen mucho de la propiedad y reacción a los plazos relativos.
Libro: Sistemas Operativos
Autor: Magister David Luis La Red Martinez
Introducción y definición sobre procesos
El concepto central de cualquier sistema operativo es el proceso: una abstracción de un programa en ejecución también llamado tarea.
Estados de procesos
Durante su existencia un proceso pasa por una serie de estados discretos, siendo varias las circunstancias que pueden hacer que el mismo cambie de estado.
Procesamiento de interrupciones
Una interrupción es un evento que altera la secuencia en que el procesador ejecuta las interrupciones; es un hecho generado por el hardware de la computadora.
El núcleo del sistema operativo
Controla todas las operaciones que implican procesos y representa solo una pequeña porción del código de todo el sistema operativo pero es de amplio uso.
Planificación de procesos
Cuando mas de un proceso es ejecutable desde el punto de vista lógico, el sistema operativo debe decidir cual de ellos debe ejecutarse en primer termino.
El planificador es la porción del sistema operativo que decide y el algoritmo de planificación es el utilizado.
Niveles de planificación del procesador
Se consideran 3 niveles importantes de planificación
1- Planificación de alto nivel.
2- Planificación de nivel intermedio.
3- Planificación de bajo nivel.
Objetivos de la planificación
- Ser justa
- Maximizar la capacidad de ejecución
- Maximizar el numero de usuario interactivos que reciben unos tiempos de respuesta aceptable
- Ser predecible
- Minimizar la sobrecarga
- Equilibrar el uso de recursos
- Equilibrar respuesta y utilización
- Evitar la postergación indefinida
- Asegurar la prioridad
- Dar preferencia a los procesos que mantienen recursos claves
- Dar mejor tratamiento a los procesos que muestren un "comportamiento deseable"
- Degradarse suavemente con cargas pesadas
Criterios de planificación
* La limitación de un proceso a las operaciones de E/S
* La limitación de un proceso a la CPU
* Si un proceso es por lote (bath) o interactivo
* La prioridad de un proceso
Planificación apropiada Versus no apropiaiva
Es útil cuando los procesos de alta prioridad requieren atención rápida.
Es importante para garantizar buenos tiempos de respuesta en sistemas interactivos de tiempo compartido.
Temporizador de intervalos o reloj de interrupción
El proceso al cual está asignada la CPU se dice que esta en ejecución y puede ser un proceso de sistemas operativo o de usuario.
El sistema operativo posee un reloj de interrupción para generar una interrupción, en algún tiempo futuro especifico o después de un transcurso de tiempo en el futuro.
Prioridades
Prioridades estáticas
Características:
* No cambian
* Los mecanismos de implementación son sencillos
* Implican una sobrecarga relativamente baja
* No responden a cambios en el ambiente que aria deseable ajustar alguna prioridad
Prioridades dinámicas
Características:
* Responden al cambio
* La prioridad inicial asignada a un proceso puede durar poco tiempo, luego se reajusta a u mejor valor
* Los mecanismos de implementación son mas complicados que prioridades estáticas
Tipos de planificación
Planificación a plazo fijo
Ciertos trabajos se planifican para ser terminados en tiempo especifico o a plazo fijo.
Planificación garantizada
Se establece compromiso de desempeño con el proceso de usuario por ejemplo, si existen "n" procesos en el sistema, el proceso del usuario recibirá cerca del "1/n" de la potencia de la CPU.
Planificación del primero en entrar primero en salir (FIFO)
Los procesos se despachan de acuerdo con su tiempo de llegada a la cola de listos.
Planificación de asignación de rueda (RR)
Los procesos se despachan en FIFO y disponen una cantidad limitada de tiempo de CPU, llamada "división de tiempo" o "cuanto".
Tamaño del cuanto o Quantum
La determinación del tamaño del cuanto es decisiva para la operación efectiva de un sistema computacional.
Planificación del trabajo mas corto primero (SJF)
Es una disciplina no apropiativa y por lo tanto no recomendable en ambientes de tiempo compartido.
Planificación del tiempo restante mas corto (SRT)
Es la contra parte apropiativa del SJF.
Es útil en sistemas de tiempo compartido.
Planificación el siguiente con relación de respuesta máxima (HRN)
Comige algunas debilidades de SJF, tales como el acceso de perjuicio hacia los procesos largos y el exceso de favoritismo hacia las nuevos trabajos cortos.
Planificación por prioridad
Considera factores externos al proceso.
Las ideas centrales que son cada proceso tiene asociada una prioridad y que el proceso ejecutable on máxima prioridad es el que tiene el permiso de ejecución.
Colas de retroalimentación de niveles múltiples
- Favorece trabajos cortos.
- Favorece trabajos limitados por la E/S par optimizar el uso de los dispositivos de E/S.
- Determinar la naturaleza de un trabajo lo mas rápido posible y planificar el trabajo de consecuencia.
2.4 Concurrencia y Secuenciabilidad
2.4 Concurrencia y Secuenciabilidad
Concurrencia.
- Es una propiedad de los sistemas en el cual los procesos de una computadora se hace simultaneamente, y pueden interactuar entre ellos. (Ejecución simultanea de mas de un proceso).
Ejemplos:
*Dos o mas procesos decimos que son concurrentes, paralelos, o que se ejecutan concurrentemente, cundo son procesados al mismo tiempo, es decir, que para ejecutar uno de ellos, no hace falta que se aya ejecutado otro.
*Esta ejecución simultanea podria conseguirse completamente, puesto que podemos asignarle, por ejemplo, un proceso A al procesador A y un proceso B al procesador B y cada procesador realizaran la ejecución de su proceso.
Secuenciabilidad
*Un programa secuencial tiene una linea simple de control de flujo.
*Las operaciones de un programa secuencial están ordenadas de acuerdo con un orden estricto.
*La verificación de un programa secuencial es sencilla.
- Cada sentencia de la respuesta correcta
- Las sentencias se ejecutan en el orden adecuado
Concurrencia.
- Es una propiedad de los sistemas en el cual los procesos de una computadora se hace simultaneamente, y pueden interactuar entre ellos. (Ejecución simultanea de mas de un proceso).
Ejemplos:
*Dos o mas procesos decimos que son concurrentes, paralelos, o que se ejecutan concurrentemente, cundo son procesados al mismo tiempo, es decir, que para ejecutar uno de ellos, no hace falta que se aya ejecutado otro.
*Esta ejecución simultanea podria conseguirse completamente, puesto que podemos asignarle, por ejemplo, un proceso A al procesador A y un proceso B al procesador B y cada procesador realizaran la ejecución de su proceso.
Secuenciabilidad
*Un programa secuencial tiene una linea simple de control de flujo.
*Las operaciones de un programa secuencial están ordenadas de acuerdo con un orden estricto.
*La verificación de un programa secuencial es sencilla.
- Cada sentencia de la respuesta correcta
- Las sentencias se ejecutan en el orden adecuado
2.3 Procesos ligeros: Hilos o Hebras
2.3 Procesos ligeros: Hilos o Hebras
Hilos
En los sistemas operativos tradicionales, cada proceso tiene un espacio de direcciones y un solo hilo de control.
Uso de hilos
Resulta ser que hay varias razones de tener estos miniprocesos, conocidos como hilos.
La principal razón de tener hilos es que en muchas aplicaciones se desarrollan varias actividades a la vez. Un segundo argumento para tener hilos es que, como son mas ligeros que los procesos, son mas fáciles de crear (es decir, rápidos) y destruir. Una tercera razón de tener hilos es también un argumento relacionado con el argumento.
El modelo clásico del hilo
El modelo clásico de proceso se basa en dos conceptos independientes: agrupamiento de recursos y ejecución. Lo que agregan los hilos al modelo de procesos es permitir a cabo varias ejecuciones en el mismo entorno del proceso que son en gran parte independiente unas de las otras.
El termino multhilamiento también se utiliza para describir la situación de permitir varios hilos en el mismo proceso. Cuando se ejecuta un proceso con multihilamiento en un sistema con una CPU, los hilos toman turnos para ejecutarse.
Hilos en POSIX
El paquete de hilos se conoce como Pthreads. Cada uno tiene un identificador, un conjunto de registros y un conjunto de atributos, que se almacenan en una estructura.
Para crear un hilo se utiliza la llamada a Pthreadcreate.
Cuando un hilo ha terminado el trabajo que se le asigna puede terminar llamado a pthread_exit.
Implementación de hilos en el espacio de usuario
Hay dos formas principales de implementar un paquete de hilos: en espacio de usuario y en el kernel.
El primer método es colocar l paquete de hilos completamente en espacio de usuario. El kernel no sabe nada acerca de ellos. Con este método, los hilos se implementan mediante una biblioteca.
Cuando los hilos se administran en espacio de usuario, cada proceso necesita su propia tabla en ese proceso.
Implementaación de hilos en el kernel
La tabla de los hilos de kernel contiene los registros, el estado ademas información de cada hilo. Todas las llamadas que podrían bloquear un hilo se implementan como llamada al sistema, a un costo considerablemente mayor que una llamada a un procedimiento del sistema nen tiempo de ejecución.
Los hilos de kernel no requieren de nuevos llamados al sistema sin bloqueo. Los hilos de kernel resuelven solo algunos problemas.
Implementaciones hibridas
Una de estas formas es utilizar hilos de nivel de kernel y después de multiplexar los hilos de nivel de usuario con algunos o con todos los hilos de nivel kernel.
Cuando se utiliza este método, el programados puede determinar cuantos hilos de kernel va a utilizar y cuantos hilos de nivel usuario va a multiplexar en cada uno.
Con este método, el kernel esta consiente solo de los hilos de nivel kernel y los planifica.
Activaciones del planificador
Aunque los hilos de kernel son mejores que los hilos del nivel usuario en cierta forma clave, también son sin duda mas lentos.
Los objetivos del trabajo de una activación del planificado son imitar la funcionalidad de los hilos de kernel.
La eficiencia se obtiene evitando transiciones innecesarias entre los espacios de usuarios y de kernel.
Para realizar la notificación, el kernel activa el sistema en tiempo de ejecución en una dirección inicial conocida, no muy similar a una señal en Unix. A este mecanismo se le conoce como llamada ascendente (upcall)
Hilos emergentes
Los hilos se utilizan con frecuencia en los sistemas distribuidos. El método tradicional es hacer que un proceso o hilo, que esta bloqueado en una llamada al sistema recibe, espere un mensaje entrante. A dicho hilo se le conoce como hilo emergente (pop-up thread).
Conversión de código de hilado simple a multihilado
Es mucho mas dificil convertir estos programas para que utilicen multihilamiento de lo que podria parecer en un principio.
Para empezar el código de un hilo normalmente consiste de varios procedimientos, al igual que un proceso.
La primera llamada podria ser como se muestra a continuación.
Hilos
En los sistemas operativos tradicionales, cada proceso tiene un espacio de direcciones y un solo hilo de control.
Uso de hilos
Resulta ser que hay varias razones de tener estos miniprocesos, conocidos como hilos.
La principal razón de tener hilos es que en muchas aplicaciones se desarrollan varias actividades a la vez. Un segundo argumento para tener hilos es que, como son mas ligeros que los procesos, son mas fáciles de crear (es decir, rápidos) y destruir. Una tercera razón de tener hilos es también un argumento relacionado con el argumento.
El modelo clásico del hilo
El modelo clásico de proceso se basa en dos conceptos independientes: agrupamiento de recursos y ejecución. Lo que agregan los hilos al modelo de procesos es permitir a cabo varias ejecuciones en el mismo entorno del proceso que son en gran parte independiente unas de las otras.
El termino multhilamiento también se utiliza para describir la situación de permitir varios hilos en el mismo proceso. Cuando se ejecuta un proceso con multihilamiento en un sistema con una CPU, los hilos toman turnos para ejecutarse.
Hilos en POSIX
El paquete de hilos se conoce como Pthreads. Cada uno tiene un identificador, un conjunto de registros y un conjunto de atributos, que se almacenan en una estructura.
Para crear un hilo se utiliza la llamada a Pthreadcreate.
Cuando un hilo ha terminado el trabajo que se le asigna puede terminar llamado a pthread_exit.
Implementación de hilos en el espacio de usuario
Hay dos formas principales de implementar un paquete de hilos: en espacio de usuario y en el kernel.
El primer método es colocar l paquete de hilos completamente en espacio de usuario. El kernel no sabe nada acerca de ellos. Con este método, los hilos se implementan mediante una biblioteca.
Cuando los hilos se administran en espacio de usuario, cada proceso necesita su propia tabla en ese proceso.
Implementaación de hilos en el kernel
La tabla de los hilos de kernel contiene los registros, el estado ademas información de cada hilo. Todas las llamadas que podrían bloquear un hilo se implementan como llamada al sistema, a un costo considerablemente mayor que una llamada a un procedimiento del sistema nen tiempo de ejecución.
Los hilos de kernel no requieren de nuevos llamados al sistema sin bloqueo. Los hilos de kernel resuelven solo algunos problemas.
Implementaciones hibridas
Una de estas formas es utilizar hilos de nivel de kernel y después de multiplexar los hilos de nivel de usuario con algunos o con todos los hilos de nivel kernel.
Cuando se utiliza este método, el programados puede determinar cuantos hilos de kernel va a utilizar y cuantos hilos de nivel usuario va a multiplexar en cada uno.
Con este método, el kernel esta consiente solo de los hilos de nivel kernel y los planifica.
Activaciones del planificador
Aunque los hilos de kernel son mejores que los hilos del nivel usuario en cierta forma clave, también son sin duda mas lentos.
Los objetivos del trabajo de una activación del planificado son imitar la funcionalidad de los hilos de kernel.
La eficiencia se obtiene evitando transiciones innecesarias entre los espacios de usuarios y de kernel.
Para realizar la notificación, el kernel activa el sistema en tiempo de ejecución en una dirección inicial conocida, no muy similar a una señal en Unix. A este mecanismo se le conoce como llamada ascendente (upcall)
Hilos emergentes
Los hilos se utilizan con frecuencia en los sistemas distribuidos. El método tradicional es hacer que un proceso o hilo, que esta bloqueado en una llamada al sistema recibe, espere un mensaje entrante. A dicho hilo se le conoce como hilo emergente (pop-up thread).
Conversión de código de hilado simple a multihilado
Es mucho mas dificil convertir estos programas para que utilicen multihilamiento de lo que podria parecer en un principio.
Para empezar el código de un hilo normalmente consiste de varios procedimientos, al igual que un proceso.
La primera llamada podria ser como se muestra a continuación.
2.2 Estados y transiciones de los procesos
2.2 Estados y transiciones de los procesos
Estados de los procesos:
*Ejecución
*Espera
*Bloqueado
*Suspendido
*Terminado/Finalizado
Procesos e hilos
El concepto mas importante en cualquier sistema operativo es el proceso, una abstracción de un programa en ejecución.
Procesos
Considerado primero un servidor web, a donde convergen las peticiones de paginas web provenientes de todos lados. Cuando llega una petición, al servidor verifica si la pagina que se necesita esta en la cache. De ser así, devuelve la pagina, en caso contrario, inicia una petición al disco para obtenerla y, desde la perspectiva de la CPU estas peticiones tardan eternidades mientras se espera el cumplimiento de una petición, muchas mas pueden llegar. Si hay varios discos procedentes, algunas o todas las demás peticiones podrán dirigirse a otros discos mucho antes de que se cumpla la primera petición. Es evidente que se necesita cierta forma de modelar y controlar esta concurrencia. Los procesos (en especial los hilos) pueden ayudar en este caso.
El modelo del proceso
En este modelo, todo el software ejecutable en la computadora, que algunas veces incluye al software, se organiza en varios procesos secuenciales. Un proceso no es mas que una instancia de un programa en ejecución, incluyendo los valores actuales del contador del programa, los registros y las variables.
Creación de un proceso
El sistema operativo necesita cierta manera de crear procesos. El sistema muy simple o sistemas diseñados para ejecutar solo una aplicación, es posible tener presentes todos los procesos que se vayan a requerir cuando el sistema inicie.
Hay cuatro eventos principales que provocan la creación de procesos
1- El arranque del sistema
2- La ejecución, desde un proceso, de una llamada al sistema para la creacion de procesos.
3- Una petición de usuario para crear un proceso.
4. El inicio de un trabajo por lotes.
Terminación de proceso
Una ves que sea un proceso, empieza a ejecutarse y realiza el trabajo al que esta destinado. Sin embargo, nada para siempre, ni siquiera los procesos. Tarde o temprano el nuevo proceso terminara, por lo general debido a una de las siguientes condiciones.
1- Salida normal (voluntaria)
2- Salida por error (voluntaria)
3- Error fatal (voluntaria)
4- Eliminado por otro proceso (voluntaria)
Jerarquías de procesos
En algunos sistemas, cuando un proceso crea otrro, el proceso padre y el proceso hijo continúan asociado en cierta forma. El proceso hijo puede crear por si mismo mas procesos, formando una jerarquía de procesos.
Estados de un proceso
Aunque cada proceso es una entidad independiente, con su propio contador de programas y estado interno, a menudo los procesos necesitan interactuar con otros. Un proceso puede generar cierta salida de otro proceso que utiliza como entrada.
1- En ejecución (en realidad esta usando la CPU en ese instante)
2- Listo (ejecutable: se detuvo temporalmente para dejar que se ejecute otro proceso)
3- Bloqueado (no puede ejecutarse sino asta que ocurra cierto evento externo)
Implementación de los procesos
Para implementar el modelo de proceso, el sistema operativo mantiene una tabla, llamada tabla de proceso, con solo una entrada por cada proceso.
Modelación de la multiprogramación
Cuando se utiliza la multiprogramación, el uso de la CPU se puede mejorar. Dicho en forma cruda: si el proceso promedio realiza cálculos solo 20% del tiempo que esta en la memoria, con cinco procesos en memoria a la vez la CPU deberá estar ocupada todo el tiempo.
Uso de la CPU = 1-p
Estados de los procesos
1- Control + Alt + Supr
2- Administrador de tareas
3- Detalles
Estados de los procesos:
*Ejecución
*Espera
*Bloqueado
*Suspendido
*Terminado/Finalizado
Procesos e hilos
El concepto mas importante en cualquier sistema operativo es el proceso, una abstracción de un programa en ejecución.
Procesos
Considerado primero un servidor web, a donde convergen las peticiones de paginas web provenientes de todos lados. Cuando llega una petición, al servidor verifica si la pagina que se necesita esta en la cache. De ser así, devuelve la pagina, en caso contrario, inicia una petición al disco para obtenerla y, desde la perspectiva de la CPU estas peticiones tardan eternidades mientras se espera el cumplimiento de una petición, muchas mas pueden llegar. Si hay varios discos procedentes, algunas o todas las demás peticiones podrán dirigirse a otros discos mucho antes de que se cumpla la primera petición. Es evidente que se necesita cierta forma de modelar y controlar esta concurrencia. Los procesos (en especial los hilos) pueden ayudar en este caso.
El modelo del proceso
En este modelo, todo el software ejecutable en la computadora, que algunas veces incluye al software, se organiza en varios procesos secuenciales. Un proceso no es mas que una instancia de un programa en ejecución, incluyendo los valores actuales del contador del programa, los registros y las variables.
Creación de un proceso
El sistema operativo necesita cierta manera de crear procesos. El sistema muy simple o sistemas diseñados para ejecutar solo una aplicación, es posible tener presentes todos los procesos que se vayan a requerir cuando el sistema inicie.
Hay cuatro eventos principales que provocan la creación de procesos
1- El arranque del sistema
2- La ejecución, desde un proceso, de una llamada al sistema para la creacion de procesos.
3- Una petición de usuario para crear un proceso.
4. El inicio de un trabajo por lotes.
Terminación de proceso
Una ves que sea un proceso, empieza a ejecutarse y realiza el trabajo al que esta destinado. Sin embargo, nada para siempre, ni siquiera los procesos. Tarde o temprano el nuevo proceso terminara, por lo general debido a una de las siguientes condiciones.
1- Salida normal (voluntaria)
2- Salida por error (voluntaria)
3- Error fatal (voluntaria)
4- Eliminado por otro proceso (voluntaria)
Jerarquías de procesos
En algunos sistemas, cuando un proceso crea otrro, el proceso padre y el proceso hijo continúan asociado en cierta forma. El proceso hijo puede crear por si mismo mas procesos, formando una jerarquía de procesos.
Estados de un proceso
Aunque cada proceso es una entidad independiente, con su propio contador de programas y estado interno, a menudo los procesos necesitan interactuar con otros. Un proceso puede generar cierta salida de otro proceso que utiliza como entrada.
1- En ejecución (en realidad esta usando la CPU en ese instante)
2- Listo (ejecutable: se detuvo temporalmente para dejar que se ejecute otro proceso)
3- Bloqueado (no puede ejecutarse sino asta que ocurra cierto evento externo)
Implementación de los procesos
Para implementar el modelo de proceso, el sistema operativo mantiene una tabla, llamada tabla de proceso, con solo una entrada por cada proceso.
Modelación de la multiprogramación
Cuando se utiliza la multiprogramación, el uso de la CPU se puede mejorar. Dicho en forma cruda: si el proceso promedio realiza cálculos solo 20% del tiempo que esta en la memoria, con cinco procesos en memoria a la vez la CPU deberá estar ocupada todo el tiempo.
Uso de la CPU = 1-p
Estados de los procesos
1- Control + Alt + Supr
2- Administrador de tareas
3- Detalles
2.1 Concepto de proceso
2.1 Concepto de proceso
Sistemas Operativos Modernos
Andrew S Tenenbauw
*Es una esencia un programa en ejecución. Cada proceso tiene asociado un espacio de decisiones, una lista de ubicaciones de memoria que va desde algún mínimo hasta cierto valor máximo.
Sistemas Operativos Distribuidos
Silberschatz Galvin Gagne
*Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociado.
Sistemas Operativos
Magister David Luis la Red Martinez
*Una abstracción de datos de un programa en ejecución también llamado tarea.
-Un programa que se esta ejecutando.
-Una actividad asincrónica.
-El emplazamiento del control de un procedimiento que esta siendo ejecutable.
-Aquella entidad a la cual son asignados los procesadores.
-La unidad despachable.
Sistemas Operativos Modernos
Andrew S Tenenbauw
*Es una esencia un programa en ejecución. Cada proceso tiene asociado un espacio de decisiones, una lista de ubicaciones de memoria que va desde algún mínimo hasta cierto valor máximo.
Sistemas Operativos Distribuidos
Silberschatz Galvin Gagne
*Una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociado.
Sistemas Operativos
Magister David Luis la Red Martinez
*Una abstracción de datos de un programa en ejecución también llamado tarea.
-Un programa que se esta ejecutando.
-Una actividad asincrónica.
-El emplazamiento del control de un procedimiento que esta siendo ejecutable.
-Aquella entidad a la cual son asignados los procesadores.
-La unidad despachable.
viernes, 16 de septiembre de 2016
UNIDAD 2 Administración de procesos y del procesador.
La gestión de procesos es la tarea fundamental de cualquier sistema operativo moderno.
El sistema operativo debe asignar recursos a los procesos, permitir el intercambio de información entre los mismos, proteger los recursos de un proceso del resto y facilitar la sincronización de procesos.
Para alcanzar estos objetivos, el sistema operativo mantiene una estructura de datos para cada proceso que describe su estado y los recursos que posee y que permite al sistema operativo imponer un control sobre los procesos (PCB Bloque de Control de Proceso).
En un monoprocesador multiprogramado, debe intercalarse en el tiempo, la ejecución de múltiples procesos. En un multiprocesador, no sólo puede intercalarse la ejecución sino que los procesos se pueden ejecutar simultáneamente. Ambos, intercalación y ejecución simultánea, son formas de concurrencia y llevan a una multitud de problemas complejos, tanto para el programador de aplicaciones como para el sistema operativo.
El sistema operativo debe llevar a cabo la función de planificar y ofrecer mecanismos para compartir y sincronizar procesos.
2.1 Concepto de proceso. Programas.- Colección de instrucciones que el procesador interpreta y ejecuta, se almacenan en sistemas no volátiles necesitando ser cargados en memoria principal para poder ser ejecutados, se considera un ente estático. Procesos.-Programa en ejecución, el sistema operativo les asigna recursos, Se consideran un ente dinámico. El proceso es una abstracción creada por el SO, que se compone de: Código de Programa: sección texto Contexto de Ejecución: PC, registros del procesador y una pila para invocación de procedimientos Sección de Datos, que contiene variables globales Recursos del sistema. Características Permite modularizar y aislar errores de programas durante su ejecución Soporta concurrencia de actividades, lo que permite un mejor aprovechamiento de los recursos Denominaremos como procesos tanto a los trabajos (jobs) en sistemas de lotes, como a las tareas (task) en sistemas de tiempo compartido Modelo La diferencia entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutándose) es obvia y crucial para entender el funcionamiento de los SO. Imaginemos un mecánico de autos en un taller donde se reparan carros con averías complejas en las que se hace necesario consultar el manual de cada modelo, que contiene las instrucciones para reparar cada posible avería. Además, se permiten reparaciones rápidas a las que se les da mayor prioridad.
Existe un almacén de refacciones y herramientas suficientes para las reparaciones. Comparando esta situación con un sistema de cómputo se pueden establecer las siguientes analogías: El mecánico sería el CPU (procesador) que realizará el trabajo. El manual de cada reparación sería el programa. Las herramientas serían los recursos disponibles Las refacciones serían los datos. La actividad de usar las herramientas para desmontar las piezas defectuosas sustituyéndolas por otras nuevas siguiendo las instrucciones del manual equivaldría al proceso.
Suponiendo que en un momento dado el mecánico está realizando una reparación compleja (de las que llevan tiempo) y aparece un carro que solicita una reparación de las rápidas (ha aparecido una interrupción). El mecánico suspende momentáneamente la reparación compleja anotando en qué situación se queda dicha reparación y qué operación estaba realizando en ese momento (guarda el estado del proceso).
Asimismo, sustituye el manual que estaba realizando por el de la nueva reparación que se dispone a realizar (cambio de programa). Comienza la nueva reparación (cambio de proceso), en la que las herramientas no serán las mismas que antes (distintos recursos); las indicaciones del usuario, las refacciones (datos) y las indicaciones del manual (programa) llevarán a feliz término la reparación para que el mecánico regrese a la reparación inicial. Con este ejemplo se resalta que un proceso es una actividad que se apoya en datos, recursos, un estado en cada momento y un programa.
El sistema operativo debe asignar recursos a los procesos, permitir el intercambio de información entre los mismos, proteger los recursos de un proceso del resto y facilitar la sincronización de procesos.
Para alcanzar estos objetivos, el sistema operativo mantiene una estructura de datos para cada proceso que describe su estado y los recursos que posee y que permite al sistema operativo imponer un control sobre los procesos (PCB Bloque de Control de Proceso).
En un monoprocesador multiprogramado, debe intercalarse en el tiempo, la ejecución de múltiples procesos. En un multiprocesador, no sólo puede intercalarse la ejecución sino que los procesos se pueden ejecutar simultáneamente. Ambos, intercalación y ejecución simultánea, son formas de concurrencia y llevan a una multitud de problemas complejos, tanto para el programador de aplicaciones como para el sistema operativo.
El sistema operativo debe llevar a cabo la función de planificar y ofrecer mecanismos para compartir y sincronizar procesos.
2.1 Concepto de proceso. Programas.- Colección de instrucciones que el procesador interpreta y ejecuta, se almacenan en sistemas no volátiles necesitando ser cargados en memoria principal para poder ser ejecutados, se considera un ente estático. Procesos.-Programa en ejecución, el sistema operativo les asigna recursos, Se consideran un ente dinámico. El proceso es una abstracción creada por el SO, que se compone de: Código de Programa: sección texto Contexto de Ejecución: PC, registros del procesador y una pila para invocación de procedimientos Sección de Datos, que contiene variables globales Recursos del sistema. Características Permite modularizar y aislar errores de programas durante su ejecución Soporta concurrencia de actividades, lo que permite un mejor aprovechamiento de los recursos Denominaremos como procesos tanto a los trabajos (jobs) en sistemas de lotes, como a las tareas (task) en sistemas de tiempo compartido Modelo La diferencia entre un programa (conjunto de instrucciones) y un proceso (instrucciones ejecutándose) es obvia y crucial para entender el funcionamiento de los SO. Imaginemos un mecánico de autos en un taller donde se reparan carros con averías complejas en las que se hace necesario consultar el manual de cada modelo, que contiene las instrucciones para reparar cada posible avería. Además, se permiten reparaciones rápidas a las que se les da mayor prioridad.
Existe un almacén de refacciones y herramientas suficientes para las reparaciones. Comparando esta situación con un sistema de cómputo se pueden establecer las siguientes analogías: El mecánico sería el CPU (procesador) que realizará el trabajo. El manual de cada reparación sería el programa. Las herramientas serían los recursos disponibles Las refacciones serían los datos. La actividad de usar las herramientas para desmontar las piezas defectuosas sustituyéndolas por otras nuevas siguiendo las instrucciones del manual equivaldría al proceso.
Suponiendo que en un momento dado el mecánico está realizando una reparación compleja (de las que llevan tiempo) y aparece un carro que solicita una reparación de las rápidas (ha aparecido una interrupción). El mecánico suspende momentáneamente la reparación compleja anotando en qué situación se queda dicha reparación y qué operación estaba realizando en ese momento (guarda el estado del proceso).
Asimismo, sustituye el manual que estaba realizando por el de la nueva reparación que se dispone a realizar (cambio de programa). Comienza la nueva reparación (cambio de proceso), en la que las herramientas no serán las mismas que antes (distintos recursos); las indicaciones del usuario, las refacciones (datos) y las indicaciones del manual (programa) llevarán a feliz término la reparación para que el mecánico regrese a la reparación inicial. Con este ejemplo se resalta que un proceso es una actividad que se apoya en datos, recursos, un estado en cada momento y un programa.
Nucleo
Es el principal responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el acceso al hardware es limitado, también se encarga de decidir qué programa podrá usar un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporcionar una interfaz limpia y uniforme al hardware subyacente, lo que facilita su uso al programador.
Procesos De Windows
Csrss.exe
Csrss.exe significa Client Server Run-time Subsystem.
Es un subsistema esencial que debe estar siempre activo. Este administra la consola de Windows, crea y destruye threads y administra algunas porciones del entorno 16 bits virtual DOS.
Explorer.exe
Proporciona el entorno de escritorio y la barra de tareas, etc. Este proceso no es vital para el sistema (podemos detenerlo para luego volver a ejecutarlo a través del administrador de tareas- abrir luego escribir explorer.exe), pero si lo detenemos, sólo tendremos el escritorio.
Lsass.exe
Es el servidor de autentificación local de seguridad.
Genera los procesos responsables de la autentificación de usuarios para el proceso Winlogon. Si la autentificación tiene éxito, lsass.exe genera los tokens de acceso para el usuario que son utilizados para lanzar el shell inicial. Los otros procesos que el usuario inicia heredan estos tokens
Procesos De Windows
Csrss.exe
Csrss.exe significa Client Server Run-time Subsystem.
Es un subsistema esencial que debe estar siempre activo. Este administra la consola de Windows, crea y destruye threads y administra algunas porciones del entorno 16 bits virtual DOS.
Explorer.exe
Proporciona el entorno de escritorio y la barra de tareas, etc. Este proceso no es vital para el sistema (podemos detenerlo para luego volver a ejecutarlo a través del administrador de tareas- abrir luego escribir explorer.exe), pero si lo detenemos, sólo tendremos el escritorio.
Lsass.exe
Es el servidor de autentificación local de seguridad.
Genera los procesos responsables de la autentificación de usuarios para el proceso Winlogon. Si la autentificación tiene éxito, lsass.exe genera los tokens de acceso para el usuario que son utilizados para lanzar el shell inicial. Los otros procesos que el usuario inicia heredan estos tokens
Tipos De Sistemas Operativos
Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea).
Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, y siempre que esta aplicación lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del microprocesador durante una fracción de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho más lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.
Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.
Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:
Mejora productividad del sistema y utilización de recursos.
Multiplexa recursos entre varios programas.
Generalmente soportan múltiples usuarios (multiusuarios).
Proporcionan facilidades para mantener el entorno de usuarios individuales.
Requieren validación de usuario para seguridad y protección.
Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real.
Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución simultánea de múltiples tareas sobre diferentes procesadores.
En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.
Sistema Operativo Monotareas.
Los sistemas operativos monotareas son más primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.
Sistema Operativo Monousuario.
Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los microcomputadores.
Sistema Operativo Multiusuario.
Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.
En otras palabras consiste en el fraccionamiento del tiempo (timesharing).
Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.
Algunas otras características con que cuentan los Sistemas Operativos por lotes son:
Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote.
Permiten poca o ninguna interacción usuario/programa en ejecución.
Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.
No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.
Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.).
Se encuentra en muchos computadores personales combinados con procesamiento serial.
Planificación del procesador sencilla, típicamente procesados en orden de llegada.
Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios.
No requieren gestión crítica de dispositivos en el tiempo.
Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso.
Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:
Control de trenes.
Telecomunicaciones.
Sistemas de fabricación integrada.
Producción y distribución de energía eléctrica.
Control de edificios.
Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes características:
Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.
Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.
Objetivo es proporcionar rápidos tiempos de respuesta.
Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.
Proceso se activa tras ocurrencia de suceso, mediante interrupción.
Proceso de mayor prioridad expropia recursos.
Por tanto generalmente se utiliza planificación expropiativa basada en prioridades.
Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria.
Población de procesos estática en gran medida.
Poco movimiento de programas entre almacenamiento secundario y memoria.
Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso.
Sistemas Operativos de tiempo compartido.
Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Características de los Sistemas Operativos de tiempo compartido:
Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc.
Dan la ilusión de que cada usuario tiene una máquina para sí.
Mayoría utilizan algoritmo de reparto circular.
Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio.
Evitan monopolización del sistema asignando tiempos de procesador (time slot).
Gestión de memoria proporciona protección a programas residentes.
Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir múltiples usuarios accesando un mismo archivos.
Sistemas Operativos distribuidos.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características de los Sistemas Operativos distribuidos:
Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .
Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.
Objetivo clave es la transparencia.
Generalmente proporcionan medios para la compartición global de recursos.
Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).
Sistemas Operativos de red.
Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.
Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM
Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o más aplicaciones se cargan al mismo tiempo, y siempre que esta aplicación lo permita. En los sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del microprocesador durante una fracción de segundo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho más lento que la velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.
Sistemas Operativos como UNIX, Windows 95, Windows 98, Windows NT, MAC-OS, OS/2, soportan la multitarea.
Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:
Mejora productividad del sistema y utilización de recursos.
Multiplexa recursos entre varios programas.
Generalmente soportan múltiples usuarios (multiusuarios).
Proporcionan facilidades para mantener el entorno de usuarios individuales.
Requieren validación de usuario para seguridad y protección.
Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en sistemas de tiempo real.
Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución simultánea de múltiples tareas sobre diferentes procesadores.
En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.
Sistema Operativo Monotareas.
Los sistemas operativos monotareas son más primitivos y es todo lo contrario al visto anteriormente, es decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar las tareas de una en una. Por ejemplo cuando la computadora esta imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.
Sistema Operativo Monousuario.
Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este ejecutando.
Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente por los microcomputadores.
Sistema Operativo Multiusuario.
Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.
En otras palabras consiste en el fraccionamiento del tiempo (timesharing).
Sistemas Operativos por lotes.
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuenciabilidad de la ejecución de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a procesamiento académico.
Algunas otras características con que cuentan los Sistemas Operativos por lotes son:
Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de lote.
Permiten poca o ninguna interacción usuario/programa en ejecución.
Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas multiusuarios.
No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de línea.
Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de personal, etc.).
Se encuentra en muchos computadores personales combinados con procesamiento serial.
Planificación del procesador sencilla, típicamente procesados en orden de llegada.
Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y programas transitorios.
No requieren gestión crítica de dispositivos en el tiempo.
Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún control de concurrencia para el acceso.
Sistemas Operativos de tiempo real.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que lo requieran. se utilizan en entornos donde son procesados un gran número de sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:
Control de trenes.
Telecomunicaciones.
Sistemas de fabricación integrada.
Producción y distribución de energía eléctrica.
Control de edificios.
Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los Sistemas Operativos de tiempo real, cuentan con las siguientes características:
Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.
Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.
Objetivo es proporcionar rápidos tiempos de respuesta.
Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.
Proceso se activa tras ocurrencia de suceso, mediante interrupción.
Proceso de mayor prioridad expropia recursos.
Por tanto generalmente se utiliza planificación expropiativa basada en prioridades.
Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son residentes permanentes en memoria.
Población de procesos estática en gran medida.
Poco movimiento de programas entre almacenamiento secundario y memoria.
Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso.
Sistemas Operativos de tiempo compartido.
Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la terminal del usuario.
Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al Sistema Operativo, principalmente en la administración de memoria principal y secundaria.
Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.
Características de los Sistemas Operativos de tiempo compartido:
Populares representantes de sistemas multiprogramados multiusuario, ej: sistemas de diseño asistido por computador, procesamiento de texto, etc.
Dan la ilusión de que cada usuario tiene una máquina para sí.
Mayoría utilizan algoritmo de reparto circular.
Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye después de concedido el servicio.
Evitan monopolización del sistema asignando tiempos de procesador (time slot).
Gestión de memoria proporciona protección a programas residentes.
Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir múltiples usuarios accesando un mismo archivos.
Sistemas Operativos distribuidos.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Características de los Sistemas Operativos distribuidos:
Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .
Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.
Objetivo clave es la transparencia.
Generalmente proporcionan medios para la compartición global de recursos.
Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para distribución de cálculos (a través de comunicación de procesos internodos, llamadas a procedimientos remotos, etc.).
Sistemas Operativos de red.
Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000, pasando posteriormente a procesadores Intel como Novell Netware.
Los Sistemas Operativos de red mas ampliamente usados son: Novell Netware, Personal Netware, LAN Manager, Windows NT Server, UNIX, LANtastic.
Sistemas Operativos paralelos.
En estos tipos de Sistemas Operativos se pretende que cuando existan dos o más procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva, simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario). Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a atender al usuario inmediatamente después de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM
Las nuevas Tendencias de los Sistemas Operativos
Las nuevas Tendencias de los Sistemas Operativos
Los sistemas operativos siguen evolucionando. La principal tendencia de los sistemas operativos en cuanto a organización de trabajo es convertirse en sistemas operativos distribuidos.
Los sistemas operativos distribuidos están diseñados para su uso en un grupo de computadoras conectadas pero independientes que comparten recursos. En un sistema operativo distribuido, un proceso puede ejecutarse en cualquier computadora de la red (normalmente, una computadora inactiva en ese momento) para aumentar el rendimiento de ese proceso. En los sistemas distribuidos, todas las funciones básicas de un sistema operativo, como mantener los sistemas de archivos, garantizar un comportamiento razonable y recuperar datos en caso de fallos parciales, resultan más complejas.
Quinta Generación (1983 al presente)
Quinta Generación (1983 al presente)
En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras.
Surge la competencia internacional por el dominio del mercado de la computación, en la que se perfilan dos líderes que, sin embargo, no han podido alcanzar el nivel que se desea: la capacidad de comunicarse con la computadora en un lenguaje más cotidiano y no a través de códigos o lenguajes de control especializados.
Japón lanzó en 1983 el llamado "programa de la quinta generación de computadoras",
con los objetivos explícitos de producir máquinas con innovaciones reales en los criterios mencionados. Y en los Estados Unidos ya está en actividad un programa en desarrollo que persigue objetivos semejantes, que pueden resumirse de la siguiente manera:
Cuarta Generación (1971-1988)
Cuarta Generación (1971-1988)
Aparecen los microprocesadores que es un gran adelanto de la microelectrónica, son circuitos integrados de alta densidad y con una velocidad impresionante. Las microcomputadoras con base en estos circuitos son extremadamente pequeñas y baratas, por lo que su uso se extiende al mercado industrial. Aquí nacen las computadoras personales que han adquirido proporciones enormes y que han influido en la sociedad en general sobre la llamada "revolución informática".
Características de está generación:
- Se desarrolló el microprocesador.
- Se colocan más circuitos dentro de un "chip".
- "LSI - Large Scale Integration circuit".
- "VLSI - Very Large Scale Integration circuit".
- Cada "chip" puede hacer diferentes tareas.
- Un "chip" sencillo actualmente contiene la unidad de control y la unidad de aritmética/lógica. El tercer componente, la memoria primaria, es operado por otros "chips".
- Se reemplaza la memoria de anillos magnéticos por la memoria de "chips" de silicio.
- Se desarrollan las microcomputadoras, o sea, computadoras personales o PC.
- Se desarrollan las supercomputadoras.
Tercera Generación (1964-1971)
Tercera Generación (1964-1971)
La tercera generación de computadoras emergió con el desarrollo de circuitos integrados (pastillas de silicio) en las que se colocan miles de componentes electrónicos en una integración en miniatura. Las computadoras nuevamente se hicieron más pequeñas, más rápidas, desprendían menos calor y eran energéticamente más eficientes. El ordenador IBM-360 dominó las ventas de la tercera generación de ordenadores desde su presentación en 1965. El PDP-8 de la Digital Equipment Corporation fue el primer miniordenador.
Características de está generación:
- Se desarrollaron circuitos integrados para procesar información.Se desarrollaron los "chips" para almacenar y procesar la información. Un "chip" es una pieza de silicio que contiene los componentes electrónicos en miniatura llamados semiconductores.
- Los circuitos integrados recuerdan los datos, ya que almacenan la información como cargas eléctricas.
- Surge la multiprogramación.
- Las computadoras pueden llevar a cabo ambas tareas de procesamiento o análisis matemáticos.
- Emerge la industria del "software".
- Se desarrollan las minicomputadoras IBM 360 y DEC PDP-1.
- Otra vez las computadoras se tornan más pequeñas, más ligeras y más eficientes.
- Consumían menos electricidad, por lo tanto, generaban menos calor.
Segunda Generación (1958-1964)
Segunda Generación (1958-1964)
En esta generación las computadoras se reducen de tamaño y son de menor costo. Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester. Algunas computadoras se programaban con cinta perforadas y otras por medio de cableado en un tablero.
Características de está generación:
- Usaban transistores para procesar información.
- Los transistores eran más rápidos, pequeños y más confiables que los tubos al vacío.
- 200 transistores podían acomodarse en la misma cantidad de espacio que un tubo al vacío.
- Usaban pequeños anillos magnéticos para almacenar información e instrucciones. cantidad de calor y eran sumamente lentas.
- Se mejoraron los programas de computadoras que fueron desarrollados durante la primera generación.
- Se desarrollaron nuevos lenguajes de programación como COBOL y FORTRAN, los cuales eran comercialmente accsesibles.
- Se usaban en aplicaciones de sistemas de reservaciones de líneas aéreas, control del tráfico aéreo y simulaciones de propósito general.
- La marina de los Estados Unidos desarrolla el primer simulador de vuelo, "Whirlwind I".
- Surgieron las minicomputadoras y los terminales a distancia.
- Se comenzó a disminuir el tamaño de las computadoras.
(Primera Generación (1951-1958)
(Primera Generación (1951-1958)
En esta generación había una gran desconocimiento de las capacidades de las computadoras, puesto que se realizó un estudio en esta época que determinó que con veinte computadoras se saturaría el mercado de los Estados Unidos en el campo de procesamiento de datos. Esta generación abarco la década de los cincuenta. Y se conoce como la primera generación.
Estas máquinas tenían las siguientes características:
- Usaban tubos al vacío para procesar información.
- Usaban tarjetas perforadas para entrar los datos y los programas.
- Usaban cilindros magnéticos para almacenar información e instrucciones internas.
- Eran sumamente grandes, utilizaban gran cantidad de electricidad, generaban gran cantidad de calor y eran sumamente lentas.
- Se comenzó a utilizar el sistema binario para representar los datos.
- En esta generación las máquinas son grandes y costosas (de un costo aproximado de 10,000 dólares).
- La computadora más exitosa de la primera generación fue la IBM 650, de la cual se produjeron varios cientos. Esta computadora que usaba un esquema de memoria secundaria llamado tambor magnético, que es el antecesor de los discos actuales.
Funciones y Caracteristicas de los Sistemas Operativos
funciones
- Colocar el programa fuente almacenado en el dispositivo de entrada adecuado (cintas, tarjetas, discos...).
- Desencadenar la ejecución de un programa de lectura para el dispositivo elegido.
- Desencadenar la ejecución de un compilador que traduzca el programa fuente.
- Colocar los datos de entrada en el dispositivo adecuado.
- Ejecutar el programa objeto.
- Sacar los resultados por impresora.
características
1.concurrencia
Consiste en la existencia de varias actividades simultáneas o paralelas. Ejemplo de ello lo son la superposición de las operaciones de I/O con el proceso de computación, así como la coexistencia en memoria de varios programas. La concurrencia lleva asociado el problema de conmutar de una tarea a otra, así como proteger una determinada actividad de los efectos de las otras, así como la sincronización de tareas que sean mutuamente dependientes.
2.Utilización conjunta de recursos. Compartición.
Las razones para la compartición son las siguientes:
a) El coste:
es absurdo disponer de suficientes recursos para cada usuario por separado.
b) Aprovechamiento de los trabajos de otros.
La utilidad es poder utilizar rutinas y programas desarrollados por otras personas.
c) Posibilidad de compartir datos:
Utilización de una misma base de datos para varios programas distintos, asociados posiblemente a distintos usuarios.
d) Eliminación de redundancias:
poder disponer de una sola copia de un programa (por ejemplo un compilador) y compartirlo con otros.
3.Permite que el usuario guarde sus datos o programas en el propio ordenador, y no tener que usar medios externos (portables). Los problemas que se plantean son de protección de la información frente a terceros y protegerlos frente a fallos del sistema.
4.Un Sistema Operativo debe ser determinista en el sentido de que el mismo programa ejecutado con los mismos datos, en momentos diferentes, debe producir los mismos resultados. En cambio será indeterminista porque en caso de variabilidad de las situaciones puede responder de un modo impredecible. Deben tomarse las medidas oportunas.
Estas situaciones pueden ser debidas a petición de recursos, errores de ejecución en programas o bien interrupción de periféricos.
Suscribirse a:
Entradas (Atom)