Está en la página 1de 41

UT1-Introducción a los Sistemas

Informáticos y S.S.O.O.
◼ Autora: Alba Laín Díaz-Flores

Esta obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial-


CompartirIgual 4.0 Internacional.
Comunicación entre procesos.
Comunicación entre procesos.
Comunicación entre procesos.
Comunicación entre procesos.
Comunicación entre procesos.
Comunicación entre procesos.
EXCLUSIÓN MUTUA

https://www.youtube.com/watch?v=ltJ1VSCcmok
▪ Sincronización de procesos.

▪ Necesidad de la Exclusión Mutua y


Sección critica a través de ejemplo:
▪ Dos procesos escribiendo en
pantalla:
▪ Proceso Uno:“abc”
▪ Proceso Dos:“cba”
▪ Según su sincronización
podría aparecer:“abccba”
o “acbbca” o “abcbca”, etc.
▪ Acceso a una cuenta bancaria
por varios autorizados
La mayoría de los recursos de un ordenador
solo pueden utilizarse por un proceso a la
vez.

La apropiación de un dispositivo de E/S para


uso exclusivo puede provocar problemas
graves que el S.O también debe encargarse
de resolver.
PROGRAMAS Y
El bloqueo de un conjunto de procesos se
PROCESOS EN UN produce cuando un proceso espera un
SISTEMA OPERATIVO. evento que solo puede ser provocado por
otro proceso del conjunto.
BLOQUEOS
Ejemplo: Proceso A, B => Acceso a cuenta
bancaria

Los procesos permanecerán esperando y


ninguno de ellos realizará ninguna acción
hasta que otro libere algún recurso, por lo
que entra en un bucle de espera infinito.
GESTIÓN DE MEMORIA

https://www.youtube.com/watch?v=hMhPTWUJX_M&t=4s
▪ Cada proceso en ejecución necesita un área de memoria para ubicar 3 tipos de datos:

▪ El código del proceso (las instrucciones)

▪ Los datos (variables inicializadas)

▪ Bloque de Control del Proceso (PCB) La pila (zona de trabajo durante la ejecución

que mantiene el seguimiento del programa-subrutinas)

▪ El gestor de memoria es la parte del S.O encargado de asignar la memoria a

los procesos y gestionar su uso. Debiendo proporcionar protección y uso compartido.

▪ Como en el caso del microprocesador hay diferentes algoritmos para la gestión

de memoria. Pero la opción más sencilla es dividir la memoria en varias partes


con distinto o igual tamaño. Cuando se cargue un trabajo se cargará en la parte
más pequeña disponible que pueda contenerlo. => Conlleva problemas de
Fragmentación.
▪ Particiones contiguas de tamaño fijo Se puede
dividir la memoria en particiones contiguas de
tamaño fijo, el número de estas y sus tamaños
se definirá al iniciar el sistema y quedarán fijados
para toda la sesión.
▪ Las particiones creadas pueden de ser de igual o
GESTIÓN DE distinto tamaño.
▪ Cuando tenga que iniciar un programa, el

MEMORIA
sistema le asignará una partición que pueda
contenerlo. Será necesario que los programas
declaren sus necesidades de memoria al
sistema.
PARTICIONES ▪ Todos los programas se colocan en una cola
única de espera, y será el sistema el encargado

CONTIGUAS
de seleccionar cual cargar en la partición
disponible en un momento dado.
▪ El planificador de trabajos del sistema es el

FIJAS
componente encargado de hacer dicha
selección, y los puede hacer respetando el orden
de llegada de los programas. De esta forma para
una partición libre se elegirá el primer
programa de la cola si cabe en ella, en caso
contrario quedará desocupada y el resto de
los programas deberán esperar que se libere
una partición de tamaño adecuado para el
primero.
▪ FIFO es un criterio de selección simple
de programar pero puede provocar cierta
infrautilización de la memoria. El
planificador puede lograr mayor eficacia
si cada vez que debe seleccionar un
GESTIÓN DE trabajo, analiza la cola de espera
buscando:
MEMORIA ▪ El trabajo de tamaño más adecuado a
la partición libre
PARTICIONES ▪ El primero que quepa en la partición
disponible.
CONTIGUAS ▪ Los sistemas que vayan a procesar

FIJAS trabajos de tamaños similares podrán


utilizar algoritmos FIFO, que son más
fáciles de codificar y provocan menor
sobrecarga. Por el contrario, si deben
tratar trabajos con necesidades distintas
de memoria deberán recurrir a técnicas
complejas.
▪ Fragmentación: Cantidad de
memoria desaprovechada por el gestor de
memoria producida por la asignación de
tamaños distintos a la particiones creadas
en la memoria.
▪ Analizando la utilización de las particiones
aparece otro aspecto negativo. Si nuestro
sistema posee tres particiones de 14k, 10k y
6k, un programa de 11 k se deberá cargar
en la primera
partición desaprovechando 3k. Se produce
Fragmentación interna de la memoria.
▪ Si en el mismo ejemplo suponemos
ocupadas las particiones de 14k y 10k, y
existen trabajos de 7k, 8k y 9k esperando,
nos encontraremos con una partición
inutilizable aún habiendo necesidad
de memoria. Se ha producido
Fragmentación externa de la memoria.
Particiones contiguas de tamaño variable.
◼ Los inconvenientes de la técnica anterior nacen de la dificultad de
definir unas particiones de tamaño adecuado para todos los trabajos
que se deben tratar, pero desarrollando una técnica de gestión que
asigna dinámicamente la memoria a los trabajos de acuerdo con su
tamaño se soluciona el problema.
◼ El sistema operativo mantendrá una tabla interna donde registrará
las zonas de memoria disponible o huecos, a cada trabajo le asignará
una partición del tamaño solicitado, descontando dicha cantidad de
la citada tabla. Esta es la técnica de particiones contiguas de
tamaño variable.
◼ Si queda alguna parte de la memoria libre que no quepa el
siguiente trabajo se produce una Fragmentación externa. Cada
trabajo irá terminando en un tiempo determinado e irán entrando
otros trabajos en su lugar, siempre que quepan en la partición
desocupada. Cuando se creen fragmentaciones el gestor de
memoria unificará todos estos huecos contiguos con el fin de
disponer de huecos mayores. Desfragmentación
GESTIÓN DE MEMORIA
DESFRAGMENTACIÓN.

https://www.youtube.com/watch?v=dc_SDyLYq3U
SEGMENTACIÓN
▪ La segmentación es un esquema de gestión de memoria evolucionado que se
basa en particiones variables y presenta varias ventajas.
◼ Los bloques de un proceso pueden estar situados en áreas de
memora NO contiguas (datos, pila, código)

◼ Compactación: Es la técnica utilizada por algunos sistemas


para combatir el proceso de fragmentación que sufre la memoria. La
idea es recolocar las zonas de memorias utilizadas para lograr un único
hueco de memoria disponible. Pero la puesta en práctica de esta idea
no es tan sencilla, pues los programas se pueden mover de formas
diferentes quedando el hueco al final o en el medio, mirando siempre la
forma que menos Kb se tengan que desplazar, ya que su coste en tiempo
puede ser considerable.
▪ Esta técnica exige que los trabajos sean reubicables y por tanto,
solo será utilizable en aquellos sistemas en los que las direcciones
de memoria se asignen durante la ejecución.
PAGINACIÓN
▪ Paginación Es la técnica de gestión que permite asignar la
memoria de forma discontinua. Con este fin se divide la
memoria física en trozos de tamaño fijo llamados armazones,
marcos o frames y la lógica en bloques del mismo tamaño
llamados páginas.
▪ Cada programa se subdivide en páginas y estas se cargan en
marcos libres que no tienen que ser contiguos.
▪ El S.O. internamente mantiene una tabla de páginas donde
relaciona cada página cargada en memoria principal con el frame
o marco que la contenga, o lo que es lo mismo con su dirección
inicial en memoria real. Se cargan en memoria solo las páginas
que realmente se van a utilizar.
▪ Cuando el proceso necesita continuar su ejecución por una
página que no está cargada en memoria, se produce fallo de
página, y el sistema operativo deberá cargar la página
solicitada. Por este motivo a este tipo de paginación se llama
paginación a demanda
▪ Cada dirección que genere el procesador, será
interceptada y dividida en dos componentes:
▪ Un número de página (p)
▪ Un desplazamiento en la página u offset (d)
que indica la posición que ocupa el byte
indicado por la dirección, contando desde el
principio de la página.

GESTIÓN
▪ Utilizando p como índice el sistema recorrerá toda
la Tabla de páginas (Tpg) hasta localizar dicha
página, a continuación sumará el desplazamiento
DE a la dirección de carga correspondiente y
obtendrá la dirección real adecuada.

MEMORIA
▪ El sistema analizará cada nuevo trabajo para
conocer el número de páginas que ocupa y
buscará en su lista de frames libres. Si encuentra
PAGINACIÓN suficientes, cargará en ellas las páginas del
programa y construirá la correspondiente tabla de
páginas, actualizando la lista de frames libres.
Cada trabajo en memoria poseerá su propia Tpg
apuntada por el bloque de control del propio
trabajo, accesible mediante instrucciones
privilegiadas por el sistema. De esta manera se
logra evitar la fragmentación interna, ya que
cualquier frame libre es asignable a un trabajo
que necesite memoria.
GESTIÓN DE MEMORIA
Resumen
▪http://somebooks.es/capitulo-4-
estructura-del-sistema-operativo-parte-
1/5/
GESTIÓN DE MEMORIA VIRTUAL
▪Vídeo corto generalidades
▪Arquitectura de Computadores II - Memoria virtual

▪Cursos de de memoria virtual


▪Sistemas Operativos, Memoria virtual 1 introducción

▪Sistemas Operativos, Memoria virtual 2 paginación por demanda

▪Sistemas Operativos, Memoria virtual 3 reemplazo

▪Sistemas Operativos, Memoria virtual 4 LRU y FIFO


▪ Cuando ocurre un fallo de
página es necesario cargar en
memoria la página solicitada,
pero puede ocurrir que no
haya libres marcos de página.
Para esto hay que descargar
GESTIÓN DE una página y reemplazarla por
MEMORIA la que se necesita.
PAGINACIÓN
▪ Si la página víctima fue
modificada mientras estuvo en
memoria se escribe su
contenido en el disco y se
carga la página requerida en
el marco
FIFO •consiste en elegir la página que lleve más
(Primero en entrar pr tiempo en memoria sin considerar cuando se
imero en salir) utilizó por ultima vez.

• El algoritmo elige como víctima


LRU la página de entre las que se
(usado menos reciente). encuentran en memoria, que hace más
tiempo que no es referenciada.

• Es el que produce menor tasa de fallo de página. Es


un algoritmo teórico pues exige conocer las futuras
ÓPTIMO referencias a página, eligiendo como víctima, aquella
que no volverá a ser referenciada nunca más o muy
posteriormente.
▪ Las técnicas de gestión de la memoria real sólo
admitirán programas que quepan totalmente
en memoria. Esto se resuelve utilizando las
técnicas de gestión de la memoria virtual o
intercambio.
▪ La memoria virtual es una técnica de gestión que,
combinando hardware y software, permite la
ejecución de programas parcialmente
cargados en memoria real y el resto cargado
en memoria secundaria (Disco)
▪ A un programa que ocupa 1Gb se le puede
asignar 512 Mb de RAM solamente y cuando el
SO necesite un bloque (varias páginas) de
datos que no se encuentre en la memoria,
tiene que pasar un bloque de memoria al
disco y traer del disco el bloque de datos
que necesitamos; a este proceso se le llama
swaping. Mientras se hace swaping otro
proceso puede estar realizando un uso más
eficaz del procesador.
▪ El SO decide que partes de programa puede
cargar en memoria, cuando cargarlas y dónde
ubicarlas, corriendo el riesgo de perder mucho
tiempo en accesos al disco si la elección es
errónea.
▪ Esta forma de trabajar aporta ventajas
importantes:
▪ Permite trabajar con programas de
mayor tamaño que la memoria física.
GESTIÓN DE ▪ Puesto que cada programa ocupa
menos memoria real, se puede elevar
MEMORIA el índice de multiprogramación y,
por tanto, la eficiencia del sistema.
MEMORIA VIRTUAL ▪ Permite que los programas
empiecen a ejecutarse antes
GESTIÓN ANTE FALLO DE PÁGINA.

Se localiza la página demandada en el disco. (Memoria Virtual)

Se busca un marco libre en la lista de marcos libres.

En el caso de encontrarlo se utiliza y en el caso de que no


existe marco libre se ejecuta un algoritmo de reemplazo par
a seleccionar una víctima.

Si la victima elegida tiene su bit de modificación a 1


(necesita ser actualizada), se transfiere al disco y se produc
e un cambio de context para pasar a ejecutar otro proceso
mientras termina la transferencia.
GESTIÓN ANTE FALLO DE PÁGINA.

Se traslada la página del disco a la memoria, mientras se


produce otro cambio de contexto, se ejecuta otro proceso
esperando que la página termine de ser transferida.

Se carga la página en el marco libre, actualizando


la tabla de páginas y la tabla de marcos.

Se restauran los valores del proceso (cambio de context


o) que quedó interrumpido por el fallo de página y se re
anuda su ejecución.
GESTIÓN DE MEMORIA VIRTUAL

https://www.youtube.com/watch?v=habd
RVUUfCY&list=PLhMtLV713WEcwaHlm0e
XucoctaehiBXiS
▪ Los dispositivos de E/S se pueden
dividir en:

▪ Una parte físico-mecánica


(cabezas lectura, motores de
GESTIÓN DE giro, etc.)
DISPOSITIVOS DE ▪ Otra parte software o controlador
ENTRADA/SALIDA de dispositivo.
CONTROLADORES
DE DISPOSITIVOS ▪ El controlador se encarga de
mostrar al S.O. una interfaz
estándar adaptándose a las
peculiaridades que hay por
debajo.
◼ Muchos controladores, permiten el acceso
directo a memora (DMA), liberando al
procesador del control de traspaso de datos.
◼ El objetivo de la DMA es ejecutar
simultáneamente operaciones en el
microprocesador y de transferencia de E/S.
◼ El procesador proporciona al controlador DMA
información sobre la dirección de memoria a
acceder y el número de datos a transferir y sigue
realizando otras operaciones.
◼ El controlador va leyendo los datos del Acceso Directo a
disco y copiándolos en la memoria, hasta Memoria (DMA)
que termina la transferencia y provoca
una interrupción que hace que el
procesador abandone el trabajo que estaba
realizando.
CPU RAM DMA

DISCO
El software de manejo de dispositivos
está organizado en capas

Las capas inferiores se encargan de


GESTIÓN DE ocultar las peculiaridades del
DISPOSITIVOS DE hardware.

ENTRADA/SALIDA Las capas superiores se encargan de


MANEJADORES DE DI presentar una interfaz amigable al
SPOSITIVOS usuario.
(DRIVERS)
Los manejadores de dispositivos
drivers son los que se encargan
de aceptar las solicitudes que hace
el software del dispositivo y se
GESTIÓN DE pone en contacto con el
controlador para esa petición.
DISPOSITIVOS DE
ENTRADA/SALIDA Si el dispositivo está ocupado es el
driver el que gestiona la cola de
MANEJADORES DE DI peticiones para darles paso tan
SPOSITIVOS pronto como sea posible
(DRIVERS)
◼ Gratuitas (freeware) o Comerciales:
◼ La adquisición del sw implica o no coste.

◼ Libres o Propietarias:
◼ Las licencias de sw libre se basan en la distribución del código
fuente junto con el programa, así como las cuatro premisas de
libertades de sw.
◼ Las licencias de sw propietario no permiten la modificación,
distribución, y propósito de uso, etc.

◼ Opensource (código abierto) o Privativas:


◼ Se distribuye el código junto con el programa en el primer caso
y se niega o se restringe en el Privativo.
▪ OEM:
▪ Las OEM son la licencias que se
incluyen cuando compramos un nuevo
PC que nos llega ya montado. De esta
manera cuando lo encendemos por
primera vez y nos conectamos a
Internet, lo activamos de forma
automática y el hardware de ese
ordenador queda ligado a la
correspondiente clave. De hecho, es la
TIPOS DE placa base del equipo la que se asocia,
de ahí que, si la cambiamos, la
LICENCIA. perdemos.
▪ Retail:
▪ se podrá utilizar e instalar en otros
los ordenadores con diferentes
configuraciones hardware. En el
supuesto de que cambiemos el
hardware del PC, la licencia
seguirá siendo válida. Lo único que
debemos tener claro aquí, es que
esta clave, aunque sea Retail, tan
solo podrá estar en funcionamiento
en un único ordenador al mismo
tiempo..
▪ Licencia por Volumen:
▪ Estipula un determinado número
de equipos que pueden utilizar el
mismo código de licencia,
quedando el fabricante de dicho
sw autorizado para hacer las
TIPOS DE comprobaciones que considere
para ver que las licencias
LICENCIA. adquiridas son luego las reales.
▪ Suele estar destinada a empresas
que adquieren este tipo de sw.
▪ No se puede ceder a terceros ni
total ni parcialmente.
▪ Ej: sw de Base de Datos, Windows
2003, etc.
LICENCIAS SOFTWARE
•Licencias de software con código abierto.
LICENCIAS Hacen referencia al software que pone a

SOFTWARE disposición de los usuarios el código fuente con


el que está construido.

•Permisivo: Los programas con este tipo de


LICENCIAS DE CÓDIGO licencia pueden modificarse o crear otros
ABIERTO nuevos a partir de ellos sin que el resultado
tenga que mantener las condiciones de la
licencia original. BSD
•No permisivo: Los programas con este tipo de
licencia pueden modificarse o crear otros
nuevos a partir de ellos, pero el resultado, en
general, deberá publicarse bajo los mismos
términos de la licencia original. Software libre
GNU
Licencias de software con código
LICENCIAS cerrado. En contraste con el
SOFTWARE anterior, se refiere al software que
no distribuye el código fuente con el
LICENCIAS DE CÓDIGO que está construido. También suele
CERRADO conocerse como software
propietario o privativo.
En las licencias se limitan las
posibilidades que tienen los
usuarios para utilizar, copiar,
modificar, redistribuir o ceder el
software.

También podría gustarte