Introducción
Introducción Qué hacen Organización de los Sistemas Computacionales Arquitectura Estructura del sistema operacional Operaciones del Sistema operacional Administración de Procesos Administración de Memoria Administración de dispositivos de almacenaje Protección y Seguridad Estructura de Datos del Kernel Ambiente Computacional Sistema operativos abiertos (Open-Source)
Objetivos Describir la organización básica de los sistemas computacionales Revisar los principales componentes de los sistemas operativos Revisar algunos tipos de ambientes computacionales Explorar algunos sistemas operativos abiertos
Qué es un Sistema Operativo Un programa que actúa como un intermediario entre el usuario de un computador y su hardware Propósitos: Ejecutar los programas de los usuarios y facilitar la solución de problemas del usuario Hacer mejor uso del sistema computacional Uso eficiente del hardware
Estructura de los Sistemas Computacionales Un sistema computacional puede ser dividido en cuatro componentes: Hardware – provee los recursos computacionales básicos CPU, memoria, dispositivos de E/S Sistema Operativo Controla y coordina el uso del hardware entre distintas aplicaciones y usuarios Programas de Aplicaciones – define la manera de como los recursos del sistema son usados para resolver los problemas computacionales de los usuarios Procesadores de Texto, compiladores, navegadores WEB, sistemas de bases de datos, juegos de videos Usuarios Gente, maquinas, otros computadores
Los Cuatro Componentes de un Sistema Computacional
Lo que Hacen los Sistemas Operativos Depende del punto de vista Los usuarios quieren lo conveniente, facilidad de uso y buena performance No les importa la utilización de recursos Computadores compartidos tales como mainframe o minicomputer deben mantener al usuario satisfecho Usuarios de sistemas como workstations tienen recursos dedicados pero frecuentemente requieren recursos compartidos del servidor Computadores de mano son pobres en recursos y su optimización depende de la batería Algunos computadores tienen escaza o carecen de interfaces como los alojados en dispositivos y automóviles
Definición de Sistema Operativo OS es un focalizador de recursos Administra todos los recursos Decide entre petición conflictiva de recurso para uso justo y eficiente OS es un programa de control Controla la ejecución de los programas para prevenir errores y mejorar el uso del computador
Definición de Sistema Operativo (Cont.) No existe una definición universal “Todo que el fabricante vende cuando se compra un sistema operativo” es una buena aproximación Pero varía considerablemente “El programa que siempre está corriendo en el computador” es el kernel. Todo lo demás es o Un programa del sistema (vendido con el sistema operativo) , o Un programa de aplicación.
Encendido del Computador Programa de “Buteo” (bootstrap) se carga al encendido o al “rebuteo” Típicamente guardado en ROM o EPROM, generalmente conocido como firmware Inicializa todos los aspectos del sistema Carga el kernel y comienza la ejecución
Organización de los Sistemas Computacionales Operación Uno o mas CPUs, dispositivos de control conectados a través de un bus común para proveer acceso a la memoria compartida La ejecución concurrentes de CPUs y dispositivos compiten por los ciclos de memoria
Operacion de los Sistemas Computacionales Los dispositivos de E/S y el CPU se pueden ejecutar concurrentemente Cada dispositivo de control está encargado de un tipo particular de dispositivo Cada dispositivo de control tiene su buffer local propio El CPU mueva los datos desde y hacia la memoria desde o hacia buffers locales E/S es desde los dispositivos hacia los buffer de los controladores Los controladores de dispositivo informan al CPU que ha terminado su operación causando un interruptor
Funciones Comunes de los Interruptores Interruptores trasfieren el control de la interrupción de servicio a una rutina a través de un vector de interruptor, el cual contiene las direcciones de todas la rutinas de servicios La arquitectura de interrupción de guardar la dirección de la instrucción interrumpida Un trap o exception es una pieza de software que genera una interrupción acusada o por un error o a pedido del usuario Un sistema operativo es de tipo interrupción
Manejo de Interrupciones El sistema operativo preserva el estado de la CPU guardando registros y el contador del programa Determina que tipo de interrupción ha ocurrido polling Sistema vectoreado Separa los segmentos de código para determinara que acciones deben ser tomadas para cada tipo de interrupción
Línea de tiempo de los Interruptores
Estructura de E/S Después que empieza una E/S, el control retorna solo después que la E/S haya terminado Instrucción de espera descansa la CPU hasta la próxima interrupción Ciclo de espera (contención para acceso de memoria) Al menos una petición de E/S realizada a cada tiempo, no existe procesamiento de E/S simultaneo Después de comienzo de una E/S , el control retorna al programa sin esperar el termino de la E/S Llamada del Sistema – petición de SO para permitir la espera del usuario para el termino de la E/S Tabla del Estado del Dispositivo contiene una entrada por cada dispositivo de E/S que indica tipo, dirección y estado SO altera la tabla de E/S del dispositivo para determinar estado del dispositivo y para modificar la tabla para incluir los interruptores
Storage Definitions and Notation Review The basic unit of computer storage is the bit. A bit can contain one of two values, 0 and 1. All other storage in a computer is based on collections of bits. Given enough bits, it is amazing how many things a computer can represent: numbers, letters, images, movies, sounds, documents, and programs, to name a few. A byte is 8 bits, and on most computers it is the smallest convenient chunk of storage. For example, most computers don’t have an instruction to move a bit but do have one to move a byte. A less common term is word, which is a given computer architecture’s native unit of data. A word is made up of one or more bytes. For example, a computer that has 64-bit registers and 64-bit memory addressing typically has 64-bit (8-byte) words. A computer executes many operations in its native word size rather than a byte at a time. Computer storage, along with most computer throughput, is generally measured and manipulated in bytes and collections of bytes. A kilobyte, or KB, is 1,024 bytes a megabyte, or MB, is 1,0242 bytes a gigabyte, or GB, is 1,0243 bytes a terabyte, or TB, is 1,0244 bytes a petabyte, or PB, is 1,0245 bytes Computer manufacturers often round off these numbers and say that a megabyte is 1 million bytes and a gigabyte is 1 billion bytes. Networking measurements are an exception to this general rule; they are given in bits (because networks move data a bit at a time).
Estructura de almacenamiento Memoria Principal – es la memoria mas grande que la CPU pude acceder directamente Random access Típicamente es volátil Memoria Secundaria – extensión de la memoria principal que provee gran capacidad de almacenaje no volátil Discos duros – metal regido o laminas vidriosas cubiertas con material magnético de grabado La superficie del disco esta divida lógicamente en pistas las cuales están divididas en sectores El controlador del disco determina la interacción lógica entre el dispositivo y el computador Discos Solidos (Solid-state disks) – Mas rápidos que los discos duros, no volátil Son de diversa tecnología Se están volviendo mas popular
Jerarquía de Memorias Se organizan jerárquicamente por: Velocidad Costo Volatibilidad Caching – copia información a memorias mas rápidas, la memoria principal puede der vista como cache de la memoria secundaria Conductor del dispositivo (Device Driver) por cada dispositivo controla las E/S Provee una interfaz uniforme entre el consolador y el kernel
Jerarquía de Memorias
Caché Es un importante principio, usado en distintos niveles en un computador (en hardware, sistema operativo, software) La información en uso es copiada desde memoria lenta a rápida El cache es chequeado primero para ver si la información esta allí Si está, la información es directamente usada Si no los datos son copiados al caché para ser usado desde allí Caché es pequeño comparado con la memoria que lo utilizará La administración de caché es una decisión importante dentro del diseño Se debe determinar su tamaño y su política de reemplazo
Estructura de la Memoria de Acceso Directo Usada por dispositivos de E/S de alta rapidez capaces de transmitir a información a alta velocidad El controlador del dispositivo transfiere bloques datas entre los buffers directamente a la memoria principal sin intervención de la CPU Sólo un interruptor es generado por cada bloque, mas que un interruptor por byte
Cómo Trabaja un Moderno Computador Arquitectura von Neumann
Arquitectura de un Sistema Computacional La mayoría de los sistemas usan un simple procesador de propósito general Pero la mayoría también tienen procesores de propósitos especiales Los sistemas de multiprocesores están creciendo en usos e importancia Se conoce también como sistema paralelos o sistemas fuertemente acoplado Las ventajas incluyen: Aumento ene Rendimiento Economía de Escala Aumento en confiabilidad – menos fallas tolerante Dos tipos: Multiprocesamiento asimétrico – cada procesador se asigna a una tarea especifica. Multiprocesamiento simétrico – cada procesador realiza todas las tareas
Arquitectura de Multiprocesamiento Simétrico
Diseño de Dos Núcleos Multi-chip y múltiple núcleos (multicore) El sistema contiene todas las chips Chasis contiene múltiples sistemas separados
Sistemas Grupales (Clustered) Igual que sistemas de multiprocesadores, pero con múltiples sistemas trabajando simultáneamente Usualmente comparten memoria a través de red de memorias Proveen un servicio de alta disponibilidad a prueba de fallos Agrupamiento Asimétrico posee una machina dedicada a un modo disponible (standby) Agrupamiento Simétrico posee múltiples nodos corriendo aplicaciones y monitorea cada una Algunos agrupamientos son para computación de alto rendimiento (HPC) Las aplicaciones deben ser escritas par uso de paralelismo Alguna tienen administración distribuida de cerrojos (DLM) para evitar operaciones conflictivas
Sistemas Grupales (Clustered)