Вы находитесь на странице: 1из 38

C.P.R.

de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

C.F.G.S. DESARROLLO DE APLICACIONES INFORMTICAS

MDULO: Sistemas Informticos Multiusuario y en Red

Unidad 3

Sistemas Operativos (I)

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

INDICE DE CONTENIDOS

OBJETIVOS...................................................................................................................................................... 3 INTRODUCCIN ..................................................................................................................................... 3 CARACTERSTICAS ............................................................................................................................... 4 COMPONENTES ..................................................................................................................................... 5 ESTRUCTURA......................................................................................................................................... 7 EVOLUCIN HISTRICA ....................................................................................................................... 9 5.1. PRIMERA GENERACION (1945-1955) ........................................................................................ 9 5.2. SEGUNDA GENERACION (1955-1965)..................................................................................... 10 5.3. TERCERA GENERACION (1965-1980) ..................................................................................... 11 5.4. CUARTA GENERACION (1980 - hasta nuestros das) .............................................................. 11 6. TIPOS DE SISTEMAS OPERATIVOS................................................................................................... 12 6.1. SEGN EL NMERO DE USUARIOS ....................................................................................... 12 6.1.1. MONOUSUARIO ................................................................................................................... 12 6.1.2. MUTIUSUARIO...................................................................................................................... 14 6.2. SEGN EL NMERO DE TAREAS ( PROCESOS ventanas) .............................................. 16 6.2.1. MONOTAREA ( monoprogramacin) .................................................................................. 16 6.2.2. MULTITAREA ( multiprogramacin) .................................................................................... 17 6.3. SEGN EL NMERO DE PROCESADORES ( Microprocesadores)....................................... 18 6.3.1. MONOPROCESADOR ( MONOPROCESO) ..................................................................... 18 6.3.2. MULTIPROCESADOR ( MULTIPROCESO) ...................................................................... 19 6.4. SEGN EL TIEMPO DE RESPUESTA ...................................................................................... 20 6.4.1. PROCESOS POR LOTES (BATCH) .................................................................................... 21 6.4.2. TIEMPO REAL ( REAL TIME) ............................................................................................. 21 6.4.3. TIEMPO COMPARTIDO........................................................................................................ 21 7. GESTIN DE PROCESOS ( Programas Tareas) ............................................................................ 22 7.1. ESTADOS DE UN PROCESO .................................................................................................... 25 7.2. PRIORIDADES Y PLANIFICACIN DE PROCESOS ................................................................ 26 7.3. ALGORITMOS DE PLANIFICACIN DE PROCESOS .............................................................. 27 7.3.1. ALGORITMO DE RUEDA ( ROUND ROBIN)................................................................... 27 7.3.2. ALGORITMO POR PRIORIDADES O MULTINIVEL............................................................. 28 7.3.3. ALGORITMO POR INTERVALOS DE ESPERA ................................................................... 28 7.3.4. ALGORITMO FIFO ................................................................................................................ 29 7.3.5. ALGORITMO EL TRABAJO MS CORTO PRIMERO......................................................... 30 8. GESTIN DE MEMORIA....................................................................................................................... 30 8.1. GESTIN DE MEMORIA EN SISTEMAS MOTAREA................................................................ 30 8.2. GESTIN DE MEMORIA EN SISTEMAS MULTITAREA........................................................... 31 8.2.1. REDISTRIBUCIN DE MEMORIA ........................................................................................ 33 8.2.2. PAGINACIN ........................................................................................................................ 35 8.2.3. SEGMENTACIN.................................................................................................................. 36 8.2.4. MEMORIA VIRTUAL.............................................................................................................. 37 GLOSARIO ..................................................................................................................................................... 38 TAREAS.......................................................................................................................................................... 38 AUTOEVALUACIONES .................................................................................................................................. 38 1. 2. 3. 4. 5.

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

OBJETIVOS
VER: Objetivos

1. INTRODUCCIN
Desde que encendemos el ordenador ya estamos utilizando el sistema operativo. Aunque por otra parte el sistema operativo por s solo no tiene mucha utilidad, puesto que su funcin no es otra que hacer de enlace entre el hardware de nuestra mquina y los programas de aplicacin que utilicemos:

Hardware

SISTEMA OPERATIVO (Enlace)

Usuarios

Programas de aplicacin

Vamos a ver a continuacin algunas definiciones de sistema operativo, puedes tener una idea bastante completa de lo que estamos estudiando si combinas todas estas definiciones.

Un Sistema Operativo (SO) es un conjunto de programas y funciones que gestionan y coordinan el funcionamiento del hardware y software, ofreciendo al usuario una forma sencilla de comunicarse con el ordenador.

Puedes imaginar un sistema operativo como los programas que hacen utilizable el hardware. El hardware proporciona la "capacidad bruta de proceso"; los sistemas operativos ponen dicha capacidad de proceso al alcance de los usuarios y administran cuidadosamente el hardware para lograr un buen rendimiento.

Los sistemas operativos son ante todo administradores de recursos; el principal recurso que administran es el hardware del ordenador.

Un sistema operativo es un programa que acta como intermediario entre el usuario y el hardware del ordenador y su propsito es proporcionar el entorno en el cual el usuario pueda ejecutar programas. Entonces, el objetivo principal de un sistema operativo es, lograr que el sistema informtico se use de manera cmoda, y el objetivo secundario es que el hardware del computador se emplee de manera eficiente.

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

AUTOEVALUACIN

Un sistema operativo: a) Administra los recursos hardware de la mquina b) Es un conjunto de programas y funciones que gestionan y coordinan el funcionamiento del hardware y software c) Acta como intermediario entre el usuario y el hardware del ordenador d) Todas las respuestas son correctas

2. CARACTERSTICAS
Las caractersticas generales de los sistemas operativos son las siguientes: Concurrencia Consiste en la existencia de varias actividades simultneas y su solucin. Comparticin de recursos Las principales razones para permitir la comparticin de recursos son la reduccin de coste, reutilizacin, comparticin de datos, y eliminacin de redundancia. Almacenamiento a largo plazo Para un almacenamiento de los datos a plazo largo se utilizarn medios no voltiles. Indeterminismo El sistema operativo puede ser: o Determinista Un mismo programa ejecutado en momentos diferentes produce los mismos resultados. o Indeterminista Tiene que responder a circunstancias que pueden ocurrir en un orden impredecible. Eficiencia El sistema operativo tiene que ejecutar rpidamente los procesos y optimizar la utilizacin de recursos. Fiabilidad El sistema operativo tiene que estar libre de errores.

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Facilidad de correccin El sistema operativo tiene que ofrecer modularidad, buenas interfaces y documentacin suficiente para facilitar las tareas, para mejorar las prestaciones o para corregir errores.

Tamao reducido Cuanta menos memoria utilice el sistema operativo, ser ms eficiente.

AUTOEVALUACIN

Una de las principales razones para permitir la comparticin de recursos es: a) El indeterminismo b) La eliminacin de redundancia c) La existencia de varias actividades simultneas

3. COMPONENTES
El sistema operativo proporciona un entorno en el cual se ejecutan los programas. Dicho entorno divide lgicamente el sistema en pequeos mdulos creando un interfaz bien definido para los programas que se ejecutarn. A continuacin revisamos algunos de los componentes que debe incluir todo sistema operativo: El ncleo Transforma los recursos reales del ordenador en recursos estndares y cmodos de usar. Sus funciones son: o o o o Controlar las interrupciones Gestionar las E/S Gestionar los procesos Sincronizacin de procesos

La API ( Interfaz de Programacin de Aplicaciones) del ncleo Es el conjunto de servicios que ofrece el sistema a las aplicaciones de usuarios de ese sistema. Las aplicaciones invocan estos servicios a travs de llamadas a procedimientos. La API queda definida por lo tanto por los nombres de estos procedimientos, sus argumentos y el significado de cada uno de ellos.

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Si por ejemplo el usuario ordena guardar un dato en memoria, se llama al procedimiento procedimiento_guardar_dato que indica los pasos a seguir para guardar ese dato en memoria. El conjunto de servicios que ofrece el ncleo a los procesos se denomina la API del ncleo. Est formada por procedimientos pertenecientes al ncleo, pero que se invocan desde un proceso cualquiera. La invocacin de uno de estos procedimientos es un llamada al sistema.

1 Algunas llamadas al sistema son: Manejo de procesos: Creacion (fork), destruccin (kill), .... Manejo de memoria: Extensin de la memoria de datos (sbrk) Manejo de archivos y dispositivos: Open, read, write y close.

EJEMPLO

Los drivers para dispositivos Un driver o controlador hace que el sistema operativo de una computadora pueda entenderse con cualquier perifrico, como es el caso de una impresora, una placa de video, un mouse, un mdem, etc. Un driver es como un traductor entre el ordenador y el perifrico.

El sistema de archivos Se encarga de estructurar un disco en una estructura jerrquica de archivos y directorios.

El intrprete de comandos ( shell) Se encarga de leer las rdenes interactivas de usuario y ejecutar los programas que el usuario indique.

AUTOEVALUACIN

Las funciones del ncleo son: a) Gestionar las E/S, gestionar los procesos, Sincronizacin de procesos b) Controlar las interrupciones, gestionar las E/S, gestionar los procesos,

Sincronizacin de procesos c) Controlar las interrupciones

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

4. ESTRUCTURA
Los sistemas operativos se organizan en capas o niveles en torno a un ncleo principal. Cada una de estas capas o niveles realiza una funcin determinada y, dependiendo de esa funcin, tienen ms o menos prioridad. La capa principal y la de mayor prioridad es el ncleo. Un sistema operativo se puede estructurar o dividir en cuatro capas o niveles: Nivel usuario Recoge las rdenes que el usuario da al ordenador. Nivel supervisor Se encarga de realizar la comunicacin de cada proceso entre el sistema y el usuario. O sea comprueba las ordenes que da el usuario. Controla y coordina la gestin de entrada/salida de los diferentes procesos hacia los perifricos. Nivel ejecutivo Realiza la administracin y gestin de la memoria. Se encarga de almacenar los procesos en pginas, tanto en memoria principal como en disco. Ya veremos que esta gestin es la llamada gestin de memoria virtual. Nivel ncleo Es el que se encarga de controlar todo lo que ocurre en el ordenador. Gestionan los procesos que llegan para ser ejecutados. Son fundamentalmente, sistemas operativos multiusuario. Este nivel se encarga de realizar tareas bsicas del sistema, comunicacin con el hardware, planificacin de procesos, etc.

Las capas de un sistema operativo, relacionadas con los niveles, son las siguientes: CAPA 3 2 1 0 NIVEL Usuario Supervisor Ejecutivo Ncleo

Dependiendo del SO que tengamos instalado este va a tener mas o menos niveles.

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

EJEMPLO

Vamos a ver como funcionan los niveles del SO en el caso de que el usuario ordene poner en negrita un texto: Esa orden se pasa al Nivel de usuario y el nivel de usuario recoge la orden. Lo pasa al Nivel supervisor y el supervisor comprueba que esa orden es correcta. Ejemplo de orden incorrecta No haber seleccionado el texto, entonces no puede cumplir la orden porque no tiene nada que poner en negrita. Se pasa al Nivel ejecutivo y el nivel ejecutivo selecciona ese texto en memoria y lo prepara para ponerlo en negrita. El ncleo le comunica al microprocesador que tiene que mostrar en pantalla el texto en negrita. El microprocesador Ejecuta la orden, o sea pone el texto en negrita. Esa orden consta de dos partes: o o Mostrar el texto (en negrita) en pantalla. Y almacenarlo en memoria ya puesto en negrita.

El resultado lo pasa al Ncleo, este al N. Ejecutivo, este al N. Supervisor, este al N. Usuario, que muestra al usuario el texto en negrita

Esquemticamente:

N. Usuario N. Supervisor N. Ejecutivo N. Ncleo

MP

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

AUTOEVALUACIN

El Nivel del ncleo: a) Comprueba las ordenes que da el usuario b) Gestiona la memoria c) Gestiona los procesos que llegan para ser ejecutados

5. EVOLUCIN HISTRICA
Los sistemas operativos, al igual que el hardware, han sufrido cambios a travs del tiempo, los cuales se pueden agrupar en generaciones. La evolucin del hardware ha marcado el paralelismo de la evolucin de los sistemas operativos.

1 Generacin
1945 1955

2 Generacin
1965

3 Generacin
1980

4 Generacin
Nuestro das

5.1. PRIMERA GENERACION (1945-1955)


En esta poca se utilizaba la tecnologa de las vlvulas o tubos de vaco que hacan que los ordenadores fuesen enormes. El usuario tena que hacer todos los programas en cdigo binario. Las mquinas eran de un enorme coste. Estos primeros sistemas operativos se limitaban a controlar y secuenciar la ejecucin de programas y sus datos, que en aquella poca estaban escritos en tarjetas perforadas. Las tarjetas perforadas llevaban escritas las instrucciones de programa en forma de agujeros en una cartulina, que una mquina lectora de tarjetas comunicaba al sistema operativo. Este iba obteniendo las diferentes instrucciones en secuencia y controlando su ejecucin.

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Tarjeta perforada

5.2. SEGUNDA GENERACION (1955-1965)


En esta poca aparecen:

Los transistores que hacen que las mquinas se reduzcan de tamao. Los lenguajes de bajo nivel (assembler) y el lenguaje JCL. Los lenguajes de alto nivel que tenan que cargar un compilador que converta el lenguaje en assembler de la mquina en la que se compilaba. Haba que quitar el compilador de la cinta magntica e insertar el traductor, ms tarde carga el programa objeto en memoria y lo ejecuta. Todos estos recursos aumentaban el nmero de pasos que haba que dar.

Ms perifricos como las unidades de cinta magntica y una mejora notable de las impresoras. Una forma de reducir el tiempo de parada del procesador es pasar de los dispositivos ms lentos a otros ms rpidos con un sistema off-line. Si haba una lectura de fichas se pasaba la informacin a una cinta y el procesador lea de ella. El procesador volcaba la informacin sobre otra cinta y despus off-line pasaba de la cinta a la impresora. Este procesamiento, en general es ms rpido, pero para un solo programa es ms lento.

Lectura de tarjetas

Cinta 1

Procesador

Cinta 2

Impresora

Los buffer que son memorias intermedias donde pasa la informacin, el dispositivo leer del buffer, eliminando as el dispositivo off-line.

10

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Lectura de tarjetas

Buffer 1

Procesador

Buffer 2

Impresora

5.3. TERCERA GENERACION (1965-1980)


En esta poca aparece:

La escalabilidad, que es la posibilidad de ampliar en un momento determinado las funciones de un sistema.

La multiprogramacin, es decir, que el procesador est trabajando continuamente. Consiste en dividir el espacio de memoria en varias partes, pudiendo tener un programa en cada una de esas partes. Cuando hay un proceso de E/S el S.O. comienza otro trabajo.

Las unidades de disco. Ahora se utiliza el disco para realizar la funcin del buffer. Este disco se llama spool y slo lo utilizaba el sistema operativo.

Spool

Lectura de Tarjeta

Procesador

Impresora

Los sistemas de tiempo compartido, en donde el procesador reparte su tiempo entre los usuarios que estn utilizndolo. Con el sistema de tiempo compartido el paso de los sistemas procesamiento por lotes es ms reducido.

Los sistemas de tiempo real que funcionan mediante una serie de sensores que tienen una respuesta inmediata. Son tiempos de respuesta inmediata.

5.4. CUARTA GENERACION (1980 - hasta nuestros das)


En esta poca aparece:

Conectividad,

que permite una gran libertad de comunicacin pero hace que

aparezcan problemas en la Seguridad, lo que impulsa el desarrollo de la criptografa que intenta asegurar la privacidad, la integridad del mensaje y la autentificacin del mismo.

11

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

El concepto de Mquina Virtual que simula otras mquinas en una plataforma concreta (Emuladores). Esto alcanza su mayor desarrollo con la plataforma Java que es un Lenguaje y una Mquina Virtual.

Los Sistemas de Gestin de Bases de datos

AUTOEVALUACIN

Los programas escritos en tarjetas perforadas A que generacin de los sistemas operativos pertenecan? a) Primera generacin b) Segunda generacin c) Tercera generacin d) Cuarta generacin

PARA SABER MAS: Evolucin histrica

6. TIPOS DE SISTEMAS OPERATIVOS


Para ver los tipos de sistemas operativos hemos de tener en cuenta el nmero de usuarios que pueden utilizar el sistema. Tambin tenemos que considerar los procesos que dicho sistema pueda realizar a la vez: uno o varios. Igualmente, depender del nmero de procesadores con los que cuente el ordenador. Por ltimo tendremos en cuenta el tiempo de respuesta del sistema. A continuacin vamos a clasificar a los sistemas operativos segn esos puntos de vista.

6.1. SEGN EL NMERO DE USUARIOS


Segn el nmero de usuarios que pueden acceder a un ordenador y de acuerdo con el sistema operativo que les de servicio, nos encontramos con los siguientes sistemas:

6.1.1.

MONOUSUARIO

Slo un usuario trabaja con un ordenador. En este sistema todos los dispositivos de hardware estn a disposicin de dicho usuario y no pueden ser utilizados por otros hasta que ste no finalice su sesin.

12

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Slo ese usuario puede utilizar los dispositivos hardware del ordenador: grabadora, impresora, ... Sistemas operativos monousuario
Impresora Lectora de CDs

Ejemplos de sistemas operativos monousuario: MS-DOS, Windows 95, Windows 98, Windows ME Windows Millennium Edition Windows Millenium Edition, IBM-DOS, DR-DOS, PCOS, etc.

Ventana de MS-DOS

EJEMPLO

Si tuvisemos dos ordenadores conectados en red sera distinto: Supongamos una Red Peer to peer Igualitaria Grupo de trabajo En este tipo de redes todos los ordenadores son iguales, ninguno es servidor.

1 (W98)

Conectados en red

2 (W98) Impresora (Compartida) Lectora de CDs (Compartida)

En este caso el usuario del ordenador 1 puede usar los dispositivos (impresora y lectora de CD) del ordenador 2 porque estn compartidos.

13

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

6.1.2.

MUTIUSUARIO

Este tipo de sistemas se emplean especialmente en redes Cuando aparece la palabra Server indica que es Multiusuario, pues en el servidor se crean cuentas para los diferentes usuarios. Varios usuarios pueden utilizar simultneamente los recursos y dispositivos hardware del ordenador Servidor, bien sea: Por medio de varias terminales conectadas al ordenador Sistemas operativos multiusuario

Servidor
(Unix) Impresora Lectora de CDs

1 Terminales (Conectados en red) (Sin S.O.)

2 (Sin S.O.)

Los terminales 1 y 2 estn compuestos de un monitor y un teclado el cual lleva incorporado una tarjeta de red para que los usuarios puedan conectarse al servidor.

Mediante sesiones remotas en una red de comunicaciones Sistemas operativos multiusuario

Servidor
(Windows 2000 server) Impresora Lectora de CDs

1 Equipos (Conectados en red) (W98)

2 (W98)

14

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

En ambos casos Cada usuario tiene una cuenta en el servidor, por lo tanto pueden utilizar los recursos hardware del servidor. Ejemplos de sistemas operativos multiusuario: UNIX, Novel, Windows NT Server, Windows 2003 Server, Windows 2003 Advanced Server (Es igual que el Windows 2003 Server pero con la posibilidad de conectar mas terminales), VMS (Dgital), MVS (grandes equipos IBM), OS/400 (del IBM AS/400), windows XP (no puede ser servidor), windows 2000 Profesional (no puede ser servidor), etc.

Pantalla de inicio de Windows Server 2003

Se pueden compartir, sobre todo, los dispositivos externos de almacenamiento y los perifricos de salida, fundamentalmente impresoras:

EJEMPLO

Para gestionar las impresoras, los trabajos enviados por varios usuarios se sitan en colas de espera hasta que les llegue su turno. En la Cola de espera tenemos: Trabajo1 de usuario1 Trabajo2 de usuario1

15

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Trabajo1 de usuario2

Los trabajos se van imprimiendo segn vayan llegando. Estas colas se denominan spool de impresin.

6.2. SEGN EL NMERO DE TAREAS ( PROCESOS ventanas)


Esta clasificacin se hace atendiendo al nmero de programas o procesos que puede realizar simultneamente el ordenador o sistema informtico.

6.2.1.

MONOTAREA ( monoprogramacin)

El ordenador slo puede ejecutar un programa a la vez. De esta forma, los recursos del sistema estarn dedicados al programa hasta que finalice su ejecucin. Esto no impide que el sistema pueda ser multiusuario; es decir, varios usuarios pueden intentar ejecutar sus programas en el mismo ordenador, pero de forma sucesiva. Para ello, se tienen que establecer las correspondientes colas o prioridades en la ejecucin de los trabajos. En este sistema, la atencin del procesador estar dedicada a un solo programa hasta que finalice.

Sistemas operativos monotarea Sistemas operativos monotarea monousuario

Sistemas operativos monotarea multiusuario

Ejemplo de sistema operativo monotarea: MS-DOS.

16

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

6.2.2.

MULTITAREA ( multiprogramacin)

El ordenador puede ejecutar varios programas o procesos a la vez. Para ello la UCP compartir el tiempo de uso del procesador ( microprocesador) entre los diferentes programas que se van a ejecutar.

EJEMPLO

Se ejecutan dos programas en diferentes momentos: el word y el excel. El microprocesador, asigna: Un tiempo a word (por ejemplo para poner texto en negrita) (1) El Mp asigna un tiempo a esa orden, la ejecuta y (2) devuelve el texto en negrita.
Mp (1) (2) Word

Otro tiempo a excel (por ejemplo para hacer un clculo) (1) El Mp asigna un tiempo a esa orden, la ejecuta y (2) devuelve el resultado.
Mp (1) (2) Excel

Otro tiempo a word (por ejemplo para subrayar un texto) (1) El Mp asigna un tiempo a esa orden, la ejecuta y (2) devuelve el resultado.
Mp (1) (2) Word

Si ahora queremos hacer 2 de esas tareas a la vez: Poner en negrita y subrayar. Y lo hacemos a travs del cuadro de dilogo Fuente (Formato Fuente): Negrita Subrayado Aceptar

17

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Al pulsar el botn Aceptar parece que he hecho las dos tareas a la vez, (poner en negrita y subrayado), pero en realidad: Pone primero en negrita, devuelve el resultado. Y luego subraya y devuelve el resultado.

Lo hace tan rpido que parece que hace las dos tareas a la vez, pero en realidad hace primero una y luego otra.

Sistemas operativos multitarea Sistemas operativos multitarea monousuario

Sistemas operativos multitarea multiusuario

Ejemplo de sistema operativo multitarea:

Windows NT Workstation, Windows NT Server,

Windows 2000 Profesional, Windows 2003 Server, Windows 2003 Advanced Server, UNIX, Novell, etc. En general, la mayora son sistemas multitarea.

6.3. SEGN EL NMERO DE PROCESADORES ( Microprocesadores)


Segn que el ordenador cuente con uno o varios procesadores para realizar los procesos:

6.3.1.

MONOPROCESADOR ( MONOPROCESO)

El ordenador tiene un nico procesador. Si se abren 2 programas no los puede ejecutar a la vez. Primero ejecuta uno y luego otro, aunque como lo hace tan rpido, da la sensacin de que se estn ejecutando a la vez Todos los trabajos pasarn por l. El ordenador que tenga este sistema operativo puede ser monousuario, multiusuario, monotarea, multitarea, etc. Ejemplos de sistemas operativos monoprocesador: MS-DOS, Windows 95, Windows 98, etc.

18

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

6.3.2.

MULTIPROCESADOR ( MULTIPROCESO)

El ordenador tiene varios procesadores, con objeto de distribuir su carga de trabajo.

EJEMPLO

Tenemos un ordenador con 4 MP (microprocesadores) Si lanzo 4 aplicaciones a la vez (word, access, excel, photoshop), podra ejecutar cada una de ellas en cada MP, sin que tengan que esperar a ser ejecutadas las anteriores:

ORDENADOR

Mp1

Mp2

Mp3

Mp4

Lanza 4 aplicaciones: AP1, AP2, AP3, AP4

Ejecuta cada una de ellas en cada MP

ORDENADOR Mp1
Ejecuta

Mp2
Ejecuta

Mp3
Ejecuta

Mp4
Ejecuta

Ap1

Ap2

Ap3

Ap4

EJEMPLO

Qu es mejor tener un ordenador con 1 MP a 1000 Mhz o 1 ordenador con 2 Mp a 500 Mhz cada(Mp) uno? Primero hay que saber que existen operaciones lentas Las que tienen componentes mecnicos. Cmo son: Acceso a disquete, HD, CD... Cuando a un proceso le toca salir del Mp, si est con una de esas operaciones lentas, el MP

19

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

espera. Si tenemos:

ORDENADOR1 Mp1 a 500 Mhz Mp2 a 500 Mhz

ORDENADOR2 Mp a 1000 Mhz

AP1 Operacin lenta Operacin2

Ap1 ejecuta una operacin lenta en el Mp1. Luego Ap1, le toca hacer otra operacin2, pero todava no acab con la lenta, entonces esa operacin2, se podra ejecutar en el Mp2.

Es mejor tener 1 ordenador con 2 Mp a 500 Mhz. Ya que por muy rpido que fuese el Mp de ORDENADOR2 (1000 Mhz), tendra que esperar aunque fuese menos (que en el ORDENADOR1) a que se ejecutase la operacin lenta. Otra ventaja de tener mas Mp en un ordenador, es que si se estropea uno de los Mp, se puede seguir trabajando (por tener mas Mp). Ejemplos de sistemas operativos multiproceso (segn el ordenador y teniendo en cuenta otras muchas condiciones): UNIX, Windows NT, Windows 2000, LINUX, etc. Normalmente los equipos que son servidores tienen ms de un procesador.

6.4. SEGN EL TIEMPO DE RESPUESTA


Esta clasificacin se hace teniendo en cuenta el tiempo que tarda el sistema en obtener los resultados despus de lanzar un programa en ejecucin:

20

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

6.4.1.

PROCESOS POR LOTES (BATCH)

Ejecuta varios procesos (programas) a la vez y hasta que no termine con todos no muestra el resultado de cada uno de esos procesos. P1 P2 P3 R1 R2 R3 En los procesos por lotes, (la respuesta) los resultados no se obtienen hasta transcurrido un tiempo. Este proceso en lotes se utilizaba antiguamente cuando slo haba un ordenador para 5 o 6 informticos. Ejemplos de sistemas operativos por lotes: Todos.

6.4.2.

TIEMPO REAL ( REAL TIME)

Ejecuta un proceso y devuelve el resultado al instante. Luego ejecuta otro proceso y devuelve el resultado al instante. Luego ejecuta otro proceso y devuelve el resultado al instante. Y as sucesivamente. P1 R1 P2 R2 P3 R3 En los procesos en tiempo real, (la respuesta) los resultados se obtienen al momento tras lanzar un proceso. Los ordenadores que funcionan en tiempo real son ms rpidos que los que funcionan por lotes. Este tipo de procesos en tiempo real tiene relacin con los S.O. monousuario ya que existe 1 slo usuario y no necesita compartir el microprocesador entre varias solicitudes. Ejemplos de sistemas operativos en tiempo real: Todos.

6.4.3.

TIEMPO COMPARTIDO

Comparte el tiempo del microprocesador entre los procesos lanzados. Cada proceso utilizar fracciones de tiempo de ejecucin de la UCP hasta que finalice. En este caso, parece que el

21

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

usuario dedica la UCP exclusivamente para l; pero esto no es cierto, ya que, aunque el usuario no lo perciba, la UCP est dedicada a varios procesos a la vez. Ejemplos de sistemas operativos en tiempo compartido: Todos los actuales. En el caso de tener 2 microprocesadores (s.o. multiprocesador) Si lanzamos 3 tareas seguir compartiendo el microprocesador. Por lo tanto aunque haya mas de un microprocesador, en algn momento, va a tener que trabajar en tiempo compartido.

AUTOEVALUACIN

Entendemos por multitarea: a) El ordenador puede ejecutar 2 programas a la vez b) El ordenador puede ejecutar varios programas a la vez c) Varios usuarios pueden utilizar simultneamente los dispositivos hardware del ordenador

7. GESTIN DE PROCESOS ( Programas Tareas)


En la actualidad, cualquier ordenador realiza varias cosas al mismo tiempo, ya que la mayora de los sistemas operativos actuales son multitarea. Los nicos sistemas multitarea real son aquellos que cuentan con ms de un procesador. El resto son sistemas operativos que permiten cargar en memoria ms de un proceso, pero solamente pueden ejecutar uno de ellos simultneamente. Adems, puede ser que mientras que se ejecuta un programa se estn enviando datos a la impresora o se estn admitiendo datos por el teclado. Este paralelismo de tareas necesita una planificacin especial para optimizar el uso de los recursos del sistema. Un proceso Es un programa en ejecucin. Pero si tenemos en cuenta la multitarea y el mutiproceso, hemos de considerar que varios de estos programas podrn estar ejecutndose a la vez, y, para ello, el sistema operativo tendr que llevar a cabo una adecuada gestin de los recursos fsicos del propio sistema informtico. Una UCP no puede realizar dos o ms procesos a la vez. La rapidez con la que la UCP dedica de forma alterna su tiempo a los diferentes procesos puede inducir a pensar que los procesos se ejecutan simultneamente, pero no es as: la UCP dedica su tiempo en fracciones de segundo a cada proceso, pero no de forma simultnea. La mayora de los ordenadores tienen un nico microprocesador (Mp) Cuando se ejecutan (realizan) varios procesos (tareas) a la vez hay que compartir el tiempo del Mp. Que consiste

22

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

en dividir el tiempo del Mp en intervalos de tiempo (milisegundos) y asignar ese intervalo de tiempo a cada proceso que se est ejecutando. De esta forma, el procesador trabajar poco tiempo en cada proceso.

EJEMPLO

Si se ejecutan (lanzan) 3 aplicaciones ( tareas programas procesos): Ap1, Ap2, Ap3, el Mp no puede ejecutar las 3 a la vez 1) Primero asigna un tiempo t1 a Ap1 y ejecuta un trozo de Ap1 en el microprocesador (el trozo que le de tiempo en ese tiempo1) 2) Luego asigna un tiempo t2 a Ap2 y ejecuta un trozo de Ap2 en el microprocesador (el trozo que le de tiempo en ese tiempo2) 3) Luego asigna un tiempo t3 a Ap3 y ejecuta un trozo de Ap3 en el microprocesador (el trozo que le de tiempo en ese tiempo3) 4) Y vuelve otra vez a repetir los puntos 1. 2. 3. Hasta que vaya terminando de ejecutar las aplicaciones.

23

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Esquemticamente: Ap1 - t1 a Ap1 Ejecuta ese trozo en el Mp Ap2 - t2 a Ap2 Ejecuta ese trozo en el Mp Ap3

- t3 a Ap3

Ejecuta ese trozo en el Mp Ap1

Microprocesador

- t11 a Ap1

Ejecuta ese trozo en el Mp Ap2

- t21 a Ap2

Ejecuta ese trozo en el Mp Ap3

- t31 a Ap3

Ejecuta ese trozo en el Mp

Si aplicamos a este ejemplo un caso real: Ap1 equivale a poner en negrita 1000 lneas de texto Ap2 equivale a subrayar 2000 lneas de texto Ap3 equivale a poner en cursiva 700 lneas de texto

24

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

El trozo que podra hacer de Ap1 sera: Poner en negrita 10 lneas de texto El trozo que podra hacer de Ap2 sera: Subrayar 20 lneas de texto El trozo que podra hacer de Ap3 sera: Poner en cursiva 7 lneas de texto Luego vuelve a hacer mas trozos de Ap1, Ap2, Ap3

Parece que ejecuta las 3 aplicaciones a la vez, pero en realidad primero ejecuta un trozo de una, luego un trozo de otra...

EJEMPLO

Lanzamos 3 rdenes al mismo tiempo: Imprimir, buscar un archivo, escuchar msica. Parece que las 3 estn ejecutndose a la vez, pero en realidad lo que hace es: El microprocesador asigna un tiempo para enviar a la impresora el documento a imprimir Luego asigna otro tiempo para buscar el archivo Y otro tiempo para escuchar msica La impresora va mas lenta Despus asigna mas tiempo para seguir buscando el archivo Y asigna mas tiempo para escuchar msica Y as sucesivamente

7.1. ESTADOS DE UN PROCESO


Los estados en los que se puede encontrar un proceso son los siguientes: Nuevo Proceso que se acaba de crear pero que todava no ha sido admitido por el SO en el grupo de procesos ejecutables. Preparado (listo) Un proceso est preparado para ser ejecutado en cuanto se le d la oportunidad; es decir, est esperando el turno para poder utilizar su intervalo de tiempo. En ejecucin El procesador est ejecutando instrucciones de ese proceso en un instante concreto.

25

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Bloqueado El proceso est retenido; es decir, est bloqueado debido a causas mltiples: o o Que dos procesos utilicen el mismo fichero de datos. Que dos procesos necesiten utilizar la misma unidad de CD-ROM para cargar determinados datos o ........

Terminado Proceso que ha sido excluido por el sistema operativo del grupo de procesos ejecutables.

AUTOEVALUACIN

Cuando el procesador est ejecutando instrucciones de un proceso, dicho proceso se encuentra en el estado de: a) Nuevo b) Preparado c) Ejecucin d) Bloqueado e) Terminado

7.2. PRIORIDADES Y PLANIFICACIN DE PROCESOS


Prioridades Son aquellas que el administrador del sistema asigna a cada proceso. De ello depender que un proceso se ejecute en ms o menos tiempo. Ejemplo - Supongamos una aplicacin informtica bancaria que consta de diferentes programas. Es evidente que algunos de estos programas tendrn prioridad sobre otros. Por ejemplo, un programa de realizacin de nminas tendr prioridad de ejecucin en los ltimos das del mes respecto a un programa de contabilidad. Tambin se pueden establecer prioridades en funcin de la necesidad de ejecucin de algunos programas. Los programas que ms se ejecutan, o sea, los ms necesarios, tendrn prioridad sobre aquellos que se ejecutan muy de cuando en cuando.

26

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Planificacin Indica al ordenador los procesos que deben ejecutarse y en que orden Aparecen los algoritmos de planificacin:

7.3. ALGORITMOS DE PLANIFICACIN DE PROCESOS


Indican al ordenador que procesos deben ejecutarse y en que orden. En el EJEMPLO 8 se ejecutaba: 1) Ap1, 2) Ap2, 3) Ap3 Pero igual sera mejor ejecutar: 1) Ap2, 2) Ap3, 3) Ap1 Eso lo indican los algoritmos de planificacin. Dentro de los algoritmos de planificacin, citaremos algunos de los ms importantes:

7.3.1.

ALGORITMO DE RUEDA ( ROUND ROBIN)

Asigna rotativamente tiempos de ejecucin a los diferentes procesos. La asignacin de intervalos de tiempos de ejecucin a los diferentes procesos es la misma y de forma rotativa.

10

EJEMPLO

Supongamos que se estn ejecutando tres procesos. Cada uno de ellos consume un nmero de tiempos o ciclos de UCP ( Mp Microprocesador). Veamos en qu ciclo de UCP empieza cada proceso y en cul acaba. Imaginemos que el primer proceso lanzado es A, el segundo es B y el tercero es C. El resultado es el siguiente:
La tarea A empieza en el tiempo 1 y termina en el 18

PROCESOS A B C Lanza: 1 A, 2 B, 3 C

Tiempos que consumen de Mp 7 5 8

Tiempo Inicial 1 2 3

Tiempo Final 18 14 20

Veamos el modo en que el algoritmo de rueda ejecuta los tres procesos:


Ejecucin: Tiempo Mp:

A 1

B 2

C 3

A 4

B 5

C 6

A 7

B 8

C 9

A 10

B 11

C 12

A 13

B 14 B

C 15

A 16

C 17

A 18 A

C 19

C 20 C

27

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

7.3.2.

ALGORITMO POR PRIORIDADES O MULTINIVEL

Es uno de los ms complejos y eficaces. Asigna los tiempos de ejecucin de la CPU segn una lista de prioridades. Los procesos de mayor prioridad se ejecutan primero. En cada una de las listas, el sistema operativo incluir aquellos procesos a los que se haya asignado esa prioridad. El tiempo de ejecucin del procesador se ir destinando, en primer lugar, de forma secuencial a los procesos de mayor nivel. Terminados stos, se ejecutarn los procesos del nivel inferior, y as sucesivamente, hasta llegar a los procesos de nivel ms bajo.

11

EJEMPLO

Supongamos que se estn ejecutando los tres procesos anteriores. El A tiene prioridad alta; el B baja; y el C alta. Como A y C tienen prioridad alta entonces se ejecutan primero. B se ejecutar al final. Supongamos que el primer proceso lanzado es A, el segundo es B y el tercero es C. El resultado es el siguiente: PROCESOS A B C Lanza: 1 A, 2 B, 3 C
Ejecucin: Tiempo Mp:

Tiempos que consumen de Mp 7 5 8

Tiempo Inicial 1 16 3

Tiempo Final 12 20 15

A 1

A 2

C 3

A 4

C 5

A 6

C 7

A 8

C 9

A 10

C 11

A 12 A

C 13

C 14

C 15 C

B 16

B 17

B 18

B 19

B 20 B

C empieza en 3, entonces vuelve a lanzar A

Como podemos ver, el proceso B, aunque se lanz el segundo, al tener una prioridad inferior a los procesos A y C, solamente empieza a ejecutarse cuando estos finalizan. Tambin hemos visto que en este ejemplo, dentro de cada nivel, se aplica un intervalo de tiempo equitativo por cada proceso.

7.3.3.

ALGORITMO POR INTERVALOS DE ESPERA

Segn se va ejecutando el proceso, el tiempo que la UCP le destina puede ir aumentando o disminuyendo, segn la prioridad que le hayamos asignado. Si un proceso es prioritario, ir utilizando, segn se vaya ejecutando, intervalos ms largos de tiempo de ejecucin de la UCP.

28

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

12

EJEMPLO

Partimos de que el proceso C es el ms prioritario; luego el B; y el de ms baja prioridad es el A. Suponemos que los procesos se lanzan en el mismo intervalo: PROCESOS A B C Lanza: 1 C, 2 B, 3 A
Ejecucin: Tiempo Mp:

Tiempos que consumen de Mp 7 5 8

Tiempo Inicial 6 4 1

Tiempo Final 20 14 13

C 1

C 2

C 3

B 4

B 5

A 6

C 7

C 8

C 9

B 10

B 11

C 12

C 13 C

B 14 B

A 15

A 16

A 17

A 18

A 19

A 20 A

Esta asignacin de ciclos de UCP para cada proceso no es fija. En este ejemplo, todos los procesos empiezan casi al mismo tiempo, pero los ciclos aumentan segn la prioridad asignada a cada uno de ellos.

7.3.4.

ALGORITMO FIFO

Es el ms sencillo, pero el ms ineficaz. Como su nombre indica (First In First Out), los procesos se ejecutan segn el orden de llegada; es decir, el primero en llegar es el primero en salir o ejecutarse.
13 EJEMPLO

Aplicando el algoritmo FIFO y suponiendo que el primer proceso lanzado es A, el segundo es B y el tercero C, el resultado es el siguiente: PROCESOS A B C Lanza: 1 A, 2 B, 3 C
Ejecucin: Tiempo Mp

Tiempos que consumen de Mp 7 5 8

Tiempo Inicial 1 8 13

Tiempo Final 7 12 20

A 1

A 2

A 3

A 4

A 5

A 6

A 7 A

B 8

B 9

B 10

B 11

B 12 B

C 13

C 14

C 15

C 16

C 17

C 18

C 19

C 20 C

Este algoritmo suele utilizarse para gestionar los trabajos de impresin en las colas o spool.

29

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

7.3.5.

ALGORITMO EL TRABAJO MS CORTO PRIMERO

Es difcil de llevar a cabo por que se requiere saber cuanto tiempo necesita el proceso para terminar. Pero si se sabe, el algoritmo asigna el tiempo de ejecucin de forma prioritaria a procesos muy cortos (que necesitan menos tiempo) para ejecutarlos en el menor tiempo posible. Si se est ejecutando un proceso ms largo, el sistema operativo le quitar la ejecucin de la UCP para asignrsela al proceso ms corto. De esta forma, el usuario del proceso corto obtendr resultados en un tiempo mnimo, y el usuario del proceso largo casi no notar esta circunstancia.

14

EJEMPLO

Supongamos que el primer proceso lanzado es A, el segundo es B y el tercero es C el resultado es el siguiente : PROCESOS A B C Lanza: 1 A, 2 B, 3 C
Ejecucin: Tiempo Mp

Tiempos que consumen de Mp 7 5 8

Tiempo Inicial 1 2 3

Tiempo Final 16 9 20

A 1

B 2

C 3

B 4

B 5

A 6

C 7

B 8

B 9 B

A 10

A 11

A 12

C 13

C 14

A 15

A 16 A

C 17

C 18

C 19

C 20 C

8. GESTIN DE MEMORIA
8.1. GESTIN DE MEMORIA EN SISTEMAS MOTAREA
En este tipo de sistemas resulta muy sencilla, una porcin de la memoria se reserva al S.O. y el resto se dispone para el programa que se ejecuta.

RAM
640 K 600 k 40 k 0K

Aplicacin

S.O.

30

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Cuando el programa termina de ejecutarse, se carga otro programa en la misma posicin que ocupaba el programa anterior. Como el S.O. tiene un tamao fijo, los programas se suelen cargar a partir de la siguiente posicin libre. Inconvenientes - Este sistema no resulta complicado pero tiene dos inconvenientes: Solo sirve para sistemas monousuarios, lo que implica una infrautilizacin de la UCP y los perifricos. Es similar a todos los sistemas excepto el de memoria virtual, y consiste en que si el tamao de un programa es mayor que el que queda libre no puede ejecutarse por falta de memoria. Por ejemplo: Si quiero ejecutar un programa de 1200 K, no se puede cargar en la RAM, pues es mayor de 640 K 40 K (lo que ocupa el S.O) = 600 K 1200 k > 600 k

RAM
640 K 600 k

RAM
1200 K 1200 K 0K

Aplicacin
40 k

Aplicacin

S.O.

0K

8.2. GESTIN DE MEMORIA EN SISTEMAS MULTITAREA


Con la introduccin de los sistemas Multiusuarios y/o Multitarea, la gestin de memoria se complica debido a que todo el espacio que no ocupa el S.O. se ha de repartir entre los diversos programas que estn en memoria en un momento dado. Una porcin de memoria se reserva al S.O. y el resto se divide en trozos y se asigna a los programas que se van a ejecutar (Aplicacin1, Aplicacin2, Aplicacin3, Aplicacin4).

31

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

RAM Aplicacin4 Aplicacin3

100 posiciones

5000 posiciones

Aplicacin2 Aplicacin1 S.O.

1200 posiciones

500 posiciones

El S.O. tiene una tabla en la que guarda informacin sobre la memoria que se halla ocupada y la que queda libre en el sistema. Este sistema es relativamente sencillo de implantar, cuando un programa finaliza se actualiza la tabla indicando las posiciones que quedan libres.

Inconveniente - El problema que surge con este esquema es la fragmentacin de memoria. Supongamos que quedan dos regiones libres, la primera de 500 posiciones y la segunda de 5000. Si un programa que ocupa 5300 posiciones estuviera listo para ejecutarse no podra hacerlo, ya que, aunque hay suficiente memoria libre, no es contigua:

RAM Aplicacin4 Aplicacin3

RAM
100 posiciones

Aplicacin4

100 posiciones

5000 posiciones

5000 posiciones

Aplicacin Aplicacin2 Aplicacin1 S.O.


1200 posiciones

5300 posiciones

Aplicacin2

1200 posiciones

500 posiciones

500 posiciones

S.O.

Posiciones posiciones de memoria Kbytes Segn se vayan ejecutando programas, la memoria se puede ir fragmentando mas y mas, quedando una serie de "agujeros" que son porciones muy pequeas de memoria que no pueden ser utilizadas. Este problema se puede resolver mediante las tcnicas: Redistribucin, Paginacin, Segmentacin y Memoria virtual:

32

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

8.2.1.

REDISTRIBUCIN DE MEMORIA

Llegado un punto en que la memoria esta muy fragmentada, se para la ejecucin de los programas y se redistribuye (reagrupa) la memoria, para que todas las posiciones libres se queden en una zona contigua nica. De este modo toda la memoria libre queda disponible en un bloque Ya se podra cargar el programa de 5300 posiciones.

RAM Aplicacin4

RAM
100 posiciones 5000 + 500 = 5500 posiciones

5000 posiciones

Aplicacin2

1200 posiciones

Para la ejecucin de los programas y se reagrupan

Aplicacin4 Aplicacin2 S.O.

100 posiciones 1200 posiciones

500 posiciones

S.O.

Inconveniente - Los compiladores producen cdigos como si el

programa que esta

traduciendo fuera a ejecutarse a partir de la posicin 0. El Loader (programa que carga este del disco a la memoria antes de ejecutarse), una vez que el S.O le ha indicado la posicin real que ocupara el programa, se encarga de modificar las direcciones para que el programa se ejecute correctamente en el lugar indicado. Si se redistribuye la memoria y hay instrucciones con saltos, los saltos ya no valen: RAM
1300 300

RAM
1300

Aplicacin2 (2)Goto 1001


1000

200

800

400

400

500 a 300 Goto 799 100 400 0

Aplicacin1

100

S.O.

S.O.

300

Aplicacin1 (1)Goto 799

Para la ejecucin de los programas y se reagrupan

800 b

Aplicacin2

33

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Goto 799 Ir a la direccin de memoria 799. Si Aplicacin1 tiene la instruccin goto 799. Ira a b en vez de ir a a, que es donde debera ir. Este problema de los saltos (goto) se resuelve mediante los programas reubicables Que recalculan el salto. Estos programas usan el llamado Registro Base ( R.B.), que es un registro especial de la UCP que se suma a la direccin computada en la instruccin para obtener la direccin real. Cuando el programa se carga en memoria el registro base se inicializa a cero, sin embargo al redistribuir la memoria y cambiar el programa de lugar, se modifica el registro base para reflejar la nueva situacin: (1) Registro base = 400 100 = +300 Lo que ocupa ese programa Goto 799 300 Goto 499
R.B.

Ahora si que saltara a a

(2) Registro base = 1000 800 = 200 400 100 = 300 500 Goto 1001 500 Goto 501
R.B.

RAM

800

Aplicacin2
Goto 501 500

Aplicacin1
Goto 499 100 0

S.O.

Inconveniente - Con la redistribucin se pierde tiempo. Entonces se us la paginacin.

34

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

8.2.2.

PAGINACIN

Consiste en dividir la memoria en paginas iguales (del mismo tamao) y asignarlas (no necesariamente de una forma contigua) a los distintos programas. Una pgina es la porcin mnima de memoria que se puede asignar a un programa, y de ah hasta el total que necesite. O sea la paginacin consiste en dividir la memoria RAM en zonas iguales, llamadas frames y los programas en partes del mismo tamao (que los frames), denominadas pginas. El S.O. contiene una tabla en la que se refleja el estado de las paginas del sistema, es decir, que paginas estn listas y cuales asignadas a programas. Cuando se carga un programa se calcula el nmero de pginas que necesita y si estn libres, se le asignan. Las pginas cargadas en memoria no tienen porque ser contiguas.

15

EJEMPLO

Se divide la memoria en pginas de 8 K.

AP3

Si metemos en memoria un programa de 2 K para ejecutarlo 8K2K=6K Se desperdician 6 K de RAM. Si metemos en memoria un programa de 36 K para ejecutarlo 8 K 5 K = 40 K 40 K 36 K = 4 K Se desperdician 4 K de RAM.

AP2

RAM
8k 85= 40 K
.

83= 24 K

8 8 8 8 8 8 8 8 8

k k k k k k k k k

AP3

2 k = AP3 (usa 1 pag) Desperdicia 8 2 = 6 k

AP2

36 k = AP2 (usa 5 pag) Desperdicia 40 36 = 4 k

AP1

24 k = AP1 (usa 3 pag) No desperdicia memoria

S.O
Que coincida el tamao de la aplicacin con el tamao de las pginas asignadas es muy difcil. Con este mtodo, cuando se carga en memoria las direcciones del programa no se modifican, por tanto todas las direcciones que se referencian son relativas a la posicin 0, como si el programa estuviera en esa posicin (no haciendo falta que sean reubicables). Al tiempo de la

35

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

carga se crea una tabla de pginas en la que se refleja la situacin real en memoria de las distintas pginas que componen el programa. Inconveniente - Con la paginacin de memoria se reduce considerablemente la

fragmentacin de memoria, aunque no totalmente, esto es debido a que el tamao del programa no suele ser mltiplo del tamao de la pgina y se desperdicia un cierto espacio de la ltima pagina, o sea se desperdicia RAM. Entonces se cre la Segmentacin:

8.2.3.

SEGMENTACIN

Divide la memoria en segmentos, en vez de pginas. Qu cambia?. Que los segmentos no tienen que ser todos del mismo tamao. Los segmentos son de tamao variable. Pgina Segmento

16

EJEMPLO

Si en el ejemplo anterior de la paginacin aplicamos la segmentacin La AP2 ya no desperdiciara esas 4 K, pues la ltima pgina en vez de cogerla de 8 K, la cogera de 4K.

RAM

8 4 = 32 + 4 = 36K

8 8 8 8

k k k k

AP2

36 k = AP2

S.O

Inconveniente de la paginacin -Ninguno. En estas tres tcnicas: Redistribucin, Paginacin, Segmentacin. Las aplicaciones se cargan enteras en la RAM, porque antiguamente eran muy pequeas. Entonces no exista Disco Duro (HD) para intercambiar parte de las aplicaciones.

36

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

Como ahora las aplicaciones son cada vez ms grandes, es imposible que quepan en RAM. Por lo que se empez a utilizar el Disco Duro (HD) como si fuese RAM. Y a eso lo llama Memoria Virtual, aunque bsicamente es lo mismo que la paginacin.

8.2.4.

MEMORIA VIRTUAL

El ultimo mtodo de gestin de memoria que vamos a ver es la de memoria virtual, este es un mtodo derivado de la paginacin y tiene una ventaja con respecto a los mtodos anteriores: un programa puede ejecutarse aunque su tamao sea mayor que la memoria disponible. En la tcnica de Memoria Virtual, el programa no hace falta que este cargado por completo en RAM. Slo carga (en RAM) la parte de programa que necesita ejecutar, o sea la parte de programa que est usando. Y el resto del programa permanece en disco duro para su posterior utilizacin, si fuera necesario. Observamos que durante la ejecucin de un programa no es necesario que todo el programa este en memoria. Hay un conjunto de instrucciones que se repiten una y otra vez durante un tiempo determinado, por ejemplo un bucle, por tanto, no es necesario que la parte del programa que no se esta ejecutando se encuentre en memoria. Con la memoria virtual, por cada programa que se ejecuta solo hay un cierto nmero de paginas en memoria. Este nmero depende del tamao del programa y de su prioridad. Inconveniente Que accede mucho al disco duro (HD) y el acceso al HD es 100 veces mas lento que a una RAM.

AUTOEVALUACIN

El mtodo de paginacin consiste en: a) Dividir la memoria en segmentos de distinto tamao b) Dividir la memoria en paginas de distinto tamao y asignarlas a los distintos programas c) Dividir la memoria en paginas iguales (del mismo tamao) y asignarlas a los distintos programas

37

C.P.R. de Avils

Sistemas informticos multiusuario y en red - UNIDAD 3 Desarrollo de Aplicaciones Informticas Mercedes Dez Fernndez

GLOSARIO
VER: Glosario

TAREAS
VER: Tarea1 VER: Tarea2 VER: Tarea3 VER: Tarea1 Solucin VER: Tarea2 Solucin VER: Tarea3 Solucin

AUTOEVALUACIONES
VER: Autoevaluaciones Solucin

38

Вам также может понравиться