CAPÍTULO I: Introducción a los Sistemas Operativos Realizado por:  Ing. Samanta Cueva Docentes:  Ing. Carlos Córdova Ing. ...
CAPÍTULO I: Introducción a los Sistemas Operativos 1.1 Objetivos y funciones de los SO 1.2   Evolución de los SO 1.3 Princ...
Introducción a los Sistemas Operativos <ul><li>Antes de revisar ¿Qué son los Sistemas Operativos? partamos  de: ¿Cuáles so...
1. SISTEMA OPERATIVO <ul><li>Es un programa que actúa como intermediario entre el usuario y el hardware de una computadora...
1. SISTEMA OPERATIVO <ul><li>Al SO se lo puede ver como: </li></ul><ul><li>Asignador de recursos:  El sistema computaciona...
1.1 OBJETIVOS DEL SO 1. LA  COMODIDAD  DEL  USUARIO  (interacción  del  usuario con los recursos en un alto grado de abstr...
SERVICIOS DEL SO <ul><li>Controlar la ejecución de procesos permitiendo su creación, terminación o suspensión y comunicaci...
1.2 EVOLUCIÓN SISTEMA OPERATIVO Los sistemas operativos y la arquitectura de los computadores han influido mucho uno sobre...
Präsentation Edopena    Sistemas Operativos Generación 0 (hasta 1945)‏ <ul><li>Ábacos </li></ul><ul><li>Calculadoras mecán...
Primera generación (1940-1955)‏ <ul><li>Se utilizan  tubos al vacío </li></ul><ul><li>Eran enormes (20.000 tubos) y lentas...
Segunda generación (1955-1965)‏ <ul><li>Se introducen los  transistores . </li></ul><ul><li>Existe distinción entre diseña...
Tercera generación (1965-1980)‏ <ul><li>Se introducen los  circuitos integrados , lo cual es una gran ventaja en el precio...
Apple I (1976)‏ Apple II (1978)
Cuarta generación (desde 1980)‏ <ul><li>Usaban LSI (large scale integration). </li></ul><ul><li>Intel 8080 (8 bits) -> IBM...
1.2 EVOLUCIÓN <ul><li>Para profundizar el tema de la evolución de los SO revisemos los siguientes tipos de sistemas: </li>...
<ul><li>Sistemas por lotes sencillos. </li></ul><ul><li>El SO por lotes sencillo lee un flujo de trabajos individuales, ca...
<ul><li>El spooling da origen a una importante estructura de datos: la reserva de trabajos. Lo cual implica la planificaci...
<ul><li>Sistemas de Tiempo compartido (Multitarea) </li></ul><ul><li>Time sharing es una consecuencia lógica de la multipr...
<ul><li>Sistemas monousuario   </li></ul><ul><li>Las PC’s (personal computers) son computadoras dedicadas a un solo usuari...
<ul><li>  Sistemas paralelos   </li></ul><ul><li>Hoy la tendencia es hacia los  sistemas multiprocesador. </li></ul><ul><l...
<ul><li>Sistemas distribuidos   </li></ul><ul><li>Los sistemas distribuidos  comparte la carga entre varios procesadores. ...
<ul><li>Sistemas de tiempo real </li></ul><ul><li>Cuando los requisitos de tiempo de la operación de un procesador o del f...
1.3 COMPONENTES <ul><li>Como se ha visto el SO es el encargado de asignar los recursos necesarios para la ejecución de pro...
1.3 COMPONENTES <ul><li>Gestión de procesos  </li></ul><ul><li>Gestión de Memoria Principal  </li></ul><ul><li>Gestión de ...
GESTIÓN DE PROCESOS <ul><li>Crear y eliminar procesos tanto de usuarios como del sistema . </li></ul><ul><li>Suspender y r...
GESTIÓN DE MEMORIA PRINCIPAL <ul><li>Saber que partes de la memoria se están utilizando actualmente. </li></ul><ul><li>Dec...
GESTIÓN DE ARCHIVOS <ul><li>Crear y eliminar archivos  </li></ul><ul><li>Crear y eliminar directorios </li></ul><ul><li>Pr...
GESTIÓN DEL SISTEMA DE E/S <ul><li>Proporcionar una interfaz uniforme para el  acceso  a  los  dispositivos ( independenci...
GESTIÓN DE ALMACENAMIENTO SECUNDARIO <ul><li>El almacenamiento secundario surge con la finalidad de respaldar la memoria p...
TRABAJO CON REDES <ul><li>Propios de los SO distribuidos, en los que una colección de procesadores que no comparten memori...
SISTEMAS DE PROTECCIÓN <ul><li>A fin de garantizar que únicamente los procesos que han obtenido la autorización debida del...
SISTEMAS DE INTERPRETACIÓN DE ORDENES <ul><li>Interfaz entre el usuario y el SO; permite al usuario dialogar con el SO, a ...
SERVICIOS <ul><li>Interfaz entre el usuario y el SO, permite al usuario dialogar con el SO, a fin de facilitar tareas como...
SERVICIOS ADICIONALES <ul><li>Aparte de los servicios básicos, el SO puede ofrecer algunas funciones para optimizar el uso...
INTERFACES CON LOS SERVICIOS DEL SO <ul><li>Para el programador: </li></ul><ul><li>Llamadas al sistema en lenguaje máquina...
LLAMADAS AL SISTEMA <ul><li>El SO ofrece una gama de servicios a los programas. Los programas acceden a estos servicios me...
IMPLEMENTACIÓN DE LAS LLAMADAS AL SISTEMA <ul><li>¿Cómo se implementa la llamada? </li></ul><ul><li>Habitualmente, mediant...
LLAMADAS AL SISTEMA DE UNIX <ul><li>Procesos: crear proceso, enviar señal a un proceso, tratar señales, etc. </li></ul><ul...
PROGRAMAS DEL SISTEMA <ul><li>Las llamadas al sistema nos proporcionan una interfaz para el programador; un usuario final ...
EL NÚCLEO <ul><li>Software del Sistema Operativo que reside permanentemente en memoria, atiende las llamadas al sistema. <...
ARQUITECTURA DEL SISTEMA OPERATIVO <ul><li>La arquitectura de un Sistema Operativo se refiere a la organización interna qu...
SISTEMAS MONOLÍTICOS <ul><li>Arquitectura Simple, núcleo compacto que tiene todas las rutinas del SO, las mismas están enl...
SISTEMAS POR CAPAS <ul><li>Arquitectura Modular, define capas o niveles de abstracción, cada uno de los cuáles aprovecha e...
NIVELES Crear, destruir, suspender, reanudar, señalizar, esperar. Procesos semáforos Núcleo o Kernel 1 Leer, escribir, asi...
SISTEMAS POR CAPAS <ul><li>Cada capa del SO consistiría en la implementación de un objeto abstracto. </li></ul><ul><ul><li...
SISTEMA POR CAPAS <ul><li>VENTAJAS: </li></ul><ul><li>Modularidad </li></ul><ul><ul><li>Depuración y Verificación </li></u...
SISTEMA POR CAPAS <ul><li>DESVENTAJAS: </li></ul><ul><li>Problema: definición apropiada de las distintas capas. </li></ul>...
MÁQUINA VIRTUAL <ul><li>Mediante software, se proporciona a los programas la emulación de un Hardware que no existe. </li>...
EJEMPLOS: <ul><li>IBM VM: ofrecería a cada usuario su propia máquina virtual mono tarea; las m.v se planificaban con tiemp...
VENTAJAS Y DESVENTAJA <ul><li>Protección : cada máquina virtual esta aislada de las otras y no puede interferir. </li></ul...
Upcoming SlideShare
Loading in …5
×

CAPITULO 1

7,611 views

Published on

PROCESOS

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
7,611
On SlideShare
0
From Embeds
0
Number of Embeds
28
Actions
Shares
0
Downloads
201
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

CAPITULO 1

  1. 1. CAPÍTULO I: Introducción a los Sistemas Operativos Realizado por: Ing. Samanta Cueva Docentes: Ing. Carlos Córdova Ing. Alexander López Ing. Julia Pineda Abril-Agosto 2008
  2. 2. CAPÍTULO I: Introducción a los Sistemas Operativos 1.1 Objetivos y funciones de los SO 1.2   Evolución de los SO 1.3 Principales logros de los SO
  3. 3. Introducción a los Sistemas Operativos <ul><li>Antes de revisar ¿Qué son los Sistemas Operativos? partamos de: ¿Cuáles son los elementos de un sistema informático? </li></ul>Usuarios Operadores Administradores Personas Son los programas de aplicación o del sistema Software Definido por la Real Academia Española como el conjunto de elementos materiales que conforman una computadora. Hardware
  4. 4. 1. SISTEMA OPERATIVO <ul><li>Es un programa que actúa como intermediario entre el usuario y el hardware de una computadora. </li></ul><ul><li>Es un programa que controla la ejecución de programas de aplicación y actúa como una interfaz entre el usuario y el hardware de una computadora. </li></ul><ul><li>E s un medio de interacción entre el usuario y los recursos de la máquina, permitiéndonos abstraernos de su administración. </li></ul><ul><li>Es similar a un gobierno, ya que proporciona los medios para el uso apropiado de los recursos. ( proporciona un ambiente dentro del cual otros programas puedan realizar un trabajo útil) </li></ul>
  5. 5. 1. SISTEMA OPERATIVO <ul><li>Al SO se lo puede ver como: </li></ul><ul><li>Asignador de recursos: El sistema computacional tiene muchos recursos de Hardware y Software; por lo cual SO actúa como gestor de recursos y los asigna a programas y usuarios específicos según los necesiten para sus tareas de manera justa y eficiente. </li></ul><ul><li>Programa de control: Controla la ejecución de los programas de los usuarios a fin de evitar errores y el uso incorrecto del computador. </li></ul>
  6. 6. 1.1 OBJETIVOS DEL SO 1. LA COMODIDAD DEL USUARIO (interacción del usuario con los recursos en un alto grado de abstracción). 2.USO EFICIENTE DE LA COMPUTADORA (Administración eficiente de los recursos)
  7. 7. SERVICIOS DEL SO <ul><li>Controlar la ejecución de procesos permitiendo su creación, terminación o suspensión y comunicación </li></ul><ul><li>Planificar el uso de la CPU a través del scheduling de procesos. </li></ul><ul><li>Asignar memoria principal para el proceso en ejecución </li></ul><ul><li>Asignar memoria secundaria para uso eficiente y recuperación de datos del usuario </li></ul><ul><li>Permitir el acceso controlado desde los procesos a los dispositivos. </li></ul><ul><li>Compartir el hardware entre usuarios. </li></ul><ul><li>Permitir a los usuarios compartir datos entre ellos. </li></ul><ul><li>Facilitar la entrada /salida </li></ul>
  8. 8. 1.2 EVOLUCIÓN SISTEMA OPERATIVO Los sistemas operativos y la arquitectura de los computadores han influido mucho uno sobre otro, tomando en cuenta que los SO se crearon para facilitar el uso del hardware. Hay que recalcar que los problemas de los SO dieron pie a la introducción de nuevas características de hardware. Computadores personales desde 1980 4 Circuitos integrados y multiprogramación 1965 – 1980 3 Transistores y sistemas por lotes 1955 – 1965 2 Tubos al vacío, tableros 1945 – 1955 1 Sistemas mecánicos y electro-mecánicos hasta 1945 0 Características Años Generación
  9. 9. Präsentation Edopena Sistemas Operativos Generación 0 (hasta 1945)‏ <ul><li>Ábacos </li></ul><ul><li>Calculadoras mecánicas. </li></ul><ul><li>Sistemas basados en relés. </li></ul>Difference Engine (1822)‏ Primera Computadora Digital (mecánica)‏. Diseñada por Charles Babbage y Ada Lovelace. Fue usada para calcular: tablas numéricas, funciones algebraicas y almacenaba números.
  10. 10. Primera generación (1940-1955)‏ <ul><li>Se utilizan tubos al vacío </li></ul><ul><li>Eran enormes (20.000 tubos) y lentas (un ciclo 1 seg.)‏ </li></ul><ul><li>Un solo grupo diseñaba, construía, programaba, operaba y mantenía cada máquina. </li></ul><ul><li>Toda la programación se hacía en lenguaje máquina </li></ul><ul><li>No existían los sistemas operativos. </li></ul><ul><li>En 1950 se introducen las tarjetas perforadas. </li></ul>Colossus (1945)‏ Fue usada en la Segunda Guerra Mundial para decifrar los mensajes de los alemanes.
  11. 11. Segunda generación (1955-1965)‏ <ul><li>Se introducen los transistores . </li></ul><ul><li>Existe distinción entre diseñadores, constructores, programadores, operadores y personal de mantenimiento. </li></ul><ul><li>Mainframes en salas acondicionadas. </li></ul><ul><li>Se escribían los programas en papel, luego se perforaban las tarjetas, cuarto de entrada y esperar la salida. </li></ul><ul><li>Los operadores toman las tarjetas del programa y colocan también los del compilador. </li></ul><ul><li>Se crea el proceso por lotes que agrupa trabajos. </li></ul>JOHNNIAC (1954)‏ Tarjeta sin perforar
  12. 12. Tercera generación (1965-1980)‏ <ul><li>Se introducen los circuitos integrados , lo cual es una gran ventaja en el precio y desempeño del computador. </li></ul><ul><li>Se introduce el sistema IBM 360 altamente compatible. </li></ul><ul><li>Se introduce el sistema operativo OS/360 (enorme y complejo) que tenía que ser eficiente en todos los equipos. </li></ul><ul><li>El sistema operativo tenía muchísimos errores (dinosaurios). </li></ul><ul><li>Se introduce la multiprogramación </li></ul><ul><li>Se introducen los discos duros y con ello el spooling . </li></ul><ul><li>Se introduce el tiempo compartido entre usuarios. </li></ul>IBM 360 (1964)‏
  13. 13. Apple I (1976)‏ Apple II (1978)
  14. 14. Cuarta generación (desde 1980)‏ <ul><li>Usaban LSI (large scale integration). </li></ul><ul><li>Intel 8080 (8 bits) -> IBM PC (1980) con DOS. </li></ul><ul><li>Intel 80286 (1983), 80386 (1985) y 80486 (1989). </li></ul><ul><li>Macintosh creó la GUI (graphical User Interface) </li></ul><ul><li>Microsoft adopta GUI y desarrolla Windows (sobre DOS)‏ </li></ul><ul><li>Microsoft saca Windows 95 como sistema operativo, luego Windows 98 (basado en 16 bits), Windows NT (32 bits). </li></ul><ul><li>Windows NT 5.0 se transformó en Windows 2000 </li></ul><ul><li>Windows 98 nueva se transformó Windows Me. </li></ul><ul><li>Windows XP </li></ul><ul><li>UNIX se mantiene para computadores potentes (servidores) </li></ul><ul><li>En Pentium Linux es una alternativa a Windows </li></ul><ul><li>Unix saca las X basado en GUI </li></ul><ul><li>Se introducen sistemas operativos en red y sistemas operativos distribuidos </li></ul>IBM PC (1981)‏
  15. 15. 1.2 EVOLUCIÓN <ul><li>Para profundizar el tema de la evolución de los SO revisemos los siguientes tipos de sistemas: </li></ul><ul><li>Sistemas por lotes sencillos. </li></ul><ul><li>Los primeros equipos grandes y caros que se controlaban desde una consola. </li></ul><ul><li>Dispositivos de entrada comunes eran: lectores de tarjetas y unidades de cinta. </li></ul><ul><li>Los usuarios no interactuaban directamente con el computador.(Sólo el operador). </li></ul><ul><li>La función del SO era transferir el control automáticamente de un trabajo al siguiente. </li></ul><ul><li>El SO estaba siempre residente en memoria. </li></ul><ul><li>Para agilizar el procesamiento se agrupaban los trabajos comunes en lotes y se introducían al computador como un grupo. </li></ul>
  16. 16. <ul><li>Sistemas por lotes sencillos. </li></ul><ul><li>El SO por lotes sencillo lee un flujo de trabajos individuales, cada uno con sus propias tarjetas de control que predefinen lo que el trabajo hace y su trabajo se imprime en líneas (después de algunos minutos e inclusive horas). </li></ul>Luego aparece el spooling; el cual tiene efecto benéfico directo sobre el desempeño del sistema (mantiene la CPU como los dispositivos de E/S trabajando con un rendimiento mucho mayor.
  17. 17. <ul><li>El spooling da origen a una importante estructura de datos: la reserva de trabajos. Lo cual implica la planificación de trabajos. </li></ul><ul><li>Lo más importante de la planificación es la capacidad de multiprogramar (aprovechando eficientemente la CPU). </li></ul><ul><li>La técnica de permitir varios programas en memoria se la llama multiprogramación . </li></ul><ul><li>La multiprogramación debe permitir tomar decisiones por los usuarios, por lo cual son relativamente complejos. </li></ul>Sistema por lotes Multiprogramados .
  18. 18. <ul><li>Sistemas de Tiempo compartido (Multitarea) </li></ul><ul><li>Time sharing es una consecuencia lógica de la multiprogramación. Se ejecutan varias tareas mientras la CPU se conmuta entre ellos, pero la conmutación es tan frecuente que los usuarios pueden interactuar con cada programa durante su ejecución. </li></ul><ul><li>El usuario interactúa directamente con el equipo puede ver los resultados inmediatamente. </li></ul><ul><li>Se crearon para brindar el uso interactivo de un sistema de computador a un costo razonable. Utiliza planificación de la CPU y multiprogramación para ofrecer a cada usuario una pequeña porción del tiempo de un computador. </li></ul><ul><li>Muchos usuarios pueden compartir el computador al mismo tiempo. </li></ul>
  19. 19. <ul><li>Sistemas monousuario </li></ul><ul><li>Las PC’s (personal computers) son computadoras dedicadas a un solo usuario, que aparecieron en los 70’s. </li></ul><ul><li>Eran microcomputadoras más baratas y más chicas que un mainframe. </li></ul><ul><li>El abaratamiento no proviene sólo del hardware: el sistema operativo es menos complejo pues es un ambiente de ejecución mucho más simple. </li></ul><ul><li>No son ni multiusuario ni multitarea. </li></ul>
  20. 20. <ul><li>  Sistemas paralelos </li></ul><ul><li>Hoy la tendencia es hacia los sistemas multiprocesador. </li></ul><ul><li>Es decir, aquellos que cuentan con más de un procesador. </li></ul><ul><li>Permiten mejorar el throughput (productividad). No obstante debemos considerar un overhead (carga) adicional por sincronizar estos procesadores y los recursos compartidos a los que acceden. </li></ul>
  21. 21. <ul><li>Sistemas distribuidos </li></ul><ul><li>Los sistemas distribuidos comparte la carga entre varios procesadores. </li></ul><ul><li>Las razones para su uso son: </li></ul><ul><li>· Compartir recursos. </li></ul><ul><li>· Aceleración de los cálculos </li></ul><ul><li>· Confiabilidad </li></ul><ul><li>· Comunicación </li></ul>
  22. 22. <ul><li>Sistemas de tiempo real </li></ul><ul><li>Cuando los requisitos de tiempo de la operación de un procesador o del flujo son estrictos, por lo que por lo general se utilizan como dispositivos de control en las aplicaciones dedicadas. </li></ul><ul><li>Hay dos tipos: </li></ul><ul><ul><li>Sistema de tiempo real duro: Garantiza que las tareas críticas se terminarán a tiempo. Por lo que no se combinan con los sistemas de tiempo compartido. </li></ul></ul><ul><ul><li>Sistema de tiempo real blando: El que una tarea de tiempo real crítica goza de prioridad respecto a otras tareas y conserva esa prioridad hasta que se lleva a cabo. </li></ul></ul>
  23. 23. 1.3 COMPONENTES <ul><li>Como se ha visto el SO es el encargado de asignar los recursos necesarios para la ejecución de programas lo cual requiere de un conjunto de componentes que le permiten cumplir su función. </li></ul>procesos memoria entrada/salida redes protección archivos Intérprete de órdenes
  24. 24. 1.3 COMPONENTES <ul><li>Gestión de procesos </li></ul><ul><li>Gestión de Memoria Principal </li></ul><ul><li>Gestión de Archivos </li></ul><ul><li>Gestión de los sistemas de Entrada/Salida </li></ul><ul><li>Gestión de Almacenamiento Secundario </li></ul><ul><li>Trabajo con redes </li></ul><ul><li>Sistema de Protección </li></ul><ul><li>Sistema de Interpretación de Órdenes </li></ul>De acuerdo al papel que desempeñan los componentes del SO son:
  25. 25. GESTIÓN DE PROCESOS <ul><li>Crear y eliminar procesos tanto de usuarios como del sistema . </li></ul><ul><li>Suspender y reanudar procesos </li></ul><ul><li>Proveer mecanismos para la sincronización de procesos </li></ul><ul><li>Proveer mecanismos para la comunicación de procesos </li></ul><ul><li>Manejo de bloques mutuos (deadlocks). </li></ul>Se puede pensar en un proceso como una parte o todo un programa en ejecución. Para la ejecución requiere recursos como CPU, memoria, archivos y dispositivos de E/S, asignados al crearse el proceso o durante su ejecución. Las actividades del SO relacionadas con la gestión de procesos son:
  26. 26. GESTIÓN DE MEMORIA PRINCIPAL <ul><li>Saber que partes de la memoria se están utilizando actualmente. </li></ul><ul><li>Decidir cuáles procesos se cargarán en la memoria cuando se disponga de espacio. </li></ul><ul><li>Asignar y liberar espacios de memoria según se necesite </li></ul><ul><li>Utilizar el almacenamiento secundario como una extensión de la memoria principal. </li></ul>La memoria principal constituye uno de los recursos principales para el funcionamiento del sistema. Es además, un recurso escaso por el que compiten distintos procesos. Las actividades con la gestión de memoria son:
  27. 27. GESTIÓN DE ARCHIVOS <ul><li>Crear y eliminar archivos </li></ul><ul><li>Crear y eliminar directorios </li></ul><ul><li>Proveer las primitivas para manipulación de archivos y directorios </li></ul><ul><li>Establecer la correspondencia de los archivos con el almacenamiento secundario. </li></ul><ul><li>Resguardar los archivos en medios de almacenamiento estables (no volátiles). </li></ul>Un archivo es un conjunto de datos identificados por un nombre, suelen almacenarse en dispositivos de E/S. El SO establece una correspondencia entre el archivo y los medio físicos. Las funciones son:
  28. 28. GESTIÓN DEL SISTEMA DE E/S <ul><li>Proporcionar una interfaz uniforme para el acceso a los dispositivos ( independencia del dispositivo) </li></ul><ul><li>Proporcionar manejadores para los dispositivos concretos </li></ul><ul><li>Tratar automáticamente los errores más típicos para los dispositivos de almacenamiento, utilizar cachés para los discos, planificar de forma optima las peticiones, etc. </li></ul>El SO tiene como objetivo ocultar las peculiaridades del sistema de los dispositivos hardware específicos de modo que el usuario no las perciba, puesto que la entrada/salida es un conjunto de dispositivos complicados de programar. Las funciones son:
  29. 29. GESTIÓN DE ALMACENAMIENTO SECUNDARIO <ul><li>El almacenamiento secundario surge con la finalidad de respaldar la memoria principal. </li></ul><ul><li>El SO se encarga de las siguientes actividades relacionadas con la gestión de discos. </li></ul><ul><li>Administración del espacio libre </li></ul><ul><li>Asignación del almacenamiento </li></ul><ul><li>Planificación del disco. </li></ul>
  30. 30. TRABAJO CON REDES <ul><li>Propios de los SO distribuidos, en los que una colección de procesadores que no comparten memoria, dispositivos periféricos ni reloj. Los diferentes procesadores del sistema se conectan mediante una red de comunicaciones que se puede configurar de distintas maneras. El objetivo del SO con respecto al trabajo con red es: </li></ul><ul><li>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 al procedimiento (RPC) etc. </li></ul>
  31. 31. SISTEMAS DE PROTECCIÓN <ul><li>A fin de garantizar que únicamente los procesos que han obtenido la autorización debida del SO pueden operar con los recursos del computador. </li></ul><ul><li>En éste aspecto los objetivos del SO son: </li></ul><ul><li>Definir el esquema general de protección: clases de usuarios, clases de permisos /privilegios, etc. </li></ul><ul><li>Definir mecanismos de acceso a los recursos: contraseñas, llaves, capacidades, etc. </li></ul><ul><li>Controlar el acceso a los recursos, denegando el acceso cuando no esté permitido. </li></ul>
  32. 32. SISTEMAS DE INTERPRETACIÓN DE ORDENES <ul><li>Interfaz entre el usuario y el SO; permite al usuario dialogar con el SO, a fin de facilitar tareas como: </li></ul><ul><li>Cargar programas </li></ul><ul><li>Abortar programas </li></ul><ul><li>Introducir datos a los programas </li></ul><ul><li>Trabajar con archivos </li></ul><ul><li>Trabajar con redes </li></ul><ul><li>Ejemplos: JCL en sistemas por lotes, COMMAND.COM en MS-DOS, shell en UNIX </li></ul>
  33. 33. SERVICIOS <ul><li>Interfaz entre el usuario y el SO, permite al usuario dialogar con el SO, a fin de facilitar tareas como: </li></ul><ul><li>Ejecución de Programas </li></ul><ul><li>Operaciones de E/S </li></ul><ul><li>Manipulación de archivos y directorios </li></ul><ul><li>Comunicación entre procesos </li></ul><ul><li>Comunicación con equipos remotos </li></ul><ul><li>Administración de la protección y seguridad </li></ul><ul><li>Leer el estado del sistema (hora, nº de procesos, etc. ) </li></ul>
  34. 34. SERVICIOS ADICIONALES <ul><li>Aparte de los servicios básicos, el SO puede ofrecer algunas funciones para optimizar el uso del sistema: </li></ul><ul><li>Compartición de recursos </li></ul><ul><li>Contabilidad (accounting).- conocer el consumo de recursos. </li></ul>
  35. 35. INTERFACES CON LOS SERVICIOS DEL SO <ul><li>Para el programador: </li></ul><ul><li>Llamadas al sistema en lenguaje máquina o en alto nivel(ej. Lenguaje C) </li></ul><ul><li>Para el usuario: </li></ul><ul><li>Intérprete de órdenes </li></ul><ul><li>Programas del sistema. </li></ul>
  36. 36. LLAMADAS AL SISTEMA <ul><li>El SO ofrece una gama de servicios a los programas. Los programas acceden a estos servicios mediante llamadas al sistema. </li></ul><ul><li>Son la interfaz entre el programador en ejecución y el SO. </li></ul><ul><li>Es la única forma en la que un programa puede solicitar operaciones al SO. </li></ul><ul><li>Ejemplo: </li></ul><ul><li>Windows: </li></ul><ul><li>Handle = Open File(“minifichero”, ofstruct, OF_READ) </li></ul><ul><li>UNIX: </li></ul><ul><li>Fd = open(“mifichero”, O_RDONLY); </li></ul><ul><li>MS-DOS: </li></ul><ul><li>Mov ah, servicio </li></ul><ul><li>Mov al, modo </li></ul>
  37. 37. IMPLEMENTACIÓN DE LAS LLAMADAS AL SISTEMA <ul><li>¿Cómo se implementa la llamada? </li></ul><ul><li>Habitualmente, mediante una instrucción especial de la máquina (syscall, int, trap…) </li></ul><ul><li>La instrucción cambia automáticamente a modo privilegiado </li></ul><ul><li>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. </li></ul><ul><li>Muchas llamadas necesitan parámetros, ¿cómo los pasamos al SO? </li></ul><ul><li>Usando registros de la máquina </li></ul><ul><li>En una tabla en memoria principal </li></ul><ul><li>Poniéndolos en la pila (stack) </li></ul>
  38. 38. LLAMADAS AL SISTEMA DE UNIX <ul><li>Procesos: crear proceso, enviar señal a un proceso, tratar señales, etc. </li></ul><ul><li>Memoria: pedir más memoria, liberar memoria… </li></ul><ul><li>Archivos: abrir, crear, cerrar, leer, escribir, borrar, crear, directorio, crear enlace, bloquear fichero… </li></ul><ul><li>Redes: abrir conexión (socket), cerrar conexión… </li></ul><ul><li>Protección: cambiar permisos, cambiar propietario. </li></ul>
  39. 39. PROGRAMAS DEL SISTEMA <ul><li>Las llamadas al sistema nos proporcionan una interfaz para el programador; un usuario final interactúa con el sistema operativo mediante programas que han sido previamente compilados. Sí el entorno del SO. Suele proveer programas del sistema para: </li></ul><ul><li>Manipular ficheros (ls, cp, dir, etc.) </li></ul><ul><li>Editar documentos (emacs, edit, etc.) </li></ul><ul><li>Proporcionar entornos de trabajo (escritorio Windows) </li></ul><ul><li>Desarrollar programas( compiladores, enlazadores) </li></ul><ul><li>Comunicarnos con otros equipos (telnet, ftp, etc.). </li></ul>
  40. 40. EL NÚCLEO <ul><li>Software del Sistema Operativo que reside permanentemente en memoria, atiende las llamadas al sistema. </li></ul><ul><li>El núcleo se distingue de los programas del sistema, porque estos utilizan los servicios del núcleo. </li></ul>
  41. 41. ARQUITECTURA DEL SISTEMA OPERATIVO <ul><li>La arquitectura de un Sistema Operativo se refiere a la organización interna que esté tiene, las mismas que pueden ser: </li></ul><ul><ul><li>Bloque único y sólido de servicios (Sistema Monolítico) </li></ul></ul><ul><ul><li>Capas de Software delimitadas y jerarquizadas (Sistemas por capas) </li></ul></ul><ul><ul><li>Modelo de Máquinas Virtuales </li></ul></ul><ul><ul><li>Modelo Cliente-Servidor </li></ul></ul>
  42. 42. SISTEMAS MONOLÍTICOS <ul><li>Arquitectura Simple, núcleo compacto que tiene todas las rutinas del SO, las mismas están enlazadas entre sí, de tal manera que cada una pueda llamar a otra. Carece de técnicas de protección y manejo de privilegios. </li></ul>programa programa programa NÚCLEO Llamadas al sistema hardware
  43. 43. SISTEMAS POR CAPAS <ul><li>Arquitectura Modular, define capas o niveles de abstracción, cada uno de los cuáles aprovecha el servicio de la capa inferior. </li></ul><ul><li>Es mucho más escalable que el anterior. </li></ul>programa capa capa capa
  44. 44. NIVELES Crear, destruir, suspender, reanudar, señalizar, esperar. Procesos semáforos Núcleo o Kernel 1 Leer, escribir, asignar. Liberar. Bloques de datos E/S Básica 2 Leer, escribir, acceder. Segmentos, paginas Gestión de memoria 3 Crear, destruir, abrir, cerrar Archivos, dispositivos Sistema de archivos 4 Secuencias del lenguaje de ordenes Datos del entorno Interprete de lenguajes de ordenes 5 Operaciones Objetos Nombre Nivel
  45. 45. SISTEMAS POR CAPAS <ul><li>Cada capa del SO consistiría en la implementación de un objeto abstracto. </li></ul><ul><ul><li>Datos </li></ul></ul><ul><ul><li>Operaciones </li></ul></ul><ul><li>Es mucho más estable que el anterior. </li></ul>Operaciones nuevas Operaciones existentes Operaciones ocultas Capa M Capa M-1
  46. 46. SISTEMA POR CAPAS <ul><li>VENTAJAS: </li></ul><ul><li>Modularidad </li></ul><ul><ul><li>Depuración y Verificación </li></ul></ul><ul><ul><li>Una vez depurada la primera capa se puede dar por sentado su funcionamiento correcto mientras se trabaja con la segunda capa. </li></ul></ul><ul><ul><li>Mantenimiento </li></ul></ul><ul><ul><li>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. </li></ul></ul>
  47. 47. SISTEMA POR CAPAS <ul><li>DESVENTAJAS: </li></ul><ul><li>Problema: definición apropiada de las distintas capas. </li></ul><ul><li>Tienden a ser menos eficientes. </li></ul><ul><ul><li>Llamadas entre capaz  paso de parametros. </li></ul></ul><ul><ul><li>En definitiva cada capa implica un gasto extra. </li></ul></ul><ul><ul><li>Tendencia: Equilibrio, menos capas con más funcionalidad: </li></ul></ul><ul><ul><ul><li>Ventajas de la modularidad. </li></ul></ul></ul><ul><ul><ul><li>Evitan los problemas de definición e interacción entre capas. </li></ul></ul></ul>
  48. 48. MÁQUINA VIRTUAL <ul><li>Mediante software, se proporciona a los programas la emulación de un Hardware que no existe. </li></ul><ul><li>El software emulador convierte las peticiones hechas a la máquina virtual en operaciones sobre la máquina real. </li></ul><ul><li>Se pueden ejecutar varias máquinas virtuales al mismo tiempo (ej. Mediante tiempo compartido). </li></ul><ul><li>Los recursos reales se reparten entre las distintas máquinas virtuales. </li></ul>
  49. 49. EJEMPLOS: <ul><li>IBM VM: ofrecería a cada usuario su propia máquina virtual mono tarea; las m.v se planificaban con tiempo compartido. </li></ul><ul><li>Java: los programas compilados en Java corren sobre una máquina virtual (JVM)- </li></ul><ul><li>VM Ware: en un PC es capaz de ejecutar al mismo tiempo varias sesiones Windows, Linux, OS/2, etc. </li></ul><ul><li>Nachos: S.O. que se ejecuta en una máquina virtual, MIPS, cuyo emulador corre sobre UNIX. </li></ul>
  50. 50. VENTAJAS Y DESVENTAJA <ul><li>Protección : cada máquina virtual esta aislada de las otras y no puede interferir. </li></ul><ul><li>Investigación y desarrollo: se puede desarrollar y ejecutar para u hardware que no tenemos. </li></ul><ul><li>Independencia del Hardware (ej. java). </li></ul><ul><li>Pervivencia de sistemas antiguos (ej. Emuladores MS-DOS). </li></ul><ul><li>La implementación de la m.v. puede ser compleja y lenta. </li></ul>

×