Introducción a los sistemas operativos
1.1 Concepto y definición
de Sistemas Operativos
|
Un Sistema Operativo es una
parte importante de cualquier sistema de computacion.
Un sistema de computacion
puede dividirse en cuatro componentes: el hardware,
el Sistema Operativo, los
programas de aplicacion y los usuarios. El hardware (Unidad
Central de Procesamiento
(UCP), memoria y dispositivos de entrada/salida (E/S))
proporciona los recursos de
computacion basicos. Los programas de aplicacion
(compiladores, sistemas de
bases de datos, juegos de video y programas para negocios)
definen la forma en que
estos recursos se emplean para resolver los problemas de
computacion de los usuarios.

Recursos administrados por
el Sistema Operativo
Existen diversas
definiciones de lo que es un Sistema Operativo, pero no hay una definicion
exacta, es decir una que sea estandar; a continuacion se presentan algunas:
1.- Se pueden imaginar un
Sistema Operativo como los programas, instalados en el software o firmware, que
hacen utilizable el hardware. El hardware proporciona la "capacidad bruta
de computo "; los sistemas operativos ponen dicha capacidad de a.C. al
alcance de los usuarios y administran cuidadosamente el hardware para lograr un
buen rendimiento.
2.- Los Sistemas Operativos
son ante todo administradores de recursos; el principal recurso que administran
es el hardware del computador; ademas de los procesadores, los medios de
almacenamiento, los dispositivos de entrada/salida, los dispositivos de
comunicacion y los datos.
3.- Un Sistema Operativo es
un programa que actua como intermediario entre el usuario y el hardware del
computador y su proposito es proporcionar el entorno en el cual el usuario pueda
ejecutar programas. Entonces, el objetivo principal de un Sistema Operativo es,
lograr que el sistema de computacion se use de manera comoda, y el objetivo
secundario es que el hardware del computador se emplee de manera eficiente.
4.- Un Sistema Operativo es
un conjunto de programas que controla la ejecucion de programas de aplicacion y
actua como una interfaz entre el usuario y el hardware de una computadora, esto
es, un Sistema Operativo explota y administra los recursos de hardware de la
computadora con el objeto de proporcionar un conjunto de servicios a los
usuarios del sistema.
En resumen, se podria decir
que los Sistemas Operativos son un conjunto de programas que crean la interfaz
del hardware con el usuario, y que tiene dos funciones primordiales, que son:
Gestionar el hardware.- Se
refiere al hecho de administrar de una forma mas eficiente los recursos de la
maquina.
Facilitar el trabajo al
usuario.- Permite una comunicacion con los dispositivos de la maquina.
El Sistema Operativo se
encuentra almacenado en la memoria secundaria. Primero se carga y ejecuta un
pedazo de codigo que se encuentra en el procesador, el cual carga el BIOS, y
este a su vez carga el Sistema Operativo que carga todos los programas de
aplicacion y software variado.
1.2 Funciones y Caracteristicas
|
|
En general, se puede decir
que un Sistema Operativo tiene las siguientes caracteristicas:
Conveniencia. Un Sistema
Operativo hace mas conveniente el uso de una computadora.
Eficiencia. Un Sistema
Operativo permite que los recursos de la computadora se usen de la manera mas
eficiente posible.
Habilidad para
evolucionar. Un Sistema Operativo debera construirse de manera que permita el
desarrollo, prueba o introduccion 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, esto es,
asignar a cada proceso una parte del procesador para poder compartir los
recursos.
Relacionar dispositivos
(gestionar a traves del kernel). El Sistema Operativo se debe encargar de
comunicar a los dispositivos perifericos, cuando el usuario asi lo requiera.
![]()
Organizar datos para
acceso rapido 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.
![]()
Procesamiento por bytes de
flujo a través del bus de datos.
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.
Técnicas de recuperación
de errores.
Evita que otros usuarios
interfieran. El Sistema Operativo evita que los usuarios se bloqueen entre
ellos, informándoles si esa aplicación esta siendo ocupada por otro usuario.
Generación de
estadísticas.
Permite que se puedan
compartir el hardware y los datos entre los usuarios.
![]()
El software de aplicación
son programas que se utilizan para diseñar, tal como el procesador de
palabras, lenguajes de programación, hojas de cálculo, etc.
El software de base sirve
para interactuar el usuario con la máquina, son un conjunto de programas que
facilitan el ambiente plataforma, y permite el diseño del mismo.
El Software de base está
compuesto por :
Cargadores.
Compiladores.
Ensambladores.
Macros.
1.3 Evolucion Historica
Los
Sistemas Operativos, al igual que el Hardware de los computadores, han
sufrido una serie de cambios revolucionarios llamados generaciones.
![]()
En el
caso del Hardware, las generaciones han sido marcadas por grandes avances en
los componentes utilizados, pasando de válvulas ( primera generación ) a transistores (
segunda generación ) a circuitos integrados ( tercera generación),
a circuitos integrados de gran y muy gran escala (cuarta
generación).
Cada
generación Sucesiva de hardware ha ido acompañada de reducciones
substanciales en los costos, tamaño, emisión
de calor y consumo de energia de energía, y por
incrementos notables en velocidad y capacidad.
Generación Cero (década de 1940)
Los primeros sistemas
computacionales no poseían sistemas operativos. Los usuarios tenían completo
acceso al de la maquina. Todas las instrucciones eran codificadas
a mano.
![]()
Primera
Generacion (década de 1950)
Los sistemas operativos de
los años cincuenta fueron diseñados para hacer mas fluida la transición entre
trabajos. Antes de que los sistemas fueran diseñados, se perdía un
tiempo considerable entre la terminación de un trabajo y el inicio del
siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes,
donde los trabajos se reunían por grupos o lotes. Cuando el
trabajo estaba en ejecución, este tenia control total de la
maquina. Al terminar cada trabajo, el control era devuelto al sistema
operativo, el cual limpiaba y leía e iniciaba el trabajo siguiente.
Al inicio de los 50's esto
había mejorado un poco con la introduccion de tarjetas perforadas
(las cuales servían para introducir los programas de lenguajes de
máquina), puesto que ya no había necesidad de utilizar los tableros
enchufables.
![]()
Además el
laboratorio de investigacion General Motors implementó el primer
sistema operativo para la IBM 701. Los sistemas de los 50's generalmente
ejecutaban una sola tarea, y la transición entre tareas se suavizaba para
lograr la máxima utilización del sistema. Esto se conoce como sistemas de
procesamiento por lotes de un sólo flujo, ya que los programas y los
datos eran sometidos en grupos o lotes.
La introducción del
transistor a mediados de los 50's cambió la imagen radicalmente.
Se crearon
maquinas suficientemente confiables las cuales se instalaban en lugares
especialmente acondicionados, aunque sólo las grandes universidades y las
grandes corporaciones o bien las oficinas del gobierno se podían
dar el lujo de tenerlas.
![]()
Para poder correr un
trabajo (programa), tenían que escribirlo en papel (en Fortran o en lenguaje
ensamblador) y después se perforaría en tarjetas. Enseguida se llevaría la
pila de tarjetas al cuarto de introducción al sistema y la entregaría a uno de
los operadores. Cuando la computadora terminara el trabajo, un operador
se dirigiría a la impresora y desprendería la salida y la llevaría al
cuarto de salida, para que la recogiera el programador.
Segunda
Generacion (a mitad de la década de 1960)
La característica de los
sistemas operativos fue el desarrollo de los sistemas compartidos con
multiprogramación, y los principios del multiprocesamiento. En los sistemas
de multiprogramación, varios programas de usuario se encuentran al mismo
tiempo en el almacenamiento principal, y el procesador se cambia
rápidamente de un trabajo a otro. En los sistemas de multiprocesamiento se
utilizan varios procesadores en un solo sistema computacional, con la
finalidad de incrementar el poder de procesamiento de la maquina.
![]()
La independencia de
dispositivos aparece después. Un usuario que desea escribir datos en una
cinta en sistemas de la primera generación tenia que hacer referencia
especifica a una unidad de cinta particular. En la segunda generación, el
programa del usuario especificaba tan solo que un archivo iba a ser escrito
en una unidad de cinta con cierto numero de pistas y cierta densidad.
Se desarrollo sistemas
compartidos, en la que los usuarios podían acoplarse directamente con el
computador a través de terminales. Surgieron sistemas de tiempo real, en
que los computadores fueron utilizados en el control de
procesos industriales. Los sistemas de tiempo real se caracterizan por
proveer una respuesta inmediata.
Tercera
Generacion (mitad de década 1960 a mitad década de 1970)
Se inicia en 1964, con la
introducción de la familia de computadores Sistema/360 de IBM. Los
computadores de esta generación fueron diseñados como sistemas para usos
generales . Casi siempre eran sistemas grandes, voluminosos, con el propósito
de serlo todo para toda la gente. Eran sistemas de modos múltiples, algunos
de ellos soportaban simultáneamente procesos por lotes, tiempo compartido,
procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos,
nunca antes se había construido algo similar, y muchos de los esfuerzos de
desarrollo terminaron muy por arriba del presupuesto y mucho después de
lo que el planificador marcaba como fecha de terminación.
Estos sistemas
introdujeron mayor complejidad a los ambientes computacionales; una
complejidad a la cual, en un principio, no estaban acostumbrados los
usuarios.
Cuarta Generación (mitad
de década de 1970 en adelante)
Los sistemas de la cuarta
generación constituyen el estado actual de la tecnología
Muchos diseñadores y usuarios se sienten aun incómodos, después de sus
experiencias con los sistemas operativos de la tercera generación.
Con la ampliación del uso
de redes de computadores y del procesamiento en línea los usuarios
obtienen acceso a computadores alejados geográficamente a través de varios
tipos de terminales.
Los sistemas de
seguridad se ha incrementado mucho ahora que
la información pasa a través de varios tipos vulnerables de líneas
de comunicación La clave de cifrado esta recibiendo
mucha atención han sido necesario codificar los datos personales o
de gran intimidad para que; aun si los datos son expuestos, no sean de
utilidad a nadie mas que a los receptores adecuados.
![]()
El porcentaje de
la población que tiene acceso a un computador en la década de los
ochenta es mucho mayor que nunca y aumenta rápidamente.
El concepto de
maquinas virtuales es utilizado. El usuario ya no se encuentra interesado en
los detalles físicos de; sistema de computación que esta siendo
accedida. En su lugar, el usuario ve un panorama llamado maquina virtual
creado por el sistema operativo.
Los sistemas de bases de
datos han adquirido gran importancia. Nuestro mundo es una
sociedad orientada hacia la información, y el trabajo de las bases de
datos es hacer que esta información sea conveniente accesible de una manera
controlada para aquellos que tienen derechos de acceso.
|
1.4 Clasificación de los
sistemas operativos
Con el
paso de los tiempos los sistemas operativos fueron cambiando de muchas maneras,
por ejemplo:
· Sistemas Operativos de
multitarea: con este sistema operativo
es que la computadora procesa diferentes tareas al mismo tiempo. Existen varios
tipos de multitareas. Estos sistemas Se distinguen por sus
habilidades para poder soportar la ejecución de dos o más trabajos activos (que
se están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad
Central de Procesamiento (UCP) siempre tenga alguna tarea que ejecutar,
aprovechando al máximo su utilización.
Los sistemas operativos que
soportan estas multitareas son: UNIX, Windows 95, Windows 98, Windows NT,
MAC-OS, OS/2.
· Sistema Operativo
Monotareas: los sistemas operativos
monotareas son más primitivos y es todo lo contrario a los de multitareas es
decir, solo pueden manejar un proceso en cada momento o que solo puede ejecutar
las tareas de una en una. Por ejemplo cuando la computadora está imprimiendo un
documento, no puede iniciar otro proceso ni responder a nuevas instrucciones
hasta que se termine la impresión. El sistema operativo que soporta el
monotareas es DOS.
· Sistema Operativo Monousuario: 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 este ejecutando. Estos tipos de sistemas son muy
simples, porque todos los dispositivos de entrada, salida y control dependen de
la tarea que se está utilizando, esto quiere decir, que las instrucciones que
se dan, son procesadas de inmediato; ya que existe un solo usuarios. Los
sistemas operativos que soportan el monousuario son DOS e incluso en el actual
Windows XP y sus predecesores.
· Sistema Operativo Multiusuario: Es
todo lo contrario a monousuario; y 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. Los
sistemas operativos que soportan el multiusuario son con el Linux, Windows 2003
y sus predecesores.
· Sistemas Operativos por lotes: Con
este sistema operativo procesan una gran cantidad de trabajos con poca o
ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen
todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera
de dos o más trabajos como sucede en el procesamiento en serie. Estos
sistemas,pueden tener un tiempo de ejecución muy alto, porque el procesador es
mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la
secuenciabilidad de la ejecución de los trabajos. Los sistemas operativos
que soportan por lotes son el SCOPE, del DC6600, y el EXEC II para el
UNIVAC 1107.
· Sistemas Operativos de tiempo real: este
sistema operativo de tiempo real son aquellos en los cuales no tiene
importancia el usuario, sino los procesos. Por lo general, están subutilizados
sus recursos con la finalidad de prestar atención a los procesos en el momento
que lo requieran. se utilizan en entornos donde son procesados un gran número
de sucesos o eventos.Los sistemas operativos que soportan el tiempo real
son VxWorks, Solaris, Lyns OS y Spectra.
· Sistemas Operativos de tiempo
compartido: estos sistemas Permiten la simulación de que el
sistema y sus recursos son todos para cada usuario. El usuario hace una
petición a la computadora, esta la procesa tan pronto como le es posible, y la
respuesta aparecerá en la terminal del usuario.Los principales recursos del
sistema, el procesador, la memoria, dispositivos de E/S, son continuamente
utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que
tiene el sistema dedicado para sí mismo. Los sistemas operativos que
soportan el tiempo compartido son Multics, OS/360 y DEC-10.
· Sistemas Operativos distribuidos: Este
sistema operativo permite distribuir trabajos, tareas o procesos entre un
conjunto de procesadores. Puede ser que este conjunto de procesadores esté en
un equipo o en diferentes, en este caso es trasparente para el usuario. Existen
dos esquemas básicos de éstos. Un sistema fuertemente acoplado es a aquel que
comparte la memoria y un reloj global, cuyos tiempos de acceso son similares
para todos los procesadores. En un sistema débilmente acoplado los procesadores
no comparten ni memoria ni reloj, ya que cada uno cuenta con su memoria local.
· Sistemas Operativos de red: Los
sistemas operativos de red son aquellos que mantienen a dos o más
computadoras unidas a través de algún medio de comunicación (físico o no), con
el objetivo primordial de poder compartir los diferentes recursos y la
información del sistema. El primer Sistema Operativo de red estaba enfocado a
equipos con un procesador Motorola 68000, pasando posteriormente a procesadores
Intel como Novell Netware. Los sistemas operativos más
utilizados que soportan la red son Novell Netware, Personal Netware, LAN
Manager, Windows NT Server, UNIX, LANtastic.
· Sistemas Operativos paralelos: En
estos tipos de Sistemas Operativos se pretende que cuando existan dos o más
procesos que compitan por algún recurso se puedan realizar o ejecutar al mismo
tiempo. En UNIX existe también la posibilidad de ejecutar programas sin tener
que atenderlos en forma interactiva, simulando paralelismo. Así, en lugar de
esperar a que el proceso termine de ejecutarse, regresa a atender al usuario
inmediatamente.Los sistemas operativos que soportan a los paralelos sonAlpha,
PVM, la serie AIX, que es utilizado en los sistemas RS/6000 de IBM.
1.5 Estructuras niveles o estratos de diseño
|
|
|
El nucleo o kernel se divide en 5 capas o niveles:
Nivel 1. Gestion de Memoria:Proporciona
las facilidades de bajo nivel para la gestion de memoria secundaria necesaria
para la ejecucion de procesos.
Nivel 2. Procesador: Se
encarga de activar los cuantums de tiempo para cada uno de los procesos, creando
interrupciones de hardware cuando no son respetadas.
Nivel 3. Entrada/Salida: Proporciona las facilidades para
poder utilizar los dispositivos de E/S requeridos por los procesos.
Nivel 4. Informacion o
Aplicacion o Interprete de Lenguajes: Facilita la comunicacion con los
lenguajes y el sistema operativo para aceptar las ordenes en cada una de las
aplicaciones. Ejecutando un programa el software de este nivel crea el
ambiente de trabajo e invoca a los procesos correspondientes.
Nivel 5. Control de Archivos: Proporciona la facilidad para el
almacenamiento a largo plazo y manipulacion de archivos con nombre, va
asignando espacio y acceso de datos en memoria.
El nucleo o kernel realiza diferentes funciones tales como:
·
Manejo de interrupciones.
·
Creacion y destruccion de procesos.
·
Cambio de estado de los procesos.
·
Despacho
·
Suspension y reanudacion de procesos.
·
Sincronizacion de procesos.
·
Comunicacion entre procesos.
·
Manipulacion de los bloques de control de procesos.
·
Apoyo para las actividades de entrada/salida.
·
Apoyo para asignacion y liberacion de memoria.
·
Apoyo para el sistema de archivos.
·
Apoyo para el mecanismo de llamada y retorno de un
procedimiento.
·
Apoyo para ciertas funciones de contabilidad del sistema.
El nucleo y los procesos
Una definicion mas especifica de lo que
es el nucleo ( Kernel ) de un sistema operativo es: un conjunto de rutinas
cuya mision es la de gestionar el procesador, la memoria, la entrada/salida y
el resto de procesos disponibles en la instalacion. Toda esta gestion la
realiza para atender al funcionamiento y peticiones de los trabajos que se
ejecutan en el sistema.
El esquema general de la gestion del
procesador, es el siguiente:
·
Definicion y concepto de proceso.
·
El Bloque de Control de Proceso (PCB) como imagen donde el
sistema operativo ve el estado del proceso.
·
Estados por los que pasa un proceso a lo largo de su existencia
en la computadora.
·
Operaciones que se pueden realizar sobre un proceso.
·
Clasificacion de los procesos segun su forma de ejecucion, de
carga, etc.
Por proceso debe entenderse: un programa
en ejecucion junto con el entorno asociado (registros, variables ,etc.).
|
|
![]()
1.6 Nucleo
|
|
El Kernel
consiste en la parte principal del codigo del sistema operativo, el cual se
encargan de controlar y administrar los servicios y peticiones de recursos y
de hardware con respecto a uno o varios procesos, en otras palabras, el
kernel es el corazon del sistema operativo.
![]()
Cada sistema
operativo tiene un tipo distinto de kernel: asi los Unix mas tradicionales
como FreeBSD usan un kernel " monolitico" en el que esta todo
compilado dentro, otros usan los llamados "microkernels" como el
Darwin, Hurd e incluso Windows (krnl32.dll). GNU/Linux usa un kernel
"modular" (vmlinuz); un nucleo bastante grande comparado con un
microkernel, pero que es capaz de delegar funciones en los llamados "
modulos" , partes independientes del nucleo que pueden ser incorporadas
dinamicamente si hacen falta y luego descargadas si molestan. Asi se pueden
cargar "drivers" para hardware, firewall o funciones especiales de
red (ppp, rdsi, etc) cuando se necesiten y cuando por ejemplo, se cierre la
conexion a internet, liberar la memoria que usaba ese modulo.
|
No hay comentarios:
Publicar un comentario