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