sistemas operativos
TRANSCRIPT
INTRODUCCIÓN
El sistema operativo, como bien es conocido, es el programa del sistema
que controla todos los recursos del computador y ofrece el soporte básico sobre el
cual se pueden escribir programas de aplicación. Un sistema de cómputo
moderno consta de uno o más procesadores, una memoria principal, un teclado,
una pantalla, interfaces de red y otros dispositivos de entrada y salida. En síntesis,
se trata de un sistema complejo. Por lo cual las computadoras vienen equipadas
con una capa de software llamada sistema operativo que es un soporte lógico
imprescindible para convertir el sistema físico de un computador en una maquina
utilizable por el usuario. Por eso su labor es administrar todos esos dispositivos y
proporcionar a los programas de usuario una interfaz más sencilla para
comunicarse con el hardware. Por este motivo en esta monografía vamos a
comenzar hablando sobre que es un sistema operativo, cuáles son sus
funciones ,objetivos y como han ido mejorando los sistemas a lo largo de los
años, esta breve historia es interesante en sí misma, a la vez que nos ofrece una
panorámica de los principios en que se basan los sistemas operativos. Nos
mostrara cómo han evolucionado los sistemas operativos, desde los primitivos
sistemas de proceso de lotes hasta los sofisticados sistemas operativos.
SISTEMAS OPERATIVOS PÁG. 1
SISTEMAS OPERATIVOS
Una computadora es un sistema formado por dos componentes importantes:
hardware y software. El hardware de la computadora es el equipo físico. El software
es la colección de programas que permiten que el hardware realice su trabajo.
El software de computadora se divide en dos amplias categorías: el sistema
operativo y los programas de aplicación (Fig. 1.1). Los programas de aplicación
utilizan el hardware de computadora para resolver los problemas de los usuarios. El
sistema operativo por otro lado, controla el acceso al hardware por parte de los
usuarios.
Fig. 1.1. Sistema de computación
SISTEMAS OPERATIVOS PÁG. 2
SISTEMA DE COMPUTACIÓN
HARDWARE SOFTWARE
SISTEMA OPERATIVO
PROGRAMAS DE APLICACIÓN
1. DEFINICIÓN
Un sistema operativo es tan complejo que es difícil dar una simple definición
universal. En vez de ello, he aquí algunas definiciones comunes:
Un sistema operativo es una interfaz entre el hardware de una computadora
y el usuario (programas o personas).
Un sistema operativo es un programa (o una serie de programas) que facilita
la ejecución de otros problemas.
Un sistema operativo actúa como un gerente general que supervisa la
actividad de cada componente en el sistema de computación. Como
gerente general1, el sistema operativo revisa que los recursos de hardware y
software se utilicen de manera eficiente y cuando existe un conflicto al usar
un recurso, el sistema operativo actúa como mediador para resolverlo.
Entonces podemos dar la siguiente definición:
1 Esta es una comparación de un sistema operativo con la realidad, para entender y comprender su función.
SISTEMAS OPERATIVOS PÁG. 3
Un SISTEMA OPERATIVO es una interfaz entre el hardware de una computadora y el usuario (programas o personas) que facilita la ejecución de otros programas y el acceso a recursos de hardware y software.
2. FUNCIONES Y OBJETIVOS DE LOS SISTEMAS
OPERATIVOS.
Puede considerarse que un sistema operativo tiene tres objetivos o lleva a cabo
tres funciones:
COMODIDAD: Un sistema operativo hace que un computador sea más
cómodo de utilizar.
EFICIENCIA: Un sistema operativo permite que los recursos de un sistema
informático se aprovechen de una manera más eficiente.
CAPACIDAD DE EVOLUCIÓN: Un sistema operativo debe construirse de
modo que permita el desarrollo efectivo, la verificación y la introducción de
nuevas funciones en el sistema y, a la vez, no interferir en los servicios que
brinda.
A continuación se van a tratar estos tres aspectos de forma mas detallada de los
sistemas operativos:
2.1. EL SISTEMA OPERATIVO COMO INTERFAZ
USUARIO/COMPUTADORA.
El hardware y el software que se utilizan para proveer de aplicaciones a los
usuarios pueden contemplarse de forma estratificada o jerárquica, como se muestra
en la fig. 2.1. Al usuario de estas aplicaciones se le llama usuario final y,
generalmente, no tiene que ocuparse de la arquitectura del computador. Por tanto,
el usuario final ve al sistema informático en términos de aplicaciones. Las
aplicaciones pueden construirse con un lenguaje de programación y son
desarrolladas por programadores de aplicaciones. Para facilitar esta tarea, se
ofrecen una serie de programas de sistemas.
SISTEMAS OPERATIVOS PÁG. 4
Algunos de estos programas se denominan utilidades e implementan funciones
muy utilizadas que ayudan a la creación de los programas, la gestión de los archivos
y el control de los dispositivos de E/S (Entrada y Salida). Por eso el programa de
sistemas más importante es el sistema operativo. El sistema operativo oculta el
programador los detalles del hardware y le proporciona una interfaz cómoda para
utilizar el sistema. Actúa como mediador, facilitándole al programador y a los
programas de aplicación el acceso y uso de todas esas características y servicios.
De forma resumida, un sistema operativo ofrece servicios en las áreas
siguientes:
Creación de programas: El sistema operativo ofrece una variedad de
características y servicios tales como los editores y los depuradores
(debuggers), para ayudar al programador en la creación de programas.
Ejecución de programas: Para ejecutar un programa se necesita un cierto
número de tareas. Las instrucciones y los datos se deben cargar en la
memoria principal, los archivos y los dispositivos de E/S se deben inicializar
y se deben preparar otros recursos. El sistema operativo administra todas
estas tareas para el usuario.
Acceso a los dispositivos de E/S: Cada dispositivo de E/S requiere un
conjunto propio y peculiar de instrucciones o de señales de control para su
funcionamiento. El sistema operativo tiene en cuenta estos detalles de
modo que el programador pueda pensar en forma de lecturas y escrituras
simples.
Acceso controlado a los archivos: En el caso de los archivos, el control
debe incluir una comprensión, no solo de la naturaleza del dispositivo de
E/S (controlador de disco, controlador de cinta) sino del formato de los
archivos y del medio de almacenamiento. Una vez más, es el sistema
operativo el que se encarga de los detalles.
SISTEMAS OPERATIVOS PÁG. 5
USUARIO FINAL
PROGRAMAS DE APLICACIÓN
UTILIDADES
SISTEMA OPERATIVO
DISEÑADOR DEL SISTEMA OPERATIVOHARDWARE DE LA COMPUTADORA
PROGRAMADOR
Fig. 2.1. Niveles y vistas de un sistema operativo
Acceso al sistema: En el caso de un sistema compartido o público, el
sistema operativo controla el acceso al sistema como un todo y a los
recursos específicos del sistema. Las funciones de acceso pueden brindar
protección, a los recursos y a los datos, ante recursos no autorizados y debe
resolver los conflictos en la propiedad de los recursos.
Detección y respuesta a errores: Cuando un sistema informático está en
funcionamiento pueden producirse varios errores. Entre estos se incluyen los
errores internos y externos del hardware, tales como los errores de la
memoria, fallos o mal funcionamiento de dispositivos y distintos tipos de
errores de software, como el desbordamiento aritmético, el intento de
acceder a una posición prohibida de memoria y la incapacidad del sistema
operativo para satisfacer la solicitud de una aplicación.
Contabilidad: Un buen sistema operativo debe recoger estadísticas de
utilización de los diversos recursos y supervisar los parámetros de
rendimiento tales como el tiempo respuesta.
SISTEMAS OPERATIVOS PÁG. 6
2.2. EL SISTEMA OPERATIVO COMO ADMINISTRADOR
DE RECURSOS
Un computador es un conjunto de recursos para el traslado, almacenamiento
y proceso de datos y para el control de estas funciones. El sistema operativo es el
responsable de la gestión de recursos.
PREGUNTA: ¿Se puede afirmar que el sistema operativo es el que controla
el traslado, almacenamiento y proceso de los datos?
Desde un punto de vista la respuesta es afirmativa: administrando los recursos del
computador, el sistema operativo tiene el control de las funciones básicas de la
misma. Pero este control se ejerce de una manera curiosa. Normalmente se piensa
en un mecanismo de control como algo externo a lo controlado, o, al menos como
algo distinto y una parte separada de lo controlado. Este no es el caso de un
sistema operativo, que no es habitual como mecanismo de control en dos aspectos:
El sistema operativo funciona de la misma manera que el software normal de
un computador, es decir, es un programa ejecutado por el procesador.
El sistema operativo abandona con frecuencia el control y debe depender del
procesador para recuperarlo.
El sistema operativo es, de hecho, nada más que un programa del compilador2.
Como otros programas de computador, da instrucciones al procesador. La diferencia
clave está en el propósito del programa.
2 Una cantidad creciente de sistemas operativos toma partido cada vez más por el
firmware en vez de por el software. Esto no altera los argumentos de modo sensible.
SISTEMAS OPERATIVOS PÁG. 7
DISPOSITIVOS DE E/SMemoria
Software del sistema
operativoProgramas y
datos
Procesador
Controlador de E/S
Controlador de E/S
Controlador de E/S
Procesador
S.OPROGRAMAS
DATOS
La figura 2.2 propone los recursos principales que son administrados por el sistema
operativo. Una parte del sistema operativo está en la memoria principal. En esta
parte está el núcleo (kernel), que incluye las funciones utilizadas con más frecuencia
en el sistema operativo y, en un momento dado, puede incluir otras partes del
sistema operativo que estén en uso. El resto de la memoria principal contiene datos
y otros programas de usuario. Como se verá, la asignación de este recurso (la
memoria principal) es controlada conjuntamente por el sistema operativo y por el
hardware de gestión de memoria en el procesador.
FIGURA 2.2 El sistema operativo como administrador de recursos
3. HISTORIA Y EVOLUCIÓN
SISTEMAS OPERATIVOS PÁG. 8
Años 40
A finales de los años 1940, con lo que podríamos llamar 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
hacía en lenguaje de máquina.
Años 50
A principios de los años 50 con el objeto de facilitar la interacción entre persona y
computador, 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.
SISTEMAS OPERATIVOS PÁG. 9
Procesamiento por lotes
Como solución para optimizar el tiempo de montaje surgió la idea de agrupar los
trabajos en lotes, en una misma cinta o conjunto de tarjetas, 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, el buffering y el spooling.
Sistemas operativos desarrollados:
En esta etapa estarían COMPRENDIDOS :
GM OS: Desarrollado por general motors para el IBM 701.
Input Output System: Desarrollado por general motors y fuerza aérea de los
estados unidos para el IBM 704.
FORTRAN Monitor System: Desarrollado por la aviación norteamericana
para IBM 709.
SAGE: primer sistema de control en tiempo real, desarrollado para IBM
AN/FSQ7
SOS: desarrollado por IBM SHARE Users Group para IBM 709.
Años 60
SISTEMAS OPERATIVOS PÁG. 10
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 computadores. Para ello se utilizaban técnicas de lo más diversas
entre ellas podemos mencionar a la multiprogramación pero no solo se integraron
términos sino que también se introdujo el concepto de sistemas operativos de
tiempo compartido y tiempo real.
Multiprogramación
Multiprogramación es un término que significa que muchos programas que no están relacionados unos con otros pueden residir en la memoria de una computadora y tomar turnos usando la unidad central de procesamiento. La sección que permite la multiprogramación en un sistema operativo se denomina Kernel, éste software consiste en un numero de procedimientos que llevan a cabo funciones como crear tareas, decidir cual tarea correrá en un momento dado, proveyendo un mecanismo para cambiar al procesador de una tarea a otra y provee formas primitivas de acceso controlado a recursos compartidos.
El concepto de multiprogramación nació desde la observación que las computadoras gastaban mucho de su tiempo esperando a los dispositivos periféricos ya sea para tomar o guardar datos. Al principio de la computación los
SISTEMAS OPERATIVOS PÁG. 11
Eevolucion de los S.O en los años 60
Sistemas operativos
Tiempo Real Tiempo Compartido
Multiprogramación Multiprocesador
dispositivos periféricos eran bastante lentos (cintas de papel, cintas magnéticas y teletipos) unos 10 caracteres por segundo era una velocidad muy común. A pesar de que los dispositivos periféricos actualmente han incrementado su velocidad considerablemente también lo han hecho las computadoras, por lo tanto incluso hoy la diferencia de velocidad relativa entre periféricos es casi la misma y por tanto el mismo problema sigue siendo de relevancia.
A finales de los años 60 y los principios de los años 70 las computadoras que hoy en día tendrían un modesto poder en comparación con los estándares actuales, eran muy costosas. Por lo tanto era de mucha importancia sacar el máximo partido de aquellas maquinas; esperar por una operación de Entrada/Salida era tiempo improductivo. A partir de entonces empezó a aparecer sistemas los cuales podían manejar el trabajo de alguien mientras otra operación estaba esperando una Entrada/Salida en otro recurso que no estaba disponible cuando se hizo la petición del mismo. El software que permitió la ordenada planificación de los trabajos es el entorno conocido como sistema operativo multiprogramación. Tal software también provee abstracción y control de acceso. Colectivamente la provisión de estos dos aspectos es lo que se deberá llamar un sistema operativo.
Multiprocesador
Se denomina multiprocesador a un computador que cuenta con dos o más microprocesadores (CPUs).Gracias a esto, el multiprocesador puede ejecutar simultáneamente varios hilos pertenecientes a un mismo proceso o bien a procesos diferentes.
Los ordenadores multiprocesador presentan problemas de 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:
SISTEMAS OPERATIVOS PÁG. 12
Sistemas operativos de tiempo real.
Un sistema operativo en tiempo real procesa las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. Este tipo tiene relación con los sistemas operativos monousuarios, ya que existe un solo operador y no necesita compartir el procesador entre varias solicitudes. Su característica principal es dar respuestas rápidas; por ejemplo en un caso de peligro se necesitarían respuestas inmediatas para evitar una catástrofe. Este tipo sistemas operativos presentan también características como:
Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.
Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo real., aplicaciones militares, etc.
El objetivo es proporcionar rápidos tiempos de respuesta Procesa ráfagas de miles de interrupciones por segundo sin perder un solo
suceso. La gestión de memoria menos exigente que tiempo compartido, usualmente
procesos son residentes permanentes en memoria.
Sistemas operativos de tiempo compartido
SISTEMAS OPERATIVOS PÁG. 13
Arquitecturas que solucionan el
problema
La arquitectura NUMA
Cada procesador tiene acceso y
control exclusivo a una parte de la
memoria.
La arquitectura SMP
Todos los procesadores
comparten toda la memoria
El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por más de una persona al mismo tiempo. El tiempo compartido ejecuta programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es común en la mayoría de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras más grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realización de múltiples tareas por un solo usuario. Podemos destacar también la presencia de otras características como:
Populares representantes de sistemas multiprogramadores y multiusuarios, ejemplo: sistemas de diseño asistido por ordenador, procesamiento de texto, etc.
Dan la ilusión de que cada usuario tiene una máquina para sí. La mayoría utilizan algoritmos de reparto circular. Los programas se ejecutan con prioridad rotatoria que se incrementa con la
espera y disminuye después de concedido el servicio. Evitan la monopolización del sistema asignando tiempos de procesador. La gestión de memoria proporciona protección a programas residentes. La gestión de archivo debe proporcionar protección y control de acceso
debido a que pueden existir múltiples usuarios accediendo a un mismo archivo.
Años 70
Debido al avance de la electrónica, pudo empezar 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 lo
relativo a lenguajes de programación, es de señalar la aparición de Pascal y C, el
último de los cuales se creó específicamente para reescribir por completo el código
del sistema operativo Unix, convirtiéndolo en uno de los pocos sistemas operativos
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.
SISTEMAS OPERATIVOS PÁG. 14
Hemos visto que se desarrollaron gran cantidad de sistemas pero lo que en realidad
se pretendía era solucionar inconvenientes y problemas que generalmente se
suscitaban este tipo de sistemas.
Principales problemas de sistemas
operativos antiguos
Principales características de sistemas
operativos desarrollados (70)
Sistemas grandes y costosos Menos Grandes pero igual costosos
Formaban una capa entre el hardware
y el usuario
Amplia capa de software entre el
usuario y la máquina.
Gran consumo de recursos Se liberó el uso de algunos recursos.
Ocupaban grandes espacios de
memoria principal y secundaria
Ocupaban menos espacios en la
memoria principal
Ahora presentamos una lista pequeña de los sistemas operativos desarrollados
durante esta época ahí se podrá constatar las características anteriormente
mencionadas en el cuadro comparativo de arriba.
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
sistemas operativos de tiempo compartido, que implementó un solo nivel de
almacenamiento para el acceso a los datos, desechando la clara distinción entre los
ficheros y los procesos en memoria, y uno de los primeros sistemas
multiprocesador.
SISTEMAS OPERATIVOS PÁG. 15
MVS (Multiple Virtual Storage):
Fue el sistema operativo más usado en los modelos de mainframes -ordenadores
grandes, potentes y caros usados principalmente por grandes compañías para el
procesamiento de grandes cantidades de datos- System/370 y System/390 de IBM,
desarrollado también por IBM y lanzado al mercado por primera vez en 1974. Como
características destacables, permitía la ejecución de múltiples tareas, además de
que introdujo el concepto de memoria virtual y finalmente añadió la capacidad de
que cada programa tuviera su propio espacio de direccionamiento de memoria, de
ahí su nombre.
CP/M (Control Program/Monitor):
Desarrollado por Gary Kildall para el microprocesador 8080/85 de Intel y el Zilog
Z80, salió al mercado en 1976, distribuyéndose en disquetes de ocho pulgadas. Fue
el SO más usado en las computadoras personales de esta década. Su éxito se
debió a que era portátil, permitiendo que diferentes programas interactuasen con el
hardware de una manera estandarizada.
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 tiempos se dejo un poco de lado el rendimiento y se buscó más que el
sistema operativo sea amigable, surgiendo los menús, e interfaces graficas. 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 utilizando lenguajes ya existentes, como Smalltalk o C, y
nacieron otros nuevos, de los cuales se podía destacar: C++ y Eiffel dentro de la
categoría “orientado a objetos”, y Haskell y Miranda en el campo de la programación
declarativa.
SISTEMAS OPERATIVOS PÁG. 16
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 ésta época dos sistemas operativos eran los mayoritarios: MS-DOS, escrito por
Microsoft para IBM PC y otras computadoras que utilizaban el CPU con
microprocesador Intel 8088 y sus sucesores.
Veamos a continuación los sistemas operativos más conocidos en esta época:
1.-Apple Macintosh
Su lanzamiento se produjo en enero de 1984, al precio de 2495 dólares. Muchos
usuarios, al ver que estaba completamente diseñado para funcionar a través de una
GUI (Graphic User Interface), acostumbrados a la línea de comandos, lo tacharon
de juguete. A pesar de todo, el Macintosh se situó a la cabeza en el mundo de la
edición a nivel gráfico.
2.-MS-DOS
En 1981 Microsoft compró un sistema operativo llamado QDOS que tras realizar
algunas 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 y
modificaciones hasta llegar a la versión 7.1, a partir de la cual MS-DOS dejó de
existir como tal y se convirtió en una parte integrada del sistema operativo Windows.
3.-Microsoft Windows:
A mediados de los años 80 se crea este sistema operativo, que es una familia de
sistemas operativos propietarios desarrollados por la empresa Microsoft
Corporation, fundada por Bill Gates y Paul Allen, 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. 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
SISTEMAS OPERATIVOS PÁG. 17
é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 Vista, que, actualmente, tiene muchas críticas. Ahora está en
desarrollo el sistema operativo Windows 7, que será una especie de "actualización"
a Windows Vista, sacando novedades y mejorando problemas de incompatibilidad,
rendimiento.
AÑOS 90
En esta época surgieron los siguientes acontecimientos:
Aparición Computo Paralelo (Teraflops).
PC’s poderosas (1.5 GigaHertz), Computadoras Multimedia.
Redes de Comunicación de distancia mundial, con envió de imágenes,
grandes cantidades de datos, audio y video.
World Wide Web.
Notebooks utilizando tecnologias de comunicación inalámbrica: Computo
Móvil.
Cómputo Embebido y Robótica.
SISTEMAS OPERATIVOS PÁG. 18
GNU/ LINUX
La idea de un Sistema Operativo Libre para la humanidad nace en 1984, impulsada
por Richard Stallman, ex-empleado del MIT. Motivado por esta idea comienza la
construcción y desarrollo de las herramientas elementales que componen un
Sistema Operativo, a esta parte del desarrollo del Sistema Operativo se le conoce
como proyecto GNU. En esta etapa Richard Stallman cuenta con la colaboración de
miles de programadores a nivel mundial. En 1991 aparece la primera versión del
núcleo Linux. Creado por Linus Torvalds, pero antes de que este apareciera ya
existía la mayoría de las herramientas que componían al Sistema Operativo, pero
aun así el núcleo Linux tiene una importancia fundamental para el proyecto, es tal la
importancia de este que el proyecto termina llamándose GNU/Linux, dando un 50%
de importancia a ambas partes.
Este sistema es similar a 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.
4. COMPONENTES
4.1 ADMINISTRADOR DE MEMORIA
Para ejecutar un proceso, éste debe encontrarse en memoria principal.
Como sabemos para mejorar el aprovechamiento de la CPU, ésta se reparte entre
varios procesos, por lo tanto, también habrá que repartir la memoria principal. A la
parte del sistema operativo que se ocupa de gestionar la memoria se le denomina
Gestor o administrador de Memoria. Su cometido consiste en llevar la cuenta de las
partes de memoria que se están utilizando y las que están libres, así como de
gestionar el trasvase de información entre la memoria principal y la secundaria
cuando la memoria RAM no sea suficientemente grande para acoger a todos los
SISTEMAS OPERATIVOS PÁG. 19
procesos. Una de las responsabilidades de un sistema de computación moderno es
la administración de memoria, el cual se refiere a los distintos métodos y
operaciones que se encargan de obtener la máxima utilidad de la memoria,
organizando los procesos y programas que se ejecutan de manera tal que se
aproveche de la mejor manera posible el espacio disponible. La administración
básica de los sistemas se puede dividir en dos clases, los que trasladan procesos
entre la memoria y el disco durante la ejecución (intercambio y paginación) y los que
no lo hacen.
Su obligación es:
De mantener a tanto de que partes de la memoria están en uso y cuáles no.
Asignar a la memoria a los procesos cuando la necesitan y liberarla cuando
terminan.
Administrar los intercambios entre la memoria principal y el disco cuando la
primera es demasiado pequeña para contener todos los procesos.
Pero como el software parece estar creciendo con rapidez que la memoria, por
lo que es posible que se siempre se necesite una administracion de memoria
eficiente.
Así, tenemos que en la gestión de memoria se deben perseguir los siguientes
objetivos:
Protección
Si varios procesos comparten la memoria principal, se debe asegurar que ninguno
de ellos pueda modificar posiciones de memoria de otro proceso. Por lo cual debe
disponerse de un sistema de permisos de acceso que especifique los derechos que
tiene cada proceso en el acceso a zonas de memoria de otros procesos.
compartimiento de la memoria
El cual parece estar en contradicción con la protección, pero es que a menudo
también es necesario que varios procesos puedan compartir y actualizar estructuras
de datos comunes, por ejemplo, en un sistema de bases de datos.
Reubicación
SISTEMAS OPERATIVOS PÁG. 20
La multiprogramación requiere que varios procesos residan simultáneamente en
memoria. Lo que no se puede saber antes de llevarlo a memoria es la dirección
absoluta en la que se va a cargar el proceso, por lo que no es práctico utilizar
direcciones absolutas en el programa. En su lugar, es preferible realizar
direccionamientos relativos para permitir que un programa pueda ser cargado y
ejecutado en cualquier parte de la memoria.
Organización de la memoria
La memoria se debe organizar tanto física como lógicamente.
Si una gestión de memoria pudiera proporcionar varios espacios de direcciones,
cada estructura lógica podría ser una entidad independiente
Los sistemas de gestión de memoria pueden dividirse en dos clases: los que
mueven los procesos entre memoria principal y secundaria (intercambio y
paginación), y los que no lo hacen. Tanto el intercambio como la paginación son
mecanismos originados por la insuficiencia de memoria principal para contener
todos los procesos en memoria simultáneamente.
SISTEMAS OPERATIVOS PÁG. 21
En resumen:
La gestion de memoria debe proporcionar:
PROTECCION: Permisos de acceso
COMPARTIMIENTO de la informacion
REUBICAIÓN para los sitemas multiprogramados
ORGANIZACIÓN DE LA MEMORIA:
SISTEMAS OPERATIVOS PÁG. 22
Los programas crecen mucho
Se necesita mucha
memoria
Los sistemas suelen ser multiusuario
Fisica:
Monoprogramación
Multiprogramacion con particiones fijas
Virtual:
Multiprogramación: paginación y segmentación
Memoria virtual: paginación segmentación.
5.1. MONOPROGRAMACIÓN
La monoprogramacion pertenece al pasado, a los primeros sistemas
operativos pero vale la pena mencionarlo ya que nos ayudara a comprender la
multiprogramación; en la monoprogramación se divide en dos partes:uno para el
sistema operativo y otra para el programa a ejecutar; ya que la mayor parte de la
capacidad de memoria se dedica a un solo programa,unicamente se necesita una
pequeña parte de la capacidad de memoria para alojar al sistema operativo.En esta
configuacion todo programa debe estar en la memoria para su ejecución y hasta que
no finalice ese programa no puede empezar a ejecutarse otro.
Las funciones que realiza un SO monoprogramación son:
Siempre que un programa realiza una operación de E/S hace una llamada al
sistema para que éste genere la instrucciones máquina concretas de la E/S.
Cuando finaliza una operación de E/S, el periférico correspondiente genera
una interrupción que provoca la llamada al SO y continúa con la ejecución
del programa.
Cuando acaba la ejecución del programa, el ordenador queda listo para
aceptar uno nuevo.
Desventajas:
Se desaprovecha la memoria principal: ésta sólo se ocupa parcialmente.
Se desaprovecha el procesador: siempre que hay una operación de E/S,
éste no se utiliza.
Los periféricos están infrautilizados: el programa en ejecución en un instante
dado sólo puede utilizar uno de los recursos hardware.
SISTEMAS OPERATIVOS Pág. 23
El esquema de administración de memoria más sencillo posible es ejecutar sólo
un programa a la vez, compartiendo la memoria entre ese programa y el sistema
operativo. Como se muestra en la Figura 5.1
FIGURA 5.1. Monoprogramación
El administrador de memoria entra en accion justo aquí, ya que carga el
programa en la memoria, lo ejecuta y lo reemplaza en el programa siguiente.Sin
embargo hay varios problemas con esta tecnica:
El programa debe caber en la memoria.Si el tamaño de la memoria es menor
que el tamaño del programa, este no se puede ejecutarse.
Cuando un programa esta en ejecucion ,ningun orto programa puede
ejecutarse. Durante su ejecución, un programa a menudo necesita recibir
datos de dispositivos de entrada y enviar datos a los dispositivos de salida.
Los didpositivos de entrada/salida en realidad son comparados con el CPU.
Asi cuando se lleva acabo las operaciones de entrada/salida el dispositivo
esta inactivo.no puede atender a otro programa porque este otro no esta en
la memoria.
SISTEMAS OPERATIVOS Pág. 24
Memoria
Sistema operativo
Programa y datos
5.2 MULTIPROGRAMACIÓN
|En la multiprogramación, la memoria permite que dos o más programas
ocupen la misma unidad de memoria principal y que sean ejecutados al mismo
tiempo en la unidad central de proceso o CPU. Los cuales se ejecutan
concurrentemente en el CPU, pues os programas son alternados. Así por ejemplo
mientras se ejecutan operaciones de entrada y salida de un programa, la unidad
central de proceso puede ocuparse en realizar operaciones distintas de las de E/S
pertenecientes a otros programas. La multiprogramación se controla a través del
sistema operativo, el cual observa los programas y los vigila hasta que estén
concluidos. Como se muestra en la Figura 5.2.
FIGURA 5. 2. Multiprogramación
SISTEMAS OPERATIVOS Pág. 25
Aporta las siguientes ventajas:
Permite varios procesos en ejecución.
Permite el servicio interactivo simultáneo a varios usuarios de manera
eficiente.
Aprovecha los tiempos que los procesos pasan esperando a que se
completen sus operaciones de E/S
Aumenta el uso de la CPU.
Las direcciones de los procesos son relativas, el programador no se
preocupa por saber en dónde estará el proceso dado que el sistema
operativo es el que se encarga de convertir la dirección lógica en física.
Desde la decada de 1960, la multiprogramación ha sufrido varias mejoras que se
pueden ver en la figura 5.3. De la cual dos técnicas pertenecen a la categoria de no
intercambio; esto significa que el programa permanece en la memoria durante su
ejecución. Las otras dos tecnicas pertenecen a la categorias de intercambio. Esto
significa que, durante su ejecución,el programa puede intercambiarse entre la
memoria y el disco una o mas veces.
FIGURA 5.3 categorias de la multiprogramación
SISTEMAS OPERATIVOS Pág. 26
Multiprogramación
No intercambio Intercambio
Particionamiento Paginación Paginación bajo demanda
Segmentación bajo demanda
CPU PROGRAMA 1
5.2.1. PARTICIONAMIENTO
La primera técnica usada en la multiprogramación se llama particionamiento.
Bajo este esquema, la memoria se divide en secciones de longitud variable. Cada
sección o partición aloja un programa. El CPU alterna entre los programas.
Comienza con un programa. Ejecuta algunas instrucciones hasta que se encuentre
una operación de entrada/salida o el tiempo asignado a ese programa expira. El
CPU guarda la dirección de la localidad de memoria donde se ejecutó la ultima
instrucción y se traslada al siguiente programa. El mismo procedimiento se repite
con el segundo. Después que se han atendido todos los programas, el CPU regresa
al primer programa. (Figura 5.4)
FIGURA 5.4. Particionamiento
SISTEMAS OPERATIVOS Pág. 27
MEMORIA MEMORIA
a. El CPU inicia la ejecución del Programa 1
b. El CPU inicia la ejecución del programa 2
SISTEMA OPERATIVO
PROGRAMA 2
PROGRAMA 3
CPU
SISTEMA OPERATIVO
PROGRAMA 1
PROGRAMA 2
PROGRAMA 3
a.
b.
Con esta técnica, cada programa está completamente en la memoria y ocupa
localidades contiguas. El particionamiento mejora la eficiencia del CPU, pero aun
hay otros problemas:
El tamaño de las particiones debe ser determinado de antemano por el
administrador de memoria. Si los tamaños de partición son pequeños,
algunos programas no pueden cargarse en la memoria. Si los tamaños de
partición son grandes, podría haber algunos espacios vacios en la memoria.
Aun así si el particionamiento es perfecto cuando la computadora se inicia,
debe haber algunos espacios vacios después de que los programas se
reemplazan con otros nuevos.
Cuando hay muchos espacios vacios, el administrador de memoria puede
compactar las particiones para eliminar los espacios vacios al crear
particiones nuevas, pero esta crea una sobrecarga al sistema.
5.2.2 PAGINACIÓN
La paginación mejora la técnica del particionamiento. En la paginación se
divide en secciones de igual tamaño llamados bloques. El programa se divide en
secciones de igual tamaño llamado páginas. El tamaño de una página y un bloque
por lo general es el mismo y es de igual tamaño del bloque utilizado por el sistema
para recuperar información de un dispositivo de almacenamiento.
Una página se carga en un bloque en la memoria. Si un programa tiene tres
páginas, ocupa tres bloques en la memoria. Con esta técnica, el programa no tiene
que estar contiguo en la memoria. Dos páginas consecutivas pueden ocupar dos
bloques en la memoria no consecutivos.
SISTEMAS OPERATIVOS Pág. 28
La ventaja de la paginación sobre el particionamiento es que dos programas,
cada uno de los cuales utiliza tres bloques no continuos, pueden reemplazarse por
un programa que necesita seis bloques. No hay necesidad de que un nuevo
programa espere hasta que seis bloques contiguos estén libres antes de ser
cargados en la memoria.
La paginación mejora la eficiencia en cierto grado, pero el programa
completo aún necesita estar en la memoria antes de ser ejecutado.
5.2.3. PAGINACIÓN BAJO DEMANDA
Es similar a un sistema de paginación con intercambio. Los programas residen en
un dispositivo físico, la memoria auxiliar. Cuando se quiere ejecutar un programa, se
carga en la memoria principal. Pero, en lugar de cargar el programa completo, se
utiliza un intercambiador “perezoso”. El intercambiador perezoso nunca carga una
página en la memoria principal a menos que sea preciso. Tiene muchas ventajas.
Reduce el tiempo de intercambio y la cantidad de memoria física necesaria,
partiendo de un grado de multiprogramación más elevado.
Puede plantearse el problema de que en una instrucción se direccione a una página
que no está en la memoria central, en este caso la instrucción no se puede ejecutar
en ese momento. Esto es lo que se conoce como fallo de página.
Es decir, cuando se produce un fallo de página hay tres aspectos a tener en cuenta:
Servicio a la interrupción de página. El proceso es detenido.
Incorporación de la página. Mediante una instrucción de I/O se transfiere la
página lógica que se necesita en una página física desde una cola para ese
dispositivo auxiliar.
SISTEMAS OPERATIVOS Pág. 29
5.2.4. SEGMENTACION BAJO DEMANDA
Una técnica similar a la paginación es la segmentación bajo demanda. En la
paginación un programa se divide en páginas de igual tamaño, por lo cual no es la
manera cómo piensa un programador, ya que este piensa en términos de módulos,
no de páginas de igual tamaño. En la segmentación bajo demanda el programa se
divide en segmentos que coinciden con la idea del programador. Estos se cargan en
la memoria, se ejecutan se reemplazan por otros módulos del mismo programa o de
un programa distinto.
5.2.5. PAGINACIÓN Y SEGMENTACIÓN COMBINADAS
Tanto la paginación como la segmentación tienen sus ventajas. La paginación
elimina la fragmentación externa y de este modo, aprovecha la memoria principal de
forma eficiente. Además, puesto que los fragmentos que se cargan y descargan de la
memoria principal son de tamaño fijo e iguales, es posible construir algoritmos se
gestión de memoria sofisticados que aprovechen mejor el comportamiento de los
programas. La segmentación tiene las ventajas antes citadas, incluida la capacitación
de gestionar estructuras de datos que puedan crecer, la modularidad y el soporte de
la compartición y la protección. Para combinar las ventajas de ambas, algunos
sistemas están equipados con hardware del procesador y software del S.O.
En un sistema con paginación y segmentación combinadas, el espacio de
direcciones de un usuario se divide en varios segmentos según el criterio del
programador. Cada segmento se vuelve a dividir en varias páginas de tamaño fijo,
que tienen la misma longitud que un marco de memoria principal. Si el segmento
tiene menor longitud que la página, el segmento ocupará sólo una página. Desde el
punto de vista del programador, una dirección lógica todavía está formada por un
número de segmento y un desplazamiento en el segmento. Desde el punto de vista
de sistema, el desplazamiento del segmento se ve como un número de página dentro
del segmento y un desplazamiento dentro de la página.
SISTEMAS OPERATIVOS Pág. 30
5.3 LA MEMORIA VIRTUAL
La memoria virtual es una técnica para proporcionar la simulación de un
espacio de memoria mucho mayor que la memoria física de una máquina. Esta
"ilusión" permite que los programas se hagan sin tener en cuenta el tamaño exacto
de la memoria física.
La ilusión de la memoria virtual está soportada por el mecanismo de traducción
de memoria, junto con una gran cantidad de almacenamiento rápido en disco
duro. Así en cualquier momento el espacio de direcciones virtual hace un
seguimiento de tal forma que una pequeña parte de él, está en memoria real y el
resto almacenado en el disco, y puede ser referenciado fácilmente.
Debido a que sólo la parte de memoria virtual que está almacenada en la memoria
principal, es accesible a la CPU, según un programa va ejecutándose, la proximidad
de referencias a memoria cambia, necesitando que algunas partes de la memoria
virtual se traigan a la memoria principal desde el disco, mientras que otras ya
ejecutadas, se pueden volver a depositar en el disco (archivos de paginación).
La memoria virtual ha llegado a ser un componente esencial de la mayoría de los
S.O actuales. Y como en un instante dado, en la memoria sólo se tienen unos pocos
fragmentos de un proceso dado, se pueden mantener más procesos en la memoria.
Es más, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se
descargan de la memoria. Sin embargo, el S.O debe saber cómo gestionar este
esquema.
Es una técnica que permite la ejecución de procesos que pueden no estar
completamente en memoria o sea que los programas pueden ser enviados a la
memoria física. Esto libera a los programadores de la preocupación por las
limitaciones del almacenamiento en memoria. No obstante la memoria virtual no es
fácil de implementar.
La capacidad de ejecutar un programa que se encuentra parcialmente en memoria
física tendría varias ventajas:
SISTEMAS OPERATIVOS Pág. 31
Un programa ya no estaría restringido por la cantidad de memoria física
disponible. Los usuarios podrían escribir programas para un espacio de
direcciones virtuales muy grande, simplificando las labores de programación.
Como cada programa del usuario ocuparía menos memoria física, podrían
ejecutarse más programas al mismo tiempo, aumentando la utilización de la
UCP y la productividad, pero sin incrementar el tiempo de respuesta o el
tiempo de retorno.
Se requeriría menos E/S para cargar o intercambiar cada uno de los
programas del usuario, por lo que se ejecutarían más rápidos.
De esta manera un programa en ejecución que no se encontrara totalmente en
memoria beneficiaría tanto al usuario como al sistema.
La memoria virtual es la separación de la memoria lógica del usuario de la memoria
física. Esta separación permite proporcionar a los programadores una gran memoria
virtual cuándo solo se dispone de una memoria física pequeña. La memoria virtual
facilita la tarea de programación, puesto que el programador, ya no se tiene que
preocupar por la cantidad de memoria física disponible, sino dedicarse al problema
que debe solucionar. Una consecuencia de la memoria virtual es que las
superposiciones casi desaparecen.
Generalmente la memoria virtual se implementa mediante la paginación por
demanda. La segmentación por demanda también puede usarse para proporcionar
la memoria virtual pero es más complejo, debido a que los segmentos tienen
tamaños variables.
4.2. ADMINISTRADOR DE PROCESOS
El Administrador de Procesos (Process Manager) es el responsable de crear, quitar y modificar los estados de todos los procesos. Este también proporciona información sobre el estado de procesos al resto del sistema.
Un proceso es un programa en ejecución junto con su entorno asociado (registros, variables,..). El núcleo del sistema operativo se relaciona con los procesos, creándolos, terminándolos y respondiendo a cualquier petición de servicios de estos.
SISTEMAS OPERATIVOS Pág. 32
Los estados en que pueden encontrarse los procesos los controla el sistema operativo y son transparentes al usuario.
Se dividen en:
a) Estados activos: Son aquellos que compiten por el procesador o están en condiciones de hacerlo:
En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando.
Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.
Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc.El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución.
b) Estados inactivos: Son aquellos que no pueden competir por el procesador, pero pueden volver a hacerlo si se soluciona el problema que los ha dejado “en suspenso”.
Suspendido bloqueado: proceso que ha sido suspendido y que además está a la espera de un evento para desbloquearse.
Suspendido preparado: proceso que ha sido simplemente suspendido.
Dentro de la administración de procesos encontramos algoritmos para la planificación de la CPU tales como:
a) Planificación de Plazo Fijo: En este tipo de algoritmo se programan ciertos trabajos para desarrollarse en un plazo de tiempo definido o plazo fijo, este es muy complejo dado que el usuario debe informar por adelantado las necesidades o recursos del proceso.
b) Planificación FIFO: Los procesos se mantienen en una cola listos y ordenados por tiempo de llegada y cuando un proceso pasa de bloqueado a listo pasa al último lugar en la cola. Este algoritmo no garantiza buenos resultados en cuanto al tiempo de respuesta dado que a veces los procesos largos hacen esperar largos periodos de tiempo a los procesos más cortos.
c) Planificación por Turno Rotatorio: Se mantiene en procesos listos, cada uno de ellos tiene asignado un tiempo de ejecución llamado cuanto. Si el proceso agota, se bloquea o termina antes de agotar su cuanto otro proceso pasa a ocupar la CPU. El cuanto equivale a un número fijo de ciclos de reloj.
SISTEMAS OPERATIVOS Pág. 33
PROGRAMAS
Es una serie de instrucciones no activas escritas por un programador y
almacenada en un disco. Este puede o no convertirse en tarea.
TAREAS
Un programa se vuelve una tarea partir del momento en que se selecciona
para su ejecución hasta que finaliza la misma y se convierte de nuevo en un
programa. Durante este periodo, una tarea puede o no ejecutarse. Puede residir de
un disco esperando a ser cargada en la memoria en espera de un evento de
entrada/ salida o puede residir en la memoria cuando el CPU la este ejecutando. El
programa se comporta como una tarea en todas estas situaciones. Cuando un
trabajo ha terminado de ejecutarse, se vuelve un programa y de nuevo reside en el
disco. El sistema operativo ya no gobierna el programa.
PROCESO
Un proceso es un programa en ejecución. Es un programa que ha iniciado
pero no se ha terminado. En otras palabras, un proceso es una tarea que reside en
la memoria. Se ha seleccionado entre otras tareas en espera y se ha cargado en la
a memoria. Un proceso puede ejecutarse en el momento o puede estar esperando
tiempo en el CPU. Mientras la tarea esté en la memoria, es un proceso
DIAGRAMA DE ESTADO
La relación entre un programa, una tarea y un proceso se esclarece si se considera
cómo un programa se vuelve tarea y como una tarea se vuelve proceso. Esto puede
ilustrarse con un diagrama de estado que muestra los diferentes estados de cada
una de estas entidades.
Un programa se vuelve una tarea cuando es seleccionado por el sistema operativo y
llevado al estado de espera. Permanece en un estado hasta que pueda cargarse en
la memoria.
SISTEMAS OPERATIVOS Pág. 34
Cuando hay espacio disponible en la memoria para cargar el programa total o
parcialmente, la tarea cambia al estado listo. Ahora se convierte en un proceso.
Permanece en la memoria y en este estado hasta que el CPU pueda ejecutarlo,
cambia al estado de ejecución en este momento. Cuando esta en estado de
ejecución, ocurre una de las tres cosas siguientes
El proceso se ejecuta hasta q necesita E/S.
El proceso agota su espacio de tiempo asignado.
El proceso termina.
PLANIFICADORES
El planificador de tareas
Cambia una tarea del estado de espera al estado listo, o del estado de ejecución al
estado de terminación. En otras palabras, un planificador de tareas es responsable
de crear un proceso a partir de una tarea y de terminar un proceso.
Planificador de procesos
Cambia un proceso de un estado a otro. Cambia un proceso de estado de ejecución
al estado de espera cuando el proceso está esperando que ocurra un evento.
Cambia un proceso de estado de espera al estado listo si ha expirado el tiempo
asignado.
COLAS DE ESPERA
Para manejar varios procesos y tareas, el administrador de procesos utiliza la cola
de espera (lista de espera). Asociada con cada tarea o proceso hay un bloque de
control de tareas o bloque de control de procesos que guarda información sobre esa
tarea o proceso. El administrador de proceso almacena el bloque de control de
tareas o de procesos en las colas de espera, en vez de la tarea o el proceso mismo.
El bloque de control de tarea so el bloque de control de procesos es el
representante de la tarea o el proceso en espera.
SISTEMAS OPERATIVOS Pág. 35
PROCESO DE SINCRONIZACION
La idea global que se sustenta al administrador de procesos es sincronizar distintos
procesos con diferentes recursos. Los recursos pueden utilizarse en cualquier
momento por cualquier usuario; se pueden presentar 2 situaciones: punto muerto y
privación.
Los puntos muertos
Ocurren cuando el sistema operativo no pone restricciones de recursos a los proceso y de igual manera también ocurren cuando empieza la ejecución de un proceso sin revisar primero si los recursos requeridos están listos y permite al proceso ocupar ese recurso todo el tiempo que lo desee.
Privación
Es lo opuesto al punto muerto. Puede ocurrir cuando el sistema operativo pone demasiadas restricciones a los recursos en un proceso
6.3.- ADMINISTRADOR DE DISPOSITIVOS
O Administrador de Entrada-Salida (I/O Manager) es responsable de gestionar la comunicación entre los distintos drivers de dispositivo, para lo cual implementa una interfaz bien definida que permite el tratamiento de todos los drivers de una manera homogénea, sin que intervenga el cómo funciona específicamente cada uno. Las responsabilidades del administrador de tarea son:
Monitorea constantemente cada dispositivo de entrada y salida para asegurarse de que funcione adecuadamente. También debe saber cunado un dispositivo ha terminado un proceso y está listo para tomar el siguiente en la lista.
El administrador mantiene constantemente una fila para cada dispositivo de entrada y salida o una o varias filas para dispositivos similares.
Controla las políticas de acceso a los dispositivos de entrada y salida.
SISTEMAS OPERATIVOS Pág. 36
6.4.- ADMINISTRADOR DE ARCHIVOS
Un administrador de archivos, gestor de archivos o explorador de archivos (del inglés file manager) es una aplicación informática que provee acceso a archivos y facilita el realizar operaciones con ellos, como copiar, mover o eliminar archivos donde el usuario lo quiera ubicar.
Los primeros gestores de archivos fueron creados para sistemas operativos con interfaces de usuario de símbolos. Estos gestores de archivos generalmente representaban las unidades, particiones y directorios en su distribución física real y permitían un número limitado de operaciones sobre estos recursos. El primer gestor de archivos visual que se desarrolló (aunque aún en modo texto) fue Dired, que sentó las bases para los gestores de archivos que surgieron a continuación. Con el advenimiento de las interfaces gráficas, los gestores de archivos adquirieron diferentes funcionalidades, como la habilidad de asociar tipos de archivos a programas, y facilitaron la comprensión de conceptos mediante la representación gráfica de cada recurso, identificado con un icono.
6.5.- INTERFAZ DE USUARIO
Las interfaces básicas de usuario son aquellas que incluyen elementos como menús, ventanas, teclado, ratón y algunos otros sonidos que la computadora hace, y en general, todos aquellos canales por los cuales se permite la comunicación entre el ser humano y la computadora. La mejor interacción humano-máquina a través de una adecuada interfaz (Interfaz de Usuario), que le brinde tanto comodidad, como eficiencia.
Funciones principales
Puesta en marcha y apagado. Control de las funciones manipulables del equipo. Manipulación de archivos y directorios. Herramientas de desarrollo de aplicaciones. Comunicación con otros sistemas. Información de estado. Configuración de la propia interfaz y entorno. Intercambio de datos entre aplicaciones. Control de acceso. Sistema de ayuda interactivo.
SISTEMAS OPERATIVOS Pág. 37
Tipos de interfaces de usuario
a) Según la forma de interactuar del usuario
Atendiendo a como el usuario puede interactuar con una interfaz, nos encontramos con varios tipos de interfaces de usuario:
Interfaces alfanuméricas (intérpretes de mandatos) que solo presentan texto. Interfaces gráficas de usuario (GUI, Graphics User Interfaces), las que
permiten comunicarse con el ordenador de una forma muy rápida e intuitiva representando gráficamente los elementos de control y medida.
Interfaces táctiles, que representan gráficamente un "panel de control" en una pantalla sensible que permite interaccionar con el dedo de forma similar a si se accionara un control físico.
b) Según su construcción Interfaces de hardware: Se trata de un conjunto de controles o dispositivos
que permiten la interacción hombre-máquina, de modo que permiten introducir o leer datos del equipo, mediante pulsadores, reguladores e instrumentos.
Interfaces de software: Son programas o parte de ellos, que permiten expresar nuestros deseos al ordenador o visualizar su respuesta.
SISTEMAS OPERATIVOS Pág. 38