Download Usando el Sistema Operativo
Document related concepts
no text concepts found
Transcript
Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Usando el Sistema Operativo Sistemas Operativos Andrés Felipe Barco Santa Pontificia Universidad Javeriana Enero de 2010 Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Los sistemas operativos Perspectivas del Computador Los sistemas operativos Concepto general El sistema operativo es parte del software que maneja el uso del hardware por otro software del sistema y todos los software de aplicación. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Los sistemas operativos Perspectivas del Computador Perspectivas del Computador cut print send save malloc() open() fork() start-printer read-disk track-mouse Vista Usuario Vista Programador Vista Programador Final Aplicaciones Andrés Felipe Barco Santa Usando el Sistema Operativo de SO Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Recursos Abstractos Multiplexación Software confiable Recursos Abstractos El sistema operativo oculta al usuario los detalles de como la maquina opera. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Recursos Abstractos Multiplexación Software confiable Recursos Abstractos El sistema operativo oculta al usuario los detalles de como la maquina opera. Se puede operar la computadora sin tener conocimiento sobre el manejo del hardware Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Recursos Abstractos Multiplexación Software confiable Recursos Abstractos El sistema operativo oculta al usuario los detalles de como la maquina opera. Se puede operar la computadora sin tener conocimiento sobre el manejo del hardware Se extiende un modelo que sea fácil de operar comparado con usar el hardware directamente Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Recursos Abstractos Multiplexación Software confiable Recursos Abstractos El sistema operativo oculta al usuario los detalles de como la maquina opera. Se puede operar la computadora sin tener conocimiento sobre el manejo del hardware Se extiende un modelo que sea fácil de operar comparado con usar el hardware directamente La estrategia es proveer un modelo abstracto de las operaciones del hardware Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Recursos Abstractos Multiplexación Software confiable Multiplexación Abstract Machine Dos tipos de estrategias son usadas pra crear la máquina abstracta: multiplexación en tiempo y multiplexación en espacio. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Recursos Abstractos Multiplexación Software confiable Multiplexación Abstract Machine Dos tipos de estrategias son usadas pra crear la máquina abstracta: multiplexación en tiempo y multiplexación en espacio. Procesador es multiplexado en tiempo. Un solo proceso usa el procesador en determinado instante. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Recursos Abstractos Multiplexación Software confiable Multiplexación Abstract Machine Dos tipos de estrategias son usadas pra crear la máquina abstracta: multiplexación en tiempo y multiplexación en espacio. Procesador es multiplexado en tiempo. Un solo proceso usa el procesador en determinado instante. Memoria es multiplexada en espacio. Se divide en unidades, son asignadas a diferentes procesos. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Recursos Abstractos Multiplexación Software confiable Software confiable Explicit Resource Sharing Los sistemas deben permitir aislar los recursos tal que no haya conflictos. Pero además deben permitir a los procesos cooperar entre ellos para compartir recursos cada vez que se necesite. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Recursos Abstractos Multiplexación Software confiable Software confiable Explicit Resource Sharing Los sistemas deben permitir aislar los recursos tal que no haya conflictos. Pero además deben permitir a los procesos cooperar entre ellos para compartir recursos cada vez que se necesite. El sistema operativo es el único capaz de brindar dichos comportamientos (Trusted Software) Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Recursos Abstractos Multiplexación Software confiable Software confiable Explicit Resource Sharing Los sistemas deben permitir aislar los recursos tal que no haya conflictos. Pero además deben permitir a los procesos cooperar entre ellos para compartir recursos cada vez que se necesite. El sistema operativo es el único capaz de brindar dichos comportamientos (Trusted Software) Las abstracciones del SO pueden ser manipuladas por medio de su interfaz (API) Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Evolucion de los SO Evolucion de los SO Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Computacion secuencial Algoritmos, Programas y Procesos Recursos Computacion secuencial Algoritmo Un algoritmo es una colección de instrucciones junto con un orden secuencial que define como deben ser ejecutadas. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Computacion secuencial Algoritmos, Programas y Procesos Recursos Computacion secuencial Algoritmo Un algoritmo es una colección de instrucciones junto con un orden secuencial que define como deben ser ejecutadas. Una vez el programa ha sido construido, se debe: * Invocar un traductor de lenguaje especı́fico Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Computacion secuencial Algoritmos, Programas y Procesos Recursos Computacion secuencial Algoritmo Un algoritmo es una colección de instrucciones junto con un orden secuencial que define como deben ser ejecutadas. Una vez el programa ha sido construido, se debe: * Invocar un traductor de lenguaje especı́fico * Proveer datos al programa Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Computacion secuencial Algoritmos, Programas y Procesos Recursos Computacion secuencial Algoritmo Un algoritmo es una colección de instrucciones junto con un orden secuencial que define como deben ser ejecutadas. Una vez el programa ha sido construido, se debe: * Invocar un traductor de lenguaje especı́fico * Proveer datos al programa * Direccionar al SO para ejecutar el punto de entrada principal (main) Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Computacion secuencial Algoritmos, Programas y Procesos Recursos Computacion secuencial Algoritmo Un algoritmo es una colección de instrucciones junto con un orden secuencial que define como deben ser ejecutadas. Una vez el programa ha sido construido, se debe: * Invocar un traductor de lenguaje especı́fico * Proveer datos al programa * Direccionar al SO para ejecutar el punto de entrada principal (main) * Continuar ejecutando las sentencias acorde con la especificación de control Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Computacion secuencial Algoritmos, Programas y Procesos Recursos Algoritmos, Programas y Procesos Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Computacion secuencial Algoritmos, Programas y Procesos Recursos Recursos Concepto Todos los componentes, fı́sicos o lógicos, de la máquina abstracta que son necesitados para ejecutar un programa son llamados recursos. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Computacion secuencial Algoritmos, Programas y Procesos Recursos Recursos Concepto Todos los componentes, fı́sicos o lógicos, de la máquina abstracta que son necesitados para ejecutar un programa son llamados recursos. Un proceso requiere siempre de recursos para ejecutarse; minimamente requiere de la memoria ejecutable y del procesador. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Computacion secuencial Algoritmos, Programas y Procesos Recursos Recursos Concepto Todos los componentes, fı́sicos o lógicos, de la máquina abstracta que son necesitados para ejecutar un programa son llamados recursos. Un proceso requiere siempre de recursos para ejecutarse; minimamente requiere de la memoria ejecutable y del procesador. Para hacer uso de un recurso, el proceso debe primero hacer la petición de este (REQUEST). Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO Computacion secuencial Algoritmos, Programas y Procesos Recursos Recursos Concepto Todos los componentes, fı́sicos o lógicos, de la máquina abstracta que son necesitados para ejecutar un programa son llamados recursos. Un proceso requiere siempre de recursos para ejecutarse; minimamente requiere de la memoria ejecutable y del procesador. Para hacer uso de un recurso, el proceso debe primero hacer la petición de este (REQUEST). Una vez el proceso pide el recurso, debe esperar (SUSPEND) las operaciones hasta que el recurso le sea asignado. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos La API Llamadas al sistema Un sistema operativo es manipulable por medio de su APIa , es decir, usamos los métodos públicos para invocar las operaciones. a Application Programming Interface Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos La API Llamadas al sistema Un sistema operativo es manipulable por medio de su APIa , es decir, usamos los métodos públicos para invocar las operaciones. a Application Programming Interface Precisamente en un sistema operativo estas funciones públicas se denominan llamadas al sistema (SYSCALL). Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos Syscall Archivos POSIX Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos Syscall Archivos POSIX open() especifı́ca la ruta de un archivo preparando para leer o escribir (file descriptor) Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos Syscall Archivos POSIX open() especifı́ca la ruta de un archivo preparando para leer o escribir (file descriptor) close() cierra un archivo (libera el recurso) Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos Syscall Archivos POSIX open() especifı́ca la ruta de un archivo preparando para leer o escribir (file descriptor) close() cierra un archivo (libera el recurso) read() lee un archivo con ayuda del file descriptor Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos Syscall Archivos POSIX open() especifı́ca la ruta de un archivo preparando para leer o escribir (file descriptor) close() cierra un archivo (libera el recurso) read() lee un archivo con ayuda del file descriptor write() escribe sobre un archivo (similar a read) Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos Syscall Archivos POSIX open() especifı́ca la ruta de un archivo preparando para leer o escribir (file descriptor) close() cierra un archivo (libera el recurso) read() lee un archivo con ayuda del file descriptor write() escribe sobre un archivo (similar a read) lseek() cambia la posición del puntero en un byte-stream Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos Creación de Procesos Al iniciar la ejecución de un proceso además de asignarle recursos, a este se le asigna un espacio de direcciones privado. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos Creación de Procesos Al iniciar la ejecución de un proceso además de asignarle recursos, a este se le asigna un espacio de direcciones privado. Address Space Es un conjunto de componentes de la máquina (principalmente direcciones de memoria) que pueden ser referenciados por el motor de ejecución. Elementos de la pila, status, datos y bloques de programa son referenciados usando el addres space. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos API de procesos Cuando un proceso es creado se crea una instancia de una estructura de datos llamada process descriptor. El proceso posee un identificador único (PID). Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos API de procesos Cuando un proceso es creado se crea una instancia de una estructura de datos llamada process descriptor. El proceso posee un identificador único (PID). fork() crea un segundo proceso (proceso hijo). Retorna un pid. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos API de procesos Cuando un proceso es creado se crea una instancia de una estructura de datos llamada process descriptor. El proceso posee un identificador único (PID). fork() crea un segundo proceso (proceso hijo). Retorna un pid. quit() es usado para terminar la computación de un proceso. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos API de procesos Cuando un proceso es creado se crea una instancia de una estructura de datos llamada process descriptor. El proceso posee un identificador único (PID). fork() crea un segundo proceso (proceso hijo). Retorna un pid. quit() es usado para terminar la computación de un proceso. join() es usado para unir a nivel lógico dos o más procesos. Andrés Felipe Barco Santa Usando el Sistema Operativo Introducción Abstracción de Recursos Estrategias de los SO Máquina abstracta Usando el SO La API Syscall Creación de Procesos API de procesos Fin de la Clase Nos vemos en la próxima!!! Andrés Felipe Barco Santa Usando el Sistema Operativo