Diapositivas de La Unidad 1-1

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 53

Sistemas Operativos

Unidad

Sistemas Operativos y
Procesos

Docente: Ing. Darwin Díaz Garrampié


Logro
Al finalizar la unidad, el estudiante analiza la gestión de procesos
en un sistema operativo e instala una máquina virtual para
virtualizar un sistema operativo de software libre.

Video
Imagen
docente Importancia
Permite comprender los fundamentos de los sistemas operativos
para interpretar la ejecución dinámica de procesos dentro de su
contexto.
Contenido general
 Sistemas operativos
 Máquinas virtuales
 Gestión de procesos.
 Instalación de sistema operativo GNU/Linux,
virtualizado.
Sistemas Operativos

Fundamentos de SO

Clasificación de Sistemas

Software Libre
Evolución de SO
• Al inicio el computador no tenía SO.
• El programador creaba los circuitos eléctricos mediante la conexión de
cables a los tableros de conmutación (funciones básicas)
• En 1950, se introdujeron las tarjetas perforadas, (se podían leer
después)
Ideas de Sistema
Operativo

Administra
HW

Administra Sistema
SW Operativo

Programa
Ideas de SO
• SO para servidores: Diseñados para para optimizar el uso del hardware.
• SO para computadoras: soportan desde complejos juegos hasta
aplicaciones de negocios.
• SO para móviles: Diseñados para trabajar con escasos recursos de HW.
• Algunos SO, tienen que ser prácticos, otros eficientes y otros ambos.
Principales SO’s
Concepto de SO
Un sistema operativo es un programa o conjunto de programas, que en un
sistema informático gestiona recursos de hardware y provee servicios a
los programas de aplicación, ejecutándose en modo privilegiado respecto
a los demás.
Funciones de SO
• SO como Máquina Extendida:
Oculta al programador la complejidad del hardware, mostrando una capa
de software que maneja todas las partes del sistema.
• SO como Administrador de Recursos:
Gestiona la asignación de recursos ante solicitudes simultáneas para el
recurso.
Clasificación de SO
Existen 5 tipos Sistemas Operativos:

SO por lotes

SO de multiprogramación
SO de tiempo compartido

SO de tiempo real

SO distribuidos
SO por lotes
• Procesa conjuntos de trabajos con características comunes al mismo
tiempo, con poca o ninguna interacción entre los usuarios y los
programas en ejecución.
• Fueron introducidos para aumentar la capacidad de procesamiento de
los programas
SO de multiprogramación
• Alberga varios programas en la memoria principal.
• Soporta la ejecución de dos o mas programas en simultaneo.
• Comparte recursos del sistema.
• Aprovecha al máximo la utilización del CPU.
SO de tiempo compartido
• Proporciona un reparto equitativo de los recursos, dando la impresión a
los usuarios que poseen una computadora independiente.
• Los gestores de recursos proporcionan aislamiento y protección a los
programas de todos los usuarios.
SO de tiempo real
• Otorga la mayor importancia a los procesos en el momento requerido.
• Lo usan entornos donde se procesan gran cantidad de sucesos, en
breves tiempos o dentro de ciertos plazos.
• Utilizados en entorno de tiempo crítico.
• Su objetivo es proporcionar rápidos tiempos de respuesta.
SO distribuidos
• Se muestra a los usuarios en forma de un sistema tradicional con un
procesador, aun cuando está compuesto de varios procesadores.
• Los usuarios no saben dónde se están ejecutando sus programas o en
dónde se encuentran sus archivos.
• Permiten con frecuencia que las aplicaciones se ejecuten en varios
procesadores al mismo tiempo.
Arquitectura de SO
Kernel
• El kernel o núcleo, es el software que constituye la parte más
importante del sistema operativo, dónde se realizan las funciones
básicas como la gestión de procesador, memoria y dispositivos.
• Acceder al hardware directamente es muy complejo, por lo que los
núcleos suelen implementar una serie de abstracciones del hardware.
• Esto permite esconder la complejidad, y proporciona una interfaz
limpia.
Empleo de Sistemas Operativos

¿Cuántos de los sistemas operativos (vistos


anteriormente) conoce ?

¿En qué plataformas ha utilizado estos sistemas


operativos?

¿Para qué utilizamos los sistemas operativos?


Máquinas Virtuales
Máquinas Virtuales
Gestión de procesos

Administración de Procesos

Planificación de la CPU

Bloqueos Mutuos
Soporte de un SO
• Administración de Procesos
• Administración de Memoria
• Administración de archivos
• Administración de dispositivos

CPU RAM

Monitor, teclado,
impresora, ratón Datos,
programas
Adm. de Procesos
• Una función importante del administrador del procesador es seguir la
pista del estado de cada proceso.
• Supervisa si la CPU está ejecutando un proceso o en espera de un
comando para terminar la ejecución.
• Puede compararse con un controlador de tráfico, debido a que maneja
las transiciones de los procesos.

Administrador del procesador Administrador de memoria


(CPU) (memoria principal o memoria
de acceso aleatorio RAM)

Administrador de dispositivos
(teclados, impresora, unidades
de disco, módem, monitor, etc.) Administrador de archivos
(archivos de programa, archivos
de datos, compiladores, etc.)
Adm. de Procesos
• Es el módulo del SO, que se encarga de administrar la ejecución de
programas de usuario o del sistema.
• Desde el punto de vista del SO, un proceso es un objeto más que hay
que gestionar y al cual hay que dar servicio.
• En los SO de multiprogramación o de tiempo compartido, se intenta
maximizar la utilización de la CPU, mediante ejecución simultánea.
Proceso
• El proceso es un programa en ejecución caracterizado por su contador
de programa, sus registros del procesador, pila, datos, etc. Toda esta
información se almacena en una estructura de datos llamada bloque de
control de procesos (PCB).
• Un programa es una secuencia de instrucciones escrita en un lenguaje.
• Un programa es un concepto estático, mientras que un proceso es
dinámico.
Identificadores
• Process ID (PID)
Identificador del proceso, asignado por el sistema, este número debe
utilizarse por el administrador para referirse a un proceso dado, al
ejecutar un comando.
• Parent Process ID (PPID)
Es el PID del proceso padre. La creación de nuevos procesos en Unix se
realiza por la vía de duplicar un proceso existente invocando al comando
fork(), al proceso original se le llama "padre" y al nuevo proceso "hijo".
Bloque Control BCP
Contiene información sobre cada proceso, comprende:
• Estado del proceso,
• Contador de programa,
• Registros de CPU,
• Información de planificación de CPU,
• Información de manejo de memoria,
• Información de contabilidad,
• Información sobre E/S.
Estados de Proceso
• A medida que se ejecuta el proceso, va cambiando de estado según su
actividad. Los estados básicos son:
1. En ejecución: El proceso tiene asignado la CPU y se están ejecutando
las instrucciones.
2. Listo: El proceso está esperando ser asignado a un procesador.
3. Bloqueado: El proceso está esperando a que se produzca un suceso o
evento como la terminación de una operación de E/S o la recepción
de una señal.
Transiciones Proceso
• Despachar
• Expiración de tiempo
• Bloquear
• Despertar
Operaciones
• Crear y destruir
• Suspender y reanudar
• Cambiar la prioridad
• Bloquear y "desbloquear“
• Planificar (asignarle la CPU)
• Comunicación entre procesos.
Threads o Hilos
• Para aprovechar al máximo las capacidades de los sistemas
multiprocesador algunos SO y LP permiten a un programa dividirse en
varias ramas (hilos) que se puedan ejecutar en paralelo.
• Cada uno de los hilos se puede ejecutar en un procesador distinto, por
lo que se acelera la ejecución del programa.
• Los hilos son considerados procesos débiles o ligeros.
Planificación de procesos
• Un planificador es un módulo del S.O. que selecciona el siguiente
trabajo a admitir en el sistema y el siguiente proceso que tomará el
control sobre el procesador.
• El objetivo primario de la planificación es optimizar el rendimiento del
sistema de acuerdo con los criterios considerados más importantes por
los diseñadores del mismo.
• Gobiernan el orden en que se ejecutan los trabajos en el SO.
Planificación de procesos
• El procesador, también conocido como CPU, es la parte de la PC que
lleva a cabo los cálculos y ejecuta los programas.
• La multiprogramación requiere que el procesador se "asigne" a cada
tarea o proceso durante un periodo y se "desasigne" en el momento
apropiado. Si el procesador se desasigna durante la ejecución de un
programa, esto debe ocurrir de manera que se pueda reiniciar después
con toda facilidad posible.
• Es un procedimiento delicado.
Ciclo de ráfaga y de E/S
• Considerando, un número de programas residentes en memoria, y el
CPU cambiando entre estos programas tal que cuando uno de ellos está
esperando por I/O, otro puede ser ejecutado.
• La diferencia entre ambos conceptos:
1. Ráfagas de CPU: es el ciclo en donde se realizan las instrucciones
del proceso.
2. Ráfagas de E/S: es el ciclo en donde se utilizan o esperan los
dispositivos de Entrada y Salida.
Ciclo de ráfaga y de E/S
Planificador de la CPU
• El cambio del CPU entre los programas implica la toma de decisiones
acerca de cual proceso ejecutar a continuación de una lista de procesos
en estado listo.
• Esta decisión implica el uso de un planificador (scheduler).
• El algoritmo usado para decidir se denomina algoritmo de planificación.
• Hay que tomar en cuenta que la labor de cambio de proceso del
planificador también cuesta tiempo o cuesta uso del CPU.
Planificador de la CPU
Los criterios para la planificación, son:
• Equidad —asegurarse de que cada proceso reciba una parte justa del
tiempo de CPU.
• Eficiencia —mantener la CPU ocupada todo el tiempo.
• Tiempo de respuesta —minimizar el tiempo de respuesta para
usuarios interactivos.
• Retorno —minimizar el tiempo que los usuarios por lotes tienen que
esperar sus salidas.
• Volumen de producción —maximizar el número de trabajos
procesados por hora.
Algoritmos Planificación
• Son estrategias para planificar la atención de procesos que llegan a la
cola de listos, con el objeto de mantener un adecuado rendimiento del
sistema de acuerdo a los criterios que se buscan cumplir.
• Cada sistema tiene sus propios criterios.
• Cualquier algoritmo de planificación que favorezca algún tipo de tareas
afecta a otro, pues la cantidad de tiempo disponible en CPU es finito.
FCFS
• First Come, First Serve.
• También referido como FIFO (First In, First Out)
• El esquema más simple de planificación
• Apto para multitarea cooperativa
• Cada proceso se ejecuta en órden de llegada.
• Hasta que suelta el control
SJF – Shortest Job First
• Se usa para trabajos en batch o de procesamiento por lotes en los
cuales se puede saber cual es el tiempo de duración de la ejecución de
cada proceso y entonces se puede seleccionar primero el trabajo más
corto.
• El problema que se presenta con éste algoritmo es que los grandes
procesos podrían sufrir de inanición dado que cualquier proceso
pequeño se "cuela" sobre uno de mayor tamaño y el proceso grande
nunca obtenga procesamiento.
Por Prioridad
• En la planificación round-robin todos los procesos son tratados con la
misma prioridad. Para el caso de este tipo de planificación a cada
proceso se le asigna una prioridad y los mismos son ejecutados.
• En un sistema con bastante carga de trabajo, es posible que un proceso
de baja prioridad nunca llegue a ser ejecutado si siempre están llegando
procesos de alta prioridad al sistema.
Round Robin
• En este tipo de planificación cada proceso tiene asignado un quantum
de tiempo para ejecutarse y en el caso de que no pueda terminar la
ejecución en su quantum el proceso pasa de nuevo a la cola de procesos
para ser ejecutado por otro quantum luego de recorrer la cola para
asegurarse que todos los procesos reciban ese quantum de
procesamiento.
Algoritmos de Planificación
Bloqueos Mutuos
• El bloqueo mutuo, interbloqueo, traba mortal, deadlock, o abrazo
mortal, es el bloqueo permanente de un conjunto de procesos o hilos
de ejecución en un sistema concurrente que compiten por recursos del
sistema o bien se comunican entre ellos.
• A diferencia de otros problemas de concurrencia de procesos, no existe
una solución general para los interbloqueos.
Modelo del Sistema – Interbloqueo
BLOQUEADO
EN ESPERA
Asignación de Recursos

PROCESO 1

INTERBLOQUEO
GRABADOR DVD
BLOQUEADO SCANNER
EN ESPERA

PROCESO 2
Condiciones Interbloqueos
• Condición de exclusión mutua
Existencia al menos de un recurso compartido por los procesos, al cual
sólo puede acceder uno simultáneamente.
• Condición de posesión y espera
Al menos un proceso Pi ha adquirido un recurso Ri, y lo mantiene mientras
espera al menos un recurso Rj que ya ha sido asignado a otro proceso.
Condiciones Interbloqueos
• Condición de no expropiación
Los recursos no pueden ser apropiados por los procesos, es decir, los
recursos sólo podrán ser liberados voluntariamente por sus propietarios.
• Condición de espera circular
Dado el conjunto de procesos P0...Pn, P0 está esperando un recurso
adquirido por P1, que está esperando un recurso adquirido por P2,... ,que
está esperando un recurso adquirido por Pn, que está esperando un
recurso adquirido por P0. Esta condición implica la condición de retención
y espera.
Evasión de bloqueos
• Los bloqueos mutuos pueden ser evitados si se sabe cierta información
sobre los procesos antes de la asignación de recursos. Para cada
petición de recursos, el sistema controla si satisfaciendo el pedido entra
en un estado inseguro, donde puede producirse un bloqueo mutuo.
• Para que el sistema sea capaz de decidir si el siguiente estado será
seguro o inseguro, debe saber por adelantado y en cualquier momento
el número y tipo de todos los recursos en existencia, disponibles y
requeridos.
¿Cuándo ejecuta procesos dentro de un sistema
operativo?
Empleo de Procesos

¿Cómo es el rendimiento de su PC o móvil cuando


ejecuta muchos procesos?

¿Qué acciones realiza para ayudar a mejora el


rendimiento de su dispositivo?
Conclusiones
• El Sistema Operativo administra los recursos de HW y actúa
como una máquina virtual.
• El SO es un software que ejecuta procesos de cada aplicación
solicitada por el usuario y utiliza componentes de HW para
lograr su objetivo.
• El procesador ejecuta muchos procesos dentro del SO para
atender las solicitudes del sistema y del usuario.
• Los algoritmos de planificación de CPU, son los que deciden
que proceso atender primero.
Gracias
Docente: Darwin Díaz Garrampié

También podría gustarte