SISTEMAS OPERATIVOS
INTRODUCCIÓN
Desde que encendemos el ordenador ya estamos
utilizando el sistema operativo. Aunque por otra parte el sistema operativo por
sí solo no tiene mucha utilidad, puesto que su función no es otra que
hacer de enlace entre el hardware de nuestra máquina y los programas
de aplicación que utilicemos:
Vamos a ver a continuación algunas definiciones de sistema
operativo, puedes tener una idea bastante completa de lo que estamos
estudiando si combinas todas estas definiciones.
• Un Sistema Operativo (SO) es un conjunto de
programas y funciones que gestionan y coordinan el funcionamiento del hardware
y software, ofreciendo al usuario una forma sencilla de comunicarse con el
ordenador.
• Puedes imaginar un sistema operativo como los
programas que hacen utilizable el hardware. El hardware proporciona la
"capacidad bruta de proceso"; los sistemas operativos ponen
dicha capacidad de proceso al alcance de los usuarios y administran
cuidadosamente el hardware para lograr un buen rendimiento.
• Los sistemas operativos son ante todo
administradores de recursos; el principal recurso que administran es el
hardware del ordenador.
• Un sistema operativo es un programa que actúa
como intermediario entre el usuario y el hardware del ordenador y su propósito
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 informático se use de manera cómoda, y el objetivo secundario es que el
hardware del computador se emplee de manera eficiente.
AUTOEVALUACION
Un sistema operativo:
a) Administra los recursos hardware de la máquina
b) Es un conjunto de programas y funciones que
gestionan y coordinan el funcionamiento del hardware y software
c) Actúa como intermediario entre el usuario y el
hardware del ordenador
d) Todas las respuestas son correctas
CARACTERÍSTICAS
Las características generales de los sistemas
operativos son las siguientes:
• Concurrencia
Consiste en la existencia de varias actividades
simultáneas y su solución.
• Compartición de recursos
Las principales razones para permitir la
compartición de recursos son la reducción de coste, reutilización, compartición
de datos, y eliminación de redundancia.
• Almacenamiento a largo plazo
Para un almacenamiento de los datos a plazo largo
se utilizarán medios no volátiles.
• Indeterminismo
El sistema operativo puede ser:
• Determinista – Un mismo programa ejecutado en
momentos diferentes produce los mismos resultados.
• Indeterminista –Tiene que responder a
circunstancias que pueden ocurrir en un orden impredecible.
• Eficiencia
El sistema operativo tiene que ejecutar rápidamente
los procesos y optimizar la utilización de recursos.
• Fiabilidad
El sistema operativo tiene que estar libre de
errores.
• Facilidad de corrección
El sistema operativo tiene que ofrecer modularidad,
buenas interfaces y documentación suficiente para facilitar las tareas, para
mejorar las prestaciones o para corregir errores.
• Tamaño reducido
Cuanta menos memoria utilice el sistema operativo,
será más eficiente.
COMPONENTES
El sistema operativo proporciona un entorno en el
cual se ejecutan los programas. Dicho entorno divide lógicamente el sistema en
pequeños módulos creando un interfaz bien definido para los programas que
se ejecutarán. A continuación revisamos algunos de los componentes que debe
incluir todo sistema operativo:
• El núcleo
Transforma los recursos reales del ordenador en
recursos estándares y cómodos de usar.
Sus funciones son:
·
Controlar las interrupciones
·
Gestionar las E/S
·
Gestionar los procesos
·
Sincronización de procesos
• La API (Interfaz de Programación de Aplicaciones)
del núcleo
Es el conjunto de servicios que ofrece el sistema a
las aplicaciones de usuarios de ese sistema. Las aplicaciones invocan estos
servicios a través de llamadas a procedimientos.
La API queda definida por lo tanto por los nombres
de estos procedimientos, sus argumentos y el significado de cada uno de ellos.
Si por ejemplo el usuario ordena guardar un dato en
memoria, se llama al procedimiento “procedimiento_guardar_dato” – que indica
los pasos a seguir para guardar ese dato en memoria.
El conjunto de servicios que ofrece el núcleo a los
procesos se denomina la API del núcleo. Está formada por procedimientos
pertenecientes al núcleo, pero que se invocan desde un proceso
cualquiera.
La invocación de uno de estos procedimientos es un
llamada al sistema.
- Los drivers para dispositivos
Un driver o controlador hace que el sistema
operativo de una computadora pueda entenderse con cualquier periférico, como es
el caso de una impresora, una placa de video, un mouse, un módem, etc. Un
driver es como un traductor entre el ordenador y el periférico.
• El sistema de archivos
Se encarga de estructurar un disco en una
estructura jerárquica de archivos y directorios.
• El intérprete de comandos (shell)
Se encarga de leer las órdenes interactivas de
usuario y ejecutar los programas que el usuario indique.
ESTRUCTURA
Objetivo: Interpretar las funciones que realizan
los niveles o capas de un Sistema Operativo
Los sistemas operativos se organizan en capas o
niveles en torno a un núcleo principal. Cada una de estas capas o niveles
realiza una función determinada y, dependiendo de esa función, tienen más o
menos prioridad. La capa principal y la de mayor prioridad es el núcleo.
Un sistema operativo se puede estructurar o dividir en cuatro capas o niveles:
• Nivel usuario
Recoge las órdenes que el usuario da al ordenador.
• Nivel supervisor
Se encarga de realizar la comunicación de cada proceso entre el sistema y el
usuario. O sea comprueba las ordenes que da el usuario.
Controla y coordina la gestión de entrada/salida de
los diferentes procesos hacia los periféricos.
• Nivel ejecutivo
Realiza la administración y gestión de la memoria. Se encarga de almacenar los
procesos en páginas, tanto en memoria principal como en disco. Ya veremos que
esta gestión es la llamada “gestión de memoria virtual”.
• Nivel núcleo
Es el que se encarga de controlar todo lo que ocurre en el ordenador. Gestionan
los procesos que llegan para ser ejecutados. Son fundamentalmente, sistemas
operativos multiusuario. Este nivel se encarga de realizar tareas básicas del
sistema, comunicación con el hardware, planificación de procesos, etc.
Las capas de un sistema operativo, relacionadas con
los niveles, son las siguientes:
Dependiendo del SO que tengamos instalado este va a
tener mas o menos niveles.
EJEMPLO:
EJEMPLO:
Vamos a ver como funcionan los niveles del SO en el
caso de que el usuario ordene poner en negrita un texto:
• La orden se pasa al “Nivel de usuario” y el nivel de usuario recoge la orden.
• Lo pasa al “Nivel supervisor” y el supervisor comprueba que esa orden es
correcta.
Ejemplo de orden incorrecta – No haber seleccionado
el texto, entonces no puede cumplir la orden porque no tiene nada que poner en
negrita.
• Se pasa al “Nivel ejecutivo” y el nivel ejecutivo
selecciona ese texto en memoria y lo prepara para ponerlo en negrita.
• El “núcleo” le comunica al microprocesador que tiene que mostrar en pantalla
el texto en negrita.
• El “microprocesador” – Ejecuta la orden, o sea pone el texto en negrita. Esa
orden consta de dos partes:
o Mostrar el texto (en negrita) en pantalla.
o Y almacenarlo en memoria ya puesto en negrita.
• El resultado lo pasa al Núcleo, este al Nivel Ejecutivo, este al Nivel
Supervisor, este al Nivel Usuario, que muestra al usuario el texto en negrita
EVOLUCIÓN HISTÓRICA
PRIMERA GENERACIÓN (1945-1955)
En esta época se utilizaba la tecnología de las
válvulas o tubos de vacío que hacían que los ordenadores fuesen enormes. El
usuario tenía que hacer todos los programas en código binario. Las máquinas
eran de un gran costo.
Estos primeros sistemas operativos se limitaban a
controlar y secuenciar la ejecución de programas y sus datos, que en aquella
época estaban escritos en tarjetas perforadas. Las tarjetas perforadas llevaban
escritas las instrucciones de programa en forma de agujeros en una cartulina,
que una máquina lectora de tarjetas comunicaba al sistema operativo. Este iba
obteniendo las diferentes instrucciones en secuencia y controlando su ejecución.
SEGUNDA GENERACIÓN (1955-1965)
En esta época aparecen:
• Los transistores que hacen que las máquinas se reduzcan de tamaño.
• Los lenguajes de bajo nivel (assembler) y el lenguaje JCL.
• Los lenguajes de alto nivel que tenían que cargar un compilador que convertía
el lenguaje en assembler de la máquina en la que se compilaba. Había que quitar
el compilador de la cinta magnética e insertar el traductor, más tarde carga el
programa objeto en memoria y lo ejecuta. Todos estos recursos aumentaban el
número de pasos que había que dar.
• Más periféricos como las unidades de cinta magnética y una mejora notable de
las impresoras. Una forma de reducir el tiempo de parada del procesador es
pasar de los dispositivos más lentos a otros más rápidos con un sistema
off-line. Si había una lectura de fichas se pasaba la información a una cinta y
el procesador leía de ella. El procesador volcaba la información sobre otra
cinta y después off-line pasaba de la cinta a la impresora. Este procesamiento,
en general es más rápido, pero para un solo programa es más lento.
Los buffer que son memorias intermedias donde pasa la información, el
dispositivo leerá del buffer, eliminando así el dispositivo off-line.
TERCERA GENERACIÓN (1965-1980)
En esta época aparece:
• La escalabilidad, que es la posibilidad de ampliar en un momento determinado
las funciones de un sistema.
• La multiprogramación, es decir, que el procesador está trabajando continuamente.
Consiste en dividir el espacio de memoria en varias partes, pudiendo tener un
programa en cada una de esas partes. Cuando hay un proceso de E/S el S.O.
comienza otro trabajo.
• Las unidades de disco. Ahora se utiliza el disco para realizar la función del
buffer. Este disco se llama spool y sólo lo utilizaba el sistema operativo.
• Los sistemas de tiempo compartido, en donde el procesador reparte su tiempo
entre los usuarios que están utilizándolo. Con el sistema de tiempo compartido
el paso de los sistemas procesamiento por lotes es más reducido.
• Los sistemas de tiempo real que funcionan
mediante una serie de sensores que tienen una respuesta inmediata. Son tiempos
de respuesta inmediata.
CUARTA GENERACIÓN (1980 - hasta nuestros días)
En esta época aparece:
• Conectividad, que permite una gran libertad de
comunicación pero hace que aparezcan problemas en la Seguridad, lo que impulsa
el desarrollo de la criptografía que intenta asegurar la privacidad, la
integridad del mensaje y la autentificación del mismo.
• El concepto de Máquina Virtual que simula
otras máquinas en una plataforma concreta (Emuladores). Esto alcanza su mayor
desarrollo con la plataforma Java que es un Lenguaje y una Máquina Virtual.
• Los Sistemas de Gestión de Bases de datos
TIPOS DE SISTEMAS OPERATIVOS
Para ver los tipos de sistemas operativos hemos de tener en cuenta el
número de usuarios que pueden utilizar el sistema. También tenemos que
considerar los procesos que dicho sistema pueda realizar a la vez: uno o
varios. Igualmente, dependerá del número de procesadores con los que cuente el
ordenador. Por último tendremos en cuenta el tiempo de respuesta del sistema. A
continuación vamos a clasificar a los sistemas operativos según esos puntos de
vista.
SEGÚN EL NÚMERO DE
USUARIOS
- MONOUSUARIO
- MUTIUSUARIO
SEGÚN EL NÚMERO DE
TAREAS (≅ PROCESOS ≅ ventanas)
- MONOTAREA (≅ monoprogramación)
- MULTITAREA (≅ multiprogramación)
SEGÚN EL NÚMERO DE
PROCESADORES (≅ Microprocesadores)
- MONOPROCESADOR (≅ MONOPROCESO)
- MULTIPROCESADOR (≅ MULTIPROCESO)
SEGÚN EL TIEMPO DE
RESPUESTA
- PROCESOS POR LOTES (BATCH)
- TIEMPO REAL (≅ REAL TIME)
- TIEMPO COMPARTIDO
SEGÚN EL NÚMERO DE USUARIOS
Según el número de usuarios que pueden acceder a un
ordenador y de acuerdo con el sistema operativo que les de servicio, nos
encontramos con los siguientes sistemas:
- MONOUSUARIO
Sólo un usuario trabaja con un ordenador. En este
sistema todos los dispositivos de hardware están a disposición de dicho usuario
y no pueden ser utilizados por otros hasta que éste no finalice su sesión.
⇒ Sólo ese usuario puede utilizar los
dispositivos hardware del ordenador: grabadora, impresora, ...
Ejemplos de sistemas operativos monousuario:
MS-DOS, Windows 95, Windows 98, Windows ME ≅
Windows Millennium Edition ≅ Windows Millenium
Edition, IBM-DOS, DR-DOS, PCOS, etc.
MULTIUSUARIO
Este tipo de sistemas se emplean especialmente en
redes ⇒ Cuando aparece la palabra “Server” indica
que es Multiusuario, pues en el servidor se crean cuentas para los diferentes
usuarios.
Varios usuarios pueden utilizar simultáneamente los recursos y dispositivos hardware del ordenador “Servidor”, bien sea:
• Por medio de varias terminales conectadas al ordenador
Los terminales 1 y 2 están compuestos de un monitor
y un teclado el cual lleva incorporado una tarjeta de red para que los usuarios
puedan conectarse al servidor.
• Mediante sesiones remotas en una red de comunicaciones
En ambos casos Cada usuario tiene una cuenta en el servidor, por lo
tanto pueden utilizar los recursos hardware del servidor.
Ejemplos de sistemas operativos multiusuario: UNIX,
Novel, Windows NT Server, Windows 2003 Server, Windows 2003 Advanced Server (Es
igual que el Windows 2003 Server pero con la posibilidad de conectar mas
terminales), VMS (Dígital), MVS (grandes equipos IBM), OS/400 (del IBM AS/400),
windows XP (no puede ser servidor), windows 2000 Profesional (no puede ser
servidor), etc.
Se pueden compartir, sobre todo, los dispositivos externos de
almacenamiento y los periféricos de salida, fundamentalmente impresoras:
SEGÚN EL
NÚMERO DE TAREAS (≅ PROCESOS ≅ ventanas)
Esta clasificación se hace atendiendo al número de
programas o procesos que puede realizar simultáneamente el ordenador o sistema
informático.
- MONOTAREA (≅ monoprogramación)
El ordenador sólo puede ejecutar un programa a la
vez. De esta forma, los recursos del sistema estarán dedicados al programa
hasta que finalice su ejecución.
Esto no impide que el sistema pueda ser multiusuario; es decir, varios usuarios
pueden intentar ejecutar sus programas en el mismo ordenador, pero de forma
sucesiva. Para ello, se tienen que establecer las correspondientes colas o
prioridades en la ejecución de los trabajos.
En este sistema, la atención del procesador estará
dedicada a un solo programa hasta que finalice.
Ejemplo de
sistema operativo monotarea: MS-DOS
- MULTITAREA (≅ multiprogramación)
El ordenador puede ejecutar varios programas o
procesos a la vez. Para ello la UCP compartirá el tiempo de uso del procesador
(≅ microprocesador) entre los diferentes
programas que se van a ejecutar.
Ejemplo de sistema
operativo multitarea: Windows NT Workstation, Windows NT Server, Windows 2000
Profesional, Windows 2003 Server, Windows 2003 Advanced Server, UNIX, Novell,
etc. En general, la mayoría son sistemas multitarea.
SEGÚN EL NÚMERO
DE PROCESADORES (≅ Microprocesadores)
Según que el ordenador cuente con uno o varios
procesadores para realizar los procesos:
- MONOPROCESADOR (≅
MONOPROCESO)
El ordenador tiene un único procesador. ⇒ Si se abren 2 programas no los puede ejecutar a la
vez. Primero ejecuta uno y luego otro, aunque como lo hace tan rápido, da la
sensación de que se están ejecutando a la vez
Todos los trabajos pasarán por él. El ordenador que tenga este sistema
operativo puede ser monousuario, multiusuario, monotarea, multitarea, etc.
Ejemplos de sistemas operativos monoprocesador: MS-DOS, Windows 95, Windows 98,
etc.
- MULTIPROCESADOR (≅
MULTIPROCESO)
El ordenador tiene varios procesadores, con objeto
de distribuir su carga de trabajo.
Otra ventaja de tener mas Mp en un ordenador, es que si se estropea uno de los
Mp, se puede seguir trabajando (por tener mas Mp).
Ejemplos de sistemas operativos multiproceso (según el ordenador y teniendo en
cuenta otras muchas condiciones): UNIX, Windows NT, Windows 2000, LINUX, etc.
Normalmente los equipos que son servidores tienen más de un procesador.
SEGÚN EL
TIEMPO DE RESPUESTA
Esta clasificación se hace teniendo en cuenta el
tiempo que tarda el sistema en obtener los resultados después de lanzar un
programa en ejecución:
- PROCESOS POR LOTES (BATCH)
Ejecuta varios procesos (programas) a la vez y
hasta que no termine con todos no muestra el resultado de cada uno de esos
procesos.
P1 P2 P3
R1 R2 R3
⇒ En los procesos por lotes, (la respuesta)
los resultados no se obtienen hasta transcurrido un tiempo.
Este proceso en lotes se utilizaba antiguamente cuando sólo había un ordenador
para 5 o 6 informáticos.
Ejemplos de sistemas operativos por lotes: Todos.
- TIEMPO REAL (≅ REAL TIME)
Ejecuta un proceso y devuelve el resultado al instante.
Luego ejecuta otro proceso y devuelve el resultado al instante.
Luego ejecuta otro proceso y devuelve el resultado al instante.
Y así sucesivamente.
P1 R1
P2 R2
P3 R3
……………
⇒ En los procesos en tiempo real, (la
respuesta) los resultados se obtienen al momento tras lanzar un proceso.
Los ordenadores que funcionan en tiempo real son más rápidos que los que
funcionan por lotes.
Este tipo de procesos en tiempo real tiene relación con los S.O. monousuario ya
que existe 1 sólo usuario y no necesita compartir el microprocesador entre
varias solicitudes.
Ejemplos de sistemas operativos en tiempo real: Todos.
- TIEMPO COMPARTIDO
Comparte el tiempo del microprocesador entre los
procesos lanzados. Cada proceso utilizará fracciones de tiempo de ejecución de
la UCP hasta que finalice. En este caso, parece que el usuario dedica la UCP
exclusivamente para él; pero esto no es cierto, ya que, aunque el usuario no lo
perciba, la UCP está dedicada a varios procesos a la vez.
Ejemplos de sistemas operativos en tiempo compartido: Todos los actuales.
En el caso de tener 2 microprocesadores (s.o. multiprocesador) – Si lanzamos 3
tareas seguirá compartiendo el microprocesador. Por lo tanto aunque haya mas de
un microprocesador, en algún momento, va a tener que trabajar en tiempo
compartido.

























No hay comentarios:
Publicar un comentario