Title: Fundamentos de los Computadores II 0
1CapÃtulo 2 Introducción a los SSOO
2Contenido
- Definición de SO
- Arranque del equipo
- Componentes y estructura del SO
- Gestión de procesos
- Gestión de memoria
- Comunicación y sincronización de procesos
- Gestión de Entrada/Salida
- Gestión de archivos y directorios
- Seguridad y protección
- Activación del SO
3Contenido
- Interfaz del programador
- Interfaz del usuario del SO
- Historia de los SSOO
41. Definición de SO
5Definición de SO (I)
- Máquina desnuda
- computadora que carece de SO. El término pone de
relieve que una máquina sin SO no resulta útil.
Un ordenador sólo es capaz de repetir una
sencilla secuencia de operaciones a alta
velocidad leer instrucción máquina, incremento
del contador del programa y ejecución. - Para que la máquina realice una determinada
función debe tener un programa cargado en MP y ha
de conseguir que el contador del programa apunte
a la dirección de comienzo. - Misión del SO
- revestir a la máquina, añadiendo funcionalidad
que permita su cómodo manejo y utilización
6Definición de SO (II)
- Funciones básicas del SO
- gestión de recursos del equipo
- ejecución de servicios para los programas
- ejecución de mandatos de los usuarios
- Todas ellas se caracterizan por pretender
facilitar el uso del hardware. - Como se indica en la siguiente transparencia, el
SO se articula en 3 capas principales. La más
cercana al núcleo se denomina kernel, y es la
encargada de gestionar los recursos hardware del
sistema, suministrando la funcionalidad básica
del SO.Esta capa ha de ejecutarse en nivel núcleo.
7Definición de SO (III)
Usuarios
API
Programas
Shell
Servicios
Sistema
operativo
Núcleo
Hardware
8Definición de SO (IV)
La capa de servicios (o llamadas al sistema)
ofrece a los programas servicios en forma de
interfaz de programación (API). Esta capa
extiende la funcionalidad ofrecida por el kernel.
Se suele decir que el SO ofrece a los programas
una máquina virtual extendida (con funcionalidad
añadida). La capa de intérprete de comandos o
shell suministra una interfaz a través de la que
el usuario puede interactuar con la máquina. La
shell recibe comandos u órdenes de los usuarios,
los interpreta y si puede los ejecuta. La shell
suele ejecutarse en nivel de usuario. A
continuación se analizan las diversas facetas de
la funcionalidad de los SSOO.
9Definición de SO (V)
- El SO como gestor de recursos
- En un ordenador suelen ejecutarse simultáneamente
diferentes programas, que compiten por el uso de
los recursos del sistema. Es el SO quien ha de
arbitrar su uso y asignación. Además, el SO ha de
garantizar la protección de unos programas frente
a otros, suministrando información sobre el uso
que se hace de los recursos. - Asignación de recursos el SO ha de mantener
estructuras de datos que le permitan saber qué
recursos están libres y cuáles ocupados. La
asignación de recursos se hace según su
disponibilidad y la prioridad de los programas
solicitantes. Es muy importante la recuperación
de los recursos, de forma que cuando no estén en
uso se liberen para su posible uso por parte de
otros programas.
10Definición de SO (VI)
- Protección el SO debe garantizar la protección
entre los usuarios del sistema. Ha de asegurar la
confidencialidad de la información, y que no haya
interferencias entre los trabajos en ejecución.
Los recursos asignados a un programa no podrán
ser asignados a ningún otro. - Contabilidad el SO debe medir el nivel de uso de
los recursos a lo largo de la ejecución de los
programas. Asà puede conocer la carga de uso de
los recursos. Cuando la contabilidad se usa
únicamente para conocer la carga de los
componentes del sistema se habla de
monitorización.
11Definición de SO (VII)
- El SO como máquina extendida
- El SO ofrece a los programas un conjunto se
servicios denominados llamadas al sistema.
Permiten ejecutar de forma cómoda y segura
ciertas operaciones que manejan los recursos del
sistema. Cuatro clases de llamadas ejecución de
programas (lanzar ejecución de programas,
abortar, conocer las condiciones de ejecución,
comunicar y sincronizar), operaciones de E/S
(lectura, escritura y modificación de
periféricos), operaciones de archivos y
directorios (creación, borrado, renombrado,
apertura, escritura, lectura) y detección y
tratamiento de errores (errores en las
operaciones de E/S, en accesos a memoria, en
operaciones aritméticas, etc)
12Definición de SO (VIII)
- El SO como interfaz de usuario
- El SO ha de permitir al usuario un diálogo
interactivo con el sistema. Esto se logra
mediante el intérprete de comandos o shell. El
shell se comporta como un bucle infinito, que
repite incesantemente la siguiente secuencia - esperar nueva orden del usuario
- analizar la orden y ejecutarla (usando para ello
los servicios pertinentes del SO) - vuelta a modo de espera (hasta que llegue la
nueva orden) - La mayorÃa de los SO ofrecen intérpretes de
comandos que permiten la ejecución de archivos de
mandatos o shell scripts. En ellos se incluyen
varios mandatos, junto con instrucciones
especiales que controlan en flujo de ejecución.
13Definición de SO (IX)
- Deben quedar claros los siguientes conceptos
- Usuario persona autorizada a utilizar el
sistema. Se identifica mediante un nombre de
cuenta y una clave. El SO no asocia el concepto
de usuario con el de persona fÃsica. Por ejemplo,
podrÃa pensarse en un usuario genérico para todos
los alumnos de una asignatura. Internamente el SO
asigna a cada usuario un identificador (uid user
identification) y un perfil. En él se describen
los permisos concedidos al mismo es decir, las
operaciones que puede realizar. - Usuario privilegiado (superusuario,
administrador, root), al que se le concede
autorización para realizar todas las operaciones
posibles. Este usuario es imprescindible para
administrar el sistema
14Definición de SO (X)
- Los usuarios se organizan en grupos (por ejemplo,
en una Univ. podrÃa haber un grupo de alumnos,
otro de profesores, otro de personal de
servicios, etc). Todo usuario ha de adscribirse a
un grupo. La figura del grupo también se emplea
en la protección del sistema, ya que los derechos
de un usuario son los suyos propios más los
recibidos por pertenecer a su grupo.
152. Arranque del equipo
16Arranque del equipo (I)
En el arranque de un equipo se pueden distinguir
dos fasesarranque hardware y arranque del
SO. a) Arranque hardware. Al ser la MP volátil,
al encender el equipo la MP está vacÃa. Al no
disponer de programa que ejecutar, el ordenador
no es capaz de realizar ninguna tarea.
Actualmente, los equipos suelen disponer de un
programa especial permanentemente grabado en una
memoria ROM (no volátil).
17Arranque del equipo (II)
- Como se observa en la figura anterior, parte del
mapa de memoria está constituido por una memoria
ROM no volátil. El programa especial cargado en
este tipo de memoria se denomina iniciador ROM. - Al arrancar el equipo (o pulsar el botón de
RESET), se genera una señal eléctrica que produce
la carga de los registros del procesador, de
forma que el contador del programa contendrá la
dirección de comienzo del programa iniciador.
Este programa realizará las siguientes tares - comprobación del sistema, para determinar sus
caracterÃsticas (cantidad de MP, periféricos
instalados, etc) y comprobar si el conjunto
funciona de forma correcta. - fase de lectura y almacenamiento en memoria del
programa cargador del SO (carga lectura de
periférico almacenado en disco)
18Arranque del equipo (III)
- dar control al programa cargador del SO.
- Para mayor flexibilidad se hace que el iniciador
ROM sea independiente del SO, de forma que en una
misma máquina se puedan ejecutar diferentes SSOO. - En el caso de un PC la memoria ROM contiene
software de E/S, denominado BIOS (Basic
input-output system). La BIOS es proporcionado
por el fabricante del equipo y contiene
procedimientos para leer y escribir de disco,
leer caracteres del teclado y escribir en
pantalla. - El SO se encuentra almacenado en una unidad de
disco, como se muestra en la transparencia
siguiente. Por tanto, el cargador del SO (boot)
se encuentra en cierta zona del disco (usualmente
4 primeros sectores del disco) y tiene un tamaño
prefijado.
19Arranque del equipo (IV)
Programa cargador
Disco
(identificador)
Sistema Operativo
Como se indicó con anterioridad, el iniciador ROM
trae a MP el cargador del SO. El programa
iniciador y el SO tienen un convenio sobre la
ubicación, dirección de arranque y tamaño del
cargador del SO. De esta forma el iniciador ROM
es independiente del SO en tanto en cuanto siga
este convenio. Para mayor seguridad el programa
cargador del SO incluye en una posición prefijada
una contraseña. Asà el iniciador puede comprobar
si la información en el sector es en realidad un
cargador.
20Arranque del equipo (V)
- b) Arranque del SO. El cargador del SO aloja en
memoria algunos componentes del SO. Cuando estén
cargados se pasa a la fase de iniciación, que
consta de las siguientes etapas - comprobación del sistema más pruebas del
hardware, comprobación del sistema de archivos,
etc. Operación costosa, ya que ha de revisar
todos los directorios del sistema de archivos. - establecimiento de las estructuras de información
propias del SO, tales como la tabla de procesos,
las tablas de memoria y las de E/S. - carga en MP de la parte del SO que siempre ha de
estar residente (sistema operativo residente). - creación de proceso de inicio (login) para cada
terminal, asà como algunos procesos auxiliares y
demonios (de impresión, de comunicaciones, etc.).
21Arranque del equipo (VI)
Los procesos de inicio presentan en cada terminal
el mensaje de bienvenida y quedan a la espera de
que un usuario arranque una sesión. Para ello ha
de teclear su nombre de usuario y su clase
(password). El proceso de inicio autentica al
usuario, comprobando la validez de los datos
introducidos y lanza un proceso shell, para
ejecutar uno o varios archivos de
mandatos. DOS autoexec.bat UNIX .login,
.cshrc, etc Después quedan a la espera de
recibir órdenes por parte del usuario.
223. Componentes y estructura del SO
23Componentes y estructura del SO (I)
- Se suele considerar que el SO está compuesto de
tres capas núcleo, servicios e intérprete de
mandatos (o shell). - El núcleo es la parte del SO centrado en la
gestión de los recursos procesador, tratamiento
de interrupciones y funciones básicas de
manipulación de memoria. Los servicios se suelen
agrupar por su funcionalidad - gestión de procesos creación, planificación y
destrucción de procesos - gestión de memoria detectar y controlar zonas de
memoria libres y ocupadas, asignación y
liberación de memoria según se requiera, etc - gestión de E/S facilitar el manejo de los
periféricos - comunicación y sincronización de procesos
- seguridad y protección
24Componentes y estructura del SO (II)
Usuarios
Varias API
Programas de usuario
Shell 1
Shell 2
POSIX
Win 32
Sistema
operativo
Gestión de
Comunic.
Seguridad
Gestión de
Gestión de
Gestión de
y
y
archivos y
procesos
memoria
la E/S
protección
sincroniz.
directorios
Núcleo
Hardware
25Componentes y estructura del SO (III)
- Todos estos componentes ofrecen su funcionalidad
a través de un conjunto de llamadas al sistema.
Como se aprecia en la figura de la transparencia
anterior los SSOO operativos pueden ofrecer más
de una interfaz de servicios POSIX y WIN32, por
ejemplo. En este caso los programas podrán elegir
qué interfaz quieren ejecutar, pero no podrán
usar servicios de ambas de forma simultánea.
Debido a esta ocultación de las caracterÃsticas
hardware de la máquina a través de interfaces de
programación se dice que el SO presenta al
usuario varias máquinas virtuales. - También puede ofrecer varios intérpretes de
mandatos, unos textuales y otros en modo gráfico. - Respecto a la forma en que se estructuran estos
elementos, se puede distinguir entre SSOO
monolÃticos y estructurados.
26Componentes y estructura del SO (IV)
Los SSOO monolÃticos son aquellos que carecen de
estructura clara y definida. Todos sus
componentes se encuentran integrados en un único
programa, que se ejecuta en un único espacio de
direcciones. En este caso todas las funciones se
ejecutan en modo núcleo. Suelen surgir de SSOO de
pequeño tamaño, que evolucionan al añadir más y
más funcionalidad. Ejemplos MS-DOS y UNIX.
Problemas dificultad para modificarlos para
añadir nuevos servicios, ya que ello supone
bucear entre miles de lÃneas de código. Dentro
de los sistemas estructurados cabe distinguir
entre los sistemas por capas y sistemas
cliente/servidor. En los sistemas por capas el
SO está formado por un conjunto de capas
interrelacionadas. Cada capa ofrece una interfaz
clara y bien definida a la capa superior y sólo
usa los servicios de la capa inferior.
27Componentes y estructura del SO (V)
La principal ventaja radica en la modularidad y
ocultación de la información que ofrecen una
capa no necesita saber cómo es la implementación
de las capas inferiores, sólo su interfaz. En el
modelo cliente/servidor se implementan la mayorÃa
de los servicios mediante procesos de usuario,
dejando sólo una pequeña parte del SO ejecutando
en modo núcleo (micronúcleo).
Procesos
Procesos
cliente
servidores
Servidor
Servidor de
Servidor de
Modo usuario
Servidor de
Servidor de
Servidor de
de
archivos y
Seguridad
procesos
memoria
la E/S
Comunicac.
directorios
API
API
Micronúcleo
Modo núcleo
Hardware
28Componentes y estructura del SO (VI)
No hay definición clara de las funciones propias
del micronúcleo y depende de un SO a otro. Suelen
ser gestión de interrupciones, gestión básica de
procesos y de memoria, servicios básicos de
comunicación entre procesos. Para solicitar un
servicio a este tipo de sistemas, el proceso de
usuario (cliente) solicita el servicio al
servidor correspondiente. Puede que para cumplir
la petición el servidor requiera, a su vez, los
servicios ofrecidos por otros servidores. Ventaja
básica flexibilidad. Cada servidor sólo se
ocupa de una funcionalidad concreta, lo que
facilita la modularidad (por ejemplo, el
desarrollo de pruebas, el mantenimiento,
etc). Desventajas mayor sobrecarga en el
tratamiento de los servicios, ya que los
servidores ejecutan en espacios de direcciones
distintos, por lo que su activación es más lenta.
294. Gestión de procesos
30Gestión de procesos (I)
El gestor de procesos es un elemento esencial en
cualquier SO. Proceso programa en ejecución. No
hay que confundir programa con proceso. Programa
conjunto de instrucciones máquina Proceso
programa en ejecución Por ejemplo, varios
procesos podrÃan ejecutar el mismo programa.Para
que un programa pueda ejecutar ha de residir en
MP.
31Gestión de procesos (II)
Al contenido de los segmentos de memoria en que
residen el código y los datos se denomina imagen
de memoria del proceso. Durante la ejecución, el
proceso va modificando los registros usados por
el ordenador. El contenido de todos ellos define
el estado del procesador. Para cada proceso el
SO mantiene una serie de estructuras de datos que
permiten identificar sus caracterÃsticas, asÃ
como los recursos de que dispone. Una parte
esencial de estas estructuras es el bloque de
control del proceso (BCP). El BCP almacena el
estado de los registros del proceso, cuando éste
no está ejecutando. El SO ha de ofrecer un
conjunto de servicios para gestión de los
procesos y de los posibles interbloqueos que
pueden surgir cuando los procesos comparten
recursos comunes.
32Gestión de procesos (III)
- Dependiendo del número de procesos y usuarios que
puedan ejecutar simultáneamente, un SO puede ser - Monotarea (monoproceso) un solo proceso en cada
instante - Multitarea (multiproceso) coexisten varios
procesos a la vez. El SO reparte el tiempo de
procesador entre los procesos activos. - Monousuario un único usuario
- Multiusuario varios usuarios trabajando de forma
simultánea desde diferentes terminales. Cada
usuario puede tener más de un proceso activo. En
este caso serÃa un sistema de tiempo compartido
(el SO reparte el tiempo de CPU, de forma que las
tareas de todos los usuarios avancen de forma
razonable)
33Gestión de procesos (IV)
- Los servicios ofrecidos por los SSOO respecto a
la gestión de procesos son - Crear un proceso
- A partir de un proceso padre (UNIX)
- A partir de un archivo ejecutable (Windows NT)
- Ejecutar un proceso modo batch o interactivo
- Terminar la ejecución de un proceso
- Cambiar el programa que ejecuta un proceso
345. Gestión de memoria
35Gestión de memoria (I)
- 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. Para ello
dispone de un gestor de memoria, encargado de - 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. - Ofrecer servicios para que los procesos puedan
compartir memoria.
36Gestión de memoria (II)
- Los servicios ofrecidos por los SSOO respecto a
la gestión de memoria son - solicitar memoria de forma que los programas
puedan aumentar el espacio destinado a ejecución - liberar memoria el espacio que un proceso ya no
va a usar más se pondrá en estado de disponible
para que otros puedan usarlo - compartición de memoria como forma de
comunicación de procesos que colaboran en la
realización de alguna tarea
376. Comunicación y sincronización de procesos
38Comunicación y sincronización de procesos (I)
Comunicación entre procesos necesaria si se
desea que varios procesos puedan colaborar para
realizar una misma tarea. Sincronización
funcionamiento coordinado en la resolución de una
tarea encomendada. El SO ofrece mecanismos
básicos de comunicación, que permiten transferir
cadenas de bytes. Deben ser los procesos que se
comunican quienes interpreten el significado de
las cadenas transferidas para su labor
coordinada. Los mecanismos de comunicación y
sincronización son dinámicos. Es decir, cuando se
necesita un mecanismo de este estilo, se crea,
usa y destruye, de forma que no se establezca de
forma definitiva ningún mecanismo de
comunicación, ya que ellos podrÃa producir
efectos indeseados. Es decir, la comunicación es
algo puntual.
39Comunicación y sincronización de procesos (II)
40Comunicación y sincronización de procesos (III)
- Los servicios básicos de comunicación son
- crear el proceso solicita la creación del
mecanismo - enviar o escribir el proceso emisor envÃa
información al proceso receptor - recibir o leer el proceso receptor recibe
información - destruir el proceso solicita la destrucción del
mecanismo de comunicación - La comunicación puede ser sÃncrona y asÃncrona
- sÃncrona los dos procesos han de ejecutar
servicios de forma simultánea. El emisor ha de
ejecutar el servicio enviar mientras el receptor
ejecuta recibir - asÃncrona el emisor hace el envÃo y prosigue su
ejecución. El SO ofrece un almacenamiento
intermedio para guardar la información enviada,
hasta que el receptor la solicite.
41Comunicación y sincronización de procesos (IV)
Esquema de sincronización sÃncrona
42Comunicación y sincronización de procesos (V)
- En cuanto a los servicios de sincronización, se
suelen incluir los siguientes - crear el proceso solicita la creación del
mecanismo - bloquear el proceso se bloquea hasta que ocurra
un determinado evento - despertar permite despertar a un proceso
bloqueado - destruir el proceso solicita la destrucción del
mecanismo
437. Gestión de E/S
44Gestión de E/S (I)
- El gestor de E/S debe controlar el funcionamiento
de los dispositivos de E/S, para lograr - facilitar el manejo de los dispositivos
periféricos interfaz sencilla y única, control
de errores - mecanismos de protección
- Los servicios ofrecidos por el SO son
independientes de los dispositivos igual
procedimiento para leer en disco, disquete, CD,
etc. - Servicios orientados a escritura y lectura de
datos. Orientados a carácter u orientados a
bloque.
458. Gestión de archivos y directorios
46Gestión de archivos y directorios (I)
- Archivo conjunto de información lógicamente
relacionada y definida por su creador. - Directorio conjunto de identificadores lógicos
de archivos, relacionados con sus identificadores
internos del SO. - El servidor de archivos tendrá por objetivo
- facilitar el manejo de los dispositivos
periféricos de almacenamiento - proteger a los usuarios, poniendo limitaciones a
los archivos que pueden manipular (para evitar
uso de recursos e información ajenos)
47Gestión de archivos y directorios (II)
El servidor de archivos ofrece al usuario una
visión lógica, compuesta por elementos (archivos
y directorios) identificables por un nombre y
sobre los que se pueden realizar ciertas
operaciones. Cabe distinguir entre visión lógica
y visión fÃsica de archivos y directorios. La
visión fÃsica tiene que ver con los detalles de
la forma en que se almacena esa información en
los periféricos en que residen. La visión lógica
permite ignorar los detalles reales de
almacenamiento de la información y tratar
archivos y directorios como si fuesen unidades
lógicas de información (de ahà visión lógica).
48Gestión de archivos y directorios (III)
Contenidos, datos, relaciones entre
datos, operaciones sobre conjuntos de datos
Sectores, pistas, cabezas lectoras, tablas de
ubicación, etc MS-DOS FAT UNIX i-node
49Gestión de archivos y directorios (IV)
Visión Lógica
Posición
Visión FÃsica
Archivo A
1
4
2
5
3
6
Bloques
13
20
7
10
8
11
9
12
1
13
16
14
17
15
18
8
3
19
22
20
23
21
24
16
19
25
28
26
29
27
30
Bloques de la Unidad de Disco
50Gestión de archivos y directorios (V)
- Cada archivo dispone de información asociada,
entre la que podemos distinguir - tipo de archivo (datos, ejecutable, etc)
- propietario (usuario que lo creó y grupo al que
pertenece) - tamaño
- eventos importantes instante de creación, última
modificación, último acceso - Derechos de acceso
- Las operaciones sobre archivos ofrecidas por el
SO se refieren a la visión lógica. La solución
más normal suele consistir en ofrecer al usuario
el archivo como un vector de bytes o caracteres
51Gestión de archivos y directorios (VI)
- Los datos relativos a la visión fÃsica del
archivo han de residir en el propio dispositivo
de almacenamiento, de forma que el dispositivo
pueda llevarse de una máquina a otra. El servidor
de archivos debe ser capaz de interpretar las
estructuras asociadas a la visión fÃsica,
liberando a los programas del usuario de esta
labor. - Los servicios ofrecidos por el servidor de
archivos son - crear archivo se crea un archivo vacÃo. Exige
interpretar el nombre para ver si es correcto y
si el usuario puede hacer sobre él las
operaciones indicadas en la marca de creación. Se
devuelve un identificador, descriptor o manejador
del archivo. - abrir archivo comprueba si existe el archivo y
si el usuario que realiza la solicitud tiene
permisos para actuar sobre el mismo. - escribir y leer se comprueba que hay permisos
para hacer la operación pertinente. Se necesita
el descriptor o identificador del archivo
52Gestión de archivos y directorios (VII)
- cerrar archivo se elimina el identificador
obtenido en la apertura o creación de un archivo - borrar archivo elimina la información almacena y
se liberan los recursos correspondientes - Un directorio es un objeto que relaciona de forma
unÃvoca nombres y archivos. Por tanto, sirve para
organizar e identificar archivos. Respecto a los
directorios también puede distinguirse entre
visión lógica y fÃsica. - visión lógica esquema jerárquico de nombres
(transparencia siguiente) - visión fÃsica estructuras de información que
permiten relacionar cada nombre lógico con la
descripción fÃsica del correspondiente archivo.
En esencia, tabla con pares nombre-identificador
para cada subdirectorio
53Gestión de archivos y directorios (VIII)
- nombre nombre del archivo
- identificador información para localizar la
descripción fÃsica del archivo
54Gestión de archivos y directorios (IX)
- Ventaja del esquema jerárquico permite gestión
distribuida de los nombres, al garantizar de
forma sencilla que no existan nombres repetidos. - Entre los servicios de directorios tenemos
- crear directorio
- borrar directorio
- abrir directorio permite obtener un descriptor,
para acceder a su contenido - leer directorio acceso a la información sobre
sus entradas - cerrar directorio cierra y libera el
identificador obtenido en la operación de
apertura, asà como los recursos correspondientes - SISTEMA DE ARCHIVOS conjunto de archivos
incluidos en las unidades de disco (datos de
archivos información auxiliar gestión o
metainformación)
55Gestión de archivos y directorios (X)
- Metainformación
- estructura fÃsica de los archivos i-nodos, FAT,
etc - directorios
- estructura fÃsica del sistema de archivos
(superbloque en UNIX, por ejemplo) - estructura de la información en bloques e i-nodos
libres - Cada SO organiza a su modo las particiones en
disco, repartiendo el espacio entre programa de
carga del SO, metainformación y datos.
Normalmente las tablas de directorios se
almacenan también como archivos especiales,
compitiendo con los archivos de datos por los
bloques disponibles del dispositivo de
almacenamiento.
569. Seguridad y protección
57Seguridad y protección (I)
Seguridad garantizar la identidad de los
usuarios (autenticación) y definir las
operaciones permitidas para cada uno de ellos
(privilegios). Autenticación determinar que un
usuario (persona, servicio, computador) sea quien
dice ser. Usualmente los mecanismos de
autenticación se basan en palabras
clave. Privilegios definir operaciones
permitidas para cada usuario. Los ordenan en
grupos. Se asignan permisos individuales y a los
grupos. La información de privilegios puede
asignarse a recursos o usuarios a) por recurso.
Se asigna a los recursos una lista de control de
acceso (ACL). En ella se indican usuarios y
grupos que pueden acceder, asà como operaciones
permitidas
58Seguridad y protección (II)
- b) información por usuario. A cada grupo y
usuario se asocia una lista de recursos a los que
puede acceder. Esta lista se denomina
capacidades. - El servidor de seguridad debe
- autenticar usuarios
- evitar amenazar al sistema (gusanos, virus,
piratas, etc) - evitar captura de comunicaciones (cifrado,
canales seguros, etc) - El servidor de protección debe
- distinguir uso autorizado/no autorizado
- especificar los controles de acceso a realizar
- ofrecer métodos de control de acceso
5910. Activación del SO
60Activación del SO (I)
El SO ha de verse como un servidor a la espera de
recibir órdenes de trabajo.
n
ó
Proceso A
i
Se solicita el SO
c
u
c
Salva el estado del proceso A
e
j
e
Sistema
Realiza la función pedida
a
operativo
l
a
Planificador
z
n
Activador
a
v
A
Proceso B
61Activación del SO (II)
- Las peticiones de trabajo al SO pueden originarse
de diversas formas - llamadas al sistema emitidas por los programas
- interrupciones producidas por los periféricos
- condiciones de excepción o error del hardware
- En cualquier caso deja de ejecutarse un proceso y
toma el control el SO (hay que recordar que el SO
ejecuta en modo núcleo, por lo que la activación
del SO se produce, en última instancia, mediante
el mecanismo de las interrupciones). - Cuando un programa, en un lenguaje de alto nivel,
como C, por ejemplo, realiza la llamada a un
servicio del SO, mediante - nfork()
62Activación del SO (III)
- lo que ocurre es
- la función fork solicitará el servicio
correspondiente al SO (el servicio de creación de
un nuevo proceso), para lo que prepara los
parámetros necesarios para el servicio - se genera una instrucción TRAP, para dar paso al
SO - una vez el SO finaliza, se recuperan los
parámetros devueltos el SO, para pasarlos al
programa en que se usa fork - IMPORTANTE fork no es el servicio del sistema
operativo, sino una función que permite acceder
al mismo
63Activación del SO (IV)
6411. Interfaz del programador
65Interfaz del programador (I)
- Interfaz del SO con el programador ofrece los
servicios y llamadas al sistema, de forma que los
usuarios puedan usar la funcionalidad del SO
desde sus programas. parte vital del SO, ya que
recupera la visión que como máquina extendida
tiene el usuario del SO. Las dos interfaces más
usadas son POSIX y Win32 - POSIX estándar de interfaz de sistemas
operativos portables, de IEEE, basado en el SO
UNIX. Se trata de una especificación estándar, no
de una implementación. Asà los SSOO pueden
adherirse al estándar implementando los servicios
de diferente manera. - Alguna de sus caracterÃsticas son
- - algunos tipos de datos usados por la funciones
no se definen como parte del estándar, sino en la
implementación
66Interfaz del programador (II)
- los nombres de las funciones son cortos y con
todas las letras en minúscula read, fork, close,
etc - las funciones devuelven normalmente 0 en caso de
éxito y 1 en caso de fracaso - la mayorÃa de los recursos gestionados por el SO
se referencian mediante descriptores - B) Win32 servicios ofrecidos por Windows
95/98/NT/2000. No es un estándar genérico, sino
los servicios ofrecidos por Microsoft. - CaracterÃsticas
- - todos los recursos gestionados por el SO se
tratan como objetos, que se referencian mediante
manejadores (similares a los descriptores) (se
sigue la filosofÃa de orientación a objetos,
aunque Win32 no es orientado a objetos)
67Interfaz del programador (III)
- nombres largos y descriptivos GetFileAttributes,
CreateNamedPipe - tipos de datos predefinidos BOOL, DWORD, TCHAR,
LPSTR - las funciones devuelven true en caso de éxito y
false en caso contrario
6812. Interfaz de usuario del SO
69Interfaz de usuario del SO (I)
El usuario necesita interactuar con el SO para
ejecutar programas, borrar archivos, etcPara que
esta relación pueda llevarse a cabo los SSOO
ofrecen interfaces de usuario. Hay que tener en
cuanta que la mayorÃa de los usuarios jamás van a
escribir programas, por lo que no tiene sentido
que la única forma de comunicarse con el SO sea
mediante las llamadas al sistema. La evolución
sufrida por las interfaces de usuario está muy
relacionada con el aumento en el número de
usuarios, de diversa Ãndole (no todos son
expertos en informática). Por esta razón se ha
tendido a simplificar la interfaz, de forma que
el trabajo con el SO sea lo más sencillo posible
para los usuarios. También se ha evolucionado de
interfaces integradas en el núcleo a interfaces
externas. Este segundo enfoque es más seguro y
permite disponer de varias interfaces para un
mismo SO.
70Interfaz de usuario del SO (II)
- Entre las funciones básicas de la interfaz de
usuario podemos citar - permitir acceso de los usuarios (o denegar)
- manipulación de archivos y directorios
- ejecución de programas
- herramientas de desarrollo de aplicaciones
- comunicación con otros sistemas
- información de estado del sistema (fecha, hora,
usuarios conectados, memoria disponible, uso de
CPU, etc) - configuración de la interfaz y del entorno
(entorno geográfico, idioma, fuentes, etc) - intercambio de datos entre aplicaciones (local)
- control de acceso a los recursos
- sistemas de ayuda interactivos
- Algunas interfaces serán especÃficas para
administradores del sistema
71Interfaz de usuario del SO (III)
Cabe distinguir entre interfaces alfanuméricas
(consola DOS, UNIX) e interfaces gráficas
(Windows, Desktop, etc)
7213. Historia de los SSOO
73Historia de los SSOO (I)
- Funcionalidad del SO estrechamente ligada al
hardware subyacente. Relación entre SSOO y
Arquitectura. Por ello, la historia de los SSOO
está asociada a la historia del hardware - PREHISTORIA
- Años 40
- No hay SSOO
- Los usuarios codifican A MANO los programas.
Introducirlos es actuar directamente sobre los
circuitos del ordenador - Trabajo en serie tarea1, tarea2, tarea2, etc
74Historia de los SSOO (I)
- Primera generación
- Años 50
- Aparición de los SSOO
- Trabajo en serie
- Problema básico abordado minimizar el tiempo
empleado en retirar un trabajo y montar el
siguiente - Facilitar operaciones E/S
- Concepto de lote conjunto de programas, que se
ejecutarán uno tras otro. Este modo de
funcionamiento minimiza el tiempo de montaje
75Historia de los SSOO (II)
- Segunda generación
- Años 60
- Objetivo mejora de explotación de máquinas muy
caras - imposición de la multiprogramación como forma de
aprovechar el tiempo usado por las operaciones de
E/S (varios trabajos simultáneamente en MP) - Aparición de multiprocesadores
- Aparición concepto de independencia de
dispositivo. El usuario no ha de especificar
dispositivos concretos, sino que se limita a
indicar la operación que precisa y el SO asigna
de forma dinámica el dispositivo que realizará
dicha tarea - Tiempo compartido reparto de CPU entre procesos
activos - Primeros sistemas de tiempo real
76Historia de los SSOO (III)
- Cuarta generación
- Años 70
- SSOO de propósito general. Varios modos de
operación lotes, multiprogramación, tiempo real,
tiempo compartido, etc. - entre el usuario y el hardware se interpone una
gruesa capa de software - inconvenientes complejos lenguajes de control
- E) Quinta generación
- Años 80, actualidad
- Más importancia a la productividad del usuario
que al aprovechamiento de la máquina - Sistemas distribuidos
- Máquina virtual
- Gestores de ventanas