Introducción a Sistemas Operativos ¿Qué es un Sistema Operativo?



Descargar 27,65 Kb.
Fecha de conversión14.05.2017
Tamaño27,65 Kb.
Introducción a Sistemas Operativos
¿Qué es un Sistema Operativo?

Máquina desnuda – computador carente de sistema operativo

Programa ejecutable – fichero que contiene un programa en código binario (lenguaje máquina) en un formato tal, que procesado adecuadamente posibilita la construcción de una imagen en memoria para permitir ejecutar dicho programa.

Usuario – persona autorizada a utilizar un sistema informático


Funciones clásicas de un Sistema Operativo

  1. Gestión de recursos del computador (kernel – la capa más cercana al hardware, ejecutada en modo privilegiado y residente en memoria)

  • Asignación de recursos: abstracciones y técnicas

    • Procesador, memoria (páginas, regiones), ficheros (dispositivos), volúmenes, procesos, hilos, señales, pipes, mutex, colas de mensajes, cuentas de usuarios, grupos de usuarios, credenciales,…

    • estructuras de seguimiento, políticas de gestión, planificadores, cuotas, recuperación,…

  • Protección: entre usuarios y entre trabajos

  • Contabilidad: monitorización para cargar por el uso o afinar el rendimiento

  1. Ejecución de servicios para los programas en ejecución (API o conjunto de llamadas al sistema). Ofrece una máquina extendida a los procesos.

  • Ejecución de programas

  • Ordenes de entrada/salida

  • Operaciones sobre ficheros

  • Detección y tratamiento de errores

  1. Intérprete de mandatos (shell – interfaz para interacción con el usuario; se ejecuta en modo usuario y es discutible si forma parte básica del sistema operativo)

  • Interfaz textual

  • Interfaz gráfica

  • Ficheros de mandatos

Usuarios:  autenticación (“contraseñas”) y plantillas de protección

Administrador o superusuario

Grupos de usuarios


Arranque del sistema

  1. Memoria ROM que contiene

    1. Iniciador ROM – independiente del SO. Modo real, sin interrupciones

      1. Comprueba el sistema (POST – Power-On self-test)

      2. Carga en memoria el boot desde el dispositivo de arranque seleccionado

      3. Cede control al programa de arranque (boot)

    2. Software de E/S (BIOS): disco, teclado, pantalla,…

  2. Cargador del SO en disco (boot): almacenado en zona predefinida

    1. Comprueba el sistema (coherencia del sistema de ficheros)

    2. Carga el kernel residente en memoria

    3. Inicializa las estructuras de información (IDT, tablas de procesos,…)

    4. Crea las tablas de páginas de memoria y activa la MMU  paso a modo protegido

    5. Habilita interrupciones

  3. Sistema Operativo en funcionamiento – fase inicial

    1. Carga módulos adicionales, generalmente drivers de dispositivos

    2. Crea procesos servidores (“demonios”) iniciales

    3. Crea un proceso de inicio o login por cada terminal, y procesos auxiliares

    4. El proceso login autentica al usuario mediante contraseña y ejecuta un shell para interactuar con él

Parada del sistema



  • Copia a disco de la información necesaria mantenida en memoria por razones de eficiencia; si no se efectúa así, el sistema queda corrompido y en el próximo arranque debe ser “reparado”

  • Hibernación: copia a disco de la imagen completa de memoria principal  rearranque rápido a la misma situación de apagado

  • Suspensión (Standby): apagado de casi todo excepto la memoria  reanudación instantánea

Activación del Sistema Operativo

El SO “despierta” a la actividad a causa de:


  1. Llamadas al sistema. Instrucción TRAP

  2. Interrupciones externas: de E/S, de reloj, de otro procesador

  3. Excepciones h/w síncronas o asíncronas

La secuencia de activación es:

  1. La interrupción hace pasar el proceso A a modo privilegiado y pasa control al kernel

  2. EL kernel salva el contexto (estado) del proceso A interrumpido

  3. El kernel atiende al servicio solicitado

  4. El kernel usa el planificador para seleccionar un nuevo proceso B, si es el caso

  5. El kernel restaura el contexto del proceso B y le cede control


Servicios de sistema (cada llamada-servicio está asociada a un número)

La prestación del servicio puede

- ser inmediato

- requerir bloqueo del proceso solicitante (síncrono)

- proceder dejando continuar al proceso solicitante (asíncrono)
Funciones de biblioteca

Arropan a las llamadas al sistema

- preparan los argumentos

- invocan la instrucción TRAP o equivalente

- recuperan los resultados
Tipos de sistemas operativos


  1. Monotarea (monoproceso), multitarea (multiproceso)

  2. Multiprogramación: batch (cola de trabajos) o Tiempo-compartido (interactivo - asociado a terminal)

  3. Personal (monousuario) o multiusuario

  4. Monoprocesador (una CPU) o multiprocesador (varias CPUs)

  5. Mono-thread o multi-thread

  6. Cliente (estación de trabajo personal que recurre a servidores) o servidor (usuarios: sistemas remotos)

  7. Empotrado (interaccionan con un sistema físico) o de tiempo real (garantizan la ejecución del programa en un tiempo determinado)

  8. Fijos o móviles (entorno reducido y de bajo consumo)

(nombrar ejemplos reales de SSSO de cada tipo)
Componentes del Sistema Operativo

  1. Gestor de procesos

    1. Abstracción: imagen de memoria, estado del procesador, proceso

    2. Estructura: Bloque de Control de Proceso

    3. Servicios: crear, ejecutar, terminar proceso

  2. Gestor de memoria

    1. Abstracción: regiones, memoria virtual, imagen de memoria

    2. Estructuras: tablas de páginas

    3. Servicios: solicitar, liberar, compartir memoria

  3. Comunicación y sincronización de procesos

    1. Abstracción: cauces, semáforos, mensajes

    2. Servicios: Crear mecanismo, recibir (esperar), enviar (despertar), destruir

  4. Gestor de Entrada/salida

    1. Abstracción: dispositivo como fichero

    2. Servicios: los de ficheros (independencia de dispositivo)

    3. Tipos: Orientados a caracteres o a bloques

  5. Gestor de ficheros y directorios

    1. Abstracción: ficheros – atributos, puntero de posición, bloques, volumen

    2. Servicios de ficheros: abrir, leer, escribir, cerrar, posicionar, crear, borrar

    3. Abstracción: directorios, jerarquía de nombres

    4. Servicios de directorios: crear, abrir, leer, borrar, cambiar de directorio

Seguridad y protección



  • Autenticación de usuario mediante contraseña u otro método (ej., huella)

  • Protección de acceso y operación

    1. Por recurso – ACL: cada recurso lista usuarios y operaciones permitidas

    2. Por usuario – “Capacidades”: cada usuario lista recursos y operaciones permitidas

Interfaces



Interfaz de programación:

“Single UNIX Specification UNIX 03” – POSIX

Windows API
Interfaz de usuario


    1. Alfanumérica

    2. Gráfica (GUI)

    3. Ficheros de mandatos (shell scripts)

Diseño de los Sistemas Operativos

* Monolíticos (OS-360, MSDOS, UNIX)


  • Todos los componentes integrados en un único programa

  • Un único espacio de direcciones

  • Todas las funciones se ejecutan en modo privilegiado

  • Desventaja: complejidad, dificultad de mantenimiento y ampliación


Estructurados:

* Sistema por capas (OS/2, THE)



  • Jerarquía de capas de programación

  • Cada una ofrece un interfaz claro a la capa superior

  • Ventaja: modularidad

* Cliente/servidor (Minix, Mach, Amoeba, Mac OS X)

  • Usa un microkernel: SO que se ejecuta en modo privilegiado

  • Los servicios y funciones del SO se ejecutan en modo usuario como servidores

  • El proceso de usuario (cliente) solicita servicio (a los servidores) mediante paso de mensajes usando el microkernel como intermediario

  • Ventajas: flexibilidad y protección

  • Desventaja: merma de rendimiento

* Máquina virtual

“duplicado eficiente y aislado de una máquina real o estándar”

a. MV de sistema o hardware (Virtual Box, VMWare)

- “plataforma completa que soporta la ejecución de un SO completo”

- se llama “hipervisor” al monitor de la MV

- Tipo I: el hipervisor corre en la máquina física

SO invitado (“guest”) corre en la MV nativa

- Tipo II: el hipervisor corre en un SO anfitrión (“host”)

SO “guest” corre encima del SO “host”

b. MV de proceso (ej., Java JVM, .NET CLI)

- “plataforma que soporta un solo proceso ligado a un lenguaje”

- emulación de un sistema no nativo
* SO distribuido (middleware: DCE, DCOM, COM+, Java RMI)
Carga dinámica de módulos


  • Modo de recomponer en tiempo de arranque o “en vivo” la configuración de un SO

  • Aplicado generalmente a manejadores de dispositivos, sistemas de ficheros, algunas políticas de gestión,…

  • Aplicado generalmente a SSOO personales


Abstracción

“Considerar una cualidad, estado, acción o fenómeno con independencia del objeto en que existe o por que existe”.

El SO simplifica el hardware construyendo una serie de abstracciones:

Proceso: una CPU dedicada a un programa.

Memoria virtual: simula una RAM infinita.

Fichero: memoria permanente de datos con tipo.

Socket: canal de comunicación de E/S de datos con tipo.

Shell: interfaz de usuario programable…


TÉCNICAS

Ideamos técnicas para construir abstracciones

Planificadores de recursos: CPUs, discos,etc.

Gestión de memoria: paginación,...

Sistema de ficheros: designación,...

Interrupciones, sondeo, buffering



Hebras (threads).

Dominios, listas de acceso, capacidades, criptosistemas de clave pública,...


Compartir con tus amigos:


La base de datos está protegida por derechos de autor ©absta.info 2019
enviar mensaje

    Página principal