Download Tema 4:Sistemas operativos monousuario

Document related concepts

Sistema operativo wikipedia , lookup

Anillo (seguridad informática) wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Sistema operativo móvil wikipedia , lookup

Haiku (sistema operativo) wikipedia , lookup

Transcript
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