viernes, 26 de noviembre de 2010

termino de nuestra unidad

DESPACHADOR

Otro componente implicado en la función de la planificación de la CPU es el despachador. Este componente es el módulo que da el control de la CPU al proceso seleccionado por el planificador de corto plazo. Sus funciones:
• Conmutación de contexto
• Conmutación a modo de usuario
• Saltar a la localidad apropiada en el programa del usuario para reiniciar el programa


CRITERIOS DE PLANIFICACIÓN

• Utilización: poder mantener la CPU tan ocupada posible.
• Productividad: es el numero de procesos/hilos que completan su
ejecución por unidad de tiempo.
• Tiempo de retorno: es la cantidad de tiempo necesaria para
ejecutar (completar) un proceso/hilo dado.
• Tiempo de espera: es el tiempo que un proceso/hilo ha estado
esperando en la cola de Listos.
• Tiempo de respuesta: es el tiempo que va desde que se remite una
solicitud hasta que se produce la primera respuesta (no salida).


ALGORITMOS DE PLANIFICACIÓN.

FCFS (Primero en llegar, Primero en ser servido)

• Es el algoritmo más simple de implementar
• La cola de Listos se gestiona como una cola FIFO (First Input First Output)
• Muy sensible al orden de llegada de los procesos/hilos
• Puede producir grandes tiempos de espera

SJF (primero el más corto)

• Entra en CPU el proceso con la ráfaga de CPU más breve
• Minimiza el tiempo de espera medio
• Riesgo de agotamiento de los procesos/hilos de larga duración
• Se pueden estimar las próximas ráfagas de CPU de los procesos/hilos según su historia reciente

Round Robin (Turno rotatorio - circular)

• Adecuado para implementar tiempo compartido
• Corresponde a FCFS con expropiación
• Cada proceso/hilo dispone de un cuanto de tiempo máximo q

Planificación por Prioridades

• Cada proceso tiene una prioridad; entra en CPU aquel con mayor prioridad
• la política puede ser expulsiva o no
• Prioridades definidas de forma interna (por el S.O.) o externa (por los usuarios)
• El SJF es un caso (prioridad=duración estimada)


PLANIFICACIÓN CON COLAS MÚLTIPLES Y RETROALIMENTADAS.

Multicolas

• Los procesos se pueden clasificar fácilmente en distintos grupos interactivos, por lotes, etc.)
• Varias colas de Listos, cada una gestionada con una política diferente
• Las colas se reparten la CPU según alguna política:
• por prioridad absoluta
• un % de tiempo para cada cola
• Debe existir un algoritmo de planificación entre colas


Multicolas con Realimentación

• Existen diferentes colas de procesos preparados.

Cada cola posee:
- Política de planificación.
- Una prioridad asignada.

• Un proceso puede cambiar de cola de acuerdo con un esquema de actualización de prioridades
• Los procesos con un tiempo de espera acumulado elevado son promocionados a una cola con prioridad superior
• Los procesos con un tiempo de utilización de la CPU elevado son degradados a una cola con prioridad inferior.
• Procesos ligados a E/S tienen alta prioridad (pasan rápido por la CPU)
• Procesos ligados a CPU disminuyen su prioridad (bajan a colas de mayor cuanto)
• Para evitar inanición, procesos que esperan mucho pueden subir una cola (envejecimiento)

sábado, 30 de octubre de 2010

Excepción:

Es una situación anómala que surge en un bloque de código, es decir, es un error que normalmente aparece en tiempo de ejecución.

¿Qué ocurre con una excepción?

Cuando se genera una excepción el interprete crea un objeto para representar la excepción,envía el objeto (la excepción) al método que ha provocado la excepción y si el método no captura la excepción, entonces el interprete la captura y realiza las acciones pertinentes (detención del programa y avisos o mensajes por pantalla).




Intercambio con el Almacenamiento Secundario

La memoria secundaria(o masivo) requiere que la computadora use sus canales de entrada/salida para acceder a la información y se utiliza para almacenamiento a largo plazo de información persistente. Sin embargo, la mayoría de los sistemas operativos usan los dispositivos de almacenamiento secundario como área de intercambio para incrementar artificialmente la cantidad aparente de memoria principal en la computadora.
El intercambio consiste en trasladar el código y los datos de un proceso completo de memoria al sistema de almacenamiento secundario, para cargar otro previamente almacenado.


Características del Almacenamiento Secundario

-Gran capacidad de almacenamiento.
-No se pierde la información al apagarse la computadora, es decir no es volátil.
-Altas velocidades de transferencia de información.
-La información se almacena en el mismo formato como se hace en la memoria principal.
-Para ser procesados por el CPU, los datos se almacenan en la memoria secundaria y luego se llevan a la memoria principal.




Planificación de CPU


En el sentido de conmutarla entre los distintos procesos, es una de las funciones del sistema operativo. Este despacho es llevado a cabo por un pequeño programa llamado planificador a corto plazo o despachador.

Objetivos perseguidos en la planificación de CPU:
Equidad
Eficiencia
Bajo tiempo de respuesta
Rendimiento alto
Minimizar el tiempo de espera.




Planificación Apropiativa y No apropiativa

La planificación apropiativa es útil en los sistemas en los cuales los procesos de alta prioridad requieren una atención rápida. En los de tiempo real, por ejemplo, las consecuencias de perder una interrupción pueden ser desastrosas. En los sistemas de tiempo compartido, la planificación apropiativa es importante para garantizar tiempos de respuesta aceptables.

En los sistemas no apropiativos, los trabajos largos retrasan a los cortos, pero el tratamiento para todos los procesos es más justo. Los tiempos de respuesta son más predecibles porque los trabajos nuevos de alta prioridad no pueden desplazar a los trabajos en espera.

miércoles, 13 de octubre de 2010

CAMBIO DE CONTEXTO

• El modificacion de la CPU a otro proceso requiere guardar el estado del proceso anterior y cargar el estado guardado del nuevo proceso.
• Corresponde a la reasignación del procesador de un proceso a otro, donde se requiere modificar el contexto de ejecución.
• El tiempos mas común, van de 1 a 1000 [mseg].


OPERACIONES SOBRE PROCESOS

• Los procesos en un sistema se pueden ejecutar de manera recurrente y deben ser creados y eliminarse de una manera creativa.
• El sistema operativo entonces debe proporcionar un mecanismo para la creación y terminación del procesos

Creación de Procesos:
• Un proceso puede crear varios procesos nuevos, el proceso creador se denomina padre, en tanto que los nuevos son sus hijos
• Cada los nuevos procesos puede a su vez crear otros, formando así un árbol de procesos
•Cuando un proceso crea un subproceso este último puede ser capaz de obtener sus recursos directamente del S.O.

Terminación de Procesos:
• Un proceso concluye cuando termina de ejecutar su declaración final y le pide al S.O. que lo borre usando la llamada (exit)
• El proceso puede regresar a su proceso padre usando la llamada( wait)
•Todos los recursos del proceso son liberados por el sistema operativo
Un proceso puede ocasionar la terminación de otro por medio de una llamada apropiada al sistema (abort)


LOS PROSESOS COOPERATIVOS

Estos puede afectar o ser afectado por los demás procesos que se ejecutan en el sistema, colaboran entre sí buscando un objetivo común, así mismo cualquier proceso que comparte datos con otro proceso es llamado cooperativo.

LOS PROCESOS HILOS

Este una unidad básica de utilización de la CPU; comprende la identificación (el hilo), un contador de programa, un conjunto de registros y una pila, y este comparte a la vez con otros hilos que pertenecen al mismo proceso su sección de código, de datos y otros recursos del sistema operativo.

Ventajas de los Hilos:

•Ahorro de recursos
•Creación de hilos es menos costosa en tiempo
•El cambio de contexto entre hilos habitualmente es más rápido que entre procesos.


COMUNICACIÓN ENTRE PROCESOS

El sistema operativo proporciona los medios para que los procesos cooperativos se comuniquen entre ellos a través de un servicio de comunicación entre procesos (IPC). El IPC asigna un mecanismos para que los procesos se comuniquen y para regularizar sus movimientos sin compartir el mismo espacio de direcciones.

miércoles, 29 de septiembre de 2010

Planificación de CPU

Planificación es una función fundamental del sistema operativo. Siendo la CPU uno de los principales recursos, la planificación de su uso es sumamente importante.
En un ambiente de multiprogramación, el sistema operativo debe decidir a qué proceso le da la CPU entre los que están listos para ejecutarse.

Políticas de planificación

Se considera t como el tiempo que un proceso P necesita estar en ejecución para llevar a cabo su trabajo, ti el instante en que el usuario da la orden de ejecución del proceso y tf el instante en que el proceso termina su ejecución.

Planificación FCFS

- Planificación Primero en llegar, primero en ser servido o First Come, First Served.
- El procesador ejecuta cada proceso hasta que terminar.
- No es expulsiva (no apropiativa).
- Es justa, aunque los procesos largos hacen esperar mucho a los cortos.
- Es una política predecible.
- El tiempo medio de servicio es muy variable en función del numero de procesos y su duración.

Planificacion Round Robin

- Es una mejora de la FCFS.
- Trata de ser justa en cuanto a la respuesta tanto de los procesos cortos como de los largos.
- Consiste en conceder a cada proceso en ejecución un determinado periodo de tiempo q (quantum), transcurrido el cual, si el proceso no ha terminado, se le devuelve al final de la cola de procesos preparados, concediéndose el procesador al siguiente proceso por su correspondiente quantum.

Planificación SJF

- Se asocia a cada proceso la longitud de su siguiente ráfaga de CPU.
- Este algoritmo consiste en que el planificador elige aquellos procesos que requieran menor cantidad de tiempo para ejecutarse y luego los despacha de acuerdo a ese orden.
- En el caso en que dos o más procesos se demoren el mismo tiempo se usa el criterio de FCFS.
- Cuando la CPU está disponible es asignada al proceso que tiene la siguiente ráfaga de CPU menor.
- Si dos procesos tienen la misma longitud para la siguiente ráfaga de CPU se utiliza la planificación FCFS para romper el empate.

Planificacion Por Prioridad

- En esta política se asocia a cada proceso una prioridad, de manera que el procesador se asigna al proceso de mayor prioridad.
- Las prioridades puedes ser definidas interna o externamente.
- En el primer caso se basa que el sistema operativo en una serie de informaciones medibles para el calculo y asignación de dichas prioridades (tiempo necesitado de procesador, necesidad de memoria,etc.)

miércoles, 15 de septiembre de 2010

UNIDAD II: GESTIÓN DEL PROCESADOR, COMUNICACIÓN Y SINCRONIZACIÓN DE DATOS (PARTE 1)

En la siguiente publicacion hablaremos sobre proceso, estados de un proceso y bloque de control de proceso BCP

¿Que es un proceso?

Un proceso es cualquier tipo de actividad que necesite de la atención de utilización del procesador.
Quedan contenidos en este concepto los trabajos de ejecución por lotes, los programas de usuario o tareas y el apoyo de actividades internas propias del sistema.

Estados de proceso

Activo: Proceso que está ejecutándose en un instante dado.

Preparado:Listo para ejecutarse, esperando a que el procesador quede libre.

Bloqueado o suspendido: Esperando a que se cumpla alguna condición (E/S, señal, etc.).

Muerto: Ha terminado su ejecución o el sistema operativo ha detectado un error fatal.

Nonato: Existe, pero todavía no es conocido por el sistema operativo

Estado global del sistema: Conjunto de recursos y procesos existentes con sus estados correspondientes en un instante determinado.

Bloque de Control de Proceso

El Bloque de control del proceso (BCP) es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular. Cada vez que se crea un proceso el sistema operativo crea el BCP correspondiente para que sirva como descripción en tiempo de ejecución durante toda la vida del proceso.

sábado, 28 de agosto de 2010

Cuarta Generacion de Los Computadores


La cuarta generación tienes sus inicios en el año 1971, debido a dos grandes innovaciones para la época:

1.- Memoria: Se cambia la forma y composición de las memorias de la época, ya que eran de núcleo magnéticos dando paso a los chips de silicio.

2.- Microprocesador: aparecen los microprocesadores que es un gran adelanto de la microelectrónica de la época los que son circuitos integrados de alta densidad y con una velocidad impresionante.



Estos dos adelantos dieron paso a la creación del primer computador personal (PC), la Kenbak, esta PC fue creada para fines educacionales, contaba con una memoria RAM de 256 bytes, funcionaba por medio de palanquillas o switches.






Estos avances en hardware llevo al desarrollo de los primeros sistemas operativos, el primero en aparecer fue el CM/P (Control Program for Microcomputers) creado para computadores con microchip 8080 y z80. Este sistema operativo desapareció del mercado con la aparición del famoso MS-DOS.



El 1 de abril de 1976  Steven Jobs y Steven Wozniak forman la compañía conocida como la Apple que fue la segunda compañía más grande del mundo antecedida tan solo por IBM. Con la creación de esta compañía se desarrollan varios proyectos siendo el  más reconocido la creación del diskette, el cual permitía distribuir software y almacenar información mucho más rápido y eficaz (APPLE DISK 2).

viernes, 27 de agosto de 2010

Comentario sobre Video " Codigo Linux"


Hablan acerca del comienzo de  GNU/Linux, su historia y las personas involucradas en el proyecto, como Linus Torvals, Richard Stallman entre otros.
La aparición de los Hacker (persona que practica la programación informática como una especie de pación artística), son un grupo de programadores que están en el origen de internet  de Linux, en el principio era el ordenador luego el ordenador personal y por fin apareció net (red que conecto todo el planeta).
 Los Hacker se negaron que ciertas compañías como Microsoft desarrollen sistemas operativos sin entregar al mismo tiempo los códigos de fabricación, que permiten adaptar un ordenador a nuestras propias necesidades. Estos, descifran los códigos para luego distribuirlo de forma gratuita atreves de la red y ponerlo a disposición del todo el mundo.
El[] conocido  Bill Gates, es uno de los empresarios[   ]estadounidense más millonarios del mundo, fundador de la empresa de software Microsoft, siendo productora de Microsoft Windows del sistema operativo para computadoras más utilizado en el mundo.
Un joven de Finlandia llamado Linus Torvalds empezó a programar las primeras líneas de código de este sistema operativo llamado LINUX, en lo que se conoce con  8  ordenadores en el mundo entero. Este pretende derribar a Bill Gates.      
Todos los programadores sujetos al sistema han hecho evolucionar a Linux adaptándola, modificándola, enriqueciéndola y creando uno de los mejores sistemas operativos del mundo. Este propuso un trabajo de comunicación con las personas a través de vía internet  para poder  trabajar todos en el  mismo proyecto, como un equipo pero en diferentes lugares del mundo  con el objetivo de desarrollar un nuevo software.
En Linux, cada ordenador es diferente, cada lector de disquete es diferente, cada distribuidor de virus es diferente y Linux es el sistema que sabe lo que se debe hacer para que todos los componentes del ordenador,  ejecuten una tarea simple como borrar el documento o ver la imagen en la pantalla, etc.
Linus Torvalds comento en minix (chat),  la creación de un sistema operativo  gratuito lo que para él solo era un juego, no se trataba de nada  profesional,  lo que opto fue recibir todo tipo de comentarios sobre lo que piensan de minix,  porque su sistema operativo se parecía un poco.
El 17 de septiembre 1991 hubo una recaída para la informática y fue donde Linus Torvalds anuncio la primera versión oficial de Linux, version 0.01, un sistema operativo con implementación de libre distribución llamado UNIX para computadoras personales (PC), servidores, y estaciones de trabajo, siendo muy popular en el ámbito universitario.
Esta nueva versión de Linux, version 0.01 fue presentada por COPYRIGHT GNU/Linux  bajo la licencia GPL  (fundación que verifica los cambios de códigos y mejoras a disposición de todo el mundo en forma gratuita) con el objetivo de que nadie se adueñarse del monopolio de una nueva tecnología importante.

Después  se lanzo la versión 0.03, Linux salto a la numeración 0.10, donde mas programadores a lo largo y ancho de internet comenzaron a trabajar en el proyecto y después de sucesivas revisiones, Linux aumento el número de versiones hasta la 0.95 en marzo de 1992, más de un año después en diciembre de 1993 el núcleo del sistema estaba en la versión 0.99 y la versión 1.0 no llego hasta el 14 de marzo de 1994. Desde entonces no se ha parado de desarrollar, la versión actual de  2.2 y sigue avanzando para perfeccionar y mejorar.
Linus Torvalds desarrolla una red de confianza, es donde él y sus operadores se comunican, teniendo una amplia comunicación con personas fiables.
Linus Torvalds  por la compañía de Silicon Valley en california, Comenzó a trabajar con un código de fuente cerrada, pero aun así desarrollaba Linux, para conocer  el mundo del comercio y  la industria para salir del mundo universitario.
Linux desarrollo el núcleo pero no la totalidad del sistema por lo que Richard Stallman quería que todo el mundo tenga exceso a utilizar el software y copiarlo sin ningún problema accediendo a cambios para ser distribuidos y utilizados por todos.  
Por lo que se lanzo un programa gratuito “Software libre” nombrado GNU. Este es desarrollado por un grupo de personas que no incluye a ninguno de los programadores originales. Al principio les faltaban programas y tuvieron que ser incluidos otros que están en la red, y fue así como se completo el programa GNU siendo después confundido por la gente llamándolo Linux.
Se tiene libre acceso al programa Linux, desarrollado para trabajar con ordenadores sencillos y para resolver problemas habituales  siendo una alternativa gratuita. Este comenzó en Europa y Estados Unidos, pero hoy en día permite encontrar siempre nuevos programadores siendo incluso de países en que la informática recién está dando sus primeros pasos.
Para los hacker operarios del desarrollo de Linux a sido siempre un proyecto voluntario de tipo científico siendo un hobbies para el programador.
Los expertos formadores de Linux fueron contratados por otras compañías en la época de los 90, donde  los precios alcanzaron valores record.