Вы находитесь на странице: 1из 19

BIOS

En informática, el acrónimo BIOS se refiere a las siglas en inglés de Basic Input/Output


System, cuya traducción en español es "Sistema Básico de Entrada/Salida"; también es
conocido como "System BIOS", "ROM BIOS"1 o "PC BIOS"; es un estándar de facto que
define la interfaz de firmware para computadorasIBM PC compatibles.2
El nombre se originó en 1975, en el BIOS usado por el sistema operativo CP/M.3 4
El firmware BIOS es instalado dentro de la computadora personal (PC), y es el primer
programa que se ejecuta cuando se enciende la computadora.
El propósito fundamental del BIOS es iniciar y probar el hardware del sistema y cargar
un gestor de arranque o un sistema operativo desde un dispositivo de almacenamiento
de datos. Además, el BIOS provee una capa de abstracción para el hardware, por
ejemplo, que consiste en una vía para que los programas de aplicaciones y los sistemas
operativos interactúen con el teclado, el monitor y otros dispositivos de
entrada/salida. Las variaciones que ocurren en el hardware del sistema quedan ocultos
por el BIOS, ya que los programas usan servicios de BIOS en lugar de acceder
directamente al hardware. Los sistemas operativos modernos ignoran la capa de
abstracción provista por el BIOS y acceden al hardware directamente.

Firmware
El firmware es un programa informático que establece la lógica de más bajo
nivel que controla los circuitoselectrónicos de un dispositivo de cualquier tipo.
Está fuertemente integrado con la electrónica del dispositivo, es el software que
tiene directa interacción con el hardware, siendo así el encargado de controlarlo
para ejecutar correctamente las instrucciones externas. De hecho el firmware es
uno de los tres principales pilares del diseño electrónico.
En resumen, un firmware es un software que maneja físicamente al hardware.
El programa BIOS de una computadora es un firmware cuyo propósito es activar
una máquina desde su encendido y preparar el entorno para cargar un sistema
operativo en la [[Memoria de acceso aleatorio memoria RAM] y disco duro].

Microcontrolador
Un microcontrolador (abreviado μC, UC o MCU) es un circuito integrado programable,
capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios
bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador
incluye en su interior las tres principales unidades funcionales de
una computadora: unidad central de
procesamiento, memoria y periféricos de entrada/salida.

Introducción a los Sistemas Operativos


Un sistema operativo es un programa que actúa como intermediario entre el usuario y
el hardware de una computadora y su propósito es proporcionar un entorno en el cual
el usuario pueda ejecutar programas. El objetivo principal de un sistema operativo es
lograr que el sistema de computación se use de manera cómoda, y el objetivo
secundario es que el hardware de la computadora se emplee de manera eficiente.
Un sistema Operativo es en sí mismo un programa de computadora. Sin embargo, es
un programa muy especial, quizá el más complejo e importante en una computadora.
El Sistema Operativo despierta a la computadora y hace que reconozca a la CPU, la
memoria, el teclado, el sistema de vídeo y las unidades de disco. Además, proporciona
la facilidad para que los usuarios se comuniquen con la computadora y sirve de
plataforma a partir de la cual se corran programas de aplicación.
Cuando se enciende una computadora, lo primero que ésta hace es llevar a cabo un
auto diagnóstico llamado auto prueba de encendido. Durante este autodiagnóstico, la
computadora identifica su memoria, sus discos, su teclado, su sistema de vídeo y
cualquier otro dispositivo conectado a ella. Lo siguiente que la computadora hace es
buscar un Sistema Operativo para arrancar (boot).
Una vez que la computadora ha puesto en marcha su Sistema Operativo, mantiene al
menos parte de éste en su memoria en todo momento. Mientras la computadora esté
encendida, el Sistema Operativo tiene 4 tareas principales:

 Proporcionar ya sea una interfaz de línea de comando o una interfaz gráfica al usuario,
para que este último se pueda comunicar con la computadora.

-Interfaz de línea de comando: Se introducen palabras y símbolos desde el teclado de


la computadora, ejemplo, el MS-DOS.
-Interfaz gráfica del Usuario (GUI): Se seleccionan las acciones mediante el uso de
un Mouse para pulsar sobre figuras llamadas iconos o seleccionar opciones de los
menús.
 Administrar los dispositivos de hardware en la computadora. El Sistema Operativo
sirve de intermediario entre los programas y el hardware.
 Administrar y mantener los sistemas de archivo de disco. Los SO agrupan
la información dentro de compartimientos lógicos para almacenarlos en el disco.
Estos grupos de información son llamados archivos. Los archivos pueden contener
instrucciones de programas o información creada por el usuario. El SO mantiene una
lista de los archivos en un disco, y nos proporciona las herramientas necesarias para
organizar y manipular estos archivos.
 Apoyar a otros programas. Por ejemplo, listar los archivos, grabarlos en el disco,
eliminar archivos, revisar espacio disponible, etc.

Objetivos para la creación de los Sistemas Operativos


El objetivo fundamental de los sistemas de computación es ejecutar los programas de
los usuarios y facilitar la resolución de sus problemas. El hardware se construye con
este fin, pero como este no es fácil de utilizar, se desarrollan programas de aplicación
que requieren ciertas operaciones comunes.
Otros objetivos son:
 Transformar el complejo hardware de una computadora a una máquina accesible al
usuario.
 Lograr el mejor uso posible de los recursos.
 Hacer eficiente el uso del recurso.

Funciones de los Sistemas Operativos


 Aceptar todos los trabajos y conservarlos hasta su finalización.
 Interpretación de comandos: Interpreta los comandos que permiten al usuario
comunicarse con el ordenador.
 Control de recursos: Coordina y manipula el hardware de la computadora, como la
memoria, las impresoras, las unidades de disco, el teclado o el Mouse.
 Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
 Secuencia de tareas: El sistema operativo debe administrar la manera en que se
reparten los procesos. Definir el orden. (Quien va primero y quien después).
 Protección: Evitar que las acciones de un usuario afecten el trabajo que esta realizando
otro usuario.
 Multi acceso: Un usuario se puede conectar a otra máquina sin tener que estar cerca
de ella.
 Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar
determinados recursos.

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 más conveniente el uso de una
computadora.
Eficiencia. Un Sistema Operativo permite que los recursos de la computadora se usen
de la manera más 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.
Relacionar dispositivos. 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 todo lo referente a la instalación y uso de las redes de computadoras.
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.

Componentes básicos de un Sistema operativo

Los componentes básicos de un sistema operativo son los siguientes:

1. Gestión de procesos
Un proceso es, sencillamente, un programa en ejecución que necesita una serie de
recursos para realizar su tarea: tiempo de CPU (Central Process Unit o Unidad de
Proceso Central, es decir, el procesador principal del ordenador), memoria, archivos y
dispositivos de E/S (entrada/salida).

Es función del sistema operativo:

 Planificación de procesos: decide qué proceso emplea el procesador en cada


instante de tiempo.
 Mecanismos de comunicación entre procesos: permiten comunicar a dos
procesos del sistema operativo.
 Mecanismos de sincronización: permiten coordinar a procesos que realizan
accesos concurrentes a un cierto recurso.

2. Administración de memoria principal

La memoria es como una gran almacén con casillas (bytes) a los que se accede
mediante una dirección única. Este almacén de datos es compartido por la CPU y los
dispositivos de E/S.

El Sistema operativo se encarga de gestionar este espacio como responsable de:

 Conocer qué partes de la memoria están siendo utilizadas y por quién.


 Decidir qué procesos se cargarán en memoria cuando haya espacio disponible
 Asignar y reclamar espacio de memoria cuando sea necesario

3. Administración de ficheros

Gestiona la manera en que la información se almacena en dispositivos de


entrada/salida que permiten el almacenamiento estable.

4. Gestión de los dispositivos de entrada/salida (driver)

Parte del sistema operativo que conoce los detalles específicos de cada dispositivo, lo
que permite poder operar con él.

Además, el sistema operativo ofrece:

 Lanzador de aplicaciones: permite el lanzamiento de un programa. Esto incluye


los intérpretes de órdenes textuales y los basados en gestores de ventanas.
 Llamadas al sistema: conjunto de servicios que los procesos pueden solicitar al
sistema operativo.
Tipos de Sistemas Operativos

Actualmente los sistemas operativos se clasifican en tres tipos: sistemas operativos por
su estructura (visión interna), sistemas operativos por los servicios que ofrecen y
sistemas operativos por la forma en que ofrecen sus servicios (visión externa).

Sistemas Operativos por Servicios(Visión Externa)

Por Número de Usuarios:


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 el ordenador o el número de
procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Los
ordenadores personales típicamente se han clasificado en este renglón. En otras
palabras, los sistemas monousuarios son aquellos que nada más pueden atender a un
solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo
de aplicación que se este ejecutando.

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 al ordenador 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 los mismos recursos. Este tipo de
sistemas se emplean especialmente en redes. En otras palabras consiste en el
fraccionamiento del tiempo (timesharing).

Por el Número de Tareas:


Sistema Operativo Monotarea.
Los sistemas monotarea 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.

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 un ordenador 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.

Por el Número de Procesadores:


Sistema Operativo de Uniproceso.
Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un
procesador del ordenador, de manera que si el ordenador tuviese más de uno le sería
inútil. El ejemplo más típico de este tipo de sistemas es el DOS y el MacOS.

Sistema Operativo de Multiproceso.


Un sistema operativo multiproceso se refiere al número de procesadores del sistema,
que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo.
Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente.
Asimétrica: cuando se trabaja de manera asimétrica, el sistema operativo selecciona a
uno de los procesadores el cual jugará el papel de procesador maestro y servirá como
pivote para distribuir la carga a los demás procesadores, que reciben el nombre de
esclavos.

Simétrica: cuando se trabaja de manera simétrica, los procesos o partes de ellos


(threads) son enviados indistintamente a cual quiera de los procesadores disponibles,
teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo
este esquema.

Un aspecto importante a considerar en estos sistemas es la forma de crear


aplicaciones para aprovechar los varios procesadores. Existen aplicaciones que fueron
hechas para correr en sistemas monoproceso que no toman ninguna ventaja a menos
que el sistema operativo o el compilador detecte secciones de código paralelizable, los
cuales son ejecutados al mismo tiempo en procesadores diferentes. Por otro lado, el
programador puede modificar sus algoritmos y aprovechar por sí mismo esta facilidad,
pero esta última opción las más de las veces es costosa en horas y muy tediosa,
obligando al programador a ocupar tanto o más tiempo a la paralelización que a
elaborar el algoritmo inicial.

Sistemas Operativos por su Estructura (Visión Interna)

Se deben observar dos tipos de requisitos cuando se construye un sistema operativo:


Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado
al uso al que se le quiere destinar.
Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma
de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y
flexibilidad.
A continuación se describen las distintas estructuras que presentan los actuales
sistemas operativos para satisfacer las necesidades que de ellos se quieren obtener.

Estructura Monolítica.
Es la estructura de los primeros sistemas operativos constituidos fundamentalmente
por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma
que cada una puede llamar a cualquier otra. Las características fundamentales de este
tipo de estructura son:

 Construcción del programa final a base de módulos compilados separadamente


que se unen a través del ligador.
 Buena definición de parámetros de enlace entre las distintas rutinas existentes,
que puede provocar mucho acoplamiento.
 Carecen de protecciones y privilegios al entrar a rutinas que manejan
diferentes aspectos de los recursos de la computadora, como memoria, disco,
etc.

Generalmente están hechos a medida, por lo que son eficientes y rápidos en su


ejecución y gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes
ambientes de trabajo o tipos de aplicaciones.

Estructura Jerárquica.
A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los
sistemas, se hizo necesaria una mayor organización del software, del sistema
operativo, donde una parte del sistema contenía subpartes y esto organizado en forma
de niveles.
Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas
estuviera perfectamente definida y con un claro interface con el resto de elementos.
Se constituyó una estructura jerárquica o de niveles en los sistemas operativos, el
primero de los cuales fue denominado THE (Technische Hogeschool, Eindhoven), de
Dijkstra, que se utilizó con fines didácticos. Se puede pensar también en estos sistemas
como si fueran `multicapa'. Multics y Unix están en esa categoría.

En la estructura anterior se basan prácticamente la mayoría de los sistemas operativos


actuales. Otra forma de ver este tipo de sistema es la denominada de anillos
concéntricos o "rings". En el sistema de anillos, cada uno tiene una apertura, conocida
como puerta o trampa (trap), por donde pueden entrar las llamadas de las capas
inferiores. De esta forma, las zonas más internas del sistema operativo o núcleo del
sistema estarán más protegidas de accesos indeseados desde las capas más externas.
Las capas más internas serán, por tanto, más privilegiadas que las externas.

Máquina Virtual.
Se trata de un tipo de sistemas operativos que presentan una interface a cada proceso,
mostrando una máquina que parece idéntica a la máquina real subyacente. Estos
sistemas operativos separan dos conceptos que suelen estar unidos en el resto de
sistemas: la multiprogramación y la máquina extendida. El objetivo de los sistemas
operativos de máquina virtual es el de integrar distintos sistemas operativos dando la
sensación de ser varias máquinas diferentes.
El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como
misión llevar a cabo la multiprogramación, presentando a los niveles superiores tantas
máquinas virtuales como se soliciten. Estas máquinas virtuales no son máquinas
extendidas, sino una réplica de la máquina real, de manera que en cada una de ellas se
pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina
extendida al usuario

Cliente-Servidor(Microkernel).
El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que
puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas.
Este sistema sirve para toda clase de aplicaciones; por tanto, es de propósito general y
cumple con las mismas actividades que los sistemas operativos convencionales.

El núcleo tiene como misión establecer la comunicación entre los clientes y los
servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, un
programa de aplicación normal es un cliente que llama al servidor correspondiente
para acceder a un archivo o realizar una operación de entrada/salida sobre un
dispositivo concreto. A su vez, un proceso cliente puede actuar como servidor para
otro. Este paradigma ofrece gran flexibilidad en cuanto a los servicios posibles en el
sistema final, ya que el núcleo provee solamente funciones muy básicas de memoria,
entrada/salida, archivos y procesos, dejando a los servidores proveer la mayoría que el
usuario final o programador puede usar. Estos servidores deben tener mecanismos de
seguridad y protección que, a su vez, serán filtrados por el núcleo que controla el
hardware. Actualmente se está trabajando en una versión de UNIX que contempla en
su diseño este paradigma.

Los recursos administrados por un sistema operativo son:


• Tiempo del procesador.
• Memoria Principal.
• Dispositivos Perifericos.
• Software.

Tiempo del procesador: El recurso más importante en el sistema de computación es el


procesador central. Sin acceso al CPU. los programas no pueden ejecutarse. La
estrategia más simple para asignar este recurso sería asignarlo a un trabajo de usuario
hasta que finalice.

Memoria Principal: Un segundo recurso que es escaso en la mayoría de los


computadores es la memoria principal. Un programa se puede ejecutar solamente si
tiene asignada la memoria fisica que necesita, ya que el procesador accesa las
instrucciones y los datos que se encuentran en esa memoria física. Si el sistema
operativo soporta la ejecución simultánea de varios trabajos entonces la memoria está
compartida entre esos varios trabajos. En estos casos el S.O. debe asiganr
eficientemente la memoria a esos trabajos, evitando desperdicios.

Dispositivos Periféricos: La mayoría de los dispositivos periféricos se asignan a un solo


usuario, no se comparten entre varios usuarios. Esta situación puede ser muy
ineficiente en el caso de algunos dispositivos tales como la impresora, si el trabajo al
que fuese asignado este dispositivo tuviese un tiempo largo de ejecución. Por otra
parte, los dispositivos de acceso directo son compartidos entre los usuarios a través
del sistema de archivos y pueden ocurrir demoras derivadas del uso compartido que
pudieran ser intolerables en un momento dado.

Software: Los recursos de software de un sistema de computación, consisten en las


funciones disponibles al usuario con el objeto de administrar datos y controlar la
ejecución de programas. Entre estos recursos se encuentran los servicios de
administración de archivos, los despachadores, librerías del sistema y rutinas de
utilidad.

CONCEPTOS CLAVES QUE AFECTAN EL DISEÑO DE UN SISTEMA OPERATIVO


Relocalización
Recordemos que la memoria es aquel dispositivo en el cual podemos
guardar,almacenas o depositar toda nuestra información así como recuperarla para su
posterior revisión.

La memoria debe estar protegida de manera que un proceso no pueda acceder


directamente a la memoria del S.O. Un proceso no pueda acceder a la memoria de
otros procesos. Las maneras mas elementales de implementar la protección con dos
registros limite con un registro base y un registro limite.

En la relocalización se observa que los programas que tienen que cargarse a memoria
real ya están compilados y ligados, de manera que internamente contienen una serie
de referencias a direcciones de instrucciones, rutinas y procedimientos que ay no son
validos en el espacio de direcciones de memoria real de la sección en la que se carga el
programa, estos problemas surgen después de haber sido compilados los programas y
que se podrían solucionar de una forma estática que es usada para programas largos,
si el programa es muy grande tardara mucho en resolver la nuevas direcciones pero
después se ejecutara de manera rápida, pero lento al principio. También de forma
dinámica, siendo usada para programas cortos se inicia muy rápido pero realiza mas
instrucciones para poder resolver las direcciones al tiempo de ser corrido.

Reentrancia
En informática, un programa informático o subrutina se llama re-entrada si puede ser
interrumpido en medio de su ejecución y volver a llamarse de forma segura ("re-
entrar") antes de que las invocaciones anteriores completen su ejecución. La
interrupción puede ser causada por una acción interna como un salto o llamada, o por
una acción externa como una interrupción o señal. Una vez que la invocación re-
entrante completa, las invocaciones anteriores reanudarán su ejecución de forma
correcta.

INTERRUPCIONES
Una interrupción es un mecanismo que permite ejecutar un bloque de instrucciones
interrumpiendo la ejecución de un programa, y luego restablecer la ejecución del
mismo sin afectarlo directamente. De este modo un programa puede ser interrumpido
temporalmente para atender alguna necesidad urgente del computador y luego
continuar su ejecución como si nada hubiera pasado.

Generalmente se aplica para realizar tareas elementales asincrónicas en el


computador tales como responder al teclado, escribir en la pantalla, leer y escribir
archivos. Podemos considerar una tarea asincrónica como aquella que es solicitada sin
previo aviso y aleatoriamente desde el punto de vista del computador. Tomemos el
caso de la operación Ctrl-Alt-Supr. En Windows tiene el efecto de que aparece en
pantalla una lista de los procesos y ventanas en ejecución en el computador. En
cambio en el Sistema Operativo DOS cuando el usuario presiona simultáneamente
dichas teclas el computador procede a reinicializarse, aunque pueda estar ocupado
ejecutando un programa en ese instante. Vale decir fuerza obligadamente a que el
computador se reinicialice. Ya sea en el sistema Windows o en DOS, el computador no
está constantemente monitoreando el teclado para ver si el usuario ha solicitado un
Ctrl-Alt-Del, ya que en ese caso consumiría mucho tiempo de proceso en ello y por
ende la capacidad de proceso se vería significativamente afectada. La solución
empleada es una interrupción.

Luego cada vez que el usuario presiona una tecla, la CPU es advertida a través de una
señal especial de interrupción. Cuando la CPU advierte/recibe una señal de
interrupción suspende temporalmente el proceso actual almacenando en memoria
RAM un bloque con toda la información necesaria para restablecer posteriormente la
ejecución del programa si es que procede. Enseguida la CPU determina qué elemento
ha solicitado la interrupción y para cada caso existe un bloque de instrucciones que
realiza la tarea correspondiente que es ejecutada a continuación. Terminada la
ejecución se restablece el programa original en el mismo punto en que fue
interrumpido usando para ello la información almacenada previamente.
Cada interrupción tiene asignada un número único. El PC está diseñado de manera que
la interrupción tiene asignada 4 bytes de memoria RAM. La dirección de los cuatro
bytes en la memoria corresponde al número de la interrupción multiplicado por 4. Por
ejemplo la interrupción IRQ 5 tiene asignada 4 bytes en la dirección 0x00014
(0000:0014). El contenido de los 4 bytes de memoria RAM asignados a una
interrupción contiene a su vez una dirección que es un puntero a un bloque de
instrucciones de máquina que realiza el procedimiento correspondiente. De este modo
al iniciar la ejecución de una interrupción de los cuatro bytes que tiene asignados se
obtiene la dirección del bloque de instrucciones que efectivamente se ejecutan. Por
ejemplo si en la dirección 0000:0014 estuviera almacenado el valor 0xFFF00, ello
significa que en dicha dirección (ó (F000:FF00) se encuentra el bloque de instrucciones
a ejecutar cuando la interrupción IRQ 5 sea requerida.

Existen tres tipos de interrupciones :

Interrupciones internas de hardware

Las interrupciones internas son generadas por ciertos eventos que surgen durante la
ejecución de un programa.

Este tipo de interrupciones son manejadas en su totalidad por el hardware y no es


posible modificarlas.

Un ejemplo claro de este tipo de interrupciones es la que actualiza el contador del reloj
interno de la computadora, el hardware hace el llamado a esta interrupción varias
veces durante un segundo para mantener la hora actualizada.

Aunque no podemos manejar directamente esta interrupción (no podemos controlar


por software las actualizaciones del reloj), es posible utilizar sus efectos en la
computadora para nuestro beneficio, por ejemplo para crear un "reloj virtual"
actualizado continuamente gracias al contador del reloj interno. Unicamente debemos
escribir un programa que lea el valor actual del contador y lo traduzca a un formato
entendible para el usuario.

Interrupciones externas de hardware

Las interrupciones externas las generan los dispositivos perifericos, como pueden ser:
teclado, impresoras, tarjetas de comunicaciones, etc. También son generadas por los
coprocesadores.

No es posible desactivar a las interrupciones externas.

Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un


circuito integrado cuya función es exclusivamente manejar este tipo de interrupciones.
El circuito, llamado PIC 8259A, si es controlado por la UCP utilizando para tal control
una serie de vias de comunicación llamadas puertos.
Una lista de las interrupciones generadas por hardware es la siguiente

Interrupciones de software

Las interrupciones de software pueden ser activadas directamente por el ensamblador


invocando al número de interrupción deseada con la instrucción INT.

El uso de las interrupciones nos ayuda en la creación de programas, utilizandolas


nuestros programas son más cortos, es más fácil entenderlos y usualmente tienen un
mejor desempeño debido en gran parte a su menor tamaño.

Este tipo de interrupciones podemos separarlas en dos categorias: las interrupciones


del sistema operativo DOS y las interrupciones del BIOS.

La diferencia entre ambas es que las interrupciones del sistema operativo son más
fáciles de usar pero también son más lentas ya que estas interrupciones hacen uso del
BIOS para lograr su cometido, en cambio las interrupciones del BIOS son mucho más
rápidas pero tienen la desventaja que, como son parte del hardware son muy
específicas y pueden variar dependiendo incluso de la marca del fabricante del
circuito.

La elección del tipo de interrupción a utilizar dependerá unicamente de las


caracteristicas que le quiera dar a su programa: velocidad (utilizando las del BIOS) o
portabilidad (utilizando las del DOS).

Buffer
Un buffer es un espacio de memoria, en el que se almacenan datos para evitar que el
programa o recurso que los requiere, ya sea hardware o software, se quede en algún
momento sin datos.
El concepto del Buffer es similar al de cache. Pero en el caso del buffer, los datos que
se introducen siempre van a ser utilizados. En la caché sin embargo, no hay seguridad,
sino una mayor probabilidad de utilización.

RELOJES
Los relojes o cronómetros son esenciales para la operación de sistemas de tiempo
compartido. Registran la hora del día. Evitan que un proceso monopolice la cpu.
El software para reloj toma generalmente la forma de un manejador de dispositivo,
aunque no es un dispositivo de bloque ni de caracter.
Los relojes más sencillos trabajan con la línea de corriente eléctrica de 110 o 220
voltios y provocan una interrupción por cada ciclo de voltaje, a 50 o 60 hz.
Otro tipo de relojes consta de tres componentes: Un oscilador de cristal, un contador y
un registro. Una pieza de cristal de cuarzo se monta en una estructura bajo tensión:
Genera una señal periódica de muy alta precisión, generalmente entre 5 y 100 mhz.
La señal se alimenta en el contador para que cuente en forma descendente hasta cero.
Cuando el contador llega a cero, provoca una interrupción de la cpu.
Los relojes programables tienen varios modos de operación.
Modo de una instancia: Cuando el reloj se inicializa, copia el valor del registro en el
contador. Decrementa el contador en cada pulso del cristal. Cuando el contador llega a
cero provoca una interrupción y se detiene hasta ser nuevamente inicializado por el
software.
Modo de onda cuadrada: Luego de llegar a cero y provocar la interrupción, el registro
se copia de manera automática en el contador. Todo el programa se repite en forma
indefinida.
Las interrupciones periódicas se llaman marcas del reloj.

•La ventaja del reloj programable es que su frecuencia de interrupción puede ser
controlada por el software.
•Las principales funciones del software manejador del reloj son:
•Mantener la hora del día o tiempo real.
•Evitar que los procesos se ejecuten durante más tiempo del permitido.
•Mantener un registro del uso de la cpu.
•Controlar llamadas al sistema tipo “alarm” por parte de los procesos del usuario.
•Proporcionar cronómetros guardianes de partes del propio sistema.
•Realizar resúmenes, monitoreo y recolección de estadísticas.
El software manejador del reloj puede tener que simular varios relojes virtuales con un
único reloj físico.

Direccionamiento De Base Y Desplazamiento

Este modo de direccionamiento se fundamenta en la propiedad de localidad de


referencia mencionada anteriormente. La dirección que se toma como referencia de la
zona de memoria en la que están localizados los datos se deposita en un registro
denominado registro base y el campo de operando indica la diferencia entre el registro
base y la dirección M operando. Normalmente se toma como referencia (registro base)
la dirección de comienzo de la zona de memoria ocupada por un programa. Por tanto,
la dirección efectiva del operando se calculará sumando el contenido del registro base
con el campo de operando.

Este modo de direccionamiento se usa en ordenadores que pueden mantener en


memoria varios programas ya que, de esta forma, los diferentes registros base pueden
contener las direcciones de comienzo de cada uno de los programas. Esto es muy útil
porque facilita la relocalización de los programas para situar el programa en una zona
de memoria diferente bastará con cambiar el contenido de su registro base, no será
necesario cambiar ninguno de los campos de operando.

Instalando el sistema operativo


 Para instalar Linux hay que realizar relativos esfuerzos, aunque cada vez es una
tarea más sencilla, pero puedes personalizar completamente la instalación.
 A la hora de instalar Windows prácticamente no puedes configurar nada
(cuatro cosas básicas). Eso sí, la instalación de Windows es muy fácil y cómoda.

Compatibilidad con el Hardware

 Windows es generalmente más compatible con todo tipo


de hardware que Linux. No obstante, cada vez se acercan más ambos a la
compatibilidad total, que sería lo deseable.
 Gracias a que Linux goza de alta popularidad, ofrece una alta compatibilidad a
pesar de no estar detrás de ninguna casa comercial. Además ofrece
actualizaciones de forma frecuente.
 Windows forma parte de Microsoft, y debido a su gran poder económico
intenta ofrecer un elevado número de drivers, ya que las empresas
de hardware crean sus propios drivers.

Hablemos de Software

 Linux cuenta con menos software en algunos sectores, y tiene una menor
aceptación en el mundo empresarial, aunque gracias a apoyos de empresas
como Sun Microsystems (adquirida en 2009 por Oracle) o IBM se consiguieron
avances importantes en los últimos tiempos.
 Windows posee una gran cantidad de software, ya que es el sistema
operativo más utilizado en las empresas (principalmente por su facilidad de
uso) y esto hace que los desarrolladores se centren más en él.

Otras consideraciones

 Linux siempre se ha caracterizado por la robustez de su sistema, ya que por


ejemplo podemos estar meses (incluso años) sin la necesidad de apagar o
reiniciar el equipo. Por otra parte, si una aplicación falla, no se bloquea
totalmente el equipo.
 En Windows siempre (tarde o temprano) es necesario reiniciar el sistema
cuando se modifica o actualiza alguna configuración del mismo. Además, se
puede bloquear al ejecuta alguna operación aparentemente sencilla,
obligándonos a reiniciar el equipo.

Generacion de los sistemas operativos

Primera Generación (1940)


A finales de la década de 1940, con lo que se podría considerar la aparición de la
primera generación de computadoras, se accedía directamente a la consola de la
computadora desde la cual se actuaba sobre una serie de micro interruptores que
permitían introducir directamente el programa en la memoria de la computadora (en
realidad al existir tan pocas computadoras todos podrían considerarse prototipos y
cada constructor lo hacía sin seguir ningún criterio predeterminado). Por aquel
entonces no existían los sistemas operativos, y los programadores debían interactuar
con el hardware del computador sin ayuda externa. Esto hacía que el tiempo de
preparación para realizar una tarea fuera considerable. Además para poder utilizar la
computadora debía hacerse por turnos. Para ello, en muchas instalaciones, se
rellenaba un formulario de reserva en el que se indicaba el tiempo que el programador
necesitaba para realizar su trabajo. En aquel entonces las computadoras eran
máquinas muy costosas lo que hacía que estuvieran muy solicitadas y que sólo
pudieran utilizarse en periodos breves de tiempo. Todo se hacia en lenguaje de
máquina.

Segunda Generación (1950)

A principios de los años 50 con el objeto de facilitar la interacción entre persona y


computadora, los sistemas operativos hacen una aparición discreta y bastante simple,
con conceptos tales como el monitor residente, el proceso por lotes y el
almacenamiento temporal.
Monitor residente

Su funcionamiento era bastante simple, se limitaba a cargar los programas a memoria,


leyéndolos de una cinta o de tarjetas perforadas, y ejecutarlos. El problema era
encontrar una forma de optimizar el tiempo entre la retirada de un trabajo y el
montaje del siguiente.
Procesamiento por lotes

Como solución para optimizar , en una misma cinta o conjunto de tarjetas, se cargaban
varios programas, de forma que se ejecutaran uno a continuación de otro sin perder
apenas tiempo en la transición.

Almacenamiento temporal

Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultánea la


carga del programa o la salida de datos con la ejecución de la siguiente tarea. Para ello
se utilizaban dos técnicas, elbuffering y el spooling.

Tercera Generación (1960)

En los años 60 se produjeron cambios notorios en varios campos de la informática, con


la aparición del circuito integrado la mayoría orientados a seguir incrementando el
potencial de los ordenadores. Para ello se utilizaban técnicas de lo más diversas.
Multiprogramación

En un sistema multiprogramado la memoria principal alberga a más de un programa de


usuario. La CPU ejecuta instrucciones de un programa, cuando el que se encuentra en
ejecución realiza una operación de E/S; en lugar de esperar a que termine la operación
de E/S, se pasa a ejecutar otro programa. Si éste realiza, a su vez, otra operación de
E/S, se mandan las órdenes oportunas al controlador, y pasa a ejecutarse otro. De esta
forma es posible, teniendo almacenado un conjunto adecuado de tareas en cada
momento, utilizar de manera óptima los recursos disponibles.
Tiempo compartido

En este punto tenemos un sistema que hace buen uso de la electrónica disponible,
pero adolece la falta de interactividad; para conseguirla debe convertirse en un
sistema multiusuario, en el cual existen varios usuarios con un terminal en línea,
utilizando el modo de operación de tiempo compartido. En estos sistemas los
programas de los distintos usuarios residen en memoria. Al realizar una operación de
E/S los programas ceden la CPU a otro programa, al igual que en la multiprogramación.
Pero, a diferencia de ésta, cuando un programa lleva cierto tiempo ejecutándose el
sistema operativo lo detiene para que se ejecute otra aplicación.
Tiempo real

Estos sistemas se usan en entornos donde se deben aceptar y procesar en tiempos


muy breves un gran número de sucesos, en su mayoría externos al ordenador. Si el
sistema no respeta las restricciones de tiempo en las que las operaciones deben
entregar su resultado se dice que ha fallado. El tiempo de respuesta a su vez debe
servir para resolver el problema o hecho planteado. El procesamiento de archivos se
hace de una forma continua, pues se procesa el archivo antes de que entre el
siguiente, sus primeros usos fueron y siguen siendo en telecomunicaciones.
Multiprocesador
Diseño que no se encuentran en ordenadores monoprocesador. Estos problemas
derivan del hecho de que dos programas pueden ejecutarse simultáneamente y,
potencialmente, pueden interferirse entre sí. Concretamente, en lo que se refiere a las
lecturas y escrituras en memoria. Existen dos arquitecturas que resuelven estos
problemas:

La arquitectura NUMA, donde cada procesador tiene acceso y control exclusivo a una
parte de la memoria. La arquitectura SMP, donde todos los procesadores comparten
toda la memoria. Esta última debe lidiar con el problema de la coherencia de caché.
Cada microprocesador cuenta con su propia memoria cache local. De manera que
cuando un microprocesador escribe en una dirección de memoria, lo hace únicamente
sobre su copia local en caché. Si otro microprocesador tiene almacenada la misma
dirección de memoria en su caché, resultará que trabaja con una copia obsoleta del
dato almacenado.

Para que un multiprocesador opere correctamente necesita un sistema operativo


especialmente diseñado para ello. La mayoría de los sistemas operativos actuales
poseen esta capacidad.
Sistemas operativos desarrollados

Además del Atlas Supervisor y el OS/360, los años 70 marcaron el inicio de UNIX, a
mediados de los 60 aparece Multics, sistema operativo multiusuario - multitarea
desarrollado por los laboratorios Bell de AT&T yUnix, convirtiéndolo en uno de los
pocos SO escritos en un lenguaje de alto nivel. En el campo de la programación lógica
se dio a luz la primera implementación de Prolog, y en la revolucionaria orientación a
objetos, Smalltalk.
Inconvenientes de los Sistemas operativos

Se trataba de sistemas grandes, complejos y costosos, pues antes no se había


construido nada similar y muchos de los proyectos desarrollados terminaron con
costos muy por encima del presupuesto y mucho después de lo que se marcaba como
fecha de finalización. Además, aunque formaban una capa entre el hardware y el
usuario, éste debía conocer un complejo lenguaje de control para realizar sus trabajos.
Otro de los inconvenientes es el gran consumo de recursos que ocasionaban, debido a
los grandes espacios de memoria principal y secundaria ocupados, así como el tiempo
de procesador consumido. Es por esto que se intentó hacer hincapié en mejorar las
técnicas ya existentes de multiprogramación y tiempo compartido.
[editar]Características de los nuevos sistemas
[editar]Sistemas operativos desarrollados
MULTICS (Multiplexed Information and Computing Service): Originalmente era un
proyecto cooperativo liderado por Fernando Corbató del MIT, con General Electric y
los laboratorios Bell, que comenzó en los 60, pero los laboratorios Bell abandonaron
en 1969 para comenzar a crear el sistema UNIX. Se desarrolló inicialmente para el
mainframe GE-645, un sistema de 36 bits; después fue soportado por la serie de
máquinas Honeywell 6180.

Fue uno de los primeros. Además, los traducía a instrucciones de alto nivel destinadas
a BDOS.
BDOS (Basic Disk Operating System): Traductor de las instrucciones en llamadas a la
BIOS.

El hecho de que, años después, IBM eligiera para sus PC a MS-DOS supuso su mayor
fracaso, por lo que acabó desapareciendo.

Cuarta Generación (1980/90)

La década de 1980
Con la creación de los circuitos LSI -integración a gran escala-, chips que contenían
miles de transistores en un centímetro cuadrado de silicio, empezó el auge de los
ordenadores personales. En éstos se dejó un poco de lado el rendimiento y se buscó
más que el sistema operativo fuera amigable, surgiendo menús, e interfaces gráficas.
Esto reducía la rapidez de las aplicaciones, pero se volvían más prácticos y simples para
los usuarios. En esta época, siguieron utilizándose lenguajes ya existentes, como
Smalltalk o C, y nacieron otros nuevos, de los cuales se podrían destacar: C++ y Eiffel
dentro del paradigma de la orientación a objetos, y Haskell y Miranda en el campo de
la programación declarativa. Un avance importante que se estableció a mediados de la
década de 1980 fue el desarrollo de redes de computadoras personales que corrían
sistemas operativos en red y sistemas operativos distribuidos. En esta escena, dos
sistemas operativos eran los mayoritarios: MS-DOS(Micro Soft Disk Operating System),
escrito porMicrosoft para IBM PC y otras computadoras que utilizaban la CPU Intel
8088 y sus sucesores, y UNIX, que dominaba en los ordenadores personales que hacían
uso del Motorola 68000.
Mac OS

El lanzamiento oficial del ordenador Macintosh en enero de 1984, al precio de US


$1,995 (después cambiado a $2,495 dólares)[1]. Incluía su sistema operativo Mac OS
cuya características novedosas era una GUI (Graphic User Interface), Multitareas y
Mouse. Provocó diferentes reacciones entre los usuarios acostumbrados a la línea de
comandos y algunos tachando el uso del Mouse como juguete.
MS-DOS
En 1981 Microsoft compró un sistema operativo llamado QDOS que, tras realizar unas
pocas modificaciones, se convirtió en la primera versión de MS-DOS (MicroSoft Disk
Operating System). A partir de aquí se sucedieron una serie de cambios hasta llegar a
la versión 7.1, versión 8 en Windows Milenium, a partir de la cual MS-DOS dejó de
existir como un componente del Sistema Operativo.

Microsoft Windows
A mediados de los años 80 se crea este sistema operativo, pero no es hasta la salida de
(Windows 95) que se le puede considerar un sistema operativo, solo era una interfaz
gráfica del (MS-DOS)en el cual se disponía de unos diskettes para correr los programas.
Hoy en día es el sistema operativo más difundido en el ámbito doméstico aunque
también hay versiones para servidores como Windows NT. (Microsoft) ha diseñado
también algunas versiones para superordenadores, pero sin mucho éxito. Años
después se hizo el (Windows 98) que era el más eficaz de esa época. Después se
crearía el sistema operativo de (Windows ME) (Windows Millenium Edition)
aproximadamente entre el año 1999 y el año 2000. Un año después se crearía el
sistema operativo de (Windows 2000) en ese mismo año. Después le seguiría el
sistema operativo más utilizado en la actualidad, (Windows XP) y otros sistemas
operativos de esta familia especializados en las empresas. Ahora el más reciente es
(Windows 7) (Windows Seven) que salio al mercado el 22 de octubre del 2009, dejando
atrás al (Windows Vista), que tuvo innumerables criticas durante el poco tiempo que
duró en el mercado.
La década de 1990
GNU/Linux
Este sistema es una versión mejorada de Unix, basado en el estándar POSIX , un
sistema que en principio trabajaba en modo comandos. Hoy en día dispone de
Ventanas, gracias a un servidor gráfico y a gestores de ventanas como KDE, GNOME
entre muchos. Recientemente GNU/Linux dispone de un aplicativo que convierte las
ventanas en un entorno 3D como por ejemplo Beryl o Compiz. Lo que permite utilizar
linux de una forma visual atractiva.

Existen muchas distribuciones actuales de Gnu/Linux (Debian, Fedora, Ubuntu,


Slackware, etc) donde todas ellas tienen en común que ocupan el mismo núcleo Linux.
Dentro de las cualidades de Gnu/Linux se puede caracterizar el hecho de que la
navegacion a través de la web es sin riegos de ser afectada por virus, esto debido al
sistema de permisos implementado, el cual no deja correr ninguna aplicación sin los
permisos necesarios, permisos que son otorgados por el usuario. A todo esto se suma
que los virus que vienen en dispositivos desmontables tampoco afectan al sistema,
debido al mismo sistema de permisos.

Вам также может понравиться