Vous êtes sur la page 1sur 44

Escuela Profesional de Ingeniería de

Sistemas e Informática x

SISTEMAS OPERATIVOS

• Profesor(a): JOSÉ F RAMONES MORLES


• Correo : joseramones.telesup@gmail.com

Unidad : 02 Temas : 1 a 4

Semestre: 2019 - I
Escuela Profesional de Ingeniería de
Sistemas e Informática x
AGENDA
1. Procesos: Definición, modelo, creación, terminación, jerarquía,
estados y transiciones
2. Estados de un proceso en memoria secundaria: swapping
3. Implementación de procesos: Modelo, estructuras del SO,
gestión de memoria, modos de ejecución
4. Procesos en Unix: Estados y creación

2
Escuela Profesional de Ingeniería de
Sistemas e Informática x
¿Qué es un Proceso?

• Concepto más importante en cualquier SO


• Abstracción  de las más antiguas e
importantes que proporcionan los SO
• “Sin la abstracción de los procesos, la
computación moderna no podría existir”
• Abstracción de un programa en ejecución
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
¿Qué es un Proceso?
• Programa  Secuencia estática de instrucciones  Pasivo
• Se quiere ejecutar las instrucciones de un programa  SO
responde  crea un proceso  le asigna recursos
• Proceso  Activo
• Cada proceso  espacio de direcciones  ejecutable/texto,
datos, pila, registros, archivos abiertos, procesos
relacionados…
• Proceso  recipiente que guarda toda la información
necesaria para ejecutar un programa
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
¿Qué es un Proceso?
Instancia de un programa, con
registros, variables y un contador
de programa
• PC  próxima instrucción
• Secuencia de código que irá recorriendo el
procesador
• SP  dónde guarda la información local
• DS, CS  a qué memoria se refiere
• Registros generales, que utiliza para
almacenar datos temporales del programa 
AX, BX,... (R0, R1,...)

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Espacios de direcciones
• Cada proceso  conjunto de direcciones a usar  0 - valor
max.
• Espacio de direcciones del proceso < memoria principal 
caso simple
• Caso contrario  Memoria Virtual
• SO crea abstracción  espacio de direcciones  memoria
principal y en el disco
• La administración de los espacios de direcciones y la
memoria física  parte muy importante de lo que hace un SO
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
¿Por qué es necesaria esta abstracción?

1.Computadora gestiona muchos computos


concurrentemente  necesita una abstracción
para describir como hacerlo
2.Para incrementar la velocidad de computación 
aprovechando la multiprogramación
3.Para compartir recursos lógicos y físicos

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Modelo del Proceso

• Todas las estructuras del SO  orientadas a la


Gestión de Procesos
• Cada proceso tiene su propia CPU virtual

• Realidad  CPU real conmuta de un proceso a otro


• Es más fácil pensar en una colección de procesos que se ejecutan en
(pseudo) paralelo
• Esta conmutación rápida de un proceso a otro  Multiprogramación

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Modelo del Proceso

(a) Multiprogramación de 4 programas


(b) Modelo conceptual para 4 procesos secuenciales independientes
(c) Solo un programa está activo a la vez
Suposición  una CPU
Chips multinúcleo  siempre se cumple c)
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Creación de Procesos
SO  construye las estructuras de datos para manejar el proceso y
reserva el espacio de direcciones en memoria principal
Eventos principales provocan la creación de procesos:
1. Arranque del sistema

2. Llamada al SO desde un proceso

3. Petición de usuario

4. Trabajo por lotes

Todos usan 2.!

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Creación de Procesos
1. Arranque del sistema
Primer plano  Interacción con el usuario
Segundo plano o Daemons  Ej. aceptar correo electrónico entrante, peticiones de pág.
Web, cron daemon
2. Llamada al SO
Trabajo a realizar  se puede formular en términos de varios procesos relacionados
entre sí
3. Petición de usuario
Sistemas interactivos  usuarios pueden iniciar un programa escribiendo un comando o
haciendo (doble) clic en un icono
4. Trabajo por lotes (batch)
Usuarios envian los trabajos  SO decide si tiene recursos para ejecutar otro trabajo
(job)  crea un proceso y ejecuta el siguiente trabajo de la cola de entrada
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Creación de Procesos  Linux
• Llamada al sistema  fork: crea una copia exacta del proceso
original
• Proceso que realiza bifurcación  proceso padre
• Nuevo proceso  proceso hijo
• Padre y el hijo  cada uno sus propias imágenes de memoria
privadas
• Si el padre cambia después una de sus variables, los cambios no
son visibles para el hijo, y viceversa
• Archivos abiertos se comparten entre el padre y el hijo  Si se
abrió cierto archivo en el padre (antes de fork)  seguirá abierto
tanto en el padre como en el hijo de ahí en adelante
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Creación de Procesos  Linux
¿Cómo saben los procesos cuál de ellos debe ejecutar el código del padre y
cuál debe ejecutar el código del hijo?

PID del hijo  llamada al SO  getpid


Si proceso hijo termina  el padre recibe el PID de este hijo
Un padre puede tener muchos hijos, y los hijos también pueden tener hijos
 un proceso original puede construir todo un árbol completo de hijos,
nietos y más descendientes
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Creación de Procesos  Linux

Explique salidas de este código


Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Terminación de Procesos
Tarde o temprano  proceso terminará  por lo general, debido a una de las
siguientes condiciones:
1. Salida normal (voluntaria)
Ha concluido su trabajo  Ej. exit en UNIX y ExitProcess en Windows. Ej.
compilador, procesadores de palabras, navegadores de Internet
2. Salida por error (voluntaria)
Compilador  compilar un archivo que no existe  termina
Procesos interactivos orientados a pantalla por lo general no terminan cuando
reciben parámetros incorrectos

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Terminación de Procesos
3. Error fatal (involuntaria)
Propio proceso  debido a un error en el programa. Ej:
 Ejecutar una instrucción ilegal
 Hacer referencia a una parte de memoria no existente
 Memoria no disponible
 División entre cero
 Error en operación de E/S
 Error de protección, etc.
Proceso puede indicar al SO que desea manejar ciertos errores por sí
mismo  el proceso recibe una señal (se interrumpe) en vez de terminar
 Manejo de Excepciones  Robustez
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Terminación de Procesos
4. Eliminado por otro proceso (involuntaria)
Llamada que indique al SO que elimine otro proceso  En UNIX es kill,
en Win32 es TerminateProcess

En ambos casos  proceso eliminador debe tener la autorización


necesaria para realizar la eliminación

En algunos sistemas, cuando un proceso termina (ya sea en forma


voluntaria o forzosa)  todos los procesos que creó se eliminan de
inmediato también  Ni Windows ni UNIX trabajan de esta forma

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Jerarquía de Procesos
UNIX:
Un proceso y todos sus hijos + sus posteriores descendientes  Grupo de
procesos
Proceso init  lee un archivo que le indica cuántas terminales hay  utiliza
fork para crear un proceso por cada terminal (esperan a que alguien inicie la
sesión)  Si un inicio de sesión es Ok  se ejecuta un shell para aceptar
comandos  se pueden iniciar más procesos y así sucesivamente
Todos los procesos en el sistema completo pertenecen a un solo árbol  init
en la raíz
Los procesos en UNIX no pueden desheredar a sus hijos

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Jerarquía de Procesos
Windows:
NO tiene concepto de jerarquía de procesos

Todos los procesos son iguales

Única sugerencia de jerarquía de procesos  se crea un


proceso, el padre recibe un token (llamado manejador) que
puede utilizar para controlar al hijo  Sin embargo, tiene la
libertad de pasar este indicador a otros procesos, con lo cual
invalida la jerarquía
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Estados de un proceso

Corriendo

• Corriendo (Running)  usando el CPU


• Listo (Ready)  para correr  temporalmente parado para que otro proceso corra
• Bloqueado (Blocked)  no puede estar listo hasta que algún evento externo suceda

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Transiciones de estados de un proceso
• Nuevo a Listo  SO ejecuta nuevo proceso 
según límites de nro. de procesos y cantidad de
memoria virtual

• Listo a Corriendo / Corriendo a Listo  tarea


del planificador del CPU según algoritmo

• Corriendo a Saliente  terminación voluntaria o


involuntaria Corriendo

• Corriendo a Bloqueado  se bloquea


esperando evento (E/S)

• Bloqueado a listo  respuesta a evento ya


disponible
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Transiciones de estados de un proceso

Usando 2 colas  de Listos y de Bloqueados

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Transiciones de estados de un proceso

Usando múltiples colas de bloqueados


Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Estados en memoria secundaria
Memoria principal no puede
almacenar mas procesos! 
necesario el uso de la
memoria secundaria  apoyo
a la gestión de los procesos

Swapping (memoria de
intercambio)  mover parte o
todo un proceso de memoria
principal al disco

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Swapping
Ventajas
Permite correr una mayor cantidad de procesos y bien configurada  puede
mejorar el rendimiento de los procesos ejecutados
Desventajas
Tiempos de acceso a la memoria de apoyo (discos duros) es muy costoso
(constantemente copiando y leyendo procesos)  pueden terminar haciendo más
lenta la ejecución del proceso  Thrashing
Solución  considerar la actividad y prioridad del proceso
Si es muy activo y tiene alta prioridad se deja en memoria
Si presenta grandes lapsos de inactividad es conveniente pasarlo a disco
duro

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Estados en memoria secundaria
Nuevos estados a incluir:

Listo/Suspendido  El proceso está en


almacenamiento secundario pero está disponible
para su ejecución tan pronto como sea cargado en
memoria principal

Bloqueado/Suspendido  El proceso está en


almacenamiento secundario, esperando un evento

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Estados en memoria secundaria

Corriendo

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Estados en memoria secundaria
Razones por las cuales un proceso es suspendido
• Swapping  SO necesita liberar suficiente memoria principal para traer
otro proceso a estado Listo
• SO suspende un proceso en segundo plano o de utilidad
• Solicitud interactiva del usuario  suspende ejecución de un programa
en depuración
• Temporización  Proceso se ejecuta periódicamente  se suspende
mientras espera el siguiente intervalo de ejecución
• Solicitud del proceso padre  suspende la ejecución de un
descendiente, para examinar o modificar dicho proceso o para coordinar
la actividad de varios procesos descendientes
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Implementación de Procesos - Modelo
Modelo  Procesos Secuenciales  solo un programa está corriendo
a la vez  Multiprogramación
Los procesos ejecutan programas:
 Escritos por el usuario
 Los que son parte del SO
Si ocurre una interrupción  SO deja de ejecutar el proceso actual y
ejecuta el proceso que está bloqueado esperando esta interrupción

En lugar de pensar en las interrupciones  pensar en procesos que se


bloquean cuando están esperando que algo ocurra y se desbloquean
cuando ocurre y pasan a estar listos para continuar ejecutándose

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Implementación de Procesos - Modelo

Nivel más bajo del SO  Planificador  con una variedad de procesos encima de el
Manejo de las interrupciones y los detalles relacionados con iniciar y detener los
procesos  se ocultan en el Planificador
Resto del SO  muy bien estructurado en forma de procesos

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Implementación de Procesos
Información necesaria para que el SO  controle los procesos y gestione sus
recursos de estos:

1. Estructuras de Control del SO


El SO construye y mantiene tablas de información sobre cada entidad que
gestiona

Archivos
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Implementación de Procesos
2. Tabla de Procesos

El SO crea y gestiona esta tabla (arreglo de estructuras)  con


sólo una entrada por cada proceso (PCB)
PCB  Atributos del estado del proceso  contador de
programa, apuntador de pila, asignación de memoria, estado de
sus archivos abiertos, información de contabilidad y
planificación, y todo lo de más que debe guardarse acerca del
proceso cuando éste cambia del estado en ejecución a listo o
bloqueado  para poder Reiniciarse posteriormente  como
si nunca se hubiese detenido
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Implementación de Procesos
Bloque de Control de Proceso (PCB: Process Control
Block)
• Identificador (PID: Process IDentifier)
• Estado
• Información de Planificación (prioridad, etc. )
• PC
• Contexto específico  registros y pila (espacio de
direccionamiento del proceso)
• Estatus de E/S  Incluye apuntadores a cualquier archivo
abierto por el proceso
• Información de cuenta  tiempo del procesador consumido
hasta el instante, temporizadores asociados
• Información para gestión de memoria  memoria virtual
• IPC…
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Implementación de Procesos

Estructura General de las tablas de control del SO


Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Implementación de Procesos – Gestión de Memoria

Conjunto de programa, datos, pila, y atributos  imagen del


proceso

La posición de esta imagen dependerá del esquema de gestión


de memoria que se utilice

Lo más simple  imagen del proceso se mantiene como un


bloque de memoria continuo  en memoria secundaria,
habitualmente disco

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Implementación de Procesos – Gestión de Memoria
SO puede gestionar un proceso  si al menos una pequeña
porción de su imagen se mantiene en memoria principal
Para ejecutar el proceso  la imagen del proceso completa se
debe cargar en memoria principal o al menos en memoria
virtual
SO  necesita conocer la posición en disco de cada proceso, y
para cada proceso que se encuentre en memoria principal, su
posición en dicha memoria

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Implementación de Procesos – Modos de Ejecución
Modo menos privilegiado  modo usuario, programas de usuario
típicamente se ejecutan en este modo

Modo más privilegiado  modo núcleo (kernel)  núcleo del SO


 engloba las funciones más importantes del sistema

El motivo por el cual se usa el modo usuario es claro  se necesita


proteger al SO y a las tablas claves del mismo
En modo núcleo  el SO tiene control completo del procesador y de
sus instrucciones, registros y memoria

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Procesos en Unix
 Proceso UNIX  conjunto de estructuras de datos 
Proporcionan al SO toda la información necesaria para
manejar y activar los procesos
 Imagen del proceso organizada en tres partes 
contexto a nivel de usuario, contexto de registros, y
contexto a nivel de sistema
 La creación de procesos en UNIX  por medio de la
llamada al sistema fork()

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Procesos en Unix - Estados

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Procesos en Unix - Estados
1. Ejecución (running) de un proceso
comienza en modo kernel  luego va a
modo usuario

2. Transiciones de running a espera son desde


ejecución en modo kernel

3. Transiciones de running a listo son desde


ejecución en modo kernel

4. Proceso termina desde running en modo


kernel

5. Proceso termina  queda en estado zombie


 hasta que su padre hace una de las
llamadas wait
Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Procesos en Unix - Creación
1. Solicita la entrada  a tabla de procesos para el nuevo proceso Hijo
2. Asigna un identificador de proceso único  al proceso Hijo
3. Copia imagen del proceso Padre  Hijo, con excepción de las regiones
de memoria compartida
4. Incrementa contador de cualquier archivo en posesión del padre  para
reflejar el proceso hijo, que ahora también posee dichos archivos
5. Asigna al proceso Hijo el estado Listo para Ejecutar
6. Devuelve el PID del proceso Padre y PID proceso Hijo = 0

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x
Procesos en Unix - Creación

Sistemas de Operación
Escuela Profesional de Ingeniería de
Sistemas e Informática x

¡Gracias!
Escuela Profesional de Ingeniería de
Sistemas e Informática x

Vous aimerez peut-être aussi