procesadores, memoria principal, y dispositivos de entrada/salida. I El hardware de una computadora es el equipo fı́sico. I El software de una computadora se divide en dos grandes categorı́as: El sistema operativo y los programas de aplicación I Los programas de aplicación utilizan el hardware de la computadora para resolver los problemas de los usuarios. I El sistema operativo por otro lado, se encarga de controlar el acceso al hardware por parte de los usuarios. Figura: Sistema de Computacion Introducción a Sistemas Operativos
I Una computadora moderna consiste de uno o más
procesadores, memoria principal, y dispositivos de entrada/salida. I La administración de todos los componentes es un trabajo difı́cil. I El sistema operativo es implementado para proveer la administración de los recursos. I Definición: Un sistema operativo es una interfaz entre el hardware de una computadora y el usuario (programas o personas) que facilita la ejecución de otros programas y el acceso a recursos de hardware y software. Introducción a Sistemas Operativos I El hardware consiste en chips, tarjetas, discos, y dispositivos similares I El sistema operativo es la pieza fundamental del software y se ejecuta en modo kernel y modo usuario. Figura: Capa donde se ubica un I Modo kernel tiene acceso sistema operativo. completo al hardware y puede ejecutar cualquier instrucción. I Modo usuario tiene acceso sólo a ciertas instrucciones de la máquina (aquellas que no afectan el control de la máquina). Actividad I: Historia y Evolución de los Sistemas Operativos
I Realice por parejas una linea de tiempo sobre la evolución de
los sistemas operativos a partir de la lectura 2.
I Identifica los periodos de tiempo en la evolución.
I Identifica la caracterı́stica principal de éste periodo de tiempo. I Dibuja tu linea de tiempo, ilustra y describe el periodo en base a dicha caracterı́stica. Reseña del hardware de computadora
I Los sistemas operativos están bastante ligados al hardware en
donde se ejecuta. I Permite utilizar el conjunto de instrucciones de la computadora y sus recursos.
Figura: Componentes de una computadora personal.
Reseña del hardware de computadora Procesador
I El CPU obtiene instrucciones de la memoria y las ejecuta.
I El ciclo básico es la obtención de instrucciones, decodificación para determinar tipo y operandos, y ejecución. I Cada CPU tiene un conjunto de instrucciones que puede ejecutar. I Un procesador x86 no puede ejecutar programas para ARM y viceversa. I Se utilizan registros dentro del CPU debido a que el acceso a memoria es más lento que la ejecución de instrucciones. I Los registros se utilizan para guardar variables y resultados temporales. Reseña del hardware de computadora Procesador
I Un contador de programa es un registro especial que
contiene la dirección de memoria de la siguiente instrucción a ser obtenida. I El contador de pila apunta al principio de la pila de memoria actual. I La pila contiene los parámetros de entrada, variables locales, y variables temporales de procedimientos en ejecución. I El registro palabra de estado del programa, PSW de sus siglas en inglés, contiene los códigos de condición (asignados cuando se ejecutan instrucciones de comparación), prioridad en CPU, el modo (usuario o kernel), entre otros. I El sistema operativo debe hacer uso de estos registros para su correcto funcionamiento. Reseña del hardware de computadora Procesador I Los CPU modernos tiene la capacidad de ejecutar más de una instrucción a la vez. I Puede estar ejecutando la instrucción n, decodificando la instrucción n + 1, y estar obteniendo también la instrucción n + 2. A esto se le conoce como canalización. I Aún más avanzado que el diseño de una canalización es la CPU superescalar, en donde hay varias unidades de ejecución. Ej. una para aritmética de enteros, otra para aritmética de flotantes y otra para las operaciones booleanas. Dos o mas instrucciones se obtienen a la vez, se decodifican y se vacı́an en un buffer de contención hasta que se pueden ejecutar. Reseña del hardware de computadora Procesador
I Cuando un proceso corre en modo kernel, controlado por un
bit en PSW, el CPU puede ejecutar todas las instrucciones disponibles. I En modo usuario, sólo permite un conjunto de instrucciones. I Generalmente, todas las instrucciones de E/S y protección de memoria no están disponibles. I Se deben utilizar llamadas de sistema, una instrucción TRAP o trampa cambia el modo de kernel a usuario. I Interrupciones de hardware en situaciones excepcionales también utilizan trampas para indicar errores. Reseña del hardware de computadora Memoria
I El sistema de memoria es el segundo componente más
importante de cualquier computadora, está construido en capas jerárquicas. I Las capas superiores cuentan con mayor velocidad, menor capacidad, y mayor costo por bit que las inferiores.
Figura: Jerarquı́a de memoria. Los valores son aproximaciones.
Reseña del hardware de computadora Memoria
I Los registros tienen un tamaño de 32 × 32 bits en un CPU de
32 bits y de 64 × 64 en un CPU de 64 bits. I La memoria principal se encuentra dividida en lı́neas de caché, tı́picamente de 64 bytes. I Cuando se requiere leer una palabra de la memoria, se verifica si se encuentra en caché, si se encuentra tenemos acierto en caché. I Se toman en cuenta las siguientes cuestiones en un sistema de caché: 1. ¿En qué momento incorporar nuevos elementos en caché? 2. ¿Cuál lı́nea de caché incorporar? 3. ¿Cuál item remover de la caché cuando se requiere un espacio? 4. ¿En dónde colocar el nuevo item? Reseña del hardware de computadora Memoria I El primer nivel de caché (caché L1) se encuentra dentro del CPU y alimenta de instrucciones decodificadas. I La caché L2 contiene varios megabytes de palabras utilizadas recientemente.
Figura: (a) Chip quad-core con caché L2 compartida. (b) Chip quad-core con caché L2 dedicada. Reseña del hardware de computadora Memoria
I La memoria principal es llamada RAM (Memoria de acceso
aleatorio). I Las peticiones del CPU que no se encuentran en caché se buscan en la memoria principal. I La memoria ROM (Memoria de sólo lectura) se encuentra programada por el fabricante y es utilizada para el inicio del hardware. I La memoria CMOS (semiconductor complementario de óxido metálico) es utilizada para almacenar la fecha y hora actuales. Contiene alimentación de energı́a propia. Reseña del hardware de computadora Discos
I Los discos tienen mayor capacidad y son más económicos,
aunque su velocidad de acceso es mucho menor. I Un disco contiene uno o más platos de metal que rotan a 5,400, 7,200, 10,800 RPM o más.
Figura: Estructura de un disco duro.
Reseña del hardware de computadora Discos
I Los discos de estado sólido (SSD) son arreglos de memorias
flash. I La mayorı́a de sistemas operativos soportan memoria virtual que permite la ejecución de programas con requerimientos mayores a la memoria fı́sica ocupando espacio en disco. I La unidad me manejo de memoria (MMU) se encarga del empate de la dirección de memoria en direcciones fı́sicas en RAM. Reseña del hardware de computadora Dispositivos E/S
I Los dispositivos de E/S interactúan directamente con el
sistema operativo. I Están conformados por un controlador y el dispositivo en sı́. I El software que se comunica con el controlador (chip) se le llama controlador. I Los controladores trabajan a nivel de usuario o kernel dependiendo del sistema operativo. Reseña del hardware de computadora Dispositivos E/S
I La entrada y salida de datos se puede realizar de tres
maneras: 1. El método espera-ocupado utiliza una llamada al sistema para llamar al controlador y continuamente sondear al dispositivo. Consume tiempo en CPU. 2. El método de interrupción, permite al dispositivo realizar una interrupción cuando se encuentre disponible mientras continúa realizando operaciones. 3. El método de acceso directo a memoria o (DMA) es un chip que controla el dispositivo directamente sin intervención del CPU. Reseña del hardware de computadora Buses I Los sistemas actuales cuentan con varios buses que permiten la interacción entre dispositivos de E/S y el procesador. I ETipos de buses: PCI, PCIe, USB, SATA, DMI y el SCSI.
Figura: Estructura de un sistema x86.
Conceptos de Sistemas Operativos Procesos
I Los procesos son programas en ejecución.
I Asociado a cada proceso se encuentra un espacio de direcciones, que es una lista de ubicaciones en memoria de las cuales el proceso puede leer y escribir. I El espacio de direcciones contiene el programa ejecutable, los datos del programa y su pila. I Se asocian también un contador de programa y un contador de pila, lista de archivos abiertos, lista de procesos relacionados, y toda la información requerida por el programa. I A cada persona autorizada para utilizar un sistema se le asigna un UID (identificación de usuario). I Cada proceso tiene un UID. Conceptos de Sistemas Operativos Procesos
I Cuando los procesos crean uno o más procesos se recurre a
una estructura de árbol. I Los procesos relacionados se comunican a través de un método llamado comunicación interproceso.
Figura: Árbol de procesos. El proceso textitA creó dos procesos hijos, B y
C. El proceso B creó tres hijos, D, E, y F. Conceptos de Sistemas Operativos Espacio de direcciones
I La memoria principal se utiliza para almacenar programas en
ejecución. I Sistemas operativos sofisticados permiten múltiples programas en memoria. I Cada proceso tiene su propio espacio de memoria. I Cuando un proceso requiere mas de la memoria fı́sica disponible se utiliza la memoria virtual. I Se hace una traducción de la dirección de memoria fı́sica a un espacio en el disco duro. Conceptos de Sistemas Operativos Archivos
I El sistema de archivos es un concepto clave en cualquier
sistema operativo. I Se requiere de un modelo de abstracción que esconde peculiaridades de archivos dependientes del dispositivo. I Se utiliza el concepto de directorio para el agrupamiento de los archivos. I En cada directorio puede haber más directorios o archivos. I El directorio raı́z es el primer nodo de la jerarquı́a. I Cada proceso tiene un directorio actual. Conceptos de Sistemas Operativos Archivos
Figura: Sistema de archivos del departamento de una universidad.
Conceptos de Sistemas Operativos Archivos
I En sistemas tipo UNIX, existen archivos especiales que
permiten ver a dispositivos de E/S como archivos. I Se pueden leer y escribir de la misma manera que los archivos tradicionales. I Una tuberı́a es un pseudo-archivo utilizado para la comunicación entre dos procesos. I Para comunicarse, un proceso escribe en el pseudo-archivo y el otro lee el pseudo-archivo. Conceptos de Sistemas Operativos Archivos
Figura: (a) Antes de montar el dispositivo, el CD-ROM no es accesible.
(b) Después de montar el dispositivo, son parte de una jerarquı́a de archivos. Llamadas al sistema
I La función read es una llamada al sistema para la lectura de
un archivo. I La función tiene 3 parámetros: la ruta al archivo, un puntero al buffer, y el número de bytes a leer. I La llamada al sistema regresa el número de bytes leı́dos a una variable. I Las llamadas al sistema permiten tener un control sobre la manera en que se realizan procesos en el sistema operativo. Sistemas Operativos más Comunes I Windows: Sistema operativo más instalado jamás creado, del gigante Microsoft Windows ha dominado el mercado de los sistemas operativos por mas de una década desde el primer Windows en consola hasta su último producto. I Linux: Sistema operativo en auge, posiblemente sea debido a que se trata de software libre, se distribuye de forma gratuita y de código abierto. Es uno de los sistemas operativos más seguros. I Mac OS: Es posiblemente el segundo sistema operativo más instalado desde su puesta en el mercado por Steve Jobs. Ha creado una sensación entre el núcleo más especializado de los usuarios de informática. I Android: Se trata del sistema operativo móvil con más prospección de futuro, de mano de Google se ha ido implantando desde 2009 con un enorme éxito. Sistemas Operativos no Convencionales
I TempleOS: Es un sistema operativo creado para hablar con
Dios. Y las plegarias son respondidas, o al menos eso asegura su creador Terry Davis. Un programador esquizofrénico que ha pasado doce años de su vida construyendo desde cero un sistema operativo, como hizo Noé cuando construyó el arca. I Construido con más de 100 000 lı́neas de código creadas por una sola persona. I MenuetOS: Es un sistema operativo preventivo en tiempo real y multiprocesador en desarrollo para la PC escrito completamente en un lenguaje ensamblador par 32/64 bits. I Minix: Es un sistema operativo diseñado para ser altamente flexible, confiable y seguro. Actividad II.- Investigación
I Introducción: Los Sistemas Operativos se pueden estructurar
en varias formas, en sistema monolı́tico, jerarquı́a de capas, microkernel, cliente-servidor, máquina virtual o exokernel. I Descripción de la actividad: Investigar y presentar por equipos los siguientes temas (máximo 10 minutos por equipo): I Equipo 1. Sistemas operativos monolı́ticos. I Equipo 2. Sistemas operativos por capas. I Equipo 3. Sistemas cliente-servidor. I Equipo 4. Microkernels. I Equipo 5. Exokernels. I Equipo 6. Máquinas virtuales.