Download Sistemas Operativos

Document related concepts
no text concepts found
Transcript
Introducción
Sistemas Operativos
Pedro Chávez Lugo
mailto:[email protected]
23 de marzo de 2010
Pedro Chávez Lugo
Sistemas Operativos
Introducción
1
Introducción
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Que es un Sistema Operativo?
Un sistema operativo es un programa que tiene la finalidad de simplificar el manejo y la utilización de la computadora.
[Prácticas de Sistemas Operativos, Jesús Carretero Pérez]
Un sistema operativo es un programa que administra el hardware de
una computadora. Este también ofrece una base para los programas
de aplicación y actúa como un intermediario entre el usuario y el
hardware de la computadora.
[Operating System Concepts, Silberschatz]
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Parte fundamental del sistema operativo
El sistema operativo tiene asociado un componente principal llamado
kernel, el cual tiene la finalidad de administrar el hardware y software
de una computadora.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
User level programs
Normal programs
kernel
System call interface
Virtual Filesystem
management
Memory
management
Abstract network
services (sockets)
TCP/IP protocol
drivers
Various filesystem
drivers
IDE harddisk
drivers
Process
management
Floppy disk
drivers
Ethernet card
drivers
Hardware
IDE harddisk
Floppy disk
Pedro Chávez Lugo
Ethernet card
Sistemas Operativos
Introducción
Tipos de kernel
Monolı́tico
microkernel
Hibrido
Nanokernel
Exokernel
Etc.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Kernel Monolı́tico
En un kernel monolı́tico todos los servicios del sistema operativo se
ejecutan en un solo hilo, de tal manera que residen en una misma
área de memoria.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Kernel Monolı́tico
User
Space
Applications
Libraries
File Systems
Interprocess Comunications
Kernel
I/O and Device Management
Fundamental Process Management
Hardware
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Kernel Monolı́tico
User
Space
Applications
Libraries
File Systems
Interprocess Comunications
Kernel
I/O and Device Management
Fundamental Process Management
Hardware
Ventajas y desventajas
Ventajas:
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Kernel Monolı́tico
User
Space
Applications
Libraries
File Systems
Interprocess Comunications
Kernel
I/O and Device Management
Fundamental Process Management
Hardware
Ventajas y desventajas
Ventajas:
Rapidez
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Kernel Monolı́tico
User
Space
Applications
Libraries
File Systems
Interprocess Comunications
Kernel
I/O and Device Management
Fundamental Process Management
Hardware
Ventajas y desventajas
Ventajas:
Rapidez
Diseño
sencillo
(pequeño)
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Kernel Monolı́tico
User
Space
Applications
Libraries
File Systems
Interprocess Comunications
Kernel
I/O and Device Management
Fundamental Process Management
Hardware
Ventajas y desventajas
Ventajas:
Desventajas:
Rapidez
Diseño
sencillo
(pequeño)
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Kernel Monolı́tico
User
Space
Applications
Libraries
File Systems
Interprocess Comunications
Kernel
I/O and Device Management
Fundamental Process Management
Hardware
Ventajas y desventajas
Ventajas:
Desventajas:
Rapidez
Diseño
sencillo
(pequeño)
Pedro Chávez Lugo
Un bug (fallo) en un
driver puede colapsar
al SO
Sistemas Operativos
Introducción
Kernel Monolı́tico
User
Space
Applications
Libraries
File Systems
Interprocess Comunications
Kernel
I/O and Device Management
Fundamental Process Management
Hardware
Ventajas y desventajas
Ventajas:
Desventajas:
Rapidez
Diseño
sencillo
(pequeño)
Pedro Chávez Lugo
Un bug (fallo) en un
driver puede colapsar
al SO
Complejo
mantenimiento
(grande)
Sistemas Operativos
Introducción
Monolı́tico
Algunos sistemas operativos que emplean al kernel monolı́tico:
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Monolı́tico
Algunos sistemas operativos que emplean al kernel monolı́tico:
La gran mayorı́a de las distribuciones de Linux
Gentoo, Debian, Ubuntu, Fedora, Red Hat, etc.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Monolı́tico
Algunos sistemas operativos que emplean al kernel monolı́tico:
La gran mayorı́a de las distribuciones de Linux
Gentoo, Debian, Ubuntu, Fedora, Red Hat, etc.
Unix.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
El microkernel consiste de un conjunto reducido de primitivas o llamadas al sistema (system calls) para implementar los servicios mı́nimos del SO, tales como:
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
El microkernel consiste de un conjunto reducido de primitivas o llamadas al sistema (system calls) para implementar los servicios mı́nimos del SO, tales como:
Administración de memoria
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
El microkernel consiste de un conjunto reducido de primitivas o llamadas al sistema (system calls) para implementar los servicios mı́nimos del SO, tales como:
Administración de memoria
Multitarea
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
El microkernel consiste de un conjunto reducido de primitivas o llamadas al sistema (system calls) para implementar los servicios mı́nimos del SO, tales como:
Administración de memoria
Multitarea
Comunicación entre procesos
Los servicios para red, file systems, etc., son implementados en el
espacio de usuario denominados servidores.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
Applications
Kernel
Drives
Pager
Process Server
Libraries
File Systems
User
Space
microkernel
Hardware
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
Applications
Kernel
Drives
Pager
Process Server
Libraries
File Systems
User
Space
microkernel
Hardware
Ventajas y desventajas
Ventajas:
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
Applications
Kernel
Drives
Pager
Process Server
Libraries
File Systems
User
Space
microkernel
Hardware
Ventajas y desventajas
Ventajas:
Fácil mantenimiento
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
Applications
Kernel
Drives
Pager
Process Server
Libraries
File Systems
User
Space
microkernel
Hardware
Ventajas y desventajas
Ventajas:
Fácil mantenimiento
Continuidad
operacional
ante ciertas
fallas
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
Applications
Kernel
Drives
Pager
Process Server
Libraries
File Systems
User
Space
microkernel
Hardware
Ventajas y desventajas
Desventajas:
Ventajas:
Fácil mantenimiento
Continuidad
operacional
ante ciertas
fallas
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
Applications
Kernel
Drives
Pager
Process Server
Libraries
File Systems
User
Space
microkernel
Hardware
Ventajas y desventajas
Desventajas:
Ventajas:
Fácil mantenimiento
Lentos
Continuidad
operacional
ante ciertas
fallas
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
Algunos sistemas operativos que emplean al kernel microkernel:
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
Algunos sistemas operativos que emplean al kernel microkernel:
Distribuciones de linux con kernel GNU Mach
Hurd.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
microkernel
Algunos sistemas operativos que emplean al kernel microkernel:
Distribuciones de linux con kernel GNU Mach
Hurd.
Distribuciones del microkernel L4
TUDOS (Dresden University of Technology - Operating
System)
http://demo.tudos.org/
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Kernel hı́brido
Los kernel hı́bridos son una combinación entre el kernel monolı́tico y
el microkernel. Lo cual implica que en un kernel hı́brido se integran
los los servicios del sistema de archivos, stack de red y los drivers de
dispositivos se implementan en el espacio de usuario.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Servicios del SO
Un sistema operativo ofrece un ambiente de ejecución de programas mediante un conjunto de servicios. Los servicios que ofertan los sistemas
operativos varı́an de sistema en sistema, pero podemos identificar ciertas
clases comunes:
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Servicios del SO
Un sistema operativo ofrece un ambiente de ejecución de programas mediante un conjunto de servicios. Los servicios que ofertan los sistemas
operativos varı́an de sistema en sistema, pero podemos identificar ciertas
clases comunes:
Interfase de usuario
Ejecución de programas
Operaciones de Entrada/Salida
Manipulación de sistemas de archivos
Comunicaciones
Detección de errores
Asignación de recursos
Cuentas de usuario
Protección y seguridad
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Interfase de usuario
Todos los sistemas operativos tienen cuentan con una interfase de
usuario (UI). Esta interfase puede tomar varias formas, una de ellas
corresponde a la interfase de linea de comandos (CLI). La CLI utiliza
comandos basados en texto y un para la entrada de tales comandos.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Interfase de usuario
Todos los sistemas operativos tienen cuentan con una interfase de
usuario (UI). Esta interfase puede tomar varias formas, una de ellas
corresponde a la interfase de linea de comandos (CLI). La CLI utiliza
comandos basados en texto y un para la entrada de tales comandos.
Actualmente la interfase más común utilizada corresponde a la interfase gráfica de usuario (GUI). En la GUI la interfase corresponde
a una ventana que tiene asociado un menu de opciones.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Ejecución de programas
El sistema debe ser capaz de cargar un programa en memoria y ejecutarlo. El programa debe tener un fin normal u anormal (indicando
un error).
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Operaciones E/S
Un programa en ejecución puede requerir E/S, las cuales pueden
involucrar archivos o dispositivos de E/S. Por razones de eficiencia
y protección a los usuarios no se les debe permitir el control directo
de los dispositivos de E/S, ya que el sistema operativo de proveer el
acceso a los dispositivos de E/S.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Manipulación de sistemas de archivos
Los programas necesitan leer y/o escribir archivos y directorios,
además de crearlos y eliminarlos. Algunos programas incluyen la
administración de permisos para permitir o negar el acceso a los
archivos o directorios basados en el atributo de propiedad.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Comunicaciones
Pueden existir diversas circunstancias en las cuales un proceso necesite intercambiar información con otro proceso. Tal comunicación
puede presentarse entre procesos que se ejecutan en una misma
computadora o en diferentes sistemas de computo enlazadas mediante una red de computadoras.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Comunicaciones
Pueden existir diversas circunstancias en las cuales un proceso necesite intercambiar información con otro proceso. Tal comunicación
puede presentarse entre procesos que se ejecutan en una misma
computadora o en diferentes sistemas de computo enlazadas mediante una red de computadoras.
La comunicación puede ser implementada via memoria compartida o
mediante el paso de mensajes, en el cual los paquetes de información
son movidos entre los procesos por el sistema operativo.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Detección de errores
El sistema operativo debe constantemente buscar posibles errores
que pudieran presentarse en el CPU, memoria, dispositivos de E/S,
en las conexiones de red, etc.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Detección de errores
El sistema operativo debe constantemente buscar posibles errores
que pudieran presentarse en el CPU, memoria, dispositivos de E/S,
en las conexiones de red, etc.
Detección de errores
Para cada tipo de error el sistema operativo debe registrar las acciones realizadas que ocaciono el error para que este pueda ser analizado
por el administrador o usuario. En algunos casos de error el sistema
operativos tiene la tarea de ejecutar acciones ante tales errores.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Asignación de recursos
Cuando existen múltiples usuarios o se tienen diversos trabajos en
ejecución al mismo tiempo los recursos deben ser asignados a cada
uno de estos.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Asignación de recursos
Cuando existen múltiples usuarios o se tienen diversos trabajos en
ejecución al mismo tiempo los recursos deben ser asignados a cada
uno de estos.
Los recursos pueden tener asociado un código especial de asignación, tal es el caso de los ciclos del procesador, la memoria principal
y el almacenamiento de archivos. Mientras que otros recursos tiene
asociado un código general de asignación, tal es el caso de las impresoras, dispositivos de almacenamiento de usb, modems, y otros
dispositivos periféricos.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Cuentas de usuario
El servicio de cuentas de usuario permite clasificar a los usuarios
en grupos, reynos, etc. Teniendo como finalidad tal clasificación, el
perfil de los usuarios que define entre otras cosas la asignación de
recursos.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Cuentas de usuario
El servicio de cuentas de usuario permite clasificar a los usuarios
en grupos, reynos, etc. Teniendo como finalidad tal clasificación, el
perfil de los usuarios que define entre otras cosas la asignación de
recursos.
Otro aspecto importante que provee este recurso es la estadı́stica
del uso de recursos de cada usuario.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Protección y seguridad
El servicio de protección garantiza que todos los accesos a los recursos del sistema están controlados. El servicio de seguridad se puede
aplicar en el propio sistema operativo o al exterior de este mismo.
Tal es el caso de posibles accesos remotos no autorizados.
Pedro Chávez Lugo
Sistemas Operativos
Introducción
Protección y seguridad
El servicio de protección garantiza que todos los accesos a los recursos del sistema están controlados. El servicio de seguridad se puede
aplicar en el propio sistema operativo o al exterior de este mismo.
Tal es el caso de posibles accesos remotos no autorizados.
Protección y seguridad
Un ejemplo de seguridad en el sistema operativo se da con la autenticación que realizan los usuarios previo a su ingreso al sistema
operativo, para lo cual los usuarios requieren de un login y una contraseña.
Pedro Chávez Lugo
Sistemas Operativos