Estructuras de datos (Prof. Edgardo A. Franco)
1 M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom
Tema 16: El sistema operativo y los procesos
Contenido • El sistema operativo • Componentes básicos de un sistema operativo
• Núcleo o Kernel • Administrador de memoria • Sistema de entrada/salida • Administrador de archivos • Interprete de comandos
• Concepto de Proceso • Planificador de procesos • Estados de un proceso • Administrador de memoria • Memoria de un proceso
2
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
El sistema operativo • Un Sistema operativo (SO) es un software que
actúa de interfaz entre los dispositivos de hardware de una computadora y los programas usados por el usuario.
• Es responsable de gestionar, coordinar las actividades y llevar a cabo el intercambio de los recursos así como actuar como plataforma para que el resto de aplicaciones del usuario se ejecutan en un equipo de cómputo.
3
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Objetivos del Sistema Operativo: • Servir como interfaz entre el equipo físico (hardware)
de una computadora y el usuario y resto del software, con el fin de presentar una "cara" más sencilla y amistosa al mismo (fácil interoperabilidad).
• Optimar y gestionar los recursos (tanto de software como de hardware) con que cuenta una computadora y hacer utilizable ésta última.
Hardware
Sistema Operativo
Software del Sistema
Software de aplicaciones
Usuarios
4
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Componentes básicos de un sistema operativo • Núcleo o Kernel
• Sistema de entrada/salida
• Administrador de archivos
• Intérprete de comandos
5
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Núcleo o Kernel • Es el módulo de más bajo nivel de un sistema operativo.
Entre las tareas que desempeña se incluyen el manejo de las interrupciones y los procesos "process control", la asignación de trabajo al procesador "scheduler", la asignación de la memoria a los procesos y su gestión "memory management" y el proporcionar una vía de comunicación entre los distintos programas "IPC". • En general, el núcleo se encarga de controlar el resto de los
módulos y sincronizar su ejecución.
6
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Sistema de entrada/salida • Este componente presenta al usuario la E/S de datos como
una cuestión independiente del dispositivo; es decir, para los usuarios, todos los dispositivos tienen las mismas características y son tratados de la misma forma, siendo el sistema operativo el encargado de atender las particularidades de cada uno de ellos (como su velocidad de operación). Una técnica muy común, especialmente en salida, es el uso de "spoolers". Los datos de salida se almacenan de forma temporal en una cola situada en un dispositivo de almacenamiento masivo (el spool), hasta que el dispositivo periférico requerido se encuentre libre; de este modo se evita que un programa quede retenido porque el periférico no esté disponible. El sistema operativo dispone de llamadas para añadir y eliminar archivos del spool.
7
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Administrador de archivos • Se encarga de mantener la estructura de los datos y los programas del
sistema y de los diferentes usuarios (que se mantienen en archivos) y de asegurar el uso eficiente de los medios de almacenamiento masivo.
• El administrador de archivos también supervisa la creación, actualización y eliminación de los archivos, manteniendo un directorio con todos los archivos que existen en el sistema en cada momento y coopera con el módulo administrador de memoria durante las transferencias de datos desde y hacia la memoria principal. Si se dispone de un sistema de memoria virtual, existen transferencias entre la memoria principal y los medios de almacenamiento masivo para mantener la estructura de la misma.
• Los archivos almacenados en los dispositivos de almacenamiento masivo tienen distintos propósitos. Algunos contienen información que puede ser compartida. Otros son de carácter privado, e incluso secreto. Por tanto, cada archivo está dotado de un conjunto de privilegios de acceso, que indican la extensión con la que se puede compartir la información contenida en el archivo.
8
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Interprete de comandos
• Muchos comandos son proporcionados por el sistema operativo mediante estatutos de control que tienen las siguientes funciones • Creación de procesos y administración • Administración de E/S • Administración de almacenamiento secundario • Administración de memoria principal • Acceso al sistema de archivos • Protección • Acceso a la red
9
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Concepto de Proceso • Un proceso es un programa en ejecución, los procesos
son gestionados por el sistema operativo y están formados por:
• Las instrucciones de un programa destinadas a ser ejecutadas
por el microprocesador.
• Su estado de ejecución en un momento dado, esto es, los valores de los registros de la CPU para dicho programa.
• Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.
• Otra información que permite al sistema operativo su planificación.
10
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
El planificado de procesos • En el núcleo o kernel de todo sistema operativo
existe un submódulo denominado scheduler (planificador), el cual se encarga de asignar tiempo del procesador a los programas, de acuerdo a una cierta política de planificación que varía de un sistema operativo a otro.
Proceso ID=02
Proceso ID=03
Proceso ID=n … Procesador (CPU)
scheduler
Proceso ID=01
process control
memory management
11
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
• Normalmente se utiliza una jerarquía de prioridades que determinan cómo se asignará el tiempo del CPU a cada programa.
• Una política de planificación muy común en los sistemas de multiprogramación y multiproceso son las técnicas de "time slicing" (fracción de tiempo). Se asigna a cada programa un corto intervalo de tiempo del procesador. Si el programa no ha terminado durante este intervalo de tiempo, vuelve a la cola de programas.
12
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Estados de un proceso • Los procesos son creados y destruidos por el sistema
operativo por el modulo "process control" dentro del kernel, de la misma forma el kernel también este se debe hacer cargo de la comunicación entre procesos "IPC (Inter-process Communication)", a petición de otros procesos y de la memoria principal que este puede usar "memory management".
scheduler process control
memory management
Proceso 13
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
• En todo sistema operativo un proceso puede al menos estar en tres estados "en ejecución", "listo" y "bloqueado". en ejecución
listo bloqueado
despachar
time-out bloqueo
despertar
14
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
• En ejecución: Sólo uno de los procesos preparados se está ejecutando en cada momento (monoprocesador). Si se tienen más recursos de procesamiento (multiprocesador) la cantidad de procesos posibles de ejecutarse simultáneamente se encuentran en ejecución.
• Listo: Proceso que está listo para ejecutarse. Simplemente está esperando a que el sistema operativo le asigne un tiempo de CPU.
• Bloqueado: Proceso que por algún motivo paso a este estado (Se mando a dormir, se espera alguna respuesta de e/s, se detecto un error en su ejecución, se espera acceder a un recurso.)
15
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
16
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Administrador de memoria • Este módulo dentro del kernel (memory management)
se encarga de asignar ciertas porciones de la memoria principal (RAM) a los diferentes programas o partes de los programas que la necesiten, mientras el resto de los datos y los programas se mantienen en los dispositivos de almacenamiento secundario. Cuando se asigna una parte de la memoria principal se hace de una forma estructurada, siguiendo un determinado orden. La forma más común de administración de la memoria supone crear una memoria virtual; con este sistema, la memoria de la computadora aparece, para cualquier usuario del sistema, mucho mayor de lo que en realidad es. 17
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
18
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Memoria de un proceso • Durante la ejecución del proceso, todos los datos
manipulados (incluido el propio código del programa compilado) se alojan en la memoria principal, ya que esta ofrece menor latencia (menor tiempo de comunicación con el CPU) respecto de los medios secundarios.
CPU
Memoria
Proceso n
Sistema Operativo
19
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
• Al ejecutar un nuevo programa el administrador de memoria del sistema operativo, asigna un bloque contiguo de memoria al proceso que se inicia (el tamaño es variable).
20
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
• Durante la ejecución del proceso, todos los datos manipulados (incluido el propio código del programa compilado) se alojan en la memoria principal, ya que esta ofrece menor latencia (menor tiempo de comunicación con el CPU) respecto de los medios secundarios.
21
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
• Empezando por la direcciones más bajas, el segmento de código es la porción de la memoria donde se carga el programa que se ejecuta.
• El segmento de datos alberga las declaraciones globales (e.g. variables del programa principal y constantes globales).
• El montículo es la región de memoria que se toma y se libera de manera dinámica durante la ejecución del programa.
• La pila es donde se "apilan" porciones de memoria pertenecientes a funciones y/o procedimientos cuando se les llama.
22
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez
Código
Datos
Pila
Memoria de proceso activo
Pila (Stack)
Montículo (Heap)
23
16 E
l sist
ema
oper
ativ
o y
los p
roce
sos
Algo
ritm
ia y
pro
gram
ació
n es
truc
tura
da
Prof
. Edg
ardo
Adr
ián
Fran
co M
artín
ez