martes, 28 de octubre de 2014

4.4 Operaciones de Entrada salida

Definiremos una operación de E/S como el conjunto de acciones necesarias para la transferencia de un conjunto de datos (es decir, una transferencia completa de datos).

Una operación de entrada tiene por objeto el  obtener datos de los diferentes dispositivos de entrada; generalmente del teclado, y de almacenarlos en memoria principal.


 Una operación de salida tiene por objeto el  obtener datos de memoria principal y sacarlos a  los dispositivos de salida, generalmente la pantalla.

Para la realización de una operación de E/S se deben efectuar las siguientes funciones: 
Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación. 
Sincronización de velocidad entre la CPU y el periférico. 
Detección de errores (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de        redundancia cíclica, etc.) 
Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones        de E/S que utilizan el área de datos del programa. 
Conversión de códigos, conversión serie/paralelo, etc.

Existen varias operaciones, las más importantes son las siguientes:
Lectura: el canal transfiere a memoria principal un bloque de palabras de tamaño especificado en el campo nº de palabras, en orden ascendente de direcciones, empezando en la dirección especificada en el campo dirección del dato.

Escritura: el canal transfiere datos de memoria principal al dispositivo. Las palabras se transfieren en el mismo orden que en la operación de lectura.

Control: se utiliza esta orden para enviar instrucciones específicas al dispositivo de E/S, como rebobinar una cinta magnética, etc.

Bifurcación: cumple en el programa de canal la misma función que una instrucción de salto en un programa normal. El canal ejecuta las CCW en secuencia, salvo cuando aparece una CCW de este tipo, que utiliza el campo dirección del dato como la dirección de la siguiente CCW a ejecutar.

4.3 Estructuras de datos para manejo de dispositivos

¿Qué es una estructura? 
Una Estructura de Datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema. 

La estructura En los sistemas operativos
La estructura es generalmente modular, cada módulo cumple una función determinada e interactúa con los demás módulos. 

Estructura por capas
Consiste en dividir al sistema operativo en un número de capas. La capa de menor nivel es el hardware y la de mayor nivel es la interfaz con el usuario. 

Principal ventaja
La principal ventaja es que cada capa cumple con una serie de funciones y servicios que brinda a las otras capas, esto permite una mejor organización del sistema operativo y una depuración mas fácil de este. 

Estructura de datos en dispositivos
Los procesos de usuario emiten peticiones de entrada/salida al sistema operativo. Cuando un proceso solicita una operación de E/S, el sistema operativo prepara dicha operación y bloquea al proceso hasta que se recibe una interrupción del controlador del dispositivo indicando que la operación está completa. Las peticiones se procesan de forma estructurada en las siguientes capas:

Manejadores de interrupción.
Manejadores de dispositivos o drivers.
Software de EIS independiente de los dispositivos
Interfaz del sistema operativo.

EL SISTEMA OPERATIVO

El sistema operativo estructura el software de gestión de E/S de esta forma para ofrecer a los usuarios una serie de servicios de E/S independientes de los dispositivos. Esta independencia implica que deben emplearse los mismos servicios y operaciones de E/S para leer datos de un disquete, de un disco duro, de un CD-ROM o de un teclado. 

4.2 Mecanismos y funciones de los manejadores de dispositivos: device drivers

El controlador es el componente más importante desde el punto de vista del  sistema operativo, ya que constituye la interfaz del dispositivo con el bus de la computadora y es el componente que se ve desde la CPU. El Sistema Operativo generalmente trabaja con el controlador y no con el dispositivo.


E/S programada: El procesador emite una orden de E/S de parte de un proceso a un modulo de E/S; el proceso espera entonces a que termine la operación, antes de seguir.

E/S dirigida por interrupciones: El procesador emite una orden de E/S de parte de un proceso, continua la ejecución de las instrucciones siguientes y el modulo de E/S lo interrumpe cuan do completa su trabajo. Las instrucciones siguientes pueden ser del mismo proceso, si no es necesario para este esperar la terminación de E/S. en otro caso, el proceso se suspende a la espera de la interrupción, mientras se realiza otro trabajo.

Funciona generalmente realizado por el software
Interfaz uniforme para los manejadores de dispositivos.
Nombre de los dispositivos
Protección del dispositivo
Uso de buffer

El software independiente del dispositivo asocio los nombres simbolicos de los dispositivos con el nombre adecuado









4.1 Dispositivos y Manejadores de Dispositivos: Device Drivers

El sistema de E/S es la parte del sistema operativo que se ocupa de facilitar el manejo de los dispositivos de E/S ofreciendo una visión lógica simplificada de los mismos que pueda ser usada por otros componentes del sistema operativo (como el sistema de archivos) o incluso por el usuario.

El sistema operativo debe controlar el funcionamiento de todos los dispositivos de E/S para alcanzar los siguientes objetivos:


ü  Facilitar el manejo de los dispositivos de E/S.
ü  Optimizar la E/S del sistema, proporcionando mecanismos de incremento de prestaciones donde sea necesario.
ü  Proporcionar dispositivos virtuales que permitan conectar cualquier tipo de dispositivo físico
ü  Permitir la conexión de dispositivos nuevos de E/S, solventando de forma automática su instalación
ü  Conexión de un dispositivo de E/S a una computadora
ü  Periféricos o dispositivos de E/S. Elementos que se conectan a la unidad central de proceso a través de las unidades de entrada/salida.
 ü  Controladores de dispositivos o unidades de E/S. Se encargan de hacer la transferencia de información entre la memoria principal y los periféricos. 

Dispositivos de E / S

Se denomina periféricos a los aparatos o dispositivos auxiliares e independientes conectados a la unidad central de procesamiento de una computadora.

Se consideran periféricos tanto a las unidades o dispositivos a través de los cuales la computadora se comunica con el mundo exterior, como a los sistemas que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal.

Se pueden clasificar en dos grandes categorías:

Dispositivos de bloques:
Dispositivos que almacenan la información en bloques de tamaño fijo (discos)

Dispositivos de caracteres:
Maneja la información mediante un flujo de caracteres sin estructurarlos en bloques (mouse, teclado, impresora)

Las principales características de los dispositivos de bloque son:
            La información se almacena en bloques de tamaño fijo.
            Cada bloque tiene su propia dirección.
            Los tamaños más comunes de los bloques van desde los 128 bytes hasta los 1.024 bytes.
            Se puede leer o escribir en un bloque de forma independiente de los demás, en cualquier momento.

Las principales características de los dispositivos de caracteres son:
            La información se transfiere como un flujo de caracteres, sin sujetarse a una estructura de bloques.
            No se pueden utilizar direcciones.
            No tienen una operación de búsqueda.
            Un ejemplos típico de dispositivos de caracter son las impresoras de línea, terminales, interfaces de una red, ratones, etc.

Todos los dispositivos de E/S se pueden agrupar en tres grandes grupos:
Dispositivos de interfaz de usuario. Se llama así a los dispositivos que permiten la comunicación entre los usuarios y la computadora. Dentro de este grupo se incluyen todos los dispositivos que sirven para proporcionar interfaz con el usuario, tanto para entrada (ratón, teclado, etc.) como para salida (impresoras, pantalla, etc.). Existen periféricos menos habituales, pero más sofisticados, tales como un escáner, lectores de huella digital, lectores de cinta magnética, instrumentos musicales digitales (MIDI), etc.

Dispositivos de almacenamiento. Se usan para proporcionar almacenamiento no volátil de datos y memoria. Su función primordial es abastecer de datos y almacenamiento a los programas que se ejecutan en la UCP. Según su capacidad y la inmediatez con que se puede acceder a los datos almacenados en estos dispositivos, se pueden dividir en almacenamiento secundario (discos y disquetes) y terciario (cintas).

Dispositivos de comunicaciones. Permiten conectar a la computadora con otras computadoras a través de una red. Los dos tipos de dispositivos más importantes de esta clase son los módem, para comunicación vía red telefónica, y las tarjetas de interfaz a la red, para conectar la computadora a una red de área local.

Controladores de Dispositivos:
Un controlador (instaladores) de dispositivos, normalmente llamado controlador en inglés (device driver) es un programa informático que permite al sistema operativo interactuar con un periférico, haciendo una abstracción del hardware del dispositivo y proporcionando una interfaz - posiblemente estandarizada - para usarlo.

Se suelen Agrupar en:
Adaptadores de audio (tarjetas de sonido).
Dispositivos de comunicación (infrarrojos, módems, etc).
Dispositivos de visualización; pantallas (displays).
Teclados.
Ratón (“mouse” y otros señaladores gráficos).
Dispositivos multimedia.
Dispositivos de Red.
Impresoras.
Almacenamiento

Algunos dispositivos de entrada y salida:
Entrada:                                              
Teclado
Ratón
Joystick
Lápiz óptico
Micrófono
Webcam
Escáner
Escáner de código de barras

Salida:
Monitor
Altavoz
Auriculares
Impresora
Plotter
Proyector










3.4 Administracion de Memoria Virtual

3.4 ADMINISTRACION DE MEMORIA VIRTUAL
La clave del concepto de memoria (almacenamiento) virtual está en la disociación:
  • De las direcciones a las que hace referencia un programa.
  • De las direcciones disponibles en la memoria real (almacenamiento primario).
Mientras el proceso se ejecuta con sus páginas actuales, el sistema carga las demás páginas que estarán disponibles cuando las requiera el proceso.
El S. O. intenta predecir las páginas que un proceso va a necesitar y a continuación precarga estas páginas cuando hay espacio disponible Mientras el proceso ejecuta sus páginas actuales, el sistema carga páginas nuevas que estarán disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecución de un proceso se puede reducir.
La memoria virtual es una técnica de administración de memoria desarrollada para sistemas multitareas. Esta técnica virtualizada memoria principal (RAM) a partir de un disco duro (almacenamiento secundario), permitiendo al sistema operativo brindarle a un programa y a sí mismo un espacio de direcciones de memoria mayores a la memoria física o real.


Paginación y Segmentación
Un proceso puede ser dividido en partes (ya sea en páginas o segmentos) que no necesitan estar localizados continuamente en la memoria principal.
Esto quiere decir que todas las partes de un proceso no necesitan ser cargadas en la memoria principal durante la ejecución.
Esto quiere decir, que podemos utilizar la memoria virtual para porciones de un programa que no son utilizadas actualmente y que otro programa que necesite memoria principal pueda accesar a ésta.


Ejemplos de Paginación




Ventajas de la Paginación
Fácil asignación de memoria
La memoria proviene de una lista «libre» de partes de cierto tamaño, asignar una página simplemente significa retirarla de la lista y la fragmentación externa no es un problema
Fácil intercambio de bloques de un programa
Todos los bloques son del mismo tamaño y las páginas son un múltiplo conveniente del tamaño del bloque del disco







Inconvenientes de la Paginación
Puede existir fragmentación interna ya que los procesos pueden no usar memoria en algunas páginas
El almacenamiento de cada tabla de referencias puede ser significante
Hay gastos altos de memoria para las referencias




 Estrategias de Administración
Existen varias formas de gestionar la memoria virtual, a continuación mencionamos las más importantes:
-          Estrategias de mejor ajuste
-          Estrategias de primer ajuste
-          Estrategias de peor ajuste
-          Estrategias de Obtención
-          Estrategias de Colocación
-          Estrategias de Reemplazo

Estrategias del mejor ajuste: Un trabajo que entre en el sistema se colocará en el espacio vació del almacenamiento principal en el que quepa mejor y que deje la menor cantidad posible de espacio sin utilizar.
Estrategias del primer ajuste: Un trabajo que entre en el sistema se colocara en el almacenamiento principal en el primer vació disponibles lo bastante grande para contenerlo.
Estrategias del peor ajuste: Consiste en colocar un programa en el almacenamiento primario en el espacio vació donde peor se ajusta es decir en el espacio más grande posible.
Estrategias de obtención: Determina cuando se debe transferir una página o un segmento de almacenamiento secundario al primario. Las estrategias de obtención por demanda esperan a que un proceso en ejecución haga referencia a una página o a un segmento antes de traer la página o el segmento de almacenamiento primario. Los esquemas de obtención anticipada intentan determinar por adelantado a cuales paginas o segmentos hará referencia un proceso.
Estrategias de colocación: Determinan en qué lugar del almacenamiento primario se debe colocar una página o un segmento entrante. Una página entrante se puede colocar en cualquier marco de página disponible.

Estrategias de reemplazo: Sirven para decidir cuál página o segmento se debe desplazar para dar espacio a una página o segmento entrante cuando está completamente ocupado el almacenamiento primario.

3.3 Organización de Memoria Virtual

3.3 ORGANIZACIÓN DE MEMORIA VIRTUAL
Memoria Virtual.
La memoria virtual ha llegado a ser un componente esencial de la mayoría de los Sistemas Operativos actuales. Y como en un instante dado, en la memoria solo se tienen unos pocos fragmentos de un proceso, se pueden mantener más procesos en la memoria.
La memoria virtual también simplifica la carga del programa para su ejecución llamado reubicación, este procedimiento permite que el mismo programa se ejecute en cualquier posición de la memoria física.
La memoria virtual combina la RAM del equipo con espacio temporal en el disco duro. Cuando queda poca RAM, la memoria virtual mueve datos de la RAM a un espacio llamado archivo de paginación. Al mover datos al archivo de paginación y desde él, se libera RAM para que el equipo pueda completar la tarea.
Evaluación de las Organizaciones de Almacenamiento.
Almacenamiento virtual “significa la capacidad de direccionar un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computación”. Esta tecnología apareció en 1960 en la Universidad de Manchester (Inglaterra), en el sistema “Atlas”.
Los métodos más comunes de implementación son mediante:
¡  Técnicas de “Paginación”.
¡  Técnicas de “Segmentación”.
¡  Una combinación de ambas técnicas.

Implicaciones de la memoria Virtual.

La segmentación permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser distintos tamaños, incluso de forma dinámica. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).

3.2 Memoria Real

3.2 MEMORIA REAL
La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.
Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso.

Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.
Cuando no existe memoria virtual no hay diferenciación entre el espacio de direcciones y la memoria real; el espacio de direcciones que puede ser usado en los programas tiene idéntico tamaño al espacio de memoria real posible. Si se utiliza memoria virtual, el espacio de direcciones disponibles para los programas es aquel determinado por el tamaño de la memoria virtual implementada y no el espacio de direcciones provisto por la memoria real disponible (el espacio de la memoria virtual será mayor que el de la memoria real).
La organización y administración de la “memoria principal”“memoria primaria” “memoria real” de un sistema ha sido y es uno de los factores más importantes en el diseño de los S. O. (Ver la figura 3.2.1)
        Los términos “memoria” “almacenamiento” se consideran equivalentes.
        Los programas y datos deben estar en el almacenamiento principal para:
  • Poderlos ejecutar.
  • Referenciarlos directamente



3.1 Política y Filosofía

UNIDAD 3. ADMINISTRACION DE MEMORIA

3.1 POLÍTICA Y FILOSOFÍA

Filosofía
La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una dirección que la identifica.
Una de las funciones básicas que debe implementar un SO es la Administración de la Memoria para tener un control sobre los lugares donde están almacenados los datos y procesos que actualmente se están utilizando.
Sea cual sea el esquema de organización del almacenamiento que se adopte para un sistema específico es necesario decidir que estrategias se deben utilizar para obtener un rendimiento óptimo.

Políticas

FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un proceso llega al procesador sale hasta que termine. La politica FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una política de prioridades y hay procesos con la misma prioridad, a estos se les podría aplicar FIFO. (Ver figura (1))

Figura 3.1.1
Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una cantidad limitada de tiempo (CUANTUM) en el procesador, si no termina en ese lapso se manda al final de la lista de procesos listos. (Ver figura(2))


Figura 3.1.2
SJF (Shortest Job first - Prioridad del trabajo más corto): Se ejecuta primero el proceso en espera que tiene el menor tiempo estimado. SJF favorece a los procesos cortos, ya que los largos podrían llegar a rezagarse mucho tiempo e incluso nunca ejecutarse. (Ver Figura(3))

Figura 3.1.3
SRT (Sortest remaining time scheduling ? Tiempo restante más cortó. En SJF una vez que un proceso comienza su ejecución continúa hasta terminar. En SRT, un proceso en ejecución puede ser desposeído por uno nuevo de menor tiempo de ejecución. (Ver Figura(4))

HRN: (highest response ratio next? Prioridad de la tasa de respuesta más alta): Política no apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para así no caer en un favoritismo excesivo por los procesos cortos, lo logra usando una formula basada en el tiempo de espera y el tiempo de servicio, con lo cual la prioridad de cada trabajo no solo está en función del tiempo de servicio sino también del tiempo que ha esperado para ser atendido.(Ver Figura(5))


lunes, 27 de octubre de 2014

2.6 Técnicas de Administración del Planificador








2.5 Niveles Objetivos y Criterios de Planificación

Niveles
„La planificación hace referencia a un conjunto de políticas y mecanismos incorporados al sistema operativo que gobiernan el orden en que se ejecutan los trabajos que deben ser cumplimentados por el sistema informático.

Concepto de Planificación
„La planificación hace referencia a un conjunto de políticas y mecanismos incorporados al sistema operativo que gobiernan el orden en que se ejecutan los trabajos que deben ser cumplimentados por el sistema informático.

Objetivos de PLANIFICACIÓN
„Justicia.
„Máxima capacidad de ejecución.
„Máximo numero de usuarios interactivos.
„Minimización de la sobrecarga.
„Equilibrio en el uso de recursos.
„Evitar la postergación indefinida.

Criterios de PLANIFICACIÓN
La prioridad de un proceso: a mayor prioridad mejor tratamiento. 
„La limitación de un proceso a las operaciones de Entrada / Salida. 
„La limitación de un proceso a la cpu.





2.4 Concurrencia y Secuenciabilidad

„En épocas pasadas de los sistemas de procesamiento por lotes, con una entrada en forma de imágenes de tarjetas en una cinta magnética, el algoritmo de planificación era sencillo: solo había que ejecutar el siguiente trabajo en la cinta.

„Actualmente cuando mas de un proceso es ejecutable, el Sistema Operativo debe decidir cual de ellos deberá ejecutarse primero. Hay que tener una planificación de los procesos que quieren ejecutarse en el sistema.


2.4 Concurrencia y Secuenciabilidad

La concurrencia comprende un gran número de cuestiones de diseño incluyendo la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos y asignación de tiempo del procesador a los procesos.





2.3 Procesos Ligeros

Un proceso ligero, o thread, es un programa en ejecución (flujo de ejecución) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros. Como muestra la Figura, un proceso puede contener un solo flujo de ejecución, como ocurre en los procesos clásicos, o más de un flujo de ejecución (procesos ligeros).

Desde el punto de vista de la programación, un proceso ligero se define como una función cuya ejecución se puede lanzar en paralelo con otras. El hilo de ejecución primario, o proceso ligero primario, corresponde a la función main.

Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. Las informaciones propias se refieren fundamentalmente al contexto de ejecución, pudiéndose destacar las siguientes:

Contador de programa.
Pila.
Registros.
Estado del proceso ligero (ejecutando, listo o bloqueado).
Todos los procesos ligeros de un mismo proceso comparten la información del mismo. En concreto, comparten:
Espacio de memoria.
Variables globales.
Archivos abiertos.
Procesos hijos.
Temporizadores.
Señales y semáforos.
Contabilidad.

Es importante destacar que todos los procesos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, que incluye el código, los datos y las pilas de los diferentes procesos ligeros. Esto hace que no exista protección de memoria entre los procesos ligeros de un mismo proceso, algo que si ocurre con los procesos convencionales.

El proceso ligero constituye la unidad ejecutable en Windows NT. La Figura representa de forma esquemática la estructura de un proceso de Windows NT con sus procesos ligeros.

Procesos ligeros (Hilos o hebras). 
Los procesos ligeros son programas en ejecución son básicamente procesos pero a diferencia de éstos últimos que solo tienen un hilo de ejecución los primeros tienen el hilo principal más hilos secundarios o hijos, en éste caso todos los procesos hijos comparten la información del hilo principal pero además puede cada hilo tener su información privada. 

Dentro de la información propia tenemos: 
Contador de programa 
Pila 
Registros. 
Estado del proceso ligero. 
Dentro de la información compartida tenemos: 
Variables globales. 
Archivos abiertos 
Señales 
Semáforos. 
Contabilidad. 

Los hilos o procesos ligeros son una parte de código o miniprograma que puede ser ejecutada independientemente, de forma que una aplicación o un applet puede tener varios hilos ejecutándose simultáneamente y efectuando distintas tareas; estos hilos se encuentran dentro de un programa y son parte de él.

Los hilos, a veces también llamados contextos de ejecución, pueden ser utilizados para la implementación de algoritmos paralelos o procesos concurrentes, sin ser necesario disponer de equipos con estructura de multiprocesador. En el caso de un solo procesador, los procesos ligeros incorporan mecanismos para compartirlo, estableciéndose prioridades entre ellos y también facilidades de sincronización, cuando es necesario.

Multiproceso se refiere a dos programas que se ejecutan "aparentemente" a la vez, bajo el control del sistema operativo.

Multihilo se refiere a que dos o mas tareas se ejecutan "aparentemente" a la vez, dentro de un mismo programa.

2.2 Estados y Transcisiones de un Estado

Estados de un  proceso:
Un proceso pasa de un estado a otro desde su creación hasta su destrucción. Los estados por los cuales puede pasar un proceso son los siguientes:

• Nuevo:
Cuando el proceso se está creando.
• Ejecución:
Es cuando se están ejecutando instrucciones.
• Bloqueado:
Es cuando el proceso está esperando que ocurra un evento.
• Listo:
Es cuando un proceso está a la espera de ser asignado a un procesador.
• Terminado:
Es cuando el proceso ha terminado su ejecución.




Transiciones de un proceso:
Cuando un proceso se crea, pasa a la cola de procesos listos. Se dice que existe una transición de estado cuando un proceso cambia de un estado a otro.

Nuevo Listo:
Cuando un proceso se ha creado y se le es permito para competir por la CPU.

Listo En ejecución:
La asignación de la CPU al primer proceso de la lista de listos es llamado despacho y es ejecutado por la entidad de sistema llamada despachador. Mientras que el proceso tenga la CPU se dice que está en ejecución.

En ejecución Listo:
El S.O , cuando un proceso se le expira el intervalo de tiempo asignado para estar en ejecución (CUANTO), hace que este proceso que se hallaba en estado de ejecución pase al estado de listo y inmediatamente el despachador hace que el primer proceso de la lista pase a estado de ejecución.

En ejecución Bloqueado:
Si un proceso que se encuentra en estado de ejecución inicia una operación de E/s antes que termine su cuanto, el proceso voluntariamente abandona la CPU, es decir, el proceso se bloquea a sí mismo.

Bloqueo Listo:
La única transición posible en nuestro modelo básico ocurre cuando acaba una operación de E/S (o alguna otra causa por la que esté esperando el proceso), y esta termina pasa a el estado de listo.

En ejecución Terminado:
Esta transición ocurre cuando el proceso se ha terminado de ejecutarse, y pasa a un estado de terminado.



miércoles, 1 de octubre de 2014

2.1 Concepto de Proceso

Concepto de Proceso: 
Un proceso no es mas que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada unos de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro.

Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:

Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
Otra información que permite al sistema operativo su planificación.


Esta definición varía ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por todos los hilos) y la información de planificación. Cada hilo consta de instrucciones y estado de ejecución.

1.6 Núcleo

1.6 Nucleo 
 El Kernel consiste en la parte principal del codigo del sistema operativo, el cual se encargan de controlar y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos, en otras palabras, el kernel es el corazon del sistema operativo.
HGH
Cada sistema operativo tiene un tipo distinto de kernel: asi los Unix mas tradicionales como FreeBSD usan un kernel " monolitico" en el que esta todo compilado dentro, otros usan los llamados "microkernels" como el Darwin, Hurd e incluso Windows (krnl32.dll). GNU/Linux usa un kernel "modular" (vmlinuz); un nucleo bastante grande comparado con un microkernel, pero que es capaz de delegar funciones en los llamados " modulos" , partes independientes del nucleo que pueden ser incorporadas dinamicamente si hacen falta y luego descargadas si molestan. Asi se pueden cargar "drivers" para hardware, firewall o funciones especiales de red (ppp, rdsi, etc) cuando se necesiten y cuando por ejemplo, se cierre la conexion a internet, liberar la memoria que usaba ese modulo.