Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Introducción a los Sistemas Operativos
Sistemas Operativos I Introducción a los Sistemas Operativos
2
Contenidos Fundamentación de la necesidad de un Sistema Operativo (SO). Historia de los SO. Familias de SO: Unix. BSD. NT. BeOS. Mac. VMX. IBM. PalmOS. Symbian. QNX. Redes y la necesidad de resolver el problema distribuidamente: Modelo DoD.
3
Introducción Un computador está integrado por: Hardware
Programas del sistema y Aplicaciones.
4
¿Qué es un Sistema Operativo?
Máquina extendida (ó máquina virtual) Oculta los detalles acerca de cómo se realizan las acciones. Presenta al usuario una máquina virtual, mas simple de utilizar. Controlador de recursos Cada programa obtiene tiempo para emplear cada recurso. Cada programa obtiene espacio de los recursos.
5
Generaciones de computadoras
Primera generación: Válvulas al vacío, conexiones semejantes a pizarras Segunda generación: transistores, sistemas de procesamiento por lotes mainframes Tercera generación – 1980 Circuitos Integrados (ICs) y multiprogramación mainframes y minicomputers Cuarta generación 1980 – presente Computadores personales, dispositivos móviles, computadores embebidos. mainframes, minicomputers y microprocessors
6
Historia de los SO Los computadores a transistores de la segunda generación, 1955 a 1965, comienzan a utilizar sistemas de procesamiento por lotes (batch processing systems): Los programadores llevan las tarjetas perforadas a un IBM 1401 1401 lee los datos y los coloca en bandas magnéticas El operador lleva la cinta a la IBM 7094 7094 lee la cinta de entrada, realiza los cálculos y coloca los resultados en la cinta de salida El operador lleva la cinta de resultados a la 1401 1401 imprime los resultados para su entrega a los programadores.
7
Historia …(2) Se crea el concepto de trabajo (job), una estructura lógica relacionada con la organización del empleo del computador: Estructura de un job en Fortran Monitor System - FMS
8
Historia …(3) Con la tercera generación, 1965 a 1980, aparecen los Circuitos Integrados y la Multiprogramación: Sistema de multiprogramación con tres trabajos (jobs) en memoria.
9
Componentes de un PC Monitor Bus Un computador personal simple de cuarta generación está integrado por: Unidad Central de Procesos (CPU), Memoria, Controlador de vídeo, Controlador de teclado, Controladores de unidades de discos, Controladores para otros dispositivos, y Bus para direcciones, datos y control.
10
Proceso de una instrucción
Se muestra el proceso en: (a) Pipeline en tres etapas (b) CPU superscalar
11
Jerarquía típica de la memoria
Registros Cache Memoria principal Disco Cinta
12
Estructura de una unidad de disco
Cabezas de lectura / escritura Brazo Superficies
13
Memoria Ubicación de un proceso con: Una dirección base límite
Dos direcciones base límites
14
Mecanismo de Interrupción
(b) (a) Pasos para iniciar un dispositivo de E/S y obtener interrupciones desde el mismo. (b) Como se interrumpe a la CPU.
15
Estructura de un Pentium
Structure of a large Pentium system
16
Conceptos de los SO Llamadas al sistema (system calls): Constituyen la interfaz entre el SO y los programas. Se define como el conjunto de “instrucciones ampliadas” que crean, eliminan y utilizan varios objetos del software controlados por el sistema operativo. Proceso (process): Concepto central. Esencialmente es un programa en ejecución: código ejecutable, datos y pila, contador de programa y otros registros, así como cualquier otra información necesaria para ejecutar el programa. Tabla de Procesos: Arreglo (ó lista) de estructuras que contiene una entrada por cada proceso existente en un momento dado.
17
Conceptos …(2) Árbol de procesos (process tree): Un proceso puede crear uno ó mas procesos hijos, los cuales pueden, a su vez, crear sus propios procesos hijos, de donde se obtiene una estructura de árbol: El proceso A creó dos hijos: B y C. Por su parte, el proceso B creó a los procesos hijos D, E y F.
18
Conceptos … (3) Intérprete de comandos (shell): Proceso que lee comandos de un terminal y ejecuta las necesarias llamadas al sistema para cumplir la tarea solicitada. Mensaje (Message): Manera en que se comunican los procesos. Señal (signal): Tipo de mensaje que envía el SO a los procesos para indicar eventos. Identificación del Usuario (uid): Indica cual usuario está ejecutando cada proceso. Es fundamental en sistemas multiusuarios. Identificación de Grupos (gid): Los usuarios se organizan en grupos: equipos de proyecto, departamento, etc; ó según su rol en la organización: estudiante, administrativo, profesor, etc. Conjuntamente con el uid, el gid ayuda a la protección de la información contenida en el computador.
19
Archivos Categoría muy importante.
Oculta las especificidades y detalles asociados con el manejo de los discos y demás dispositivos de Entrada / Salida. Presenta un modelo agradable y transparente, fácilmente comprensible, que es independiente de los dispositivos. Es muy común el concepto de Directorio (Carpeta, Folder) como manera de agrupar los archivos. Los datos de un directorio pueden ser archivos u otros directorios, por lo que se puede crear una jerarquía:
20
Jerarquía de un sistema de archivos
21
Acceso a los archivos Cada archivo de la jerarquía está identificado de manera única mediante el nombre de la ruta de acceso, que es el camino que debe recorrerse para llegar hasta dicho archivo partiendo desde la parte superior de la jerarquía, el directorio raíz (root). Ejemplos: Windows: C:\AppServ\www\index.html UNIX like: /var/www/html/index.html En cada momento, para cada proceso, los sitemas UNIX like tienen activo un directorio de trabajo en el que se buscan aquellos nombres de ruta de acceso que no comiencen con /
22
Montaje de dispositivos
Antes del montaje, los archivos en la unidad de discos flexibles están inaccesibles. Después de montada la unidad de disquetes como b, los archivos del disco flexible especificado forman parte de la jerarquía del sistema de archivos.
23
Protección de la privacidad de los archivos
Si varios usuarios tienen acceso a la misma computadora, es importante tener medios para proteger la privacidad de los directorios y archivos individuales. También deberá contarse con medios para proteger contra escritura ó ejecución indebida algunos archivos que cumplen funciones necesarias a la integridad y disponibilidad del computador. Comúnmente se emplean indicadores, conocidos como bits rwx (Read, Write, eXecute), que indican quienes pueden leer, escribir ó ejecutar un determinado archivo. Los sistemas UNIX like, utilizan 9 bits correspondientes a las categorías propietario, miembros del grupo y restantes usuarios. Como ejemplo: el valor rwxr-x--x indica que el grupo puede leer y ejecutar el archivo correspondiente, mientras que los restantes usuarios sólo pueden ejecutarlo.
24
Acceso a los archivos Antes de leer ó escribir archivos, se necesita abrirles (open). En este momento, el SO valida los permisos correspondientes. Si se permite el acceso, se devuelve un descriptor de archivo (handler) para usarlo en las siguientes operaciones. Si se prohíbe el acceso, se devuelve un código de error.
25
Archivos especiales Abstracciones mediante las cuales los usuarios realizan operaciones de entrada / salida sin tener en cuenta detalles del hardware. Cada dispositivo físico de E/S se representa como un archivo especial, que permite leer ó escribir sobre el dispositivo y que el mismo se vea como un archivo. Existen varios tipos de archivos especiales: de bloques: Usados para modelar dispositivos que constan de conjuntos de bloques con direccionamiento aleatorio, como los discos. de red: Modelan dispositivos que constan de flujos de caracteres, en lugar de bloques de tamaño fijo. de carácter: Corresponden a dispositivos orientados al trabajo con caracteres individuales, tales como terminales (teclado y pantalla), impresoras e interfaces de red.
26
Entrada y Salida estándar
Existen dos archivos especiales de carácter conocidos como Entrada estándar (STDIN) y Salida estándar (STDOUT) asociados con la terminal colocada como consola del operador. Típicamente, al iniciar un proceso, STDIN se asocia con el descriptor de archivo 0, mientras que STDOUT se refiere al descriptor de archivo 1. Los SO UNIX – like definen también un archivo especial asociado a la salida estándar de errores, STDERR, que comúnmente se asocia con el descriptor de archivo 2. Este archivo también se visualiza por la terminal de consola.
27
Tubos (Pipes) Un tubo es una especie de seudo archivo que se puede utilizar para conectar dos procesos, de manera que la salida del primer proceso constituye la entrada al segundo proceso. Cuando el proceso A desea enviar datos al proceso B, escribe en el tubo como si fuera un archivo de salida. Cuando el proceso B necesita leer datos enviados por A, los leerá desde el tubo, como si fuera desde un archivo previamente grabado por A.
28
Pasos de una llamada al sistema
Hay 11 pasos en read (fd, buffer, nbytes): Guardar nbytes en la pila Guardar dirección del buffer en la pila Guardar handler del archivo en la pila Llamada al procedimiento de servicio read Poner código en registro Llamada al despachador Activación del acceso Llamada a la función READ del sistema Lectura Retorno al usuario Colocar el puntero de la pila en el lugar apropiado.
29
Algunas llamadas al sistema para manejo de procesos
Descripción pid = fork() Crea un proceso hijo idéntico al padre. pid = waitpid(pid, &statloc, options) Espera por que un proceso hijo termine. s = execve(nombre, argv, environp) Reemplaza la imagen en memoria de un proceso. exit(status) Termina de ejecutar un proceso y devuelve su estado.
30
Algunas llamadas al sistema para manejo de archivos
Descripción fd = open(nombre_archivo, como, …) Abre el archivo nombre_archivo de acuerdo a lo indicado en como (lectura, escritura ó ambas) con las indicaciones que siguen… s = close(fd) Cierra el archivo abierto cuyo handler es fd. n = write(fd, buffer, nbytes) Escribe nbytes ubicados en buffer al archivo fd.
31
Llamadas de directorio
mkdir: para crear un nuevo directorio. rmdir: para eliminar un directorio vacío. link: para enlazar directorios. Permite que un nuevo nombre identifique y apunte a otro directorio. unlink: Elimina un enlace de entrada de directorio. mount: Permite montar un nuevo sistema de archivos. umount: Permite desmontar un sistema de archivos previamente montado.
32
Llamadas para otras tareas
chdir (cd): cambiar directorio de trabajo. chmod (attrib): cambiar los bits rwx de protección de un archivo kill: envío de una señal a un proceso. time: obtención del tiempo
33
Boceto de un shell while (TRUE) { /* repetir infinitamente */
type_prompt( ); /* mostrar el “prompt” */ /* Leer entrada desde la terminal */ read_command (command, parameters) /* Código de chequeo del padre: */ if (fork() != 0) { /* ¿Está activo proceso hijo? */ waitpid( -1, &status, 0); /* Esperar porque termine el hijo */ } else { /* Si el hijo no está activo, ejecutar comando */ execve (command, parameters, 0);
34
SO Monolítico La estructura monolítica de SO es la mas común.
En ella, el SO es una colección de procedimientos, cada uno de los cuales puede llamar a los demás cada vez que lo requiera. Cada procedimiento tiene una interfaz bien definida en términos de parámetros para llamada y de resultados. No se oculta información, ya que cada procedimiento es visible para todos los demás.
35
SO Monolítico (2) Los servicios (llamadas al sistema) se solicitan colocando los parámetros en la pila (stack) para después ejecutar una instrucción especial de trampa denominada llamada al núcleo ó llamada al supervisor. Esta instrucción cambia la máquina del modo usuario al modo núcleo (ó modo supervisor), y transfiere el control al SO. El SO examina los parámetros de la llamada, identifica al procedimiento de servicio y le entrega el control. Al terminar la ejecución de la llamada, el control regresa al programa del usuario. Distribución de la memoria asignada a un proceso: área del código, datos, pila y espacio intermedio entre ambos.
36
Sistemas con capas Generalizan el punto de vista anterior.
El SO se organiza como una jerarquía de capas, cada una construida sobre la inmediata inferior. Ejemplo: Capa 0: Asignación del procesador y multiprogramación. Capa 1: Administración de la memoria y del disco. Capa 2: Comunicación operador – proceso. Capa 3: Control de entrada / salida. Capa 4: Programas del usuario (aplicaciones). Capa 5: El operador del sistema.
37
Máquinas Virtuales Un monitor de máquina virtual se ejecuta en el hardware simple y realiza la multiprogramación, proporcionando varias máquinas virtuales a la siguiente capa superior. Las máquinas virtuales NO son máquinas extendidas, con archivos u otras características. Son copias exactas del hardware simple, con sus modos núcleo/usuario, E/S, interrupciones y demás elementos de la máquina real. Cada máquina virtual puede ejecutar un SO diferente que sea ejecutable en el hardware. Estructura de VM/370 con CMS
38
Modelo Cliente - Servidor
Una tendencia de los SO modernos es explotar la idea de mover el código a capas superiores para mantener un núcleo mínimo, implantando la mayoría de las funciones del SO en los procesos del usuario. Para solicitar un servicio, un proceso del usuario denominado proceso cliente envía la solicitud a un proceso servidor, quien realiza el trabajo y envía la respuesta. Al separa un SO en partes, cada una de ellas controla sólo algunos elementos, como el servicio a archivos, a procesos, a terminales ó de la memoria; por lo que cada parte es mas pequeña y controlable.
39
Modelo Cliente - Servidor
Además, como todos los procesos se ejecutan en modo usuario, no en modo núcleo, no tienen acceso al hardware, por lo que un error no afecta al computador en general. Otra de sus ventajas es su fácil capacidad de adaptación para su uso en los sistemas distribuidos: Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si el mensaje se maneja de forma local en su máquina ó si se envía por medio de una red a un servidor en una máquina remota. Para el cliente, envió una solicitud y recibió una respuesta. El modelo Cliente – Servidor en un sistema distribuido.
40
Núcleo monolítico vs micronúcleo
En el diseño e implementación de SO distribuidos está ganando terreno el empleo de estructuras micronúcleo (b) frente a los clásicos sistemas monolíticos (a), debido a que con éstos se obtienen sistemas mas simples, pequeños, fáciles de comprender y de mantener; lo que redunda en mayor confiabilidad y disponibilidad, así como mejor desempeño y mejores opciones de escalabilidad y replicación.
41
Sistemas UNIX - like
42
Tipos de SO Investigar sobre ellos en Wikipedia bajo la Categoría Sistemas Operativos: las principales características: aplicación, plataformas de hardware, etc. BeOS: BSD OS IBM OS/2: Mac OS: NT OS: Palm OS: QNX: Symbian OS: UNIX:
43
Clasificación Lotes (Batch) Interactivo
Tiempo compartido (Time sharing) Tiempo Real (Real time) de Red (Network) Distribuido (Distributed)
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.