Está en la página 1de 11

SISTEMAS OPERATIVOS

ESTRUCTURAS DE LOS SISTEMAS OPERATIVOS


Un sistema operativo es un programa grande y complejo que est compuesto por una
serie de componentes con funciones bien definidas. Cada sistema operativo estructura
estos componentes de distinta forma; de acuerdo a esta estructura los sistemas
operativos se agrupan en las siguientes categoras:

ESTRUCTURA MONOLITICA: El sistema operativo no tiene estructura alguna


que la defina, debido a que sus componentes se encuentran integrados en un
nico programa que se ejecuta en un nico espacio de direcciones. En este tipo
de sistemas todas las funciones que ofrece se ejecutan en modo ncleo. El
sistema operativo se escribe como una coleccin de procedimientos, cada uno de
los cuales puede llamar a los dems cada vez que as lo requiera. Los servicios
que proporciona el sistema operativo se solicitan colocando los parmetros en
lugares especficos de la memoria como la pila o en los registros del procesador,
para despus ejecutar una instruccin especial de tipo trampa conocida como
llamada al ncleo o supervisor y transferir el control al sistema operativo.

Programa2 del usuario

Programa1 del usuario

Programas del usuario


Se ejecutan en modo usuario

Llamada al ncleo

1
3
2

Procedimiento
del servicio

SISTEMA OPERATIVO
Se ejecuta en modo ncleo

Tabla de
despacho

MEMORIA PRINCIPAL

1. El programa del usuario es atrado hacia el ncleo.


2. El sistema operativo determina el nmero del servicio solicitado.
3. El sistema operativo localiza y llama al procedimiento correspondiente al
servicio.
4. El control regresa al programa del usuario.
Ejemplos de sistemas operativos: MS-DOS y UNIX.
DESVENTAJAS: Es complicado modificar el sistema operativo para aadir nuevas
funcionalidades y servicios. No existe ocultamiento de la informacin.

ESTRUCTURA POR CAPAS: Consiste en organizar el sistema operativo como


una jerarqua de capas, donde la informacin y los datos son privados para cada
capa y cada una se construye sobre la inmediata inferior, as las capas ofrecen
una interfaz clara y bien definida para la capa superior y solamente utilizan los

servicios que le ofrece la capa inferior. Este enfoque lo utiliz por primera vez el
sistema operativo THE, el cual estaba formado por 6 capas, como se muestra en
la figura.

OPERADOR

PROGRAMAS DE USUARIO

CONTROL E/S

COMUNICACIN
OPERADOR-PROCESO

ADMINISTRACION DE MEMORIA
Y DISCO

ASIGNACION DEL PROCESADOR


Y MULTIPROGRAMACION

Estructura propuesta por el Sistema THE, (1968).

Los sistemas operativos actuales establecen la siguiente estructura, un tanto mejorada


y eficiente con respecto a la interfaz entre las capas, para sus requerimientos.
5

INTERPRETE DE COMANDOS

SISTEMA DE ARCHIVOS

3
2

ADMINISTRACION DE
MEMORIA
E/S

NUCLEO

Las ventajas que ofrece este tipo de estructura son la modularidad y ocultamiento de
la informacin. Lo que facilita la depuracin y verificacin del sistema, debido a que
se puede realizar por separado.
Ejemplos de sistemas operativos: OS/2.

ESTRUCTURA DE MAQUINA VIRTUAL: El ncleo del S. O. se ejecuta


directamente en el hardware, esta estructura esta orientada a los sistemas
operativos hbridos sobre hardware de estilo mainframe. Los programas
que forman el S. O. se crean de acuerdo al hardware simple de la
computadora como lo es la E/S, interrupciones, modo ncleo, y
multiprogramacin. El primer S. O. que propuso esta estructura fue el
TSS/360 (VM/370). Cada mquina virtual que tiene este sistema de tiempo
compartido y a la vez una mquina extendida con una interfaz ms directa
al hardware mismo.

OS/360
CMS
Llamada al
Sistema

OS/360
CMS

OS/360
CMS

VM/370
HARDWARE SIMPLE
(E/S, MEMORIA, INTERRUPCION).

Instrucciones
E/S

OS/360 -- PROCESAMIENTO POR LOTES.


CMS ----- TIEMPO COMPARTIDO.

ESTRUCTURA DE CLIENTE SERVIDOR: Esta estructura pone a todos


los procesos y servicios en la capa del usuario donde existen procesoscliente que pertenecen al usuario. Para poder solicitar un servicio, un
proceso del usuario enva la solicitud a un proceso servidor que realiza el
trabajo y regresa la respuesta. El ncleo del S. O controla la comunicacin
entre los clientes y los servidores.

PROCESO
CLIENTE
(1)

PROCESO
CLIENTE (1)

PROCESO
E/S

PROCESO
MEMORIA

PROCESO
ARCHIVO

NUCLEO
(nicamente se llevan a cabo en sistemas DISTRIBUIDOS)

ADMINISTRACION DE MEMORIA
JERARQUIA DE MEMORIA.
En un ordenador hay una jerarqua de memorias atendiendo al tiempo de acceso y a la
capacidad que normalmente son factores contrapuestos por razones econmicas y en
muchos casos tambin fsicas, comenzando desde el procesador al exterior es decir en
orden creciente de tiempo de acceso y capacidad, se establece la siguiente jerarqua de
acuerdo al costo y velocidad.

REGISTROS DEL PROCESADOR.


Estos interactan directamente con la CPU (porque forman parte de ella) los
registros tienen un tiempo de acceso muy pequeo y una capacidad mnima,
normalmente la palabra del procesador va de 1 a 8 bytes.
MEMORIA CACHE.
Es un espacio muy pequeo de memoria que almacena los datos ms usados, por
lo que tiene las mismas caractersticas de la RAM. Su propsito principal es aproximar
la velocidad de la memoria (velocidad de acceso) a la de aquellas memorias ms rpidas
que existen (CPU). Cada vez que se realiza una carga de datos a los registros de la CPU
se hace una prueba de cach que consiste en la bsqueda de estos datos dentro de la
cach antes de hacer la bsqueda en la memoria RAM.
MEMORIA PRINCIPAL.
Diseada para permitir la ejecucin de los procesos, por esta razn los procesos
deben estar almacenados en la memoria RAM. La RAM es el nico espacio de
almacenamiento fsicamente disponible al que el procesador tiene acceso y quien puede
realizar la ejecucin de los mismos. La interaccin entre el procesador y la memoria se
lleva a cabo mediante dos instrucciones orientadas a direccionamiento de memoria:
LOAD: Mueve el contenido de la memoria a un registro de la CPU,
STORE: Mueve el contenido de un registro de la CPU a la memoria.
La desventaja fundamental es que esta memoria es de tipo voltil y muy pequea.
MEMORIA SECUNDARIA O ALMACENAMIENTO SECUNDARIO.
Son una extensin de la memoria principal, su caracterstica principal es que
pueda almacenar grandes cantidades de informacin y datos de manera permanente, el
dispositivo ms comn es el disco duro que almacena los datos hasta que son cargados
en memoria principal, tales como los programas de usuario y sobre todo el conjunto de
programas del sistema operativo.
El administrador de memoria, comprueba la validez de cada solicitud de espacio en
memoria, su tarea principal es proteger el espacio reservado para el sistema operativo; el
administrador de memoria lleva el control de uso de la misma mediante una tabla
conocida como Tabla de Memoria, la cual a su vez es relacionada con tabla de tareas, la
cual almacena la informacin de los procesos que se crean y solicitan un espacio para su
ejecucin.
Los primeros algoritmos de asignacin de memoria que existieron fueron los siguientes:
Asignacin de un solo proceso. Sistema de tipo monoproceso.
Asignacin por particin fijas. Sistema de tipo multiprogramado.
Asignacin por particiones dinmicas. Sistema multiprogramado.
Asignacin por particiones dinmicas relocalizables. Sistema
multiprogramado.
Asignacin de un solo Proceso
Slo poda almacenar una tarea por ejecucin. Tambin conocida como monoproceso,
el tamao de la memoria era muy pequeo por lo que solo existan dos particiones
contiguas, la primera definida para el Sistema Operativo y la segunda definida para los
llamados procesos transitorios o procesos de usuario; para realizar la proteccin de los
bloques utilizaba un conjunto de registros conocidos como registros valla o base, los
cuales delimitan las fronteras entre rea.

Tabla de Memoria:
No. Bloque Tamao
Sistema
Operativo
Procesos de
usuario

Acceso

Estado

30Kb

SO

50Kb

____

Tabla de tareas:
No. Tarea Tamao
J1
J2
J3

25Kb
30Kb
40Kb

Asignacin de Particiones Fijas


Es el primer esquema que permite la multiprogramacin a travs de particiones fijas en
la memoria principal, una particin ser capaz de almacenar una tarea a la vez, sin
embargo la memoria se divide en varios bloques, los cuales son definidos por el
programador cuando se inicia el arranque del sistema, posteriormente esos bloques
permanecern fijos. En el caso de que se desee reconfigurar estos bloques, el sistema se
tendr que reiniciar, al igual que el esquema anterior la proteccin en los bloques era un
factor esencial, sin embargo estos bloques no requieren de mtodos de hardware para su
proteccin, para ello el Sistema Operativo guardaba la informacin interna de la
memoria en una estructura de datos dinmica conocida como Tabla de Memoria, la cual
contena la siguiente informacin: Numero de particin, tamao de la particin,
direccin de inicio de particin, acceso y estado(libre=0 , ocupado=1).
Tabla de Memoria:
No. Bloque Tamao Acceso Estado Direccin
memoria
SO
30Kb
SO
1
0
B1
25Kb
--0
30
B2
40Kb
--0
55
B3
15Kb
--0
95
B4
20Kb
--0
110
B5
30Kb
--0
130

No. Tarea
J1

Tamao
15Kb

J2

30Kb

J3
J4

20Kb
35Kb

J5
J6

10Kb
10Kb

J7

20Kb

Tabla de tareas
Asignacin Dinmica
Este esquema de memoria tambin es multiprogramado sin embargo y a diferencia de la
asignacin fija no est definido por el programador debido a que los procesos son las
nicas unidades capaces de generar los espacios o bloques en memoria exactamente de
acuerdo a sus necesidades y requerimientos de espacio en la memoria principal. El
esquema de particin dinmica sugiere que los procesos se asignen en la memoria de
acuerdo a sus necesidades particulares considerando como lmite el tamao mximo de
memoria. En las particiones dinmicas se utiliza tambin la tabla de memoria, la cual se
configura de manera dinmica de acuerdo a la entrada de los primeros procesos creados,
por lo que en ese momento el sistema funciona de forma eficiente, sin embargo
conforme las tareas van desalojando los bloques al terminar su procesamiento el
esquema vuelve a quedar fijo con los tamaos que definieron los primeros procesos y
ahora ser necesario la utilizacin de un algoritmo de asignacin de procesos que
permita el acomodo de las nuevas tareas que estn en espera.

Tabla de tareas.
Tabla de memoria.
No. Bloque Tamao Acceso Estado Direccin
memoria
SO
30Kb
SO
1
0
B1
25Kb
J1
1
30
B2
40Kb
J2
1
55
B3
15Kb
J3
1
95
B4
20Kb
J4
1
110
B5
30Kb
J5
1
130

No. Tarea
J1

Tamao
25Kb

J2

40Kb

J3
J4

15Kb
20Kb

J5
J6

30Kb
10Kb

J7
J8

20Kb
10Kb

J9

5Kb

En este caso los algoritmos utilizados para asignar las tareas en la memoria principal
tanto para un esquema de particin fija o particin dinmica son los siguientes:
Algoritmo del primer ajuste.
Algoritmo del mejor ajuste.
Algoritmo del peor ajuste.
Algoritmo del primer ajuste: El algoritmo del primer ajuste asigna la primera
particin disponible (estado=0) y suficiente para la tarea que la solicita, la bsqueda se
realiza a partir de la ultima particin asignada. La prioridad permitida en este algoritmo
para aceptacin de tareas es FIFO (primera tarea en entrar, primera tarea en ser
asignada).
Ejemplo1: Para una tabla de memoria de un esquema fijo:

No. Bloque
SO
B1
B2
B3
B4
B5

Tamao Acceso Estado Direccin


memoria
20Kb
SO
1
0
35Kb
1
20
J1
25Kb
1
55
J3
10Kb
1
80
J5
15Kb
1
90
J6
45Kb
1
105
J2

No. Tarea
J1

Tamao
15Kb

J2

30Kb

J3
J4 espera

20Kb
35Kb

J5
J6

10Kb
10Kb

J7 espera

20Kb

El algoritmo inicia la bsqueda en el primer nodo de la tabla, que es el bloque del


sistema operativo, la primera validacin que realiza es verificar que el estado sea igual a
cero, si esto es verdad, ahora verifica el tamao de la particin y la compara con el
tamao solicitado por la tarea, si la comparacin tamao_tarea<=tamao_particion, es
verdadera, actualiza el registro acceso asignando el numero de la tarea que compar, y
ahora avanza el puntero al siguiente nodo en la tabla de memoria y tambin avanza el
puntero al siguiente nodo en la tabla de tareas, y vuelve nuevamente al primer paso que
es la primera validacin.

Si en caso contrario, la primera validacin, estado=0, es falso, avanza el puntero al


siguiente nodo y vuelve a realizar la primera validacin, en este caso el puntero de la
tabla de tareas no cambia de nodo puesto que todava no ha encontrado un bloque para
asignarlo. Este proceso lo seguir haciendo hasta que el estado sea igual a cero.
Por otro lado si la segunda validacin, tamao_tarea<=tamao_particion, es falsa,
avanzar el puntero de la tabla de memoria al siguiente nodo, en este caso el puntero de
la tabla de tareas no avanza, porque no ha encontrado un bloque para la tarea. Si en
algn momento sucede que termina la bsqueda y no se encontr bloque para la tarea ya
sea porque todos estaban ocupados o porque ninguno de los bloques libres era
suficiente, esa tarea pasara a un estado de espera y ahora si podr avanzar el puntero de
la tabla de tareas al siguiente nodo. Este proceso de bsqueda de bloques termina
cuando se haya recorrido toda la tabla de tareas y el puntero entonces haya llegado a
NULL.
Ejercicio1: Primer Ajuste
De acuerdo a la siguiente informacin disear la tabla de memoria y asignar por el
mtodo del primer ajuste las siguientes tareas.
-S.O. 20k
-Tamao de Memoria=250k
-Lista de Tareas: J1=35k, J2=42k, J3=50k, J4=60k, J5=15k, J6=18k, J7=20k, J8=45k,
J9=25k, J10=5k
No.
Bloque
SO
B1
B2
B3
B4
B5
B6

Tamao

Localidad Acceso
memoria

Estado

20K
20K
30K
50K
45K
60K
25K

Algoritmo del mejor ajuste. Este algoritmo asigna la particin ms pequea disponible
(estado=0) pero suficiente para la tarea que la solicita, la bsqueda de bloques se realiza
desde el principio de la tabla de memoria siempre que llega una nueva tarea hasta
encontrar la particin adecuada, este algoritmo sugiere que la tabla de memoria se
encuentre ordenada de la particin ms pequea a la ms grande. La asignacin de
tareas respeta la prioridad FIFO.
Ejemplo2: Para una tabla de memoria de un esquema fijo:
No. Bloque
SO
B1
B2
B3
B4

Tamao Direccin
Memoria
15K
0k
20k
15k
10k
35k
50k
45k
35k
95k

Acceso Estado
SO
-----

1
0
0
0
0

Una vez definida la tabla memoria se realiza una ordenacin interna, pero solo para los
bloques definidos para los procesos, el bloque del sistema operativo permanece tal cual,
despus de la asignacin de tareas, la tabla de memoria debe permanecer tal cual se
defini.
Tabla de memoria ordenada:
No. Bloque Tamao Direccin
Memoria
SO
15K
0k
B2
10k
35k
B1
20k
15k
B4
35k
95k
B3
50k
45k

Tabla de memoria final:


No. Bloque Tamao Direccin
Memoria
SO
15K
0k
B1
20k
15k
B2
10k
35k
B3
50k
45k
B4
35k
95k

Acceso Estado
SO
J5
J1
J2
J3

1
1
1
1
1

No. Tarea
J1

Tamao
15Kb

J2

30Kb

J3
J4 espera

20Kb
35Kb

J5
J6 espera

10Kb
10Kb

J7 espera

20Kb

Acceso Estado
SO
J1
J5
J3
J2

1
1
1
1
1

El algoritmo funciona de la siguiente manera:


1.-Ordenar los bloques de la tabla de memoria en forma ascendente. Pero guardar la
configuracin original de la tabla.
2.-Iniciar el algoritmo desde el primer elemento de la tabla de tareas para colocarlo en
un bloque, esta bsqueda del bloque se realiza siempre desde el primer nodo de la tabla
de memoria.
3.-Se integran las validaciones para encontrar un bloque disponible (estado=0) y que el
tamao del bloque sea suficiente para la tarea (tamao_tarea<=tamao_bloque).
4.-Si 3 se cumple, se actualiza la tabla de memoria y se asigna al campo de acceso el
identificador de tarea que lo buscaba.
5.-En caso de que no se cumpla debido a que no hay bloques disponibles (estado=1), el
puntero de la tabla de tareas avanza al siguiente nodo y la tarea anterior se pone en
espera.
6.-En caso de que no se cumpla debido a que los bloques disponibles no tienen espacio
suficiente, el puntero de la tabla de tareas avanza al siguiente nodo y la tarea anterior se
pone en espera.
7.-Repetir estos pasos hasta terminar con la tabla de tareas.
8.-Mostrar la tabla de memoria final.
Ejercicio2: Mejor Ajuste
De acuerdo a la siguiente informacin disear la tabla de memoria y asignar por el
mtodo del mejor ajuste las siguientes tareas.
-S.O. 20k
-Tamao de Memoria=250k
-Lista de Tareas: J1=35k, J2=42k, J3=50k, J4=60k, J5=15k, J6=18k, J7=20k, J8=45k,
J9=25k, J10=5k

No.
Bloque
SO
B1
B2
B3
B4
B5
B6

Tamao

Localidad Acceso
memoria

Estado

20K
20K
30K
50K
45K
60K
25K

Algoritmo del peor ajuste. Asigna la particin ms grande disponible y suficiente para
almacenar la tarea que la solicita, la bsqueda se realiza siempre desde el inicio de la
tabla de memoria por lo que se sugiere que la tabla se encuentre ordenada del bloque
ms grande al ms pequeo. Sin embargo una vez asignadas las tareas la tabla de
permanecer tal cual se defini al principio. La asignacin de tareas respeta la prioridad
FIFO.
Ejemplo3: Para una tabla de memoria de un esquema fijo:
No.
Bloque
SO
B1
B2
B3
B4

Tamao
15K
20k
10k
50k
35k

Direccin
memoria
0k
15k
35k
45k
95k

Acceso Estado
SO
-----

1
0
0
0
0

Tabla de memoria ordenada, el ordenamiento solo se realiza con los bloques designados
para los procesos, la particin del sistema operativo permanece fija.
Tabla de memoria ordenada.
No.
Tamao
Direccin
Bloque
memoria
S.O.
15K
0K
B3
50k
45k
B4
35k
95k
B1
20k
15k
B2
10k
35k

Acceso Estado
SO
J1
J2
J3
J5

1
1
1
1
1

No. Tarea
J1

Tamao
15Kb

J2

30Kb

J3
J4 espera

20Kb
35Kb

J5
J6 espera

10Kb
10Kb

J7 espera

20Kb

Tabla de memoria final:


No. Bloque Tamao Direccin
Memoria
SO
15K
0k
B1
20k
15k
B2
10k
35k
B3
50k
45k
B4
35k
95k

Acceso Estado
SO
J3
J5
J1
J2

1
1
1
1
1

El algoritmo funciona de la siguiente manera:


1.-Ordenar los bloques de la tabla de memoria en forma descendente. Guardar la
configuracin original de la tabla.
2.-Iniciar el algoritmo desde el primer elemento de la tabla de tareas para colocarlo en
un bloque, esta bsqueda del bloque se realiza siempre desde el primer nodo de la tabla
de memoria.
3.-Se integran las validaciones para encontrar un bloque disponible (estado=0) y que el
tamao del bloque sea suficiente para la tarea (tamao_tarea<=tamao_bloque).
4.-Si 3 se cumple, se actualiza la tabla de memoria y se asigna al campo de acceso el
identificador de tarea que lo buscaba.
5.-En caso de que no se cumpla debido a que no hay bloques disponibles (estado=1), el
puntero de la tabla de tareas avanza al siguiente nodo y la tarea anterior se pone en
espera.
6.-En caso de que no se cumpla debido a que los bloques disponibles no tienen espacio
suficiente, el puntero de la tabla de tareas avanza al siguiente nodo y la tarea anterior se
pone en espera.
7.-Repetir estos pasos hasta terminar con la tabla de tareas.
8.-Mostrar la tabla de memoria final.
Ejercicio3: Peor Ajuste
De acuerdo a la siguiente informacin disear la tabla de memoria y asignar por el
mtodo del peor ajuste las siguientes tareas.
-S.O. 20k
-Tamao de Memoria=250k
-Lista de Tareas: J1=35k, J2=42k, J3=50k, J4=60k, J5=15k, J6=18k, J7=20k, J8=45k,
J9=25k, J10=5k

No.
Bloque
SO
B1
B2
B3
B4
B5
B6

Tamao
20K
20K
30K
50K
45K
60K
25K

Localidad Acceso
memoria

Estado

Desventajas de los mtodos de particin de memoria.- Cuando las tareas son


asignadas a los bloques de memoria, generalmente no utilizan en su totalidad el bloque
de memoria, por lo que ese desperdicio de memoria o memoria sobrante, queda
imposibilitado para alojar cualquier otra tarea, debido a la proteccin de particin. En
ese caso cuando se trata de un desperdicio de bloque de memoria en una asignacin fija,
se denomina fragmentacin interna, cuando se trata de un desperdicio de bloque de
memoria en una asignacin dinmica (esto una vez que los primeros procesos salieron y
ahora la memoria permanece con los tamaos que establecieron dichas tareas), se
conoce como fragmentacin externa.

Practica4.- Disear un programa que realice la asignacin de los algoritmos:


primer ajuste, mejor ajuste y peor ajuste.

También podría gustarte