0% encontró este documento útil (0 votos)
22 vistas19 páginas

Conceptos Clave de Sistemas Operativos

El documento describe conceptos básicos de sistemas operativos como procesos, espacio de direcciones, tabla de procesos y estados de procesos. También explica temas como creación de procesos, cambio de contexto e introducción a la planificación de procesos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
22 vistas19 páginas

Conceptos Clave de Sistemas Operativos

El documento describe conceptos básicos de sistemas operativos como procesos, espacio de direcciones, tabla de procesos y estados de procesos. También explica temas como creación de procesos, cambio de contexto e introducción a la planificación de procesos.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

Sistemas Operativos

Programa
Conjunto de instrucciones, código. Elemento pasivo.

Proceso
Programa en ejecución. (Ente dinámico)
Un programa puede levantar varios procesos.
Tiene asociado un espacio de direcciones.
Sistemas Operativos: Conceptos

Espacio de Direcciones :
El espacio de direcciones es el espacio en memoria asignado al proceso.
Aquí se encuentra el código del proceso y los datos que este utiliza

Process Control Block (PCB) :

El Process Control Block, es una ficha que lleva el


sistema operativo con toda la información administrativa
de un proceso.

Estado del Proceso


Permite conocer con exactitud el estado
Process ID
del proceso, en que parte de su código
Parent Process ID

Program Counter
se está ejecutando, cual es su número
identificador, cuanta memoria tiene
Registros
asociada, cuales archivos están
Límites de memoria abiertos, etc.
Listado de archivos abiertos
Tabla de Procesos :

La tabla de procesos, es una estructura en memoria que contiene la


ubicación de los PCB de todos los procesos del sistema. A través de esta,
el kernel puede conocer el estado de cada proceso, saber en parte de la
memoria se encuentra, etc.

0 1 2 Process Table3 4 5
Estado del Proceso Estado del Proceso Estado del Proceso Estado del Proceso Estado del Proceso Estado del Proceso

Process ID Process ID Process ID Process ID Process ID Process ID

Parent Process ID Parent Process ID Parent Process ID Parent Process ID Parent Process ID Parent Process ID

Program Counter Program Counter Program Counter Program Counter Program Counter Program Counter

Registros Registros Registros Registros Registros Registros

Límites de memoria Límites de memoria Límites de memoria Límites de memoria Límites de memoria Límites de memoria

Listado de archivos abiertos Listado de archivos abiertos Listado de archivos abiertos Listado de archivos abiertos Listado de archivos abiertos Listado de archivos abiertos
Creación de un proceso :

Crear un proceso es la acción de poner en memoria un programa,


entregarle un contexto donde poder ejecutar sus instrucciones (Espacio
Virtual), registrar la información de donde está y que características
posee (PCB), e iniciar su funcionamiento (Calendarizar su ejecución).

• Opciones de ejecución:
• Concurrente
• Padre espera conclusión de hijo

• Opciones del Address Space


• Hijo es un duplicado del padre
• Hijo tiene un programa separado para cargarse

• Pasos para la creación de un proceso


• Cargar el código a la memoria
• Crear el stack vacío
• Crear o asignar PCB
• Inscribir el proceso en el scheduler
Estados de un proceso :

Nuevo proceso recién creado


Corriendo proceso en ejecución
Bloqueado proceso en espera de un evento (I/O)
Listo : proceso listo para entrar a la CPU
Terminado : proceso que ha terminado su ejecución
Listo y suspendido: Proceso listo para entrar a la CPU
Bloqueado y suspendido: Proceso Bloqueado (Esperando I/O
Cambio de contexto :
• El Cambio de contexto, es el proceso por el cual el Sistema Operativo pasa de ejecutar el
código de un proceso, a ejecutar el código de otro proceso o a ejecutar código en espacio de
kernel.
• El cambio de contexto es una labor administrativa del sistema operativo que consume tiempo
de CPU. Durante este tiempo, ningún proceso esta en ejecución por lo que se considera
overhead en la administración de procesos.

• Se denomina quantum de tiempo o quanto a un periodo de tiempo que el sistema operativo


le entrega a un proceso para que este utilice la CPU. El término del quantum es indicado por
una interrupción de reloj que es previamente programada, momento en el cual se produce un
cambio de contexto.

• Los cambios de contexto se pueden producir por:

• Termino de quantum de tiempo (interrupción de reloj)

• Syscall yield, que solicita al SO que este proceso sea colocado en la listo .

• Interrupción que provoque colocar al proceso bloqueado (I/O, semáforos, etc)


Introducción a la calendarización :

Planificacion
Componente del sistema operativo que decide cual de los procesos que esta en
estado ready es el que entrara a la CPU. Su decisión es basada según el sistema
que este administrando y es resuelta por los Algoritmos de planificación.

P3
P2 P4

P1 P5
calendarizador

P6
CPU
Tipos de planificación
No Expropiativo: una vez que inicia un proceso, lo deja correr hasta que termina,
realiza I/O o queda a la espera de otro proceso.

Expropiativo: existe quantum de tiempo determinado que se le permite a un


proceso estar en la CPU. Cuando este expira, el proceso debe salir y se debe
ingresar uno nuevo. Este método requiere de una interrupción de reloj al final del
quantum para poder ser implementado.
Sistemas por lotes

- Sin usuarios en terminales


- Algoritmos no expropiativos
- Reducido número de cambios de contexto

Sistemas Interactivos

- Algoritmos expropiativos
- No se puede permitir la monopolización des la CPU por parte un proceso
- Se asume hostilidad entre procesos.

Sistemas Tiempo Real :

- Pueden usar expropiativos y no expropiativos.


- Generalmente todos los programas trabajan colaborativamente
Objetivos de la planificación
Todos los sistemas
Equidad – dar a cada proceso una porción equitativa de tiempo de CPU
Cumplimiento de políticas – cuidar que se ponga en práctica la política establecida
Equilibrio – mantener ocupadas todas las partes del sistema

Sistemas por Lotes


Rendimiento – procesar el máximo de trabajos por hora
Tiempo de retorno – reducir al mínimo el lapso entre inicio y término de un trabajo
Utilización de CPU – mantener ocupada todo el tiempo la CPU

Sistemas Interactivos
Tiempo de respuesta – responder rápido a las solicitudes
Proporcionalidad – satisfacer las expectativas de todos los usuarios

Sistemas en Tiempo Real


Cumplir los plazos – evitar la pérdida de datos
Predicibilidad – evitar la degradación de la calidad en sistemas multimedia
Planificación en sistemas por lotes :

Primero en llegar, primero en ser atendido (FIFO)

Algoritmo mas simple de todos donde los procesos son ingresados a la


CPU en el orden que se recibieron.

CPU

De simple programación y comprensión, tiene la desventaja de ser muy


poco eficiente con trabajos de distinta duración. Si un proceso

CPU

Proceso de larga duración


detendrá a los demás hasta que
termine
Planificacion en sistemas por lotes :

Trabajo más corto primero – (SJF: Shortest Job First)

Algoritmo no expropiativo que al conocer a priori los tiempos de


ejecución de los procesos, los ordena de acuerdo a su duración

4 1 12 8 2 12 CPU

12 12 8 4 2 1 CPU

Este método acorta los tiempos promedio de ejecución


considerablemente, pero solo si se tienen disponibles todos los procesos
simultáneamente. De lo contrario no tiene efecto y su comportamiento se
asemeja a FIFO.
Planificacion en sistemas por lotes :

Tiempo Restante mas corto a continuación

Variación expropiativa de SJF donde al llegar un proceso, su tiempo de


ejecución se compara con el restante del proceso actual. Si el tiempo del
nuevo proceso es menor, se suspende el actual para ingresar el recién
llegado.

12 12 8 CPU

12 12 8 4 CPU
Planificacion en sistemas Interactivos :

Turno Circular – Round Robin

Cada proceso recibe un quantum de tiempo en la CPU, debiendo


abandonarla al término del mismo.

De simple implementación, solo se requiere tener una lista de procesos


sobre la cual ciclar.
quantum

Proc1

Proc2

Tiempo labores
administrativas
Planificacion en sistemas Interactivos :

Turno Circular – Round Robin

Problema: Elegir el tamaño del quantum.

- Si es muy pequeño, entonces se desperdiciará mucho tiempo en labores


administrativas.

- Si es muy grande, el usuario percibirá al sistema como lento


Planificacion en sistemas Interactivos :

Por Prioridades

Cada proceso tiene asignado un valor prioridad. Al momento de decidir


que proceso entra a la CPU, se selecciona aquel con mayor prioridad que
este listo para correr.

La asignación de prioridad puede ser de forma estatica (al inicio del


proceso) o de forma dinámica (durante la ejecución). En linux existe el
comando renice que permite a un administrador modificar la prioridad de
un proceso en el sistema.

Problema: Los procesos de alta prioridad pueden acaparar la CPU


provocando starvation a los procesos de baja prioridad.

P7 P1 P4 P10 CPU
Planificación en sistemas Interactivos :

Por Prioridades

El planificador puede decidir variar la prioridad de un proceso de acuerdo a


su comportamiento:

- Un proceso de I/O que tiene poco proceso y mucho acceso a disco, se le


puede dar más prioridad, pues estará la mayor parte del tiempo
bloqueado.

Variación: Clases de prioridades. Cada clase se ejecuta hasta que no


existen más procesos haciendo round robin al interior de esta. Luego se
pasa a la clase con la siguiente prioridad.
P1

P2

P3
Planificacion en sistemas Interactivos :

Planificacion por porcion equitativa

Metodología que toma en cuenta a quien pertenecen los procesos en ejecución.

Si 2 usuarios tienen la misma prioridad ante el sistema, entonces sin importar la


cantidad de procesos que tenga cada uno, se deberá entregar el 50% de la CPU a
cada usuario.

Ejemplo: Usuario 1: Procesos A B C D


Usuario 2: Proceso Z

Ejecucion: A Z B Z C Z D Z A Z ….

Por otra parte, si existe diferencia de prioridad entre estos, también se puede
modelar. Supóngase que el usuario 1 ahora tiene 3 veces mas prioridad que el
usuario 2:

Ejecucion: A B C Z D A B Z …

También podría gustarte