Vous êtes sur la page 1sur 12

Sistemas Operativos [Escriba aquí]

¿Que es un sistema Operativo?


Conjunto de órdenes y programa que controlan los procesos básicos de una
computadora y permite el funcionamiento de otros programas.

Sistema Operativo Usuario


La visión del usuario de la computadora varia___
La mayoría de los usuario dispone de un monitor, teclado, ratón etc. Un sistema
así se diseña para que un usuario monopolice sus recursos, el objetivo es
maximizar el trabajo que el usuario realice. La mayoría de los usuarios buscan
interfaces atractivas y de fácil uso, es por ello que un sistema operativo se diseña
prestando atención a las necesidades del usuario.

Sistema Operativo Sistema


Desde el punto de vista de la computadora el Sistema Operativo es el programa
relacionado internamente con el hardware , es por eso que se ve al Sistema
Operativo como un asignador de recursos. Al enfrentarse a numerosas y
posiblemente conflictos y solicitudes de recursos, el sistema operativo debe decidir
cómo asignarlos a programas y usuarios específicos de modo que la computadora
pueda operar de forma eficiente y equitativa, como hemos visto la asignación de
recursos es especialmente importante cuando muchos usuarios acceden al
sistema.

Tipo de Administradores
Procesador
Memoria
E/S
Procesos

Administrador de Procesos
Al momento de ejecutar un programa en la computadora, deberá utilizar procesos
para usar recursos necesarios para un buen funcionamiento. Si el usuario ejecuta
2 programas consecutivamente se crearan una determinada cantidad de procesos
que se sumaran a los que ya están ejecutándose y que mantendrán activo al
sistema.

El oreen en que se realizan los procesos es de acuerdo a su prioridad o algún


algoritmo de planificación de procesos lo cual consiste en decidir que procesos se
utilizan en el ____

Administrador de memoria
La memoria es usada por distintos programas al igual que con el CPU y los
dispositivos de E/S con los cuales cuenta una computadora.
La memoria es de acceso fácil y volátil ante fallas o al apagar la computadora se
pierde toda la información grabada en la memoria principal (RAM) .
Sistemas Operativos [Escriba aquí]

El S.O. se encarga a través de este administrador de la correcta utilización de la


memoria, es el que lleva un registro de que secciones se utilizan, quien las utiliza y
cuantos espacios puede utilizar para cargar un proceso.

Administrador de Proceso
Este administrador decide como asignar la CPU. Una función importante de este
administrador es seguir la pista de cada proceso, debido a que maneja la
transición de procesos de un estado al otro, puede compararse con un controlador
de tráfico.

Administrador de dispositivos
Su trabajo consiste en escoger la manera más eficiente para asignar todos los
dispositivos del sistema con base en una política de planificación elegida por los
diseñadores del sistema.

Administrador de Archivos
Este administrador le asigna la vista a todos los archivos del sistema, también
controla los permisos que tiene cada usuario, una vez que acceden a ellos
(permiso de escritura, lectura, borrar)

GUI
Es la parte del S.O. que interactúa con el usuario, en él es pensado la GUI , antes
solo se utilizaban en comandos escritos desplegados en pantalla. Hoy en día
tenemos imágenes y listas etc.
Sistemas Operativos [Escriba aquí]

Comunicación de Procesos (IPC)


Independientes
Cooperativos
Compartir memoria
Paso de mensajes

__

PCB
El bloque de control de proceso es una estructura de datos que sirve para llevar
un control de procesos y de ___
Un PCB le sirve al S.O. para tener una descripción en tiempo real de lo que está
haciendo el proceso. Un PCB tiene una vida semejante al proceso, si un proceso
es destruido junto con él se destruye su PCB borrando definitivamente toda la
información contenida en él.

Otra de las funciones de dicho bloque son el apoyo al S.O para asignar recursos al
proceso, la información de este puede cambiar entre S.O , pero básicamente se
cuenta con los descritos anteriormente.

La información que incluye el PCB puede verse de la siguiente forma:

Identificadores Numéricos:
Identificador de Proceso
Identificador de quien lo creo
Identificador del usuario

Información del manejo de memoria:


Registros base y limite
Tabla de páginas o segmentos

Información del estado del Procesador:


Registros visibles al usuario
Registros de estado y control (modo de ejecución y banderas)
Apuntadores de SSTACK

Información del control de proceso


Información del estado de calificación (estado, prioridad)
Estructura de datos ( apuntador de secuencia de listas, apuntadores archivos y
archivos abiertos)
Comunicación entre procesos
Privilegios de procesos
Administración de memoria
Utilización de recursos
Sistemas Operativos [Escriba aquí]

En los sistemas distribuidos, 2 o más procesos establecen una comunicación entre


ellos por medio de un protocolo un conjunto de reglas que deben ser observadas
como participante de la comunicación de los datos, acordada por los procesos. Un
proceso puede ser el emisor en determinados puntos durante el protocolo y
receptor en otros.

Cuando la comunicación es de un proceso a únicamente otro proceso, el modelo


de comunicación entre procesos se dice que es Unicast.
Cuando la comunicación es de un proceso con un grupo de procesos, el
mecanismo de comunicación se denomina Multicast.

Los sistemas operativos actuales como UNIX y Windows proporcionan


funcionalidades de comunicación entre procesos a nivel de sistema operativo,
estos mecanismos incluyen colas de mensajes, semáforos y regiones de memoria
compartida. Es posible desarrollar software de red usando directamente estos
mecanismos a nivel de sistema operativo.

Debido a la complejidad típica de estas aplicaciones se requiere el uso de algún


tipo de abstracción para separar al programador de los detalles a nivel de sistema
operativo.

En ingeniería de software se denomina abstracción a un mecanismo para ocultar


las complejidades internas de una tarea. Por ejemplo java proporciona una
abstracción que permite al programador tener que comprender los detalles a nivel
de sistema operativo.
Sistemas Operativos [Escriba aquí]

Almacenamiento en Buffer
Sea la comunicación síncrona asíncrona, los mensajes intercambiados por los
procesos que se están comunicando residen en en una cola temporal.
Básicamente tales colas se pueden implementar de tres maneras.

Capacidad Cero. La cola tiene una longitud máxima de cero, por lo tanto no puede
haber ningún mensaje esperando el enlace. En este caso el emisor debe
bloquearse hasta que el receptor reciba el mensaje.

Capacidad limitada. La cola tiene una longitud finita, por lo tanto debe de haber en
ella debe de haber n mensajes como máximo. Si la cola no está llena cuando se
envía un mensaje, el mensaje se introduce en la cola (se copia el mensaje o se
almacena un puntero al mismo) y el emisor puede continuar la ejecución sin
espera. Sin embargo la capacidad del enlace es finita, si el enlace está lleno el
emisor debe bloquearse hasta que haya espacio disponible en el buffer.

Capacidad ilimitada. La longitud de la cola en el buffer es potencialmente infinita,


por lo tanto puede haber cualquier cantidad de mensajes almacenada en el buffer
y el emisor nunca se bloquea.

Hilos
Ventajas de usar hilos
Sistemas Operativos [Escriba aquí]

La Respuesta: El tiempo de respuesta mejora, ya que el programa puede


continuar ejecutándose, aunque parte del el este bloqueado.
Compartir recursos: Los hilos comparten la memoria y los recursos del proceso al
que pertenecen, por lo que pueden tener varios hilos de ejecución dentro del
mismo espacio de direcciones.
Es más fácil la creación, cambio de contexto y gestión de los hilos que de los
procesos.
Utilización de múltiples CPU: Permite que los hilos de un mismo proceso se
ejecuten en diferentes CPU´s a la vez. En un proceso mono hilo, un hilo se ejecuta
en una única CPU, independientemente de cuantos CPU´s tenga disponibles.

Hilos a nivel de usuario de Kernel

Hilos de usuario son implantados en algunas librerías. Estos hilos se gestionan sin
soporte del sistema operativo, el cual solo reconoce un hijo de ejecución.

Hilos de kernel
El sistema operativo es el que crea, planifica y gestiona los hilos. Se reconoce
tantos hilos como se hayan creado.

Los hilos a nivel usuario tienen como beneficio que su cambio de contexto es más
sencillo que el cambio de contexto de un hilo de kernel. Además, se pueden
implementar aun si el sistema operativo no utiliza hilos a nivel de Kernel.

Los hilos a nivel de kernel tienen como gran beneficio poder aprovechar mejor la
arquitectura multiprocesadores, y que proporcionan un mejor tiempo de respuesta,
aunque un hilo se bloque.

Relación entre hilos (De muchos a uno)


El modelo asigna múltiples hilos de usuario a un hilo de kernel.
Sistemas Operativos [Escriba aquí]

Este caso corresponde a los hilos implementados a nivel usuario, ya que el


sistema solo reconoce un hilo de control para el proceso.
Tiene como inconveniente que si un hilo se bloquea, todo el proceso se bloquea,
dado que solo un hilo puede acceder al kernel cada vez, no podrán ejecutarse
varios hilos en paralelo en múltiples CPU’s

Relación uno a uno


El modelo asigna cada hilo de usuario a un hilo de kernel. Proporciona una mayor
concurrencia que el modelo anterior permitiendo que se ejecute otro hilo si alguno
se bloqueó.
Tiene un inconveniente cada vez que se crea un hilo de usuario se crea otro de
kernel, el problema es que la cantidad de hilos de kernel se encuentra restringida
en algunos sistemas.

Relación de mucho a muchos


El modelo de muchos a muchos trabaja con muchos hilos de usuario sobre un
número menor o igual de hilos de kernel. Cada proceso tiene asignado un
conjunto de hilos de kernel, independientemente de la cantidad de hilos de usuario
que haya creado.
No posee ninguno de los inconvenientes de los modelos anteriores, ya que saca lo
mejor de cada uno de ellos. El usuario puede crear tantos hilos como necesite y
los hilos de kernel pueden ejecutar en paralelo. Así mismo, cuando un hilo se
bloquea el kernel puede planificar otro hilo para su ejecución.
Sistemas Operativos [Escriba aquí]

Interbloqueo

El número de recursos de un sistema es finito


y limitado, normalmente es
considerablemente menor que el de los
procesos.

Los recursos pueden ser CPU, memoria, dispositivos y archivos.


Dentro de un sistema existe una gran competencia entre los procesos por adquirir
los recursos.

Un proceso puede adquirir o solicitar como máximo el número máximo de recursos


del sistema. El interbloqueo llamado deathlock , bloqueo mutuo o abrazo dela
muerte es el bloqueo permanente de un conjunto de procesos que o bien compiten
por recursos del sistema o se comunican entre ellos.

Exclusión mutua

Es un mecanismo empleado en el diseño de sistemas operativos para evitar los


problemas de competencia por los recursos, se basa en definir una zona o región
critica la cual está marcada por las instrucciones que hacen uso del recurso en
competencia.

Requerimientos para la Exclusión mutua

Solo un proceso accede a la vez a su sección critica.


Un proceso suspendido en su sección critica no debe estorbar a los demás
procesos.
No inanición, no interbloqueo , si un proceso solicita acceso a su sección critica no
debe demorar su atención.
Si ningún proceso está en su sección critica no se puede evitar que otro proceso
entre en su sección critica.
Se permanece en la sección critica por un tiempo finito.

Inanición
Esta se produce cuando algún proceso dentro del sistema no puede satisfacer sus
necesidades de recursos debido a que otros procesos los están utilizando
continuamente.

Este escenario se presenta mucho en algoritmos de asignación por importancia o


prioridad y algoritmos de asignación por tamaño. Como en un sistema operativo
las tareas nunca dejan de llegar puede haber trabajos muy poco importantes o
muy grandes a los cuales no le sea permitido hacer uso de los recursos .

Un ejemplo podría ser el de un proceso de baja importancia que está esperando


en memoria el procesador, pero debido a que hay procesos de mayor importancia
Sistemas Operativos [Escriba aquí]

este esta en espera. Esto puede esperar indefinidamente y el proceso nunca llega
a ejecutarse.

Planificación de procesos

Es un conjunto de políticas y mecanismos incorporados al sistema operativo, a


través de un módulo denominado planificador, este debe decidir cuál de los
Sistemas Operativos [Escriba aquí]

procesos en condiciones de ser ejecutado conviene ser despachado primero y que


orden de ejecución debe seguirse. Esto debe realizarse sin perder de vista su
principal objetivo que consiste en el máximo aprovechamiento del sistema, lo que
implica proveer un buen servicio a los procesos existentes en un momento dado.

Objetivos de la planificación de procesos.

La planificación de procesos tiene como principales objetivos:

a) La equidad: se refiere a que todos los procesos deben ser atendidos sin
dejar a ninguno fuera.

b) Eficacia: el procesador debe estar ocupado el 100 del tiempo, nunca debe
de permanecer en tiempo de ocio.

c) Tiempo de respuesta: se debe de minimizar el tiempo empleado en dar


respuesta a las solicitudes del usuario, este tiempo debe ser el menor
posible.

d) Tiempo de retorno: reducir al mínimo el tiempo de espera de los resultados


de cualquier operación realizada por los procesos.

e) Rendimiento: Maximizar el número de trabajos que el CPU procesa por


cada hora.

Criterios de Rendimiento

Se usan varias magnitudes para medir el rendimiento de los algoritmos de


planificación, los datos arrojados por estas magnitudes nos hablan de la eficiencia
de un procesador.

a) Utilización de la CPU: porcentaje de tiempo que la CPU se encuentra


ocupada.

b) Tiempo de retorno: tiempo transcurrido entre la llegada de un proceso y su


finalización.

c) Tiempo de espera: tiempo en que un proceso permanece en la cola de


preparados o listos; o en la cola de bloqueados.

d) Tiempo de respuesta: tiempo que un proceso en cola de listos o bloqueado


tarda en entrar en la CPU en caso de estar bloqueado se refiere al tiempo
que transcurre desde el evento que lo bloqueo hasta su ejecución.

Políticas expropiativas
Sistemas Operativos [Escriba aquí]

a) No expropiativas: se refiere al proceso que está en CPU y no puede


abandonarla hasta no terminar su tiempo de servicio.

b) Expropiativas: el planificador de los procesos es el quien determina quien,


cuando y en qué orden toma la CPU. Si encuentra un proceso en CPU y
decide ingresar un proceso nuevo, el planificador tiene la facultad de sacar
a ese proceso de la CPU e ingresar al proceso nuevo.

Planificador
A largo plazo, mediano plazo, corto plazo

FcFs = First Come First Serve no Expropiativo

Proceso TLL TSer TRes TEsp P= R=


TRes/ TSer/
TSer TRes
A 0 1 1 0 1 1

B 0 5 6 1 1.2 .833

C 0 4 10 6 2.5 .4

D 0 2 12 10 6 .166

prom 7.25 4.25 2.675 .599

P=Tiempo promedio de lo que duro el proceso en espera


R= Tiempo promedio de lo que el proceso en ejecución
TRet=Tiempo

SJF=Shortest Jump First [NO EXPROPIATIVO]

(Otro ejercicio)25 octubre 2017


FcFs = First Come First Serve no Expropiativo
Sistemas Operativos [Escriba aquí]

Proceso TLL TSer TRes TEsp P= R=


TRes/ TSer/
TSer TRes
A 0 10 10 0 1 1

B 1 10 19 9 1.9 .55

C 2 1 19 18 19 .552

D 3 1 19 18 19 .052

prom 16.75 11.25 10.225 .41

FcFs = First Come First Serve no Expropiativo

Proceso TLL TSer TRes TEsp P= R=


TRes/ TSer/
TSer TRes
A 0 8 8 0 1 1

B 2 4 10 9 1.9 .55

C 3 9 18 18 19 .552

D 5 5 21 18 19 .052

prom 16.75 11.25 10.225 .41

SJF = Shortest Jump First no Expropiativo [Ejemplo clase 26 octubre]

SJF
Tiempo Tiempo Tiempo Tiempo
Proceso P R
Llegada Servicio Retorno Espera
A 0 8 8 0 1.00000 1.00000
B 2 4 10 6 2.50000 0.40000
C 3 9 23 14 2.55556 0.39130
D 5 5 12 7 2.40000 0.41667
Promedio 2.5 6.5 13.25 6.75 2.11389 0.55199

Vous aimerez peut-être aussi