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