SISTEMAS OPERATIVOS DE
COMPUTADORA
Definición
de Sistema Operativo
El
sistema operativo es el programa (o software) más importante de un ordenador.
Para que funcionen los otros programas, cada ordenador de uso general debe
tener un sistema operativo. Los sistemas operativos realizan tareas básicas,
tales como reconocimiento de la conexión del teclado, enviar la información a
la pantalla, no perder de vista archivos y directorios en el disco, y controlar
los dispositivos periféricos tales como impresoras, escáner, etc.
En
sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y
poder, es como un policía de tráfico, se asegura de que los programas y
usuarios que están funcionando al mismo tiempo no interfieran entre ellos. El
sistema operativo también es responsable de la seguridad, asegurándose de que los
usuarios no autorizados no tengan acceso al sistema.
Clasificación
de los Sistemas Operativos
Los
sistemas operativos pueden ser clasificados de la siguiente forma:
Multiusuario:
Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos
sistemas operativos permiten a centenares o millares de usuarios al mismo
tiempo.
Multiprocesador:
soporta el abrir un mismo programa en más de una CPU.
Multitarea:
Permite que varios programas se ejecuten al mismo tiempo.
Multitramo:
Permite que diversas partes de un solo programa funcionen al mismo tiempo.
Tiempo
Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS
y UNIX, no funcionan en tiempo real.
Cómo
funciona un Sistema Operativo
Los
sistemas operativos proporcionan una plataforma de software encima de la cual
otros programas, llamados aplicaciones, puedan funcionar. Las aplicaciones se
programan para que funcionen encima de un sistema operativo particular, por
tanto, la elección del sistema operativo determina en gran medida las
aplicaciones que puedes utilizar.
Los
sistemas operativos más utilizados en los PC son DOS, OS/2, y Windows, pero hay
otros que también se utilizan, como por ejemplo Linux.
Cómo
se utiliza un Sistema Operativo
Un
usuario normalmente interactúa con el sistema operativo a través de un sistema
de comandos, por ejemplo, el sistema operativo DOS contiene comandos como
copiar y pegar para copiar y pegar archivos respectivamente. Los comandos son
aceptados y ejecutados por una parte del sistema operativo llamada procesador
de comandos o intérprete de la línea de comandos. Las interfaces gráficas
permiten que utilices los comandos señalando y pinchando en objetos que
aparecen en la pantalla.
Ejemplos
de Sistema Operativo
A
continuación detallamos algunos ejemplos de sistemas operativos:
Familia
Windows
Windows 95
Windows 98
Windows ME
Windows NT
Windows 2000
Windows 2000
server
Windows XP
Windows
Server 2003
Windows CE
Windows
Mobile
Windows XP
64 bits
Windows
Vista (Longhorn)
Familia
Macintosh
Mac OS 7
Mac OS 8
Mac OS 9
Mac OS X
Familia UNIX
AIX
AMIX
GNU/Linux
GNU / Hurd
HP-UX
Irix
Minix
System V
Solaris
UnixWa
Spoolers[
Hace
aparición el disco magnético con lo que surgen nuevas soluciones a los
problemas de rendimiento. Se eliminan las cintas magnéticas para el volcado
previo de los datos de dispositivos lentos y se sustituyen por discos (un disco
puede simular varias cintas). Debido al solapamiento del cálculo de un trabajo
con la E/S de otro trabajo se crean tablas en el disco para diferentes tareas,
lo que se conoce como Spool (Simultaneous Peripherial Operation On-Line).
Sistemas
operativos multiprogramados
Surge un
nuevo avance: el hardware con protección de memoria, ofreciendo nuevas
soluciones a los problemas de rendimiento:
Se solapa el
cálculo de unos trabajos con la entrada/salida de otros trabajos.
Se pueden
mantener en memoria varios programas.
Se asigna el
uso de la CPU a los diferentes programas en memoria.
Con los
cambios anteriores el monitor residente debe abordar nuevas tareas, naciendo
los Sistemas Operativos multiprogramados con las siguientes funciones:
Administrar
la memoria.
Gestionar el
uso de la CPU (planificación).
Administrar
el uso de los dispositivos de E/S.
Cuando
desempeña esas tareas, el monitor residente se transforma en un sistema
operativo multiprogramado.
Llamadas al
sistema operativo
Definición
breve: llamadas que ejecutan los programas de aplicación para pedir algún
servicio al SO.
Cada SO
implementa un conjunto propio de llamadas al sistema. Ese conjunto de llamadas
es la interfaz del SO frente a las aplicaciones. Constituyen el lenguaje que
deben usar las aplicaciones para comunicarse con el SO. Por ello si cambiamos
de SO, y abrimos un programa diseñado para trabajar sobre el anterior, en
general el programa no funcionará, a no ser que el nuevo SO tenga la misma
interfaz. Para ello:
Las llamadas
correspondientes deben tener el mismo formato.
Cada llamada
al nuevo SO tiene que dar los mismos resultados que la correspondiente del
anterior.
Modos de
ejecución en un CPU
Las
aplicaciones no deben poder usar todas las instrucciones de la CPU. No obstante
el Sistema Operativo, tiene que poder utilizar todo el conjunto de
instrucciones del CPU. Por ello, una CPU debe tener (al menos) dos modos de
operación diferentes:
Modo
usuario: el CPU podrá ejecutar sólo las instrucciones del juego restringido de
las aplicaciones.
Modo
supervisor: la CPU debe poder ejecutar el juego completo de instrucciones.
Llamadas al
sistema
Una
aplicación, normalmente no sabe dónde está situada la rutina de servicio de la
llamada. Por lo que si ésta se codifica como una llamada de función, cualquier
cambio en el S.O. haría que hubiera que reconstruir la aplicación.
Pero lo más
importante es que una llamada de función no cambia el modo de ejecución de la
CPU. Con lo que hay que conseguir llamar a la rutina de servicio, sin tener que
conocer su ubicación, y hacer que se fuerce un cambio de modo de operación de
la CPU en la llamada (y la recuperación del modo anterior en el retorno).
Esto se hace
utilizando instrucciones máquina diseñadas específicamente para este cometido,
distintas de las que se usan para las llamadas de función.
Bibliotecas
de interfaz de llamadas al sistema
Las llamadas
al sistema no siempre tienen una expresión sencilla en los lenguajes de alto
nivel, por ello se crean las bibliotecas de interfaz, que son bibliotecas de
funciones que pueden usarse para efectuar llamadas al sistema. Las hay para
distintos lenguajes de programación.
La
aplicación llama a una función de la biblioteca de interfaz (mediante una
llamada normal) y esa función es la que realmente hace la llamada al sistema.
Interrupciones
y excepciones
El SO ocupa
una posición intermedia entre los programas de aplicación y el hardware. No se
limita a utilizar el hardware a petición de las aplicaciones ya que hay
situaciones en las que es el hardware el que necesita que se ejecute código del
SO. En tales situaciones el hardware debe poder llamar al sistema, pudiendo
deberse estas llamadas a dos condiciones:
Algún dispositivo
de E/S necesita atención.
Se ha
producido una situación de error al intentar ejecutar una instrucción del
programa (normalmente de la aplicación).
En ambos
casos, la acción realizada no está ordenada por el programa de aplicación, es
decir, no figura en el programa.
Según los
dos casos anteriores tenemos las interrupciones y las excepciones:
Interrupción:
señal que envía un dispositivo de E/S a la CPU para indicar que la operación de
la que se estaba ocupando, ya ha terminado.
Excepción:
una situación de error detectada por la CPU mientras ejecutaba una instrucción,
que requiere tratamiento por parte del SO.
Tratamiento
de las interrupciones
Una
interrupción se trata en todo caso, después de terminar la ejecución de la
instrucción en curso.
El
tratamiento depende de cuál sea el dispositivo de E/S que ha causado la
interrupción, ante la cual debe poder identificar el dispositivo que la ha
causado.
La ventaja
de este procedimiento es que no se tiene que perder tiempo ejecutando
continuamente rutinas para consultar el estado del periférico. El inconveniente
es que el dispositivo debe tener los circuitos electrónicos necesarios para
acceder al sistema de interrupciones del computador.
Importancia
de las interrupciones
El mecanismo
de tratamiento de las interrupciones permite al SO utilizar la CPU en servicio
de una aplicación, mientras otra permanece a la espera de que concluya una
operación en un dispositivo de E/S.
El hardware
se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO
puede intervenir entonces, si es conveniente, para hacer que el programa que
estaba esperando por el dispositivo, se continúe ejecutando.
En ciertos
intervalos de tiempo puede convenir no aceptar señales de interrupción. Por
ello las interrupciones pueden inhibirse por programa (aunque esto ellas no
deben poder hacerlo).
Un ejemplo
de sincronismo por interrupción es el almacenamiento de caracteres introducidos
mediante el teclado. Cuando se introduce un carácter, se codifica en el
registro de datos del dispositivo y además se activa un bit del registro de
estado quien crea una interrupción en el hardware. El procesador deja
temporalmente la tarea que estaba completando y ejecuta la rutina de atención a
la interrupción correspondiente. El teclado almacena el carácter en el vector
de memoria intermedia (también llamado buffer) asociada al teclado y despierta
el proceso que había en el estado de espera de la operación de entrada/salida.
Excepciones
Cuando la
CPU intenta ejecutar una instrucción incorrectamente construida, la unidad de
control lanza una excepción para permitir al SO ejecutar el tratamiento
adecuado. Al contrario que en una interrupción, la instrucción en curso es
abortada. Las excepciones al igual que las interrupciones deben estar
identificadas.
Clases de
excepciones
Las
instrucciones de un programa pueden estar mal construidas por diversas razones:
El código de
operación puede ser incorrecto.
Se intenta
realizar alguna operación no definida, como dividir por cero.
La
instrucción puede no estar permitida en el modo de ejecución actual.
La dirección
de algún operando puede ser incorrecta o se intenta violar alguno de sus
permisos de uso.
Importancia
de las excepciones
El mecanismo
de tratamiento de las excepciones es esencial para impedir, junto a los modos
de ejecución de la CPU y los mecanismos de protección de la memoria, que las
aplicaciones realicen operaciones que no les están permitidas. En cualquier
caso, el tratamiento específico de una excepción lo realiza el SO.
Como en el
caso de las interrupciones, el hardware se limita a dejar el control al SO, y
éste es el que trata la situación como convenga.
Es bastante
frecuente que el tratamiento de una excepción no retorne al programa que se
estaba ejecutando cuando se produjo la excepción, sino que el SO aborte la
ejecución de ese programa. Este factor depende de la pericia del programador
para controlar la excepción adecuadamente.
Componentes
de un sistema operativo
Componentes del Sistema Operativo.
Gestión de
procesos
Un proceso
es simplemente, un programa en ejecución que necesita recursos para realizar su
tarea: tiempo de CPU, memoria, archivos y dispositivos de E/S. El SO es el
responsable de lo siguiente:
Crear y
destruir procesos.
Parar y
reanudar procesos.
Ofrecer
mecanismos para que los procesos puedan comunicarse y se sincronicen.
La gestión
de procesos podría ser similar al trabajo de oficina. Se puede tener una lista
de tareas a realizar y a estas fijarles prioridades: alta, media, baja, por
ejemplo. Debemos comenzar haciendo las tareas de prioridad alta primero y
cuando se terminen seguir con las de prioridad media y después las de baja. Una
vez realizada la tarea se tacha.
Esto puede
traer un problema que las tareas de baja prioridad pueden que nunca lleguen a
ejecutarse y permanezcan en la lista para siempre. Para solucionar esto, se
puede asignar alta prioridad a las tareas más antiguas.
Gestión de
la memoria principal
La memoria
es una gran tabla de palabras o bytes que se referencia cada una mediante una
dirección única. Este almacén de datos de rápido acceso es compartido por la
CPU y los dispositivos de E/S, es volátil y pierde su contenido ante fallos del
sistema. El SO es el 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.
Gestión del
almacenamiento secundario
Un sistema
de almacenamiento secundario es necesario, ya que la memoria principal
(almacenamiento primario) es volátil y además muy pequeña para almacenar todos
los programas y datos. También es necesario mantener los datos que no convenga
mantener en la memoria principal. El SO se encarga de:
Planificar
los discos.
Gestionar el
espacio libre.
Asignar el
almacenamiento.
Verificar
que los datos se guarden en orden.
El sistema
de entrada y salida
Consiste en
un sistema de almacenamiento temporal (caché), una interfaz de manejadores de
dispositivos y otra para dispositivos concretos. El sistema operativo debe
gestionar el almacenamiento temporal de E/S y servir las interrupciones de los
dispositivos de E/S.
Sistema de
archivos
Artículo
principal: Sistema de archivos
Los archivos
son colecciones de información relacionada, definidas por sus creadores. Estos
almacenan programas (en código fuente y objeto) y datos tales como imágenes,
textos, información de bases de datos, etc. El SO es responsable de:
Construir,
eliminar archivos y directorios.
Ofrecer
funciones para manipular archivos y directorios.
Establecer
la correspondencia entre archivos y unidades de almacenamiento.
Realizar
copias de seguridad de archivos.
Existen
diferentes sistemas de archivos, es decir, existen diferentes formas de
organizar la información que se almacena en las memorias (normalmente discos)
de los ordenadores. Por ejemplo, existen los sistemas de archivos FAT, FAT32,
ext3, NTFS, XFS, etc.
Desde el
punto de vista del usuario estas diferencias pueden parecer insignificantes a
primera vista, sin embargo, existen diferencias muy importantes. Por ejemplo,
los sistemas de ficheros FAT32 y NTFS, que se utilizan fundamentalmente en
sistemas operativos de Microsoft, tienen una gran diferencia para un usuario
que utilice una base de datos con bastante información ya que el tamaño máximo
de un fichero con un sistema de archivos FAT32 está limitado a 4 gigabytes, sin
embargo, en un sistema NTFS el tamaño es considerablemente mayor.
Sistemas de
protección
Mecanismo
que controla el acceso de los programas o los usuarios a los recursos del
sistema. El SO se encarga de:
Distinguir
entre uso autorizado y no autorizado.
Especificar
los controles de seguridad a realizar.
Forzar el
uso de estos mecanismos de protección.
Sistema de
comunicaciones
Para
mantener las comunicaciones con otros sistemas es necesario poder controlar el
envío y recepción de información a través de las interfaces de red. También hay
que crear y mantener puntos de comunicación que sirvan a las aplicaciones para
enviar y recibir información, y crear y mantener conexiones virtuales entre
aplicaciones que están ejecutándose localmente y otras que lo hacen
remotamente.
Programas de
sistema
Son
aplicaciones de utilidad que se suministran con el SO 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.
Gestor de
recursos[editar]
Como gestor
de recursos, el sistema operativo administra:
La unidad
central de procesamiento (donde está alojado el microprocesador).
Los
dispositivos de entrada y salida.
La memoria
principal (o de acceso directo).
Los discos
(o memoria secundaria).
Los procesos
(o programas en ejecución).
Y en general
todos los recursos del sistema.
Clasificación[editar]
Administración
de tareas
Monotarea:
Solamente permite ejecutar un proceso (aparte de los procesos del propio SO) en
un momento dado. Una vez que empieza a ejecutar un proceso, continuará
haciéndolo hasta su finalización y/o interrupción.
Multitarea:
Es capaz de ejecutar varios procesos al mismo tiempo. Este tipo de SO
normalmente asigna los recursos disponibles (CPU, memoria, periféricos) de
forma alternada a los procesos que los solicitan, de manera que el usuario
percibe que todos funcionan a la vez, de forma concurrente.
Administración
de usuarios
Monousuario:
Sólo permite ejecutar los programas de un usuario al mismo tiempo.
Multiusuario:
Permite que varios usuarios ejecuten simultáneamente sus programas, accediendo
a la vez a los recursos de la computadora. Normalmente estos sistemas
operativos utilizan métodos de protección de datos, de manera que un programa
no pueda usar o cambiar los datos de otro usuario.
Manejo de
recursos
Centralizado:
Permite usar los recursos de una sola computadora.
Distribuido:
Permite utilizar los recursos (memoria, CPU, disco, periféricos...) de más de
una computadora al mismo tiempo.
https://www.youtube.com/watch?v=aAA-uQTGALQ
video
de youtube.
Comentarios
Publicar un comentario