sábado, 17 de septiembre de 2016

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.

viernes, 16 de septiembre de 2016

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 

Capítulo 8: 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.

Capítulo 9: 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.

Política Versus mecanismo de planificación 

Puede ocurrir que aya procesos con muchos procesos hijos ejecutándose bajo su control, por ejemplo, un proceso de un DBMS con procesos hijos atendiendo funciones especificas, tales como, análisis de interrogantes, acceso de disco, etc.

Planificación a dos niveles

Si la memoria principal es insuficiente, ocurrirá lo siguiente:

* Habrá procesos ejecutables en insuficiente que se mantengan en disco.

* Habrá importantes implicaciones para la planificación. 


lunes, 12 de septiembre de 2016

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


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.

                                                         create_global("bufptr");

Se necesitan dos llamadas para acceder a las variables globales: una para escribirlas y la otra para leerlas.

Para escribir algo como:

                                                         set_global("bufpf",&buf);

Para leer:

                                                       bufptr=read_global("bufpfr");







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

       







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 despacha ble.



Unidad II. Administración de procesos y del procesador


Un proceso no es mas que un programa en ejecución, e incluye los valores actuales del contador del programa, los registros y las variables.


*Estado de transacciones de los procesos

El principal trabajo del procesador es ejecutar las instrucciones de maquina que se encuentran en la memoria principal. Estas instrucciones se encuentran en forma de programas puede ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo.

Un proceso podría generar ciertas salidas que otros procesos utilizan como entradas, en el comando de Shell.

*Procesos ligeros ( hilos o hebras)

El concepto de proceso engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia con la ejecución.

Un proceso ligero es un programa en ejecución que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros.

*Concurrencia y Secuenciabilidad

Son concurrentes si existen simultáneamente. Cuando dos o mas procesos llegan al mismo tiempo a ejecutarse, y se dice que se ha presentado una congruencia de proceso.
Los procesos que se ejecutan de forma concurrente en un sistema pueden clasificar como:
- Proceso independiente
- Proceso son cooperantes

*Exclusión mutua de secciones criticas

El método mas sencillo de comunicación entre los procesos de un programa comúnmente en el uso común de unas variables de datos.
El problema de este sistema es que la acción de un proceso interfiere en las acciones de otro de una forma no adecuada.


Glosario

Controlador de programa: Construye a la parte del sistema operativo dedicada a coordinar el funcionamiento de todos los recursos y elementos de la computadora.

Registros: Es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador que permite guardar transistoriamente y acceder a valores muy usados.

Variable: Que esta sujeto a cambios frecuentes o probables.

Procesador: Componente electrónico donde se realizan los procesos lógicos.

Concurrencia: Dos o mas procesos ejecutados al mismo tiempo.

Secuenciabilidad: Son un tipo de archivo en los que la información puede leerse y escribirse empulzando desde el principio del archivo.

Proceso: Instrucción de programas destinados al ser ejecutados por el microprocesador.

Hilo: Es una cantidad mas reducida capaz de convivir junto a otros hilos bajo el contexto de un unico proceso.

Proceso ligero: Son una unidad básica de la utilización de un CPU consistente en un juego de registros y un espacio de pila.

Memoria: Área donde se almacenan y pueden ejecutarse los programas.

Ejecución: Realización de una acción, un encargo o una orden.

Shell: Es un programa que se encuentra en el directorio bin.

Dato: Expresión general que describen las características de las entidades.

Instrucción: Acción elemental que se da a una computadora fin de que efectué una determinada operación.

Memoria principal: Donde se almacena tiempo realmente tanto datos como los programas que la CPU están procesando.

Memoria secundaria: Almacenamiento masivo permanente con mayor capacidad para almacenar datos e información.

Memoria cache: Área de almacenamiento dedicada a los datos usados.

Independiente: Que no se guarda relación de de ponencia con otra cosa.

Cooperante: Participa en la ejecución.



1.6 Núcleo


El núcleo de sistemas operativos controla todas las operaciones que implican procesos y representa solo una pequeña porción del todo el sistema operativo.
El proceso de interrupciones se incluye en el núcleo ya que debe ser rápido para optimizar el uso de los recursos del sistema y proveer tiempos de respuesta aceptable a los usuarios interactivos.


Procesos de Windows

*AppVshNotify

Es un tipo de archivo .exe asociado con microsoft Application Virtualization desarrollado por microsoft corporation para el sistema operativo de windows.

*Atheros Coex Service Aplication

Es un servicio que se encarga de coordinar entre 11a/b/g/n wireles LAN y el bluetooth. El servicio tiene ese nombre o algo similar.

*CyberLink MediaLibrary Service

Pertenece al Software pero no es esencial para windows y a menudo causa problemas.

1.5 Estructura: Niveles o extracto de Diseño

Nivel 1.- Gestión de memoria: 

Proporciona la facilidad de bajo nivel para la gestión de memoria secundaria necesaria para la ejecución de procesos.

Nivel 2.-Procesador:

Se encarga de activar los cuantums de tiempo para cada uno de los procesos, creando, interrupciones de hardware cuando no son respetados.

Nivel 3.- Entrada/Salida:

Proporciona las facilidades para poder utilizar los dispositivos de E/S requeridos por los procesos.

Nivel 4.- Información o aplicación e interprete de lenguajes:

Facilita la comunicación con los lenguajes y el sistema operativo para aceptar las ordenes en cada una de las aplicaciones.

Nivel 5.- Control de archivos:

Proporciona la facilidad para el almacenamiento a largo plazo y manipulanción de archivos con nombre va asignado espacio y acceso de datos de memoria.

El núcleo o kernel realiza diferentes tareas tales como:

*Manejo de interruptores.
*Creación y destrucción de procesos.
*Cambio de estado de los procesos.
*Despacho.
*Suspención y reanudación de procesos.
*Sincronización de procesos.
*Comunicación entre procesos.
*Manipulación de los bloques de control de proceso.

El núcleo y los procesos

Una definición especifica de lo que es el núcleo de (kenel) de un sistema operativo es: Un conjunto de rutinas cuya misión es la gestionar el procesador, la memoria, la E/S y el resto del proceso disponible en la instalación. Toda esta gestión la realiza para atender la funcionamiento y peticiones de los trabajos que se ejecuta en el sistema.





1.4 Clasificación

Los sistemas operativos han estado en funcionamiento durante mas de medio siglo. Durante este tiempo se ha desarrollado una variedad bastante extensa de ellas, no todos se conocen amplia mente.

Sistemas operativos de Mainframe

Las computadoras del tamaño de un cuarto completo que aun se encuentran en los principales centros de datos corporativos. La diferencia de estas computadoras y las personales están en su capacidad de entrada/salida.
También están envolviendo a figurar el ámbito computacional como servidores web de alto rendimiento, servidores para sitios de comercio electrónico a gran escala, y servidores para transistores de negocio a negocio.

Los sistemas operativo para las mainframes están profundamente orientado hacia el procesamiento de muchos trabajos a la vez. Un sistema de procesamiento por lotes procesa los trabajos de rutina sin que aya un usuario interactivo presente. Los sistemas de procesamiento de transacciones manejan grandes cantidades de pequeñas peticiones. Los sistemas de tiempo compartido permiten que varios usuarios remotos ejecuten trabajos en la computadora al mismo tiempo.

Sistemas Operativos de Servidores 

Se ejecutan en servidores, que son computadoras personales muy grandes, estaciones de trabajos o incluso mainframes. Dan servicio a varios usuarios a la vez a través de una red y le permite compartir los recursos de hardware y software. Algunos sistemas operativos de servicios comunes son:
Solaris, FreeBSD, Linux, y Windows Server 200x.

Sistemas Operativos de multiprocesadores

Una manera común es conectar varias CPU en un solo sistema. Dependiendo de la exactitudd con la que se conecten y de lo que se comparta, estos sistemas se conocen como computadoras en paralelo, multicomputadores o multiprocesadores.

Sistemas Operativos de computadoras personales

Todos los sistemas operativos modernos soportan la multiprogramación con frecuencia se inician docenas de programas al momento de arrancar el sistema. Su trabajo es proporsionar buen soporte para un solo usuario.

Sistemas Operativos de computadoras de bolsillo

Es una computadora que cabe en los bolsillos y realiza una pequeña variedad de funciones, como libreta de direcciones, electrónica y bloc de notas, hay muchos teléfonos celulares muy similares a las PDAs con la excepción de su teclado o pantalla.
Los sistemas operativos que operan son cada vez mas sofisticados, con la habilidad de proporcionar telefonía, fotografía digital y otras funciones.

Sistemas Operativos Integrados 

Tambien se conoce como incrustados o embebidos, operan en las computadoras que controlan dispositivos que no se consideran generalmente como computadoras, ya que no aceptan software instalado por el usuario.

Sistemas Operativos de nodos sensores

Estos nodos son pequeñas computadoras que se comunican entre si con una estación base, mediante el uso de la comunicación inalambrica, se utilizan para proteger los perímetros de los edificios, resguardar las frontera nacionales, detectar incendios, etc.
El sistema operativo tiene que ser pequeño y simple debido a que los nodos tienen poca RAM y el tiempo de vida de las baterías es una cuestión importante.

Sistemas Operativos de tiempo real

Estos sistemas se caracterizan por tener el tiempo como un parámetro clave. A menudo hay tiempo de entrega estrictos que se deben cumplir. Si la acción debe ocurrir sin excepción en cierto momento tenemos un sistema en tiempo real duro, otro es el tiempo real suave, en el cual es aceptable que muy ocasionalmente se pueda fallar a un tiempo predeterminado.

Sistemas Operativos de tarjetas inteligentes

Son los dispositivos de tamaño de una tarjeta de crédito que contiene un chip de CPU. Tienen muchas restricciones de poder de procesamiento y memoria. Algunos sistemas de este tipo pueden realizar una sola función, como pagos electrónicos, otros pueden llevar a cabo varias funciones en la misma tarjeta inteligente.


Clasificación de los Sistemas Operativos 

*Administración de tareas

Monotarea: Los que permiten solo ejecutar un programa a la vez.
Multitarea: Los que permiten ejecutar varias tareas o programas al mismo tiempo.

*Administración de usuarios

Monousuario: Aquellos que solo permiten trabajar a un usuario, como es el caso de los ordenadores personales.
Multiusuario: Los que permiten que varios usuarios ejecuten sus programas a la vez.

*Organización interna o estructura

Monolitico
Jerarquico
Cliente-Servidor

*Manejo de recursos o Acceso a servicios

Centralizados: Si permite utilizar los recursos de un solo ordenador.
Distribuidos: Si permite utilizar los recursos (CPU, memoria, periféricos...) de mas de un ordenador al mismo tiempo.





1.3 Evolución Historica

La primera Generación (1945 a 1955): tubos al vacío

Algunas computadoras fueron binarias, otras utilizaban bulbos, algunas eran programables, pero todas eran muy primitivas y tardaban segundos en realizar incluso asta el calculo mas simple. En estos primeros días, un solo grupo de personas diseñaban, constituían, programaban, operaban y daban mantenimiento a cada maquina.
Los lenguajes de programación eran desconocidas. Entonces fue posible escribir programas en tarjetas y leerlas en vez de usar tableros de conexiones.

La segunda generación (1955 a 1965): transistores y sistemas de procesamiento por lotes

Los transistores a mediados de la década cambiaron radicalmente.
Mainframes eran maquinas que se encuentran encerradas, en cuartos especiales. Primero escribían el programa el papel y después lo pasaban en tarjetas perforadas. Los resultados se escribían en una segunda cinta en vez de imprimirlas.

La tercera generación (1965 a 1980): circuitos integrados y multiprogramación

La mayoría de los fabricantes de computadoras tenias dos lineas de producción distintas e incompatibles.
IBM intento resolver los problemas con una computadora System360. Fres Brooks diseñador de SO/360 IBM fue la primera en utilizar circuitos integrados.

La cuarta generación (1980 a la fecha): las computadoras personales

Con el desarrollo de los circuito LSI nació la era de la computadora personal. Intel presento el microprocesador 8080 en 1974 deseaba un sistema operativo. Después de Kindall escribio un sistema operativo basado en disco conocido como CP/M. Se escribieron muchos programas.
La gente de IBM se puso en contacto con Bill Gates para obtener una licencia de uso.

Actualidad de los Sistemas Operativos

Como conjunto de los programas de interacción entre el usuario y la computadora.
Windows 1980 y el mas actual Windows 10. Linux es una familia de modificaciones.
Dispositivos móviles contienen diferentes ordenadores para realizar sus funciones.

Tendencias de los Sistemas Operativos

Son las nuevas aplicaciones que darán una innovación para las informáticas y para que se puedan adaptar a todos los que visitan los sitios web  para realización de tareas y entretenimiento.

jueves, 8 de septiembre de 2016

1.2 Funciones y Características de los Sistemas Operativos.

En general, se puede decir que un sistema operativo tiene las siguientes características.

Conveniencia: Un sistema operativo hace mas conveniente el uso de un computadora.
Eficiencia: Un sistema operativo permite que los recursos de una computadora se usen de la manera mas eficiente posible habilidad para evolucionar. Un sistema operativo deberá construirse de manera que permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con el servicio.

Encargado de administrar el hardware. El sistema operativo se encarga de manejar de una mejor manera los recursos de la computadora en cuanto a hardware se refiere, esto es, asignar a cada proceso una parte del procesador para poder compartir los recursos.

Relacionar dispositivos: (Gestionar a través del Kemel).
El sistema operativo se debe encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.


Organizar datos para acceso rápido y seguro.

Manejar las comunicaciones en red, el sistema operativo permite al usuario manejar con alta facilidad lo referente a la instalación y uso de las redes de computadora.


Procesamiento por bytes de flujo a través del bus de datos.

Facilitar las entradas y salidas. Un sistema operativo debe hacerle fácil al usuario el acceso y manejo de los dispositivos de entrada/salida de la computadora.


Técnicas de recuperación de errores.

Evita que otros usuarios se bloqueen entre ellos, informándoles si esa aplicación están siendo ocupadas por otro usuario.

Generación de estadísticas.

Permite que se puedan compartir el hardware y los datos entre los usuarios.

El software de aplicación son programas que se utilizan para diseñar, tal como el procesador de palabras, lenguajes de programación, hojas de calculo, etc.
El software de base sirve para interactuar el usuario con la maquina, son un ejemplo de programas que faciliten el ambiente plataforma, y permitir el diseño del mismo.
El software de base esta compuesto por:
  -Cargadores
  -Compiladores
  -Ensambladores
  -Macros


1.1 Definición y Concepto de Sistemas Operativos

Libro: Sistemas Operativos Distribuidos.

Autor: Andrew S. Tanenbaum.

Es una colección de computadoras independientes que aparecen entre los usuarios del sistema como una única computadora. Esta definición tiene dos aspectos. El primero se refiere al hardware las maquinas son auto normales. El segundo se refiere al software los usuarios piensan que el sistema es como una única computadora.

Libro: Fundamentos de Sistemas Operativos.

Autor: Silberschatz Galvin Gagne.

Es un programa que administra el hardware de una computadora. También proporciona las bases para los programas de aplicaciones y actúa como un intermediario entre el usuario y el hardware de la computadora.

Libro: Sistemas Operativos.

Autor: Magister David Luis La Red Martinez.

Un sistema operativo es un grupo de programas de procesos con las rutinas de control necesarias para mantener continuamente operativos dichos programas.

Libro: Sistemas Operativos Modernos 3ra Edición.

Autor: Andrew S. Tanenbaum.

Difieren de los programas de usuario en varias cuestiones ademas del lugar en el que residen. En particular, son enormes, complejos y de larga duración.

Libro: Sistemas Operativos 2da Edicion.

Autor: Willian Stallings.

Explota los recursos de hardware de uno o mas procesadores para ofrecer un conjunto de servicios a los usuarios del sistema.

Unidad 1. Introducción a los Sistemas Operativos

El sistema operativo es el programa o software mas 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 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 trafico, se asegura que los programas y usuarios que están funcionando al mismo tiempo no interfieran entre ellos. También es responsable de la seguridad, asegurándose de que los usuarios no autorizados no tengan acceso al sistema.

Como funciona el Sistema Operativo

Proporcionan una plataforma de software encima de la cual otros programas llamados aplicaciones puedan funcionar. Las aplicaciones se programan para que funcionen encima de un sistema operativo particular, por lo tanto, la elección del sistema operativo determina en gran medida las aplicaciones que puedes utilizar.   
Los sistemas operativos mas utilizados en la PC son DOS,OS12 y Windows, pero hay otros que también se utilizan, como por ejemplo Linux.

Como se utiliza un Sistema Operativo

El usuario normalmente interactua con el sistema operativo a través de un sistema de comandos, por ejemplo, el sistema operativo Dos contiene comandos como copiar y pegar archivos respectivamente. Los comandos son aceptables y ejecutados por una parte del sistema operativo llamada procesador de comandos o interprete de la linea de comandos. Las interfaces gráficas permiten que utilices los comandos señalado y pinchado en objetos que aparecen en pantalla.

Clasificación de los Sistemas Operativos

Multiusuario: Permite que dos o mas usuarios utilicen sus programas al mismo tiempo.
Multiprocesador: Soporta el abrir un mismo programa en mas de un CPU.
Multitarea: Permite que varios programas se ejecuten al mismo tiempo.
Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo.
Tiempo real: Responde a las entradas inmediatamente. Los sistemas operativos como Dos y Unix no funcionan como tiempo real.



                             

Examen Diagnostico

¿Qué es un sistema operativo?
-Es el software básico de una computadora que provee una interfaz entre el resto de programas del ordenador, los dispositivos hardware y el usuario.

¿Escribe el proceso de encendido de una computadora?
-El proceso de arranque inicia desde que se pulsa el interruptor de encendido hasta que se carga el sistema operativo, el ordenador realiza una serie de tareas para verificar el buen funcionamiento del harware instalado.

¿A que se le llama tarea o proceso?
-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.

¿Que es multitarea?
-Son los sistemas operativos modernos, los cuales permiten que varios procesos y funciones se ejecuten simultáneamente.

¿Que es un multiprocesamiento?
-Aptitud para hacer uso de dos o mas procesos que ocurren en un mismo sistema.

¿Con que unidad se mide la capacidad de almacenamiento de una computadora?
-Hasta hace poco se media en megabytes (MG) y actualmente en gigabytes (GB).

¿Con que unidad se mide la capacidad de procesamiento de una computadora?
-Se mide en Hertz (KHz, MHz, GHz)

¿Que es un cuello de botella?
-Es sintoma de tener un equipo desbalanceado, es decir, con un componente que no rinde a la par del hardware que lo acompaña.

¿Que es un driver?
-Es un dispositivo que lee y/o escribe datos en un medio de almacenamiento como disquetes, discos opticos,etc.

Escribe como se administrar recursos de hardware y software de una computadora.
-En este almacén se guardan grandes volúmenes de información.