Conceptos básicos

advertisement
Conceptos de Sistemas Operativos
Sistema Operativo
• Un programa que controla la ejecución
de los programas de aplicación.
• Una interfaz entre las aplicaciones y el
hardware
1
Objetivos de un S.O.
• Proporcionar facilidad
– Debe de hacer a la computadora más fácil de
utilizar
• Eficiencia
– Permite que los recursos de un sistema
computacional sean utilizados de una manera
eficiente
• Capacidad de evolucionar
– Permite el desarrollo, pruebas e introducción de
nuevas funciones sin interferir con el servicio
Capas de un Sistema de Cómputo
2
Servicios que provee el
Sistema Operativo
• Desarrollo de Programas
– Editores y depuradores
•
•
•
•
Ejecución de Programas
Acceso a dispositivos de E/S
Acceso controlado a archivos
Acceso al sistema
Servicios que provee el
Sistema Operativo
• Detección de errores
– Errores externos e internos de hardware
• Errores de memoria
• Fallas en dispositivos
– Errores de software
• Sobreflujo aritmético
• Acceso prohibido a localidades de memoria
3
Servicios que provee el
Sistema Operativo
• Administración
– Estadísticas
– Monitoreo del desempeño
– Utilizadas para posibles mejoras
Sistema Operativo
• Funciona de la misma manera que
cualquier software
– Es un programa que es ejecutado
• El S.O. cede el control del procesador
para ejecutar otras aplicaciones.
4
Kernel
• Es la porción del sistema operativo que
se encuentra en la memoria principal
• Contiene las funciones más comunmente
utilizadas
• También llamado Núcleo
5
Evolución de un Sistema
Operativo
• Actualizaciones de hardware.
• Nuevos Servicios
• Reparación de fallas
Evolución de los S.O.
• Procesamiento en Serie
– Sin sistema operativo
– Las maquinas corrian desde una consola
con display de luces y switches, dispositivo
de entrada e impresora
– Se tenia que cargar el compilador, programa
fuente, grabar el programa compilado,
cargarlo y enlazarlo
6
Evolución de los S.O.
• Archivos por Lotes simples
– Utilizan Monitores
• Software que controla la ejecución de
programas
• Se ejecutan los programas por lotes
• El programa devuelve el control al monitor
cuando termina su ejecución
• El monitor reside en la memoria principal
Lenguaje de Contol de Tareas
(JCL)
• Es un tipo especial de lenguaje de
programación
• Provee de instrucciones al operador
– Qué compilador utilizar
– Qué datos utilizar
7
Características de Hardware
• Protección de memoria
– No permitir que el area de memoria que
contiene al programa monitor sea alterada
• Temporizador
– Previene que una tarea se apodere por
completo del sistema
Uniprogramación
• El procresador debe esperar que la
instrucción de E/S termine para poder
continuar
8
Multiprogramación
• Cuando una tarea requiere esperar E/S,
el procesador puede cambiar hacia otra
tarea
Multiprogramación
9
Ejemplo
TAREA1
TAREA2
TAREA3
Tipo de Tarea
Proc. Pesado
E/S Pesado
E/S Pesado
Duración
5 min.
15 min.
10 min.
Memoria req.
50K
100 K
80 K
Ocupa disco
No
No
Yes
Ocupa terminal
No
Yes
No
Ocupa impres.
No
No
Yes
Efectos de la multiprogramación
Uniprogramación
Multiprogramación
Uso del procesador
22%
43%
Uso de memoria
30%
67%
Uso de disco
33%
67%
Uso de impres.
33%
67%
Tiempo
30 min.
15 min.
Tasa de eficiencia
6 jobs/hr
12 jobs/hr
Tiempo de respuesta 18 min.
10 min.
10
Tiempo Compartido
• Utilizando multiprogramación para
manipular multiples tareas interactivas.
• El tiempo del procesador es compartido
entre varios usuarios.
• Los usuarios multiples accesan al
sistema en forma simultanea por medio
de terminales
11
Multiprogramación vs.
Tiempo Compartido
Multiprogramación
Tiempo Compartido
Objetivo principal
Maximizar el uso del
procesador
Minimizar el tiempo de
respuesta
Fuente de
comandos hacia el
Sistema Operativo
Comandos en Lengiaje de
Comandos alimentados
Control de Tareas provistos
a la terminal
por la misma tarea
12
Logros Importantes en S.O.
• Procesos
• Administración de Procesos
• Protección y Seguridad en la
Información
• Calendarización y administración de
recursos
• Estructura del sistema
Procesos
• Un programa en ejecución
• Una instancia de un programa corriendo
en una computadora
• La entidad que puede ser asignada y
ejecutada en un procesador
• La unidad de actividad caracterizada por
una sola secuencia de ejecución, un
estado actual, y un conjunto asociado de
recursos del sistema.
13
Dificultades al Diseñar
Sistemas Operativo
• Sincronización inadecuada
– Asegurarse que un proceso que espera a un
dispositivo de E/S reciba la señal
• Exclusión mutua fallida
• Operación del programa no determinada
– Un programa solo debe depender de
entradas a él, y no depender de areas
comunes de memoria
Proceso
• Consiste de tres componentes
– Un programa ejecutable
– Datos asociados requeridos por el programa
– Contexto de ejecución del programa
• Toda la operación que el Sistema Operativo
necesita para administrar el proceso.
14
Proceso
Administración de Memoria
•
•
•
•
•
Aislamiento del proceso
Alocación y administración automática
Soporte de programación modular
Protección y control de acceso
Almacenamiento a largo plazo
15
Memoria virtual
• Permite a los programadores direccionar
memoria desde un punto de vista lógico
• Mientras que un proceso se escribe a
almacenamiento secundario, el proceso
sucesor puede leer
16
Sistema de Archivos
• Implementa almacenamiento a largo
plazo
• Infomación almacenada en objetos
llamados archivos.
Paginación
• Permite que los procesos esten constituidos
por un número fijo de bloques llamados
páginas.
• Dirección virtual es un número de página y un
desplazamiento dentro de ella
• Cada pagina puede ubicarse en cualquier lugar
dentro de la memoria principal
• Dirección real o física en memoria principal.
17
Direccionamiento de memoria
virtual
Protección y Seguridad de la
Información
• Control de acceso
– Regular el acceso del usuario al sistema
• Control del flujo de la información
– Regular el flujo de datos dentro del sistema
y su envío hacia los usuarios
• Certificación
– Proveer que el acceso y el control del flujo
de datos se lleve a cabo conforme a las
especificaciones
18
Calendarización y
Administración de Recursos
• Equidad
– repartir equitativamente el acceso a todos
los procesos
• Respuesta diferenciada
– discriminar entre diferentes clases de tareas
• Eficiencia
– maximizar eficiencia, minimizar tiempo de
respuesta
Principales Elementos de un
Sistema Operativo
19
Estructura del Sistema
• Visualizar el sistema como una serie de
niveles
• Cada nivel desempeña un subconjunto
relacionado de funciones
• Cada nivel depende del siguiente nivel
inferior para desempeñar funciones más
básicas
• Esto descompone un problema en un
número más manejable de subproblemas
Jerarquía del diseño de un
S.O.
Nivel Nombre
Objetos
Ejemplos de operaciones
13
Shell
Ambiente de programación del usuario
Sentencias del shell
12
Procesos de usuario Procesos de usuario
Quit, kill, suspend, resume
11
Directorios
Directorios
Create, destroy, attach, detach,
search, list
10
Dispositivos
Dispositivos externos Abrir, cerrar, leer, escribir.
tales como impresoras,
monitores y teclados
9
Sistema de Archivos Archivos
Crear, destruir, abrir, cerrar
leer, escribir
8
Comunicaciones
Crear, destruir, abrir. cerrar,
leer, escribir
Pipes
20
Jerarquía del diseño de un
S.O.
Nivel Nombre
Objetos
Ejemplo de Operaciones
7
Memoria Virtual
Segmentos, páginas
Leer, escribir, buscar
6
Almacenamiento
local secundario
Bloques de datos,
Leer, escribir, reservar, liberar
canales de dispositivos
5
Procesos primitivos Procesos primitivos,
semáforos
Suspender, reanudar, señal de
esperar
Jerarquía del diseño de un
S.O.
Nivel Nombre
Objetos
Ejemplos de operaciones
4
Interrupciones
Manejo de Interrupciones Invocar, enmascarar,
desenmascarar, reintentar
3
Procedimientos
Procedimientos, pila de
llamadas, despliegue
Marcar pila, llamar,
retornar
2
Conjunto de
Intrucciones
Pila de evaluación,
interprete de micro-,
programas, datos escalares y en arreglos
Cargar, almacenar, sumar,
restar
1
Circuitos Electrónicos Registros, compuertas,
buses, etc.
Limpiar, transferir,
activar
21
Características de Sistemas
Operativos Modernos
• Arquitectura MicroKernel
– Asigna solo algunas funcione esenciales al
kernel
• Espacio de direccionamiento
• Comunicación entre procesos (IPC)
• Calendarizació básica
Características de Sistemas
Operativos Modernos
• Multithreading
– Proceso es dividido en threads que pueden
ejecutarse simultáneamente
• Thread
– Unidad de trabajo
– ejecuta secuencialmente y es interrumpible
• Un proceso es una colección de uno o
más threads
22
Características de Sistemas
Operativos Modernos
• Multiprocesamiento simétrico
– Existen múltiples procesadores
– Estos procesadores comparten la misma
memoria principal y dispositivos de E/S
– Todos los procesadores pueden desempeñar
las mismas funciones
Características de Sistemas
Operativos Modernos
• Sistemas Operativos Distribuidos
– Proveen la ilusión de una sola memoria
principal y un solo espacio de
almacenamiento secundario.
– Utilizados para el sistema de archivos
distribuidos (DFS)
23
Características de Sistemas
Operativos Modernos
• Diseño orientado a objetos
– Utilizados para agregar extensiones
modulares a un núcleo pequeño
– Permite a los programadores el personalizar
un sistema operativo sin afectar la
integridad del sistema
Windows 2000
• Explota el poder de los procesadores de
32 bits
• Provee de un ambiente multitareas en
modo monousuario
• Computación Cliente/Servidor
24
Arquitectura Windows 2000
• Estructura modular por flexibilidad
• Se ejecuta en una gran variedad de
plataformas de hardware
• Soporta aplicaciones para una gran
variedad de sistemas operativos
Organización del S.O.
• Arquitectura microkernel modificada
– No es un Microkernel puro
– Muchas funciones fuera del núcleo corren
en modo kernel
• Cada módulo puede ser removido,
actualizado o reemplazado sin la
necesidad de reescribir el sistema.
25
Estructura por capas
• Capa de Extracción de Hardware (HAL)
– Aisla al S.O. de diferencias de hardware
específicas a la plataforma.
• Microkernel
– Los componentes más utilizados y los más
fundamentales del sistema operativo.
• Controladores de Dispositivos
– Traducen las llamadas a funciones de E/S
en peticiones específicas a los dispositivos
de E/S
Ejecutor W2K
•
•
•
•
•
•
•
•
Administrador de E/S
Administrador de Objetos
Monitor de Seguridad
Administrador de procesos/threads
Centro de Llamada a Procedimiento Local
Administrador de Memoria Virtual
Administrador de Caché
Modulos de Graficos
26
Procesos de usuario
• Procesos especiales de soporte al sistema
– Ej: proceso de login y administrador de
sesiones
• Procesos de servidor
• Subsistemas de ambiente
• Aplicaciones de usuario
Modelo Cliente/Servidor
• Simplifica el ejecutor
– Posible el contruir una variedad de API’s
• Mejora la confiabilidad
– Cada servicio corre por un proceso por separado
con su propia particion de memoria
– El cliente no puede accesar directament el
hardware
• Provee un medio uniforme para comunicacion
de las aplicaciones via LPC
• Provee de la base de computación distribuida
27
Threads y SMP
• Diferentes rutinas pueden ejecutarse
simultáneamente el diferentes procesadores
• Threads multiples de ejecución de un solo
proceso pueden ejecutarse en diferentes
procesadores simultáneamente
• Procesos del servidor pueden utilizar multiples
threads
• Se comparten datos y recursos entre procesos.
28
UNIX
• El hardware esta cubierto por el S.O.
• El sistema operativo es llamado kernel
• Viene con un gran número de servicios
de usuario e interfaces
– shell
– compilador C
UNIX
29
Sistemas UNIX Modernos
•
•
•
•
System V Release 4 (SVR4)
Solaris 2.x
4.4BSD
Linux
30
Descargar