sistemas operativos docente: juan manuel capuano
TRANSCRIPT
Sistemas OperativosDocente: 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
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
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
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.
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
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
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
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
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
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
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)
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
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
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
Unidad 1 : Estructura de un SO
o Organización de una Computadora
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
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
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
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
Unidad 1 : Jerarquía de almacenamiento
o Estructura de almacenamiento
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)
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
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
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
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
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
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
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.
Unidad 1: Conceptos de Sistemas Operativos
• Agenda
Conceptos generales Estructura de un SO Jerarquía de almacenamiento Servicios Llamadas al sistema
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
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
Unidad 1 : Llamadas al Sistema
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
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
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
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
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
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)
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
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
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
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
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