0% encontró este documento útil (0 votos)
20 vistas12 páginas

Tema 2

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas12 páginas

Tema 2

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Tema 2: Sistemas operativos

Introducción
Los elementos de un Sistema informático son:

- Hardware (lo físico)


- Software (lo abstracto)
- Personas (los usuarios del sistema informático).

Tras ejecutar la bios, que este comprobará la memoria, el teclado, los discos… se cargará el SISTEMA OPERATIVO.

El sistema operativo es un programa intermediario entre los usuarios y el hardware, que pertenece al software del sistema.
Sus objetuvis será: ejecurar las aplicaciones de los usuarios, facilitar la interactuación con el computador y administrar
eficamente los recursos de la máquina.

Definiciones:

- Un sistema de software cuyo fin es que un sitema sea operativo (utilizable).


- Un conjunto de programas que gestionan los recursos del sistema, optimizando su uso y resuelen conflictos.

El sistema operativo tiene varias funciones:

- Administrador de recursos, ya que gobierna el hardware, es un programa de control, pero no realiza un trabajo
productivo en sí mismo.
- Interfaz con el hardware, ya que añade características no existentes en el HW y oculta inconvenientes el HW, por
lo que el sistema operativo será en si mismo una máquina extendida.

1.1. SO como administrador de recursos


Existen dos participantes en un sistema:

- Procesos: Son los programas en ejecución


- Recursos: Ya sean virtuales o reales, físicos o lógicos.

Los procesos compiten por el uso de recursos, que son generalmente escasos, por lo que se necesitará que un árbitro
imparcial administre a estos procesos los recursos de forma justa y eficiente.

El SO debe conocer el estado de los recursos, determinar a quién le cede el control de estos, durante cuánto tiempo y
cuando se los debe asociar o disociar.

1.2. SO como interfaz con el usuario


La interfaz es el que se encarga de adaptar a los diferentes elementos de los diferentes módulos (lógico-aritmética)

La máquina extendida abstrae de la realidad, lo que hace más cómoda, más conveniente y más usable, como para el
usurario como para el programador. Es independiente del hardware, lo que le dará portabilidad.
1.3. Sistema por lotes (batch)
Consiste en sacar más partido a la máquina por la organización del trabajo. Se distingue por:

- Aparece el operador especialista, que aumentará la productividad.


o No manipula directamente el equipo
o El programador entrega su trabajo al operador
o El operador somete la tarea al sistema y entrega los resultados de este al programador.
o EL programador corrige sus errores mientras que el operador sigue ejecutando otras tareas.
- Agrupa las tareas en lotes, que se procesarán de forma automática (procesamiento por lotes o catch
processing)
o EL operador prepara lotes con trabajos que requieran la misma operación
o El operador lanza el lote y este lo ejecuta sin más intervención, lo que es decir, que el trabajo se ejecuta
automáticamente.

Este sistema lo que consigue es automatizar ciertas acciones comunes, como el control de finalización de tareas,
tratamiento de errores o la carga y ejecución automática de la siguiente tarea. Esto planteará la pregunta de si las
órdenes se le podrán dar directamente al computador.

1.4. Primer sistema operativo


Es necesario que el computador posea un monitor residente que realice las acciones anteriores, que sea capaz de
distinguir entre:

- Tarjeta de instrucciones de programas de usuarios


- Tarjetas de control (están en un primer lenguaje de control del sistema)

1.5. Elementos de un sistema por lotes


El lenguaje de control de tareas (JCL; Job Control Language) se emplea para escribir los lotes, que define que programas
cargar, que datos leer… y se pueden escribir en cintas o tarjetas perforadas.

1.6. Monitor residente


Sirve de apoyo para el hardware, y está protegida la memoria utilizada por los monitos residentes. EL monitor residente se
encargará de impedir accesos directos a los dispositivos de E/S y evita que se bloquee el sistema.

Nos debemos preocupar de:

- Como actuar si falla un programa de usuario


- Uso correcto de los dispositivos de E/S
- Como realizan los programas las operaciones de E/S
- Diferencias las instrucciones de E/S para usuario o para el monitor
- Proteger al monitor residente
- Garantizar el control del sistema
1.7. Problema E/S
La comunicación entre los dispositivos de E/S son muy lentos en comparación con la CPU, haciendo que la CPU quede
mucho tiempo esperando la terminación de operaciones con los E/S. Algunas técnicas para tratar dicho problema es:

- LA operación fuera de línea (offline)


- Uso de búferes
- Spooling

1.7.1. Operación fuera de línea


El computador central dialoga solo con los dispositivos rápidos (cintas magnéticas), ya que un pequeño computador
(satélite o canal) se encargará de la transferencia con dispositivos lentos (tarjetas, impresoras).

Esto hace que aproveche mejor el procesado central y una ejecución paralelos d cálculos y operaciones de E/S.

Se puede incrementar la velocidad utilizando varios satélites y no hace falta recompilar programas antiguos. Los trabajos
siguen usando los mismo servicios para E/S, lo que cambia es su implementación en el SO, la independencia del
dispositivo.

1.7.2. Buffers
Es aquel dispositivo que almacena los datos de manera temporal para un único uso para que, ya sea el HW o el software,
se quede sin datos durante una transferencia de datos irregulares o por la velocidad del proceso. La operación de E/S
solo se realiza cuando el dispositivo está preparado.

La operación de E/S se realiza solo cuando el dispositivo está preparado. El uso de bufferes permite solapar operaciones
de E/S de una tarea con instrucciones de CPU de esa misma tarea, pero estos no resuelven totalmente el problema de
lentitud de los equipos de E/S.
Estos solo sirven para amortiguar los picos de alta actividad de E/S. Su eficacia depende de la velocidad de los equipos
de E/S y del tipo de tareas en ejecución, si esta es lenta, los búferes se vacían y los de salida se congestionan. Las tareas
con muchos requerimientos de E/S provocan el mismo efecto anterior.

1.7.3. Spooling (Simultaneous Peripheral Operation On-Line)


Es como un búfer de gran tamaño. Es un proceso que lee/escribe sobre un disco, en lugar del dispositivo de E/S. Mientras
se ejecuta mientras se ejecuta un trabajo, en el que el SO lee los datos del siguiente trabajo de la cinta/tarjetas al disco,
imprime la salida del anterior trabajo, del disco a la impresora.

Permite solapar la E/S de un proceso terminado con las operaciones en CPU de otro proceso. Introduce la estructura de
control llamada depósito de trabajos, en los que todos los trabajos de E/S están en el disco, así que el SO puede elegir el
trabajo más adecuado y se puede realizar una planificación de trabajos.

1.8. Multiprogramación
La CPU quedarán muchas veces sin ningún trabajando esperando alguna operación de E/S. Por ello, el SO puede
escoger que trabajo ejecutará a continuación. La multiprogramación hace que se realice los mismos trabajos en menos
tiempo.

Los sistemas más complejos requieren:

- Planificación de la CPU: Cuando la CPU queda libre


- Planificación de dispositivos: Resuelve conflictos por acceso simultaneo a la E/S
- Gestión de memoria: Existen varios procesos a la vez en la memoria.

MULTIPROGRAMACIÓN: TIEMPO COMPARTIDO

Multiprogramación + interactividad = tiempo compartido

La CPU reparte su tiempo entre los distintos procesos. Cada proceso de cada usuario dispone de una parte de tiempo
periódica que los usuarios no percibirán. Con esto se pierde productividad de CPU, pero se gana en productividad
humana.

1.9. Ordenadores personales


La aparición de los microprocesadores permitió fabricar computadores baratos para el uso individual y no experto. Estos
utilizan interfaces de usuario, utilizando tecnología de los grandes SSOO pero sin ciertos servicios.

1.10. Sistemas paralelos


Son sistemas multiprocesador, que ejecutan varias instrucciones simultáneamente. Sus sistemas están fuertemente
acoplados fuertemente, ya que los procesadores comparten una memoria común, lo que les da más velocidad de
procesamiento a bajo coste con cierta tolerancia a fallos, pero necesita sincronizar dichos procesos.

1.11. Sistemas distribuidos


Son poco eficientes, ya que son múltiples procesadores conectados por una red. Sus sistemas están débilmente
acoplados, ya que no comparten memoria ni reloj.

Es con tienen las ventajas de compartir recursos dispersos, ayuda al trabajo cooperativo de equipos humanos, aumento
de la velocidad y alta fiabilidad por su tolerancia a fallos y su alta disponibilidad.
También cuenta con desventajas, ya que estos no comparten memoria, por lo que su comunicación es más compleja y
no se tiene un estado global visible por todos, la red de comunicaciones no es fiable y la heterogeneidad de los nodos.

1.12. Sistemas de Tiempo Real


Para completarse satisfactoriamente tareas han de completarse en un plazo prefijado. Existen dos tipos:

- STR crítico: Tareas que deben cumplir los plazos de terminación. Es adecuado para la industria y son simples.
- STR no crítico: intentan cumplir los plazos, pero no lo garantiza al 100%. Son adecuados para multimedia.

Estructura de los SSOO

2.1. Componentes típicos de un SO


- Procesos
- Memoria
- Entrada/salida
- Redes
- Protección
- Archivos
- Intérpretes de órdenes

2.1.1. Gestón de progresos


Un proceso es un programa en ejecución. Para ejecutarse, un proceso necesita tiempo de la CPU, una porción de
memoria, acceso a archivos, E/S y otros recursos

Las responsabilidades del SO son:

- Creación y eliminación de procesos

- Planificación de procesos, es decir, repartir la CPU entre los procesos activos

- Sincronización y comunicación entre procesos.

2.1.2. Gestón de memoria


La memoria es un recurso escaso por el que compiten los distintos procesos. Entre las responsabilidades del SO están:

- Conoces que zonas de memoria están libres y cuales están ocupadas


- Decidir que procesos hay que cargar cuando haya memoria libre.
- Reservar y liberar zonas de memoria según se solicite
- Memoria virtual, que es un almacenamiento secundario como extensión de la memoria principal

2.1.3. Gestón de E/S


La E/S salida es un conjunto de programas muy variados y complejos de programar. Las responsabilidades del SO es:

- Proporcionar un interfaz uniforme para el acceso a dispositivos.


- Proporciona controladores (drivers) para los dispositivos concretos
- Trata automáticamente los errores más típicos para los dispositivos de almacenamiento
- Utilizar cachés para los discos
- Planificar de forma óptica las peticiones

2.1.4. Gestón Sistema de Archivos


Los archivos son un conjunto de datos identificados por un nombre que se almacenan en dispositivos de E/S. Se crea un
concepto de alto nivel que no existe en el hardware. Las funciones del SO son:

- Manipular los archivos


- Manipular los directorios
- Ubicar los archivos y directorios en los dispositivos de almacenamiento secundario.
- Automatizar los servicios, como por ejemplo la copia de seguridad, las versiones…

2.1.5. Gestón de la protección


Son mecanismos destinados a controlar el acceso de los usuarios a los recursos, dependiendo de los privilegios o permisos
que tengan estos. Los objetivos del SO son:

- Definir el esquema general de protección, como las clases de usuarios, la clase de permisos/privilegios.
- Definir mecanismos de acceso a los recursos, como contraseñas, llaves…
- Controlar al acceso de recursos, denegando el acceso cuando no esté permitido.

2.1.6. Redes
Los SSOO modernos proporcionan soporte para trabajar con redes. Los objetivos de la SO:

- Proporciona primitivas para conectarse con equipos remotos y acceder de forma controlada a sus recursos.
o De forma primitiva de comunicación, que es enviando y recibiendo datos
o Acceder a los sistema de ficheros en red
o Llamada remota a otros procedimientos.

2.1.7. Intérpretes de comandos


Es una interfaz de usuario básica, que permite al usuario dialogar directamente con las rutinas del SO. Sus funciones son:

- Cargar programas
- Abortar programas
- Introducir datos a los programas
- Trabajar con archivos
- Trabajar con redes

2.2. Servicios del SO


Los servicios que el SO ofrece son:

- Operaciones de E/S
- Manipulación de archivos y directorios
- Comunicación con equipos remotos
- Administración de la protección y la seguridad
- Leer el estado del sistema

Además ofrece algunas funciones para optimizar el uso del sistema:


- Compartición de recursos
- Contabilidad (accounting), que es conocer el consumo de recursos

2.3. Llamadas al sistema


Para el programador las llamadas en sistema es un interfaz en lenguaje maquina o en alto nivel

Para los usuarios es un intérprete de órdenes y programas de los sistemas.

Los programas acceden a los servicios ofrecidos por el SO mediantes llamadas al sistema, en la que existe una interfaz
entre el programa en ejecución y el SO, en la que solo existe una única forma en la que un programa puede solicitar
operaciones al SO.

2.4. Programas del sistema


Las llamadas al sistema proporcionan una interfaz para el programador. EL usuario final interactúa con el SO mediante
programas que ya se suministran compilados, es decir, un programa dentro de otro.

El entorno del SO suele proveer utilidades básicas (programas del sistema) para manipular ficheros, editar documentos,
darnos un entorno de trabajo, desarrollar programas y comunicarnos con otros equipos.

2.5. Nucleos de un SO
Se suele llamar núcleo o cerner a la parte del sistema operativo que reside permanentemente en memoria y que atiene
las llamadas al sistema y demás servicios básicos. Este se encarga de distinguir los programas del sistema, ya que estos
utilizan los servicios del núcleo.

2.6. Modelos arquitectonicos


Hay diferentes tipos:

- Sistemas monolíticos, que es un bloque único y solido de servicios. Es la arquitectura más simple.
- Sistemas por capas, que son una serie de capas de software delimitadas y jerarquizadas. Su diseño es más
modular y estable que el monolítico, que aprovecha cada nivel aprovecha los niveles inferiores.
- Modelo de máquinas virtuales. Se proporciona a los programas la emulación o imitación de un hardware que
no existe mediante el software. El software emulador convierte las peticiones hechas a la MV en operaciones
sobre la maquina real. Se pueden ejecutar varias máquinas virtuales al mismo tiempo. En estas máquinas los
recursos reales se reparten entre las distintas máquinas virtuales.
Sus ventajas son:
o Protección: Cada MV está aislada de las otras y no interfieren
o Investigación y desarrollo: Se puede desarrollar y ejecutar para un hardware que no tenemos

Sus desventajas es la lentitud

- Modelos cliente-servidor es que el SO consiste en un conjunto de módulos autónomos, cada uno de los cuales
tiene a disposición del resto una serie de servicios llamados competencias. Un módulo es un servido de
determinados servicios, como atender las peticiones de otros módulos y puede ser cliente de otros módulos a la
misma vez. Este indicado para sistemas distribuido
2.7. Diseño e implementación de sistemas
De su diseño e implementación se encarga la ingeniería del software, en la que definen los objetivos y especificaciones a
conseguir, ya sea en el hardware, el tipo de procesamiento (lotes, tiempo compartido, monousuario…) y los requisitos a
cumplir, ya sea para el usuario, como que sea fácil de usar o fácil de aprender o para el programador, como ser fácil de
diseñar, mantener, implementar, ser flexible, eficiente…

Las herramientas de diseño son:

- Políticas: Define que se debe realizar en cada momento


- Mecanismos: Indican como se realiza un trabajo

Las herramientas de implementación:

- Lenguaje ensamblador: Se usaba en el pasado por motivos de eficacia


- Lenguaje de alto nivel (principalmente C/C++): Mas legible y fácil de mantener y depurar, más transportable a
distintas arquitecturas hardware

Las dificultades que presentan la programación es las pruebas de un SO. Esto se soluciona con emulaciones, en el que se
lanza un SO en pruebas dentro de un SO anfitrión (host) en el que se depura.

Existen dos tipos de sistemas:

- Comerciales: De código cerrado e imponen un precio por su uso (Windows)


- Open-source: Código abierto para modificaciones y de libre distribución (Ubuntu, RedHat, Molinux…)

Gestión de ficheros
El sistema debe proporcionar una interfaz con el sistema de archivos. Estas interfaces son:

- Concepto de acceso
- Métodos de acceso
- Directorios (donde se guardan)
- Protección
- Semántica de consistencia

Un SO tiene la necesidad de almacenar información de forma duradera para poder recuperarla después. Tiene gran
variedad de medios donde puede almacenar información (discos magnéticos u ópticos, cintas magnéticas…)

La ventaja de esto es que se puede elegir el medio más adecuado en función de las necesidades; la desventaja es que
requiere conocer las particularidades del medio, ya que para medio de acceso a un disco requiere especificar cabeza,
sector, pista…

3.1. Concepto de fichero


Es una unidad de almacenamiento lógica, llamada archivo o fichero, que abstraen las propiedades físicas de los
dispositivos de almacenamiento. El SO relaciona el nombre del fichero en donde se localiza el fichero físicamente.

Existen varias definiciones como:

- Almacén persistente de información accesible mediante un nombre.


- Abstracción cómoda del almacenamiento secundario (tipo abstracta de datos), ya que oculta la realidad física
del almacenamiento y sirve para organizar la información como lo hacemos las personas.
- Un fichero o archivo es una secuencia de bits cuyo significado definen el creador y el usuario
Los archivos son administrados por el SO mediante un sistema de archivos. Son un conjunto de módulos del SO que se
encargan de la gestión de la información en archivos. Windows (FAT16, FAT32, NTFS) Linux (swap, ext3, ext4) MacOS (HFS,
HFS+).

3.2. Atributos de fichero


A un fichero se le atribuye:

- Nombre: Es una cadena de caracteres


- Tipo de archivo: Texto, imagen, enlace, ejecutable...
- Ubicación en el dispositivo
- Tamaño
- Información de protección
- Fechas, horas e identificación del usuario

3.3. Directorios
Es una estructura que nos permite organizar y acceder a los archivos, también llamados carpetas. Estos guardan los
atributos de los archivos que “contienen”. Los directorios al igual que los archivos deben de ser no volátiles, por lo que se
almacenan en un disco, que deben traerse a memoria cuando se necesiten. Estos son agrupados por nombres, pero no
poseen una ubicación exacta en la memoria.

3.4. Operaciones sobre ficheros


Las operaciones típicas con ficheros son:

- Creación / destrucción
- Lectura / escritura
- Situarse dentro del archivo (por posición o por clave)
- Cambiar atributos

Una operación sobre un archivo implica:

- Tomar un nombre de archivo y buscar su directorio


- Comprobar que las protecciones permiten la operación
- Copiar la entrada en la tabla de archivos abiertos
- Escribir un puntero que se usara en la entrada de la tabla de archivos abiertos que se usara en el resto de las
operaciones de E/S

3.5. Tipos de ficheros


Para distinguir los tipos de ficheros, la técnica más común es incluir el tipo en parte del nombre del archivo (extensión).
MS-DOS y Windows conocen ciertos tipos, mientras que UNIX no tiene una función semejante, las extensiones en este
sistema solo sirven como sugerencia.

Todo SO debe reconocer al menos un tipo de archivo, que es el archivo ejecutable, es decir, los que crean un proceso.
En Windows y MS-DOS se utilizaran .bat, .exe entre otros y en UNIX/Linux es una tributo del fichero
3.6. Estructuras de directorios
Los directorios tienen una estructura de árbol. Los nombres de los archivos son rutas (path) sobre el árbol de directorios, ya
que hay rutas absolutas o relativas. Por ello, aparece el concepto de directorio de trabajo, que es donde se está
trabajando.

3.7. Particiones
Las particiones de disco reciben cada división lógica presente en una sola unidad física de almacenamiento de datos.
De cada parición cuelga un árbol de directorio. También cabe destacar que por cada unidad de almacenamiento
puede tener varias particiones.

La letra de la unidad es una forma lógica de denominar y reconocer las unidades de disco o particiones (C:). Es
particular de MS-DOS y Windows, es una ruta mínima de fichero, normalmente relacionadas a unidades de disco.

Gestión de procesos

4.1. Concepto y estados de un proceso


Un proceso es un programa en ejecución: Es ha iniciado pero no ha terminado. Un proceso se encuentra en un
determinado estado.

- Listo para ejecutarse en CPU (esperado al procesador)


- En ejecución dentro de la CPU hasta que
o Tiene que esperar por una E/S, por lo que pasa a espera
o El proceso ha agotado su tiempo asignado de CPU, por lo que vuelve al estado de listo
o EL proceso termina
- En espera de que ocurra un evento

Para alcanzar el estado listo ya debe estar cargado en memoria total o parcialmente.

Un SO de multiprogramación hay muchos procesos en estado de listo, pero a la espera de ejecutarse. El planificador de
procesos decide cual ejecutar en cada momento dependiendo de la política adaptada.

4.2. Políticas de planificación de procesos


La planificación de procesos tiene diferentes objetivos:

- Minimizar el tiempo medio de espera (tiempo que el proceso pasa esperando a que se le conceda el
procesador) o de retorno (tiempo que transcurre desde que el proceso se crea hasta que el proceso se
completa)
- Maximizar la utilización de la CPU
- Mantener el tiempo de respuesta por debajo de un valor máximo

Se clasifican en:

-Expulsivas o apropiativas: El planificador puede desalojar el proceso que está en la CPU. Es necesario en tiempo
compartido y tiempo real, como por ejemplo en Windows 95/98.

-No expulsivas: El proceso que está en CPU la abandona cuando quiere.


4.3. Tipos de políticas de planificación
- Por prioridades, en el que entra en la CPU el proceso con mayor prioridad. Su política puede ser o no expulsiva.
Las prioridades la marca de forma interna el SO o externa por el usuario. El problema que este método es que
haya procesos que no se lleguen a ejecutar nunca. La solución a ello es el envejecimiento, que aumenta
progresivamente la prioridad de los procesos en espera.
- FCFS (First come, first served): Los procesos que entran en la CPU son por orden de llegada. Es un algoritmo
sencillo y fácil de implementar, pero el tiempo de espera promedio suele ser bastante largo
- SJF (Shortest Job First): Los procesos más cortos entran primero en la CPU respecto a los que sean más largos.
Existen dos tipos:
o Expulsivos (SRTF): Cada vez que un nuevo proceso pasa a estar listo, se evalúa si tardara menos que el
que está en la CPU. Si es así, el proceso en ejecución se desaloja y el nuevo proceso pasa a la CPU
o No expulsivos: Una vez que el proceso entra en la CPU, se ejecuta hasta que termina.

Minimiza los tiempos de espera medios, pero tienen el riesgo de que los procesos largos nunca se ejecuten, y no
es implementarle, que quiere decir que se debe de estimar la duración de los procesos.

- SRTF (Shortest Remaining Time First). Es igual que el SJF pero expulsivo, que quiere decir que si llega un proceso
más corto que el que se está ejecutando, expulsa al último.
- Turno rotatorio (Round-Robin): Es adecuado para los sistemas de tiempo compartido, en que cada proceso
dispone de un tiempo máximo de ocupación (cuando o quantium. Si cuando acaba el tiempo el proceso
continua en la CPU el planificador lo desaloja y lo coloca al final de las listas de procesos. La cola de procesos se
gestiona con los siguientes criterios:
o FCFS: El primero que llega se coloca a la cola
o El más corto primero si llegan a la vez
o El más antiguo primero si llegan a la vez y duran lo mismo
o Al azar: Si están empatados por lo demás.

Si el cuanto de tiempo Q es muy alto se comporta como un FCFS, si es muy bajo divide la velocidad del
procesador equitativamente entre el número de procesos, por lo que pierde eficiencia.

4.4. Sincronización
Cuando varios procesos quieren acceder al mismo tiempo causan:

- Punto muerto o interbloqueo: Es que el SO no pone restricciones de recursos a los procesos


- Privación: El SO pone demasiadas estricciones a los recursos, por lo que no se pueden ejecutar.

Es necesario que el SO provea de mecanismos de sincronización para evitar estas situaciones

Gestión de memoria
La memoria física es un conjunto de celdas, referenciales por medio de una dirección lineal, que contiene datos. Para
que un programa se ejecute, su código y sus datos necesitan estar cargados en la memoria o al menos en parte. El
código y datos del sistema operativo también deberán residir en la memoria, aunque puede ser que la memoria
principal no tenga capacidad suficiente para todos los procesos en ejecución.

5.1. Gestor de memoria


Es el encargado de asignar memoria a los procesos. Debe conseguir que varios procesos puedan ejecutarse de a la
misma vez (multiprogramación. Esto se consigue a través de:
- Proteger el sistema operativo
- No debe perjudicar mucho al rendimiento, ya que el gestor debe acceder a la memoria
- Aprovechar eficientemente el espacio disponible, por lo que deben:
o Evitar la fragmentación
o Evitar la memoria ocupada por varias copias de un mismo objeto
o Evitar memoria ocupada por estructura de datos innecesarias para la operación de gestor de memoria,
siendo este último lo más reducido posible.

5.2. Tecnicas
- Sin intercambio: EL programa permanece en la memoria durante toda su ejecución, mediante el
particionamiento y la paginación
o Particionamiento: Consiste en dividir la memoria en secciones de longitud variable que contiene a toda
la memoria requerida por el proceso. El problema es el tamaño de dichas particiones, porque sin son
pequeñas no cabe el programa, si es grande se malgasta memoria y aun sin saber el tamaño, cuando
el proceso termina los huecos de espacio libre pueden ser de distintos tamaños (fragmentación
externa).
o Paginación: Consiste en trocear la memoria en bloques de tamaño fijo. La ventaja es que el programa
puede residir en varios bloques no contiguos a la memoria, ya que si no cabe en un solo bloque, este
utiliza otro, pero implica que ralentice la ejecución.
- Con intercambio (swapping): Es una ampliación de la memoria RAM a traces de la memoria de
almacenamiento, pero es lenta.
Cuando un proceso pierde la CPU, se vuelca su imagen en la memoria del disco (swap out). Cuando se decide
reanudar el proceso se recupera su imagen del disco (swap in).
Se usa una zona del disco duro o un fichero para el intercambio, que se llama memoria virtual, que es como si el
computador tuviese una memoria igual a la física más la del intercambio.
Se puede emplear con paginación (intercambiar algunas páginas concretas)

Ejemplos de SSOO modernos

6.1. UNIX
Fue creado en los años 60, programado en lenguaje C, que tradicionalmente no tenía GUI (Graphical USer Interface). El
SO era multiusuario y con multiprogramación, poseía memoria virtual y el sistema de archivos y directorios muy bien
diseñados. Era más complicado de usar y mantener, y era comúnmente utilizado en servidores.

Del apareció Linux, que estaba basado en UNIX ero de forma gratuita y de código abierto.

6.2. OS X
Es el sistema operativo de Apple, basado en Unix. Funciona en ordenadores con procesador Intel. Fue el primero SO
dirigido al gran público, ya que contaba con una interfaz gráfica compuesta por la interacción del mouse con ventanas,
iconos y menús. Es preferido por empresas de publicidad, multimedia, artes gráficas…

6.3. WINDOWS
Fue creado en los 80. Su extensión grafica era MSDOS, con GUI como en Unix. Poseía memoria virtual y con
multiprogramación apreciativa. Tenía capacidad de conexión a red y una gran cantidad de software.

También podría gustarte