sistemas operativos docente: juan manuel capuano

44
Sistemas Operativos Docente: Juan Manuel Capuano

Upload: alejandro-febus

Post on 28-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Operativos Docente: Juan Manuel Capuano

Sistemas OperativosDocente: Juan Manuel Capuano

Page 2: Sistemas Operativos Docente: Juan Manuel Capuano

Datos

Docente: Juan Manuel CapuanoAnalista de Sistemas graduado en UNICEN.Analista funcional, de negocios y técnico. Desarrollador Web.Consultor de Sistemas.Y por supuesto, profesor.

Mail: [email protected]

Twitter: karaka00

Page 3: Sistemas Operativos Docente: Juan Manuel Capuano

Más datos

Web: http://sistemasoperativos130.260mb.net/

Mail: [email protected]

Horarios: o Miércoles: 20:15 – 22:15

Cursada: Parcial (escrito) / Recuperatorio

Bibliografía: “Fundamentos de Sistemas Operativos” – Silberschatz – Galvin - Gagne

Page 4: Sistemas Operativos Docente: Juan Manuel Capuano

Más datos

Cuatro unidades: Unidad 1: Conceptos de los Sistemas Operativos

Unidad 2: Procesos

Unidad 3: Sistemas de archivos y administración de dispositivos

Unidad 4: Protección y seguridad

Page 5: Sistemas Operativos Docente: Juan Manuel Capuano

Qué no es la materia?

Curso de instalación, configuración y uso de Windows/Linux/Mac OS/…

Curso de desarrollo de SO

Curso de filosofía de software libre, open, free…

Curso de certificación de XXXXX, obtener estrellas….etc.

Page 6: Sistemas Operativos Docente: Juan Manuel Capuano

Qué sí es la materia?

Curso de introducción a:

o Conceptos de SO

o Estructuras internas

o Factores que influencian el diseño de los SO

o Cuáles SO, cómo y por qué están hechos así y para qué sirven

Page 7: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1: Conceptos de Sistemas Operativos

• Agenda

Conceptos generales Estructura de un SO Jerarquía de almacenamiento Arquitectura de un sistema informático Servicios Llamadas al sistema

Page 8: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Conceptos generales

o Un SO es un programa que administra el hardware de una computadora

o Proporciona las bases para los programas de aplicación y actúa como intermediario entre el usuario y el hardware

o SO es como un gobierno, no realiza ninguna función útil por sí mismo: ofrece un entorno en el que otros programas pueden llevar a cabo un trabajo útil

Page 9: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Conceptos generales

o Qué hace un SO?

Un sistema informático puede dividirse en cuatro componentes:• Hardware• SO• Programas de aplicación• Usuarios

Hardware, CPU, memoria y disp. de E/S proporcionan recursos de cómputos al sistema

Los prog. Aplicación definen formas de que estos recursos se emplean

El SO controla y coordina el uso del hardware entre los diversos prog. de aplicación por parte de los distintos usuarios

Page 10: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Conceptos generales

o SO desde la vista del usuario y vista del sistema

o Punto de vista del usuario• Varía de acuerdo con la interfaz que utilice• En una PC se diseña para que un usuario monopolice sus recursos,

maximice el trabajo. El SO se diseña para fácil uso, alto rendimiento y no presta atención en la utilización de recursos

• En un MainFrame, usuarios acceden a terminales, comparten recursos. El SO se diseña para maximizar la utilización de recursos y da equidad en la distribución de los mismos

• En estaciones de trabajo conectadas a redes, los usuarios tienen recursos a su disposición y compartidos en la red. El SO se diseña para usabilidad individual y utilización de recursos

Page 11: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Conceptos generales

o Punto de vista del usuario• En dispositivos móviles, los SO están diseñados principalmente en

función a usabilidad individual, aunque el rendimiento es importante también

• Computadoras sin interacción con el usuario, los SO están diseñados para funcionar sin interacción del usuario, sólo disponen de indicadores para mostrar el estado

o Punto de vista del sistema• El SO esta relacionado con el hardware• El SO es visto como un asignador de recursos• Como programa de control, gestiona la ejecución de programas de

usuario para evitar errores y mejorar el uso de la máquina

Page 12: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Conceptos generales

o Definición de Sistemas Operativos

• Los SO existen porque ofrecen una forma razonable de resolver el problema de crear un sistema informático utilizable

• Debido a que el hardware por sí solo no es fácil de utilizar, se desarrollan programas de aplicación.

• Las operaciones habituales de control y asignación de recursos se incorporan en una misma pieza del software, el SO

• Un SO es aquel programa que se ejecuta continuamente en la máquina (usualmente llamado kernel)

Page 13: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1: Conceptos de Sistemas Operativos

• Agenda

Conceptos generales Estructura de un SO Jerarquía de almacenamiento Arquitectura de un sistema informático Servicios Llamadas al sistema

Page 14: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Estructura de un SO

o Organización de una Computadora

• Las máquina modernas, constan de una o más CPU y de una serie de controladoras de dispositivos conectados por un bus

• La CPU y las controladoras pueden funcionar en forma concurrente, compitiendo por un ciclo de memoria.

• Para asegurar el acceso ordenado a la memoria, se proporciona una controladora de memoria que sincroniza el acceso a la misma

Page 15: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Estructura de un SO

o Organización de una Computadora

• Cuando ocurre un suceso, éste se indica mediante una interrupción bien de hardware o bien de software

• El hardware puede activar una interrupción en cualquier momento, enviando una señal al CPU

• El software puede activar una interrupción ejecutando una operación especial denominada llamada al sistema

Page 16: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Estructura de un SO

o Organización de una Computadora

Page 17: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Estructura de un SO

o Organización de una Computadora

• Cuando se interrumpe a la CPU, deja lo que está haciendo e inmediatamente transfiere la ejecución a una posición fijada

• La rutina de servicio a la interrupción se ejecuta y, cuando ha terminado, la cpu reanuda la operación que estaba haciendo

• La interrupción debe transferir el control a la rutina de servicio específica a la interrupción, desde una rutina genérica (lento)

• Se utiliza un vector de interrupciones para obtener la dirección de la rutina de servicio a la interrupción para el dispositivo correspondiente

Page 18: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1: Conceptos de Sistemas Operativos

• Agenda

Conceptos generales Estructura de un SO Jerarquía de almacenamiento Arquitectura de un sistema informático Servicios Llamadas al sistema

Page 19: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Jerarquía de almacenamiento

o Estructura de almacenamiento

• Los programas se hallan en memoria principal (RAM) para ser ejecutados

• La RAM es el único área de almacenamiento a la que la CPU puede acceder

• La CPU accede a memoria por medio de una secuencia de carga (Load) y almacenamiento (Store) de instrucciones en direcciones específicas de memoria

• Load: mueve una palabra desde la memoria principal a un registro interno de la CPU

• Store: mueve el contenido de un registro hacia la memoria principal

Page 20: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Jerarquía de almacenamiento

o Estructura de almacenamiento

• Arquitectura de von Neumann: primero se extrae una instrucción de memoria y se almacena en un registro de instrucción

• Una vez ejecutada la instrucción, el resultado se vuelve a almacenar en memoria

• Se pretende que los programas y datos residan en memoria en forma permanente

• Problemas• Memoria principal pequeña• Memoria principal volátil

• Solución• Almacenamiento secundario

Page 21: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Jerarquía de almacenamiento

o Estructura de almacenamiento

Page 22: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Jerarquía de almacenamiento

o Estructura de E/S

• Los de almacenamiento son sólo uno de los muchos tipos de dispositivos de E/S que hay en un sistema informático

• Gran parte del código del SO se dedica a gestionar la entrada y la salida• Una computadora consta de una o más CPU y de múltiples controladoras

de dispositivo, conectados por medio de un bus• Las controladoras de dispositivos mantienen algunos búferes locales y un

conjunto de registros de propósito especial• La controladora se encarga de transferir datos entre los dispositivos que

controla y su búfer local• Generalmente los SO tienen un controlador de dispositivos (driver) para

cada controladora de dispositivo (controller)

Page 23: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Jerarquía de almacenamiento

o Estructura de E/S - Funcionamiento

• Al iniciar una operación de E/S, el controlador del dispositivo carga los registros de la controladora hardware

• Ésta, a su vez, examina el contenido para determinar acción a realizar• La controladora inicia la transferencia de datos desde el dispositivo a

su búfer local• Completada la transferencia, la controladora hardware informa al

controlador de dispositivos, por medio de una interrupción, que ha finalizado

• El controlador devuelve el control al SO, devolviendo datos o puntero a los datos o información de estado

Page 24: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Jerarquía de almacenamiento

o Estructura de E/S - Funcionamiento

• Esta forma de transferir datos es para cantidades pequeñas de información

• No es recomendable para movimientos masivos de datos, como es la E/S de disco

• Para esto se usa acceso directo a memoria (DMA)• La controladora hardware transfiere un bloque entero de datos

entre su búfer y la memoria, sin que intervenga la CPU• Hay una interrupción por bloque, no por byte

Page 25: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1: Conceptos de Sistemas Operativos

• Agenda

Conceptos generales Estructura de un SO Jerarquía de almacenamiento Arquitectura de un sistema informático Servicios Llamadas al sistema

Page 26: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Arquitectura de un sistema informático

o Los sistemas informáticos se pueden clasificar de acuerdo con el número de procesadores de propósito general utilizados:

o Sistemas de un solo procesadoro Sistemas multiprocesadoro Sistemas en cluster

Page 27: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1: Conceptos de Sistemas Operativos

• Agenda

Conceptos generales Estructura de un SO Jerarquía de almacenamiento Arquitectura de un sistema informático Servicios Llamadas al sistema

Page 28: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Servicios

o El SO presta ciertos servicios a los programas y usuarios de estos programas

o Estos servicios se proporcionan para comodidad del programador, con el fin de facilitar la tarea de desarrollo

o Conjuntos de servicios:• Interfaz de usuario (UI): interfaz de línea de comandos, interfaz de proceso por lotes,

interfaz gráfica de usuario (GUI)• Ejecución de programas: El sistema debe poder cargar un programa en memoria y

ejecutar dicho programa y este debe poder terminar• Operaciones de E/S: El SO debe proporcionar medios para realizar la E/S, el usuario no

puede controlar los dispositivos de E/S• Manipulación del sistema de archivos: los programas necesitan leer y escribir en

archivos. El SO ofrece servicios para gestionarlos

Page 29: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Servicioso Conjuntos de servicios:

• Comunicaciones: El SO debe poder comunicar procesos por medio de memoria compartida o paso de mensajes

• Detección de errores: El SO necesita detectar los posibles errores. Para cada tipo de error, el SO debe llevar a cabo la acción apropiada. Las facilidades de depuración pueden mejorar en gran medida el uso eficiente del sistema

o Servicios no pensados para el usuario• Asignación de recursos: Cuando hay varios usuarios o varios trabajos ejecutándose

al mismo tiempo, deben asignarse a cada uno de ellos los recursos necesarios• Responsabilidad: Normalmente conviene hacer un seguimiento de qué usuarios

emplean qué clase de recursos y en qué cantidad• Protección y seguridad: Un proceso no puede interferir con los demás procesos o

el SO. La protección implica asegurar el acceso a todos los recursos.

Page 30: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1: Conceptos de Sistemas Operativos

• Agenda

Conceptos generales Estructura de un SO Jerarquía de almacenamiento Servicios Llamadas al sistema

Page 31: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

o Las llamadas al sistema proporcionan una interfaz para invocar los servicios que el SO ofrece

o Están disponibles como rutinas escritas en C y C++ y algunas en lenguaje ensamblador

o Ejemplo: leer datos de un archivo y escribirlo en otroo Los desarrolladores utilizan una API (application programming interface)

que especifica un conjunto de funciones con parámetros y valores de retorno

o API disponibles para programadores de aplicaciones son:o API WIN32 (Windows)o API POSIX (Unix, Linux y Mac OS X)o API Java (para diseñar programas que se ejecutan sobre una máquina virtual JAVA)

o Cada SO dispone de sus propias llamadas al sistema

Page 32: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

o Las funciones que conforman una API invocan, habitualmente, a las llamadas al sistema por cuenta del programador de la aplicación.

o La función Create-Process() de Win32 lo que hace es invocar la llamada al sistema NTCreateProcess() del kernel de Windows

o El enlace se determina por una tabla indexada entre cada llamada al sistema y un número

Page 33: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Page 34: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

o Ejemplo de API estándar

valor de retorno

BOOL ReadFile c (HANDLE file, LPVOID buffer, DWORD bytes To Read, LPWORD bytes Read,

LPOVERLAPPED ovl);

HANLDE: archivo que se va a leerLPVOID: búffer del que se leerán y en el que se escribirán datosDWORD: bytes a leer, número de bytes que se van a leer del búfferLPWORD: bytes leídos, número de bytes leídos durante la útima lecturaJPOVERLAPPED: indica si se está usando E/S solapada

Page 35: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Pasaje de parámetros

o Existen 3 métodos:

1. Pasar parámetros en Registros

2. Pasar parámetros en un bloque o tabla en memoria

3. Pasar parámetros en la pila y el SO se encarga de extraerlos

Page 36: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Tipos de llamadas al sistema

o Control de procesos

o Manipulación de archivos

o Manipulación de dispositivos

o Mantenimiento de información

o Comunicación

Page 37: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Tipos de llamadas al sistemao Control de procesos:

Un programa en ejecución necesita poder interrumpir dicha ejecución bien de forma normal o de forma anormal.

En ambas circunstancias el SO debe transferir el control al intérprete de comandos que realizó la invocación del programa

o Ejecución de programas bajo el control de procesos:

Ejecución de un programa en MS-DOS: a) Al inicio del sistema. b) Ejecución de un programa

Memoria libre

Interprete de

comandos

kernel

Memoria libre

procesos

Interprete de comandos

kernel

Page 38: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Tipos de llamadas al sistemao Ejecución de programas bajo el control de procesos:

o FreeBSD (derivado de UNIX) ejecuta un Shell

FreeBSD ejecutando múltiples programas

Memoria libre

Proceso D

Proceso C

Interprete

Proceso B

kernel

Page 39: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Tipos de llamadas al sistemao Administración de archivos:

Existen llamadas comunes al sistema que están relacionadas con la gestión de archivos. Se debe poder crear (create) y borrar (delete) archivos.

También abrirlo (open), leerlo (read), escribir (write), por último tenemos que poder cerrar el archivo (close)

Se necesita también poder hacer estas operaciones sobre directorios

Se puede determinar valores de diversos atributos usando dos llamadas al sistema (get file attribute y set file attribute)

Page 40: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Tipos de llamadas al sistemao Administración de dispositivos:

Un proceso puede necesitar varios recursos para ejecutarse. Si están disponibles se conceden, caso contrario el proceso deberá espera hasta que esté disponible

Request se usa para solicitar un recurso, release para liberarlo

Una vez asignado el dispositivo se puede read, write y reposition

Muy parecido a la administración de archivos, para eso se juntan en una estructura combinada de archivo-dispositivo

Page 41: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Tipos de llamadas al sistemao Administración de información:

Muchas llamadas al sistema existen simplemente con el propósito de transferir información entre el programa de usuario y el SO

Por ejemplo, time (para devolver la hora) y date (para devolver la fecha

Otras llamadas al sistema devuelven la información sobre el sistema

Como el SO mantiene información sobre todos los procesos, esta información se puede acceder por medio de llamadas al sistema

Page 42: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Tipos de llamadas al sistemao Comunicaciones:

Existen dos modelos de comunicación interprocesos Paso de mensajes Memoria compartida

Paso de mensajes Los procesos que se comunican intercambian mensajes entre sí para transferirse

información Los mensajes se intercambian por medio de un buzón de correo común, previo a establecer

una conexión Debe conocerse de antemano el nombre del otro comunicador Cada proceso tiene un nombre de proceso, y este nombre se traduce en un identificador

mediante el cual el SO puede hacer referencia Demonios, son procesos que reciben conexiones, cliente, es el origen de la comunicación,

intercambian mensajes usando llamadas al sistema

Page 43: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Tipos de llamadas al sistemao Comunicaciones:

Memoria compartida Los procesos usan las llamadas al sistema para crear y obtener acceso a

regiones de la memoria que son propiedad de otros procesos La memoria compartida requiere que dos o más procesos acuerden

eliminar esta restricción Los procesos pueden intercambiar información leyendo y escribiendo

datos en áreas de la memoria compartida La forma de los datos y su ubicación son determinadas por parte de los

procesos y no está bajo el control del SO Los procesos son también responsables de asegurar que no escriban

simultáneamente en las mismas posiciones

Page 44: Sistemas Operativos Docente: Juan Manuel Capuano

Unidad 1 : Llamadas al Sistema

Tipos de llamadas al sistemao Comunicaciones:

Ambos modelos son habituales en los SO y la mayoría implementa ambos

El modelo paso de mensajes resulta útil para intercambiar cantidad pequeñas de datos

El modelo de memoria compartida permite efectuar la comunicación con una velocidad máxima y con la mayor comodidad, cuando la memoria está dentro de la misma máquina pero presenta problemas en lo relativo a la protección y sincronización