Implantación de sistemas operativos
TEMARIO
Unidad 1: Arquitectura de los Sistemas Operativos
1.- Introducción
1.1.- Definición de Sistema Operativo
1.2.- Sistemas por lotes sencillos
1.3.- Sistemas por lotes multiprogramados
1.4.- Sistemas de tiempo compartido
1.5.- Sistemas de computador personal
1.6.- Sistemas paralelos
1.7.- Sistemas distribuidos
1.8.- Sistemas en tiempo real
2.- Estructura
2.1.-Funcionamiento de los sistemas de computación
2.2.-Componentes
2.3.-Servicios
2.4.-Llamadas al sistema
2.5.-Programas del sistema
2.6.-Estructura del sistema
2.7.-Máquinas virtuales
Unidad 2: Funciones de los Sistemas Operativos
1.-Gestión de Procesos
1.1.-Definición de proceso
1.2.-Estados de un proceso
1.3.-Colas de planificación
1.4.-Algoritmos de planificación
2.-Gestión de Memoria Principal
2.1.-Intercambio
2.2.-Asignación contigua
2.3.-Fragmentación externa e interna
2.4.-Compactación
2.5.-Paginación
2.6.-Segmentación
2.7.-Memoria Virtual
1
Implantación de sistemas operativos
3.-Gestión de Archivos
3.1.-Definición de sistemas de archivos
3.2.-Definición de archivo
3.3.-Atributos de un archivo
3.4.-Operaciones sobre un archivo
3.5.-Tipos de archivo
3.6.-Métodos de acceso
3.7.-Definición de directorio
3.8.-Operaciones sobre un directorio
4.-Gestión de Entrada – Salida (E/S)
4.1.-Definición de E/S
4.2.-Estructura física de un disco
4.3.-Estructura lógica de un disco
4.4.-Clúster
4.5.-Tablas de localización de archivos (FAT, NTFS, …)
Unidad 3: Documentación técnica y Resolución de
problemas
1.-Documentación técnica
1.1.-Elaboración documentación técnica
1.1.1.-Fases de una implantación
[Link].-Requerimientos
[Link].-Análisis
[Link].-Instalación
[Link].-Pruebas
[Link].-Mantenimiento
[Link].-Documentación
[Link].1.-Elaboración guía de usuario
1.2.-Tareas a realizar por un administrador informático
2.-Resolución de problemas durante la asistencia técnica
2.1.-Elaboración de un parte de asistencia técnica
2
Implantación de sistemas operativos
Unidad 1: Arquitectura de los Sistemas Operativos
1 INTRODUCCIÓN
1.1 Definición de SO
Características:
-Eficiente
-Seguro
-Fiable
-Amigable
Definiciones de Sistema operativo:
- El SO es un programa (software) que actúa de intermediario entre
el usuario y el hardware.
- Controla y coordina el uso del hardware entre los diversos
programas de aplicación de los distintos usuarios.
- Asignador de recursos hardware y software, por ejemplo: tiempo de
CPU, espacio de memoria,…
- Los recursos se deben asignar de manera eficiente y justa.
- Controla la ejecución de los programas de usuarios a fin de evitar
errores y el uso incorrecto del ordenador.
- Es el programa individual, también llamado núcleo, que siempre se
está ejecutando en el ordenador.
- El SO saca el máximo rendimiento al hardware
Recurso: Componente software o hardware de un sistema informático.
Programas de aplicación CPU, memoria, disco...
Los SO gestionan los recursos
La asignación de recursos debe ser Eficiente y Justa
Proceso: Programa en ejecución.
3
Implantación de sistemas operativos
El núcleo o Kernel: Es el programa básico del SO para que se ejecuten los
distintos servicios del SO.
Programas que se ejecutan al arrancar un ordenador:
1. BIOS
2. Gestor de arranque del SO
3. SO
Los SO se crearon para facilitar el uso del hardware y es por esto
por lo que vamos a hacer historia, repasando lo sucedido desde la creación
de los SO.
1.2 Sistemas por lotes sencillos
SO Programa usuario
Características:
- No hay interacción entre el usuario y el programa mientras este se
está ejecutando.
- El SO era sencillo ya que sólo se encargaba de transferir el control
de un trabajo al siguiente.
- Se utiliza la técnica de Spooling (utilizar discos para no ralentizar el
SO). Antes de la aparición de los discos como unidades de
almacenamiento, la lectura y escritura de datos se realizaba en tarjetas
perforadas (dispositivos mucho más lentos que los discos). Con la técnica
de spooling se conseguía utilizar a los discos como memoria intermedia
(buffer), ya que era más rápido que volver a escribir en la tarjeta perforada.
4
Implantación de sistemas operativos
1.3 Sistemas por lotes multiprogramados
SO Programa usuario1 Programa usuario2
Características:
- Al usar el spooling permite tener distintos trabajos en disco y la
posibilidad de escoger el trabajo a ejecutar, esto da lugar a lo que se
conoce como Multiprogramación.
- La idea es que el SO elige un programa y este necesitará una
operación de E/S, durante la cual la CPU estará ociosa, y es ahí donde la
el SO elige otro programa para que se ejecute
Problemas:
- Gestión de Procesos (elección de un trabajo para su
ejecución)
- Gestión de Memoria (al tener distintos trabajos en memoria a
la misma vez)
- El usuario no puede interactuar con su trabajo.
1.4 Sistemas de tiempo compartido o Multitarea
Características:
- A diferencia con el sistema multiprogramado aquí si existe
interacción entre el usuario y el SO, en la ejecución de procesos.
1.5 Sistemas de computador personal
- Debido al abaratamiento del hardware, vuelve a ser factible tener
un sistema de computación dedicado a cada usuario. Así a finales de la
década de los 70 aparecen los llamados PC (personal computer). Estos
tomaron distintos SO como por ejemplo:
-Multics (1964, creado por los laboratorios Bell y MIT) è
Macrocomputador
-Unix (1969, Laboratorios Bell) è Minicomputadoras
-Windows NT, IBM 0S/2, MAC (década 80) è PC
-Los SO heredaron parte de las ideas, características y soluciones
de los grandes ordenadores.
5
Implantación de sistemas operativos
1.6 Sistemas paralelos
Características:
- Cuando tenemos más de 1 procesador, pero que comparten la
misma memoria, dispositivos y componentes.
- Los programas se distribuyen entre los distintos procesadores.
- Si un procesador deja de funcionar el sistema sigue funcionando
sobre el resto de procesadores.
1.7 Sistemas distribuidos
Características:
-Equipos conectados en red, en los que se aprovecha la capacidad de
todos ellos. A cada equipo se le llama nodo. Cada equipo puede ser un PC,
servidor o incluso un supercomputador.
-A diferencia de los sistemas paralelos aquí No comparten Memoria,
dispositivos, bus, reloj...
-SO inteligente encargado de repartir la carga de trabajo entre los
distintos nodos y luego recoger el resultado y procesarlo.
-Un sistema distribuido puede contener a un sistema paralelo.
1.8 Sistema en tiempo real
Características:
§ Se usan cuando el tiempo es un factor crítico, es decir que la respuesta
del sistema sea lo más rápida posible.
§ Sirve para dar respuestas a tiempo real, por ejemplo en control
industrial, armamento, robótica,…
6
Implantación de sistemas operativos
2.- ESTRUCTURA DEL S.O.
2.1 Funcionamiento de los sistemas de computación
Contamos con una CPU conectada a distintos controladores de
dispositivos a través del bus de sistema.
Pasos durante el arranque de funcionamiento de un computador:
1. Programa de arranqueè BIOS (testear el hardware)
2. Gestor de arranqueè SO (LILO)
3. Carga del SO
Por medio de las interrupciones hardware y software podemos
llamar la atención de la CPU para ser atendidos.
2.2 Componentes de un SO
A la hora de desarrollar un S.O. debemos tener presentes sus
componentes:
a) Gestión de procesos (CPU)
- Crear y eliminar procesos
- Suspender y reanudar procesos
- Proveer mecanismos de sincronización de
procesos
- Proveer mecanismos de comunicación
- Proveer mecanismos para manejar bloqueos
mutuos (El SO gestiona evitando la inanición)
7
Implantación de sistemas operativos
b) Gestión de memoria principal
- Saber que partes de la memoria se están
usando y por quién
- Decidir que procesos se cargarán en
memoria y cuándo
- Asignar y liberar memoria según se necesite
c) Gestión de archivos
- Crear, manipular y eliminar archivos y
directorios
Debe de haber un intermediarioè Núcleo del SO, porque el
usuario no debe tener contacto con el hardware, porque si lo
hace mal se bloqueará. El usuario sólo debe dar órdenes.
d) Gestión de Entrada / Salida
- Uso de spooling
- Drivers (controladores de software)
- Planificación del disco
e) Sistema de protección y seguridad
- Proteger los procesos del resto de usuarios
no propietarios del proceso
- Identificación por parte del usuario
f) Sistema de interpretación de órdenes y comandos
- Shell (intérprete de comandos, en el entorno
de ventana)
8
Implantación de sistemas operativos
2.3 Servicios del SO
Se crean para la comodidad del programador.
a) Servicios de ayuda al usuario
- Ejecución de programas
- Operación Entrada / Salida (acceso a
impresora, escáner...)
- Manipulación del sistema de archivos
(permite: leer y escribir archivos)
- Comunicaciones (Intercambio de información
entre distintos procesos)
- Detección de errores
b) Servicios para asegurar eficiencia del sistema
- Asignación de recursos (según la política de
gestión)
- Contabilización ( Estadística para monitorizar
el sistema y saber que usuarios lo están
usando y que recursos utiliza)
- Protección
2.4 Llamadas al sistema
Son órdenes muy elementales y que no admiten más división.
Normalmente se crean en lenguaje ensamblador.
a) Control de procesos
- Crear y terminar proceso
- Cargar - ejecutar
b) Manipulación de archivos
- Crear y eliminar un archivo
- Abrir y cerrar un archivo
- Leer y escribir un archivo
9
Implantación de sistemas operativos
c) Manipulación de dispositivos
- Solicitar y liberar dispositivos
- Leer, escribir y reposicionar
d) Mantenimiento de la información
- Obtener y establecer la fecha y hora del
sistema
- Obtener y establecer los datos del sistema
e) Comunicaciones
- Crear y eliminar una conexión
- Enviar y recibir información
2.5 Programas del sistema
Crean un entorno más cómodo para el desarrollo y ejecución de
programas. Se pueden implantar realizando varias llamadas al sistema,
pero a diferencia de estas los programas del sistema no son necesarios y si
útiles para ayudar al usuario.
Características:
§ Manipulación de archivos (crear, borrar, copiar archivos)
§ Modificación de archivos (editores de textos)
§ Información del estado (espacio disponible en disco, nº de usuarios,
fecha/hora)
§ Apoyo a los lenguajes de programación (compiladores, intérpretes,
ensambladores)
§ Carga y ejecución de programas (cargadores y depuradores)
§ Comunicaciones (correo-e, usar ordenadores de forma remota)
§ Intérprete de órdenes
10
Implantación de sistemas operativos
2.6 Estructura del SO
Un SO es tan grande y complejo, que se intenta modularizar los
procedimientos y funciones lo más pequeño posible, para facilitar la
interacción.
Estructuras del SO:
- Sin ninguna estructura:
Definida en UNIX y utilizada en MSDOS, se trata de tener el núcleo
y los programas del sistema, sin utilizar jerarquía.
- Estructura por capas:
§ Nuestro SO lo dividimos en capas y con esto conseguimos simplificar la
depuración y verificación del sistema.
§ La de comienzo es la capa 1, más interna y relacionada directamente
con el hardware del ordenador.
§ Cuando la capa 1 está completada, se creará la capa 2 y así
sucesivamente.
§ A la capa 2 se le asignarán distintas tareas que a la capa 1, además
sabrá lo que hace la capa 1, pero no como lo hace. Así se siguen
creando capas.
Capa 1
Capa 2
Capa 3
- Cliente / Servidor
- Máquina virtual:
Se intenta simular que múltiples procesos se ejecutan a la vez, cada
uno en su propio procesador y en su propia RAM (ver siguiente apartado).
2.7 Máquinas virtuales
Es cuando un SO crea la ilusión a los usuarios de que cada uno
tiene un procesador, memoria y dispositivos para él.
Esto se consigue gracias a la planificación CPU y a las distintas
técnicas de memoria virtual.
11
Implantación de sistemas operativos
Unidad 2: Funciones de los Sistemas Operativos
1.- GESTIÓN DE PROCESOS
1.1 Definición de proceso
Proceso: Es un programa en ejecución, el cual se encontrará en
memoria principal (RAM) y necesitará algún recurso para su ejecución.
Recurso: Cualquier evento hardware o software necesario para un
proceso.
Por ejemplo:
- Tiempo de CPU
- Memoria
- Archivos
- Dispositivos E / S
Programación concurrente: Debido a la multiprogramación se
pueden cargar varios procesos a la vez en memoria. La CPU es la
encargada de organizar los procesos para que todos terminen
ejecutándose.
12
Implantación de sistemas operativos
1.2 Estados de un Proceso
Admitido Ejecución Salir
En
Nuevo Listo Ejecución Terminado
Interrupción
Termina E/S espera por E/S
o suceso o suceso
En Espera
Nuevo: El proceso se está creando.
Listo: El proceso está esperando que se le asigne un procesador.
En ejecución: El proceso se está ejecutando.
En Espera: El proceso está esperando por un dispositivo de E/S u otra
señal.
Terminado: El proceso llega a este estado cuando se ha ejecutado
correctamente. Todos los procesos deberían llegar al estado de terminado
pero no tienen que llegar a dicho estado.
Si un proceso no se está ejecutando se coloca en alguna de estas
dos colas de espera:
- Cola de solicitud de E/S
- Cola de procesos listos
Cada proceso se representa en el Sistema Operativo como un
Bloque de Control de Proceso (PCB)
Puntero Estado del Proceso
Número del Proceso
Contador del Proceso
Registros
Límites de Memoria
Límites Archivos Abiertos
13
Implantación de sistemas operativos
1.3 Colas de planificación
Cola de procesos listosà
P3 P5 P1 P4 ......
Cola Dispositivo Impresoraà
P2 P1 P5 P3 ......
Cola dispositivo Disco Duroà
P4 P2 P1 ......... ......
14
Implantación de sistemas operativos
1.4 Algoritmos de planificación de CPU
La planificación de CPU es la tarea de escoger un proceso que
espera en la cola de procesos listos y asignarle tiempo de CPU. Esto es la
base de los sistemas operativos multiprogramados. Ahora veremos algunos
métodos (algoritmos) para su implementación en un S.O.
1.4.1 Algoritmo de Planificación de servicio por orden de llegada (FCFS:
first come first served)
² El proceso que primero solicite la CPU la recibe. Simula una cola
FIFO (first in first out)
Proceso Tiempo(ms*)
P1 6
P2 8
P3 4
P4 7
P5 8
ms* = milisegundos
El primero que llega (P1) es el primero en ser atendido. Vamos a
representarlo a través del Diagrama de Gantt.
| P1 | P2 | P3 | P4 | P5 |
0 6 14 18 25 33
Tiempo de conmutación(Tc): es el tiempo desde que un proceso sale
de la RAM hasta que entra el siguiente proceso en la RAM. Si no se indica
otra cosa el valor de Tc=1 ms
Número_conmutaciones(Nc): es la cantidad de saltos que existen en
el diagrama de Gantt, sin contar el último, en nuestro ejemplo Nc=5
Tiempo_final: es el último tiempo que aparece en el diagrama de
Gantt, en nuestro ejemplo es de 33 ms
Tiempo_total = Tiempo_final + ( Tc * Nc )
En nuestro ejemplo el tiempo total es de:
Tiempo_total = 33 + 1 * 5 = 38 ms
15
Implantación de sistemas operativos
El tiempo de espera de cada proceso nos va a indicar cuanto debe
esperar cada proceso antes de entrar en el estado de ejecución. Se calcula
de la siguiente manera: En nuestro ejemplo
Tiempo de espera P1 (TP1) = 0 ms
Tiempo de espera P2 (TP2) = 6 ms
Tiempo de espera P3 (TP3) = 14 ms
Tiempo de espera P4 (TP4) = 18 ms
Tiempo de espera P5 (TP5) = 25 ms
El tiempo de espera medio, nos indica cuanto debe esperar un
proceso que no se encuentra en la cola de procesos listos y pretende
acceder a dicha cola. Depende mucho de cómo lleguen los procesos a la
cola. Para el ejemplo anterior:
Tiempo_espera_medio = (TP1+TP2+…+TPn) / Número_procesos
T. espera medio = ( 0+6+14+18+25 ) / 5 = 12,6 ms
En cambio, si los procesos llegan en el orden P3, P1, P4, P2, P5 el
resultado del tiempo de espera medio sería otro, ya que varía el tiempo de
espera de cada proceso. Lo que no varía es el tiempo total.
| P3 | P1 | P4 | P2 | P5 |
0 4 10 17 25 33
Tiempo de espera P3 (TP3) = 0 ms
Tiempo de espera P1 (TP1) = 4 ms
Tiempo de espera P4 (TP4) = 10 ms
Tiempo de espera P2 (TP2) = 17 ms
Tiempo de espera P5 (TP5) = 25 ms
T. espera medio = ( 0+4+10+17+25 ) / 5 = 11,2 ms
Tiempo total = 38 ms
Este algoritmo depende del orden de llegada de los procesos. Es
conveniente tener los procesos de menor tiempo al principio.
16
Implantación de sistemas operativos
Realizaremos un análisis de los datos desde 3 puntos de vista:
1.- Desde el proceso que quiere entrar: Hay que contemplar el
Tiempo de espera medio.
Tiempo_espera_medio = (TP1+TP2+…+TPn) / Número_procesos
2.- Desde el proceso que ya está dentro: Miraremos el Tiempo
de espera del proceso en cuestión.
3.- Desde el servidor o el administrador: Nos interesa el
Tiempo de espera total.
Tiempo_total = Tiempo_final + ( Tc * Nc )
17
Implantación de sistemas operativos
1.4.2 Primero el proceso más corto (SJF: shortest job first )
Se ordenan los procesos, eligiendo primero el proceso que tenga
menor tiempo estimado de ejecución.
Proceso Tiempo(ms)
P1 6
P2 8
P3 4
P4 7
P5 8
Para la siguiente carga de trabajo el orden sería:
P3, P1, P4, P2, P5
Y representándolo a través del Diagrama de Gantt
Es igual que el del ejercicio anterior.
1.4.3 Planificación por Prioridad
Proceso Tiempo(ms) Prioridad
P1 6 3
P2 8 1
P3 4 4
P4 7 5
P5 8 2
El orden de ejecución viene establecido por la prioridad que
tenga cada proceso. En este ejemplo sería: P2, P5, P1, P3, P4
18
Implantación de sistemas operativos
1.4.4 Planificación por Turno circular (método RR)
Este método es igual que FCFS, pero hay que fijar un cuanto
de tiempo, pasado el cual sale de ejecución el proceso y entra el
siguiente. Así sucesivamente hasta que termine la ejecución de
todos los procesos. Este es un método “justo”, ya que evita la
inanición de algún proceso.
Proceso Tiempo(ms)
P1 24
P2 3
P3 3
| P1 | P2 | P3 | P1 | P1 | P1 | P1 | P1 | Cuanto=4ms
0 4 7 10 14 18 22 26 30
Cuanto: Es el tiempo asignado en el método de planificación RR,
para indicar cuando el SO debe conmutar al siguiente proceso.
Para calcular el tiempo de espera de cada proceso se actúa de la
siguiente manera:
Tiempo de espera de P1 = TP1 =
Paso 1.- Localizamos al proceso1 en el diagrama de
Gantt empezando por el final hasta que salte a otro proceso, y
tomamos ese tiempo (10 ms)
Paso 2.- Se le restan todas las intervenciones del
proceso1, hasta el inicio del diagrama de Gantt ( sólo
interviene una vez y dura 4 ms ).
TP1 = 10 – 4 = 6 ms
Ejemplos:
TP2 = 4 ms
TP3 = 7 ms
Tiempo_espera_medio = (TP1+TP2+…+TPn) / Número_procesos
Tiempo_espera_medio = ( 6+4+7 ) / 3 = 5,6 ms
Tiempo_total = Tiempo_final + ( Tc * Nc )
Tiempo_total = 30 + ( 1 * 8 ) = 38 ms
19
Implantación de sistemas operativos
2.- GESTIÓN DE LA MEMORIA RAM
2.1 Definiciones
-En la arquitectura de computadores diseñada por Von-Neumann, nos
encontramos los siguientes componentes hardware:
CPU RAM
E/S
-Un proceso necesita estar alojado en la memoria RAM para que pueda ser
ejecutado.
-La memoria RAM es finita, volátil y extremadamente rápida, ya que es
aproximadamente un millón de veces más veloz que un disco duro magnético.
-Es necesario tener varios procesos alojados en la RAM para hablar de
planificación de CPU y esto implica compartir la memoria RAM. Para ello, el SO deberá
gestionar la CPU y la RAM
-Inicialmente entrarán en memoria RAM todos los procesos que se
necesiten por parte del procesador (según la gestión de la CPU) y que se puedan
alojar en la memoria RAM (según la política de gestión de la RAM).
-Elección de huecos disponibles. A la hora de alojar un proceso y nos
encontráramos con varios huecos, este se podrá alojar de tres maneras posibles:
-Primer hueco: Se alojará en el primer hueco disponible.
-Mejor hueco: Se alojará en el hueco que mejor aproveche el espacio
disponible.
-Peor hueco: Se alojará en el hueco que peor aproveche el espacio
disponible.
20
Implantación de sistemas operativos
-Fragmentación interna y externa. En ambos casos se produce una división del
espacio de almacenamiento.
-Fragmentación externa:
P1
L(100)
P2
L(300)
Observando la tabla anterior podemos comprobar que si un proceso (P3 que pese
350MB), no podría alojarse en los huecos disponibles (100 y 300), pero si los sumáramos
(400), sí que podría. A esto se le conoce como fragmentación externa
-Fragmentación interna:
P1
P5
P2
L(300)
Observando la tabla anterior podemos comprobar que si un proceso P3 que pese
50MB se fuera a alojar en la RAM, tendríamos dos situaciones:
-Caso 1. Escoger solamente el espacio que necesita. En nuestro caso 50
MB, dejando un hueco libre de 250MB.
-Caso 2. Escoger TODO el hueco disponible. A esto se le conoce como
fragmentación interna. La utilidad estriba en que cuando éste proceso abandone la
RAM, liberará TODO el espacio que ocupó, permitiendo de esta manera que otros
procesos GRANDES la puedan ocupar.
21
Implantación de sistemas operativos
2.2 Asignación contigua
En esta técnica entrarán en la RAM todos aquellos procesos que quepan. Los
huecos disponibles solamente se podrán agrupar si se encuentran en posiciones
contiguas.
Si un proceso no cabe en la RAM no podrá ejecutarse, por lo que es NECESARIO
que TODO el proceso se pueda alojar en la RAM para que la CPU lo pueda ejecutar.
Veámoslo con el planteamiento y resolución de un ejercicio.
Proceso Tiempo(ms*) Memoria(MB) Prioridad
P1 10 600 3
P2 5 1000 2
P3 20 300 4
P4 8 700 3
P5 15 500 7
Gestión RAM: Asignación contigua
Gestión CPU: FCFS
Elección del hueco: Primer ajuste
Fragmentación interna: NO
Tamaño RAM: 2560 KB
Tamaño SO: 400 KB
Lo primero que realizaremos será el Diagrama de Gantt
| P1 | P2 | P3 | P4 | P5 |
0 10 15 35 43 58
22
Implantación de sistemas operativos
A continuación deberíamos rellenar la memoria RAM, según la entrada y salida
de procesos.
t=0 t=0 t=10 t=15
SO SO SO SO
L(2160) P1 L(600) L(600)
P2 P2 L(1000)
P3 P3 P3
L(260) L(260) L(260)
t=15 t=15 t=35 t=35
SO SO SO
SO
P4 P4 P4
L(1600)
P5 P5 P5
P3
L(400) L(400) L(960)
L(260)
P3 L(300)
L(260) L(260)
t=43 t=58 t=58
SO SO SO
L(700) L(700) L(2160)
P5 L(500)
L(960) L(960)
A la misma vez crearíamos una TABLA que recoja los sucesos (entradas y
salidas), tiempos (según el diagrama de Gantt) y observaciones (anotaciones que
consideremos importantes).
SUCESO TIEMPO OBSERVACIONES
E(P1,P2,P3) 0
S(P1) 10* No puede entrar P4
S(P2), E(P4,P5) 15
S(P3) 35
S(P4) 43
S(P5) 58
23
Implantación de sistemas operativos
2.3 Compactación
Es una evolución del método de asignación contigua. Se van a poder unir los
huecos NO contiguos, por lo que SOLUCIONA el problema de la fragmentación externa.
2.4 Paginación
-Es una técnica que SOLUCIONA el problema de la fragmentación externa.
-La memoria RAM se va a dividir en zonas del mismo tamaño (marcos).
-El usuario va a disponer de una memoria lógica, también dividida en zonas del
mismo tamaño (páginas), las cuales se alojarán en el disco duro.
-Contaremos con una tabla de páginas (la cual se alojará en la RAM), que me
indicará que página se encuentra en la RAM y en qué posición.
-A diferencia de los métodos anteriores el límite de procesos lo marca la memoria
secundaria (disco duro) y no la RAM.
Vamos a verlo con un ejemplo:
P1= 512B; P2=4KB; P3=1575B; P4=2048B
Tamaño página = Tamaño marco = 1KB
Tamaño de la RAM = 8GB à 8 millones de marcos
Según estos valores los procesos ocuparán las siguientes páginas:
P1= 512B à Página 0
P2= 4KB à Páginas 1,2,3,4
P3=1575B à Páginas 5,6
P4=2048B à Páginas 7,8
Dibujamos la memoria lógica (lo que el usuario cree disponer )
Página Proceso
0 P1
1 P2
2 P2
3 P2
4 P2
5 P3
6 P3
7 P4
8 P4
24
Implantación de sistemas operativos
A continuación creamos la Tabla de páginas, asignando las “páginas” a un
“marco” disponible en la RAM. Recordar que existen 8 millones de marcos disponibles y
podemos escoger cualquiera que se encuentre disponible. Por lo que una posible solución
de “Tabla de paginas” podría ser la siguiente…
Memoria Memoria
Lógica Física. RAM
(Página) (Marco)
0 3
1 1
2 548
3 6
4 1050
5 1
6 43
7 21
8 1100
Para finalizar dibujamos la memoria RAM, tal y como nos indica la tabla de
páginas.
Marco Página
0
1 Página 1
2
3 Página 0
6 Página 3
11 Página 5
21 Página 7
43 Página 6
548 Página 2
1050 Página 4
1100 Página 8
… …
8192000
Podríamos solicitar que se calcule unas dirección físicas a partir de unas
direcciones lógicas. Por ejemplo:
-Hallar la dirección física de inicio del proceso 1:
El Proceso 1 se encuentra en la página 0, el cual se aloja en el marco 3 de
la RAM
3(marco) * 1024(tamaño del marco) = 3072
-Hallar la dirección física de la página 7, desplazamiento 111:
La página 7 se aloja en el marco 21 de la RAM
21(marco) * 1024(tamaño del marco) + 111 (desplaz)= 21615
-Hallar la dirección física de la página 7, desplazamiento 1500:
Error. No existe el desplazamiento 1500 (máximo 1024)
25
Implantación de sistemas operativos
2.5 Segmentación
-Es igual que paginación, con la excepción de que el tamaño de página (aquí se le
llama segmento), NO es del mismo tamaño.
Vamos a verlo con un ejemplo:
P1= 512B; P2=4KB; P3=1575B; P4=2048B
Tamaño segmento: VARIABLE
Tamaño de la RAM = 8GB à No sabemos de antemano cuantos segmentos
emplearemos.
En primer lugar creamos la Tabla de segmentos, asignando los “segmentos” a un
espacio disponible en la RAM. Podemos escoger cualquiera que se encuentre disponible.
Por lo que una posible solución de “Tabla de segmentos” podría ser la siguiente…
Memoria Memoria Memoria Física.
Lógica Física. RAM RAM
(Segmentos) (Dirección (Desplazamiento)
BASE)
0 1400 1000
1 6300 400
2 4300 400
3 3200 1100
4 4700 1000
… … …
Según estos valores los procesos ocuparán los siguientes segmentos:
P1= 1500B à Segmentos 0, 1, 2
P2= 500B à Segmento 3
P3=800B à Segmento 4
Dibujamos la memoria lógica (lo que el usuario cree disponer )
Segmentos Proceso
0 P1
1 P1
2 P1
3 P2
4 P3
26
Implantación de sistemas operativos
Para finalizar dibujamos la memoria RAM, tal y como nos indica la tabla de
segmentos.
Dirección Segmento
RAM
0
…
1400-2400 Segmento 0
…
3200-4300 Segmento 3
4300-4700 Segmento 2
4700-5700 Segmento 4
…
6300-6700 Segmento 1
…
8192000000 …
Podríamos solicitar que se calcule unas dirección físicas a partir de unas
direcciones lógicas. Por ejemplo:
-Hallar la dirección física del segmento 1, desplazamiento 125:
6300 + 125 = 6425
-Hallar la dirección física del segmento 8, desplazamiento 25:
Error. No existe el segmento 8
-Hallar la dirección física del segmento 1, desplazamiento 425:
Error. No existe el desplazamiento 425 (máximo 400)
27
Implantación de sistemas operativos
2.6 Memoria Virtual
A diferencia de las técnicas anteriores, en esta NO es NECESARIO que TODO el
proceso se tenga que alojar en la RAM para que la CPU lo pueda ejecutar.
Para ello emplearemos la técnica de Paginación, por lo que para ejecutar un
proceso que contenga por ejemplo 4 páginas, solo necesitamos que una de las páginas se
tenga que alojar en un instante dado en la RAM.
Veámoslo con un ejemplo:
Un usuario quiere localizar las siguientes páginas en memoria (en el orden en que
aparecen):
C, A, B, D, E, F, H
Contamos con la siguiente información:
TABLA DE PAGINAS RAM
D.D.
Página Marco Bit Marco Página Página
A 0 A
B 3 V 1 C B
C 1 V 2 C
D 3 B D
E 4 E
F F
Explicar y Representar lo que sucede para cada página solicitada por el usuario. Rellenar la
tabla de páginas y la memoria RAM (la cual sólo cuenta con 5 posiciones). Posteriormente se debe
realizar un análisis explicando los resultados obtenidos. A la hora de elegir una víctima en la RAM,
esta será la que lleve más tiempo. La RAM se empezó a llenar por el marco 0, luego 1, etc…
Para resolver el ejercicio deberemos dar respuesta a cada una de las páginas
solicitadas: C, A, B, D, E, F, H y en ese orden
Página C à Bit Validez=V à Acierto página à Marco 1 de la RAM
Página A à Bit Validez=F à Fallo página à Acude DD à Marco 0 de la RAM
Página B à Bit Validez=V à Acierto página à Marco 3 de la RAM
Página D à Bit Validez=F à Fallo página à Acude DD à Marco 2 de la RAM
Página E à Bit Validez=F à Fallo página à Acude DD à Marco 4 de la RAM
Página F à Bit Validez=F à Fallo página à Víctima “C” à Acude DD à Marco 1 RAM
Página E à ERROR, la página No existe en el DD
Página Marco Bit Marco Página
A -,0 F,V
0 -,A
B 3 V
1 C,F
C 1,- V,F
2 -,D
D -,2 F,V
3 B
E -,4 F,V
4 -,E
F -,1 F,V
28
Implantación de sistemas operativos
A la hora de efectuar el Análisis, obtenemos los siguientes datos
Aciertos de página = 2/7 à 28%
Fallo de página = 3/7 à 42%
Fallo de página con Víctima = 1/7 à 14%
Errores = 1/7 à 14%
La tasa de aciertos es de solo un 28% por lo que nuestro sistema informático
ofrece resultados MUY MEJORABLES.
Posibles SOLUCIONES:
-Aumentar los recursos hardware, especialmente:
-RAM, CPU y los periféricos de entrada y salida como el disco
duro
-Disminuir la cantidad de procesos ejecutándose a la misma vez
29
Implantación de sistemas operativos
3.- TRABAJO SOBRE SISTEMAS OPERATIVOS
Deberemos realizar un trabajo sobre los siguientes sistemas operativos:
1-Unix
2-IBM AIX
3-Solaris
4-Free-BSD
5-MAC-OS
6-Android
7-Chrome OS
Además deberá contener los siguientes apartados:
-Características
-Sistemas de archivos
-Hardware empleado
-Arquitectura
-Licencia y PVP
-Comparativa con Windows
-Empresas que trabajan con el SO
4.- GESTIÓN DE ARCHIVOS
4.1.-Definición de sistemas de archivos
Consiste en dos partes distintas, por un lado una colección de archivos
donde cada uno de ellos contiene datos relacionados y por otra parte una estructura de
directorios que organiza todos los archivos del sistema y proporciona información sobre
ellos.
4.2.-Definición de archivo
Información almacenada
4.3.-Atributos de un archivo
Nombre, tipo, ubicación, tamaño, protección, fecha, hora, identificación de
usuario…
4.4.-Operaciones sobre un archivo
Creación, escribir, leer, posicionarse, eliminar…
4.5.-Tipos de archivo
Texto, gráfico, directorio, ejecutable, código fuente, biblioteca…
4.6.-Métodos de acceso
Secuencial, directo, indexado…
4.7.-Definición de directorio
Es un tipo de archivo, el cual indica la posición de otros archivos. Otra
definición sería “un contenedor de archivos”.
4.8.-Operaciones sobre un directorio
Igual que las operaciones sobre un archivo.
30
Implantación de sistemas operativos
5.- GESTIÓN DE E/S
5.1.-Definición de E/S
-Las dos operaciones principales de un computador son:
-Procesamiento de los datos
-Operaciones de E/S
-Deberíamos prestar más atención a las operaciones de E/S, ya que
nuestro interés inmediato será leer o escribir datos sobre dispositivos de
E/S.
-En la arquitectura de computadores diseñada por Von-Neumann, nos
encontramos los siguientes componentes hardware:
CPU RAM
E/S
-Para que un sistema informático (software, hardware y personal), sea lo
más eficiente y rápido posible deberemos prestar atención a cada uno de
sus componentes, especialmente a lo más lentos. Es por esto que
deberíamos mejorar las prestaciones de los periféricos de E/S.
5.2.-Estructura física de un disco
Se crea cuando se construye un disco en la fábrica, asignándole un
número determinado de caras, cilindros o pistas y sectores. Por ejemplo podemos buscar
información en internet sobre la fabricación de un disco duro magnético y otro sólido.
31
Implantación de sistemas operativos
5.3.-Estructura lógica de un disco
A la hora de trabajar con un periférico de almacenamiento como un disco
duro, deberíamos realizar los siguientes pasos para que nuestro disco pueda almacenar
correctamente los archivos con los que posteriormente trabajaremos.
Cuando formateamos un disco entero o una partición del disco, se realizan
las siguientes tareas:
1.-Particionar (dividir el disco)
2.-Elegir el sistema de archivos (NTFS, EXT4…), aquí eligiremos
el “lenguaje” con el que nuestro sistema operativo se comunicará
con los archivos
3.-Elegir el tamaño del clúster (lo explicaremos en el siguiente
apartado)
4.-Formatear (significa que preparará la superficie del disco con
los anteriores peticiones)
32
Implantación de sistemas operativos
5.4.-Clúster
Un sistema operativo no localiza a los archivos mediante el acceso a la
“cara”, “cilindro” y “sector” de un disco. En vez de ello, lo hace a través del “clúster”.
Un clúster es un concepto lógico y no físico, y hace referencia a un
conjunto de sectores consecutivos del disco.
Las importancia del clúster estriba en que es la unidad mínima de
información que maneja el sistema operativo. Es decir que si nuestro sistema operativo
tiene definido un tamaño del clúster de 2 KB, significa que el archivo más pequeño que se
podrá almacenar en nuestro disco, tendrá ese tamaño.
Un archivo podría pesar 50KB y si el tamaño del clúster es de 2KB,
significa que necesitaremos (50 / 2 = 25 clústers) para almacenar a nuestro archivo en el
disco. Podríamos emplear clústers NO consecutivos, por ejemplo: Clúster 345, clúster 23,
clúster 124, .. así hasta emplear los 25 clústers necesarios para almacenar la información
de nuestro archivo.
5.5.-Tablas de localización de archivos (FAT, NTFS, …)
Características de los siguientes sistemas de archivos: FAT16, FAT32 y NTFS
Sistema de archivos FAT16:
-Inconvenientes:
- El tamaño del clúster dependerá del tamaño de la partición
- Clústers demasiado grandes
- No permite crear particiones > 2GB
- Tamaño máximo del archivo 2^16 = 2GB
- Se emplea en sistemas operativos como MSDOS, y Windows 95
- No existe seguridad en los archivos
Tamaño partición Tamaño del Clúster
<128 MB 2 KB
128-255 MB 4 KB
256-511 MB 8 KB
512 MB-1 GB 16 KB
1-2 GB 32 KB
33
Implantación de sistemas operativos
Sistema de archivos FAT32:
- Inconvenientes:
- El tamaño del clúster dependerá del tamaño de la partición
- No es compatible con FAT16
- No se puede usar en particiones < 512 MB
- Tamaño máximo del archivo 2^16 = 2GB
- Se emplea en sistemas operativos a partir del Win 95B
- No existe seguridad en los archivos
- Permite crear particiones > 2 GB
- Tamaño de los clústers más pequeños
Tamaño partición Tamaño del Clúster
513 MB - 8 GB 4 KB
8-16 GB 8 KB
16-32 GB 16 KB
>32 GB 32 KB
Sistema de archivos NTFS (New Technology file system):
- El tamaño del clúster NO depende del tamaño de la partición. Lo fija el
usuario
- Permite aplicar medidas de seguridad, cifrado, etc., a los archivos.
34
Implantación de sistemas operativos
Unidad 3: Documentación técnica y Resolución de
problemas
NOTA* : Acceder a los ficheros alojados en el servidor EVAGD.
1.-Documentación técnica
1.1.-Elaboración documentación técnica
1.1.1.-Fases de una implantación
[Link].-Requerimientos
[Link].-Análisis
[Link].-Instalación
[Link].-Pruebas
[Link].-Mantenimiento
[Link].-Documentación
[Link].1.-Elaboración guía de usuario
1.2.-Tareas a realizar por un administrador informático
2.-Resolución de problemas durante la asistencia técnica
2.1.-Elaboración de un parte de asistencia técnica
3.-Ley de Protección de Datos
35