La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tecnicatura Superior en Programación 2do Cuatrimestre Docentes: Lic. Laz Contreras, Gustavo A Ing. Torrico Terrazas, Henry A. Universidad Tecnológica Nacional.

Presentaciones similares


Presentación del tema: "Tecnicatura Superior en Programación 2do Cuatrimestre Docentes: Lic. Laz Contreras, Gustavo A Ing. Torrico Terrazas, Henry A. Universidad Tecnológica Nacional."— Transcripción de la presentación:

1 Tecnicatura Superior en Programación 2do Cuatrimestre Docentes: Lic. Laz Contreras, Gustavo A Ing. Torrico Terrazas, Henry A. Universidad Tecnológica Nacional Regional Académica Confluencia

2 Antes de poder entender como funciona una computadora, necesitamos los conocimientos sobre su estructura Una Computadora moderna de propósitos generales consta de una o mas CPU y de una serie de controladoras de dispositivos conectadas a través de un BUS común que proporciona acceso a la memoria compartida.

3 Cada controlador de dispositivo se encarga de un tipo especifico de dispositivo, por ejemplo, unidades de discos, dispositivos de audio y pantalla de video. La CPU y la controladora de dispositivo se pueden funcionar concurrentemente, compitiendo por los ciclo de memorias. Para asegurar el acceso en forma ordenada a la memoria compartida, se proporciona una controladora de memoria cuya función es sincronizar el acceso a la misma. Para que una computadora comience a funcionar, por ejemplo cuando se enciende o se reinicia, es necesario que tenga un programa de inicio que ejecutar. Este programa de inicio, o PROGRAMA DE ARRANQUE, suele ser simple. Normalmente se almacena en la ROM (Read Only Memory) o en la EEPROM (Electrically Erasable Programmable Read Only Memory) y se conoce con el termino general de FIRMWARE, dentro del hardware de la computadora. Se inicializa todos los aspectos del sistemas, desde los registro de la CPU hasta la controladora de dispositivos y el contenido de la memoria. El Programa de arranque debe saber como arrancar el Sistema Operativo e iniciar la ejecución de dicho sistema.

4 Un sistema Informático se puede se puede organizar de varias manera diferentes, las cuales podemos clasificar de acuerdo con el numero de procesadores de propósitos generales utilizados. Sistema de un solo procesador Sistema multiprocesadores Sistema en Cluster

5 La mayor parte de los sistemas solo utilizan un procesador. En un sistema de un único procesador, hay una CPU principal capaz de ejecutar un conjunto de instrucciones de propósito general, incluyendo instrucciones de los procesos de usuarios Casi todos los sistemas disponen también de otros procesadores de propósito especial. Pueden venir en forma de procesadores específicos de un dispositivo, como por ejemplo un disco, un teclado, o una controladora grafica. Estos procesadores ejecutan un conjunto limitado de instrucciones y no ejecutan procesos de usuario. El sistema operativo los gestiona, en el sentido de que les envía información sobre su siguiente tarea y monitoriza su estado. Por ejemplo, las PC contienen un microprocesador en el teclado para convertir las pulsaciones de tecla en códigos que se envían a la CPU.

6 Existen otros sistemas o circunstancias, en que estos procesadores de propósito especial son componentes de bajo nivel integrados en el hardware. El sistema operativo no puede comunicarse con ellos, sino que éstos hacen su trabajo en forma autónoma. En conclusión: la presencia de microprocesadores de propósito especial resulta bastante común y no convierte a un sistema de un solo procesador en un sistema multiprocesador. Solo hay una CPU de propósito general, entonces el sistema es de un solo procesador.

7 La importancia de los sistemas multiprocesador (también conocidos como Sistemas Paralelos o Sistemas fuertemente acoplados) es cada vez mayor. Los mismos poseen dos o más procesadores que se comunican entre si, compartiendo el bus de la computadora y, en ocasiones, el reloj, la memoria y los dispositivos periféricos. Los sistemas multiprocesador presentan tres ventajas fundamentales: Mayor rendimiento: múltiples procesadores cooperan en una tarea. Al aumentar el número de procesadores, se espera que se realice más trabajo en menos tiempo, Sin embargo, la mejora en velocidad con N procesadores no es N, sino que menor que N, porque cierta carga de trabajo, mas la contienda por los recursos compartidos reducen las ganancias esperadas por añadir procesadores adicionales.

8 Economía de Escala: Los sistemas multiprocesador pueden resultar más baratos que su equivalente con múltiples sistemas de un solo procesador, ya que pueden compartir periféricos, almacenamiento masivo y fuentes de alimentación. Por ejemplo, si varios programas operan sobre el mismo conjunto de datos en un disco y que todos los procesadores los compartan, que tener muchas computadoras con discos locales y muchas copias de datos. Mayor Fiabilidad: Si las funciones se pueden distribuir de forma apropiada entre varios procesadores, entonces el fallo de un procesador no hará que el sistema deje de funcionar, sino que solo se tornara más lento. Ejemplo, si se tiene diez procesadores y uno falla, entonces cada uno de los nueve procesadores restantes puede asumir una parte del trabajo del procesador que fallo. Por lo tanto, el sistema completo trabajara un 10% más despacio, en lugar de dejar de funcionar.

9 Como los sistemas multiprocesador, los Sistemas en Cluster utilizan múltiples CPU para llevar a cabo el trabajo. Los Sistemas en Cluster se diferencian de los sistemas de multiprocesamiento en que están formados por dos o más sistemas individuales acoplados. La definición general aceptada es que las computadoras en cluster comparten el almacenamiento y se conectan entre si a través de una red de área local (LAN). Normalmente, la conexión en cluster es usa para proporcionar un servicio con alta disponibilidad, es decir, un servicio que funcionará incluso si uno o mas sistemas del cluster fallan.

10 El cluster se puede estructurar simétrica y asimétricamente: En un Cluster Asimétrico, una maquina esta en modo de espera en caliente, mientras que la otra esta ejecutando las aplicaciones. La maquina Host en modo de espera en caliente no hace mas que monitorizar el servidor activo. Si dicho servidor falla, el host que esta en espera pasa a ser el servidor activo. En un Cluster Simétrico, dos o mas hosts ejecutan aplicaciones y se monitorizan entre si. Este modo es obviamente más eficiente, ya que utiliza todo el hardware disponible, aunque, desde luego se requiere que haya disponible más de una aplicación para ejecutar.

11 Un sistema operativo proporciona el entorno en el cual se ejecutan los programas. Internamente, los sistemas operativos varían enormemente en su composición. Sin Embargo, tienen muchas características comunes. Uno de los aspectos más importantes de los sistemas operativos, es la capacidad para multiprogramar. La multiprogramación incrementa el uso de la CPU organizando los trabajos (códigos y datos) de modo que la CPU siempre tenga uno para ejecutar. El Sistema Operativo mantiene en memoria simultáneamente, varios trabajos, este conjunto de trabajos puede ser un subconjunto de trabajos guardados en cola de trabajo., la cual contienen todos los trabajos que entran en sistema

12 Sistema Operativo Trabajo 1 Trabajo 2 Trabajo 3 Trabajo 4

13 Los sistemas multiprogramados proporcionan un entorno en el que se usan de forma eficaz los diversos recursos del sistema, como ejemplo la CPU, la memoria y los periféricos, aunque no proporciona la interacción del usuario con el sistema informático. El tiempo compartido (o multitarea) es una extensión lógica de la multiprogramación. En los sistemas de tiempo compartido, la CPU ejecuta múltiples trabajos conmutando entre ellos, pero la conmutación se produce tan frecuente que los usuarios pueden interactuar con cada programa mientras éste esta en ejecución. Un sistema de tiempo, compartido emplea mecanismo de multiprogramación, y de planificación de la CPU para proporcionar a cada usuario una pequeña de una computadora de tiempo compartido. Cada usuario al menos un programa cargado en memoria.

14 Un programa cargado en memoria y en ejecución se denomina proceso. Cuando se ejecuta un proceso, normalmente se ejecuta sólo durante un periodo de tiempo pequeño, antes de terminar o de que se necesite realizar una operación de E/S. La E/S puede ser interactiva, es decir, la salida va a la pantalla y a entrada procede del teclado, el ratón u otro dispositivo del usuario. El tiempo compartido y la multiprogramación requieren mantener simultáneamente en memoria varios trabajos. Dado que en general la memoria principal es demasiado pequeña para acomodar todos los trabajos, esto se mantiene inicialmente en el disco en la denominada cola de trabajos. Esta cola contiene todos los procesos que residen en el disco esperando la asignación de la memoria principal. La toma de esta decisión, en el pasaje de los procesos a la memoria principal, se denomina planificación de trabajos

15 El sistema presta ciertos servicios a los programas y a los usuarios de dichos programas. Por supuesto, los servicios específicos que se suministran difieren de un sistemas operativo a otro, pero podemos identifica preferentemente una serie de clases comunes. Estos servicios de sistemas operativos se proporcionan para comodidad del programador, con el fin de facilitar la tarea de desarrollo. Un cierto conjunto de servicios del sistema operativo proporciona funciones que resultan útiles al usuario : Interfaz del Usuario. Casi todo los SO disponen de una interfaz del usuario (UI, user Interface), que puede tomar diferentes formas. Uno de los tipos existente es la interfaz de la línea de comandos (CLI, command –line interface), que usa comando de textos y algún tipo de método para introducirlos, es decir, algún programa que permite introducir y editar los comandos. Otro tipo destacable es la interfaz de proceso de lote, en la que los comandos y las directivas para controlar dichos comandos se introducen en archivos y luego dichos archivos se ejecutan.

16 Los últimos sistemas utilizan la interfaz grafica de usuario (GUI, graphical user interface ); en este caso la interface es un sistema de ventana, con un dispositivo señalador para dirigir la E/S, para elegir opciones de menús y para realizar otras selecciones y con un teclado para introducir el texto. Ejecución de Programa. El sistema tiene que poder cargar un programa en memoria y ejecutar dicho programa. Todo programa debe poder terminar su ejecución, de forma normal o anormal (indicando un error). Operaciones de Entrada y Salida (E/S). Un programa en ejecución puede necesitar llevar a cabo operaciones de E/S, dirigidas a un archivo o a un dispositivo de E/S. Para ciertos dispositivos específicos, puede ser deseable disponer de funciones especiales, tales como grabar un CD o DVD o borrar una pantalla de TRC (tubo de rayos catódicos). Por cuestiones de eficiencia y protección, los usuarios no pueden, normalmente controlar de modo directo los dispositivos de E/S; por lo tanto es sistema operativo debe proporcionar medios para realizar la E/S.

17 Manipulación del sistema de archivos. El sistema de archivos tiene una importancia especial. Obviamente, los programas necesitan leer y escribir en archivos y directorios. También necesitan crearlos y borrarlos usando su nombre. Realizar búsqueda en un determinado archivo o presentar la información contenida en un archivo. Por último algunos programas incluyen mecanismo de gestión de permisos para conceder o denegar el acceso de archivos o directorios basándose en quien sea el propietarios del archivos. Comunicación. Hay muchas circunstancias en las que un proceso necesita intercambiar información con otro. Dicha comunicación pude tener lugar entre procesos que estén ejecutándose en la misma computadora o entre procesos que se ejecutan en computadoras diferentes conectadas a través de una red. La comunicación se puede implementar utilizando memoria compartida o mediante paso de mensajes, procedimiento éste en el que el sistema operativo transfiere paquetes de información entre un proceso y otro.

18 Detección de Errores. El sistema operativo necesita detectar constantemente los posibles errores. Estos errores pueden producirse en el hardware del procesador y de memoria (como, por ejemplo, un error de memoria o un fallo de la alimentación) en un dispositivo de E/S (como un error de paridad en una cinta, un fallo de conexión en una red o un problema de falta de papel en una impresora) o en los programas de usuario (como, por ejemplo, un desbordamiento aritmético, un intento de acceso a una posición de memoria ilegal o un uso excesivo del tiempo del CPU). Para cada tipo de error, el sistema operativo debe llevar la acción apropiada para asegurar un funcionamiento correcto y coherente. Las facilidades de depuración puede mejorar en gran medida la capacidad de los usuarios y programadores para utilizar el sistema en forma eficiente.

19 Hay disponible, otro conjunto de funciones del sistema operativo que no están pensadas para ayudar a el usuario, sino para garantizar la eficiencia, el propio sistema. Los sistemas múltiples usuarios, pueden ser mas eficientes cuando se comparten los recursos del equipo entre distintos usuarios. Asignación de Recursos. Cuando hay varios usuarios, o hay varios trabajos ejecutándose al mismo tiempo, debe asignarse a cada uno de ellos los recursos necesarios. Por ejemplo, para poder determinar cual es el mejor modo de usar la CPU, el sistema operativo dispone de rutina de planificación de la CPU que tiene en cuenta la velocidad del Procesador, los trabajos que tienen que ejecutarse, el numero de registros disponibles y otros factores. También puede haber rutinas para asignar impresoras, modem, unidades de almacenamiento USB y otros periféricos. Responsabilidad. Normalmente conviene hacer un seguimiento de qué usuarios emplean qué clases de recursos de la computadora y en que cantidad. Estas cantidades pueden ser utilizados para fines

20 … estadísticos a fin de poder utilizar esta herramienta en investigaciones, con fines de poder reconfigurar el sistema y así de mejorar los servicios informáticos.- Protección y Seguridad: Los propietarios de la información almacenada en un sistema de computadoras en red o multiusuario necesita a menudo poder controlar el uso de dicha información. Cuando se ejecutan de forma concurrente varios procesos distintos, no debe ser posible que un proceso interfiera con los demás procesos o con el propio sistema operativo. La protección implica asegurar que todos los accesos a los recursos del sistema estén controlados. También es importante garantizar la seguridad del sistema frente a posibles intrusos; dicha seguridad comienza por requerir que cada usuario se autentique ante el sistema, usualmente mediante una contraseña, para obtener acceso a los recursos del mismos.

21 La interface de entre un sistema operativo y los programas está definida por un conjunto de operaciones extendidas que el sistema operativo ofrece. Estas funciones se han llamado tradicionalmente llamadas al sistema. Las llamadas disponibles en la interfaz varían de un sistema operativo a otro (aunque los conceptos subyacentes tiendan a ser similares) Entre las opciones a escoger tenemos: 1. Generalidades Vagas (los sistemas operativos tienen llamadas al sistema para leer archivos) 2. MINIX tiene una llamada al sistema READ con 3 parámetros: Uno para especificar el archivos, uno para indicar donde debe colocarse los datos y uno para indicar cuanto bytes debe leerse Vamos a elegir la segunda opción, si bien esto implica mayor trabajo, pero nos permite entender mejor qué es realmente lo que hacen los sistemas operativos. Las llamadas al sistema MINIX pertenecen a dos categorías amplias: las que se ocupan de los procesos y las que se ocupan de los sistemas de archivos.

22 Como todo sabemos un proceso es un programa en ejecución. Cada procesos tiene asociado un espacio de direcciones, una lista de posiciones de memoria desde algún mínimo (usualmente cero 0) hasta un máximo, que el proceso puede lee y escribir. El espacio de direcciones contiene el programa ejecutable, los datos del programa, y su pila. A cada proceso también se asocia un conjunto de registros, que incluyen el contador de programa, el apuntador de la pila y otro registros de Hardware, como así también toda la información necesaria para mantener ese programa en funcionamiento. Aparte del contenido de su propio espacio de direcciones, parte de la información se almacena en una tabla del sistema operativo llamada tabla de procesos, que es un arreglo (o lista enlazada) de estructuras, una para cada proceso existente en ese momento. Si un proceso puede crear uno o más procesos distintos (denominados procesos hijo) y esto a su vez pueden crear procesos hijos, pronto llegamos a la estructura de árbol de procesos.

23 A B C E F D Un árbol de procesos. El proceso A creó dos procesos hijos, B y C. El proceso B creo tres procesos hijos D, E y F

24 Los procesos relacionados que están cooperando para realizar una tarea menudo necesitan comunicarse entre sí y sincronizar sus actividades. Esta comunicación se llama comunicación entre procesos. A B C F E D

25 Por ejemplo, un proceso que se comunica con proceso en una computadora distinta lo hace enviando mensaje por una red. A fin de prevenir la posibilidad de que un mensaje o su respuesta se pierda el remitente puede solicitar que su propio sistema operativo le notifique cuando haya transcurrido cierto número de segundo, a fin de poder retransmitir el mensaje si todavía no ha llegado el acuso de aviso. Después de establecer este temporizador, el programa puede seguir realizando otros trabajos. El administrador del sistema asigna un uid (identificador de usuario) a cada persona autorizada para usar MINIX. Cada proceso iniciado en MINIX tiene un uid de la persona o usuario que lo inicio. Un proceso hijo tiene el mismo uid que su padre. Un uid, llamado SUPERUSUARIO (root) tiene facultades especiales, y puede violar muchas de las reglas de protección.

26 La otra categoría amplia de llamadas a sistema se relaciona con el sistema de archivos. Es obvio que se necesita llamadas al sistema para crear, eliminar, leer, y escribir archivos. Antes que un archivo pueda leerse, debe abrirse y después de leer debe cerrarse, asi también se incluyen llamadas para hacer esta cosas. A fin de contar con un lugar para guardar los archivos, MINIX tiene un concepto de directorio como mecanismo para agrupar los archivos. Por lo tanto se necesitan llamadas al sistema para crear y eliminar directorios. Las entradas de directorios pueden ser archivos u otros directorios. Este modelo también da pie a una jerarquía - el sistema de archivos –

27 Directorio Raiz EstudiantesProfesorado Prof. Salas Prof. Borjas Prof. Ruiz Luis Matilde Roberto CursosArtículosComités Subvenciones Archivos CS101 CS105 SOSP COST-11

28 Las jerarquías de procesos están organizadas como arboles, pero hasta ahí llega la similitud. Las jerarquías de procesos no suelen ser muy profundas (casi nunca tienen más de tres niveles), en tanto que los archivos comúnmente tienen cuatro, cinco o incluso más niveles de unos cuatros minutos como máximo, en tanto que la jerarquía directorio podría existir durante años. La propiedad y protección también es diferente para los procesos y para los archivos. Típicamente, sólo un proceso padre puede controlar o incluso acceder a un proceso hijo, pero casi siempre existen mecanismos para permitir que los archivos y directorios sean leídos por un grupo más amplio que solo el propietario.

29 Cada archivo dentro de la jerarquía de directorios se puede especificar dando su nombre de ruta a partir del tope de la jerarquía de directorios el directorio raíz. Semejantes nombres de rutas absolutos consisten en la lista de directorios por los que se debe pasar partiendo del directorio raíz para llegar al archivo, separando los componentes con diagonales. En la misma grafica, la ruta del archivo CS101 es /Profesorados/Prof. Ruiz/Cursos/CS101. La diagonal inicial indica que la ruta es absoluta, es decir, que comienza en el directorio raíz. En todo momento, cada proceso tiene un directorio de trabajo actual, en el cual se buscan los archivos cuyos nombres de ruta no comienzan con una diagonal. Por ejemplo, si /profesorado/Prof. Ruiz fuera el directorio de trabajo, el empleo del nombre de ruta es Cursos/CS101 se referiría al mismo archivo que el nombre de ruta absoluta dado en el párrafo anterior. Los procesos pueden cambiar de directorio de trabajo emitiendo una llamada al sistema que especifique el nuevo directorio de trabajo.

30 Los archivos y directorios en MINIX se protegen asignando a cada uno un código de protección binario de 9 bits. El código de protección consiste en tres campos de 3 bits, uno para el propietario uno para otros miembros del grupo del propietario (el administrador del sistema divide a los usuarios en grupos) y uno para toda la demás gente. Cada campo tiene un bit para acceso de lectura, uno para acceso de escritura y uno para acceso de ejecución. Estos tres bits se conocen como bits rwx. Por ejemplo, el código de protección rwxr-x--x significa que el propietario puede leer, escribir o ejecutar el archivo, otros miembros del grupo pueden leer o ejecutar (pero no escribir) el archivo, y el resto de la gente puede ejecutar (pero no leer ni escribir) el archivo. En el caso del directorio, x indica el permiso de búsqueda. Un guión significa que el permiso correspondiente está ausente.

31

32 Tipo de Archivo Permisos Nombre del Propietario Nombre del Grupo Tamaño del Archivo/Directori o (bytes) Fecha de la ultima modificación Nombre del Archivo Nº de Links

33 rwx r-x r -x Propietario Grupo Otros read write execute

34


Descargar ppt "Tecnicatura Superior en Programación 2do Cuatrimestre Docentes: Lic. Laz Contreras, Gustavo A Ing. Torrico Terrazas, Henry A. Universidad Tecnológica Nacional."

Presentaciones similares


Anuncios Google