Los recursos que administra el sistema operativo son:
La memoria: Podríamos
decir que la memoria de la computadora es uno de los elementos más importantes
para que todo funcione correctamente, es más, sin ella la PC ni siquiera podrá
arrancar, tal es la importancia que este componente electrónico tiene en
la estructura de nuestra computadora. La palabra Memoria es un término genérico
usado para designar las partes de la computadora o de los dispositivos
periféricos donde todos los datos y programas son almacenados.
El uso
de la memoria es para agilizar el flujo de información hacia el CPU. En otras
palabras es como decir desde el disco duro al CPU hay mucha mas distancia y
mucho mas tiempo es perdido mientras busca en el disco duro y manda al CPU para
ser procesado, mientras que si la información que esta en el disco es cargada a
la memoria de allí el CPU puede accesar mas rápidamente la información que ha
sido pedida. También se puede decir que el uso de la memoria es agilizar la
compilación de información.
La
memoria tiene como función primordial almacenar temporalmente(en el caso del
RAM) información del disco para ser ejecutada por el CPU, de una manera más
ágil y veloz.
Operaciones de E/S. Vamos a señalar las funciones que debe realizar un computador para ejecutar trabajos de entrada/salida:
- Direccionamiento o selección del dispositivo que debe llevar a cabo la operación de E/S. - Transferencia de los datos entre el procesador y el dispositivo (en uno u otro sentido). - Sincronización y coordinación de las operaciones.
Esta ultima función es necesaria debido a la deferencia de velocidades entre los dispositivos y la CPU y a la independencia que debe existir entre los periféricos y la CPU (por ejemplo, suelen tener relojes diferentes).
- Establecimiento de una comunicación física entre el procesador y el periférico para la transmisión de la unidad de información.
- Control de los periféricos, en que se incluyen operaciones como prueba y modificación del estado del periférico. Para realizar estas funciones la CPU gestionara las líneas de control necesarias.
- Establecimiento de una comunicación física entre el procesador y el periférico para la transmisión de la unidad de información.
- Control de los periféricos, en que se incluyen operaciones como prueba y modificación del estado del periférico. Para realizar estas funciones la CPU gestionara las líneas de control necesarias.
- Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación.
- Sincronización de velocidad entre la CPU y el periférico.
- Detección de errores (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de redundancia cíclica, etc.)
- Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones de E/S que utilizan el área de datos del programa.
- Conversión de códigos , conversión serie/paralelo, etc.
- Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación.
- Sincronización de velocidad entre la CPU y el periférico.
- Detección de errores (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de redundancia cíclica, etc.)
- Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones de E/S que utilizan el área de datos del programa.
- Conversión de códigos , conversión serie/paralelo, etc.
Se define una transferencia elemental de información como la transmisión de una sola unidad de información (normalmente un byte) entre el procesador y el periférico o viceversa. Para efectuar una transferencia elemental de información son precisas las siguientes funciones:
Definiremos una operación de E/S como el conjunto de acciones necesarias para la transferencia de un conjunto de datos (es decir, una transferencia completa de datos). Para la realización de una operación de E/S se deben efectuar las siguientes funciones:
- Recuento de las unidades de información transferidas (normalmente bytes) para reconocer el fin de operación.
- Sincronización de velocidad entre la CPU y el periférico.
- Detección de errores (e incluso corrección) mediante la utilización de los códigos necesarios (bits de paridad, códigos de redundancia cíclica, etc.)
- Almacenamiento temporal de la información. Es más eficiente utilizar un buffer temporal específico para las operaciones de E/S que utilizan el área de datos del programa.
- Conversión de códigos , conversión serie/paralelo, etc.
Interfaz de Usuario: Las interfaces básicas de usuario son aquellas que incluyen elementos como menús, ventanas, teclado, ratón, los beeps 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.
Control de procesos: Los
sistemas operativos multiprogramados necesitan del concepto de proceso. El
sistema operativo debe entremezclar la ejecución de un número de procesos para
maximizar la utilización de los recursos del ordenador. Al mismo tiempo, los
sistemas de tiempo compartido deben proporcionar un tiempo de respuesta
razonable. El sistema operativo debe asignar recursos a los procesos de acuerdo
a una política específica (ciertas funciones o aplicaciones son de mayor
prioridad), mientras impide los interbloqueos. Por último, el sistema operativo
debe ofrecer un soporte para llevar a cabo la comunicación entre procesos.
El concepto de proceso es clave en los sistemas operativos modernos. La gestión
del procesador mediante multiprogramación, revolucionó la concepción de los
sistemas operativos, e introdujo el término proceso como elemento necesario
para realizar dicha gestión. Por lo demás, este tema trata sobre la definición
de proceso, el estudio de sus propiedades, y la gestión que realiza el sistema
operativo para crear la abstracción de proceso, aunque esto último se
completará en el tema de planificación. Por último, descubriremos que el
concepto de proceso encierra, en realidad, dos características potencialmente
independientes: por un lado, es una unidad a la que se le asigna y posee
recursos y, por otro, es una unidad planificable. Basándonos en esta distinción
emprenderemos el estudio de los threads (hebra o hilo), o también llamados
procesos ligeros.
Qué es un proceso
Hasta ahora hemos utilizado siempre el término programa. A partir de ahora
distinguiremos entre programa y proceso. Un programa es una secuencia de
instrucciones escrita en un lenguaje dado. Un proceso es una instancia de
ejecución de un programa, caracterizado por su contador de programa, su palabra
de estado, sus registros del procesador, su segmento de texto, pila y datos,
etc. Un programa es un concepto estático, mientras que un proceso es un
concepto dinámico. Es posible que un programa sea ejecutado por varios usuarios
en un sistema multiusuario, por cada una de estas ejecuciones existirá un
proceso, con su contador de programa, registros, etc. El sistema operativo
necesita el concepto de proceso para poder gestionar el procesador mediante la
técnica de multiprogramación o de tiempo compartido, de hecho, el proceso es la
unidad planificable, o de asignación de la CPU.