miércoles, 1 de diciembre de 2010

Administración de CPU (Unidad 4)


La planificación de la CPU aborda el  problema de decidir qué proceso de la cola de procesos preparados debe asignársele la CPU.

La CPU se administra por medio de los siguientes algoritmos:

Algoritmo de Planificación FCFS

Es el algoritmo de planificación más sencillo. Esto es, el primer proceso en solicitar la CPU es el primero en recibir la asignación de la misma. La implementación del FCFS se realiza fácilmente mediante una cola FIFO

Shortest-Job-First (SJF)


Este algoritmo selecciona al proceso con el próximo tiempo de ejecución más corto. Un proceso corto saltará a la cabeza de la cola. La ejecución de un proceso consiste en ciclos de ejecución de CPU y ciclos de espera por E/S. El algoritmo selecciona aquel proceso cuyo próximo ciclo de ejecución de CPU sea menor. El problema está en conocer dichos valores, pero podemos predecirlos usando la información de los ciclos anteriores ejecutados.


Planificación por Prioridades


En muchos sistemas, los procesos tienen prioridades asignadas, y el planificador escogerá aquel proceso con mayor prioridad.
Cuando un proceso debe ser seleccionado, el planificador por prioridades seleccionará aquel proceso que tenga mayor prioridad. Si hay más de un proceso entonces se deberá seguir alguna política de selección.


Round Robin


Una manera rápida de reducir la penalización que los procesos cortos sufren con FCFS es usar expropiación basada en un reloj. Una interrupción de reloj es generada a intervalos periódicos. Cuando ocurre la interrupción, el proceso en ejecución es colocado en la cola de procesos listos y el próximo trabajo es seleccionado basado en el esquema FCFS. A cada proceso se le da un trozo de tiempo.

martes, 30 de noviembre de 2010

Elementos Básicos (UNIDAD 3)

Llamada al sistema

Una llamada del sistema es una petición hecho por cualquier programa arbitrario al sistema operativo para realizar tareas escogido de un sistema predefinido el cuál el programa dicho no ha requerido permisos de ejecutarse en su propio flujo de la ejecución. La mayoría de las operaciones que obran recíprocamente con el sistema requieren los permisos no disponibles para un proceso del nivel de usuario, es decir cualquier entrada o salida se realizó con cualquier dispositivo arbitrario presente en el sistema o cualquier forma de comunicación con otros procesos requiere el uso de las llamadas del sistema.

Programas de sistema

Son aplicaciones de utilidad que se suministran con el sistema operativo pero no forman parte de él. Ofrecen un entorno útil para el desarrollo y ejecución de programas, siendo algunas de las tareas que realizan:

  • Manipulación y modificación de archivos.
  • Información del estado del sistema.
  • Soporte a lenguajes de programación.
  • Comunicaciones.
Procesamiento Concurrente

Es la situación que se obtiene al hacer una instantánea del sistema, es decir; varios procesos se encuentran en un estado intermedio entre su estado inicial y final.

Procesos

Un proceso es una instancia de una aplicación que está siendo ejecutada por una computadora. Hay que tener en cuenta, que una aplicación o programa es solamente una colección pasiva de instrucciones que no acontecen un proceso hasta que el programa es ejecutado. Un mismo programa puede ejecutar múltiples procesos: por ejemplo, una aplicación que utiliza múltiples ventanas seguramente utiliza más de un proceso. Este proceso consiste de uno o más hilos, y se ejecuta de forma secuencial por un sistema informático que tiene la capacidad de ejecutar varios programas de ordenadores al mismo tiempo.

Bloque de control del proceso (BCP)

El Bloque de control 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.

Planificador

El planificador es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso, y es esencial en los sistemas operativos de tiempo real. Su función consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos que están disponibles para su ejecución.
  • Planificador a largo plazo (PLP)
  • Planificador a corto plazo (PCP)
  • Distribuidor (dispatcher)
  • Planificador a medio plazo (PMP)

martes, 19 de octubre de 2010

Servicios De Los Sistemas Operativos  (UNIDAD 2)

Todo S.O. hoy en día a abarcado necesidades muy importantes en el mundo informático ya que hoy en día un ordenador sin sistema operativo no sirve absolutamente para nada, así al transcurrir el tiempo cada año a medida que avanza la tecnología fueron evolucionando los S.O. cumpliendo características nuevas debido a las  necesidades de la gente logrando así un método más fácil y cómodo de manejarlos.



Monoprogramación


La monoprogramación es la forma más simple de administrar memoria es ejecutando sólo un programa a la vez, compartiendo la memoria con el sistema operativo. Por ejemplo, MS-DOS, en direcciones crecientes de memoria: Sistema operativo; programa de usuario; manejadores de dispositivos (en ROM). Cuando usuario digita un comando, el sistema operativo carga el programa correspondiente en la memoria, y lo ejecuta. Cuando el programa termina, el sistema operativo solicita un nuevo comando y carga el nuevo programa en la memoria, sobre escribiendo el anterior.

Multiprogramación


Es la técnica que permite que dos o mas programas ocupen la misma unidad de memoria principal y que sean ejecutados al mismo tiempo. Así por ejemplo mientras se ejecutan operaciones de entrada y salida de un programa, la unidad central de proceso puede ocuparse en realizar operaciones distintas de las de E/S pertenecientes a otros programas. La multiprogramación se refiere a dos o mas programas corriendo o procesándose al mismo tiempo. La multiprogramación se controla a través del sistema operativo, el cual observa los programas y los vigila hasta que estén concluidos. El número de programas que pueden multiprogramarse en forma efectiva, depende de una combinación de la cantidad de memoria, de la velocidad de la CPU y del numero y velocidad de los recursos periféricos que tenga conectados, así como de la eficiencia del SO.

Tiempo Compartido


Se refiere a compartir un recurso de computación entre muchos usuarios por medio de la multitarea. Su introducción en los años 1960, y el surgimiento como el modelo prominente de la computación en los años 1970, representa un cambio importante en la historia de la computación. Al permitir que un gran número de usuarios interactuara simultáneamente en una sola computadora, bajó drásticamente el costo del servicio de computación, mientras que al mismo tiempo hacía la experiencia computacional mucho más interactiva.


Sistemas de Tiempo Real


Los sistemas de tiempo real (STR) son sistemas informáticos que se encuentran en multitud de aplicaciones, desde la electrónica de consumo hasta el control de complejos procesos industriales. Están presentes en prácticamente todos los aspectos de nuestra sociedad como, teléfonos móviles, automóviles, control de tráfico, ingenios espaciales, procesos automáticos de fabricación, producción de energía, aeronaves, etc. Además, el auge de los Sistemas de Tiempo Real está en constante aumento, ya que cada vez más máquinas se fabrican incluyendo un número mayor de sistemas controlados por computador. Un ejemplo cercano es la industria del automóvil, ya que un turismo actual de gama media incluye alrededor de una docena de estos automatismos (ABS, airbag, etc). Otro ejemplo cotidiano son los electrodomésticos de nueva generación, que incluyen Sistemas de Tiempo Real para su control y temporización. Hoy día son tantas las aplicaciones de estos sistemas que su número duplica actualmente al de los sistemas informáticos "convencionales" o de propósito general. Las previsiones son que esta diferencia vaya en constante aumento, debido fundamentalmente el elevado crecimiento de la automatización en casi todas las facetas de la vida cotidiana. Esto convierte a esta asignatura en un complemento muy atractivo para la formación de un Ingeniero Informático.


miércoles, 29 de septiembre de 2010

Introducción a los Sistemas Operativos (Unidad 1)

Un Sistema Operativo (SO) es una colección organizada de rutinas o extensiones de software del hardware. Consiste en rutinas de control que hacen funcionar una computadora y proporcionan un entorno para la ejecución de los programas. Existen otros programas que se apoyan en el SO para poder acceder a los recursos que necesitan. Esto se lleva a cabo a través de llamadas sistema operativo. También el SO debe brindar una forma de que el usuario se pueda comunicar con Él a través de una interfaz que le brinde una vía de comunicación con el hardware del sistema informático.
El objetivo principal del SO es lograr que el sistema informático es el lograr que el hardware de la computadora se emplee de modo eficiente, y el objetivo secundario se use de manera cómoda.
El SO debe asegurar el correcto funcionamiento del sistema informático. Para lograr esto el hardware debe brindar algún mecanismo apropiado que impida que los usuarios intervengan en el funcionamiento del sistema y así mismo el SO debe poder utilizar este recurso de hardware de modo que esto se cumpla.
El SO debe ofrecer servicios a los programas y sus usuarios para facilitar la tarea de programación.

¿Qué es un sistema operativo?

Las clases de sistemas operativos en la que nos basaremos serán los denominados multiusuarios y de multiprogramación; es decir que varios usuarios podrán correr concurrentemente múltiples programas.
Un SO es una parte importante de casi cualquier sistema informático. Para entender mejor esto veremos que un sistema informático puede separar en cuatro partes:
·         El hardware
·         El SO
·         Los programas de aplicación
·         Los usuarios


Estas partes hacen de capas, cada una de las cuales acerca más al usuario a utilizar los recursos del hardware. El hardware (CPU, memoria y dispositivos) proporciona los recursos de computación básicos sobre los que se agregaran estas capas sucesivas. Los programas de aplicación como los compiladores, juegos, aplicaciones de negocios, etc. definen la forma en que estos recursos se emplearán para solucionar los problemas del usuario.
Puede haber varias clases de usuarios usando el sistema, como ser personas, programas y otras computadoras, tratando de resolver diversos problemas. El SO controla y coordina el uso del hardware entre los diversos programas de aplicación y los distintos usuarios, administrando todos los recursos como disco, memoria, impresoras, monitor, etc. El SO determina los tiempos en que un determinado programa utilizar· un recurso dado.
El objetivo fundamental de los sistemas informáticos es ejecutar los programas de los usuarios y facilitar la resolución de sus problemas. Todo esto se hacía a través de tarjetas perforadas que una persona encargada cargaba en la computadora y luego de algunas horas devolvía la salida impresa al programador.
Definir que forma parte de un SO y que no sería difícil, dada la gran variedad existente, pero una definición para los SO que nos compete en estos momentos seria que el SO es el programa que ejecuta todo el tiempo en la computadora (conocido usualmente como kernel o núcleo), siendo los programas de aplicación todo lo demás. En general un SO intenta incrementar la productividad de un recurso de proceso tal como el hardware de la computadora, o de los usuarios de los sistemas informáticos. Ahora bien, en lo referente a la utilización eficiente de un sistema informático no siempre se puede lograr que un SO lo logre. Casi siempre resulta contradictorio la comodidad y la eficiencia.






Entre los sistemas operativos más conocidos están los siguientes:


1) DOS: El famoso DOS, que quiere decir Disk Operating System (sistema operativo de disco), es más conocido por los nombres de PC-DOS y MS-DOS. MS-DOS fue hecho por la compañía de software Microsoft y es en esencia el mismo SO que el PC-DOS.
La razón de su continua popularidad se debe al aplastante volumen de software disponible y a la base instalada de computadoras con procesador Intel.
Cuando Intel liberó el 80286, DOS se hizo tan popular y firme en el mercado que DOS y las aplicaciones DOS representaron la mayoría del mercado de software para PC. En aquel tiempo, la compatibilidad IBM, fue una necesidad para que los productos tuvieran éxito, y la "compatibilidad IBM" significaba computadoras que corrieran DOS tan bien como las computadoras IBM lo hacían.
Aún con los nuevos sistemas operativos que han salido al mercado, todavía el DOS es un sólido contendiente en la guerra de los SO.

2) Windows 3.1: Microsoft tomo una decisión, hacer un sistema operativo que tuviera una interfaz gráfica amigable para el usuario, y como resultado obtuvo Windows. Este sistema muestra íconos en la pantalla que representan diferentes archivos o programas, a los cuales se puede accesar al darles doble click con el puntero del mouse. Todas las aplicaciones elaboradas para Windows se parecen, por lo que es muy fácil aprender a usar nuevo software una vez aprendido las bases.

3) Windows 95: En 1995, Microsoft introdujo una nueva y mejorada versión del Windows 3.1. Las mejoras de este SO incluyen soporte multitareas y arquitectura de 32 bits, permitiendo así correr mejores aplicaciónes para mejorar la eficacia del trabajo.

4) Windows NT: Esta versión de Windows se especializa en las redes y servidores. Con este SO se puede interactuar de forma eficaz entre dos o más computadoras.

5) OS/2: Este SO fue hecho por IBM. Tiene soporte de 32 bits y su interfaz es muy buena. El problema que presenta este sistema operativo es que no se le ha dad el apoyo que se merece en cuanto a aplicaciones se refiere. Es decir, no se han creado muchas aplicaciones que aprovechen las características de el SO, ya que la mayoría del mercado de software ha sido monopolizado por Windows.

6) Mac OS: Las computadoras Macintosh no serían tan populares como lo son si no tuvieran el Mac OS como sistema operativo de planta. Este sistema operativo es tan amigable para el usuario que cualquier persona puede aprender a usarlo en muy poco tiempo. Por otro lado, es muy bueno para organizar archivos y usarlos de manera eficaz. Este fue creado por Apple Computer, Inc.

7) UNIX: El sistema operativo UNIX fue creado por los laboratorios Bell de AT&T en 1969 y es ahora usado como una de las bases para la supercarretera de la información. Unix es un SO multiusuario y multitarea, que corre en diferentes computadoras, desde supercomputadoras, Mainframes, Minicomputadoras, computadoras personales y estaciones de trabajo. Esto quiere decir que muchos usuarios puede estar usando una misma computadora por medio de terminales o usar muchas de ellas.










Procesamiento por lotes (Sistemas de Batch)










Forma de operación de las primeras computadoras que sólo eran capaces de ejecutar un trabajo o tarea por vez (procesamiento de datos por grupos o lotes). Se trataba de una forma muy ineficiente del uso de una computadora. Evolucionó a lo que se conoce como multiprogramación, en donde múltiples tareas comparten los recursos de una computadora. Los sistemas por lotes son el mecanismo más tradicional y antiguo de ejecutar tareas. Se introdujeron alrededor de 1956 para aumentar la capacidad de proceso de los programas. En la actualidad, los trabajos por lotes son ampliamente utilizados en supercomputadores, como Magerit. 






El extremo opuesto al procesamiento por lotes es el procesamiento interactivo: programas que precisan la interacción con el usuario (petición de datos, elección de opciones) para funcionar. Cada tipo de proceso es diferente y más adecuado en unas situaciones que en otras.

Fichas en lenguaje de procesamiento por lotes, con programa y datos, para ejecución secuencial.

martes, 24 de agosto de 2010

3º Generación de Computadores




En 1965, IBM anunció el primer grupo de máquinas construidas con circuitos integrados, que recibió el nombre de serie 360.
A partir de esta fecha, empezaron a empaquetarse varios transistores diminutos y otros componentes electrónicos en un solo chip o encapsulado, que contenía en su interior un circuito completo: un amplificador, un oscilador, o una puerta lógica. Naturalmente, con estos chips (circuitos integrados) era mucho más fácil montar aparatos complicados: receptores de radio o televisión y computadoras.
Estas computadoras de tercera generación sustituyeron totalmente a los de segunda, introduciendo una forma de programar que aún se mantiene en las grandes computadoras actuales.


IBM se dedicó a los aspectos de ingeniería, comercialización y mercadotecnia de sus equipos, en corto tiempo la noción de las computadoras salió de los laboratorios y las universidades y se instaló como un componente imprescindible de la sociedad industrial moderna.

Las computadoras de la tercera generación tienen ventajas cualitativamente importantes, debido a dos factores fundamentales: por un lado, están hechas a base de agrupamientos de transistores miniaturizados en paquetes conocidos como circuitos integrados; por el otro, aunque se siguen programando en lenguajes de alto nivel, ahora un método de comunicación con el programador que resulta mas fácil de emplear que el anterior.

Es decir, la electrónica de las computadoras de la tercera generación (circuitos integrados) es más compacta, rápida y densa que la anterior, y la comunicación se establece mediante una interfaz (un intermediario) conocida como sistema operativo.

Así, los dos criterios de definición para las computadoras de la tercera generación son:

· Están construidas con electrónica de circuitos integrados
· La comunicación es mediante la ayuda de los sistemas operativos 



Ejemplos de Circuitos Integrados