Desarrollo de Aplicaciones Web
Sistemas Informáticos 1
Tema 3:Introducción a los
Sistemas operativos. Instalación
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/
Parte I:Teoría
• Introducción a los SO
• Componentes
• Llamadas al sistema
• Estructura del Kernel
• Drivers
Desarrollo de Aplicaciones Web
Sistemas Informáticos 2
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.
Desarrollo de Aplicaciones Web
Sistemas Informáticos 3
Desarrollo de Aplicaciones Web
Sistemas Informáticos 4
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
Desarrollo de Aplicaciones Web Sistemas Informáticos 5
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.
Desarrollo de Aplicaciones Web
Sistemas Informáticos 6
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 7
2. Componentes
• Gestión de procesos.
• Gestión de memoria.
• Gestión de dispositivos de E/S.
• Sistema de ficheros.
• Protección.
Desarrollo de Aplicaciones Web
Sistemas Informáticos 8
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 9
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.
Desarrollo de Aplicaciones Web
Sistemas Informáticos 10
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
Desarrollo de Aplicaciones Web
Sistemas Informáticos 11
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 12
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 13
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 14
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 15
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 16
3. Llamadas al sistema
D
R. Supervisor
Desarrollo de Aplicaciones Web Sistemas Informáticos 17
3. Llamadas al sistema
Se ejecuta en modo supervisor Se ejecuta en modo usuarioDesarrollo de Aplicaciones Web
Sistemas Informáticos 18
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 19
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 20
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 21
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 22
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 23
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 24
4. Estructura del Kernel
• Indica como está organizado el nucleo
del sistema operativo.
–Monolítica
–Monolítica-Modular
–Microkernel
Desarrollo de Aplicaciones Web
Sistemas Informáticos 25
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
Desarrollo de Aplicaciones Web
Sistemas Informáticos 26
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.
Desarrollo de Aplicaciones Web
Sistemas Informáticos 27
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
Desarrollo de Aplicaciones Web
Sistemas Informáticos 28
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 29
Desarrollo de Aplicaciones Web
Sistemas Informáticos 30
Desarrollo de Aplicaciones Web
Sistemas Informáticos 31
5. Drivers
• Programas que se añaden al
Sistema
Operativo
.
Sistema Operativo
Desarrollo de Aplicaciones Web
Sistemas Informáticos 32
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 33
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 34