Gestión de procesos
Cesar Gonzalez Ph.D.
El componente principal de S.O.
Es el que se encarga de la gestión de
procesos.
El proceso es un elemento central en los
sistemas operativos, puesto que su función
consiste en generar y gestionar los procesos
y en atender a sus peticiones.
Pero que es un proceso?
Se puede definir como un programa en ejecución.
De forma un poco más precisa, se puede definir el proceso
como la unidad de procesamiento gestionada por el sistema
operativo.
No hay que confundir: concepto de programa con el concepto de
proceso.
Un programa no es más que un conjunto de instrucciones
máquina, mientras que el proceso surge cuando un programa se
pone en ejecución.
para que un programa pueda ser
ejecutado
Tiene que estar en memoria principal
Al contenido de los
segmentos de memoria
en los que reside el
código y los datos del
proceso se le denomina
imagen de memoria.
para que un programa pueda ser
ejecutado
Durante su ejecución, el
proceso va modificando los
registros del modelo de
programación de la
computadora, de acuerdo a
las instrucciones de
maquinas involucradas.
El contenido de los registros
del modelo de programación
es lo que se conoce como
estado del procesador.
para que un programa pueda ser
ejecutado
El S.O., mantiene por cada
proceso una serie de
estructuras de información
que permite identificar las
características de éste así
como los recursos que tiene
asignados.
Una parte muy importante
de esta estructura es el
bloque de control del proceso
(BCP)
El bloque de control del
proceso (BCP)
El BCP, incluye entre otra
información, el
estado de los registros del
proceso, cuando éste no está
ejecutando.
El S.O. como gestor de procesos
Elsistema operativo debe encargarse
también de ofrecer una serie de servicios
para la gestión de procesos
y de gestionar los posibles interbloqueos que
surgen cuando los procesos acceden a
diferentes recursos.
El S.O. como gestor de procesos
Dependiendo del número de procesos y de
usuarios que puedan ejecutar
simultáneamente, un sistema operativo
puede ser:
Monotarea
Multitarea o multiproceso
Mono Usuario
Multi-usario
Monotarea
También llamado mono-proceso. Este
tipo de sistemas operativos sólo
permite que exista un proceso en cada
instante.
Multitarea o multiproceso
Permiteque coexistan varios procesos
activos a la vez. El sistema operativo
se encarga de ir repartiendo el tiempo
del procesador entre estos procesos.
Monousuario
Como su nombre lo dice soporta un
solo usuario
Multiusuario
Soporta varios usuarios trabajando
simultáneamente desde varios terminales.
A su vez cada usuario puede tener activo más de un
proceso, por lo que el sistema, obligatoriamente, ha
de ser multitarea.
Los sistemas multiusuario reciben también el
nombre de tiempo compartido, porque el sistema
operativo ha de repartir el tiempo del computador
entre los usuarios para que las tareas de todos ellos
avancen de forma razonable.
Servicios de procesos
Elsistema operativo ofrece una serie de
servicios que permiten definir la vida de un
proceso.
Esta vida está constituida por las siguientes
fases: creación, ejecución y muerte del
proceso.
Servicios de procesos
En general, los sistemas operativos ofrecen
los siguientes servicios para la gestión de
procesos:
Crear un proceso.
Ejecutar un proceso.
Terminar la ejecución de un proceso.
Cambiar el programa de un proceso.
Servicios de procesos – Crear un
proceso
Elproceso es creado por el sistema
operativo cuando así lo solicita otro proceso,
que se convierte en el padre del nuevo.
Existendos modalidades básicas para crear
un proceso en los sistemas operativos:
Creación a partir de un proceso padre
Creación a partir de un archivo ejecutable
Servicios de procesos – Ejecutar un
proceso
Los procesos pueden ejecutar de dos formas
(Batch e interactiva):
Batch (background): No está asociado a ningún
terminal. Deberá tomar sus datos de entrada de
un archivo y deberá depositar sus resultados en
otro archivo.
Ejemplo: un proceso de nóminas, que parte del
archivo de empleados y del archivo de los trabajos y
genera un archivo de órdenes básicas para pagar las
nóminas.
Servicios de procesos – Ejecutar un
proceso
Los procesos pueden ejecutar de dos formas
(Batch e interactiva):
Interactiva:está asociado a un terminal, por
el que recibe la información del usuario y por
el que contesta con los resultados.
Ejemplo: Un proceso de edición.
Servicios de procesos – Terminar la
ejecución de un proceso
Un proceso puede finalizar su ejecución por varias
causas, entre las que se encuentran las siguientes:
Ha terminado de ejecutar el programa.
Se produce una condición de error en su ejecución
(división por 0 ó violación de memoria).
Otro proceso o el usuario deciden que ha de
terminar.
Servicios de procesos – Cambiar el
programa de un proceso
Algunos sistemas operativos incluyen, además
de los anteriores, un servicio que cambia el
programa que está ejecutando un proceso por
otro programa almacenado en disco.
Esta operación no consiste en crear un nuevo
proceso que ejecuta ese nuevo programa. Se
trata de eliminar el programa que está
ejecutando el proceso y de incluir un nuevo
programa que se trae del disco.
Gestión de Memoria
Gestor de memoria
En este sentido se encarga de:
Asignar memoria a los procesos para crear su imagen
de memoria.
Proporcionar memoria a los procesos cuando la soliciten
y liberarla cuando así lo requieran.
Tratar los posibles errores de acceso a memoria,
evitando que unos procesos interfieran en la memoria
de otros.
Permitir que los procesos puedan compartir memoria
entre ellos. De esta forma los procesos podrán
comunicarse entre ellos.
Gestiona la jerarquía de memoria y tratar los fallos de
página en los sistemas con memoria virtual.
Gestor de memoria – categoría de
servicios a los programas
Suministra los siguientes servicios:
Solicitar Memoria.
Liberar Memoria.
Compartir Memoria.
Solicitar memoria
Este servicio aumenta el espacio de datos de la
imagen de memoria del proceso. El sistema
operativo satisface la petición siempre y cuando
cuente con los recursos necesarios para ello. En
general, el sistema operativo devuelve un
apuntador con la dirección de la nueva memoria.
El programa utilizara este nuevo espacio a través
del mencionado apuntador, mediante
direccionamientos relativos al mismo.
Liberar memoria
Este servicio sirve para devolver trozos de la
memoria del proceso.
El sistema operativo recupera el recurso liberado y
lo añade a sus listas de recursos libres, para su
posterior reutilización
Problemas al solicitar memoria y liberar
memoria – (Apuntadores invalidos y perdia de
memoria)
Un programa almacena en al variable A el valor del
apuntador (dado por el S.O.) como respuesta a la
solicitud de memoria. Después de usar el servicio el
programa libera la memoria.
El S.O., recupera la memoria liberada, y este ya no
forma parte de la imagen de memoria del proceso,
pero no resetea la variable A. Si el programa utiliza
después la variable A para acceder a un dato, sucede
un error, el apuntador ya no apunta a una dirección de
memoria valida.
Problemas al solicitar memoria y liberar
memoria – (Apuntadores invalidos y perdia de
memoria)
La pérdida de memoria se produce cuando no
se libera memoria después de haber terminado
su uso.
Un programa puede ir pidiendo más memoria,
pero es posible que en algún momento ya no
exista mas memoria disponible.
Aquí el S.O. ya no puede atender la solicitud.
La perdida de memoria no es un error fatal,
pero es acumulativa, por lo puede llegar a
bloquear el sistema si se produce de forma
Compartir memoria
Dentro de esta categoría, el gestor de memoria se
encarga de ofrecer servicios que permiten que los
procesos puedan comunicarse utilizando un
segmento de memoria compartida.
Para ello se permite que los procesos creen y
liberen este tipo de segmentos.
Comunicación y
sincronización entre
procesos
Mecanismos de comunicación y
sincronización
Existen distintos mecanismos de comunicación
y sincronización, cada uno de los cuales se
puede utilizar a través de un conjunto de
servicios propios.
Tiene las siguientes fases:
Creación del mecanismo.
Utilización del mecanismo.
Destrucción del mecanismo.
Servicios básicos de comunicación
Los servicios básicos de comunicación, que
incluyen todos los mecanismos de
comunicación, son los siguientes:
Crear.
Enviar o escribir.
Recibir o leer.
Destruir.
Servicios básicos de comunicación
Crear:Permite que el proceso solicite la
creación del mecanismo.
Enviaro escribir: Permite que el proceso
emisor envíe información a otro.
Recibiro leer: Permite que el proceso
receptor reciba información de otro.
Destruir: Permite que el proceso solicite la
creación o destrucción del mecanismo.
Servicios básicos de comunicación -
Síncrona
En la comunicación síncrona
los dos procesos han de
ejecutar los servicios de
comunicación al mismo
tiempo.
El emisor ha de estar en el
servicio de enviar y el
receptor ha de estar en el
servicio de recibir.
Normalmente, para que esto
ocurra, uno de ellos ha de
esperar a que el otro llegue a
Servicios básicos de comunicación -
Asíncrona
En la comunicación asíncrona el emisor no tiene
que esperar a que el receptor solicite el servicio
recibir, hace el envío y sigue con la ejecución.
Esto obliga a que el sistema operativo establezca
un almacenamiento intermedio para guardar la
información enviada hasta que el receptor la
solicite.
Servicios básicos de sincronización
En cuanto a los mecanismos de sincronización,
los mecanismos suelen incluir los siguientes
servicios:
Crear.
Bloquear.
Despertar.
Destruir.
Servicios básicos de sincronización
Crear:Permite que el proceso solicite la
creación del mecanismo.
Bloquear:Permite que el proceso se
bloquee hasta que ocurra un determinado
evento.
Despertar: Permite despertar a un proceso
bloqueado.
Destruir: Permite que el proceso solicite la
Gestión de la E/S
Gestión de los dispositivos
Una periféricos
de las principales funciones de un S.O., es la gestión de los
recursos del computador y, en concreto, de los dispositivos
periféricos.
El gestor de E/S debe controlar el funcionamiento de todos los
dispositivos de E/S para alcanzar los siguientes objetivos:
Facilitar el manejo de los dispositivos periféricos: Para
ello debe ofrecer una interfaz sencilla, uniforme y fácil de
utilizar entre los dispositivos, y gestionar los errores que se
pueden producir en el acceso a los mismos.
Ofrecer mecanismos de protección: Para impedir a los
usuarios acceder sin control a los dispositivos periféricos.
Gestión de los dispositivos
periféricos – Servicios
El S.O., ofrece a los usuarios una serie de servicios, de E/S independientes
de los dispositivos.
Esto implica que deben emplearse los mismos servicios y operaciones de
E/S para leer, por ejemplo, datos de una USB, de un disco duro, de un CD-
ROM o de un teclado.
Los servicios de E/S están dirigidos básicamente a la lectura y escritura de
datos.
Pueden estar orientados a caracteres, como ocurre con las impresoras o
los terminales, o pueden estar orientados a bloques, como ocurre con las
unidades de disco.
El segundo caso se diferencia del primero en que la operación elemental
de E/S se hace sobre un bloque de información de un número fijo de
caracteres (sobre un bloque de 1 KB).
Gestión de Archivos y
directorios
Servidor de archivos
Los objetivos fundamentales del servidor de archivos
son los dos siguientes:
Facilitar el manejo de los dispositivos periféricos.
Para ello ofrece una visión lógica simplificada de los
mismos en forma de archivos.
Proteger a los usuarios, poniendo limitaciones a los
archivos que es capaz de manipular cada usuario.
Servidor de archivos - servicios
Los servicios que se engloban en el servidor de
archivos son de dos tipos:
Los servicios dirigidos al manejo de datos, o
archivos.
Los dirigidos al manejo de los nombres, o
directorios.
Servidor de archivos
El servidor de archivos ofrece al usuario una visión
lógica compuesta por una serie de objetos (archivos –
manejo de datos y directorios – manejo de
nombres) identificables por un nombre lógico sobre
los que puede realiza una serie de operaciones.
La visión física ha de incluir los detalles de cómo están
almacenados estos objetos en los periféricos
correspondientes (p. ej.: en los discos).
Servicio de archivos
Un archivo es una unidad de almacenamiento lógico
no volátil que agrupa un conjunto de información
relacionada entre sí bajo un mismo nombre.
Cada archivo tiene una información asociada que
utilizan tanto los usuarios como el propio servidor de
archivos.
Servicio de archivos
Entre las informaciones más usuales se pueden
destacar las siguientes:
Tipo de archivo (p, ej., archivo de datos, ejecutable,
etc.).
Propietario del archivo (identificador de usuario que
creó el archivo y del grupo de dicho usuario).
Tamaño del archivo. Este tamaño suele ser menor
que el espacio de disco asignado al archivo, puesto
que es muy raro que el último bloque se llene
completamente. Por término medio queda sin
usarse 1/2 bloque.
Servicio de archivos
Entre las informaciones más usuales se pueden
destacar las siguientes:
Instantes (fecha y hora) importantes de la vida del
archivo, como son los siguientes:
Instante en que se creó.
Instante de la última modificación.
Instante del último acceso.
Derechos de acceso al archivo (sólo lectura,
lectura-escritura, sólo escritura, ejecución).
Servidor de archivos - operaciones
Las operaciones sobre archivos que ofrece el servidor de
archivos están referidas a la visión lógica de los archivos.
La solución más común es que el archivo se visualice como
un vector de bytes o caracteres.
La ventaja de la sencilla visión de vector de caracteres es su
flexibilidad, puesto que no presupone ninguna estructura
específica interna en el archivo.
Servidor de archivos - operaciones
La visión lógica del archivo incluye normalmente un
puntero de posición.
Este puntero permite hacer operaciones de lectura y
escritura consecutivas sin tener que indicar la posición de la
operación.
Servidor de archivos - operaciones
La visión física está formada por los elementos físicos del
periférico que soportan al archivo.
En el caso más usual (discos), la visión física consiste en la
enumeración ordenada de los bloques de disco en los que
reside el archivo.
(para este caso se ha utilizado el termino de bloque y no
sector, dado que el S.O. no accede al disco sector a sector si
no que lo hace en bloques que están formados por un
numero prefijado de sectores)
Servidor de archivos - operaciones
La visión física está formada por los elementos físicos del
periférico que soportan al archivo.
En el caso más usual (discos), la visión física consiste en la
enumeración ordenada de los bloques de disco en los que
reside el archivo.
Servidor de archivos - operaciones
Debe existir una estructura de
información que recoja la
composición física cada archivo,
que se denominará de forma
genérica descripción física del
archivo.
Esta estructura es la que
conocemos como FAT y el nodo-i.
Finalmente, es de destacar que
estas estructuras de información
han de residir en el propio
periférico, para que éste sea
autocontenido y se pueda
Servidor de archivos - operaciones
Debe existir una estructura de
información que recoja la
composición física cada archivo,
que se denominará de forma
genérica descripción física del
archivo.
El servidor de archivos es capaz de
encontrar e interpretar estas
estructuras de información
liberando a los programas de
usuario de esta tediosa labor
Servidor de archivos – servicios de
archivos
Los servicios que ofrece el servidor de archivos son los
siguientes:
Crear un archivo
Abrir un archivo
Escribir y leer
Cerrar un archivo
Borrar un archivo
Servidor de archivos – servicios de
archivos – crear un archivo
Crea un archivo vacío. La creación de un archivo exige una
interpretación del nombre, puesto que el servidor de
archivos ha de comprobar que el nombre es correcto y que
el usuario puede hacer la operación solicitada.
La creación de un archivo deja abierto a éste devolviendo al
usuario un identificador, descriptor o manejador de archivo
de carácter temporal para su manipulación.
Servidor de archivos – servicios de
archivos – abrir un archivo
Un archivo debe ser abierto antes de ser utilizado. Este
servicio comprueba que el archivo existe, que el usuario
tiene derechos de acceso y trae a memoria información del
objeto para optimizar el acceso al mismo.
Adicionalmente devuelve al usuario un identificador,
descriptor o manejador de archivo de carácter temporal para
su manipulación
Normalmente, todos los sistemas operativos tienen un límite
máximo para el número archivos que puede tener abierto un
Servidor de archivos – servicios de
archivos – escribir y leer
Estos servicios se realizan utilizando el identificador,
descriptor o manejador de archivo (devuelto en las
operaciones de creación y apertura), en vez del nombre
lógico del mismo.
Una operación de lectura permite traer datos del archivo a
memoria. Para ello se especifica el identificador, descriptor o
manejador obtenido en la apertura, la posición de memoria y
la cantidad de información a leer.
Normalmente, se lee a partir de la posición que indica el
Servidor de archivos – servicios de
archivos – escribir y leer
Las operaciones de escritura permiten llevar datos situados
en memoria al archivo. Para ello, y al igual que en las
operaciones de lectura, se debe especificar el identificador
obtenido en la creación o apertura, la posición de memoria y
la cantidad de información a escribir.
Normalmente se escribe a partir de La posición que indica el
puntero de posición del archivo. Si está en medio, se
sobrescribirán los datos, Si está al final del archivo, su
tamaño crece.
En este caso, el sistema operativo se encarga de hacer
Servidor de archivos – servicios de
archivos – cerrar un archivo
Terminada la utilización del archivo se debe cerrar, con lo
que se elimina el identificador temporal obtenido en la
apertura o creación y se liberan los recursos de memoria que
ocupa el archivo.
Servidor de archivos – servicios de
archivos – borrar un archivo
El archivo se puede borrar, lo que supone que se borra su
nombre del correspondiente directorio y que el sistema de
archivos ha de recuperar los bloques de datos y el espacio
de meta-información que tenía asignado.
La metainformación de un archivo ser reviere a toda la
información auxiliar que es necesario mantener para ofrecer
la visión lógica de un archivo. Incluye los bloques que ocupa
el archivo en disco.
Servicio de directorios
Un directorio es un objeto que
relaciona de forma unívoca un
nombre con un archivo.
El servicio de directorios sirve para
identificar a los archivos (objetos),
por tanto ha de garantizar que la
relación [nombre — > archivo] sea
unívoca.
El servicio de directorios también
presenta una visión lógica y una
visión física. La visión lógica consiste
en el bien conocido esquema
jerárquico de nombres
Servicio de directorios – directorio
raíz
Se denomina directorio raíz al
primer directorio de la
jerarquía, recibiendo los demás
el nombre de subdirectorios.
El directorio raíz se representa
por el carácter
(“/”),dependiendo del sistema
operativo.
Servicio de directorios – nombre
relativo o local
Es el nombre asignando al
archivo dentro del subdirectorio
en el que está el archivo, del
nombre o camino absoluto, que
incluye todos los nombres de
todos los subdirectorios que
hay que recorrer desde el
directorio raíz hasta el objeto
considerado, concatenados por
el símbolo “/”.
Servicio de directorios
La ventaja del esquema
jerárquico es que permite una
gestión distribuida de los
nombres, para garantizar de
forma sencilla que no exista
nombres repetidos.
Servicio de directorios – visión física
La visión física del sistema de
directorios consiste en unas
estructuras de información que
permiten relacionar cada
nombre lógico con la
descripción física del
correspondiente archivo.
En esencia, se trata de una
tabla NOMBRE- IDENTIFICADOR
por cada subdirectorio.
Servicio de directorios – visión física
El NOMBRE no es mas que el
nombre relativo del archivo,
mientras que el IDENTIFICADOR
es una información que permite
localizar la descripción física
del archivo.
Servicio de directorios - servicios
Un objeto directorio es básicamente un conjunto de
entradas que relacionan nombres y archivos
El servidor de archivos incluye una serie de servicios
que permiten manipular directorios:
Crear un directorio.
Borrar un directorio.
Abrir un directorio.
Leer un directorio.
Cerrar un directorio.
Servidor de archivos – servicios de
directorios – crear directorio
Crea un objeto directorio y lo sitúa en el árbol de
directorios donde se especifique en el nombre,
absoluto o relativo, del nuevo directorio.
Para crear en una línea de comandos de CMD un
directorio se puede emplear el
comando MD (o MKDIR).
Servidor de archivos – servicios de
directorios – crear directorio
Ejercicio 1:
Crear el directorio
llamado pruebas
utilizando
El comando MD y/o
MKDIR
Servidor de archivos – servicios de
directorios – crear directorio
Ejercicio 2:
crear los directorios d1 y d2,
dentro del directorio de
pruebas.
MD pruebas\d1
MD pruebas\d2
Ó
MD pruebas\d1 pruebas\d1
Comprobar usando el
comando MKDIR
Servidor de archivos – servicios de
directorios – abrir un directorio
Abre un directorio para leer los datos del mismo. Al
igual que un archivo, un directorio debe ser abierto
para poder acceder a su contenido.
Esta operación vuelve al usuario un identificador,
descriptor o manejador de directorio de carácter
temporal que permite su manipulación.
Para ver el contenido (archivos y subdirectorios) de
un directorio, se puede utilizar el comando DIR.
Servidor de archivos – servicios de directorios
– abrir un directorio – cambiar de directorio
Esta operación vuelve al usuario un identificador,
descriptor o manejador de directorio de carácter
temporal que permite su manipulación.
Para ver el contenido (archivos y subdirectorios) de
un directorio, se puede utilizar el comando DIR.
El comando CD (o CHDIR) permite cambiar de
directorio.
Servidor de archivos – servicios de directorios
– abrir un directorio – cambiar de directorio
Si queremos movernos al ejercicio de crear un directorio de
pruebas
CD pruebas
Ó
CD C: ruta\pruebas
Para devolvernos al directorio anterior o de nivel superior
seria
CD ..
Y para volver a dos directorios anteriores o dos niveles
superiores seria
Servidor de archivos – servicios de directorios
– crear un archivo dentro del directorio
Ejercicio 1:
crear un archivo de texto en CMD se puede utilizar el
comando COPY
Cree dentro del directorio pruebas un archivo1.txt
Servidor de archivos – servicios de
directorios – Ver el contenido de un archivo
Ejercicio 1:
El comando TYPE permite visualizar por pantalla el contenido
de archivos de texto.
TYPE archivo1.txt
Servidor de archivos – servicios de
directorios – Ver árbol de directorios
Ejercicio 1:
El comando TREE permite ver la estructura de directorios de
un directorio concreto.
Dentro del directorio de pruebas llamar TREE
Para mostrar los archivos que están dentro de un
directorio conel comando TREE – se debe TREE /F
TREE .. - Se utiliza para ver la estructura raíz
Servidor de archivos – servicios de
directorios – Borrar un directorio
Elimina un objeto directorio de forma que nunca más
pueda ser accesible y borra su entrada del árbol de
directorios. Normalmente, sólo se puede borrar
directorio vacío, es decir, un directorio sin entradas.
Para borrar en una línea de comandos de CMD un
directorio se puede emplear el
comando RD (o RMDIR).
Servidor de archivos – servicios de
directorios – borrar un directorio
Ejercicio 1:
Crear el directorio d4
dentro del directorio
pruebas para luego
eliminarlo siempre y
cuando este este vacío
(no tenga archivos
dentro)
Servidor de archivos – servicios de
directorios – borrar un directorio
Ejercicio 2:
Para eliminar un directorio
que no este vacío al
comando RD hay que
pasarle el parámetro /S.
Cree un directorio d2 y
dentro de d2 este el
directorio d1. Cree un
archivo dentro de ambos
directorios y ahora borre