Tema 3:Introducción a los Sistemas operativos. Instalación Parte I:Teoría • • • • • Introducción a los SO Componentes Llamadas al sistema Estructura del Kernel Drivers Desarrollo de Aplicaciones Web Sistemas Informáticos Esta obra está bajo una licencia Reconocimiento-No comercial-Compartir bajo la misma licencia 2.5 España de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-nc-sa/2.5/es/ 1 1. Introducción a los SO • Definición Software que controla un ordenador y actúa como una capa entre el hardware y las aplicaciones y usuarios. Wiktionary http://en.wiktionary.org Desarrollo de Aplicaciones Web Sistemas Informáticos 2 1. Introducción a los SO Desarrollo de Aplicaciones Web Sistemas Informáticos 3 1. Introducción a los SO • Objetivos – Actuar de intermediario entre usuario y hardware. – Garantizar el funcionamiento correcto del computador. – Facilitar la tarea de programación (comodidad). – Administrar eficientemente los recursos de la máquina. Desarrollo de Aplicaciones Web Sistemas Informáticos 4 1. Introducción a los SO • Componentes – – – – – – Gestión de procesos. Gestión de memoria. Gestión de dispositivos de E/S. Gestión del sistema de ficheros. Protección. Interfaz con el usuario. Desarrollo de Aplicaciones Web Sistemas Informáticos 5 1. Introducción a los SO • Clasificación de los S.O. – Nº de Usuarios • Monousuarios • Multiusuarios – Nº de procesos o tareas • Monotarea • Multitarea – Nº de procesadores • Un único procesador • Múltiples procesadores o núcleos – Estructura del nucleo • Monolitico • Microkernel • Hibrido Desarrollo de Aplicaciones Web Sistemas Informáticos 6 2. Componentes • • • • • • Gestión de procesos. Gestión de memoria. Gestión de dispositivos de E/S. Sistema de ficheros. Protección. Interfaz con el usuario. Desarrollo de Aplicaciones Web Sistemas Informáticos 7 2. Componentes • Gestión de procesos Proceso: Programa en ejecución junto con sus datos. Se ejecuta a la vez (concurrentemente) que otros programas . Thread o Hilo: Partes de un mismo proceso que se ejecutan concurrentemente. Desarrollo de Aplicaciones Web Sistemas Informáticos 8 2. Componentes • Gestión de procesos – Permitir que varios procesos puedan ejecutarse simultáneamente. – Decidir el orden en el que se ejecutan los procesos y durante cuanto tiempo. – Crear y destruir los procesos Desarrollo de Aplicaciones Web Sistemas Informáticos 9 2. Componentes • Gestión de memoria – Optimizar el uso de la memoria – Evitar que los procesos accedan a zonas que no les pertenecen – Permitir que un proceso pueda usar más memoria que la que hay físicamente (Memoria virtual) Desarrollo de Aplicaciones Web Sistemas Informáticos 10 2. Componentes • Gestión de dispositivos de E/S – Optimizan la E/S – Facilitan su uso – Permitir la conexión de cualquier nuevo dispositivo – Capacidades de “Plug & Play” y “Power Management” Desarrollo de Aplicaciones Web Sistemas Informáticos 11 2. Componentes • Sistema de ficheros – Permite organizar la información dentro de los dispositivos de almacenamiento secundario (HD,FD,CD-ROM) – Acceder fácilmente a la información por parte de otros procesos. Desarrollo de Aplicaciones Web Sistemas Informáticos 12 2. Componentes • Protección – Identificar a los usuarios – Establecer a que recursos de la máquina pueden acceder los usuarios – Mantener la confidencialidad y la integridad de la información Desarrollo de Aplicaciones Web Sistemas Informáticos 13 2. Componentes • Interfaz de usuario – Permite que el usuario pueda interactuar con el S.O. – Tipos de Interfaz de usuario • Texto: Línea de Comandos. Bash Shell • Gráfico: Entorno de Ventanas. KDE Desarrollo de Aplicaciones Web Sistemas Informáticos 14 3. Llamadas al sistema • Modos de funcionamiento del procesador – Modo Supervisor : El programa que se ejecuta tiene acceso a todo el Hardware. • El sistema operativo se ejecuta de este modo. • IMPORTANTE: No confundir con el root de Linux. – Modo Usuario: El programa que se ejecuta tiene restringido el acceso a ciertas partes del hardware como memoria, E/S, etc. • Las aplicaciones de usuario se ejecutan en este modo. Desarrollo de Aplicaciones Web Sistemas Informáticos 15 3. Llamadas al sistema DR. Supervisor and MR. Usuario Desarrollo de Aplicaciones Web Sistemas Informáticos 16 3. Llamadas al sistema Se ejecuta en modo usuario Se ejecuta en modo supervisor Desarrollo de Aplicaciones Web Sistemas Informáticos 17 3. Llamadas al sistema • Características de Modo Supervisor – Permite la ejecución de instrucciones de entrada salida. Por lo que tiene acceso al hardware. Ej: IN/OUT – Permite el acceso a toda la memoria del sistema. Desarrollo de Aplicaciones Web Sistemas Informáticos 18 3. Llamadas al sistema • Características de Modo Usuario – No se permite la ejecución de instrucciones de entrada salida. Por lo que NO tiene acceso al hardware. Ej: Prohibidas IN/OUT – Solo permite acceso a la memoria del proceso. Desarrollo de Aplicaciones Web Sistemas Informáticos 19 3. Llamadas al sistema • Una llamada al sistema es como llamar a una función pero dicha función la ejecuta el propio SO. • Las llamadas al sistema permiten que se realicen tareas que solo el SO puede hacer. • Suelen estar relacionadas con los componentes del S.O: Procesos, Memoria, E/S, Archivos ,etc. • Se ejecutan en modo supervisor por lo tanto tienen acceso a todo el hardware y realizan tareas que nunca podría realizar un proceso de usuario. Desarrollo de Aplicaciones Web Sistemas Informáticos 20 3. Llamadas al sistema • Al conjunto de llamas al sistema de un Sistema Operativo se le llama API (Application Programming Interface). • Lo que define si un SO es compatible con otro es si comparten el API. – Al API de Windows se llama: Win32 – Al API de Linux se llama: POSIX. Desarrollo de Aplicaciones Web Sistemas Informáticos 21 3. Llamadas al sistema • POSIX – Es un API estandarizado basado en sistemas operativos Unix. – Significa: Portable Operating System Interface – Permite que es mismo código fuente pueda ser recompilado en cualquier S.O. POSIX y funcione. Ej: FreeBSD, Linux,QNX, Windows NT, OS/400, Solaris,etc. Desarrollo de Aplicaciones Web Sistemas Informáticos 22 3. Llamadas al sistema • Win32 o ECMA-234 o Windows API – Es un API estandarizado basado en sistemas operativos Microsoft Windows. – Permite que un programa pueda ejecutar en cualquier Windows. Ej: El proyecto Wine (Wine Is Not a Emulator) permite usar este API desde Linux. Desarrollo de Aplicaciones Web Sistemas Informáticos 23 4. Estructura del Kernel • Indica como está organizado el nucleo del sistema operativo. – Monolítica – Monolítica-Modular – Microkernel – Kernels Hibridos Desarrollo de Aplicaciones Web Sistemas Informáticos 24 4. Estructura del Kernel • Monolítico – Toda la funcionalidad del SO se incluye en él – Todos los componentes del SO se ejecutan en modo supervisor – Difícil de modificar en tiempo de ejecución – Menor estabilidad si falla alguna parte del S.O. Desarrollo de Aplicaciones Web Sistemas Informáticos 25 4. Estructura del Kernel • Monolítico-Modular (Mejora en). – Es una mejora del monolíticos: • Se permiten cargar y descargar módulo (partes del SO) en tiempo de ejecución. – Ej: Linux. Desarrollo de Aplicaciones Web Sistemas Informáticos 26 4. Estructura del Kernel • Microkernel – Solo una parte mínima del SO se ejecuta en modo supervisor. – Muy estable, aunque falle parte del SO es sistema sigue funcionando. – Menor rendimiento que un kernel monolítica debido a la sobrecarga de comunicaciones Ejemplo: QNX http://www.qnx.com Desarrollo de Aplicaciones Web Sistemas Informáticos 27 4. Estructura del Kernel • Kernel Híbrido – Es una mezcla de ambos. – Partes del S.O. están en el núcleo o otras fuera como procesos. Ej: Windows NT con los Servidores de OS/2 y POSIX Desarrollo de Aplicaciones Web Sistemas Informáticos 28 Kernel Híbrido de Windows Desarrollo de Aplicaciones Web Sistemas Informáticos 29 Kernel Monolítico de Linux Desarrollo de Aplicaciones Web Sistemas Informáticos 30 5. Drivers • Programas que se añaden al Sistema Operativo. Sistema Operativo Driver Desarrollo de Aplicaciones Web Sistemas Informáticos 31 5. Drivers • Por lo tanto: – Se ejecutan en modo supervisor. – Tienen acceso a todo el hardware. – Tienen acceso a toda la memoria – Si fallan pueden “colgar” todo el sistema. – Pueden acceder a toda la información Desarrollo de Aplicaciones Web Sistemas Informáticos 32 5. Drivers • Su utilidad suele ser dar acceso al resto del SO a los dispositivos de E/S. Desarrollo de Aplicaciones Web Sistemas Informáticos 33 5. Drivers • Permiten homogeneizar el acceso a dispositivos distintos pero con la misma funcionalidad. Desarrollo de Aplicaciones Web Sistemas Informáticos 34