ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

30
ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Transcript of ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Page 1: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

ARQUITECTURA DE SISTEMAS OPERATIVOS.

Unidad I: Introducción.

Page 2: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

I.1-Conceptos Básicos.

• Sistema Operativo.

• Procesos.

• Archivos.

• Llamadas al Sistema.

• Tipos de Sistemas Operativos.

• Shell: ✓Linux ✓Unix ✓Windows

Page 3: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Definición: Concepto de Sistema Operativo.

¿Qué es un Sistema Operativo?• Es una capa de software cuya labor es administrar todos

los dispositivos y proporcionar a los programas de usuario una interfaz que les permita comunicarse con el hardware.

El Sistema Operativo tiene dos funciones independientes:1- Extender la máquina. Facilita la comunicación hombre – máquina, permitiendo al programador cierto nivel de abstracción en el manejo de dispositivos y recursos del sistema de cómputo al “ocultarle la verdad” acerca del hardware.2- Administrar recursos.Administra todos los elementos de un sistema complejo: procesadores, memoria, temporizadores, discos, interfaces de red, periféricos de E/S, etc. efectuando un reparto ordenado y controlado entre los distintos programas que compiten por obtenerlos.

Page 4: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

• Dispositivos Físicos:Hechos con circuitos integrados,

cables, fuentes de potencia,

tubos de rayos catódicos, etc.

• Lenguaje de Máquina: Hardware+Instrucciones III Instruction Set Arquitecture

Usualmente son 50 a 300 instruccionesque permiten: trasladar datos, realizaroperaciones aritméticas y lógicas, etc

• Microarquitectura:Se agrupan los dispositivos físicos para formar unidades funcionales. Ejemplo: registros de la CPU y ruta de datos que contiene una unidad aritmético lógica.

Page 5: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

¿Qué es un Proceso?• Básicamente, es un programa en

ejecución. Tiene asignado un espacio de direcciones de

memoria donde puede leer y/o escribir. Allí se

encuentra: su código ejecutable, sus datos y

su pila. También tiene asignado un conjunto

de registros (CISC: IP, SP, BP, CS, DS, AX,

BX, CX, DX, etc.) y guarda toda la información

necesaria para ejecutar el programa.

Page 6: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Un sistema consiste en una colección de procesos que podrían ejecutarse concurrentemente.

Las obligaciones del SO como gestor de procesos son:• Creación y eliminación de procesos.• Planificación de procesos (procurando la

ejecución de múltiples procesos y maximizando la utilización del procesador).

• Establecimiento de mecanismos para la sincronización y comunicación entre procesos.

• Manejo de bloqueos mutuos.

Page 7: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

A medida que un proceso se ejecuta cambia de estado. Cada proceso puede estar en uno de los siguientes estados:

• Nuevo (new): el proceso se está creando.• En ejecución(running): el proceso está en la CPU

ejecutando instrucciones.• Bloqueado (waiting, en espera): proceso esperando

a que ocurra un suceso (ejemplo: terminación de E/S o recepción de una señal).

• Preparado (ready, listo): esperando que se le asigne a un procesador.

• Terminado (terminated): finalizó su ejecución, por tanto no ejecuta más instrucciones y el SO le retirará los recursos que consume.

Page 8: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Diagrama de estados de un proceso.

Page 9: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Para que un programa se ejecute, el SO debe crear un proceso para él. En un sistema con multiprogramación el procesador ejecuta código de distintos programas que pertenecen a distintos procesos.

Aunque dos procesos estén asociados al mismo programa, se consideran dos secuencias de ejecución separadas, cada una de las cuales se considera un proceso.

Llamamos traza de un proceso al listado de la secuencia deinstrucciones que se ejecutan para el mismo.

Nota: Sólo un proceso puede estar ejecutándose en cualquier procesador en un instante dado, pero muchos procesos pueden estar listos y esperando.

Page 10: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Los sucesos que pueden dar lugar a una transición de estados en este modelo son los siguientes:

• Ninguno a nuevo: se crea un nuevo proceso para ejecutar un programa.

• Nuevo a preparado: el sistema está preparado para aceptar un proceso más porque dispone de recursos para ello.

• Preparado a ejecución: el sistema elige uno de los procesos en estado preparado para llevarlo a ejecución.

• Ejecución a terminado: el proceso que se está ejecutando es finalizado por el SO si indica que terminó, se abandona o se cancela.

• Ejecución a preparado: el proceso ha agotado su tiempo de ejecución, cede voluntariamente su tiempo de ejecución o se interrumpe para atender a otro de mayor prioridad.

Page 11: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Los sucesos que pueden dar lugar a una transición de estados en este modelo son los siguientes: …(Continuación)…

• Ejecución a bloqueado: el proceso solicita algo por lo que debe esperar.

• Bloqueado a preparado: se produce el suceso por el que el proceso estaba esperando.

• Preparado a terminado (no aparece en la figura): un padre puede terminar con un proceso hijo en cualquier momento, o bien, si el padre termina todos sus hijos se pueden terminar.

• Bloqueado a terminado: el mismo criterio que el anterior.

Page 12: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Ejemplo: disposición en memoria de tres procesos.

Page 13: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Ejemplo: estados asociados a la traza de los tres procesos.

Page 14: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Sería necesario disponer (como mínimo) de dos colas: una de listos y otra de bloqueados. Los procesos nuevos que se van admitiendo pasan a la cola de listos, el sistema elige de esta cola alguno para pasarlo a ejecución. Cuando ocurre un suceso, todos los procesos que esperan por él pasan de la cola de bloqueados a la cola de listos.

Page 15: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Aspectos importantes a tener en cuenta durante la ejecución de procesos:

Asignación o administración de los recursos del sistema a los procesos.

- ¿Cómo manejar los requerimientos de Entrada/Salida?

- ¿De qué forma se deben administrar los recursos de memoria necesarios para la ejecución de los procesos?

Posibilidad de que ocurran interbloqueos.- ¿Qué problemas puede ocasionar un interbloqueo?

- ¿Cómo evitar los interbloqueos? ¿Cómo asegurar la comunicación entre procesos?

Page 16: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Sistema de Archivos (o Ficheros)• El SO oculta a los usuarios

las peculiaridades del manejo de los discos y otros dispositivos de E/S, presentando al programador un modelo abstracto, bueno y claro de archivos independientes de los dispositivos. De esto se encarga el SISTEMA DE FICHEROS (ARCHIVOS).

Page 17: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Sistema de Archivos (o Ficheros)…(Continuación)…

• Un archivo puede contener un texto, programas ejecutables, código intermedio, código fuente de programas, hojas de cálculo, documentos, imágenes, audio, video, información financiera y/o económica, información y/o datos en general, etc.

• Los ARCHIVOS (también conocidos como FICHEROS) se guardan en memoria externa. Para ello se les da nombre nemotécnicos y se agrupan en CARPETAS o DIRECTORIOS.

Page 18: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Sistema de Archivos (o Ficheros)…(Continuación)…

• Los directorios o carpetas también son manejados como un tipo especial de archivos: son archivos que contienen otros archivos o directorios.

• Mediante llamadas al sistema es posible:

- Crear Archivos. - Eliminar Archivos.

- Leer y/o Escribir (Modificar) Archivos.

Page 19: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Sistema de Archivos (o Ficheros)…(Continuación)…

Page 20: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Sistema de Archivos (o Ficheros)…(Continuación)…

Page 21: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Llamadas al Sistema.

• La interfaz entre el SO y los programas de usuario está definida por el conjunto de llamadas al sistema ofrecidas por el SO. Estas llamadas pueden variar de un SO a otro pero los conceptos tienden a mantenerse.

• Generalmente, las llamadas al sistema se invocan desde programas en C llamando a un procedimiento de biblioteca que tiene el mismo nombre de la llamada al sistema.

• Ejemplos de llamadas al sistema en UNIX: fd = open(“mifichero”, O_RDONLY);

cuenta = read(fd, buffer, nbytes);

Page 22: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.
Page 23: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Llamadas al Sistema.…(Continuación)…

• En general, las interfaces con los servicios del sistema operativo se distinguen porque:1. En el caso del programador, las llamadas al sistema se realizan

invocando a un procedimiento de biblioteca en lenguaje de máquina o en alto nivel.

2. En los casos de los usuarios, las llamadas al sistema se hacen mediante:

• Intérprete de órdenes.• Programas del sistema.

• El SO ofrece una gama de servicios a los programas, que acceden a ellos mediante llamadas al sistema.

• Son la interfaz entre el programa en ejecución y el SO.• Única forma en la que un programa puede solicitar

operaciones al SO.

Page 24: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

Llamadas al Sistema.…(Continuación)…

• Implantación de las llamadas al sistema:– ¿Cómo se implanta la llamada?

• Habitualmente, mediante una instrucción especial de la máquina (syscall, int, trap, ...).

• La instrucción cambia automáticamente a modo privilegiado.• Si programamos en un lenguaje de alto nivel escribimos la

llamada al sistema como una subrutina, y el compilador la sustituye por la instrucción de máquina correspondiente.

– Muchas llamadas necesitan parámetros ¿cómo los pasamos al SO?:

• Usando registros de la máquina.• En una tabla en memoria principal.• Poniéndolos en la pila (stack).

Page 25: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.
Page 26: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

SHELL del Sistema Operativo

Sistema Operativo Windows:

- Entorno gráfico.

- Línea de comandos.

- Ventana al DOS.

Sistema Operativo Linux:

- Entorno gráfico.

- Consolas / Terminales.

Page 27: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.
Page 28: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

En LINUX / UNIX, el intérprete de órdenes es un programa que se ejecuta como un proceso de usuario. Ejemplos: sh, bash, ksh, csh,…

SHELL de LINUX / UNIX

Page 29: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

SHELL de LINUX / UNIX

Page 30: ARQUITECTURA DE SISTEMAS OPERATIVOS. Unidad I: Introducción.

SHELL de LINUX / UNIX