Download El sistema operativo y los procesos

Document related concepts

Proceso de arranque en Linux wikipedia , lookup

Sistema operativo wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Hilo de ejecución wikipedia , lookup

RC 4000 wikipedia , lookup

Transcript
Tema 16: El sistema operativo y los procesos
1
M. en C. Edgardo Adrián Franco Martínez
http://www.eafranco.com
[email protected]
@edfrancom
edgardoadrianfrancom
Estructuras de datos (Prof. Edgardo A. Franco)
• 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
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Contenido
• Concepto de Proceso
•
•
•
•
Planificador de procesos
Estados de un proceso
Administrador de memoria
Memoria de un proceso
2
• 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.
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
El sistema operativo
3
• 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.
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Objetivos del Sistema Operativo:
Usuarios
Software de aplicaciones
Software del Sistema
Sistema Operativo
Hardware
4
• Núcleo o Kernel
• Sistema de entrada/salida
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Componentes básicos de un sistema
operativo
• Administrador de archivos
• Intérprete de comandos
5
• 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".
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Núcleo o Kernel
• En general, el núcleo se encarga de controlar el resto de los
módulos y sincronizar su ejecución.
6
• 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.
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Sistema de entrada/salida
7
• 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.
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Administrador de archivos
8
• 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
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Interprete de comandos
9
• 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.
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Concepto de Proceso
• 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
• 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=n
…
Proceso
ID=03
Proceso
ID=02
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
El planificado de procesos
Procesador (CPU)
Proceso
ID=01
scheduler
11
process
control
memory
management
• 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.
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
• Normalmente se utiliza una jerarquía de prioridades que
determinan cómo se asignará el tiempo del CPU a cada programa.
12
• 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
Proceso
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Estados de un proceso
memory
management
13
en ejecución
despachar
time-out
listo
despertar
bloqueo
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
• En todo sistema operativo un proceso puede al
menos estar en tres estados "en ejecución", "listo" y
"bloqueado".
bloqueado
14
• 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.)
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
• 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.
15
16
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
• 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.
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Administrador de memoria
17
18
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
• 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.
Sistema Operativo
CPU
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Memoria de un proceso
Proceso n
Memoria
19
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
• 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 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
• 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
• El segmento de datos alberga las declaraciones globales
(e.g. variables del programa principal y constantes globales).
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
• 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 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
Memoria de
proceso activo
Datos
Pila
(Stack)
16 El sistema operativo y los procesos
Algoritmia y programación estructurada
Prof. Edgardo Adrián Franco Martínez
Código
Montículo
(Heap)
Pila
23