Está en la página 1de 6

3.Recursos.Funciones de un sistema operativo.

El fin fundamental de un SO es coordinar la utilización que se hace del hardware:


dependiendo de los programas o aplicaciones que se estén utilizando. Los programas que
se utilizan los decide, en la mayoría de los casos, el usuario, pero en otras muchas
ocasiones son programas propios del SO los que tienen que estar funcionando para poder
hacer que los programas de usuario cumplan su objetivo.

En general, hardware, software y usuario se estructuran, en cuanto a la utilización de un


ordenador o sistema informático, de forma jerárquica. Veamos el esquema de la Figura 2.5.

Este tipo de estructura es el que permite que el usuario interactúe con el hardware, fun ción
esencial, por no decir única, de cualquier SO.

La comunicación entre los diferentes niveles mostrados en la Figura 2.5 se realiza me


diante las llamadas interfaces. Para realizar este tipo de funciones, el SO cuenta con los
denominados servicios. Un servicio es un tipo de aplicación que normalmente se ejecuta en
segundo plano. Los servicios proporcionan a los usuarios aplicaciones que incorpo ran
diversas formas de poder utilizar los recursos del SO. Algunos de los servicios lan zados por
los sistemas operativos son aplicaciones del tipo cliente-servidor, servidores Web,
servidores de bases de datos y otras aplicaciones basadas en servidores, tanto de forma
local como a través de una red.

Estos servicios pueden utilizarse, entre otras cosas, para

• Crear programas (editores, compiladores, depuradores, etc.).

• Ejecutor esos programas proporcionando al sistema los recursos hardware y software


necesarios

• Acceder de forma controlada a los dispositivos de entrada/salida.

• Gestionar los archivos de forma controlada y segura.

• Acceder a la información de una forma controlada y segura. • Supervisar y solucionar


errores provocados por el hardware o el software.

• Suministrar información estadística, de seguridad y registro de lo que se hace en el

sistema. En general, los servicios se utilizan para iniciar, detener, pausar, reanudar o
deshabilitar programas y aplicaciones (que a su vez pueden ser servicios) en equipos
locales y remotos.

la mayoría de los servicios se instalan en un sistema informático al instalar e propio. SO.


Muchas aplicaciones, especialmente aquellas que utilizan servicios de red, acceso a bases
de datos remotas y otras muchas, instalan sus propios servicios, que se añaden: a los que
ya instaló en su momento el propio SO.
Estos servicios son esenciales para el funcionamiento de muchas de las aplicaciones y
del propio SO. Si estos programas, es decir, los servicios, no estuvieran ejecutándose,
muchas aplicaciones no funcionarían o algo tan frecuente como el acceso a Internet
sería imposible.

Los servicios, también se denominan procesos en segundo plano, procesos en back ground
y particularmente en Linux, reciben el nombre de demonios y pueden ser lanzados por el
propio sistema operativo o por el usuario cuando ejecuta alguna aplicación concreta.
4. Gestión de recursos de un sistema operativo
A continuación, veremos cuáles son los recursos que gestiona un sistema operativo
memoria, procesador y dispositivos de entrada/salida. También veremos algunas de las
características que determinan este tipo de gestión

4.1. Memoria
la parte del SO que administra la memoria es el administrador de memoria. Su función. Es
clara: llevar en un registro las partes de memoria que se están utilizando y las que no. De
esta forma, reservará espacio de memoria para los nuevos procesos y liberará el espacio de
los procesos que hayan finalizado,

También se encarga de gestionar el intercambio de datos entre memoria y disco, siempre y


cuando los procesos sean tan grandes que no quepan de una sola vez en memoria

la gestión de memoria es importante cuando trabajamos en sistemas operativos multitarea,


ya que trabajarán simultáneamente con varios procesos a la vez En este caso, la memoria
tiene que ser gestionada y controlada por el SO, de tal forma que cada proceso utilice el
espacio de memoria, sin afectar a otros espacios de memoria en los que puede haber datos
o registros con información para otros procesos o hilos de un proceso

En general, la gestión de memoria es sencilla en sistemas operativos monoproceso. Al

introducir la multitarea, la cosa se complica, ya que es necesario disponer de varios

procesos residentes simultáneamente en memoria

La primera opción es dividir la memoria en particiones fijas. Para ello, el SO dispone de una
cola de procesos que solicitan entrar en memoria. Un componente esencial del SO llamado
planificador tiene en cuenta los requerimientos de memoria de cada uno de los procesos y
las particiones de memoria disponibles.

Vinculado con la multitarea está el concepto de intercambio. Los procesos en espera que
Si no están en ejecución pueden ser llevados al disco y dejar libre la parte de memoria que
ocupan para que otros procesos entren en ejecución. Los procesos se pueden cargar
siempre en la misma posición de memoria o en otra

la mayor dificultad en el diseño con particiones fijas de memoria es la adecuada selección


de los tamaños de estas, puesto que puede derivar en un desaprovechamiento o
fragmentación de la memoria.
Con un conjunto dinámico de procesos no es posible encontrar las particiones de memoria
adecuadas. La opción es disponer de particiones variables. El problema que se plantea
ahora es llevar un registro de las particiones libres y ocupadas que sea eficiente, tanto en el
tiempo de asignación como en el aprovechamiento de la memoria. No obstante, se siguen
presentando problemas de fragmentación externa. Una solución es permitir que los
procesos puedan utilizar memoria no contigua, aprovechando así todo el conjunto de
posiciones libres de memoria, por pequeñas que sean dichas particiones

4.2. Procesos y procesador


Un proceso, o tarea, se puede definir como un programa en ejecución. Los procesos en un
SO tienen las siguientes características:

● Un proceso para empezar su ejecución ha de residir completamente en memoria y


tener asignados todos los recursos que necesite.

● Cada proceso está protegido del resto de procesos; ningún otro podrá escribir en las
y zonas de memoria pertenecientes a ese proceso.

● Los procesos pueden pertenecer al usuario o ser propios del SO. Estos procesos
pertenecientes a los usuarios se ejecutan en el llamado modo usuario del
procesador (con restricciones de acceso a los recursos hardware). Los procesos que
pertenecen al sistema se ejecutan en el modo kernel o modo privilegiado del
procesador (podrán acceder a cualquier recurso).

● Cada proceso tendrá una estructura de datos llamada bloque de control de proceso
(BCP), donde se almacenará información acerca del mismo.

● Los procesos podrán comunicarse, sincronizarse y colaborar entre sí,

Además de las características anteriores, tengamos en cuenta que a cada proceso se le


asigna un espacio de direcciones lógicas en memoria. Este espacio de memoria es igual al
máximo que nuestro SO sea capaz de gestionar (en un SO de 32 bits se llegará hasta 4
GB), y aquí entra en juego la memoria virtual o cualquier otra técnica de gestión de
memoria.

Los procesos se dividen en trozos de igual tamaño, llamados páginas, frames, etc. Cuan do
se carga un proceso, lo que se hace es llevarlo a la memoria y asignarle un número máximo
de bloques en memoria a emplear. Para esta operación se utilizarán técnicas de gestión de
memoria como la memoria virtual, swapping, paginación, segmentación u otras.
Cuando se ejecuta el proceso, si la UCP quiere atender una parte del mismo que no esté en
memoria interna a real, hay que buscarla en otra zona de memoria (memoria virtual) y
traerla hasta la memoria real. Cuando se llega a ocupar el número máximo de espacios de
memoria real utilizados por un proceso, se procede a descargar las partes de memoria que
no se estén utilizando, la memoria virtual, entrando en la memoria real la nueva parte del
proceso que se quiere utilizar. Las partes del proceso que se descargan de la memoria real
pasando a la virtual para dejar paso a la nueva parte del proceso que se va a ejecutar,
suelen ser las partes del proceso más antiguas y menos utilizadas.

Lo que debe quedar claro es que cualquier programa que se esté ejecutando en un orde
nador es un proceso, ya que desde ese momento el programa, denominado ya procesa,
se puede ejecutar, se puede detener o se puede bloquear, entre otras muchas cosas.

Cada proceso, para poder ser ejecutado, estará siempre cargado en la memoria principal,
pero no solamente las instrucciones del propio código que lo componen, sino también los
datos a los que afecta la ejecución del mismo.

Un programa no es un proceso, sino que se convierte en tal en el momento en que se pone


en ejecución. La aplicación Word, por ejemplo, cuando no se está ejecutando no deja de ser
un archivo sin más. Y cuando se ejecuta, el archivo WINWORD.EXE. sigue estando
almacenado donde lo estaba originalmente. Lo que ocurre es que al ejecutar el programa,
las instrucciones necesarias pasan a la memoria principal. En este punto, es decir, cuando
el programa está en ejecución, es cuando se convierte en proceso, pero no antes.

Durante la ejecución de un proceso, este compite con el resto de los procesos que se están
ejecutando de forma concurrente en el sistema, por el uso de los recursos hardware
y a veces por los recursos software.

El reparto de los recursos del sistema entre los distintos procesos y su ejecución
concurrente se conoce como multiprogramación. Los sistemas operativos disponen de los
servicios necesarios para la gestión de los procesos, tales como su creación, terminación,
ejecución periódica, cambio de prioridad, etc. Además, durante su existencia, los procesos
pasan por distintos estados cuyas transiciones están controladas por el SO.

Cuantas más instrucciones sea capaz de procesar un procesador, mayor velocidad


obtendremos en el sistema, debido, especialmente, a que los procesos esperarán menos
tiempo a que la UCP o el procesador les asigne los recursos que necesitan.

4.3. Gestión de entrada/salida


Una de las tareas más importantes del ordenador, y en particular de la unidad central de
proceso, es relacionar y comunicar las unidades periféricos (periféricos de entrada/ salida)
con los componentes internos del equipo (memoria, procesador, buses).

Esta comunicación se realiza a través del gestor de entrada/salida ubicado en la placa base
del ordenador. Este componente, integrado en los circuitos de la placa base, se denomina
chipset, y una de las funciones que realizo, entre otras muchas, es precisamente

la de comunicar las unidades funcionales del equipo con los periféricos de entrada y/o
salido.

En la figura 2.6 podemos ver de qué forma los periféricos de entrada/salida se conectan a la
placa base del ordenador y, en definitiva, cómo se comunican con los componentes de la
misma (memoria, procesador y buses).

También podría gustarte