Download Què es un sistema operativo - dpe

Document related concepts

Proceso de arranque en Linux wikipedia , lookup

Sistema operativo wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

Windows NT wikipedia , lookup

Transcript
INDICE:
1. ¿Qué es un sistema operativo?
2. Funciones del sistema operativo
2.1 El sistema operativo como gestor de recursos
2.2 El sistema operativo como ejecutor de servicios
2.3 El sistema operativo como ejecutor de los mandatos de los usuarios
3. Definición de usuario y grupo de usuarios
4. Arranque de la computadora
4.1 Arranque del hardware
4.2 Situación del sistema operativo
4.3 Arranque del sistema operativo
5. Componentes del sistema operativo
6. Gestión de procesos
7. Gestión de memoria
8 .Comunicación y sincronización entre procesos
9. Gestión de la E/S
10. Gestión de archivos y directorios
10.1 Sistema de archivos
11. Seguridad y protección
12. Interfaz del usuario del
alfanuméricas e interfaces gráficas
sistema
12.1 Interfaces alfanuméricas
12.2 Interfaces gráficas
13. Historia de los sistemas operativos
operativo:
interfaces
1. ¿Que es un sistema operativo?
El termino de maquina desnuda se utiliza para describir a una computadora que carece de
sistema operativo (SO). El término es interesante porque resalta el hecho de que una
computadora en si misma no hace nada. Una computadora solamente es capaz de repetir a
alta velocidad la secuencia de: lectura de instrucción de máquina, incremento del PC y
ejecución de la instrucción leída.
Para que una computadora realice una función determinada ha de tener en la memoria
principal un programa maquina especifico y ha de conseguir que el registro PC contenga la
dirección de comienzo del programa, es decir un programa no volátil.
La misión del sistema operativo es completar (vestir) a la maquina mediante una serie de
programas que permitan su cómodo manejo y utilización. Un sistema operativo (SO) es un
programa que tiene encomendadas una serie de funciones diferentes cuyo objetivo es
simplificar el manejo y la utilización de la computadora, haciéndolo seguro y eficiente.
2. Funciones del sistema operativo
Las funciones clásicas del sistema operativo se pueden agrupar en las tres categorías
siguientes:
-
Gestionar los recursos de la computadora
Ejecutar servicios para los programas
Ejecutar los mandatos de los usuarios
Como muestra el dibujo anterior, el sistema operativo está formado por 3 capas principales.
La capa más cercana al hardware se denomina núcleo (kernel) y es la que gestiona los
recursos del hardware del sistema y la que suministra la funcionalidad básica del sistema
operativo. Esta capa es la más permisiva.
La capa de servicios o llamadas al sistema ofrece a los programas unos servicios en
forma de interfaz de programación o API ( application programming interface ), es decir, el
API es un conjunto de funciones y procedimientos que ofrecen ciertos subprogramas para ser
utilizados por un software como una capa de abstracción ( capa de aislamiento ). Desde el
punto de vista de los programas, esta capa hace funcionar a la computadora, por lo que se
suele decir que el sistema operativo ofrece una maquina virtual a los programas . De esta
manera se facilita la elaboración de éstos, puesto que se apoyan en las funciones que le
suministra el sistema operativo.
La capa del intérprete de mandatos o Shell proporciona al usuario poder dialogar de
forma interactiva con la computadora. El Shell recibe los mandatos u órdenes del usuario, los
interpreta y si puede, los ejecuta. Puesto que el Shell se ejecuta en nivel usuario, algunos
autores consideran que no forma parte del sistema operativo.
2.1El sistema operativo como gestor de recursos
En una computadora actual suelen existir varios programas, del mismo o distintos usarios,
ejecutándose simultáneamente. Estos programas compiten por los diferentes recursos de la
computadora , siendo el sistema operativo el encargado de suministrar su asignación y uso.
Además el sistema operativo ha de garantizar la protección de los programas y ha de
suministrar información sobre el uso que se hace de los recursos.
a) Asignación de recursos
El sistema operativo es el que se encarga de asignar dichos recursos a los programas de
ejecución. Para ello, ha de mantener unas estructuras que le permitan saber que recursos
están libres y cuales están ya asignados a los programas. La asignación de los recursos
se realiza según su disponibilidad ( de los programas ) y prioridad, debiéndose resolver
los conflictos que aparecen por las peticiones simultaneas del usuario.
Otra parte importante es la recuperación de recursos cuando los programas ya no lo
necesitan. Una mala recuperación de los recursos conllevaría que el sistema operativo
considerara, por ejemplo, que ya no le queda memoria suficiente cuando, en realidad, si
la tiene. La recuperación tiene lugar cuando el programa que tiene asignado un recurso
comunica al sistema operativo que ya no lo necesita o simplemente porque el programa
ya ha concluido.
Los recursos utilizados por el sistema operativo son físicos y lógicos. Entre los
fisicos destacamos el procesador, la memoria principal y los periféricos y entre los
logicos, los archivosy los puertos de comunicación.
b) Protección
El sistema operativo es el encargado de la protección entre los usuarios del sistema. Ha
de asegurar la confidencialidad de la información y que unos trabajos no interfieran con
otros. Para conseguir este objetivo tiene que impedir que los programas puedan acceder
a los recursos asignados a otros programas.
c) Contabilidad
La contabilidad permite medir la cantidad de recursos que, a lo largo de su ejecución,
utiliza cada programa. De esta manera se puede conocer la carga que utiliza cada
recurso y saber cuantos recursos ha utilizado el usuario.
2.2 El sistema operativo como ejecutor de servicios
El sistema operativo ofrece a los programas un conjunto de servicios (llamadas al sistema)
que pueden solicitar cuando necesiten ejecutar alguna acción. El modelo de programación
que ofrece el hardware se complementa con estos servicios de software , que permite ejecutar
de forma cómoda y segura ciertas operaciones.
Los servicios se pueden agrupar en: ejecución de programas, órdenes de E/S , operaciones
sobre archivos y detección y tratamiento de errores.
a) Ejecución de programas
El sistema operativo ofrece distintos servicios para crear un ejecución así como
abortarla o pararla. También existen otros servicios para conocer o modificar la
condiciones de ejecución de los programas, y para comunicar o sincronizar unos
programas con otros.
La ejecución de programas da lugar al concepto de proceso. Un proceso se puede
definir como un programa en ejecución. El concepto de proceso es fundamental en los
sistemas operativos, puesto que tiene como ultimo objetivo crear, ejecutar, y destruir
procesos.
Para que un programa pueda convertirse en un proceso tiene que estar traducido a
código máquina y almacenado en un dispositivo de almacenamiento como el disco.
Bajo la petición del usuario, el sistema operativo creará un proceso para ejecutar el
programa . varios procesos pueden estar ejecutando el mismo programa, un ejemplo
claro es que varios usuarios pueden pedir al sistema operativo la ejecución del mismo
programa editor.
b) Órdenes de E/S
Los servicios E/S ofrecen comodidad y protección a los programas porque les proveen
de operaciones de lectura, escritura y modificación del estado de los periféricos. La
programación de las operaciones E/S es muy compleja y dependiente del hardware
especifico de cada periférico. Los servicios del sistema operativo ofrecen una gran
capacidad de abstracción de tal forma que el programador de aplicaciones no tiene que
preocuparse de esos detalles.
c) Operaciones sobre archivos
Los archivos ofrecen un nivel de abstracción todavía mayor que el de los sistemas E/S,
permitiendo operaciones como la creación, el borrado, renombrado, apertura, escritura y
lectura de archivos. Mucho de los servicios son parecidos al de las operaciones E/S
pero siempre terminan concretándose en este tipo de operaciones.
d) Detección y tratamientos de errores
Además de analizar detalladamente todas las órdenes que recibe, para comprobar si se
pueden realizar , el sistema operativo se encarga de tratar todas las condiciones de error
que detecte el hardware.
Entre las condiciones de error que pueden haber, destacamos: los errores en las
operaciones de E/S, errores de igualdad en los accesos a memoria o en los buses y
errores de ejecución en los programas, como desbordamiento, violaciones de memoria,
códigos de instrucción prohibidos, etc.
2.3 El sistema operativo como ejecutor de los mandatos de los usurarios
El sistema operativo permite que los usuarios dialoguen de forma interactiva con el sistema
gracias al intérprete de mandatos o Shell. El Shell se comporta como un bucle infinito que
está repitiendo constantemente la siguiente secuencia:
 Espera una orden del usuario. En el caso de una interfaz textual, el Shell está
pendiente de lo que escribe el usuario en la línea de mandatos. En el caso de
interfaces gráficas, el Shell esta pendiente de los eventos del ratón que
manipula el usuario y del teclado.
 Analiza la orden y en caso de que sea correcta la ejecuta ( emplea los
servicios del SO )
 Concluida la orden vuelve a la espera
a)
Archivos de mandatos
Casi todos los interpretes de mandatos pueden ejecutar archivos de mandatos, llamados
Shell scripts. Estos archivos incluyen varis mandatos totalmente equivalentes a los
mandatos que se introducen en el Terminal. Además, para realizar funciones complejas,
pueden incluir mandatos especiales de control del flujo de ejecución, como goto, for o
if.
3. Definición de usuario y grupo de usuarios
Un usuario es una persona autorizada para utilizar un sistema informático. El usuario se
autentifica mediante su nombre de cuenta y su contraseña. Realmente el sistema operativo no
asocia el concepto de usuario con el de persona física si no con un nombre de cuenta. Una
persona puede tener más de una cuenta y cada una puede ser utilizada por mas de una
persona. Internamente el sistema operativo asigna a cada usuario (cuenta) un identificador
(user identifier) y un perfil.
El sistema de seguridad de los sistemas operativos está basado en la entidad
usuario. Cada usuario tiene reservados unos derechos, para permitir realizar
operaciones. Existe un usuario superior, llamado administrador, el cual no tiene
restricción, es decir, que puede realizar todas las operaciones que le convenga sin
restricción. Los usuarios se organizan en grupos.
de cada
diversas
ninguna
ninguna
4. Arranque de la computadora
El arranque de una computadora tiene 2 fases: la fase de arranque del hardware y la fase de
arranque del Sistema operativo.
4.1 Arranque del hardware
Una computadora solo es capaz de realizar actividades útiles si cuenta con el correspondiente
programa cargado en la memoria principal. El inconveniente es que la memoria principal de
los computadores es volátil (es aquella memoria cuya información se pierde al interrumpirse
el flujo de corriente eléctrica).
Para resolver esta situación, las computadoras antiguas tenían una serie de conmutadores
que permitían introducir una a una palabras en la memoria Principal y en los registros, en
forma binaria. El usuario debía introducir un primer programa ( en binario ) que permitiese
cargar otros programas almacenados en algún soporte, como la cinta de papel.
Hoy en día, la solución que se emplea es mucho más sencilla y cómoda, pues se basa en un
programa permanentemente grabado en una memoria ROM no volátil, es decir, cuya
información no se pierde al interrumpirse el flujo de corriente eléctrica. En esta memoria
ROM se encuentra un programa de arranque que esta siempre disponible a no ser que esta
memoria pierda su información.
Cuando se arranca la computadora, se genera una señal eléctrica que carga unos valores
predefinidos en los registros. En especial, esta señal carga en el contador de programa la
dirección de comienzo del arranque de programa grabado en la memoria ROM. De esta
manera se cumplen todas las condiciones para que la computadora ejecute un programa y
realice funciones útiles.
El programa de arranque de la memoria ROM realiza 3 funciones:
_ En primer lugar, hace una comprobación de sistema que sirve para detectar sus
características ( x ejemplo, la cantidad de memoria principal disponible o los periféricos
instalados ) y comprobar si el conjunto funciona correctamente.
- Después entra en la fase de lectura y almacenamiento en memoria del programa cargador
del sistema operativo (se denomina carga a la operación combinada de leer un programa
ubicado en un periférico y de almacenarlo en memoria principal. El programa que realiza la
carga se llama cargador)
-
Finalmente, acaba separando la dirección de memoria en la que ha almacenado este
programa. El programa iniciador ROM es independiente del sistema operativo.
4.2 Situación del sistema operativo
El sistema operativo esta almacenado en una unidad de disco. El programa cargador del
sistema operativo o boot del sistema operativo se encuentra almacenado en una zona
predefinida del disco y además tiene un tama prefijado.
El programa de arranque lleva el programa cargador del sistema operativo a la memoria
principal. El programa de arranque y el sistema operativo tienen una ubicación, una dirección
de arranque y un tamaño del cargador del sistema operativo “distintos”. El programa de
arranque es independiente del sistema operativo siempre que se cumpla lo anterior, por ello la
maquina podrá soportar distintos sistemas operativos.
Para una mayor seguridad, el programa cargador del sistema operativo se encuentra situado
en una zona predeterminada en el programa de arranque ,y esta contenida por una contraseña
( palabra mágica ). De esta manera, el programa de arranque pueda comprobar que la
información contenida en la zona predeterminada contiene efectivamente el programa
cargador del sistema operativo.
4.3 Arranque del sistema operativo
El programa cargador del sistema operativo tiene objetivo llevar a la memoria principal
algunos de los componentes que forman el sistema operativo. Cuando se han cargado dichos
componentes, se pasa a una fase de iniciación que consta de las siguientes operaciones:
-
-
Comprobación del sistema. Cuando las pruebas realizadas por el hardware se han
completado por el programa de arranque, se comprueba que el sistema de archivos es
correcto. Esta operación obliga a revisar todos los directorios lo que supone un largo
tiempo de procesamiento.
Las estructuras de información propias del sistema operativo, como las tablas de
procesos, las tablas de memoria y las de E/S son establecidas.
La parte del sistema operativo que debe estar siempre en la memoria, se carga en la
memoria principal.
Se crea un proceso de inicio, así como una serie de procesos auxiliares y de demonio (es
un tipo especial de proceso informático que se ejecuta en segundo plano en vez de ser
controlado directamente por el usuario. Este tipo de programas se ejecutan de forma
continua (infinita), es decir, que aunque se intente cerrar o matar el proceso, este
continuará en ejecución o se reiniciará automáticamente).
Los procesos de inicio presentan en su terminal el mensaje de bienvenida, esperando
que un usuario arranque una sesión, para ello se tiene que escribir el nombre de su
cuenta y su determinada contraseña.
5. Componentes del sistema operativo
-
-
Gestión de procesos. Es el encargado de la creación, planificación y destrucción de
procesos.
Gestión de memoria. Es el componente encargado de saber que partes de la memoria
están libres o ocupadas, así como de la liberación de memoria según la necesiten los
procesos.
Gestión de la E/S. se encarga de facilitar el manejo de los dispositivos periféricos.
Gestión de archivos y directorios. Se ocupa del manejo de archivos y directorios y de la
administración del almacenamiento secundario.
Comunicación y sincronización entre procesos. Ofrece mecanismos para que los
procesos puedan comunicarse y sincronizarse.
Seguridad y protección. Debe encargarse de garantizar la identidad de los usuarios y de
definir lo que pueden hacer cada uno de ellos con los recursos del sistema.
6. Gestión de procesos
Un componente principal del sistema operativo es el que se encarga de la gestión de procesos,
puesto que su función consiste en generar y gestionar los procesos y tener en cuenta sus
peticiones. Un proceso se puede definir como un programa en ejecución. No hay que
confundir el concepto de programa con el concepto de proceso. Un programa no es más que
un conjunto de instrucciones de la computadora, mientras que el proceso surge cuando un
programa se pone en ejecución. Esto hace posible que varios procesos puedan ejecutar el
mismo programa al mismo tiempo. El SO es el responsable de:

Crear y destruir los procesos.

Parar y reanudar los procesos.

Ofrecer mecanismos para que se comuniquen y sincronicen.
Dependiendo del número de procesos y de usuarios que se puedan ejecutar al mismo tiempo,
un sistema operativo puede ser:
-
-
Monotarea, también llamado monoproceso: son los más primitivos, es decir, solo
pueden manejar un proceso en cada momento o que solo pueden ejecutar las tareas de
una en una. Por ejemplo, cuando la computadora esta imprimiendo un documento, no
puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la
impresión.
Multitarea o multiproceso: permite que coincidan varios procesos a la vez. El sistema
operativo se encarga de ir repartiendo el tiempo del procesador entre estos procesos.
Monousuario: los sistemas monousuarios son aquellos que nada más que pueden
atender a un solo usuario. Estos tipos de sistemas son muy simples porque todos los
dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto
quiere decir, que las instrucciones que se dan son procesadas de inmediato, ya que
existe un solo usuario.
-
Multiusuario: soporta varios usuarios trabajando simultáneamente desde varios
terminales, a su vez cada usuario puede tener activo más de un proceso, por lo que el
sistema, obligatoriamente ha de ser multitarea. Los sistemas multiusuario reciben
también el nombre de tiempo compartido, porque el sistema operativo ha de repartir el
tiempo de la computadora entre los usuarios para que las tareas de todos ellos avancen
de forma razonable.
El sistema operativo ofrece una serie de servicios que determinan la vida de un proceso. Esta
vida esta constituida por las siguientes fases: creación, ejecución y muerte del proceso.
Generalmente, los sistemas operativos ofrecen los siguientes servicios para la gestión de
procesos:
-
-
Crear un proceso. El proceso es creado por el sistema operativo cuando así lo solicita
otro proceso que se convierte en el padre del nuevo
Ejecutar un proceso. Los procesos pueden ejecutar de dos formas: mediante archivos
batch o de forma interactiva. Con los archivos batch se agrupan varios procesos en un
lote de tal manera que el usuario no intervenga. Por otro lado un proceso se puede
ejecutar de forma interactiva, Es decir, una interfaz directa (interactiva) entre el usuario
y la computadora ( interfaz gráfica ).
Muerte del proceso. Un proceso puede finalizar su ejecución por varias causas:
* a terminado de ejecutar el programa
* se produce un error en la ejecución
* el usuario da por finalizado el proceso
7. Gestión de memoria
El gestor de memoria es otro de los componentes principales del sistema operativo. Su
actividad se centra fundamentalmente en la gestión de recursos, puesto que tiene como
objetivos la gestión de la memoria, se encarga de:
-
Asigna memoria a los procesos.
Proporciona memoria a los procesos cuando la solicitan y la desvinculan cuando así lo
requieren.
Tratan los posibles errores de acceso a memoria evitando que unos procesos interfieran
en la memoria de otros.
Permiten que los procesos puedan compartir memoria entre ellos. De esta forma los
procesos pueden comunicarse entre ellos.
Gestionan los niveles de memoria y tratan los fallos en los sistemas con memoria
virtual.
Además de estas funciones el gestor de memoria, suministra los siguientes servicios: solicitan
memoria, liberan memoria y comparten memoria.
8 .Comunicación y sincronización entre procesos
Los procesos son independientes, ya que por razones de seguridad, no deben interferir unos
con otros. Sin embargo, cuando se divide un trabajo complejo en varios procesos que se
ayudan entre sí para realizar un trabajo, es necesario que se comuniquen (para transmitirse
datos y órdenes) y se sincronicen para ejecutar sus acciones. Por tanto, el sistema operativo de
be incluir servicios de comunicación y sincronización entre procesos que permita la
cooperación entre ellos.
El sistema operativo ofrece una serie de mecanismos básicos de comunicación que permiten
transferir cadenas de bytes, pero han de ser los procesos que se comunican los que interpreten
la cadena de bytes transferida. En este sentido se han de poner de acuerdo en la longitud de la
información y de los tipos de datos utilizados (idioma).
El sistema operativo ofrece también mecanismos que permiten que los procesos esperen (se
bloqueen) y se despierten (que continúen su ejecución). Estos mecanismos presentan las
siguientes fases:
-
Creación del mecanismo
Utilización del mecanismo
Destrucción del mecanismo
Todos los mecanismos de comunicación, tienen los siguientes servicios básicos:
-
Crear. Permite que el proceso soliciten la creación del mecanismo.
Enviar. Permite que el proceso emisor envíe información a otro.
Recibir. Permite que el proceso receptor reciba información de otro.
Destruir. Permite que el proceso solicite la creación o destrucción del mecanismo.
Por otro lado, la comunicación puede ser sincrona o asíncrona. En la comunicación sincronía
los dos procesos han de ejecutar los servicios de comunicación al mismo tiempo, es decir, el
emisor ha de estar en el servicio de enviar y el receptor ha de estar en el servicio de recibir.
En la comunicación asíncrona el emisor no tiene que esperar a que el receptor solicite el
servicio recibir, hace el envío y sigue con la ejecución.
9. Gestión de la E/S
El gestor de E/S debe controlar el funcionamiento de todos los dispositivos de E/S( de
todos los periféricos) para alcanzar los siguientes objetivos:
-
-
facilitar el manejo de los dispositivos periféricos. Para ello debe ofrecer una interfaz
sencilla y fácil de utilizar entre los dispositivos, y gestionar los errores que puedan
producir el acceso a estos.
Ofrecer mecanismo de protección que impidan a los usuarios a acceder sin control
(administrador) a los dispositivos periféricos ofrece a los usuarios una serie de servicios
de E/S independientemente de los dispositivos. Esta independencia se refiere a que
deben emplearse los mismos servicios y operaciones de E/S para leer aunque sean
dispositivos diferentes. Los servicios E/S son de lectura y escritura de datos. Estos
servicios pueden estar orientados a caracteres, como por ejemplo las impresoras, el
teclado, el ratón… o pueden estar orientados a bloques, como por ejemplo, memorias
externas, pen drive… El segundo caso se diferencia del primero en que la operación se
hace sobre un bloque de información con un numero fijo de caracteres.
10. Gestión de archivos y directorios
Los objetivos fundamentales del servidor de archivo son los siguientes:
-
Facilitar el manejo de los dispositivos periféricos. Para ello ofrece una visión lógica
simplificada de los mismos en forma de archivos.
Proteger a los usuarios, poniendo limitaciones a los archivos que es capaz de manejar
cada usuario (administrador).
Los servicios que abarcan el servidor de archivos son de dos tipos: los servicios dirigidos al
manejo de datos o archivos y los dirigidos al manejo de los nombres o directorios.
El servidor de archivos ofrece una visión lógica compuesta por una serie de archivos y
directorios identificados por un nombre lógico donde se pueden realizar una serie de
operaciones. La visión física incluye detalles de como están almacenados estos objetos en
los periféricos correspondientes, por ejemplo los en los discos.
Un archivo es una unidad de almacenamiento lógico no volátil( la información no se pierde
cuando desaparece el flujo de corriente) que agrupa un conjunto de información. Cada
archivo tiene una información asociada a sus características, como: tipo de archivo,
propietario del archivo, tamaño del archivo, vida del archivo (fecha y hora) y derechos de
acceso al archivo( lectura, escritura, lectura-escritura…).
10.1 Sistema de archivos
Es el conjunto de archivos incluidos en una unidad de disco. Estos almacenan programas(
en código, fuente y objeto) y datos como imágenes, textos… el sistema operativo es el
responsable de:
-
Construir y eliminar archivos y directorios
Ofrecer funciones para manipular archivos y directorios
Establecer la correspondencia entre archivos y unidades de almacenamiento
Realizar copias de seguridad
Existe diferentes sistemas de archivos, es decir, existen diferentes formas de organizar la
información que se almacenan en las memorias (normalmente los discos) de los
ordenadores. Por ejemplo existen los sistemas de archivos FAT, FAT32, EXT3, NTFS.
11. Seguridad y protección
Con la seguridad se pretende garantizar la identidad de los usuarios y definir lo que
puede hacer cada uno de ellos. El primer caso se trata bajo el término de autentificación,
cuyo objetivo es determinar que un usuario es quien dice ser. En la actualidad las
contraseñas es el método más utilizado como mecanismo de autentificación. El segundo
caso se trata mediante los privilegios, es decir, el usuario administrador determinará a los
recursos que pueden acceder cada usuario.
Por otro lado el sistema operativo se encarga de distinguir entre el uso autorizado y no
autorizado, de especificar los controles de seguridad a realizar, y fuerza el uso de los
mecanismos de protección.
12. Interfaz del usuario del sistema operativo: interfaces alfanuméricas e
interfaces gráficas
Cuando un usuario trabaja con una computadora necesita poder interactuar con elk sistema
operativo para poder llevar a cabo operaciones como ejecutar un programa o borrar un
archivo, sin necesidad de escribir un programa que realice dicha operación utilizando los
servicios del sistema operativo.
El sistema operativo, por tanto, además de asignar servicios( llamadas al sistema) a las
aplicaciones, tiene que proporcionar un interfaz de usuario que permita dar instrucciones al
sistema para realizar diversas operaciones.
Forman parte del interfaz del sistema las siguientes categorías:
- Manipulación de archivos y directorios
- Ejecución de programas
- Herramientas para el desarrollo de las aplicaciones
- Comunicación con otros sistemas
- Información de estado del sistema
- Configuración de la propia interfaz
- Intercambio de datos entre aplicaciones
- Control de acciones
12.1 Interfaces alfanuméricas
La característica principal de este tipo de interfaces es un modo de trabajo basado en lineas
de texto. El usuario, para dar instrucciones al sistema escribe en su terminal un mandato
determinado. Cada mandato esta estructurado como un nombre de mandato y unos
argumentos.
Esta forma de operar, basada en líneas de texto, viene dado por el tipo de computadoras que
se usaban en los primeros sistemas de tiempo compartido. Se trataba de teletipos
(dispositivo telegráfico de transmisión de datos) que imprimían la salida en papel y que, por
tanto, tenían un funcionamiento basado en líneas. Más tarde, la utilización de computadoras
más “sofisticadas” que, aunque seguían siendo de carácter alfanumérico, usaban una
pantalla para mostrar la información.
Sin embargo, la posibilidad de trabajar con una pantalla que mostrase información, no
cambió la forma de trabajo de la interfaz, que continuó siendo en modo línea.
12.2 Interfaces gráficas
La cima de las interfaces graficas de usuario se debe principalmente a la necesidad de
proporcionar a los usuarios no especializados, una visión sencilla de la computadora
ocultándose de toda su complejidad.
13. Historia de los sistemas operativos
Durante los años 40, se construyeron las primeras computadoras. Como ejemplo de
computadoras de este ejemplo contamos con ENIAC, financiado por el laboratorio de
investigación de los EEUU. El ENIAC era una máquina enorme con un peso de 30
toneladas y capaz de realizar 5000 sumas por segundo, 457 multiplicaciones por segundo y
38 divisiones por segundo. Otro ejemplo de computadora fue el EDVAC.
En esta etapa aun no existían sistemas operativos. El usuario debía codificar su programa a
mano y en instrucciones de línea, y debían introducirlo mediante conmutadores o tarjetas
perforadas. Las salidas se imprimían en cintas de papel, para su posterior impresión. En
caso de errores, en la ejecución de los programas, el usuario tenía que eliminarlos
examinando el contenido de la memoria.
Primera generación (años 50):
Con la aparición de las primera generación de computadoras (año 50), comienza su
explotación, puesto que ya empieza ha haber un incremento de usuarios. El tipo de
operación seguía siendo en serie, es decir, se trata de un trabajo detrás de otro, teniendo en
cada trabajo las siguientes fases:
- Instalación de cintas o fichas perforadas en los dispositivos periféricos.
- Lectura mediante un programa cargador, del programa ejecutar y de sus datos
- Ejecución del programa
- Impresión o grabación de los resultados
- Retirada de cintas, fichas y papel.
El problema básico que abordaba estos sistemas operativos primitivos era optimizar el flujo
de trabajos, minimizando el tiempo empleado en retirar un trabajo y montar el siguiente.
También empezaron a abordar el problema de la E/S.
Para minimizar el tiempo de montaje de los trabajos se agrupaban en archivos por lotes
(batch) del mismo tipo, lo que evitaba tener que montar y desmontar las cintas de los
copiladores y montadores, aumentando el rendimiento.
Segunda generación (años 60)
La multiprogramación se impuso en sistema de lotes, como una forma de aprovechar el
tiempo empleado en las operaciones de E/S. cuando un trabajo necesitaba una operación de
E/S la solicita al sistema operativo que se encarga de:
- Congelar el trabajo solicitante
- Iniciar la mencionada operación de E/S por DMA
- Pasar a realizar otro trabajo residente en memoria
También en esta época aparecen otros modos de funcionamiento muy importantes:
- Se construyen los primeros multiprocesadores
- Se introduce el concepto de independencia de dispositivo
- Comienza los sistemas de tiempo compartido, que permiten que varios usuarios trabajen de forma interactiva con la computadora desde terminales
- Aparecen, en esta época, los primeros sistemas de tiempo real.
Tercera generación (años 70)
Debido al avance de la electrónica, empezó a crearse circuitos con miles de transistores en
un centímetro cuadrado de silicio, lo que llevaría, pocos años después, a producir los
primeros sistemas integrados.
Ésta década se podría definir como la de los sistemas de propósito general y en ella se
desarrollan tecnologías que se siguen utilizando en la actualidad. Es en los años 70 cuando
se produce el boom de los miniordenadores y la informática se acerca al nivel de usuario.
En cuanto a los lenguajes de programación, destacamos la aparición de Pascal y C, el cual
se creó para volver a escribir el código del sistema operativo Unix, 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.
Se trataba de sistemas grandes 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.
Para solventar los problemas antes comentados, se realizó un costosísimo trabajo para
interponer una amplia capa de software entre el usuario y la máquina, de forma que el
primero no tuviese que conocer ningún detalle de la circuitería.
Cuarta generación (años 80)
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: MSDOS, escrito por Microsoft 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.
BIBLIOGRAFIA
- www.wikipedia.com
- www.rincondelvago.com
- www.monografias.com
libros:
- Sistemas operativos, edit. thomson paraninfo
- Sistemas operativos( versión aplicada) , edit. Mcgraw hill
- Sistemas operativos ( 3º Edición ) , edit. Mcgraw hill