Download Introducción

Document related concepts

Sistema operativo wikipedia , lookup

Anillo (seguridad informática) wikipedia , lookup

Proceso de arranque en Linux wikipedia , lookup

Interrupción wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Transcript
Sistemas de
Computación
2007-1
Cecilia Hernández
[email protected]
Que veremos hoy?
Detalles del curso
 Aspectos importantes acerca SOs
 Qué es un SO (Sistema Operativo)?
 Contenidos
 Objetivos
 Tendencias

Detalles del curso


Sitio web: http://www.inf.udec.cl/~sc
Bibliografía
 Silberschatz, Galvin, Gagne, "Operating System
Concepts", 5th y 6th edition, John Wiley & Sons, Inc
(2003)
 Silberschatz, Galvin, Gagne, "Operating System Concepts
with Java", 6th edition, John Wiley & Sons, Inc (2004)
 Andrew Tanenbaum, “Sistemas Operativos Modernos”,
Primera Edición, Prentice Hall. 1993.
 Deitel H. M. “Sistemas Operativos”. Segunda Edición,
Addison Wesley Iberoamericana. 1993.
 Bovet Daniel P., Sesati Marco, “Understanding the Linux
Kernel” (2nd Edition). O'Reilly Media, Inc. 2002
 Andrew Tanenbaum, “Sistemas Operativos Distribuidos”,
Primera Edición, Prentice Hall. 1995
Evaluación



2 Certámenes
Aprox. 6 Proyectos
Participación
Nota Presentación: 0.85*prom certs + 0.15*prom proyectos
Si Nota Presentación < 4
Nota Final = Nota Presentación*0.65 + Examen*0.3 +
Nota Participación*0.05
Else
Nota Final = 0.65*prom certs + 0.3*prom proyectos +
Nota Participación*0.05
Reglas del Juego





Trabajos en grupos de 2 o 3 personas.
Penalidad por atraso, 10% por día, sábado y
domingo incluídos
No asistencia a certamen/proyecto/tarea debe
ser avalado con certificado médico
La no entrega de tarea o proyecto tiene como
consecuencia calidad de NCR
La copia de un certamen/proyecto/tarea es
causal de 1 para los involucrados
Aspectos importantes acerca SO

SO: Componente básico de un sistema
computacional moderno


Magia para la mayoría de las personas
SO: ejemplo de sistema complejo

Muy grande, muy caro de construir
• Windows NT, XP: por ~10 años, más de 1000
personas involucradas.

Cómo manejar complejidad?


Abstracción, modularidad, proceso iterativo
Int main() { cout<<“ Hola Mundo”<<endl;}
• Requiere ejecución de muchas líneas de código, no
visible a programador.
Qué es un SO?
emacs
g++
Aplicación/Firefox
SO
Hardware

SO : software entre Hardware y aplicaciones



Proporciona abstracción del hardware
Proporciona protección
Permite utilizar hardware de millones de
maneras
Objetivos de la clase


Perspectiva de los Sistemas Operativos
 Como usuario/programador, como desarrollar
aplicaciones
 Como diseñar/implementar un Sistema Operativo
Aspectos a aprender en esta clase
 Cuáles son las partes de un sistema operativo
 Componentes de SO y su interacción
 Cuáles son las interfaces importantes
 Cuáles son las características/requerimientos de un
sistema operativo (se compromenten y varían en el
tiempo)
 Políticas y mecanismos
 Cuáles son los algoritmos típicos utilizados
Programa Tentativo







Aspectos Generales e Historia
Administración de Procesos
Administración de Memoria
Sistemas de Entrada/Salida
Sistemas de Archivos
Protección y Seguridad
Inroducción a Sistemas Distribuidos
Sistemas Operativos

Qué es ?

Administrador de recursos
• Abstracción
• Desempeño
• Protección

Soporte usuario/programador
• Abstracción
• Normalmente viene con conjunto de utilitarios

Todo el software que el usuario no escribió que
le permite escribir aplicaciones
• No completamente, programador utiliza editores,
compiladores y bibliotecas que no son parte de SO,
pero muchas veces vienen con instalaciones
estandar
Definición de Sistema Operativo

Como administrador de recursos

Nivel de software que maneja y controla los recursos
computacionales y periféricos por el usuario.
• Abstracción de complejidad del hardware.
• Sistema operativo abstrae hardware en recursos lógicos
• CPU -> Procesos, Hebras
• Memoria -> Memoria virtual, paginación
• Disco -> Archivos
• Tarjetas de Red -> sockets
• Control en la ejecución de procesos, protección usuarios, etc.

Como apoyo en el desarrollo de aplicaciones

Set de utilitarios y ambientes que ayudan al usuario a crear
aplicaciones
• Shells, sistemas gráficos, etc
Estructura Lógica de un Sistema
Operativo
Servicios para
Aplicaciones
Servicios independientes
del Hardware
Servicios dependientes
del Hardware
Shells
Ambientes gráficos
Administración
de Procesos
TCP/IP
Utilitarios
Sistemas
Archivos
Administración
de Memoria
Drivers
Control de acceso
Interrupciones, Memoria física, TLB,
CPUs, dispositivos
Beneficios usando SO

Para programadores desarrollando aplicaciones

Facilidades para programar
• Es mejor usar archivos a tener que lidiar con el disco
directamente


Portabilidad (configuración entre máquinas y arquitecturas)
Para usuarios

Seguridad
• Sistema operativo proteje procesos (espacios de memoria
independientes). De usuarios, usuario/kernel

Justicia
• Sistema operativo regula que todos los procesos tengan su
oportinidad de ejecución

Eficiencia
• Muchos usuarios pueden compartir un Computador
• Muchos procesos se ejecutan concurrentemente
Características/requerimientos de un
SO







Estructura. Como organizar componentes de SO
Compartir. Como los usuarios comparten los recursos
Nombres. Como los usuarios o programas nombran los
recursos
Protección. Como los usuarios/programas se protejen entre
ellos (usuario/usuario, programa/programa)
Seguridad. Como se proteje el sistema de ataques. Como
se mantiene la integridad del sistema y sus recursos.
Rendimiento. Como mejorarlo (por qué es lento?)
Confiabilidad. Y en caso de falla (programa o hardware),
que ocurre?
Características/requerimientos de un
SO





Extensibilidad. Como podemos incorporar nuevas
características
Comunicación. Como los usuarios se comunican con
otros usuarios en diferentes computadores
Concurrencia. Como son creadas y controladas las
actividades concurrentes/paralelas
Escalabilidad. Como reacciona el sistema cuando la
carga de trabajo o recursos aumentan
Persistencia. Como hacer que los datos perduren en
el tiempo.
Características/requerimientos de un
SO


Distribución. Como múltiple computadores interectuan
entre sí.
Contraloría o Monitoreo. Como se lleva la cuenta del
uso de recursos. En sistemas comerciales, como
cobrar en función de algunos índices (uso disco,
velocidad de conexión, tiempo ejecución, etc)
Por qué deben estudiar SO en su
carrera?

Construir, modificar o administrar un SO o alguno de sus
componentes

Tomando en cuenta el hardware sobre el cual se ejecutan
• Mayor discusión más adelante.

Entender el desempeño de un SO




Aplicación en otras áreas



Comportamiento de SO afecta toda el sistema y usuarios que la
usan
Constituye un desafío para entender sistemas complejos
Midiendo y optimizando desempeño del sistema
Ingeniería de software (diseño e implementación de aplicaciones),
usando recursos y abstracciones disponibles
Desarrollo en la construcción de algoritmos
Más avanzados
 Proponiedo cambios en técnicas, algoritmos que maximicen
la facilidad de configuración y utilización, uso de recursos,
proposiciones en cambio de arquitectura, construcción de
compiladores, mejoras en protección y seguridad, etc
Evolución de SOs

Con el inicio de los computadores digitales



Computadores eran compartidos por programadores
quienes manipulaban hw y escribían su propio código
para acceso a dispositivos y recopilación de resultados
(ejecuciones exitosas o fallidas)
Posteriormente operador realizada trabajo de cargar y
recopilar info en disposivos correspondientes
Inicios



Inicio de compartición. Bibliotecas y manejadores de
dispositivos
Sistema operativo era una biblioteca que se linkeaba
en un programa. Programa se cargaba completamente
en memoria y se ejecutaba.
Básicamente el sistema operativo era una biblioteca
run-time
Evolución de SOs

Sistemas batch







Sistema operativo estaba almacenado en una porción de
la memoria
Cargaba trabajo a ejecutar a memoria usando un lector de
tarjeta
Ejecutaba trabajo e imprimía resultado, contenido de
memoria y registros para depuración
Cargaba próximo trabajo
Tarjetas de control especificaban al computador que
hacer.
Operadores ordenaban trabajos con requerimientos
similares en grupos (batches) y los ejecutaban
Con este enfoque la CPU pasaba mucho tiempo ociosa
• Diferencias entre dispositivos I/O, mecánicos mucho más
lento que electrónicos
• Gap entre velocidad de CPU y dispositivos siempre muy
grande
Evolución de SOs

Spooling (Simultaneous Peripheral Operation
On-Line)







Con la invensión de Discos más rápidos que lectores
de tarjeta y acceso a dispositivos de salida como
impresoras
Sobreponer lectura/escritura a dispositivos de E/S
mientras se ejecuta proceso en CPU
Spool : buffer que mantiene info de entrada o salida
de un dispositivo
Leer de dispositivos de entrada a disco
Escribir de dispositivos de salida a disco
Usar CPU mientras se lee y escribe a disco
Grupo de trabajos pueden ser leídos a disco
• Sistema operativo elige trabajo a ejecutar
(planificación)

Sin embargo, CPU aun sigue ociosa por mucho
tiempo cuando programa interactua con periférico
Evolución de SOs

Sistemas Multiprogramados

Para aumentar la utilización del sistema

Mantiene varios programas cargados en memoria
simultáneamente
• Protección es importante


Mientras un programa espera por I/O otro puede
estar ejecutándose
beneficios por el uso de dispositivos I/O asincrónicos
• necesita saber cuando el disposito termina
• interrupciones
• polling

Objetivo es optimizar throughput (#trabajos/tiempo)
aunque castiga tiempo de respuesta
Evolución de SOs

Sistemas de Tiempo Compartido

Para soportar uso interactivo
• En un principio un servidor para varios terminales



Cada usuario cree que el sistema esta dedicado a él
Tiempo de respuesta es preferido a throughput
Sistema operativo divide el tiempo de CPU entre los
usuarios
• Procesos se ejecutan por un pequeño periodo de
tiempo o hasta que requieran I/O, entonces el próximo
proceso en la lista entra en ejecución



Usuarios pueden ejecutar procesos interactivos,
como editores, depuradores, etc
Primer sistema: MULTICS ( ~ 1960)
Protección es importante
Sistemas actuales

Sistemas de Escritorio

Maximización de utilización de CPU no es tan
importante como lo es facilidad de uso para el usuario
• Sistemas gráficos (ventanas, menus, etc)



Seguridad es un aspecto importante, sobretodo ahora
que la mayoría de los computadores modernos están
conectados en red
Estaciones de trabajo, son básicamente
computadores para ser usados por usuarios, pero
poseen hw más poderoso, como buenas tarjetas
gráficas y CPUs
Actualmente computadores de escritorio están
incluyendo la tecnología multicore
Sistemas actuales

Sistemas Distribuidos




Sistemas que facilitan el uso de recursos distribuidos
geográficamente
Computadores conectados en red (LAN, WAN)
Soportan comunicación entre trabajos (procesos)
Permite la compartición de recursos (hardware, software)
• balance de carga, autentificación y control de
acceso


Permite algo de paralelismo, pero no es el objetivo principal
Algunos modelos que se usan en el desarrollo de
aplicaciones distribuidas
• Sistemas Peer to Peer
• Servidores y clientes. No hay distinción entre el cliente y el
servidor, ambos actúan como los dos. Se conocen como peers
• Sistemas Cliente/servidor
• Clientes envian requerimientos que servidores procesan y
responden a clientes.
• SO distribuidos
• Proporcionan ilusión que existe un solo SO que controla recursos
distribuidos en red.
Sistemas actuales

Sistemas basados en clusters



Compuestos por dos o más sistemas individuales
acoplados
Definición general : computadores comparten
almacenamiento y están conectados mediante una LAN
con alto ancho de banda
Tipos
• Asimétricos: uno es el principal y otro monitorea principal y
pasa a ser el principal en caso de falla
• Simétricos: dos o más computadores ejecutan las aplicaciones
y se monitorean entre ellas

Sistemas basados en Multiprocesadores



Mejoran productividad, confiabilidad
Comúnmente utilizados en aplicaciones científicas
Computadores paralelos
•
•
•
•
SMPs (Symmetric Multi-Processors)
MPPs (Massively Parallel Processors)
NOWs (Networks Of Workstations)
Grid Computacional
• Incluye clusters y almacemamiento distribuido geográficamente
Sistemas actuales

Sistemas incrustados



CPUs baratas presentes en muchos artículos
Celulares, PDAs, juegos, iPods
Sistemas Handheld


PDAs (Personal Digital Assistants)
Limitados por tamaño
• CPU lenta comparada con PC
• si no requeriría una batería grande
• Pequeña memoria
• La mayoría no implementan memoria virtual


Usan tecnología como BlueTooth e infrarojo para
comunicarse con otros PDAs y PCs
Comunicación inalámbrica ahora también esta accesible
para PDAs
Sistemas actuales

Sistemas de tiempo real


Especialmente diseñados con restricciones de tiempo
importantes
Deben responder a eventos que ocurren con alta precisión
de tiempo
• Sistemas computacionales de emergencia
• Control de tráfico aéreo
• Se agrupan de acuerdo a los requerimientos en tiempos de
respuesta
• Tipos
• Duros: Con restricciones de tiempo importantes. Algunas
características avanzadas de SOs no se encuentran, por ejemplo,
memoria virtual normalmente no es implementada. Se usan en
sistemas de control industrial y robótica.
• Suaves: Menos restrictivo sólo requiere que procesos no esperen
indifinidamente y tengan prioridad sobre otros.
Tendencias en SOs
Mejoras tecnológicas avanzan
rápidamente
 Código de SOs tiende a cambiar
mucho más lentamente que Hardware
 Construcción de sistemas se extiende
mucho más allá que el SO

Citas famosas

“I think there is a world market for maybe
five computers”


“There is no reason for any individual to
have a computer in their home”


Thomas Watson, IBM, 1943
Ken Olson, Digital, 1977
“640K ought to be enough for anybody”

Bill Gates, 1981
Citas famosas
Scientists from RAND Corporation have created this model to illustrate how a
"home computer" could look in the year 2004. However the needed
technology will not be economically feasible for the average home. Also the
scientists readily admit that the computer will require not yet invented
technology to actually work, but 50 years from now scientific progress is
expected to solve these problems. With teletype interface and the Fortran
language, the computer will be easy to use and only
Tendencia en Desempeño de CPU

Desempeño de CPU paró de doblarse cada
18 meses en el 2002
Fuente: David Patterson
Ley de Moore

Continúa mejorando la cantidad de transistores por
chip
Por qué desempeño crece a
menor pendiente?


Según la ley de Moore, es posible conseguir
más transistores por chip
Problema con CPUs




Diseño de chips se está haciendo más
complejo
Tiempos de comunicación se hacen más
importantes
Ruido en los circuitos pasa a ser un factor
importante
Problemas para seguir aumentando la
velocidad del reloj (uso de energía y
disipación de calor)
• Tecnologías multicore permiten aumentar
desempeño a costo de velocidad de reloj
Qué ofrece las empresa ahora?
Qué pasa con la Educación en
Computación?
“Given this sea change, how much of the curriculum
and what fraction of the CS faculty is oblivious to
concurrency? How many algorithms, data structures,
languages, compilers, debuggers, operating
systems, books, and lectures must change to match
the transformation in underlying technology if they
are to remain relevant in the 21st century?”
David Patterson -- Computer Science Education in
the 21st Century
Aparece en Communications of the ACM : Documento completo
aparece en http://www.inf.udec.cl/~chernand/sc/2007-1/links/p27patterson.h
Desafío en computación paralela

Cómo podemos obtener una aceleración de
N en un multiprocesador de N
procesadores?


Software debe ser paralelizable
Métricas para medir aceleración?


Latencia: Tiempo para completar una tarea
(tambien puede referirse a tiempo de
respuesta)
Throghput (productividad): Razón a la cual
tareas son completadas
Un ejemplo de la vida diaria
Problema: Producir cachorros
 Se puede paralelizar el problema?


Latencia : No se puede mejorar
• Cada perrita no puede parir en una
semana
• Latencia 2 meses

Productividad : Si
• 10 perritas pueden producir un cachorro
por mes
• Productividad : 10/mes
Un ejemplo del área

Qué será más importante para una
empresa que vende por internet
Ser capaz de manejar más clientes?
 Hacer que cada transacción se realice
más rápido?

Paralelismo en teoría

Ley de Amdahl: Predice desempeño total
en base a una mejora local.

En una máquina paralela mejora dada por el
número de CPUs
• N : número de procesadores
• F : Factor que no se puede mejorar, en este caso
fracción de computación secuencial
• Que significa F = 0 ???
S=
1
F + (1 - F) / N
Ejemplo: Ley de Amdahl
Programa ocupa el 70% del tiempo ejecutando
código fácilmente paralelizable, y un 30%
en código completamente secuencial (no
paralelizable).
¿Cúal es la aceleración al ejecutar este programa
en un computador paralelo con 2, 3, 4 y 5 CPUs?
¿Cuál es la máxima aceleración posible de
alcanzar a través de paralelismo?
1
S
(1  0.7) 
0.7
N
N
2
3
4
5
inf.
S
1.54
1.85
2.1
2.3
3.3
Evaluación en la práctica

Predecir desempeño es difícil porque
hay muchas formas de paralelismo

Múltiple procesadores
• SMP (Symmetric multiprocessors)
Procesadores multicore
 Procesadores multithreaded
 Clusters


Ejecución de software permite evaluar
experimentalmente
Soporte de la arquitectura para el
Sistema Operativo


En parte el sistema operativo está sujeto a la
arquitectura que lo soporta
 Lista de instrucciones de la CPU (s)
 Controladores como MMU y DMA
Arquitectura construida para soportar SO
 Reloj
 Intrucción Test and Set (para sincronización atómica)
 Protección de memoria
 Operaciones de control I/O
 Interrupciones y excepciones
• Diferencia entre ellas?
Protección en SO

Objetivos



Evitar que sistema se caiga producto de una
aplicación con errores
Evitar que una aplicación/usuario maliciosa(o)
tome el control del sistema (seguridad)
Proteger datos de usuarios de usuarios y
aplicaciones no confiables
Ideas utilizadas en protección



Apropiación: entregar a usuarios y aplicaciones lo que
puede quitar
 Tiempo CPU (uso de reloj de sistema)
Interposición: Llevar cuenta de lo que aplicación está
usando. En cada acceso verificar acceso es legal
 Estructuras de datos usadas en SO para ello
Modo protegido/no protegido
 Aplicaciones usuarios ejecutadas en modo no protegido
 SO ejecutadas en modo protegido
• Operaciones de seguridad sólo permitidas en modo
protegido

Como sabe el procesador que una instrucción protegida
debe ser ejecutada?
• Arquitectura debe soportar modo kernel y modo usuario
Intrucciones Protegidas

Algunas instrucciones son de uso exclusivo del
SO


Directamente accesar dispositivos I/O (discos,
tarjetas de red)
Manipulación de administración de memoria
• punteros a tablas de página, carga a TLBs, etc

Manipulación de bits de modo
• nivel de interrupción de prioridades

Cruce de modo usuario a kernel


Código usuario debe llamar un procedimiento del SO
SO define una secuencia de llamados a sistema
Arquitectura y SO

Frontera entre aplicaciones usuario y sistema
(kernel)


Permite a SO ejecutar instrucciones protegidas
Aplicaciones entran a modo kernel ejecutando
llamadas a sistema
Llamadas a sistema

Transición de modo usuario a modo kernel

Hay una intrucción de llamado a sistema que
• Causa una excepción (a través de una interrupción
software) que direcciona a un handler del kernel
• Pasa un parámetro indicando el llamado a sistema que
debe invocar
• Guarda el estado del que llama (caller) (registros, bit de
modo) para ser restaurados al terminar
• SO verifica los parámetros (punteros) del que llama
(caller)
• Debe retornar al modo usuario cuando termine
Ilustración de la transición de modo
usuario a kernel
Applicación
usuario (llamado a sistema req)
Modo usuario
Modo kernel
Llamado
a sistema
Almacena
estado app
Manejador
llamadas sistema
Ejecuta
Llamada
sistema
Restablece
estado app,
retorna modo
usuario
continua
ejecución
Preguntas




Qué pasaría si el SO no salvara el estado de
las aplicaciones antes de ejecutar un llamado a
sistema?
Por qué el sistema debe verificar parámetros
en los llamados a sistema?
Qué pasaría si una aplicación de usuario
modificara el vector de interrupciones del
sistema?
Cómo el sistema evita que una aplicación lea
directamente del disco en lugar de pasar por
las verificaciones de control de acceso del
sistema de archivos?
Protección de Memoria

Problema1. SO debe protejer programas unos
de otros.

Programas de diferentes usuarios. Malintencionados
o no.
• Solución: Memoria Virtual, donde cada aplicación tiene
su propio espacio de direccionamiento, el cual se
mapea a memoria física a medida que la aplicación lo
requiera

Problema2. Kernel debe proteger sus
programas y datos

Solución: Dividir el espacio de direccionamiento en
la mitad
• La que corresponde al kernel requiere modo de
acceso priviligiado

TLBs y registro para puntero a tabla de páginas
proporcionados por HW
Espacio de direccionamiento
en linux
Operación de SO

Sistema computacional compuesto por CPU y
controladores de dispositivos incluyendo memoria.



Antes de SO. Programa inicial para empezar
(bootstrap program) (en ROM).
Inicializa todos los aspectos del sistema, Registros de
CPU, controladores de dispositivos, contenido de
memoria
 Debe cargar SO en memoria para ejecutarlo.
SO empieza ejecución con algún programa como init
(Unix) y luego espera por la ocurrencia de eventos.


Cada tipo de dispositivo tiene asociado un
controlador.
Controladores funcionan en base a eventos.
Operación de SO


Una vez que el kernel esta en ejecución cualquier
entrada al kernel ocurre mediante un evento.
 Eventos detienen ejecución actual
 cambia modo a modo kernel. SO llama a manejador de
eventos
Kernel define manejadores para cada tipo de evento
 La arquitectura define los tipos (ejemplos, reloj,
interrupciones I/O)
 Cuando el procesador recibe un evento de un tipo
•
•
•
•
transfiere el control al manejador de eventos en el SO
manejador salva estado de proceso actual
manejador llama a la rutina que atiende evento
manejador restaura estado del proceso
Interrupciones y Excepciones

Eventos en el sistema ocurren a través de
interrupciones y excepciones
 Excepciones. Causadas por ejecución de
intrucciones de SW
• x86 assembly: instrucción “int”
• falta de página: intento de escribir en una página
con permisos de lectura solamente

Interrupciones. Causadas por dispositivos HW
• reloj (ha pasado el tiempo programado)
• dispositivo termina con I/O (click on mouse, o
termino copia de bloque a disco, etc)
• llega un paquete de red
Estructura I/O

Secuencia en una operación de I/O
 SO ejecuta intrucciones especiales de I/O o I/O
mapeada a memoria
 CPU carga datos en registros de controlador de
dispositivo
 Controlador de dispositivo examina datos y determina
que acción tomar
 2 posibilidades de acción una vez que empieza I/O
• sincrónica (espera término I/O)
• asincrónica (control transferido a proceso de usuario
mientras I/O termina)

I/O asincrónica (más eficiente uso de recursos)
• dispositivo realiza una operación asincrónica a la CPU
Estructura I/O



Dispositivo envía una interrupción a
través del bus cuando termina
En memoria hay una tabla que contiene
la lista de direcciones de kernel de
rutinas para manejar varios tipos de
interrupciones
CPU se cambia a la dirección indicada
por el vector mediante la señal de
interrupción
Relojes

Como controla el SO que un proceso se acapare
la CPU?
 Reloj que genera una interrupción
periódicamente
 Antes de ejecutar un proceso, el SO carga el
reloj con un tiempo para que luego de expirado
se genere una interrupción (quantum)
 Cuando el quantum expira el control es
transferido al SO para la ejecución del siguiente
proceso (planificación de procesos)
Sincronización


Interrupciones pueden ocurrir en cualquier momento
 proceso a ejecutarse puede interferir con proceso que
esta siendo ejecutado
 SO debe poder sincronizar procesos concurrentes
sanamente
Sincronización
 debe permitir la ejecución de set de instrucciones que
lean-modifiquen-escriban atomicamente (sin ser
interrumpida)
 una forma: desabilitando interrumpciones (arquitectura
debe soportarlo). No aceptable en un sistema
multiprocesador
 otra forma: teniendo una intrucción atómica special que
conste de estas tres operaciones (test-and-set)
Preguntas




Qué pasaría si el SO no salvara el estado de
las aplicaciones antes de ejecutar un llamado a
sistema?
Por qué el sistema debe verificar parámetros
en los llamados a sistema?
Qué pasaría si una aplicación de usuario
modificara el vector de interrupciones del
sistema?
Cómo el sistema evita que una aplicación lea
directamente del disco en lugar de pasar por
las verificaciones de control de acceso del
sistema de archivos?