dictarsistemas-operativos
-
Upload
vizcardo-huallpa -
Category
Documents
-
view
212 -
download
0
description
Transcript of dictarsistemas-operativos
El soporte del sistema operativoDr. Ivan Delgado H.
Objetivos y funciones del sistema operativo Comodidad
Hace que un computador sea más fácil de usar.
EficienciaPermite que los recursos del computador se
aprovechen mejor.
Capas y puntos de vista de un computador
Usuario finalUsuario final
Programas de aplicaciónProgramas de aplicación
UtilidadesUtilidades
Sistema operativoSistema operativo
Hardware del computadorHardware del computador
ProgramadorProgramador
Diseñador del Diseñador del sistema operativosistema operativo
Servicios del sistema operativo
Creación de programas Ejecución de programas Acceso a los dispositivos de E/S Acceso controlado a los ficheros Acceso al sistema Detección de errores y respuesta Contabilidad
El sistema operativo como gestor de recursos
Controles de Memoria E/S
COMPUTADOR
DISPOSITIVOS DE E/SSoftware
del sistemaoperativo
Programas y datos
Procesador Procesador AlmacenamientoS.O.
ProgramasDatos
Tipos de sistemas operativos
Interactivos Sistemas de colas Un solo programa (monoprogramados) Multiprogramados (multiárea)
Los primeros sistemas
De finales de los 40 a mediados de los 50. No eran sistemas operativos. El programador interactuaba directamente
con el hardware. Dos problemas fundamentales:
Planificación Tiempo de preparación
Sistemas de colas simples Programa monitor residente. El usuario envía los trabajos a un operador. El operador pone los trabajos en cola. El monitor controla la secuencia de eventos
para procesar la cola. Cuando el trabajo termina, se devuelve el
control al monitor, que inmediatamente lee el siguiente trabajo.
El monitor se encarga de la planificación.
Lenguaje de control de trabajos Se utiliza para dar instrucciones al monitor. Las instrucciones de control de trabajo
normalmente empiezan con $. Por ejemplo:
$JOB $FTN ... Instrucciones Fortran $LOAD $RUN ... Datos $END
Funciones necesarias del hardware Protección de memoria
Para proteger el monitor. Temporización
Para evitar que un único trabajo monopolice el sistema.
Instrucciones privilegiadas Sólo pueden ser ejecutadas por el monitor. Ejemplo: instrucciones de E/S.
InterrupcionesPermite al procesador ceder y recuperar el
control.
Sistemas de colas multiprogramados Los dispositivos de E/S son muy lentos. Mientras que un programa está esperando
una instrucción de E/S, otro puede utilizar la CPU.
Ejecución Ejecución
Monoprogramación
Espera Espera
Tiempo
Multiprogramación de dos programas
Programa A Espera Espera
Programa B Espera Espera Espera
Ejecución Ejecución
Combinado Espera Espera
Tiempo
Ejecución Ejecución
Ejecución Ejecución
BABA
Multiprogramación de tres programasPrograma A Espera Espera
Programa B Espera Espera Espera
Programa C Espera Espera Espera
Ejecución Ejecución
Combinado
Tiempo
Ejecución
Ejecución
Ejecución
Ejecución
Ejecución Ejecución
A C B C B A
Sistemas de tiempo compartido
Permiten al usuario interactuar directamente con el computador. Ejemplo: en trabajos interactivos
La multiprogramación permite a un determinado número de usuarios interactuar con el computador.
Planificación
Es la clave de la multiprogramación Planificación a largo plazo Planificación a medio plazo Planificación a corto plazo Planificación de E/S
Planificación a largo plazo Determina qué programas se admiten para
ser procesados. De este modo, controla el grado de
multiprogramación. Una vez admitido, un trabajo pasa a ser un
proceso y se añade a una cola asociada al planificador a corto plazo.
En algunos sistemas, se produce una función de intercambio y el trabajo se añade a la cola del planificador a medio plazo.
Planificación a medio plazo
Es parte de la función de intercambio (descrita en la Sección 7.3.).
Normalmente se basa en la necesidad de gestionar la multiprogramación.
Si el sistema no utiliza memoria virtual, este planificador también se encargará de la gestión de la memoria.
Planificación a corto plazo
También llamado distribuidor. Toma la decisión más específica: qué
trabajo se ejecuta a continuación. Es decir, qué trabajo utilizará el
procesador durante el próximo tiempo de espera.
Estados de los procesos
Asignar procesador Iniciar Salida
Suspender Se produce el evento Esperar evento
NuevoNuevo
En esperaEn espera
SalidaSalidaEn ejecuciónEn ejecución PreparadoPreparado
Bloque de control de procesos Identificador Estado Prioridad Contador de programa Punteros a memoria Datos de contexto Información del estado de las E/S Información estadística
Elementos clave de un sistema operativo
Llamadas aLlamadas aservicios desdeservicios desdeprocesosprocesos
Interrupciones Interrupciones desde procesosdesde procesos
InterrupcionesInterrupcionesdesde E/Sdesde E/S Cede el controlCede el control a un procesoa un proceso
Sistema operativoSistema operativo
Colas de E/S Gestor deGestor de
interrupcióninterrupción
Gestor de Gestor de llamadas allamadas aserviciosservicios
PlanificadorPlanificadora corto a corto plazoplazo
Cola aCola alargolargoplazoplazo
Cola aCola acortocortoplazoplazo
Planificación del procesador
Solicitud de proceso
FINALCPU
Cola de E/S E/S
Cola de E/S E/S
Cola de E/S E/S
Cola a largo plazo
Cola a corto plazo
Gestión de la memoria
MonoprogramaciónLa memoria se divide en dos partes. Una para el sistema operativo (el monitor
residente).Otra para el programa que se está ejecutando.
MultiprogramaciónLa parte de “usuario” se subdivide y se comparte
entre los distintos procesos activos.
Intercambio (swapping) Problema:
las actividades de E/S son tan lentas en comparación con el procesador que, incluso en los sistemas multiprogramados, puede permanecer inactivo la mayor parte del tiempo.
Soluciones:Se puede ampliar la memoria principal.
Es caro. Origina procesos mayores.
Otra solución es el intercambio.
¿Qué es el intercambio? Tenemos una cola a largo plazo de solicitudes de
proceso almacenadas en disco. Los procesos “se intercambian” a medida que queda
espacio disponible. Cuando un proceso ha concluido, se saca de la
memoria principal. Si ninguno de los procesos en la memoria está en el
estado preparado (por ejemplo, si todos están esperando una operación de E/S): El procesador intercambia uno de los procesos bloqueados,
situándolo en una cola intermedia. A continuación, acepta una nueva petición de proceso. Pero... el intercambio es una operación de E/S.
Definición de particiones La memoria se divide en secciones a las
que se asignan los procesos (incluido el sistema operativo).
Particiones de tamaño fijo:Pueden tener distinto tamaño.El proceso que se introduce en memoria se
sitúa en la partición más pequeña que puede incluirlo.
Se desperdicia algo de memoria. Consecuencia: particiones de tamaño
variable.
Particiones fijas
Sistema Sistema operativooperativo8 M8 M
8 M8 M
8 M8 M
8 M8 M
8 M8 M
8 M8 M
8 M8 M
8 M8 M
Sistema operativoSistema operativo8 M8 M2 M
4 M
6 M6 M
8 M8 M
8 M8 M
12 M12 M
16 M16 M
(a) Particiones de igual tamaño (b) Particiones de distinto tamaño
Particiones de tamaño variable (1) Se asigna al proceso exactamente la memoria
que necesita. Esto deja un hueco al final de la memoria,
demasiado pequeño para poderse utilizar. Tan sólo queda un hueco pequeño (se desperdicia
menos memoria). Cuando todos los procesos están bloqueados,
se saca uno de la memoria y se carga otro nuevo.
Puede que el proceso nuevo ocupe menos espacio que el que se ha retirado.
Entonces queda otro hueco.
Particiones de tamaño variable (2) Al final quedan muchos huecos pequeños
(fragmentación). Soluciones:
Fusión: los huecos contiguos se unen en un hueco más grande.
Compactación: de vez en cuando, el sistema operativo desplaza los procesos en memoria para juntar toda la memoria libre en un bloque (frente a la defragmentación de disco).
Efecto de la partición dinámica
SistemaSistemaoperativooperativo
SistemaSistemaoperativooperativo
SistemaSistemaoperativooperativo
SistemaSistemaoperativooperativo
Proceso 1Proceso 1
Proceso 2Proceso 2
SistemaSistemaopeativoopeativoProceso 1Proceso 1
Proceso 2Proceso 2
Proceso 3Proceso 3Proceso 3Proceso 3Proceso 3Proceso 3
Proceso 3Proceso 3
Proceso 4Proceso 4Proceso 4Proceso 4
SistemaSistemaopeativoopeativoProceso 1Proceso 1Proceso 2Proceso 2
896K
128K
352K 64K576K
320K224K
288K
224K
320K320K
SistemaSistemaoperativooperativo
Proceso 1Proceso 1 320K
288K
320K320K
128K
64K
224K
SistemaSistemaoperativooperativo
Proceso 4
Proceso 1
Proceso 3
96K288K64K
128K96K288K64K
224K
96K
96K128K
288K64K
Reposicionamiento No es seguro que el proceso se carguen la misma
posición de la memoria. Las instrucciones contienen direcciones:
Direcciones de datos Direcciones de instrucciones (de salto)
Dirección lógica: indica una posición relativa al comienzo del programa.
Dirección física: indica la posición actual en la memoria principal.
Conversión automática utilizando la dirección base.
Paginación La memoria se divide en partes iguales y
relativamente pequeñas (marcos de página). Los programas (procesos) también se dividen en
partes iguales y relativamente pequeñas (páginas). Se asigna el número de marcos de página que un
proceso necesita. El sistema operativo mantiene una lista de tres
marcos. Un proceso no necesita marcos de página
contiguos. El procesador utiliza una tabla de páginas para
cada proceso.
Dirección lógica y física: paginación Memoria Memoria principalprincipal
Página 0Página 0de Ade A
Página 2Página 2de Ade A
Página 1Página 1de Ade A
Página 3Página 3de Ade A
Número Número de página de página
Dirección relativa Dirección relativa dentro de la páginadentro de la página
Número Número de página de página
Dirección relativa Dirección relativa dentro del marcodentro del marco
DirecciónDirecciónlógicalógica
DirecciónDirecciónfísicafísica
Tabla de páginas Tabla de páginas del proceso A del proceso A
Memoria virtual Paginación por demanda
No es necesario que todas las páginas de un proceso se encuentren en la memoria.
Cada página se introduce en la memoria sólo cuando se necesita.
Fallo de página La página deseada no se encuentra en la memoria. El sistema operativo debe cargar la página deseada. Es posible que el sistema necesite sacar una página
para dejar un hueco libre. Se selecciona la página que se va a sacar en función
de su historia reciente.
Hiperpaginación Una memoria pequeña almacena demasiados
procesos. El sistema operativo pasa la mayor parte del tiempo
intercambiando páginas. Apenas se realizan trabajos efectivos. La luz del disco permanece encendida todo el
tiempo. Soluciones:
Un buen algoritmo que determine la página que se ha de remplazar.
Reducir la cantidad de procesos en curso. Aumentar la memoria.
Ventajas No es necesario que la memoria almacene todos
los procesos que se van a ejecutar. Podemos intercambiar las páginas que
necesitemos. Por lo tanto, podemos ejecutar procesos
mayores que toda la memoria. La memoria principal recibe el nombre de
memoria real. El programador o usuario percibe una memoria
mucho mayor (memoria virtual).
Estructura de la tabla de páginasDirección virtualDirección virtual
Página #Página # DesplazamientoDesplazamiento
(Dispersión)(Dispersión)
Tabla de dispersiónTabla de dispersión Tabla de páginas invertidaTabla de páginas invertida Dirección realDirección real
Marco #Marco # DesplazamientoDesplazamiento
Marco #Marco #
Tabla de páginasTabla de páginasPágina #Página # ElementoElemento CadenaCadena
Segmentación
Normalmente la paginación es invisible para el programador.
La segmentación, en cambio, es visible. Normalmente el programador asignará
segmentos distintos a programas y datos. Puede haber distintos segmentos de
programas y de datos.
Ventajas de la segmentación Simplifica la gestión de estructuras crecientes de
datos. Permite modificar los programas y recopilarlos
independientemente, sin que sea necesario volver a enlazar y cargarlos todos.
Permite que varios procesos compartan segmentos.
Se facilita la protección. Algunos sistemas combinan la segmentación y la
paginación.
Trabajo
Translation Lookaside Buffer
Cada referencia a memoria virtual causa accesos físicos a memoriaExtrae la entrada de la tabla de páginasExtrae los datos
Utiliza la cache especial para la tabla de páginas TLB
TLB Operation
TLB and Cache Operation
Pentium II Hardware para segmetación y paginado No segmentado, no paginado
Direccion virtual=dirección física Baja complejidad Alta performance
No segmentado, paginado Memory viewed as paged linear address space Protection and management via paging Berkeley UNIX
Segmentado no paginado Collection of local address spaces Protection to single byte level Translation table needed is on chip when segment is in memory
Segmentado y paginado Segmentation used to define logical memory partitions subject to access
control Paging manages allocation of memory within partitions Unix System V
Pentium II Address Translation Mechanism
Pentium II Segmentation Each virtual address is 16-bit segment and
32-bit offset 2 bits of segment are protection mechanism 14 bits specify segment Unsegmented virtual memory 232 = 4Gbytes Segmented 246=64 terabytes
Can be larger – depends on which process is active
Half (8K segments of 4Gbytes) is globalHalf is local and distinct for each process
Pentium II Protection
Protection bits give 4 levels of privilege0 most protected, 3 leastUse of levels software dependentUsually level 3 for applications, level 1 for O/S
and level 0 for kernel (level 2 not used)Level 2 may be used for apps that have internal
security e.g. databaseSome instructions only work in level 0
Pentium II Paging Segmentation may be disabled
In which case linear address space is used Two level page table lookup
First, page directory 1024 entries max Splits 4G linear memory into 1024 page groups of 4Mbyte Each page table has 1024 entries corresponding to
4Kbyte pages Can use one page directory for all processes, one per
process or mixture Page directory for current process always in memory
Use TLB holding 32 page table entries Two page sizes available 4k or 4M
PowerPC Memory Management Hardware 32 bit – paging with simple segmentation
64 bit paging with more powerful segmentation Or, both do block address translation
Map 4 large blocks of instructions & 4 of memory to bypass paging
e.g. OS tables or graphics frame buffers 32 bit effective address
12 bit byte selector =4kbyte pages
16 bit page id 64k pages per segment
4 bits indicate one of 16 segment registers Segment registers under OS control
PowerPC 32-bit Memory Management Formats
PowerPC 32-bit Address Translation