SISTEMA OPERATIVO
SISTEMAS OPERATIVOS
Es un programa o conjunto de programas de computadora destinado a permitir una gestion eficaz de sus recursos.
Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los niveles más básicos, permitiendo también la interacción con el usuario.
Es un programa o conjunto de programas de computadora destinado a permitir una gestion eficaz de sus recursos.
Comienza a trabajar cuando se enciende el computador, y gestiona el hardware de la máquina desde los niveles más básicos, permitiendo también la interacción con el usuario.
TIPOS:
Sistemas Operativos de multiprogramación :
Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos actiovos al mismo tiempo. Mejora productividad del sistema y utilización de recursos.
Sistemas Operativos distribuidos
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este caso es transparente para el usuario.
Sistemas Operativos de red
Son aquellos sistemas que mantienen a dos o más computadores unidas a través de algún medio de comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la informacion del sistema.
Funciones básica
Proporcionar comodidad en el uso de un computador.
Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos(programas)
Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).
Proporcionar comodidad en el uso de un computador.
Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos(programas)
Brindar una interfaz al usuario, ejecutando instrucciones (comandos).
Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir con los servicios que ya se prestaban (evolutividad).
CARACTERISTICAS:
-Administración
de tareas
-Administración de usuario
-Manejo de recursos
-Administración de usuario
-Manejo de recursos
Estructura de un sistema operativo
En esta unidad examinaremos cuatro estructuras distintas que ya han sido probadas, con el fin de tener una idea más extensa de cómo esta estructurado el sistema operativo. Veremos brevemente algunas estructuras de diseños de sistemas operativos.
Estructura modular.También llamados sistemas monolíticos. Este tipo de organizacion es con mucho la mas común; bien podría recibir el subtitulo de "el gran embrollo". La estructura consiste en que no existe estructura alguna. El sistema operativo se escribe como una colección de procedimientos, cada uno de los cuales puede llamar a los demás cada vez que así lo requiera. Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados y cada uno de ellos es libre de llamar a cualquier otro, si este ultimo proporciona cierto calculo útil para el primero. Sin embargo incluso en este tipo de sistemas es posible tener al menos algo de estructura. Los servicios (llamadas al sistema) que proporciona el sistema operativo se solicitan colocando los parámetros en lugares bien definidos, como en los registros o en la pila, para después ejecutar una instrucción especial de trampa de nombre "llamada al núcleo" o "llamada al supervisor"
Nucleos de sistemas operativos
Los núcleos
(kernels) de los sistemas operativos se pueden ubicar en dos categorias:
monolíticos o micronúcleos (microkernels). El primer tipo de núcleo es el más
tradicionalmente usado, mientras que los micronúcleos forman parte delas
tendencias modernas en el diseño de sistemas operativos.
Para comprender mejor qué diferencias existen entre ambas categorías, se necesita revisar algunos conceptos.
Para comprender mejor qué diferencias existen entre ambas categorías, se necesita revisar algunos conceptos.
Trabajos,
procesos y Thread
Estos tres conceptos van definiendo el grado de granularidad en que el
sistema operativo trata a las masas de operaciones que se tienen que realizar.
Un trabajo se conceptualiza como un conjunto de uno o más procesos. Por
ejemplo, si se tiene que hacer el trabajo de correr el inventario, tal vez se
subdivida ese trabajo en varios procesos: obtener la lista de artículos, número
en existencia, artículos vendidos, artículos extraviados, etc. Un proceso se
define como la imagen de un programa en ejecución, es decir, en memoria y
usando el CPU. A este nivel de granularidad, un proceso tiene un espacio de
direcciones de memoria, una pila, sus registros y su 'program counter'. Un
thread es un trozo o sección de un proceso que tiene sus propios registros,
pila y 'program counter' y puede compartir la memoria con todos aquellos
threads que forman parte del mismo proceso.
Objetos
Un objeto es una entidad que contiene dos partes principales: una colección
de atributos y un conjunto de métodos (también llamados servicios).
Generalmente los atributos del objeto no pueden ser cambiados por el usuario,
sino solamente a través de los métodos. Los métodos sí son accesibles al
usuario y de hecho es lo único que él observa: los métodos conforman lo que se
llama la 'interfaz' del objeto. Por ejemplo, para el objeto 'archivo' los
métodos son abrir, cerrar, escribir, borrar, etc. El cómo se abre, se cierra,
se borra, etc; está escondido para el usuario, es decir, los atributos y el
código están 'encapsulados'. La única forma de activar un método es a través
del envío de mensajes entre los objetos, o hacia un objeto.
Cliente - Servidor
Cliente - Servidor
Un cliente es un proceso que necesita de algún valor o de alguna operación
externa para poder trabajar. A la entidad que prove ese valor o realiza esa
operación se le llama servidor. Por ejemplo, un servidor de archivos debe
correr en el núcleo (kernel) o por medio de un proceso 'guardián' al servidor
de archivos que escucha peticiones de apertura, lectura, escritura, etc; sobre
los archivos. Un cliente es otro proceso guardián que escucha esas peticiones
en las máquinas y se comunica con el
proceso servidor a través de la red, dando la apariencia de que se tienen los
archivos en forma local en la máquina cliente.
Núcleo Monolítico
Los núcleos monolíticos generalmente están divididos en dos partes
estructuradas: el núcleo dependiente del hardware y el núcleo independiente del
hardware. El núcleo dependiente se encarga de manejar las interrupciones del
hardware, hacer el manejo de bajo nivel de memoria y discos y trabajar con los
manejadores de dispositivos de bajo nivel, principalmente. El núcleo
independiente del hardware se encarga de ofrecer las llamadas al sistema,
manejar los sistemas de archivos y la planificación de procesos. Para el
usuario esta división generalmente pasa desapercibida. Para un mismo sistema
operativo corriendo en diferentes plataformas, el núcleo independiente es
exactamente el mismo, mientras que el dependiente debe re-escribirse.
Microkernel
Un núcleo con 'arquitectura' micronúcleo es aquél que contiene únicamente
el manejo de procesos y threads, el de manejo bajo de memoria, da soporte a las
comunicaciones y maneja las interrupciones y operaciones de bajo nivel de
entrada-salida. [Tan92]. En los sistemas oprativos que cuentan con este tipo de
núcleo se usan procesos 'servidores' que se encargan de ofrecer el resto de
servicios (por ejemplo el de sistema de archivos) y que utilizan al núcleo a
través del soporte de comunicaciones.
Este diseño permite que los servidores no estén atados a un fabricante en especial, incluso el usuario puede escoger o programar sus propios servidores. La mayoría de los sistema operativos que usan este esquema manejan los recursos de la computadora como si fueran objetos: los servidores ofrecen una serie de 'llamadas' o 'métodos' utilizables con un comportamiento coherente y estructurado. Otra de las características importantes de los micronúcleos es el manejo de threads. Cuando un proceso está formado de un solo thread, éste es un proceso normal como en cualquier sistema operativo.
Este diseño permite que los servidores no estén atados a un fabricante en especial, incluso el usuario puede escoger o programar sus propios servidores. La mayoría de los sistema operativos que usan este esquema manejan los recursos de la computadora como si fueran objetos: los servidores ofrecen una serie de 'llamadas' o 'métodos' utilizables con un comportamiento coherente y estructurado. Otra de las características importantes de los micronúcleos es el manejo de threads. Cuando un proceso está formado de un solo thread, éste es un proceso normal como en cualquier sistema operativo.