Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos...

76
Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computación

Transcript of Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos...

Page 1: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

Unidad Uno: Introducción a los Sistemas Operativos

Ing. Efraín Padilla Valera

Sistemas Operativos

Departamento de Sistemas y Computación

Page 2: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicContenido

Definición y Concepto1

Funciones y Características2

Evolución Histórica3

Núcleo6

Clasificación4

Estructura (niveles o estratos de diseño).5

Page 3: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

¿Qué es un Sistema Operativo?

Esta pregunta no es simple, y procuraremos responderla a lo largo de todo el curso. Sin embargo podemos dar algunas definiciones simples.

Un Sistema Operativo es:1.El código que acompaña la ejecución de cualquier aplicación.

2.Un programa que actúa como intermediario entre un usuario y el hardware del computador.

3.Un programa que dirige todos los recursos de un sistema computacional.

Page 4: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Los Objetivos de un S.O son:

Acercar el sistema computacional al usuario facilitando su uso.

Usar el hardware de una manera eficiente

La mejor forma de entender un S.O. Es entender como se construye.

También ayuda a su comprensión el tener una visión histórica de su desarrollo

Page 5: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicEstructura de un Sistema

Computacional El S. O. Es una de las componentes más

importantes de un sistema computacional.

Un Sistema Computacional es una plataforma sobre la cual se construyen los llamados Sistemas de Información, factor clave de competitividad en cualquier organización.

Un Sistema Computacional está compuesto de: hardware, s.o., aplicaciones

Page 6: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicComponentes del sistema de

cómputacional

Hardware - Proveé los componentes básicos de cómputo (CPU, memoria, dispositivos de E/S).

Sistema Operativo - Controla y coordina el uso del hardware entre los varios programas de aplicación para los diferentes usuarios.

Programas de sistemas- Compiladores, Assembler, Editores, herramientas de Monitoreo y Mantención

Aplicaciones - Bases de datos, Juegos, Navegadores, etc.

Usuario 1 Usuario 2 Usuario N

Aplicaciones

Programas de Sistemas

Sistema Operativo

Hardware

Page 7: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicObservaciones

No existe una definición precisa de un S.O.

Los S.O. Existen porque existe la necesidad de resolver problemas usando sistemas computacionales

Tampoco existe una definición única sobre qué contiene y qué no contiene un S.O.

Una definición práctica es que un S.O. es el código qué siempre se ejecuta y acompaña la ejecución de las aplicaciones

Page 8: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Componentes del Sistema Operativo

Manejador de recursos - administra y aloja los recursos.

Programa de control - controla la ejecución de los programas de usuarios y las operaciones de los dispositivos de entrada/salida.

Kernel - el programa que corre en todo momento (todo lo demas es programa de aplicación).

Page 9: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicPor que necesitamos al Sistema

Operativo• Usuarios: prove interfaces de usuario,

interprete de comandos, estructura de directorios, programas de utilerias (compiladores, editores, filtros).

• Ambiente de programacion- prove un ambiente de alto nivel para manejo E/S, manejo de archivos, manejo de procesos.

• Eficiencia - remplaza al operador en la calendarizacion de jobs, almacenamiento archivos de E/S, manejo de concurrencia.

Page 10: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Evolución (1): Primeros Computadores, década 1940´s

Evolución Historica de los Sistemas Operativos

Page 11: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Evolución (2): década 1950´s.

Evolución Historica de los Sistemas Operativos

Page 12: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicSpooling

La introducción de la tecnología de discos entrega una solución: en vez de leer del disco y escribir a la impresora, la CPU interactúa directamente con el disco.

Si la CPU necesita leer una tarjeta, lee desde un área del disco. En forma similar cuando necesita imprimir una línea, la escribe en el disco

Esta forma de procesamiento se denomina Spooling (Simultaneous peripheral operation on-line)

Observaciones El Spooling traslapa la entrada y salida de un job con los

cálculos (CPU) de otro job. Tiene un efecto directo e importante en el desempeño ya que

mantienen a la CPU y los dispositivos trabajando a su máxima velocidad

Page 13: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

SPOOL: Operación On-line

Procesador Central

Canal1 Canal2 Canal3

Memoria CPU

Impresora

Impresora

Lector

Cinta

Disco

Evolución Historica de los Sistemas Operativos

Page 14: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Monitor Residente

Area de programa

de usuario

Intérprete del Lenguaje de control

MONITORRESIDENTE

Secuenciador de Jobs

Controladores deDispositivos

Tratamiento de Interrupciones

Límite

Evolución Historica de los Sistemas Operativos

Page 15: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Sistemas de Multiprogramación.

Monitor residente comienza a llamarse Sistema Operativo.

Asignación de tiempo de ejecución por ráfagas de CPU. Una ráfaga es un período de tiempo de uso de CPU y limitado por tiempos de espera.

Este debe decidir qué jobs hace avanzar, tratando de maximizar el rendimiento del computador. Esto se conoce como job scheduling.

Se introducen los primeros esquemas de administración de memoria con particiones y espacio de direcciones lógicos.

Ventajas: CPU se mantiene mayor tiempo ocupado.

Desventajas:

Ausencia de protección entre jobs (en primeras versiones).

Hardware y S.O. Son más complejos.

Ejemplos: IBM Systen/360, OS/370.

Evolución (3): década 1960_1970

Evolución Historica de los Sistemas Operativos

Page 16: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicSistemas Multiprogramados

El Spooling mantiene una estructura de datos con todos los jobs listos para ser ejecutados en un área de disco.

Esta estructura permite seleccionar cualquier job del conjunto. Con esta estructura es posible mejorar la utilización de la CPU.

La selección de un job para su ejecución de un conjunto Se denomina itineración de job

La itineración de jobs permite la mutiprogramación. La multiprogramación aumenta la utilización de la CPU al

organizar los jobs de manera tal que la CPU siempre tenga algún job que ejecutar.

Para esto se mantienen los jobs en memoria principal. El S.O. Selecciona un job, lo ejecuta y cuando el job debe esperar por E/S, se selecciona otro job

Page 17: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Multiprogramación con dos programas

running runningwait

running runningwait

running runningwaitrunning running

running runningwait

Ráfagade CPU

Monoprogramación

Evolución Historica de los Sistemas Operativos

Page 18: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Diagrama de Estados de un Proceso

Idle(Creación) Zombie

Running(Corriendo)

Ready(Listo)

Waiting(Esperando)

Dispached

Bloqued(Read, Write, etc.)

Wake-up (despierta)

Asigna Memoria, crea PCB, asigna identificación

Exit

fork()

Evolución Historica de los Sistemas Operativos

Page 19: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

PCB (Process Control Block) o Descriptor de Proceso

Registros CPU

PC

*nextPCB

Información administración

de memoria

Información administración

de E/S

En Linux, esta estructura de datos se denomina task_struct.

Evolución Historica de los Sistemas Operativos

Page 20: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Sistemas de Tiempo Compartido (Time Sharing). Los sistemas batch multiprogramados permiten usar recursos eficientemente, pero los usuarios no pueden interactuar con sus aplicaciones.El tiempo compartido (time sharing) o multitarea es una extensión de la multiprogramación. La CPU ejecuta múltiples jobs, pero la conmutación de un job a otro ocurre con una frecuencia tal que los usuarios piensan que interactúan con el programa mientras éste corre

Trabajo interactivo con el computador a través de terminales.

Nace el concepto de Proceso.

Asignación de tiempo de CPU por tajadas de tiempo.

Ya no se habla de tiempo de despacho de un job, sino que tiempo de respuesta.

Núcleos monolíticos. Todas las funciones y servicios del sistema operativo están dentro del

núcleo.

Espacio de direcciones virtuales para cada proceso, utilizando mecanismos de segmentación o

paginación.

Sistemas Operativos: Unix, VAX/VMS, AS/400.

Ventaja: Aumento en la productividad de los programadores.

Desventaja: El procesador es un cuello de botella.

Evolución (4): década 1970

Evolución Historica de los Sistemas Operativos

Page 21: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Diagrama de Estados de un Proceso (2)

Idle(Creación) Zombie

Running(Corriendo)

Ready(Listo)

Waiting(Esperando)

Dispached

Bloqued(Read, Write, etc.)

Wake-up (despierta)

Asigna Memoria, crea PCB, asigna identificación

Time-out(fin tajada o

quantum)

Exit

fork()

Evolución Historica de los Sistemas Operativos

Page 22: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Computadores Personales.

Fines de los años ´70.

Aparece el microprocesador.

Sistema Monousuario.

Sistemas Operativos: CP/M, MS-DOS, Macintosh,

OS/2, Windows.

Problema: Dificultad para compartir recursos.

Evolución (5)

Evolución Historica de los Sistemas Operativos

Page 23: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

1980’s. Redes

Evolución Historica de los Sistemas Operativos

Estaciones de Trabajo: (Sun, Vax, Silicon Graphics).

Redes de Area Local (Ethernet, Token Ring, FDDI, ATM), Redes de larga distancia (Arpanet).

Redes organizadas como clientes-servidores.

Servicios de S.O. Protocolos de comunicación, encripcion de datos, seguridad, consistencia en datos distribuidos

Page 24: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Sistemas Distribuidos - distribuyen el cómputo entre varios procesadores geográficamente dispersos.

Sistemas debilmente acoplados - cada procesador tiene su propia memoria local y el procesador se comunica con los demas procesadores mediante lineas de comunicación, buses de alta velocidad y lineas telefónicas.

Ventajas: Compartición de recursos Incremento en la velocidad de cómputo compartición de carga Confiabilidad Comunicación

1980’s. Sistemas Distribuidos

Evolución Historica de los Sistemas Operativos

Page 25: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

1980-1990`s. Sistemas Paralelos

Sistemas paralelos - sistemas de múltiples procesadores con mas de 1 procesador con comunicación entre ellos.

Sistema fuertemente acoplado - los procesadores comparten memoria y reloj; la comunicación usualmente se realiza mediante memoria compartida.

Ventajas: Incremento de throughput Economica Incremento en la confiabilidad

Evolución Historica de los Sistemas Operativos

Page 26: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Computo Paralelo (Teraflops).

PC’s poderosas (1.5 GigaHertz) , Computadoras Multimedia.

Redes de Comunicación de distancia mundial, con envio de imágenes, grandes cantidades de datos, audio y video.

World Wide Web.

Notebooks utilizando tecnologias de comunicación inalambrica: Computo Mobil.

Computo Embebido y Robotica.

Evolución Historica de los Sistemas Operativos

1990`s-2000.

Page 27: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

1990-2000`s-Sistemas de Tiempo Real

A menudo utilizados como dispositivo de control en aplicaciones dedicadas, como control de experimentos científicos, sistemas de procesamiento de imagenes médicas, sistemas de control industrial, etc...

Exige complimiento de restricciones de tiempos.

Sistemas de tiempo real criticos. Cumplimiento forzoso de plazos de respuesta.Predecibilidad y analisis de cumplimineto de plazos de respuesta

Sistemas de tiempo real acríticos. Exigencia “suave” de plazos de respuesta.Atención lo mas rapido posible a eventos, en promedio.

Ejemplos:– Sistemas de Control Industrial– Monitoreo médico– Control de encendido de motores– Sistemas de defensa• El procesamiento se debe hacer con restricciones de tiempo. En caso contrario se producen fallas

Evolución Historica de los Sistemas Operativos

Page 28: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Funciones del sistema operativo

• Gestor de recursos (cpu, memoria, ...) – Asignación y recuperación de recursos – Protección de los usuarios – Contabilidad/monitorización

• Máquina extendida (servicios) – Ejecución de programas (procesos) – Órdenes de E/S – Operaciones sobre archivos – Detección y tratamiento de errores

• Interfaz de usuario – Shell

Page 29: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicNiveles del sistema operativo

La capa de servicios o llamadas al sistema ofrece a los programas unos servicios en forma de una interfaz de programación o API (application programming interface). Desde el punto de vista de los programas, esta capa extiende la funcionalidad de la computadora, por lo que se suele decir que el sistema operativo ofrece una máquina virtual extendida a los programas.La capa de intérprete de comandos o shell suministra una interfaz a través de la cual el usuario puede dialogar de forma interactiva con la computadora. El shell recibe los comandos u órdenes del usuario, los interpreta y, si puede, los ejecuta. Dado que el shell suele ejecutar en nivel de usuario

núcleo (kernel) es la que gestiona los recursos hardware del sistema y la que suministra otra la funcionalidad básica del sistema operativo. Esta capa ha de ejecutar en modo núcleo, mientras que las otras pueden ejecutar en niveles menos permisivos.

Page 30: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Componentes y Estructura del SO

Gestión de procesos. Encargada de la creación, planificación y destrucción de procesos.Gestión de memoria. Componente encargada de saber qué partes de memoria están libres y cuáles ocupadas, así como de la asignación y liberación de memoria según la necesiten los procesos.Gestión de la E/S. Se ocupa de facilitar el manejo de los dispositivos periféricos. Gestión de archivos y directorios. Se encarga del manejo de archivos y directorios y de la administración del almacenamiento secundario.Comunicación y sincronización en los procesos. Encargada de ofrecer mecanismos los procesos puedan comunicase y sincronizarse.Seguridad y protección. Este componente debe encargarse de garantizar la seguridad de los usuarios y de definir lo que pueden hacer cada uno de ellos con los recursos del sistema.

Page 31: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicClasificación de los Sistemas

Operativos Por su Estructura Interna:

Estructura Modular (Monolítica): el SO se escribe como una colección de procedimientos.

Estructura Microkernel: las funciones principales son controladas por el núcleo (kernel) mientras que la interfaz del usuario es controlada por el entorno shell.

Page 32: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicClasificación de los Sistemas

Operativos Por la forma en que ofrecen sus servicios:

SO por Lotes: Los trabajos se reunían por grupos o lotes. Cuando el trabajo estaba en ejecución, este tenia el control absoluto de la maquina. Al terminar cada trabajo, el control era devuelto al SO.

SO de Tiempo Compartido: Permite que varios programas de usuario se encuentren al mismo tiempo en la memoria principal, y el procesador es alternado rápidamente de un trabajo a otro.

SO de Tiempo Real: Procesan las instrucciones recibidas al instante, y una vez que han sido procesadas muestra el resultado. Su característica principal es dar respuestas inmediatas. Generalmente se utilizan en procesos industriales o de control.

Page 33: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicClasificación de los Sistemas

Operativos Por la forma en que ofrecen sus servicios:

SO de Red: Son aquellos sistemas que mantienen dos o mas computadoras unidades a través de algún medio de comunicación (físico o no), con el fin de poder compartir los distintos recursos y la información del sistema

SO Distribuidos: Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software.

Proporcionan abstracción de maquina virtual a los usuarios. Permiten distribuir trabajos, tareas o procesos entre un conjunto de procesadores, el cual pueden encontrarse en un equipo o en distintos equipos.

Page 34: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicClasificación de los Sistemas

Operativos Sistemas Operativos por Servicios:

Por el numero de Usuarios: Monousuarios: Sistemas que atienden a una única tarea de

usuario. Multiusuarios: Se emplean en redes y cumplen simultáneamente

las necesidades de dos o mas usuarios, que comparten unos mismos recursos

Por el numero de Tareas: Monotareas: Solo pueden manejar un proceso en cada momento,

es decir ejecutan las tareas una a una. Multitareas: Pueden procesar varias tareas al mismo tiempo.

Por el Numero de Procesadores: Uniproceso: Se mantiene un solo procesador Multiproceso: Pueden manejar varios procesadores a la vez,

compartiendo la misma memoria y reloj• Simétricos: Una CPU principal retiene el control global de la

computadora, así como la de los procesadores.• Asimétricos : No existe una CPU controladora única. Cada

procesador tiene asignado una tarea especifica.

Page 35: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

En función de esta estructura se pueden agrupar los sistemas operativos en dos grandes grupos: sistemas operativos monolíticos y sistemas operativos estructurados.

Sistemas operativos monolíticos Un sistema operativo de este tipo no tiene una estructura clara y bien

definida. Todos sus componentes se encuentran integrados en un único programa (el sistema operativo) que ejecuta en un único espacio de direcciones. En este tipo de sistemas todas las funciones que ofrece el sistema operativo se ejecuta en un modo núcleo.

Estos sistemas operativos han surgido, normalmente, de sistemas operativos sencillos y pequeños a los que se les ha ido añadiendo un número mayor de funcionalidades. Esto les ha hecho evolucionar y crece hasta convertirlos en programas grandes y complejos formados por muchas funciones situadas todas ellas en un mismo nivel. Ejemplos claros de este tipo de sistemas son MS-DOS y UNIX

El problema que plantean este tipo de sistemas radica en lo complicado que es modificar el sistema operativo para añadir nuevas funcionalidades y servicios. En efecto, añadir una nueva característica al sistema operativo implica la modificación de un gran programa, compuesto por miles de líneas de código fuente y funciones, cada una de las cuales puede invocar a otras cuando así lo requiera.

Page 36: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Estructura simple Sistemas monousuarios con funcionalidad básica

• (e.g. computadores personales antiguos) No existen protecciones ni multiprogramación Cualquier falla de programación hace caer al sistema Actividad asincrónica se maneja a través derutinas activadas por

interrupción (difícil programar) MS-DOS – escrito para proveer la mayor funcionalidad en el menor

espacio No tiene módulos Aunque MS-DOS tiene algo de estructura, sus interfaces y niveles de

funcionalidad no están bien separados

Page 37: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

UNIX – limitado por funcionalidad del hardware, el SO UNIX original tenía una estructura limitada, con dos partes separadas Programas del sistema El kernel

• Todo abajo de la interfaz de llamadas al sistema y arriba del hardware

• Provee: sistema de archivos, CPU scheduling, manejo de memoria y otras operaciones del SO. Un gran número de funciones para una capa.

Page 38: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Sistemas operativos estructurados Cuando se quiere dotar de estructura a un sistema operativo,

normalmente se recurre a dos tipos de soluciones: sistemas por capas y sistemas cliente- Servidor.

Sistemas por capas• En un sistema por capas, el sistema operativo se organiza como

una jerarquía de capas, donde cada capa ofrece una interfaz clara y bien definida a la capa superior y solamente utiliza los servicios que le ofrece la capa inferior.

• La principal ventaja que ofrece este tipo de estructuras es la modularidad y la ocultación de la información. Una capa no necesita conocer como se ha implementado la capa sobre la que se construye, únicamente necesita conocer la interfaz que ofrece. Esto facilita enormemente la depuración y verificación del sistema, puesto que las capas se pueden ir construyendo y depurando por separado.

Page 39: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

El operador5

Programas del usuario

Control de entrada/salida

4

3

2

1 Administración de la memoria y el disco

Asignación procesador y multiprogramación0

Comunicación operador-proceso

Sistemas Operativo THE

OS/2

Page 40: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Modelo cliente-servidor o micronúcleo• En este tipo de modelo, el enfoque consiste en implementar

la mayor parte de los servicios y funciones del sistema operativo en procesos de usuario, dejando solo una pequeña parte del sistema operativo ejecutando en modo núcleo. A esta parte se le denomina micronúcleo y a los procesos que ejecutan el resto de funciones se les denomina servidores.

• No hay una definición clara de las funciones que debe llevar a cabo un micronúcleo. La mayoría incluyen la gestión de interrupciones, gestión básica de procesos y de memoria y servicios básicos de comunicación entre procesos. Para solicitar un servicio en este tipo de sistemas, como por ejemplo crear un proceso, el proceso de usuario (proceso denominado cliente) solicita el servicio al servidor del sistema operativo correspondiente, en este caso al servidor de procesos. A su vez, el proceso servidor puede requerir los servicios de otros servidores, como es el caso del servidor de memoria. En este caso, el servidor de procesos se convierte en cliente del servidor de memoria.

Page 41: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Modelo cliente-servidor o micronúcleo continuacion… Beneficios:

Más fácil de extender un microkernel Más fácil portar el SO a otras arquitecturas Más confiable (menos código se ejecuta en modo kernel) Más seguro

Problemas: Sobrecarga de comunicación entre los espacios de usuario y

kernel

Ejemplos: windows NT, mac OS

Page 42: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Windows NT

Estructura de Mac OS X

Page 43: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Page 44: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

http://www.makelinux.net/kernel_map

Page 45: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Módulos La mayoría de los SO modernos implementan módulos

de kernel• Enfoque orientado a objetos• Cada componente base está separado• Cada uno habla con los otros a través de interfaces

comunes• Cada uno puede cargarse (al kernel) conforme se

necesita En general, similar a las capas, pero más flexible

Page 46: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Enfoque modular en Solaris

Page 47: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Máquinas virtuales Una máquina virtual lleva el enfoque de capas a su conclusión

lógica. Trata el hardware y el kernel del SO como si fueran hardware ambos

Una máquina virtual ofrece una interfaz idéntica para cualquier hardware que esté abajo

El sistema operativo crea la ilusión de múltiples procesos, cada uno ejecutando en su propio procesador con su propia memoria (virtual)

Los recursos de la computadora física se comparten para crear las máquinas virtuales

• CPU scheduling produce la ilusión de que los usuarios tienen su propio procesador

• Colas (spooling) y el sistema de archivos pueden ofrecer lectores de tarjetas e impresoras virtuales

• Una terminal de usuario en un sistema de tiempo compartido, sirve como la máquina virtual de la consola del operador

Page 48: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Máquinas virtuales cont...

El concepto de máquinas virtuales provee protección completa de los recursos del sistema, ya que cada máquina virtual está aislada de las demás. Sin embargo, por el aislamiento no pueden compartir recursos directamente.

Una máquina virtual es un excelente vehículo para hacer investigación en SO. El desarrollo se lleva a cabo en la máquina virtual, sin afectar la operación normal del sistema.

El concepto de máquina virtual es difícil de implementar debido al gran esfuerzo de proveer un duplicado exacto de la máquina.

Page 49: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Ejemplos de maquinas Virtuales

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.

Page 50: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Ejemplo Maquina Virtual

Máquina no virtual Máquina virtual

Page 51: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Arquitectura de VMware

Page 52: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

La máquina virtual Java

Page 53: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Portabilidad de Java en varias plataformas

Page 54: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Ambiente de desarrollo Java

Page 55: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

Sistemas Operativos basados en JAVA JavaOS: proyecto abandonado por SUN

(reemplavado por las API de JME). Jnode.– Máquina Virtual y Sistema

Operativo http://www.jnode.org/

Jx.– Kernel mas AWT http://www4.informatik.uni-erlangen.de/Projects/JX

/

Page 56: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

jnode

Page 57: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

JX

Page 58: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Estructura del sistema operativo

El sistema operativo JX

Page 59: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Núcleo del sistema operativo

Proporciona la funcionalidad básica del SO

Es la parte más dependiente del hw de todo el SO

Suele permanecer en el almacenamiento primario porque su código se ejecuta muy frecuentemente

proporciona una serie de servicios a las capas superiores del sistema.

|NUCLEO

Proceso S.O.

Procesos usuario

Hardware

Page 60: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Núcleo del sistema operativo

Funciones básicas del núcleo Proporcionar el entorno adecuado para

la existencia de procesos• Tratamiento de interrupciones• Conmutación del procesador entre procesos

(soporte al diagrama de estados)• Mecanismos básicos de comunicación y

sincronización entre procesos• Carga inicial y activación de la

configuración del sistema

Page 61: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Núcleo del sistema operativo

Tratamiento de interrupciones: El núcleo transforma las interrupciones en

eventos de más alto nivel (p. ej. mensajes) El núcleo determina qué proceso espera

una interrupción y el envía un mensaje Cuando el hardware detecta una

interrupción, el control se transfiere a este módulo,

el cual analiza el carácter de la interrupción y toma las acciones apropiadas:

• Transferir el control a otro módulo del S. O.• Iniciar otro programa• Continuar la ejecución del programa

interrumpido

Page 62: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Núcleo del sistema operativo

Conmutación de CPU entre procesos Los procesos de usuario pasan por varios estados

durante su tiempo de vida en el sistema El núcleo proporciona los mecanismos de

conmutación de la CPU entre procesos El núcleo transfiere el control al programa que el

planificador ha determinado para que sea el próximo en ejecutarse.

La comunicación entre programas se logra manteniendo una cola de mensajes en espera para cada uno de los programas activos.

El núcleo recibe los mensajes y los va almacenando en la cola apropiada al destino en cuestión, para distribuirlos cuando el programa destino se active.

Page 63: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Núcleo del sistema operativo

Page 64: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Núcleo del sistema operativo

Comunicación y sincronización entre procesos El núcleo proporciona mecanismos para

que los procesos puedan intercambiar información y sincronizarse

Mecanismos:• Señales• Semáforos• Mensajes• RPCs (remote procedure calls)

Page 65: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicArranque de la Computadora: ¿Cómo

cargar el núcleo?

Fase Operación

Iniciar ROM Test del hardware

Carga de la rutina de bootstraping en memoria.

Rutina de Boostraping (booteo)

Carga en memoria de componentes del SO.

Inicialización del Sistema Operativo

Test de integridad del sistema de archivos.

Crear estructuras de datos internas.

Arranque de procesos demonios del sistema (swapper, init, pager, etc.)

Funcionamiento Aceptar conexiones de usuarios locales y/o remotos.

Page 66: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicArranque de la Computadora: ¿Cómo

cargar el núcleo? El RESET carga valores predefinidos en los registros Contador de Programa <- dirección de arranque del cargador

ROM Se ejecuta el cargador ROM del sistema

Test del sistema para detectar su caracteristicas (ej. mem. Ppal. Disponible o los periféricos instalados)

Trae a memoria el boot del SO

En el caso de la computadora de tipo PC la ROM contiene, además del programa iniciador, software de E/S denominado (BIOS)

Page 67: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicArranque de la Computadora: ¿Cómo

cargar el núcleo?

El SO está almacenado en el disco

Page 68: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicArranque de la Computadora: ¿Cómo

cargar el núcleo?

El cargador ROM carga el sector de boot del SO y le da control

El boot del SO carga el SO residente y da control al programa de arranque del SO, que: Comprueba el hardware Comprueba el sistema deArchivos Establece las tablas del SO Crea procesos (según el tipo de SO)

• Proceso INIT• Procesos o tareas del sistema (demonios)• Procesos de login (uno por terminal)

Tras la autenticación, el proceso login se convierte en shell

Page 69: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepicAdministrar permisos

Cada contenedor y objeto de la red tiene asignada información de control de acceso. Esta información se denomina descriptor de seguridad y controla el tipo de acceso permitido a usuarios y grupos. Los permisos se definen en el descriptor de seguridad de un objeto. Se asocian o asignan a usuarios y grupos específicos.

Cuando se es miembro de un grupo de seguridad que está asociado a un objeto, se tiene cierta capacidad para administrar los permisos de ese objeto. En el caso de los objetos que se poseen, el control es total. Puede utilizar distintos métodos, como Servicios de dominio de Active Directory (AD DS), Directiva de grupo o listas de control de acceso, para administrar distintos tipos de objetos

Page 70: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Permisos y descriptores de seguridad

Cada contenedor y objeto de la red tiene información de control de acceso adjunta. Esta información se denomina descriptor de seguridad y controla el tipo de acceso permitido a usuarios y grupos. El descriptor de seguridad se crea automáticamente junto con el contenedor u objeto que se crea. Un ejemplo típico de objeto con un descriptor de seguridad es un archivo.

Los permisos se definen en el descriptor de seguridad de un objeto. Se asocian o asignan a usuarios y grupos específicos. Por ejemplo, para el archivo Temp.dat, el grupo de cuentas predefinidas de administrador podría tener asignados permisos para leer, escribir y eliminar, mientras que el grupo de operadores de copia de seguridad sólo permisos para leer y escribir.

Cada asignación de permisos a un usuario o grupo se representa en el sistema como una entrada de control de acceso (ACE). Al conjunto completo de entradas de permiso de un descriptor de seguridad se le denomina conjunto de permisos o lista de control de acceso (ACL). De esta forma, para un archivo denominado Temp.dat, el conjunto de permisos incluye dos entradas de permiso: una para el grupo de cuentas predefinidas de administrador y otra para el grupo de operadores de copia de seguridad.

Page 71: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Permisos de archivos y carpetas

En la siguiente tabla se muestran las limitaciones de acceso para cada conjunto de permisos NTFS especiales.

Permisos especiales

Control total Modificar Leer y ejecutar Mostrar el

contenido de la carpeta

Lectura Escritura

Recorrer carpeta /

Ejecutar archivox x x x

Listar carpeta / Leer datos

x x x x x

Atributos de lectura

x x x x x

Atributos extendidos de

lecturax x x x x

Crear archivos / Escribir datos

x x x

Crear carpetas / Anexar datos

x x x

Atributos de escritura

x x x

Atributos extendidos de

escriturax x x

Eliminar subcarpetas y

archivosx

Eliminar x xPermisos de

lecturax x x x x x

Cambiar permisos

x

Tomar posesión xSincronizar x x x x x x

Page 72: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Page 73: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Page 74: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Page 75: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

InstitutoTecnológicoTepic

Page 76: Unidad Uno: Introducción a los Sistemas Operativos Ing. Efraín Padilla Valera Sistemas Operativos Departamento de Sistemas y Computaci ó n.

www.themegallery.com