Contenidos. Sistemas operativos Tema 3: Estructura del sistema operativo. Componentes típicos de un SO. Gestión de procesos.



Documentos relacionados
Unidad 1: Conceptos generales de Sistemas Operativos.

Sistemas operativos Tema 3: Estructura del sistema operativo

Tema 1. Conceptos fundamentales de los Sistemas Operativos


Estructuras de Sistemas Operativos

1. Introducción 2. Historia 3. Características clave 4. Cuestiones de diseño

Fundamentos de Sistemas Operativos

SISTEMAS OPERATIVOS Estructura del SO. Amilcar Meneses Viveros

El tema de esta presentación es los conceptos básicos relacionados con Sistemas Operativos.

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas

Tema 6. Gestión de la memoria

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)


Informática y Programación Escuela de Ingenierías Industriales y Civiles Grado en Ingeniería en Ingeniería Química Curso 2010/2011

Instituto Universitario Politécnico. Santiago Mariño. Unidad I Revisión de conceptos de Sistemas. Operativos. Elaborado por: Ing. Víctor Valencia.

Tema 2: Implementación del núcleo de un Sistema Operativo

Introducción a las redes de computadores

Conceptos Básicos de Software. Clase III

Diseño de Base de Datos

Introducción a los Sistemas Operativos

Capítulo 5. Cliente-Servidor.

Tema 4. Gestión de entrada/salida

Módulos: Módulo 1. El núcleo de Linux - 5 Horas

UT04 01 Máquinas virtuales (introducción)

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Capítulo 1 Introducción a la Computación

Programación de Sistemas

Fundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Estructura del sistema operativo ULPGC - José Miguel Santos Espino

Introducción a los sistemas operativos

Computación Tercer Año

Arquitectura de Software

Es el conjunto de programas y procedimientos ejecutados en un computador, necesarios para hacer posible la realización de una tarea específica.

- Qué es una Máquina Virtual?

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno.

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Sistemas Embebidos Act 11: Reconocimiento Unidad 3 LECTURA 1

EL ADMINISTRADOR Definición de un administrador

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Peer-to-Peer (Punto a Punto) Cliente-Servidor

Diseño de aplicaciones móviles seguras en Android.

Capítulo 5. Sistemas operativos. Autor: Santiago Felici Fundamentos de Telemática (Ingeniería Telemática)

Introducción. Sistemas Operativos. Pedro Chávez Lugo 23 de marzo de 2010

Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III

Sistemas de Operación II

Agente local Aranda GNU/Linux. [Manual Instalación] Todos los derechos reservados Aranda Software [1]

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

SISTEMAS DE INFORMACIÓN II TEORÍA

Una computadora de cualquier forma que se vea tiene dos tipos de componentes: El Hardware y el Software.

Introducción a la Computación

Sistema Operativo. Comunicació n. Control

Facultad de Ciencias del Hombre y la Naturaleza SISTEMAS OPERATIVOS DE REDES CICLO II Materia: Sistemas Operativos de Redes Tema:

Microsoft Office 2010 Illustrated. Tipos de Software

SISTEMA CABILDO MANUAL DE INSTALACIÓN CLIENTE ERP CABILDO LA SOLUCIÓN TECNOLÓGICA MÁS COMPLETA E INTEGRAL PARA GOBIERNOS LOCALES

DIPLOMADO EN SEGURIDAD INFORMATICA

Arquitectura Cliente/Servidor

Tema 1. Conceptos básicos

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

Sistemas Operativos INTRODUCCIÓN A LAS TECNOLOGÍAS INFORMÁTICAS

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Software Computacional y su clasificación

Entre los más conocidos editores con interfaz de desarrollo tenemos:

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

TELEPROCESOS Y SISTEMAS DISTRIBUIDOS

PROYECTO. Solución Empresarial Ingeniería y Desarrollo de Software - info@solucionempresarial.com.

Unidad 1: Conceptos generales de Sistemas Operativos.

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

Unidad didáctica 2: Metodologías de desarrollo de Bases de Datos. Unidad didáctica 1: Fase de análisis de requisitos Modelo E/R

BASES DE DATOS TEMA 2. Arquitectura de un Sistema de Gestión de Bases de Datos

Arquitectura del sistema operativo GNU/Linux. Luis Eduardo Sepúlveda R.

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN PROFESOR: MSC. P. Norma Maya Pérez SISTEMAS OPERATIVOS

SENA CEET, Distrito Capital ADSI Instructor: Ing. Espec. Javier V.aquiro

Máquina Virtual, instrucciones de instalación

Fundamentos de Computación para Científicos

NOMBRE: Sánchez Sandoval Edgar Rafael GRUPO: 301 MATERIA: OPERAR EL EQUIPO DE COMPUTO PROFESOR: Joel rodríguez Sánchez FECHA DE CREACION: 24/09/2013

WINDOWS : TERMINAL SERVER

COLEGIO COMPUESTUDIO

serra Access y SQL Server Qué es mejor en cada caso? Valentín Playá, Serra GTS 22 de enero de 2009 Bases de datos 1

JAVA EE 5. Arquitectura, conceptos y ejemplos.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Una computadora es un dispositivo electrónico, operando bajo el control de las instrucciones almacenadas en su propia unidad de memoria.

Contenido. Sistema de archivos. Operaciones sobre archivos. Métodos de acceso a archivos. Directorio. Sistema de archivos por capas.

Administración de GNU/Linux

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

Máquina Virtual, instrucciones de instalación

Servidores corporativos Linux

Maquinas virtuales Conceptos Básicos

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

MÁSTER ONLINE EN ADMINISTRACIÓN LINUX

1. Generalidades. M. en C. Mario Farias-Elinos

Práctica: Copia de seguridad y restauración de datos

SEGURIDAD Y PROTECCION DE FICHEROS

Windows Server Windows Server 2003

Arquitectura de Aplicaciones

SEMANA 12 SEGURIDAD EN UNA RED

1.1.- Objetivos de los sistemas de bases de datos Administración de los datos y administración de bases de datos Niveles de Arquitectura

Familia de Windows Server 2003

Transcripción:

Contenidos Sistemas operativos Tema 3: Estructura del sistema operativo Componentes típicos del SO Servicios del SO Llamadas al sistema Programas del sistema El núcleo o kernel Modelos de diseño del SO Cómo se implementa un SO 1 2 Componentes típicos de un SO Gestión de procesos procesos procesos memoria entrada/salida redes protección archivos Intérprete de órdenes Un proceso es un en ejecución. Para poder ejecutarse, un proceso necesita tiempo de CPU, una porción de memoria, archivos, E/S y demás recursos. Responsabilidades del S.O.: creación y eliminación de procesos planificación de procesos: repartir la CPU entre los procesos activos sincronización entre procesos comunicación entre procesos 3 4 Gestión de memoria memoria Gestión de la E/S entrada/salida La memoria es un recurso escaso por el que compiten los distintos procesos. Responsabilidades del S.O.: conocer qué zonas de memoria están libres y cuáles están ocupadas decidir qué procesos hay que cargar cuando haya memoria libre reservar y liberar zonas de memoria según se solicite memoria virtual: utilizar el almacenamiento secundario como una extensión de la memoria principal. La E/S es un conjunto s muy variados y complejos de r. Objetivos del S.O.: proporcionar una interfaz uniforme para el acceso a los dispositivos (independencia del dispositivo) proporcionar manejadores para los dispositivos concretos tratar automáticamente los errores más típicos para los dispositivos de almacenamiento, utilizar cachés para los discos, planificar de forma óptima las peticiones 5 6

Sistema de archivos archivos Sistema de protección protección Un archivo es un conjunto de datos identificado por un nombre. Los archivos se almacenan en dispositivos de E/S. Un archivo es un concepto de alto nivel que no existe en el hardware. Funciones del S.O.: manipulación de archivos: crear, borrar, leer, escribir... manipulación de directorios ubicar los archivos y directorios en los dispositivos de almacenamiento secundario automatizar ciertos servicios: copia de seguridad, versiones, etc. La protección abarca los mecanismos destinados a controlar el acceso de los usuarios a los recursos, de acuerdo con los privilegios que se definan. Objetivos del S.O.: definir el esquema general de protección: clases de usuarios, clases de permisos/privilegios, etc. definir mecanismos de acceso a los recursos: contraseñas, llaves, capacidades, etc. controlar el acceso a los recursos, denegando el acceso cuando no esté permitido 7 8 Redes redes Intérprete de órdenes (command interpreter) Intérprete de órdenes En un sistema distribuido, existen varios ordenadores con sus propios recursos locales (memoria, archivos, etc.), conectados mediante una red. Objetivos del S.O.: proporcionar primitivas para conectarse con equipos remotos y acceder de forma controlada a sus recursos: primitivas de comunicación (enviar y recibir datos) sistema de ficheros en red (ej. NFS) llamada remota a procedimiento (RPC) etc. Para que un usuario pueda dialogar directamente con el S.O., se proporciona una interfaz de usuario básica para: cargar s abortar s introducir datos a los s trabajar con archivos trabajar con redes Ejemplos: JCL en sistemas por lotes, COMMAND.COM en MS-DOS, shell en UNIX 9 10 Servicios del SO Servicios adicionales El S.O. ofrece a los s una serie de servicios para trabajar en el computador: Ejecución de s Operaciones de E/S Manipulación de archivos y directorios Comunicación entre procesos Comunicación con equipos remotos Administración de la protección y seguridad Leer el estado del sistema (hora, nº de procesos, etc.) Aparte de los servicios básicos, el S.O. puede ofrecer algunas funciones para optimizar el uso del sistema: Compartición de recursos Contabilidad (accounting) - conocer el consumo de recursos 11 12

Interfaces con los servicios del SO Para el dor: LLAMADAS AL SISTEMA en lenguaje máquina o en alto nivel (ej. lenguaje C) Para el usuario: intérprete de órdenes s del sistema Qué aspecto tiene una llamada al sistema? Windows: handle = OpenFile( mifichero,ofstruct,of_read) UNIX: fd = open( mifichero,o_rdonly); MSDOS: 13 14 Llamadas al sistema El S.O. ofrece una gama de servicios a los s. Los s acceden a estos servicios mediante llamadas al sistema. Las llamadas al sistema son la interfaz entre el en ejecución y el S.O. Es la única forma en la que un puede solicitar operaciones al S.O. Implementación de las llamadas al sistema Cómo se implementa la llamada? Habitualmente, mediante una instrucción especial de la máquina (syscall, int, trap...) La instrucción cambia automáticamente a modo privilegiado Si mos en un lenguaje de alto nivel, escribimos la llamada al sistema como una subrutina, y el compilador la sustituye por la instrucción de máquina correspondiente. 15 16 Implementación de las llamadas al sistema (2) Muchas llamadas necesitan parámetros, cómo los pasamos al S.O.? guardándolos en registros de la máquina (muy típico) en una tabla en memoria principal poniéndolos en la pila Ejemplo: llamadas al sistema de Unix Procesos: crear proceso (fork), enviar señal a un proceso (kill), tratar señales (signal) Memoria: pedir más memoria, liberar memoria... Archivos: open, close, creat, read, write, mkdir; bloquear fichero (lockf) Redes: crear conexión (socket), cerrar conexión... Protección: cambiar permisos (chmod), cambiar propietario (chown) 17 18

Programas del sistema El núcleo (kernel) Las llamadas al sistema nos proporcionan una interfaz para el dor. Un usuario final interactúa con el S.O. mediante s previamente compilados. El entorno del S.O. Suele proveer utilidades básicas, llamadas s del sistema, para: manipular ficheros (ej. ls, cp, etc.) editar documentos (emacs, edit, etc.) darnos un entorno de trabajo (ej. escritorio Windows) desarrollar s (compiladores, enlazadores, etc.) comunicarnos con otros equipos (telnet, ftp, etc.) Se suele llamar núcleo (kernel) al software del sistema operativo que reside permanentemente en memoria y que atiende las llamadas al sistema y demás eventos básicos. El núcleo se distingue de los s del sistema (que utilizan los servicios del núcleo). 19 20 Modelos de diseño de un SO Diseño monolítico Cómo está construido por dentro un sistema operativo? Hay múltiples técnicas: Diseño monolítico Diseño en capas máquinas virtuales Modelo cliente-servidor Micronúcleos La arquitectura más simple para un S.O. Es un núcleo compacto, que contiene todas las rutinas de S.O. Llamadas al sistema NÚCLEO hardware 21 22 Diseño por capas Diseño por capas (2) El S.O. se construye en niveles jerárquicos, cada uno de los cuales aprovecha los servicios del nivel inferior. Diseño más modular y escalable que el monolítico. Cada capa del SO consistiría en la implementación de un objeto abstracto Datos Operaciones capa 2 capa 1 capa 0 operaciones nuevas operaciones existentes.. operaciones ocultas. capa M capa M-1 23 24

Ejemplo por capas: THE Ejemplo: MS-DOS (Microsoft) Sistema experimental de los años 60 Seis niveles: L5: aplicaciones de usuario L4: buffering L3: consola del operador L2: gestión de memoria paginada L1: planificación de procesos L0: hardware de aplicación del sistema residente es s de MS-DOS es s en ROM BIOS 25 26 Ejemplo: Unix (AT&T) Ejemplo: OS/2 (IBM) manejo de terminales por señales sistema de E/S por caracteres drivers de terminales es de terminales terminales (usuarios) shells y órdenes compiladores e intérpretes bibliotecas del sistema Interfaz con el núcleo mediante llamadas al sistema sistema de archivos sistema de E/S por intercambio de bloques drivers de disco y cinta Interfaz con el núcleo es s discos y cintas planificación de CPU reemplazo de páginas paginación por demanda memoria virtual es de memoria memoria física aplicación aplicación aplicación aplicación interfaz de ción de aplicaciones (API) extensión API subsistema subsistema subsistema núcleo del sistema gestión de memoria planificación de tareas gestión s 27 28 Diseño por capas: ventajas sobre monolítico Diseño por capas: desventajas sobre monolítico La modularidad simplifica: Depuración y verificación Una vez depurada la primera capa se puede dar por sentado su funcionamiento correcto mientras se trabaja con la segunda capa. Mantenimiento Es posible por ejemplo cambiar las rutinas de bajo nivel siempre que la interfaz externa de la rutina no cambie y la rutina realice la misma tarea anunciada Problema: definición apropiada de las distintas capas Tienden a ser menos eficientes Llamadas entre capas => paso de parámetros En definitiva cada capa implica un gasto extra Tendencia: equilibrio, menos capas con más funcionalidad: Ventajas de la modularidad Evitan los problemas de definición e interacción entre capas 29 30

Máquinas virtuales Máquinas virtuales: ejemplos La idea: mediante software, se proporciona a los s la emulación de un sistema que nos interesa reproducir. El sistema emulado puede ser una máquina, un sistema operativo, una red de computadores El software emulador traduce las peticiones hechas a la máquina virtual en operaciones sobre la máquina real. Se pueden ejecutar varias máquinas virtuales al mismo tiempo (ej. mediante tiempo compartido). Los recursos reales se reparten entre las distintas máquinas virtuales. IBM VM: ofrecía a cada usuario su propia máquina virtual no multida; las m.v. se planificaban con tiempo compartido. Java: los s compilados en Java corren sobre una máquina virtual (JVM). VMware: capaz de ejecutar al mismo tiempo varias sesiones Windows, Linux, Mac OS X, etc. sobre plataforma PC o Mac. Nachos: S.O. que se ejecuta en una máquina virtual MIPS, cuyo emulador corre sobre Unix. 31 32 Máquinas virtuales: pros y contras Modelo cliente-servidor Protección: cada máquina virtual está aislada de las otras y no puede interferir Independencia de la plataforma (ej. Java) Pervivencia de sistemas antiguos (ej. emuladores MSDOS) Experimentación: se puede desarrollar y ejecutar para un hardware que no tenemos Pero el rendimiento de la m.v. puede ser muy lento Según este modelo, el SO se organiza como un conjunto de módulos autónomos, cada uno de los cuales tiene a disposición del resto una serie de servicios Cada módulo actúa como un servidor de ciertas funcionalidades, que atiende las peticiones de otros módulos y que su vez puede ser cliente de otros módulos 33 34 Modelo cliente-servidor Micronúcleo Podemos extender el modelo cliente-servidor hasta el infinito, si consideramos cada módulo del sistema como un conjunto de módulos con relaciones cliente-servidor El modelo jerárquico no es más que un caso particular del modelo cliente-servidor Indicado para sistemas distribuidos Objetivo: construir un núcleo del SO con lo mínimo imprescindible cambios de contexto, gestión de interrupciones, comunicación entre procesos, etc. Las políticas de gestión de los recursos se implementan fuera del núcleo, como procesos externos a nivel de usuario Primer micronúcleo: Mach (1980) 35 36

Micronúcleo (2) Micronúcleos: ventajas Se pueden incorporar nuevos módulos sin necesidad de alterar el núcleo Se cargan en memoria sólo aquellos módulos que sean necesarios en cada momento Pueden aplicarse diferentes políticas para distintas clases de procesos (ej. unos por lotes, otros en tiempo real ) Puede servir como base de múltiples sistemas operativos (estos se implementan como colecciones de módulos cargables) Facilita la implementación de máquinas virtuales 37 38 Micronúcleos: ventajas (2) Implementación de un sistema operativo Fiabilidad Lo pequeño es bello el micronúcleo es menos complejo y por tanto más fácil de depurar Muchos módulos se ejecutan como procesos de usuario si un servicio falla, el resto del SO puede seguir adelante Como todo software, debe seguirse un proceso de desarrollo (ingeniería de sw): requisitos, diseño, construcción, pruebas, paso a explotación, mantenimiento Pero un SO presenta características especiales: Es un sistema crítico (todas las aplicaciones dependen de él) Normalmente hay requisitos más estrictos de portabilidad (respetar versiones anteriores) Es más complicado de depurar cómo probamos un pequeño cambio? tenemos que volverlo a instalar un equipo? 39 40 Separar mecanismos y políticas Lenguaje para implementar un SO Los mecanismos definen cómo se realiza algo; las políticas definen qué se debe realizar. Ejemplos: Tiempo compartido política Temporizador, colas de procesos, gestión de interrupciones mecanismos Es conveniente separar en el código los mecanismos de las políticas. Aunque la política cambie, los mismos mecanismos pueden seguir siendo útiles. En el pasado, lenguaje ensamblador (por eficiencia). Hoy día se usan lenguajes de alto nivel, sobre todo C/C++. Más legible y fácil de mantener y depurar Más transportable a distintas arquitecturas hardware 41 42