• No se han encontrado resultados

Estructura del Sistema Operativo. Módulo 2. Estructuras de Sistemas Operativos

N/A
N/A
Protected

Academic year: 2021

Share "Estructura del Sistema Operativo. Módulo 2. Estructuras de Sistemas Operativos"

Copied!
28
0
0

Texto completo

(1)

Módulo 2

Estructura del Sistema

Operativo

Estructuras de Sistemas Operativos

Servicios de Sistemas operativos

Interfaz de Usuario del Sistema Operativo

Llamadas a Sistema

Tipos de Llamadas a Sistema

Programas de Sistemas

Diseño e Implementación de un Sistema Operativo

Estructura de un Sistema Operativo

Máquinas Virtuales

(2)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Objectivos

Describir los servicio de un sistema operativo que se

ofrecen a usuarios, procesos y otros sistemas.

Discutir las distintas formas de estructurar un sistema

operativo.

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Servicios del Sistema Operativo

Un conjunto de servicios del SO proveen funciones

que son útiles al usuario:

Interfaz de Usuario

Ejecución de Programas

Operaciones de E/S

Manipulación del Sistema de Archivos

Comunicaciones

(3)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Una Visión de los Servicios de un Sistema Operativo

Servicios del Sistema Operativo (Cont)

Otro conjunto de funciones del SO existen para asegurar

una operación eficiente del propio sistema vía recursos

compartidos

.

Alocación de Recursos

Contabilidad

(4)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Interfaz de Usuario del Sistema Operativo - CLI

La interfaz de líneas de comando (Command Line Interface - CLI) o

intérprete de comando

permite entrar comandos en forma

directa, pueden ser por línea de comandos o gráficas:

Algunas veces implementadas en el kernel, otras como

programas de sistema

A veces múltiples variantes –

shells

En primer lugar espera un comando del usuario y luego

lo ejecuta

Algunas veces están embebidos, otras son solo

nombres de programas

»

En este último caso, agregar nuevas características

no requiere modificaciones en la shell.

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

(5)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Interfaz de Usuario del Sistema Operativo - GUI

Solaris – entorno CDE (Common Desktop Environment)

Interfaz de Usuario del Sistema Operativo - GUI

(6)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Interfaz de Usuario del Sistema Operativo - Touch

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Llamadas al Sistema

Son la interfaz de programación a los servicios provistos por el

SO

Típicamente escritas en lenguajes de alto nivel (C o C++)

Mayoritariamente accedidas por programas vía

Application

Program Interface (API

) más que por el uso llamadas a

sistema directas

Las tres API más comunes son Win32 para Windows, POSIX

API para sistemas POSIX (incluyendo virtualmente todas las

versiones de UNIX, Linux, y Mac OS X), y Java API para la

máquina virtual Java (JVM)

(7)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Relación API – Llamada a Sistema del SO

Pasaje de Parámetros en Llamadas a Sistema

Frecuentemente es requerida más información que simplemente

identificar la llamada a sistema deseada.

El tipo exacto y la cantidad de información varía de acuerdo al SO la

llamada

Se usan tres métodos para pasar parámetros al SO

El más simple: pasar los parámetros en

registros

En algunos casos, puede haber más parámetros que registros

Parámetros almacenados en un

bloque,

o tabla, en memoria, y la

dirección del bloque pasada como parámetro en un registro.

Es así en Linux y Solaris

Parámetros ubicados , o

pushed,

en un

stack

por el programa y

popped

del stack por el SO.

Lo métodos por bloque y stack no limitan el número de parámetros a

ser pasados

(8)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Parámetros Pasados vía Tabla

X: parámetros

X

load @X

código para

system call

13

registro

se usan los

parámetros

desde la

tabla X

Sistema operativo

Programa de

usuario

system call 13

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Tipos Llamadas a Sistema

Control de procesos

create process, terminate process

end, abort

load, execute

get process attributes, set process attributes

wait for time

wait event, signal event

(9)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Tipos Llamadas a Sistema

Administración de archivos

create file, delete file

open, close file

read, write, reposition

get and set file attributes

Administración de dispositivos

request device, release device

read, write, reposition

Tipos Llamadas a Sistema

Mantenimiento de Información

get time or date, set time or date

get system data, set system data

Comunicaciones

create, delete communication connection

send, receive messages

create and gain access to memory regions (segmentos de memoria)

(10)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Ejemplos de Llamadas a Sistema

Sistemas Operativos – Estructura de Sistemas Operativos

KMC-JRA © 2014

20

Ejecución MS-DOS

Inicio Programa ejecutando

memoria

libre

memoria

libre

kernel

proceso

kernel

intérprete

de comandos

intérprete

de

comandos

(11)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Múltiples Programas Ejecutando en FreeBSD

proceso D

intérprete

proceso C

memoria libre

proceso B

kernel

Programas de Sistema

Los programas de sistema proveen un medio conveniente para el

desarrollo de programas y ejecución. Pueden ser divididos en:

Manipulación de archivos

Información de estado

Modificación de archivos

Soporte de lenguajes de programación

Carga de programas y ejecución

Comunicaciones

Programas de aplicación

La visión que tienen la mayoría de los usuarios del sistema operativo está

dada por los programas de sistema y no por las llamadas a sistema

(system calls).

(12)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Diseño e Implementación de un Sistema Operativo

El diseño e implementación de SO no está estructurado pero

hay algunos enfoques han resultado exitosos

La estructura interna de los diferentes SOs puede variar

ampliamente

Se comienza por definir los objetivos y las especificaciones

Afectado por la elección del hardware, tipo de sistema

Objetivos de los

Usuarios

y los objetivos del

Sistema

Objetivos de los Usuarios

– El SO debe ser conveniente

para su uso, fácil de aprender, confiable, seguro y rápido

Objetivos del Sistema

– El SO debería ser fácil de diseñar,

implementar y mantener, también flexible, confiable, libre

de errores y eficiente

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Diseño e Implementación de un Sistema Operativo

Importante principio de separación

Política:

¿Qué deberá hacerse?

Mecanismo:

¿Cómo hacerlo?

Los mecanismos determinan como hacer algo, las políticias

deciden que debe hacerse

La separación de política de mecanismo es un principio muy

importante, permite máxima flexibilidad si las decisiones

políticas son cambiadas más tarde

(13)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Estructura Simple

MS-DOS – escrito para proveer máxima funcionalidad en

el menor espacio

No está dividido en módulos

Aunque

MS-DOS

tiene

cierta

estructura,

sus

interfaces y niveles de functionalidad no están bien

separados

Capas de la Estructura MS-DOS

programa de

aplicación

programa del sistema

residente

drivers de dispositivos en ROM

BIOS

drivers de dispositivos en

MS-DOS

(14)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

UNIX

UNIX – está limitado por la funcionalidad del hardware, el

sistema operativo UNIX original tenía una estructura limitada.

El SO UNIX consiste de dos partes separables.

Programas de sistema

El kernel

Consiste de todo lo que esta debajo de la interfaz de los

system calls y encima del hardware

Contiene el sistema de archivos, la planificación de CPU,

manejo de memoria, y otras funciones del sistema

operativo; un gran número de funciones en un solo

nivel.

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Estructura de UNIX

signals

manejo terminal

sistema I/O caracter

drivers terminal

sistema de archivos

swapping

sistema I/O bloque

drivers disco y cinta

planificación CPU

reemplazo de páginas

demanda de páginas

memoria virtual

interfaz de system-call al kernel

interfaz kernel al hardware

controladores terminal

terminales

controladores disp

discos y cintas

controladores memoria

memoria física

shells y comandos

compiladores e intérpretes

librerías de sistema

USUARIOS

(15)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Enfoque por Capas

El sistema operativo está dividido en un número de capas

(niveles), cada una construída sobre el tope de otra. La

capa inferior (nivel 0), es el hardware; la mas alta (capa N)

es la interfaz de usuario.

En forma modular, las capas son seleccionadas de manera

que cada una usa funciones (operaciones) y servicios de las

capas inferiores.

(16)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Estructura de Sistema Microkernel

Mueve tanto como se pueda al espacio de

usuario

Las comunicaciones tienen lugar entre módulos de usuarios por

medio de pasajes de mensajes

Beneficios:

Más fácil de extender

Más fácil de portar el SO a nuevas arquitecturas

Mas confiable (menos código corre en el modo kernel)

Más seguro

Detrimentos:

Sobrecarga de rendimiento en la comunicación del espacio de

usuario al espacio de kernel

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Estructura de Sistema Microkernel

Application

Program

File

System

Device

Driver

Interprocess

Communication

memory

managment

CPU

scheduling

messages messages

microkernel

hardware

user

mode

kernel

mode

(17)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Sistema Microkernel – Minix 3

Sistemas Modulados

Los más modernos SOs implementan el kernel en módulos

Usa un enfoque orientado a objetos

Cada componente del núcleo está separado

Los protocolos de comunicación entre ellos son sobre interfaces

conocidas

Cada uno es cargado en la medida que sea necesitado dentro

del kernel

(18)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Sistemas Modulados

Solaris

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Sistemas Híbridos

Los sistemas operativos modernos no presentan un modelo puro.

Los modelos híbridos combinan multiples aproximaciones para

alcanzar rendimento, seguridad, usabilidad.

Kernels de Linux y Solaris kernels: en el espacio de

direcciones del kernel presentan características monolíticas,

además

modulación

para

la

carga

dinámica

de

funcionalidades.

Windows en su mayoría monolítico, además microkernel

para diferentes subsistemas.

Apple Mac OS X híbrido, por capas,

Aqua

UI más el ambiente

de programación

Cocoa.

Kernel formado por un microkernel Mach y partes de BSD

Unix, más un kit de E/S y la carga dinámica de módulos

(llamados extensiones del kernel)

(19)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Sistemas Híbridos

graphical user interface

Aqua

application environments and services

kernel environment

Java

Cocoa

Quicktime

BSD

Mach

I/O kit

kernel extensions

BSD

Estructura de Mac OS X

Sistemas Híbridos - iOS

SO de Apple móvil para

iPhone

,

iPad

Estructurado sobre Mac OS X, agregando

funcionalidades para móviles.

No ejecuta directamente aplicaciones Mac

OS.

Cocoa Touch Objective-C API para

desarrollo de aplicaciones.

Media services capa para gráficos, audio y

video.

Core services prove cloud computing, bases

de datos.

Core operating system, basado en el kernel

del Mac OS X.

(20)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Sistemas Híbridos - Android

Desarrollado para smartphones y tablets por Open Handset

Alliance (mayoría Google).

Similar la pila al IOS.

Basado sobre un kernel Linux kernel con modificaciones

Provee soporte para procesos, memoria, manejadores de

dispositivos. Agrega administración de la energía

Runtime incluye librería para el conjunto del núcleo y la máquina

virtual Dalvik.

Librerías incluyen frameworks para web browser (webkit), base

de datos (SQLite), multimedia, pequeño libc.

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

(21)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Boot del Sistema

El SO debe poner disponible al hardware, entonces el

hardware puede iniciarlo

Pequeñas piezas de código –

bootstrap loader

,

localiza el kernel, lo carga en memoria, y lo pone en

marcha

A veces es un proceso en dos pasos donde el

boot

block

en una locación fija carga el bootstrap loader

Cuando se le da energía y se inicializa el sistema,

comienza la ejecución a partir de una dirección fija

de memoria

Firmware es usado para contener el código inicial

de boot

Virtualización

¿Qué es virtual?

Dícese de lo que tiene virtud para producir un efecto, aunque no lo

produce de presente. (diccionario).

Que no tiene existencia real sino aparente (diccionario).

¿Porqué virtualizar?

Reduce el costo e incrementa la eficiencia de los existentes

recursos de hardware

(22)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Virtualización

Lograr más en menos tiempo

Ejecute varios sistemas operativos en una sola PC

Reduzca el número de PCs físicos que se requieren

Facilitar la migración de aplicaciones

Agilizar la implementación

Pruebe nuevo software y sistemas operativos antes de su

implementación

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Virtualización

Acelerar el desarrollo de aplicaciones

Incremente el aseguramiento de calidad al probar en

diferentes

sistemas

operativos

utilizando

máquinas

virtuales

Reduzca el tiempo para salir al mercado con menos

reconfiguración

(23)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Máquinas Virtuales

Una

máquina virtual

lleva la propuesta por capas a su conclusión

lógica. Trata el hardware y el kernel del sistema operativo como

si fuera todo hardware.

Una máquina virtual provee una interfaz

idéntica

al hardware

primitivo subyacente.

El sistema operativo crea la ilusión de múltiples procesos, cada

uno ejecutando en su propio procesador con su propia memoria

(virtual).

Cada

invitado

es provisto con una copia (virtual) de la

computadora.

Historia y Beneficios de las Máquinas Virtuales

Aparecieron comercialmente en las mainframes de IBM en

1972

Fundamentalmente, múltiples ambientes de ejecución

(diferentes Sos) pueden compartir el mismo hardware

Están protegidos uno de otro

Puede permitirse, en forma controlada, compartir archivos

Conmuta uno con otro sistemas físicos vía red

Util para desarrollo, testing

“Open Virtual Machine Format”, un formato standard de

máquinas virtuales, permite a una VM correr dentro de

diferentes plataformas (host) de máquinas virtuales

(24)

Sistemas Operativos – Estructura de Sistemas Operativos

KMC-JRA © 2014

47

Máquinas Virtuales

Máquina no virtual

Máquina virtual

procesos

procesos

procesos

procesos

kernel

kernel

kernel

kernel

hardware

implementación de la

máquina virtual

hardware

Interfaz de

programación

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

(25)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Máquinas Virtuales

Ambiente del

invitado

Ambiente

host

Hardware virtualizado

Aplicaciones del invitado

Sistema operativo del invitado

Controladores del invitado

Sistema operativo host

Controladores del host

Hardware del host

(26)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Máquinas Virtuales

Características

Misma arquitectura distintos Sistemas Operativos

Diferentes arquitecturas.

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Máquinas Virtuales

Clasificación

Tipo 1 – Hypervisors ejecutan directamente sobre el hardware de la

máquina.

Tipo 2 – Hypervisors ejecutan sobre el sistema operativo host que

(27)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Máquinas Virtuales

Tipo 1

Tipo 2

Paravirtualización

Una técnica en la cual el Sistema operativo invitado es

modificado para trabajar en cooperación con el VMM

(Virtual

machine

manager)

para

optimizar

el

rendimiento.

Los invitados deben ser modificados para correr en un

hardware paravirtualizado.

Ventaja – Alcanzar mayor eficiencia en el uso de los

recursos y una capa de virtualización de menor

tamaño.

(28)

Sistemas Operativos – Estructura de Sistemas Operativos KMC-JRA © 2014

Máquinas Virtuales

VMWare

VMWare Workstation

VMWare Server

Virtual Box

Java Virtual Machine (JVM)

Virtual PC

Bochs

Xen

KVM

Módulo 2

Referencias

Documento similar

Por otro lado, en la actualidad existe la posibilidad de crear aplicaciones software para dispositivos móviles inteligentes que funcionan gracias a sistemas

• La elaboración del marco teórico sobre el proceso de configuración de red en sistemas operativos GNU/Linux, así como el estudio de herramientas informáticas

Este módulo profesional contiene la formación nece- saria para desempeñar las funciones de instalación y mantenimiento de sistemas operativos en red.. La gestión de los

Para entonces será fundamental que tanto empresas como consumidores hayan migrado ya a sistemas Windows 7 o Windows 8: nues tros sistemas operativos modernos se han creado

1991: GNU de la FSF + kérnel linux sobre x86 Sistema tipo UNIX (compatible POSIX) Software libre. Distribuido inicialmente entre

Los  Sistemas  en  Tiempo  Real  (STR)  generalmente  se  implantan  en  computadoras  digitales  con 

Este grupo no solo ha desarrollado sistemas para Linux, sino que además para casi todos los sistemas operativos existentes y que son las más utilizadas, como: Solaris,

Como, por ejemplo, información de planificación y estado (estado del proceso, su prioridad, información de planificación, suceso), apuntadores (punteros) a