Download Tema1 - Computer Vision Group

Document related concepts

Proceso de arranque en Linux wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

Windows NT wikipedia , lookup

Sistema operativo wikipedia , lookup

Transcript
Sistemas Operativos
Tema 1
Introducción
Contenido
•
•
•
•
•
•
•
•
•
•
Arranque del computador.
Concepto y funciones del sistema operativo.
Componentes y estructura de un sistema operativo.
Gestión de procesos.
Comunicación y sincronización de procesos.
Gestión de memoria.
Gestión de E/S.
Gestión de archivos y directorios.
Seguridad y protección.
Activación del sistema operativo.
Sistemas operativos: una visión aplicada
1
© J. Carretero, F. García, P. de Miguel, F. Pérez
Arranque del computador
• El arranque de una computadora tiene dos fases: Arranque del
hardware y arranque del Sistema Operativo (SO).
• El resumen de actividades son:
– Iniciador ROM:
• Test de hardware.
• Carga de memoria del cargador del SO.
– Control del cargador (boot) del SO:
• Carga de memoria de las componentes del SO.
– Inicialización bajo residente del SO:
•
•
•
•
Test del sistema de archivos.
Creación de estructuras de datos internas.
Completa la carga del SO residente.
Creación de procesos login.
• Puesta en fase normal de funcionamiento del SO.
Sistemas operativos: una visión aplicada
2
© J. Carretero, F. García, P. de Miguel, F. Pérez
Iniciador ROM
•
•
El hardware proporciona una memoria permanentemente
grabada llamada memoria ROM.
Existe un mapa de memoria permanente llamada Iniciador
ROM con tres funciones:
1.
2.
3.
–
–
Comprobación del sistema y detectar sus características: tamaño de
memoria principal, periféricos instalados, etc.
Fase de lectura y almacenamiento en memoria del programa cargador
del SO.
Dar el control al programa cargador del SO.
El cargador es una operación combinada de lectura de un
programa almacenado en el periférico y almacenarlo en el
programa principal.
El iniciador ROM es independiente del SO.
Sistemas operativos: una visión aplicada
3
© J. Carretero, F. García, P. de Miguel, F. Pérez
Arranque del computador
• El Reset carga valores predefinidos en registros
• Cargador de Procesos (CP)  dirección de arranque del
cargador ROM
• Se ejecuta el cargador ROM del sistema
– Test del sistema
– Trae a memoria el boot del SO
Unidad de Memoria
Dirección
0
2.047
Unidad de Memoria
Celdas
Dirección
Celdas
0
Zona
ROM
1.046.528
1.048.575
1.048.575
Zona
ROM
• En el caso del PC la ROM contiene, además, software de E/S (BIOS)
Sistemas operativos: una visión aplicada
4
© J. Carretero, F. García, P. de Miguel, F. Pérez
Ubicación del sistema operativo
• El SO está almacenado en el disco.
Programa cargador
(identificador)
Disco
Sistema Operativo
• El cargador o Boot se encuentra en los primeros sectores del disco y tiene
tamaño prefijado.
• Existe un convenio entre el inicializador ROM y el SO. La máquina permite
diversos SO.
• El cargador del SO incluye una posición prefijada por el iniciador ROM. Esto
permite verificar al iniciador ROM si en tal zona se encuentra el programa
cargador.
Sistemas operativos: una visión aplicada
5
© J. Carretero, F. García, P. de Miguel, F. Pérez
Arranque del sistema operativo
• El cargador ROM carga el sector de boot del SO y le da control
• El boot del SO carga el SO residente y da control al programa de
arranque del SO, que:
– Comprueba el hardware
– Comprueba el sistema de ficheros
– Establece las tablas del SO
– Crea procesos (según el tipo de SO)
• Proceso INIT
• Procesos o tareas del sistema (demonios)
• Procesos de login (uno por terminal)
– Tras la autenticación, el proceso login se convierte en shell
Sistemas operativos: una visión aplicada
6
© J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Arranque del computador.
• Concepto y funciones del sistema operativo.
•
•
•
•
•
•
•
•
Componentes y estructura de un sistema operativo.
Gestión de procesos.
Comunicación y sincronización de procesos.
Gestión de memoria.
Gestión de E/S.
Gestión de archivos y directorios.
Seguridad y protección.
Activación del sistema operativo.
Sistemas operativos: una visión aplicada
7
© J. Carretero, F. García, P. de Miguel, F. Pérez
Concepto y funciones del sistema operativo
• Un programa que actúa como intermediario entre el usuario de
un computador y el hardware del mismo
• Objetivos del sistema operativo:
– Ejecutar programas y facilitar la solución de los problemas
del usuario
– Hacer un uso conveniente del computador
• Usar el computador de forma eficiente
• Proporcionar una máquina virtual extendida
Sistemas operativos: una visión aplicada
8
© J. Carretero, F. García, P. de Miguel, F. Pérez
Funciones del sistema operativo
• Gestor de recursos (UCP, memoria, ...)
– Asignación y recuperación de recursos:
•
•
•
•
Control de asignación y liberación de programas.
Prioridades entre programas.
Recuperación de recursos y gestión de la memoria disponible.
Detectar si el programa ha terminado o no es necesario.
– Protección de los usuarios:
• Asegurar la confidencialidad de la información y que unos trabajos
no interfieran a otros.
– Contabilidad/monitorización:
• Medir la cantidad de recursos en uso.
• Conocer la carga de utilización de cada recurso y por cada usuario.
• La monitorización mide la carga de componentes del sistema.
– Soporte de usuario.
Sistemas operativos: una visión aplicada
9
© J. Carretero, F. García, P. de Miguel, F. Pérez
Funciones del sistema operativo
• Máquina extendida (servicios):
– Provee un conjunto de servicios o llamadas al sistema.
– Posee servicios de software que permiten ejecutar de forma cómoda y
protegida ciertas operaciones.
• Cuatro clases de servicios:
–
–
–
–
Ejecución de programas (procesos)
Órdenes de E/S
Operaciones sobre archivos
Detección y tratamiento de errores
• Ejecución de programas:
– Servicios para ejecutar, parar o abortar programas.
– Servicios para conocer y modificar las condiciones de ejecución, para
comunicar y sincronizar con otros programas.
– Proceso: programa en ejecución. Se traduce el programa a código
máquina y es almacenado. El SO crea un proceso para ejecutar el
programa. Varios procesos pueden estar ejecutando el mismo programa.
Sistemas operativos: una visión aplicada
10
© J. Carretero, F. García, P. de Miguel, F. Pérez
Funciones del sistema operativo
• Órdenes de E/S:
– La programación de operaciones de E/S es muy compleja y dependiente
del hardware especifico.
– Los servicios del SO ofrecen un alto nivel de abstracción de forma que el
usuario no tenga que preocuparse por esos detalles.
• Operaciones sobre archivos:
– Creación, borrado, renombrado, apertura, escritura y lectura.
• Detección y tratamiento de errores:
– Tratar las condiciones de error que detecte el hardware.
– Algunos errores: errores en las operaciones E/S, desbordamientos y
violaciones de memorias, códigos de instrucción prohibidos, etc.
Sistemas operativos: una visión aplicada
11
© J. Carretero, F. García, P. de Miguel, F. Pérez
Funciones del sistema operativo
•
Interfaz de usuario:
–
El módulo del sistema que permite que los usuarios dialoguen de forma
iteractiva con el sistema es el interprete de comandos o shell.
–
–
Shell:
Se comporta como un bucle infinito realizando las
siguiente sequencia:
•
•
•
–
Espera la orden del usuario. En el acaso de interfaz textual, el shell
esta pendiente de la línea de comandos, y en interfaz gráfica de los
eventos que se manipulan por el usuario.
Analiza la orden y emplea los servicios necesarios.
Concluida la orden vuelve a la espera.
Casi todos los intérpretes de mandatos se pueden ejecutar
como archivos de mandatos o scripts, que recojen
funciones de control de flujo como for, if, etc....
Sistemas operativos: una visión aplicada
12
© J. Carretero, F. García, P. de Miguel, F. Pérez
Concepto de usuario y grupo de usuarios
• El usuario es una persona autorizada a usar un sistema informático.
• Se autentifica con su nombre y contraseña.
• El SO tiene un numero de cuentas con identificador (user identifier
(uid)) y perfil.
• Existe un usuario privilegiado denominado superusuario o
administrador sin restricciones.
• Los usuarios se organizan por grupos y todo usuario debe
pertenecer a un grupo. Dichos grupos utilizan su propio modo de
protección pudiendo ser distintos los derechos del usuario de los del
grupo al que pertenece.
Sistemas operativos: una visión aplicada
13
© J. Carretero, F. García, P. de Miguel, F. Pérez
Niveles del sistema operativo
• El nucleo o kernel es la capa más cerca al hardware. Este nivel suministra la
funcionalidad básica y es muy permisivo.
• La capa de servicios ofrece un interfaz de programación o API (Application
Programming Interface).
• El interprete de mandatos o shell suministra un interfaz para que el usuario
dialogue con el ordenador.
U
su
a
rio
s
P
ro
g
ra
m
a
s
S
h
e
ll
S
e
rv
ic
io
s
N
ú
c
le
o
A
P
I
S
iste
m
a
o
p
e
ra
tiv
o
H
a
rd
w
a
re
Sistemas operativos: una visión aplicada
14
© J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Arranque del computador.
• Concepto y funciones del sistema operativo.
• Componentes y estructura de un sistema operativo.
•
•
•
•
•
•
•
Gestión de procesos.
Comunicación y sincronización de procesos.
Gestión de memoria.
Gestión de E/S.
Gestión de archivos y directorios.
Seguridad y protección.
Activación del sistema operativo.
Sistemas operativos: una visión aplicada
15
© J. Carretero, F. García, P. de Miguel, F. Pérez
Componentes del SO
• Un sistema operativo esta formado por tres capas: el núcleo, los servicios y el
interprete de mandatos o shell.
• El núcleo es la parte del sistema operativo que interacciona directamente con
el hardware.
• Las funciones del núcleo se centran en la gestión de recursos, como el
procesador, tratamiento de interrupciones y funciones básicas de
manipulación de memoria.
Usuarios
Programas de usuario
Shell 1
Win 32
Shell 2
POSIX
Gestión de Seguridad Comunicac.
Gestión de Gestión de Gestión de
y
archivos y
y
procesos memoria
la E/S
directorios protección sincroniz.
Varias API
Sistema
operativo
Núcleo
Hardware
Sistemas operativos: una visión aplicada
16
© J. Carretero, F. García, P. de Miguel, F. Pérez
Componentes de un SO
• Los servicios se suelen agrupar según su funcionalidad en varios componentes.
Cada uno de los cuales se ocupa de las siguientes funciones:
– Gestión de procesos. Creación, planificación y destrucción de procesos.
– Gestión de memoria. Componente encargada de saber que zonas de
memoria están ocupadas, así como asignación y liberación de memoria.
– Gestión de la E/S. Se ocupa de facilitar el manejo de dispositivos
periféricos.
– Gestión de archivos y directorios. Se encarga del manejo de archivos y
directorios y de la administración de almacenamiento secundario.
– Comunicación y sincronización entre procesos. Encargada de ofrecer
mecanismos para que los procesos puedan comunicarse y sincronizarse.
– Seguridad y protección. Este componente garantiza la identidad de los
usuarios y define los recursos del sistemas que son permitidos a cada
usuario.
Sistemas operativos: una visión aplicada
17
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estructura del sistema operativo
•
•
•
Un SO es un programa muy grande y complejo compuesto por
las componentes que hemos visto.
Dos grandes grupos:
1. SO monolíticos.
2. SO estructurados.
Sistemas operativos monolíticos:
–
–
–
–
–
Todas sus componentes se encuentran integrados en un solo programa
(SO) que se ejecuta en un único espacio de direcciones.
Todas la funciones del SO se ejecutan en modo núcleo.
Surgen de SO pequeños y sencillos a los que se le añaden
funcionalidades. Ej: MS-DOS y UNIX.
Dificultad en añadir nuevas funcionalidades y servicios. Cambiar un
programa muy grande con miles de líneas de código fuente.
Necesidad de dotar de cierta estructura al SO.
Sistemas operativos: una visión aplicada
18
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estructura del sistema operativo
•
Sistemas operativos estructurados:
 Sistemas por capas:
–
–
–
–
–
El SO se organiza como una jerarquía de capas, donde cada capa ofrece
un interfaz clara y bien definida a la capa superior y solamente utiliza
los servicios de la capa inferior.
Modularidad y ocultar la información.
Solo se necesita el interfaz que ofrece la capa anterior.
Las capas se pueden ir construyendo y depurando por separado.
Ej: SO THE [Dijkstra 1968], SO formado por 6 capas. SO OS/2 [Deitel,
1994] descendiente del MS-DOS.
 Modelo cliente-servidor:
–
–
El enfoque consiste en implementar la mayor parte de los servicios y
funciones del SO en procesos de usuario, dejando sólo una pequeña
parte del sistema ejecutando en modo núcleo.
A esta parte se le denomina micronúcleo y al resto de las funciones se
les denomina servidores.
Sistemas operativos: una visión aplicada
19
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estructura cliente-servidor
•
•
Cada una de las partes del SO pueden desarrollarse por separado.
Las gestiones del micronúcleo suelen ser gestión de interrupciones, gestión
básica de proceso y de memoria y servicios de comunicación entre procesos.
Procesos
cliente
API
API
Procesos
servidores
Servidor de
Servidor
Servidor de Servidor de Servidor de archivos y Servidor de
de
Seguridad
procesos memoria
la E/S
directorios
Comunicac.
Micronúcleo
Modo usuario
Modo núcleo
Hardware
•
El proceso usuario llamado cliente, solicita el servicio al proceso servidor
que puede requerir a su vez servicios de otros servidores (Ej, servidor de
memoria.
Sistemas operativos: una visión aplicada
20
© J. Carretero, F. García, P. de Miguel, F. Pérez
Estructura cliente-servidor
• Desventajas: presentan una mayor sobrecarga en el tratamiento de servicios
monolíticos. Las distintas componentes se realizan en espacios de direcciones
diferentes.
• MIMIX [Tanenbaum, 1998], Mach [Accetta, 1996] y Amoeba [Mullender,
1990] son ejemplos que siguen este modelo. Windows NT también sigue esta
filosofía de diseño aunque con más servidores.
Sistemas operativos: una visión aplicada
21
© J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
• Arranque del computador.
• Concepto y funciones del sistema operativo.
• Componentes y estructura de un sistema operativo.
• Gestión de procesos.
•
•
•
•
•
•
Comunicación y sincronización de procesos.
Gestión de memoria.
Gestión de E/S.
Gestión de archivos y directorios.
Seguridad y protección.
Activación del sistema operativo.
Sistemas operativos: una visión aplicada
22
© J. Carretero, F. García, P. de Miguel, F. Pérez
Gestión de procesos
• Un proceso es un programa en ejecución. De forma más precisa, se puede
definir un proceso como la unidad de procesamiento gestionada por un
sistema operativo.
• Un programa no es más que un conjunto de instrucciones máquina, mientras
que un proceso surge cuando un programa se pone en ejecución.
• Un proceso necesita recursos, tales como UCP, memoria, ficheros, etc., para
llevar a cabo su tarea.
• El SO tiene la responsabilidad de gestionar los siguientes aspectos de
procesos:
– Creación y destrucción.
– Suspensión y reanudación.
– Asignación y mantenimiento de los recursos del proceso.
– Proporcionar mecanismos de sincronización y comunicación.
– Gestionar los interbloqueos.
Sistemas operativos: una visión aplicada
23
© J. Carretero, F. García, P. de Miguel, F. Pérez
Elementos de un proceso
Código
y
datos
Registros generales
Mapa
de
E/S
PC
BCP
SP
Estado
Mapa de
Memoria
– Al contenido de los segmentos de memoria en los que reside el código y
los datos del proceso se le denomina imagen de memoria.
– Durante ejecución se cambia los registros del modelo de programación de
la computadora.
– El contenido de los registros del modelo de programación es lo que se
entiende como estado del procesador.
Sistemas operativos: una visión aplicada
24
© J. Carretero, F. García, P. de Miguel, F. Pérez
Gestión de procesos.
• El sistema operativo mantiene por cada proceso una serie de estructuras de
información que permite identificar las características de éste, así como los
recursos que tiene asignados.
• El bloque de control del proceso (BCP) incluye entre otra información el
estado de los registros del proceso, cuando no se está ejecutando.
• Dependiendo del número de procesos y de usuarios que puedan ejecutar
simultaneamente un SO puede ser:
– Monotarea o monoproceso.
– Multitarea o multiproceso. El SO gestiona los procesos.
– Monousuario. Soporta un solo usuario.
– Multiusuario. Soporta diversos usuarios a la vez desde varios terminales.
Los sistemas multiusuario reciben el nombre de tiempo compartido,
porque el SO debe repartir el tiempo entre los usuarios.
Sistemas operativos: una visión aplicada
25
© J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios de procesos
• Crear un procesos
– A partir de un proceso padre (UNIX). El hijo es una copia exacta del proceso
padre.
– A partir de un archivo ejecutable (Windows NT).
• Ejecutar un proceso
– Se pueden ejecutar de dos formas: batch e iterativa.
– Un proceso batch no está asociado a ningún terminal. Deberá tomar sus datos de
entrada de un fichero y depositar sus resultados en otros. Ej: gestión de nóminas.
– Un proceso en modo iterativo está asociado a un terminal, por el que recibe la
información del usuario y contesta con resultados. Ej: edición.
• Terminar la ejecución de un proceso
– Se termina de ejecutar el programa.
– Se produce una condición de error en su ejecución.
– Otro proceso o el usuario deciden que ha de terminar.
• Muerte del proceso
– Cambiar el programa que ejecuta un proceso por otro programa almacenando en
disco.
Sistemas operativos: una visión aplicada
26
© J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
•
•
•
•
Arranque del computador.
Concepto y funciones del sistema operativo.
Componentes y estructura de un sistema operativo.
Gestión de procesos.
• Comunicación y sincronización de procesos.
•
•
•
•
•
Gestión de memoria.
Gestión de E/S.
Gestión de archivos y directorios.
Seguridad y protección.
Activación del sistema operativo.
Sistemas operativos: una visión aplicada
27
© J. Carretero, F. García, P. de Miguel, F. Pérez
Comunicación y sincronización entre procesos
• Los procesos son entes independientes y aislados, donde por razones de
seguridad no deben interferir unos con otros.
• En trabajos complejos, varios procesos que cooperan entre si deben
comunicarse para transmitirse datos y órdenes, además de sincronizar la
ejecución de sus acciones.
• Los mecanismos básicos de comunicación a través de cadenas de bytes deben
de permitir la interpretación del mensaje.
• Deben ponerse de acuerdo en la longitud y el tipo de datos utilizados.
Proceso
de Usuario
Proceso
de Usuario
SO
UN COMPUTADOR
Sistemas operativos: una visión aplicada
Proceso
de Usuario
Proceso
de Usuario
SO
SO
DOS COMPUTADORES
28
© J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios de comunicación y sincronización
• Dependiendo del servicio utilizado, la comunicación se limita a procesos de
una máquina (procesos locales) o puede involucrar a proceso de máquinas
distintas (proceso remotos).
• Servicios de comunicación:
–
–
–
–
Crear el mecanismo de comunicación
Enviar datos a un proceso
Recibir datos de un proceso
Destruir el servicio de comunicación
• La comunicación puede ser síncrona o asíncrona.
• En comunicación síncrona el emisor ha de estar en el servicio de enviar y el
receptor de recibir. Uno esta en espera a que el otro ejecute.
• En comunicación asíncrona el emisor no espera a que el receptor solicite el
servicio. Esto obliga al SO a un almacenamiento intermedio para guardar la
información hasta que el receptor la solicite.
• Servicios de sincronización
– Crear el mecanismo de sincronización
– Bloquear un proceso hasta que ocurra un evento
– Despertar a un proceso bloqueado
– Destruir el mecanismo de sincronización
Sistemas operativos: una visión aplicada
29
© J. Carretero, F. García, P. de Miguel, F. Pérez
Tipos de comunicación
• Comunicación síncrona
– Los dos procesos han de ejecutar los servicios de
comunicación al mismo tiempo
Proceso B
Avanza la ejecución
Proceso A
Proceso B
Proceso A
enviar
Espera
recibir
recibir
enviar
El proceso A espera al B
Espera
El proceso B espera al A
• Comunicación asíncrona
– Los dos procesos no tiene que ejecutar los servicios de
comunicación al mismo tiempo
Sistemas operativos: una visión aplicada
30
© J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
•
•
•
•
•
Arranque del computador.
Concepto y funciones del sistema operativo.
Componentes y estructura de un sistema operativo.
Gestión de procesos.
Comunicación y sincronización de procesos.
• Gestión de memoria.
•
•
•
•
Gestión de E/S.
Gestión de archivos y directorios.
Seguridad y protección.
Activación del sistema operativo.
Sistemas operativos: una visión aplicada
31
© J. Carretero, F. García, P. de Miguel, F. Pérez
Gestión de memoria
• Memoria: vector enorme de palabras o bytes, cada uno con su
propia dirección.
– Compartido por UCP y dispositivos E/S.
– Volátil: pierde su contenido si el sistema falla.
• El SO tiene la responsabilidad de gestionar los siguientes
aspectos de la memoria:
–
–
–
–
–
Asignar memoria a los proceso para crear su imagen de memoria.
Mantener un mapa de las partes de memoria en uso y saber quién las está usando.
Decidir qué procesos se deben cargar, y dónde, cuando hay memoria disponible.
Asignar y liberar espacio de memoria cuando sea necesario.
Tratar errores de acceso a memoria, evitando que unos procesos interfieran en la
memoria de otros.
– Ofrecer servicios para que los procesos puedan compartir memoria.
– Gestionar la jerarquía de memoria y tratar los fallos de página con la memoria
virtual
Sistemas operativos: una visión aplicada
32
© J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios de gestión de memoria
• Solicitar memoria: Aumenta el espacio de datos de la imagen
de memoria del proceso. El SO satisface esta petición siempre
que tenga recursos. En general, el sistema operativo devuelve un
apuntador de la nueva memoria.
• Liberar memoria: Este servicio sirve para devolver trozos de
memoria del proceso. El SO recupera el recurso liberado y lo
añade a la lista de recursos libres.
• Compartir memoria: El gestor de memoria se encarga de
ofrecer servicios que permiten que los procesos puedan
comunicarse utilizando un segmento de memoria compartida.
Sistemas operativos: una visión aplicada
33
© J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
•
•
•
•
•
•
Arranque del computador.
Concepto y funciones del sistema operativo.
Componentes y estructura de un sistema operativo.
Gestión de procesos.
Comunicación y sincronización de procesos.
Gestión de memoria.
• Gestión de E/S.
• Gestión de archivos y directorios.
• Seguridad y protección.
• Activación del sistema operativo.
Sistemas operativos: una visión aplicada
34
© J. Carretero, F. García, P. de Miguel, F. Pérez
Gestión de E/S
• El gestor de E/S debe alcanzar los siguientes objetivos:
– Facilitar el manejo de dispositivos periféricos. Para ello debe ofrecer una
interfaz sencilla, uniforme y fácil de utilizar entre los dispositivos, y
gestionar los errores que se pueden producir en el acceso a los mismos.
– Ofrecer mecanismos de protección que impidan a los usuarios acceder sin
control a los dispositivos periféricos.
• El gestor de E/S está formado por:
– Un sistema global de almacenamiento intermedio en memoria.
– Manejadores genéricos, uno por cada clase, de dispositivos.
– Manejadores específicos para cada dispositivo.
• Almacenamiento secundario no volátil en dispositivos rápidos de
E/S (discos, NAD, etc.) como respaldo de la memoria.
Sistemas operativos: una visión aplicada
35
© J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios de E/S
• El SO tiene la responsabilidad de gestionar los siguientes
aspectos de la E/S y el almacenamiento secundario:
–
–
–
–
–
–
Traducir peticiones a formato de manejador.
Copiar memoria de/a memoria a/de controlador.
Controlar operaciones por DMA.
Controlar dispositivos de E/S serie: teclado, ratón, etc.
Asignación y liberación de espacio.
Planificación de accesos a los dispositivos.
• Servicios orientados a caracteres
– Impresoras, terminales
• Servicios orientados a bloques
– La operación de E/S se hace sobre un bloque de información de un
número fijo de caracteres
– Discos
Sistemas operativos: una visión aplicada
36
© J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
•
•
•
•
•
•
•
Arranque del computador.
Concepto y funciones del sistema operativo.
Componentes y estructura de un sistema operativo.
Gestión de procesos.
Comunicación y sincronización de procesos.
Gestión de memoria.
Gestión de E/S.
• Gestión de archivos y directorios.
• Seguridad y protección.
• Activación del sistema operativo.
Sistemas operativos: una visión aplicada
37
© J. Carretero, F. García, P. de Miguel, F. Pérez
Gestión de archivos y directorios
• Archivo: conjunto de información lógicamente relacionada y
definida por su creador.
• Directorio: conjunto de identificadores lógicos de archivos y su
relación con identificadores internos del SO.
• Archivos frecuentes: programas (fuentes y ejecutables) y datos.
• El SO tiene la responsabilidad de gestionar los siguientes
aspectos del servicio de archivos:
– Creación y borrado de archivos y directorios.
– Primitivas para manipular archivos y directorios.
– Proyectar los ficheros sobre almacenamiento secundario.
– Hacer respaldo de archivos sobre dispositivos estables y no
volátiles.
Sistemas operativos: una visión aplicada
38
© J. Carretero, F. García, P. de Miguel, F. Pérez
Visión lógica del sistema de archivos
Visión
lógica
Sistemas operativos: una visión aplicada
Visión
física
39
© J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios de archivos
• Un archivo es una unidad de almacenamiento lógico no volatil que agrupa un
conjunto de información relacionada bajo el mismo nombre.
• Entre las informaciones más usuales en un archivo cabe destacar:
– Tipo de archivo (datos, ejecutable, etc...)
– Propietario del archivo (identificador de usuario y grupo del usuario)
– Tamaño del fichero
– Instante de creación, última modificación, último acceso.
– Derechos de acceso.
• La solución más común en su visión lógica es tratarlo como un vector de
bytes o caracteres.
• La ventaja de esta visión en vector es su flexibilidad, puesto que no supone
ninguna estructura especifica interna del archivo.
• La visión lógica supone un puntero a posición. Este puntero permite hacer
operaciones de lectura y escritura consecutivas si tener que indicar la posición
de la operación.
Sistemas operativos: una visión aplicada
40
© J. Carretero, F. García, P. de Miguel, F. Pérez
Visión lógica de un archivo
• La visión física está formada por los elementos físicos del periférico que
soportan al archivo.
• En discos supone la enumeración de los bloques de disco que supone el
archivo.
• Debe existir una estructura de información que recoja la composición física
de cada archivo que se denomina descripción física del archivo.
• Esta estructura es la FAT en MS-DOS y el nodo-i en UNIX. Estas estructuras
han de residir en el propio periférico para poder ser autocontenido y
transportarse de un sistema a otro.
Visión Lógic a
Posición
Sistemas operativos: una visión aplicada
41
© J. Carretero, F. García, P. de Miguel, F. Pérez
Visión física de un archivo
Archivo A
Bloques: 13
20
1
8
3
16
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Bloques de la Unidad de Disco
Sistemas operativos: una visión aplicada
42
© J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios de archivos
•
•
•
•
•
Crear un archivo: interpretación de que el nombre es correcto y el usuario puede
hacer la operación solicitada.
Abrir un archivo: comprueba que el fichero existe, que el usuario tiene derechos de
acceso, y trae a memoria información del objeto.
Escribir y leer: utilizan el identificador, descriptor o manejador del archivo. Lectura:
se expecifica el identificador, la posición de memoria y la cantidad de información a
leer. Idem Escribir.
Cerrar un archivo: elimina el identificador temporal obtenido en la apertura y libera
los recurso de memoria ocupados.
Borrar un archivo: Se borra su nombre del correspondiente directorio y la
información auxiliar que se necesita para ofrecer una visión lógica de una archivo.
!Se crea el archivo
!Se abre: se genera un descriptor de archivo
!Se escribe y lee (el archivo puede crecer)
!Se cierra
!Se borra
Sistemas operativos: una visión aplicada
43
© J. Carretero, F. García, P. de Miguel, F. Pérez
Esquema jerárquico de un directorio
Directorio raíz
Textos Div11 .Div2
Edit
Apl1
Tipo
Distrib
Sec1
Sec2
Apl2
Apl3
Person Client
Sec1
Des
Sec2
Product Almac Simin
Sec3
PR1
Activ
PR2
Mant
Pasiv
Identificador
de directorio
Identificador
de fichero
PR3
• En un directorio se relaciona de forma unívoca un nombre con un archivo.
• El servicio de directorios también presenta una visión lógica y una visión
física.
• La visión lógica consiste en el esquema jerárquico de nombres mostrado en la
figura.
• Directorio raiz, camino absoluto, camino relativo /Textos/Tipo/Sec1/Ap11
Sistemas operativos: una visión aplicada
44
© J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios de directorios
•
•
•
•
Permite una gestión distribuida de los nombres para garantizar que no existan
nombres repetidos.
La visión física de directorios consiste en unas estructuras de información que
permiten relacionar cada nombre lógico con la descripción física del correspondiente
archivo.
Se trata de una tabla NOMBRE-IDENTIFICADOR por cada subdirectorio. El
IDENTIFICADOR es una información que permite localizar la descripción física del
archivo.
Servicios del directorio:
– Crear: Lo crea y lo sitúa en el árbol de directorios.
– Borrar: Elimina el objeto de forma que no pueda ser ya accesible y borra su
entrada del árbol de directorios.
– Abrir: Abre un directorio para leer los datos del mismo. Esto es necesario para
acceder a su contenido. Devuelve al usuario un identificador, para su
manipulación.
– Leer: Extrae la siguiente entrada y devuelve una estructura de datos como la que
define la entrada de directorios.
– Cerrar: Cierra el directorio, liberando el identificador devuelto en la operación de
apertura, así como los recursos de memoria y del SO relativos al mismo.
Sistemas operativos: una visión aplicada
45
© J. Carretero, F. García, P. de Miguel, F. Pérez
Sistema de archivos
• Se denomina sistema de archivos al conjunto de archivos incluidos en una
unidad de disco.
• Se denomina metainformación a toda la información auxiliar que es
necesario para mantener un volumen.
• La metainformación esta compuesta por los siguientes elementos:
– Estructura física de los archivos (nodos-i en UNIX o FAT en MS-DOS).
– Directorios (archivos que contienen las tablas nombre-puntero).
– Estructura física del sistema de archivos (superbloque en UNIX).
– Estructura de información de bloques y nodos-i libres (mapas de bits).
• Cada SO organiza las particiones del disco de formas diferentes, repartiendo
el espacio disponible entre: el programa de carga (boot) del sistema operativo,
la metainformación y los datos.
Sistemas operativos: una visión aplicada
46
© J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
•
•
•
•
•
•
•
•
Arranque del computador.
Concepto y funciones del sistema operativo.
Componentes y estructura de un sistema operativo.
Gestión de procesos.
Comunicación y sincronización de procesos.
Gestión de memoria.
Gestión de E/S.
Gestión de archivos y directorios.
• Seguridad y protección.
• Activación del sistema operativo.
Sistemas operativos: una visión aplicada
47
© J. Carretero, F. García, P. de Miguel, F. Pérez
Seguridad y protección
• Protección: controlar accesos a los recursos de usuario y sistema.
• El servidor de protección debe:
– Distinguir entre uso autorizado y no autorizado.
– Especificar los controles de acceso a llevar a cabo.
– Proporcionar métodos de control de acceso.
• Seguridad: proteger al sistema de un uso indebido.
• La seguridad reviste dos aspectos, uno es la de garantizar la identidad de los
usuarios y otro es definir lo que puede hacer cada uno de ellos.
• El primer aspecto se trata bajo el termino autentificador, mientras que el
segundo se hace mediante los privilegios.
• Los privilegios especifican los recursos a los que puede acceder cada usuario.
Se suele organizar la información en grupos, asignando privilegios a los
grupos.
• El servidor de seguridad debe:
– Autenticar a los usuarios.
– Evitar amenazas al sistema (gusanos, virus, piratas, fuego, etc.)
– Evitar la intercepción de comunicaciones: cifrado, canales seguros, etc.
Sistemas operativos: una visión aplicada
48
© J. Carretero, F. García, P. de Miguel, F. Pérez
Contenido
•
•
•
•
•
•
•
•
•
Arranque del computador.
Concepto y funciones del sistema operativo.
Componentes y estructura de un sistema operativo.
Gestión de procesos.
Comunicación y sincronización de procesos.
Gestión de memoria.
Gestión de E/S.
Gestión de archivos y directorios.
Seguridad y protección.
• Activación del sistema operativo.
Sistemas operativos: una visión aplicada
49
© J. Carretero, F. García, P. de Miguel, F. Pérez
Activación de los servicios del SO
• El SO es un servidor que esta en espera a que se le encargue un trabajo.
• Fuentes de las peticiones.
– Mandatos de los usuarios interpretados por el shell.
– Llamadas al sistema emitidas por los programas.
– Interrupciones producidas por los periféricos.
– Condiciones de excepción o error del hardware.
• Los mecanismos para romper la secuencia lineal de ejecución son dos: las
instrucciones de bifurcación y las interrupciones.
• El primero de estos mecanismos no sirve para invocar al SO, puesto que el
proceso se ejecuta en el nivel de usuario y el SO ha de ejecutar a nivel de
núcleo y en espacios de direcciones distintos.
• Por tanto, la activación del sistema operativo solamente se realiza mediante el
mecanismo de interrupciones.
• Cuando un programa en un lenguaje de alto nivel como C, la solicitud del
servicio al SO se hace con una llamada a función.
Sistemas operativos: una visión aplicada
50
© J. Carretero, F. García, P. de Miguel, F. Pérez
Avanza la ejecución
Fases en la activación del SO
Proceso A
Se solicita el SO
Salva el estado del proceso A
Sistema
operativo
Realiza la función pedida
Planificador
Activador
Proceso B
Sistemas operativos: una visión aplicada
51
© J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios del SO: llamadas al sistema
• Interfaz entre aplicaciones y SO.
– Generalmente disponibles como funciones en ensamblador.
– Actualmente en otros lenguajes de alto nivel (C, Bliss, …).
• Esta funciones se componen de:
– Una parte inicial que prepara los parámetros del servicio de acuerdo con la forma
en que los espera el SO.
– La instrucción TRAP, que genera una interrupción para dar paso al SO.
– La parte final que recupera los parámetros de contestación del SO, para
devolverlos al programa que los llamó.
• Servicios típicos del sistema operativo
–
–
–
–
–
Gestión de procesos
Gestión de procesos ligeros
Gestión de señales, temporizadores
Gestión de memoria
Gestión de ficheros y directorios
Sistemas operativos: una visión aplicada
52
© J. Carretero, F. García, P. de Miguel, F. Pérez
Paso de los parámetros a las llamadas
• Ejemplos de llamada
– read: permite leer datos de un fichero
– fork: permite crear un nuevo proceso
• Tres métodos genéricos para pasar parámetros a las llamadas al sistema:
– En registros.
– En una tabla de memoria, cuya dirección se pasa al SO en un registro.
– Poner los parámetros en la pila del programa y dejar que el SO los
extraiga.
• Cada SO proporciona sus propias llamadas al sistema:
– Estándar POSIX en UNIX y LINUX.
– Win32 en Windows NT.
Sistemas operativos: una visión aplicada
53
© J. Carretero, F. García, P. de Miguel, F. Pérez
Servicios del SO
• Los servicios se programan mediante sentencias de un lenguaje
(p.e. C)
• Estas sentencias son como llamadas a función
• Se convierten, mediante una rutina de biblioteca de sistemas en un
conjunto de instrucciones de máquina que terminan con una
instrucción de trap
• El trap, como toda interrupción es tratada por el SO
• El SO realiza el servicio pedido y devuelve un valor
• Ejemplo:
int fork() {
int r;
LOAD R8, FOR_SYSTEM_CALL
TRAP
LOAD r, R9
return r;
}
Sistemas operativos: una visión aplicada
54
© J. Carretero, F. García, P. de Miguel, F. Pérez
Paso de llamadas al sistema
MEMORIA
PROCESO N
MODO
USUARIO
PROCESO 2
Rutina de biblioteca
PROCESO 1
LOAD R8, FORK_SYSTEM_CALL
TRAP
LOAD r, R9
1
2
R8
6
FORK_SYSTEM_CALL
7
3
4
SERVICIO fork
LOAD R9, resultado
Retorno del TRAP
TABLA
R9
Resultado
5
MODO
NÚCLEO
SISTEMA OPERATIVO
PROCESO
DE USUARIO
RUTINA DE
BIBLIOTECA
PROCESO DE USUARIO
Sistemas operativos: una visión aplicada
TRAP
TRATAMIENT0
DE INTERRUP.
RUTINA DE
SERVICIO
SISTEMA OPERATIVO
HW
55
© J. Carretero, F. García, P. de Miguel, F. Pérez
Ejemplo
• Si el programa quiere escribir datos en un archivo, el código del programa de
usuario hace un CALL a la rutina en código máquina write, con código
similar al mostrado con fork.
• Se preparan los parámetros de la operación escritura y se ejecuta una
instrucción TRAP.
• El SO identifica la interrupción y la trata como una solicitud de servicio.
• El SO ejecuta la rutina que lanza la pertinente operación E/S.
• Se ejecuta el planificador y la activación da paso a la ejecución de otro
proceso.
• Cuando el periférico termina la operación, su controlador genera una solicitud
de interrupción que es tratada por el SO.
• En este momento la rutina de código máquina write recibe los parámetros que
ha devuelto el SO y ejecuta un RET para volver al programa de usuario que la
llamó.
Sistemas operativos: una visión aplicada
56
© J. Carretero, F. García, P. de Miguel, F. Pérez