Você está na página 1de 19

REPÚBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


UNIVERSIDAD NACIONAL EXPERIMENTAL POLITÉCNICA
DE LA FUERZA ARMADA NACIONAL BOLIVARIANA
NÚCLEO CARACAS-CHUAO
INGENIERÍA DE SISTEMAS VII SEMESTRE

Elaborado por:
Douglas Aponte, C.I.: 9.955.507
Sección: 7C

Caracas, Abril 2011


INTRODUCCION

En los años sesenta, un sistema operativo se podría haber definido como el software que
controla al hardware. Sin embargo, actualmente existe una tendencia significativa a la transferencia
de las funciones del software al firmware, es decir, microcódigo. Dicha tendencia se ha pronunciado
tanto que es probable que en algunos sistemas las funciones codificadas en firmware sobrepasen
pronto aquéllas codificadas en software.
Es evidente que se necesita una nueva definición de sistema operativo. Se puede imaginar un
sistema operativo como los programas, instalados en el software o el firmware, que hacen utilizable el
hardware.
Un sistema operativo es un conjunto de programas que administran eficientemente los recursos de un
sistema de cómputo, controlando la ejecución de programas de aplicación y actuando como una
interfaz entre el usuario y la computadora (el hardware).
Firmware: es un programa almacenado en un chip de memoria flash de un dispositivo de hardware
cuya función es asegurar su correcto funcionamiento. Firmware o Programación en Firme, es un
bloque de instrucciones de programa para propósitos específicos, grabado en una memoria tipo
ROM, que establece la lógica de más bajo nivel que controla los circuitos electrónicos de un
dispositivo de cualquier tipo. Al estar integrado en la electrónica del dispositivo es en parte hardware,
pero también es software, ya que proporciona lógica y se dispone en algún tipo de lenguaje de
programación. Funcionalmente, el firmware es el intermediario (interfaz) entre las órdenes externas
que recibe el dispositivo y su electrónica, ya que es el encargado de controlar a ésta última para
ejecutar correctamente dichas órdenes externas.
También puede ser proporcionado en ROMS de flash o como un archivo de imagen binaria que se
puede cargar en el hardware existente por un usuario. Como su nombre indica, el firmware se
encuentra entre el hardware y el software. Al igual que el software, es un programa que es ejecutado
por una computadora.
Encontramos Firmware en memorias ROM de los sistemas de diversos dispositivos periféricos, como
en monitores de video, unidades de disco, impresoras, etc., pero también en los propios
microprocesadores, chips de memoria principal y en general en cualquier circuito integrado.
Muchos de los Firmwares almacenados en ROM están protegidos por Derechos de Autor. El
programa BIOS de un ordenador es un firmware cuyo propósito es activar una máquina desde su
encendido y preparar el entorno para la instalación de un Sistema Operativo complejo, así como
responder a otros eventos externos (botones de pulsación humana) y al intercambio de órdenes entre
distintos componentes del ordenador.
En un microprocesador el firmware es el que recibe las instrucciones de los programas y las ejecuta
en la compleja circuitería del mismo, emitiendo órdenes a otros dispositivos del sistema.
Es una memoria interna que poseen ciertos dispositivos hardware en la que está instalado un
software especial que lleva a cabo algunas de las funciones del aparato. Esta memoria suele ser
regrabable por lo que se puede actualizar el firmware para corregir ciertos errores descubiertos en el
funcionamiento del aparato o añadirle nuevas características. Para descubrir nuevos firmware de
nuestro hardware es conveniente que nos acostumbremos a visitar regularmente la página web de su
fabricante.
En términos prácticos, las actualizaciones de firmware pueden mejorar el rendimiento y la fiabilidad,
de hecho, incluso la funcionalidad básica dispone de un dispositivo, y muchos se benefician de los
dispositivos ordinarios de actualizaciones de firmware. Uno de los dispositivos más comunes que se
han originado son los dispositivos de grabación óptica de los medios de comunicación, como los
escritores (DVD, CD, HD DVD, Blu-ray), de manera que estas actualizaciones garantizan que el
hardware se mantenga actualizado y compatible.
El firmware es una combinación de software (programa) y hardware (en este caso, chips). En su
conjunto son Chips que poseen dentro pequeños programas que son guardados dentro y que se
denominan Firmware.

El firmware en PROM o EPROM está diseñado para ser modificado si es necesario a través de una
actualización de software.

EVOLUCION DEL FIRMWARE


El Firmware ha evolucionado para quedar en el contenido programable de un dispositivo de
hardware, que puede consistir en instrucciones de lenguaje de una maquina para un procesador, o
ajustes de configuración para un dispositivo con funciones fijas o dispositivos lógicos programables.
Una característica común del firmware es que puede ser actualizado después de la fabricación, ya
sea por vía electrónica, o mediante la sustitución de un medio de almacenamiento tales como un chip
de memoria.
El Firmware puede -, pero no está obligado a - exponer una interfaz externa accesible. Por ejemplo,
en algunos módem implementarlo no es directamente accesible, pero es parte de una combinación
de hardware y firmware que responde a los comandos del sistema.
Firmware tradicionalmente ha sido almacenada en memoria ROM, sin embargo el costo y requisitos
de desempeño han impulsado a los proveedores a adoptar diversas sustituciones, incluidos los no
volátiles, como los medios de comunicación y Flash EEPROM, SRAM o soluciones, como la del
firmware de un controlador de dispositivo del sistema operativo.
El firmware Adjunta a la mayoría de los dispositivos modernos de los sistemas de computadoras para
fines especiales en su propio derecho, la administración de su propio software. Con los años, sin
embargo, los fabricantes han encontrado que la carga de firmware del sistema es a la vez más barata
y más flexible. Como resultado, gran parte del hardware actual no está en condiciones de funcionar
en cualquier forma útil hasta que el computador central halla sido alimentado de la necesaria cantidad
de firmware. Este firmware de carga es manejado por el controlador de dispositivo.
El Firmware en muchos dispositivos puede ahora ser actualizado sin necesidad de hardware
adicional, mediante el uso de software proporcionado por los proveedores.
Evolución histórica de los Sistemas Operativos: Para intentar comprender los requisitos básicos
de un SO y el significado de las características principales y estructura de un sistema operativo
contemporáneo, resulta útil considerar como han evolucionado los sistemas operativos a los largo de
los años.

Característica de un Sistema Operativo


Un S.O. debe ser:
• Determinista: el mismo programa ejecutado con los mismos datos debe dar los mismos
resultados en cualquier momento y en cualquier ejecución;
• In determinista: el S. O. debe responder a circunstancias que pueden ocurrir en un orden
impredecible.

Proceso en Serie Primera generación (1945-1955)


En los primeros computadores, de finales de los 40 hasta mediados de los 50, el programa
Interactuaba directamente con el hardware: no había sistema operativo. La operación con estas
máquinas se efectuaba desde una consola dotada con indicadores luminosos y conmutadores o a
través de un teclado hexadecimal. Los programas se arrancan cargando el registro contador de
programas con la dirección de la primera instrucción. Si se detenía el programa por un error, la
condición de error se indicaba mediante los indicadores luminosos. El programador podía examinar
los registros relevantes y la memoria principal para comprobar el resultado de la ejecución o para
determinar la causa del error.
El siguiente paso significativo de la evolución en el uso de sistemas informáticos vino con la llegada
de dispositivos de E/S tales como tarjetas perforadas y cintas de papel y con los traductores de
lenguajes. Los programas codificados ahora en un lenguaje de programación, se traducen a un
formato ejecutable mediante un programa como un compilador o un intérprete. Otro programa,
llamado cargador, automatiza el proceso de cargar en memoria estos programas en código
ejecutable. El usuario coloca un programa y sus datos de entrada en un dispositivo de entrada y el
cargador transfieren la información desde el dispositivo a la memoria. Después de transferir el control
al programa cargado por medios manuales o automáticos, comienza la ejecución del mismo. El
programa en ejecución lee sus datos desde el dispositivo de entrada asignado y puede producir
ciertos Resultados en un dispositivo de salida tal como una impresora o la pantalla. Estos primeros
sistemas presentaban dos problemas principales:
• Planificación: La mayoría de las instalaciones empleaban un formulario de reserva de tiempo
de máquina. Normalmente, un usuario podía reservar bloques de tiempo, Múltiplos, por
ejemplo, de media hora. Si la ejecución del programa terminaba antes del plazo asignado, el
tiempo restante se desperdiciaba. También podía suceder que el programa no terminara
dentro del plazo asignado, con lo que el programadir no podía saber si el programa había
terminado satisfactoriamente o no.
• Tiempo de preparación: Un programa aun siendo sencillo requería un tiempo de preparación
bastante grande ya que en primer lugar se cargaba un compilador y un programa en lenguaje
de alto nivel (programa fuente) en la memoria. A Continuación, se salvaba el programa ya
compilado (programa objeto) y, por ultimo, Se montaba y cargaba este programa objeto junto
con las funciones comunes. Este modo de trabajo podía denominarse proceso en serie
porque refleja el hecho de los que usuarios tenían que acceder al computador en serie.

Multiprogramación. Tercera Generación (1965-1980)

Incluso con las mejoras anteriores, el proceso por lotes dedica los recursos del sistema informático a
una única tarea a la vez. En el curso de su ejecución, la mayoría de los programas oscilan entre fases
intensivas de cálculo y fases intensivas de operaciones de E/S. Esto queda indicado donde los
periodos de cálculo intensivo se indican mediante cuadros sombreados y las operaciones de E/S
mediante zonas en blanco. El problema es que los dispositivos de E/S son muy lentos comparados
con el procesador. El procesador gasta parte del tiempo ejecutando hasta que encuentra una
instrucción de E/S. Entonces debe esperar a que concluya la instrucción de E/S antes de continuar.
Esta ineficiencia no es necesaria. Se sabe que hay memoria suficiente para almacenar.

Programa 1 Programa 2

P1 inactivo P1 inativo P1 inactivo P2 inactivo P2 inactivo

(a) Ejecución Secuencial Tiem

Programa 1

Programa 2
P1 P2 P1 P2 P1 P2
Programa 1 Programa 2

P1 inactivo P1 inativo P1 inactivo P2 inactivo P2 inactivo

(a) Ejecución Secuencial Tiem

Programa 1

Programa 2
P1 P2 P1 P2 P1 P2

(b) Ejecución Multiprogramada Tiem

Ejecución secuencial vs. Multiprogramación: En memoria el sistema operativo (monitor residente)


y un programa usuario.
Supongamos que hay espacio suficiente para almacenar el sistema operativo y dos programas de
usuario. Ahora, cuando un trabajo necesite esperar por una operación de E/S, el procesador puede
cambiar a otro trabajo que este listo para ser ejecutado. Si ampliamos la memoria para almacenar
varios programas, podremos conmutar entre todos de forma que el procesador permanezca ocupado
el mayor tiempo posible, evitando así el desperdicio de tiempo que suponen las esperas hasta que se
completen las operaciones de E/S. Este concepto es conocido como multiprogramación o multitarea y
es el punto central de los sistemas operativos modernos.
Se pueden lograr ganancias significativas de rendimiento intercalando la ejecución de los programas,
o, multiprogramando, que es como se le denomina a este modo de operación. Con un solo
procesador no es posible la ejecución paralela de programas, y como máximo, sólo un programa
puede tener el control del procesador en un instante determinado. El ejemplo presentado en la figura
(b) consigue un 100% de utilización del procesador sólo con dos programas activos. Aunque
conveniente para ilustrar la idea básica en la multiprogramación, no se deben esperar resultados tan
espectaculares en programas reales, ya que las distribuciones de las fases de computación y E/S
tienden a ser más variables. Para aumentar la utilización de recursos, los sistemas de
multiprogramación reales permiten generalmente que más de dos programas compitan por los
recursos del sistema al mismo tiempo. El número de programas en competencia activa por los
recursos de un sistema informático se denomina grado de multiprogramación. En principio, mayores
grados de multiprogramación deben dar lugar a una mayor utilización de recursos.
La multiprogramación ha sido tradicionalmente empleada para aumentar la utilización de los recursos
de un sistema informático y para soportar múltiples usuarios simultáneamente activos.

Estructura de los Sistemas Operativos.

Sistemas monolíticos.
Descripción: Sin estructura definida. Se componen de un conjunto de procedimientos, donde
cada uno de ellos puede llamar a todos los demás.
Proceso para requerir un servicio del S. O.: el programa de usuario coloca los parámetros
necesarios en los lugares previamente definidos, y seguidamente ejecuta una llamada al
supervisor (se cambia de modo usuario a modo supervisor), transfiriendo el control al S. O. que
examina dichos parámetros y determina el procedimiento que debe invocar. Cuando se complete
la llamada devuelve el control al programa de usuario. S. O. con una pequeña estructura de
niveles:
• Procedimiento Principal
• Procedimientos de Servicio
• Procedimientos Auxiliares

Sistemas en estratos.
Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos
sobre el otro que tiene menor jerarquía que él.
Ejemplos:
A. THE (Dijkstra, 1968): sistema de procesamiento por lotes.
Operador de THE
Programas de usuarios
Administrador de E/S
Comunicación entre operadores y procesos
Administración de memoria y tambor
Distribución del procesador y multiprogramación

B. MULTICS: anillos concéntricos alrededor del hardware, donde los internos son más
privilegiados que los externos.

Máquinas virtuales.

Descripción: crea ilusiones (máquinas virtuales) de la máquina real, permitiendo que en


cada máquina virtual se ejecute un S. O. distinto.
El programa de control es el que se ejecuta directamente sobre el propio hardware y ofrece al
nivel inmediatamente superior varias máquinas virtuales.

S.O.1 S.O.2 S.O.3

M.V.1 M.V.2 M.V.3

PROGRAMA DE CONTROL
HARDWARE

Modelo Cliente-Servidor.
Descripción: Su objetivo es minimizar el kernel desplazando el código de todos sus servicios
a estratos lo más superiores posibles. Para ello, la mayoría de sus funciones se implementan
como procesos de usuario, denominados procesos servidores, de forma que cuando un
proceso de usuario llamado proceso cliente, necesita un servicio del S.O. lo que hace es
enviar un mensaje al proceso servidor correspondiente, que realiza el trabajo y devuelve la
respuesta.
El kernel lo único que hace es implementar la comunicación entre clientes y servidores y
entre servidores y el hardware.

Proceso Cliente 1 Servidor de ficheros Servidor de la memoria Proceso Cliente 2 Modo Usuario
KERNEL Modo Supervisor

Estructura orientada al objeto.


Descripción: se basan en una colección de objetos, donde las funciones del sistema son un tipo de
objeto (ficheros, dispositivos, etc). La interacción entre dichos objetos viene determinada por las
capacidades que cada uno tenga para actuar con el otro.
El kernel es el responsable del mantenimiento de las definiciones de los tipos de objetos soportados y
del control de los privilegios de acceso a los mismos. Cuando un programa desee realizar una
operación sobre un objeto determinado, deberá ejecutar una llamada al sistema, indicando qué
derechos tiene para poder utilizarlo y qué operación intenta llevar a cabo. Como resultado de dicha
llamada, el sistema validará la petición y, si puede ser aceptada, permitirá la realización de dicha
operación.

Gestión
de Gestión
Memoria de E/S
OBJETOS

Gestión de
Objetos

Procesos Ficheros Dispositivos

Sistema Operativo Monousuario.


Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin importar
el número de procesadores que tenga la computadora o el número de procesos o tareas que el
usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente
se han clasificado en este renglón.
En otras palabras los sistemas monousuarios son aquellos que nada más puede atender a un solo
usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que
se está ejecutando.
Ejemplo; de los sistemas monousuaio son las versiones domesticas de Windows. Administra recurso
de memoria procesos y dispositivos de la PC,S.

Ejemplo Grafico:
Sistema Operativo Monotareas.
Los sistemas monotareas son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse
el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo
tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez.
Los sistemas operativos monotareas son más primitivos y, solo pueden manejar un proceso en cada
momento o que solo puede ejecutar las tareas de una en una.
Ejemplo Grafico:
Sistema Operativo Multiusuario.
Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya
sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas
en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de
procesos que cada usuario puede ejecutar simultáneamente.
En esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades
de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean
especialmente en redes. En otras palabras consiste en el fraccionamiento del tiempo (timesharing).

Ejemplo Grafico:
Sistema Operativo Multitarea.
Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al
mismo tiempo.
Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una
computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitareas. La
conmutación de contextos (context Switching) es un tipo muy simple de multitarea en el que dos o
más aplicaciones se cargan al mismo tiempo, pero en el que solo se esta procesando la aplicación
que se encuentra en primer plano (la que ve el usuario. En la multitarea cooperativa, la que se utiliza
en el sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante
los tiempos muertos de la tarea que se encuentra en primer plano (por ejemplo, cuando esta
aplicación esta esperando información del usuario), y siempre que esta aplicación lo permita. En los
sistemas multitarea de tiempo compartido, como OS/2, cada tarea recibe la atención del
microprocesador durante una fracción de segundo.
Un sistema operativo multitarea puede estar editando el código fuente de un programa durante su
depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un
proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús
y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su
productividad.
Un sistema operativo multitarea se distingue por su capacidad para soportar la ejecución concurrente
de dos o más procesos activos. La multitarea se implementa generalmente manteniendo el código y
los datos de varios procesos simultáneamente en memoria y multiplexando el procesador y los
dispositivos de E/S entre ellos.
La multitarea suele asociarse con soporte hardware y software para protección de memoria con el fin
de evitar que procesos corrompan el espacio de direcciones y el comportamiento de otros procesos
residentes.
Ejemplo grafico:

SISTEMAS OPERATIVOS ACTUALES:

Los sistemas operativos actuales poseen una serie de funciones cuyo objetivo es el de la
manipulación de los procesos. Las operaciones que se pueden hacer sobre un proceso son las
siguientes:
Crear el proceso. Se produce con la orden de ejecución del programa y suele necesitar varios
argumentos, como el nombre y la prioridad del proceso. Aparece en este momento el PCB, que será
insertado en la cola de procesos preparados.
La creación de un proceso puede ser de dos tipos:
Jerárquica. En ella, cada proceso que se crea es hijo del proceso creador y hereda el entorno de
ejecución de su padre. El primer proceso que ejecuta un usuario será hijo del intérprete de comandos
con el que interactúa.
No jerárquica. Cada proceso creado por otro proceso se ejecuta independientemente de su creador
con un entorno diferente. Es un tipo de creación que no suele darse en los sistemas operativos
actuales.
Destruir un proceso. Se trata de la orden de eliminación del proceso con la cual el sistema operativo
destruye su PCB.
Suspender un proceso. Es un proceso de alta prioridad que paraliza un proceso que puede ser
reanudado posteriormente. Suele utilizarse en ocasiones de mal funcionamiento o sobrecarga del
sistema.
Reanudar un proceso. Trata de activar un proceso que ha sido previamente suspendido.
Cambiar la prioridad de un proceso.
Temporizar la ejecución de un proceso. Hace que un determinado proceso se ejecute cada cierto
tiempo (segundos, minutos, horas...) por etapas de una sola vez, pero transcurrido un periodo de
tiempo fijo.
Despertar un proceso. Es una forma de desbloquear un proceso que habrá sido bloqueado
previamente por temporización o cualquier otra causa.

Cuadro Comparativo:

Sistema Tipo de Sistemas Última Año Tipo Descripción Significado


Operativo Operativos versión Creación De Software del Nombre
Ventana
Windows 7 Microsoft 2009 Comercial (Sistema de
ventanas).
Microsoft Versiones SSOO Para se usado en Ventana
Premium, ordenadores de sobre mesa, (Sistema de
Windows Ultimate, 8 Nov Comercial ordenadores portátiles. ventanas).
Vista Business, 2006 Table PC Y Centro
Enterprise Multimedia
Presenta mejora en la Ventana
Windows Microsoft ServiPack 25 Oct Comercial estabilidad y eficacia (Sistema de
XP 3 2001 ventanas).
Es un sistema operativo Palabra zulu
Ubuntu Linux 9-04 de 08 Jul Licencia enfocado a ordenadores que significa
Abril 2009 2004 GNU personales pero también Humanidad
soporta servidores. Se basa hacia otros
en debian GNU/Linux.
Es la continuación de RED
Fedora 11 Software HAT, Fedora es la segunda
Fedora Linux de junio de 2003 libre y de distribución de GNU/Linux
2009 código más usada, por detrás de
abierto Ubuntu.
Es una distribución Linux
que ofrece un sistema
Software operativo orientado a
Mandriva Venice 5.1 libre y de computadoras personales y
Mandriva Linux 2010 Junio 1998 código también para servidores con
abierto un enfoque a los usuarios
que se están introduciendo
al mundo de Linux y al
software libre
Es una comunidad
Software conformada por
Debian Linux Jenny 5.0 Agosto libre y de desarrolladores y usuarios
1993 código que mantiene un sistema
abierto operativo GNU basado en el
software libre precompilado
y empaquetado, en un
formato sencillo de múltiples
arquitectura del computador
y en varios núcleos.
Linux
Educativo
de
Comunida
d
Apple Mac OS Comercial Comercial
Mac OS Leopard
10.6
Sony Ericsson, 9.5 Comercial Comercial
Synbian Motorola y otros

Você também pode gostar