Un Sistema Operativo es un programa que actúa como interfaz entre el
usuario de un computador y el hardware del mismo, ofreciendo el entorno
necesario para que el usuario pueda ejecutar programas. Su principal cometido
es facilitar el uso del sistema informático, siendo su objetivo secundario
permitir la utilización del hardware del computador en modo eficiente. Así
pues, un Sistema Operativo es el soporte lógico que controla el funcionamiento
del equipo físico, la eficiencia, fiabilidad, facilidad de mantenimiento, y un
pequeño tamaño serían las características deseables de este software.
El sistema operativo es una parte importante de todo sistema informático
que engloba a:
- El hardware: CPU, memoria y dispositivos de entrada y salida (E/S).
- El sistema operativo.
- Los programas de aplicación (compiladores, sistemas de bases de datos,
utilidades, videojuegos, programas de gestión, etc.).
- Los usuarios (personas,
máquinas u otros computadores).
Un sistema operativo es un conjunto de programas que supervisan y
controlan los programas de usuario para evitar errores y el uso inadecuado del
computador. El sistema operativo controla así mismo las operaciones de E/S,
podemos pues entender por sistema operativo a una colección de programas cuya
principal misión es gestionar los recursos del computador, y en consecuencia
será el soporte lógico que controla el funcionamiento del equipo físico
(Hardware). Los objetivos buscados por un sistema operativo son dos: eficacia
en la gestión de los recursos, y facilitar la gestión a los usuarios (interfase
usuario/máquina de fácil manejo, por ejemplo, entornos gráficos tipo Windows).
Estos objetivos no son fácilmente compatibles, si se consiguen se logra un buen
sistema operativo
Los sistemas operativos
cumplen varias funciones como por ejemplo:
Función
|
Descripción
|
Control de la ejecución de los programas
|
Para
ello acepta los trabajos, administra la manera en que se realizan, les asigna
los recursos y los conserva hasta su finalización
|
Administración de periféricos
|
Coordina y manipula los dispositivos
conectados al ordenador
|
Gestión de permisos de usuarios
|
Adjudica los permisos de acceso a usuarios y
evita que las acciones de uno afecten el trabajo que está realizando otro.
|
Control de concurrencia
|
Establece prioridades cuando diferentes
procesos solicitan el mismo recurso
|
Control de errores
|
Gestiona los errores de hardware y la pérdida
de datos.
|
Administración de memoria
|
Asigna memoria a los procesos y gestiona su
uso
|
Control de seguridad
|
Proporciona seguridad tanto para los usuarios
como para el software y la información almacenada en los sistemas
|
Manejo de software de
control del sistema informático
Existen dos tipos de programas dentro de un sistema operativo:
1. Programas de control
2. Programas de proceso.
Programas de Control
La función de los programas de control es la de controlar y mejorar el rendimiento en la forma de explotar un sistema. Existen programas que gestionan el sistema controlando el hardware. Otros programas que se encargan de encadenar los trabajes que se deben ejecutar y por último, hay programas para controlar la transmisión de datos entre la memoria y los periféricos.
Programas de Proceso
Los programas de proceso se encargan de facilitar las tareas de los programadores. Los programas de servicio, por ejemplo, resuelven problemas reiterativos como la transferencia de datos entre periféricos. Los programas traductores sirven para que los programas escritos con lenguajes de alto nivel sean traducidos al lenguaje máquina. Esta traducción equivaldría a introducir una sucesión de ceros y unos, correspondiente a cada símbolo del programa escrito en lenguaje simbólico.
Esta tarea la efectúa el propio ordenador mediante la ejecución de unos programas llamados genéricamente traductores, que, utilizando como datos de entrada las sentencias de un programa escrito en caracteres inteligibles o simbólicos (programa fuente), dan como resultado el programa escrito en código máquina que le corresponde (programa objeto).
El proceso de traducción se ejecuta una sola vez y el programa objeto obtenido puede guardarse indefinidamente para utilizarlo cuantas veces se requiera. Existen tres tipos de programas traductores de acuerdo al lenguaje en el que se ha escrito el programa fuente.
· Ensambladores
· Compiladores
· Interpretes
ENSAMBLADORES: Ya hemos visto que un programa puede ser escrito utilizando el conjunto de mnemónicos de un lenguaje ensamblador. La traducción del programa fuente la realiza un programa que se llama también ensamblador. Este traduce una instrucción del programa fuente en una única instrucción en código máquina que forma parte del programa objeto.
COMPILADORES: Los compiladores son programas encargados de traducir el programa fuente escrito en lenguaje de alto nivel, en programa objeto (lenguaje maquina). Cada instrucción del programa fuente genera una o varias instrucciones en lenguaje maquina los programas compiladores, cuando traducen una instrucción del programa fuente, analizan su sintaxis y su semántica y, si encuentran algún error, lo indican cuando termina de ejecutarse.
INTERPRETES: Son programas que traducen una instrucción de programa fuente justo en el momento en que va a ser ejecutada. La diferencia con los compiladores estriba en que estos traducen de una sola pasada el programa fuente y obtienen un programa objeto y los interpretes no generan ningún programa objeto previo a la ejecución, sino que van generando el código maquina a medida que cada instrucción va a ejecutarse. Por esta razón, los programas traducidos con intérpretes son más lentos a la hora de ejecución que los objetos producto de una compilación o ensamblaje.
PROGRAMAS DE SERVICIO: Sirven para resolver problemas complejos y reiterativos, como por ejemplo, los programas de transferencia de datos de un soporte a otro o programas de clasificación.
En un sistema de
monoprogramación todos los recursos del ordenador. CPU, memoria, E/S, etc. Se
abocan a la ejecución de un solo programa a la vez. Esto conlleva a una baja
utilización de los recursos, por ejemplo; Cuando el programa en ejecución
realiza una operación de E/S se introduce la orden precisa en el registro de
órdenes. El controlador responde a esto traduciendo esas órdenes al
dispositivo, y poniendo a uno el bit de ocupación para indicar que el dispositivo
está ocupado realizando una operación de E/S. Cuando termine la operación, el
controlador pone a cero este bit para indicar que la operación concluyó, y el
dispositivo está desocupado. Para saber cuándo termina la E/S, el programa,
después de mandar la orden, tiene que ejecutar un ciclo del siguiente estilo:
·
Leer el registro de estado
·
Mientras (el bit de ocupación esté a uno)
·
Leer el registro de estado
·
Fin Mientras
Esto nos conlleva a que en
un momento dado la CPU este realizando una acción sin ocupar la E/S
y esta última quede ociosa o bien la E/S este siendo ocupada y la CPU
revisando la finalización de algún ciclo; cómo podemos ver en la imagen
(grafico), donde los rectángulos rellenos a trazas representan el ciclo de
comprobación. Para dar una medida de la infrautilización de los recursos que
conlleva esta forma de realizar las E/S, piénsese que en el tiempo en que una
impresora imprime una línea, la CPU, en lugar de ejecutar el ciclo de
comprobación que aparece líneas más arriba, podría ejecutar millones de
instrucciones de otro programa. A esta forma de realizar la E/S de los sistemas
de monoprogramación se le llama E/S controlada por programa.
Los sistemas monoprogramables
se pueden dar de tres formas:
Sistemas monoprogramables
lineales: se caracterizan por tener una cola de atención sin prioridades y
un proceso no finaliza hasta terminar de ejecutarse.
Sistemas monoprogramables
con prioridades: Tienen una cola
de atención por prioridades y al igual que el anterior un proceso no termina
hasta finalizar su ejecución.
La multiprogramación es un modo de trabajo distinto en el que se pueden
ejecutar varios programas simultáneamente con el fin de aprovechar al máximo
los recursos de la computadora. Los trabajos realizados en una computadora,
desde el punto de vista de ocupación de tiempo de procesador y de los
dispositivos periféricos, se pueden agrupar en dos bloques:
· Trabajos
limitados por procesos: aquellos que consumen la mayor parte de su tiempo en el
tratamiento de la información y muy poco en operaciones de entrada/salida.
· Trabajos
limitados por operaciones de E/S: aquellos que dedican la mayor parte del
tiempo a operaciones de E/S, haciendo poco uso del procesador, que se mantiene
inactivo durante grandes períodos de tiempo.
Obviamente, un proceso particular puede estar decantado hacia un lado u
otro, o bien situado en una situación intermedia.
El segundo tipo de procesos dio lugar a una nueva técnica denominada
multiprogramación. Esta técnica consiste en aprovechar la inactividad del
procesador durante la ejecución de una operación de E/S de un proceso, para
atender a otro proceso. Desde el punto de vista del usuario, los procesos que
se están ejecutando en la computadora están corriendo en paralelo, en realidad
lo que sucede es que se están utilizando pequeños tiempo de CPU (ráfagas) para
cada uno de los procesos que se ejecutan. En estas condiciones nos encontraremos
con varios problemas:
· El acceso al
procesador deberá seguir algún tipo de reglas, o políticas de trabajo, que
permitan la realización de las distintas tareas que implica la ejecución de los
programas.
· Se hace
necesario algún tipo de administración de la memoria, ya que tiene que ser
compartida por los distintos trabajos que se están ejecutando.
· Varios trabajos
pueden necesitar la utilización de un mismo recurso al mismo tiempo, dando
lugar a un problema de concurrencia conocido como “abrazo mortal”.
En este modo de trabajo la organización no se realiza por trabajos, sino
por sesiones. Una sesión es todo el conjunto de trabajos que se realizan desde
que un usuario se conecta a la computadora hasta que se despide de la misma. Durante
estas sesiones se pueden realizar multitud de operaciones controladas por un
proceso, denominado interprete de órdenes, que mantiene el diálogo entre el
usuario y el sistema operativo.
Durante su sesión el usuario cree tener todos los recursos de la
computadora, aunque existan otros usuarios con sus sesiones activadas
simultáneamente. Los sistemas de tiempo compartido se caracterizan por:
·
Ser interactivos.
·
Atender a varios usuarios simultáneamente.
·
Ofrecer unos tiempos de respuesta relativamente cortos.
·
Poseer una fuerte gestión de archivos.
·
Utilizar técnicas de buffering y spooling.
·
Gestionar memoria virtual.
Uno de los problemas actuales ha sido la aparición de aplicaciones que
manejan gran cantidad de datos, que un solo procesador no es capaz de procesar
en el tiempo requerido.
Podemos citar el caso de sistemas expertos, donde el volumen de datos es
extremadamente grande y se necesitan unos tiempos de respuesta muy pequeños.
El multiproceso se basa en la posibilidad de descomponer el algoritmo
que se está ejecutando en varios subalgoritmos, de tal forma que estos puedan
ser tratados por varios procesadores en paralelo. Al finalizar se deben unir
los resultados parciales y obtener un resultado final en la computadora.
Evidentemente el tiempo de ejecución es mucho menor que si solo dispusiéramos
de un procesador.
El tiempo real es otra posibilidad de los sistemas operativos
multiprogramados en los que se necesita un tiempo de respuesta pequeño ante
cualquier petición.
Suele emplearse en aplicaciones dedicadas a sistemas de control, que
utilizan sensores como elementos de entrada y donde es necesaria una respuesta
rápida sobre el sistema a controlar.
Podemos decir que un sistema trabaja en tiempo real si el tiempo de
respuesta permite controlar y regular al medio sobre el que opera.
hola me podrias ayudar con una duda
ResponderEliminaryo te puedo ayudar :)
EliminarYo los ayudo B)
EliminarEl ayudador de pibes:
ResponderEliminarPero en que ocupan ayuda pues
ResponderEliminar