Sistemas operativos Tema 3: Estructura del sistema operativo

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

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

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos.

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

Sistemas Operativos. Curso 2017 Estructura de los sistemas operativos

Sistemas Operativos. Estructura de los sistemas operativos

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero

Sistemas operativos: una visión aplicada. Capítulo 2 Introducción a los sistemas operativos

Estructura Windows NT

Conceptos y Estructuras de Sistemas Operativos

Introducción a los Sistemas Operativos

Convivencia Introducción

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos

Sistemas Operativos. Introducción. Tema 6

Sistemas Operativos. Daniel Rúa Madrid

Introducción a los Sistemas Operativos

Evolución del software y su situación actual

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

Sistemas Operativos 1

SISTEMAS OPERATIVOS. Informática Básica

Mundo Azul.

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

Hilos Secciones Stallings:

Nombre del estudiante: Giovanna Kristhel Mendoza Castillo Gustavo Antonio González Morales Eduardo Solis Lara Francisco Javier Merodio Molina

Conceptos de Sistemas Operativos. Sistema Operativo

1.4.1 Inicio de la computadora por primera vez Hay problemas Causas, síntomas y soluciones a posibles averías...

Herramientas Informáticas I Software: Sistemas Operativos

ANDRES LEONEL CESPEDES SISTEMA OPERATIVO II

Sistemas Operativos. Dr. Wenceslao Palma M.

Sistemas Operativos Ricardo Sanz

Fundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Qué es un sistema operativo? 2015 ULPGC - José Miguel Santos Espino

Tema 12: El sistema operativo y los procesos

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

Definición de Sistema Operativo

Sistema Operativo. Introducción a los Sistemas Operativos. El Sistema Operatico como Interfaz Usuario/Computador. Objetivos del Sistema Operativo

Tecnología de software para sistemas de tiempo real

TEMA: LOS SISTEMAS OPERATIVOS

Sistemas operativos: una visión aplicada. Capítulo 9 Seguridad y Protección

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

Sistemas Operativos. que es un sistema operativo?

Fundamentos de Programación. Sabino Miranda-Jiménez

IFCD0111 Programación en Lenguajes Estructurados de Aplicaciones de Gestión

Usuario. Programas de Aplicación. Sistema Operativo. Hardware. Figura 1. Sistema de cómputo estructurado por capas.

No obstante, incluso en los sistemas monolíticos es posible tener al menos un poco de estructura. Los servicios (llamadas al sistema) proporcionados

LINUX fork() execv() wait() exit() kill signal pipe creat close open read write fstat Chmod getuid, setuid, getgid setgid

Introducción a los Sistemas Operativos

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Tema 1: Arquitectura de ordenadores, hardware y software

PROTOCOLO FTP PROTOCOLO DE TRANSFERENCIA DE ARCHIVOS ING. RAUL BAREÑO GUTIERREZ RAUL BAREÑO GUTIERREZ 1

Tema 2 Introducción a la Programación en C.

Introducción a los Sistemas Operativos

Introduccion a Sistemas Operativos. Ej: Linux

Sistemas Distribuidos. Soporte de Sistemas Operativos

Organización del Sistema Operativo

Gestión de Entrada-salida

Universidad Central Del Este U C E Facultad de Ciencias y Humanidades Escuela de Pedagogía Mención Informática.

Fundamentos de Sistemas Operativos

Introducción Sistemas Operativos Avanzados

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

GESTION DE ENTRADA Y SALIDA

Posteriormente, en la tercera generación de computadoras nace uno de los primeros sistemas operativos con la filosofía de administrar una familia de

Programación en Lenguajes Estructurados de Aplicaciones de Gestión. Certificados de profesionalidad

CONVENCIONES USADAS... 13

CONVENCIONES USADAS...

5 Gestión de E/S. Servicios de E/S que suministra el SO Hardware de Entradas/salidas Implementación de los servicios Mejora del redimiento de E/S SOI

Sistemas Operativos- Evolución Histórica

1.1 Concepto y definición de Sistemas Operativos

Introducción a los sistemas operativos

INFORMATICA III. Capítulo I: Plataformas

CONCEPTOS BÁSICOS COMPUTADORA

Tema 3: Conceptos básicos de GNU/LINUX. Objetivo:

4.1 Dispositivos y manejadores de dispositivos: device drivers

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

Threads, SMP y Microkernels. Proceso

FUNCIONAMIENTO DEL ORDENADOR

Qué es un programa informático?

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

TIPOS DE SOFTWARE. A grandes rasgos, se puede decir que existen tres tipos de software:

ANEXO I GUIA BIBLIOGRAFICA:

una red de equipos no puede funcionar sin un sistema operativo de red

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

SISTEMA OPEATIVO DEFINICIÓN

TEMA 2: Sistemas Operativos

Tipos de Diseño. Ing. Elizabeth Guerrero V.

RMI. Aplicaciones Distribuidas

Universidad Autónoma de Baja California Facultad de Ciencias Administrativas Unidad Mexicali

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

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

SISTEMAS OPERATIVOS Arquitectura de computadores

Servicios del Sistema Operativo (SO)

Sistemas Operativos Administración de la Memoria

Fundamentos de programación. Diagramas de flujo, Diagramas N-S, Pseudocódigo y Java

Introducción a la arquitectura de computadores

ESCUELA DE INGENIERIA Informática Y Sistemas

Transcripción:

Sistemas operativos Tema 3: Estructura del sistema operativo 1

Contenidos 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 2

Componentes típicos de un SO procesos memoria entrada/salida redes protección archivos Intérprete de órdenes 3

Gestión de procesos procesos Un proceso es un programa 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 4

Gestión de memoria memoria 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. 5

Gestión de la E/S entrada/salida La E/S es un conjunto de dispositivos muy variados y complejos de programar. 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 6

Sistema de archivos archivos 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. 7

Sistema de protección protección 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 8

Redes redes 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. 9

Intérprete de órdenes (command interpreter) Intérprete de órdenes Para que un usuario pueda dialogar directamente con el S.O., se proporciona una interfaz de usuario básica para: cargar programas abortar programas introducir datos a los programas trabajar con archivos trabajar con redes Ejemplos: JCL en sistemas por lotes, COMMAND.COM en MS-DOS, shell en UNIX 10

Servicios del SO El S.O. ofrece a los programas una serie de servicios para trabajar en el computador: Ejecución de programas 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.) 11

Servicios adicionales 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 12

Interfaces con los servicios del SO Para el programador: LLAMADAS AL SISTEMA en lenguaje máquina o en alto nivel (ej. lenguaje C) Para el usuario: intérprete de órdenes programas del sistema 13

Qué aspecto tiene una llamada al sistema? Windows: handle = OpenFile( mifichero,ofstruct,of_read) UNIX: fd = open( mifichero,o_rdonly); MSDOS: 14

Llamadas al sistema El S.O. ofrece una gama de servicios a los programas. Los programas acceden a estos servicios mediante llamadas al sistema. Las llamadas al sistema son la interfaz entre el programa en ejecución y el S.O. Es la única forma en la que un programa puede solicitar operaciones al S.O. 15

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 programamos 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. 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 17

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) 18

Programas del sistema Las llamadas al sistema nos proporcionan una interfaz para el programador. Un usuario final interactúa con el S.O. mediante programas previamente compilados. El entorno del S.O. Suele proveer utilidades básicas, llamadas programas del sistema, para: manipular ficheros (ej. ls, cp, etc.) editar documentos (emacs, edit, etc.) darnos un entorno de trabajo (ej. escritorio Windows) desarrollar programas (compiladores, enlazadores, etc.) comunicarnos con otros equipos (telnet, ftp, etc.) 19

El núcleo (kernel) 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 programas del sistema (que utilizan los servicios del núcleo). 20

Modelos de diseño de un SO 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 21

Diseño monolítico La arquitectura más simple para un S.O. Es un núcleo compacto, que contiene todas las rutinas de S.O. programa programa programa Llamadas al sistema NÚCLEO hardware 22

Diseño por capas 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. programa capa 2 capa 1 capa 0 23

Diseño por capas (2) Cada capa del SO consistiría en la implementación de un objeto abstracto Datos Operaciones operaciones nuevas. capa M operaciones existentes. operaciones ocultas. capa M-1 24

Ejemplo por capas: THE 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 25

Ejemplo: MS-DOS (Microsoft) programa de aplicación programa del sistema residente controladores de dispositivos de MS-DOS controladores de dispositivos en ROM BIOS 26

Ejemplo: Unix (AT&T) manejo de terminales por señales sistema de E/S por caracteres drivers de 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 planificación de CPU reemplazo de páginas paginación por demanda memoria virtual controladores de terminales terminales controladores de dispositivos discos y cintas controladores de memoria memoria física 27

Ejemplo: OS/2 (IBM) aplicación aplicación aplicación aplicación interfaz de programación de aplicaciones (API) extensión API subsistema subsistema subsistema núcleo del sistema gestión de memoria planificación de tareas gestión de dispositivos controlador de dispositivo controlador de dispositivo controlador de dispositivo controlador de dispositivo 28

Diseño por capas: ventajas 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 29

Diseño por capas: desventajas sobre monolítico 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 30

Máquinas virtuales La idea: mediante software, se proporciona a los programas 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. 31

Máquinas virtuales: ejemplos IBM VM: ofrecía a cada usuario su propia máquina virtual no multiprogramada; las m.v. se planificaban con tiempo compartido. Java: los programas 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. 32

Máquinas virtuales: pros y contras 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 33

Modelo cliente-servidor 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 34

Modelo cliente-servidor 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 35

Micronúcleo 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) 36

Micronúcleo (2) 37

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 38

Micronúcleos: ventajas (2) 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 39

Implementación de un sistema operativo 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? 40

Separar mecanismos y políticas 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. 41

Lenguaje para implementar un SO 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 42