Sistemas de Computación 2000 Capitulo Sistemas Operativos 1. Panorama General - funcionamiento básico de un computador: registradores: de instrucción RI contador de programa CP de datos de uso general protección del almacenamiento: importante en sistemas multiusuario, se implementa con registros de límite interrupciones / polling: ?? acceso directo a memoria DMA: ?? Software - U. de Control esta constituido por los programas o secuencia de instrucciones que definen el algoritmo de resolución y los datos. Memoria U.A.L. una clasificación de software - Registradores - programas del sistema: manejan la operación del computador programas de aplicación: resuelven los problemas del usuario sistema operativo: estructura general del procesador programa: secuencia de instrucciones en lenguaje de máquina en memoria esquema de funcionamiento: 1 cargar R.I. con el contenido de la palabra apuntada por CP 2 actualizar la CP 3 decodificar y ejecutar la instrucción 4 ir a 1 - primeros desarrollos : hardware, software, memoria hardware: dispositivos del sistema computacional, procesadores, almacenamiento, dispositivos de e/s, conexiones de comunicación. memoria entrelazada: para acelerar el acceso a memoria principal, realizando este acceso en forma paralela si tenemos posiciones consecutivas en diferentes bancos de memoria. registro de reubicación: contiene la dirección base del programa en memoria principal. yfl - so - - conjunto fundamental de programas, que controla todos los recursos del computador y ofrece la base para escribir los programas de aplicación. algunas de las funciones del software han sido transferidas al firmware, es decir al microcódigo. administrador de recursos principales componentes de un S.O.: - manejo del proceso - entrada/salida - manejo de la memoria - sistema de archivos - interfaz con el usuario - planificación de la asignación de recursos - recuperación de errores - seguridad Sistema bancario Programas de Aplicación Compiladores Editores Interprete de comandos Sistema Operativo Programas del Sistema Lenguaje de máquina Microprogramación Hardware Dispositivos físicos función del S.O. presentar al usuario una máquina virtual más fácil de programar pág.: 1 Sistemas de Computación 2000 Capitulo Sistemas Operativos procesos archivos desarrollo histórico: - - - procesos individuales procesos batch o por lotes - ibm 1401 o de secuencia única multiprogramación - ibm 360 microprogramación emulación / simulación multiprocesamiento . SPOOL: Simultaneous Peripheral Operation On Line tiempo compartido - time sharing . Compartición de tiempo trabajando con terminales en línea. . usuarios interactivos tiempo real - disponibilidad sistemas de uso general pdp 8 / pdp 11 Ken Thompson / Dennis Ritchie --> Unix / C (gran transportabilidad) - 1980 --> computadores personales MS-DOS / UNIX (xenix) - SO en red . generalización de la utilización de estándares de comunicaciones como TCP/IP y ethernet . el usuario puede hacer login remoto - SO distribuidos . el SO se encarga de la distribución del procesamiento y del almacenamiento a través de la red. - computación en paralelo . una arquitectura clave - tendencias de I/O . reconocimiento de voz . interfaces gráficas . apoyo de realidad virtual Conceptos de Sistemas Operativos - La interfaz entre el SO y los programas de usuario se define por un conjunto de instrucciones "extendidas" conocidas como "llamadas al sistema" o "system call". system call: Proceso: programa en ejecución consiste de: programa ejecutable, los datos del programa, el stack, el contador de programa, el puntero al stack y otros registros y toda otra información necesaria para ejecutar el programa. - un ejemplo es un programa de un sistema time-sharing, que primero es suspendido para dar paso a otro proceso y luego, al ser activado, debe partir en el mismo punto. - en muchos casos, estos datos son almacenados en la que se denomina: tabla de procesos (lista encadenada). - por lo tanto, un proceso suspendido consta de: . espacio de direcciones o imagen del núcleo . registro de la tabla de procesos - las llamadas al sistema de administración del proceso, son aquellas que tienen que ver con la creación y terminación de procesos. - ejemplo: la shell o interprete de comandos lee comandos desde un terminal, esperando que el usuario termine de teclear un comando por ejemplo solicitando la compilación de un programa en C. La shell creará un proceso para ejecutar el programa compilador y al terminar se ejecutará una system call para poner fin al proceso (a si mismo). - un proceso puede crear procesos y este a otros sucesivamente , conocidos como procesos hijos, llegándose a una estructura de árbol: Cuando se requiere que varios procesos estén simultáneamente en actividad, por ejemplo un proceso que se comunica con otro proceso que reside en otra máquina, deberá enviar un mensaje por la red y espera la respuesta (eternamente?). crean borran o eliminan usan varios objetos de software administrados por SO yfl - so pág.: 2 Sistemas de Computación 2000 Capitulo Sistemas Operativos A B C existe un concepto implementado tanto en Unix como MS-DOS con el objeto de conectar dos archivos o procesos, es el pipe, una clase de pseudo archivo, soportado a través de una system call. proceso D E F proceso pipe A B Archivos - - La idea general es ocultar al usuario las características particulares de los discos y otros dispositivos de I/O. Operaciones sobre archivos: crearlos y eliminarlos leerlos y escribirlos (antes de leer en un archivo es necesario abrirlo y luego de leer, cerrarlo). - con el objeto de mantener o guardar los archivos se introduce el concepto de directorio como una forma de agruparlos. - el modelo usualmente ocupado es el jerárquico, implementado en una estructura de árbol, iniciándose en el directorio raíz. Shell o intérprete de comandos - es la interfaz primaria entre un usuario situado frente a su terminal y el sistema operativo - normalmente el shell esta a la espera de los comandos que sean tecleados en el teclado del terminal. Si el usuario teclea date el shell crea un proceso derivado y ejecuta el programa date como derivado esperando su termino. Cuando termina el shell queda nuevamente a la espera de un nuevo comando. otros comandos pueden ser: - date > archivo sort < archivo1 > archivo2 cat archivo1 archivo2 archivo3 | sort > lpt - cada archivo puede ser especificado dando su path name desde el tope del directorio, como un camino absoluto. - - los procesos tienen un working directory, el cual activan o cambian con una system call especificando el nuevo directorio de trabajo. System Calls - cuando varias personas tienen acceso a un mismo computador, es importante proveer mecanismos para proteger la privacidad de los archivos de cada uno. - para manejo de procesos para señalización para el manejo de archivos para el manejo de directorios para protección para el manejo del tiempo ¿cual es el mecanismo en Unix? y en MS-DOS? - - antes de leer o escribir en un archivo este deberá ser abierto, momento en el cual se chequean los permisos. con el objeto de facilitar el acceso a dispositivos vía operaciones de I/O, algunos SO proveen abstracciones llamadas archivos especiales, y utilizan las mismas systems calls para su acceso. Estructura de un Sistema Operativo - Sistemas Monolíticos - - Sistemas en Estratos - yfl - so a lo menos con los dos modos siguientes: modo usuario y modo supervisor o kernel organizado jerárquicamente, con cada estrato bajo el anterior pág.: 3 Sistemas de Computación 2000 Capitulo Sistemas Operativos Procedimiento Central Procedimiento de servicio Procedimientos de uso general - un ejemplo de lo anterior se muestra a continuación: - La función del kernel pasa a ser la de manejar la comunicación entre clientes y servidores. - Otra gran ventaja es la de adaptarse naturalmente para la utilización en sistemas distribuidos. Máquina 1 Máquina 2 Cliente Servidor de archivos Kernel 5 4 3 2 1 0 - Operador del S.O. Programas del usuario Administración de la entrada / salida Comunicación entre el operador y el proceso Administración de la memoria Distribución del procesador y multiprogramación Servidor de procesos Kernel Máquina 4 Servidor de terminales Kernel Kernel Red mensaje del cliente al servidor Modelo Cliente / Servidor en un sistema distribuido Referencias bibliográficas: Máquinas Virtuales - Máquina 3 Sistema creado por la IBM para mejorar la IBM-360 básicamente de procesamiento por lotes o batch, dando origen a la IBM 370. Deitel; Sistemas Operativos, cap. 2: Hardware, Software, Firmware. Tanenbaum; Sistemas Operativos Modernos cap. 1: Introducción máquinas 370 virtuales CMS CMS CMS VM / 370 hardware de la 370 "desnuda" Estructura del sistema 370 Modelo Cliente / servidor - Se trata de desplazar código a los estratos superiores y eliminar lo máximo posible del S.O. dejando un kernel mínimo. El método consiste en implementar la mayoría de las funciones del S.O. en procesos del usuario. - Para solicitar un servicio, como la lectura de un bloque de un archivo, un proceso del usuario o proceso cliente envía la solicitud a un proceso servidor, que después realiza el trabajo y devuelve la respuesta. yfl - so pág.: 4