Sistemas Operativos Páginas Ejercicios

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

1.7.

ORGANIZACIÓN DE LOS SISTEMAS OPERATIVOS 37

Si la vulnerabilidad que aprovecha el código malicioso es resultado de un


error en la implementación, el desarrollador del sistema operativo típicamente
podrá corregirla y poner esta corrección (coloquialmente denominada parche) a
disposición de los usuarios; en los sistemas operativos modernos, la instalación
de estas correcciones se efectúa de forma automatizada. Por otro lado, si la
vulnerabilidad es consecuencia de una debilidad en el diseño, su corrección
puede ser mucho más compleja, incluso puede ser imposible de resolver, como
el caso presentado en la sección 5.6.1.5
Cabe mencionar que una gran cantidad de código malicioso ataca a una
capa particularmente débil de todo sistema de cómputo: al usuario. Un aspec-
to frecuente (y de muy difícil solución) de estos programas es que engañan al
usuario presentándose como código legítimo, y si éste reacciona como el códi-
go malicioso busca, le permitirá la ejecución en el sistema con sus privilegios.
El código malicioso tiende a agruparse y clasificarse de acuerdo a su com-
portamiento, particularmente de cara al usuario: virus, gusanos, caballos de troya,
exploits, y muchos más. Sin embargo, y dado que sus diferencias radican par-
ticularmente en sus múltiples comportamientos ante el usuario o como programa
en ejecución (y se comportan en líneas generales del mismo modo ante el siste-
ma operativo), se determinó que entrar en detalles al respecto resultaría fuera
del ámbito de la presente obra.

1.7. Organización de los sistemas operativos


La complejidad del tema de los sistemas operativos requiere que se haga de
una forma modular. En este texto no se busca enseñar cómo se usa un determi-
nado sistema operativo, ni siquiera comparar el uso de uno con otro (fuera de
hacerlo con fines de explicar diferentes implementaciones).
En el nivel que se estudiará, un sistema operativo es más bien un gran pro-
grama, que ejecuta otros programas y les provee un conjunto de interfaces para
que puedan aprovechar los recursos de cómputo. Hay dos formas primarias de
organización interna del sistema operativo: los sistemas monolíticos y los sis-
temas microkernel. Y si bien no se puede marcar una línea clara a rajatabla
que indique en qué clasificiación cae cada sistema, no es difícil encontrar líneas
bases.

Monolíticos La mayor parte de los sistemas operativos históricamente han si-


do monolíticos: esto significa que hay un sólo proceso privilegiado (justa-
5 El caso de los desbordamientos de buffer no se debe directamente al diseño de uno de los siste-

mas operativos en particular. Su existencia, así como su presencia generalizada por más de 40 años
después de haberse descrito, puede explicarse por la imposibilidad de resolverse este problema
sin el consumo reiterado de recursos de cómputo con operaciones demasiado frecuentes. En es-
te caso en particular, el desbordamiento puede evitarse únicamente usando lenguajes con gestión
automática de memoria, mucho más lentos que los lenguajes de bajo nivel, o concientizando a los
desarrolladores de las prácticas responsables de programación.
38 CAPÍTULO 1. PUNTO DE PARTIDA

mente el sistema operativo) que opera en modo supervisor, y dentro del


cual se encuentran todas las rutinas para las diversas tareas que realiza el
sistema operativo.

Figura 1.9: Esquematización de los componentes en un sistema monolítico.

Microkernel El núcleo del sistema operativo se mantiene en el mínimo posi-


ble de funcionalidad, descargando en procesos especiales sin privilegios las
tareas que implementan el acceso a dispositivos y las diversas políticas
de uso del sistema.

Figura 1.10: Esquematización de los componentes en un sistema microkernel.

La principal ventaja de diseñar un sistema siguiendo un esquema monolíti-


co es la simplificación de una gran cantidad de mecanismos de comunicación,
que lleva a una mayor velocidad de ejecución (al requerir menos cambios de
1.8. EJERCICIOS 39

contexto para cualquier operación realizada). Además, al manejarse la comu-


nicación directa como paso de estructuras en memoria, el mayor acoplamiento
permite más flexibilidad al adecuarse para nuevos requisitos (al no tener que
modificar no sólo al núcleo y a los procesos especiales, sino también la interfaz
pública entre ellos).
Por otro lado, los sistemas microkernel siguen esquemas lógicos más lim-
pios, permiten implementaciones más elegantes y facilitan la comprensión por
separado de cada una de sus piezas. Pueden auto-repararse con mayor facilidad,
dado que en caso de fallar uno de los componentes (por más que parezca ser
de muy bajo nivel), el núcleo puede reiniciarlo o incluso reemplazarlo.

Sistemas con concepciones híbridas No se puede hablar de concepciones úni-


cas ni de verdades absolutas. A lo largo del libro se verán ejemplos de
concepciones híbridas en este sentido: sistemas que son mayormente mono-
líticos pero que manejan algunos procesos que parecerían centrales me-
diante de procesos de nivel usuario como los microkernel (por ejemplo,
los sistemas de archivos en espacio de usuario, FUSE, en Linux).

Figura 1.11: Esquematización de los componentes en un sistema híbrido.

1.8. Ejercicios
1.8.1. Preguntas de autoevaluación
1. ¿En qué se diferencia la multitarea apropiativa de la cooperativa? Para
todas las opciones, léase: “A diferencia de la multitarea cooperativa, la
apropiativa. . . ” (Seleccione al menos una respuesta.)

a) Es inmune a que un cálculo demasiado largo o un ciclo infinito dejen


a la computadora efectivamente congelada.
b) Es la más utilizada hoy en día.
c) Ocurre sólo cuando el proceso hace una llamada al sistema.
40 CAPÍTULO 1. PUNTO DE PARTIDA

d) Se emplea principalmente en sistemas multiusuario.


e) Requiere apoyo de hardware.

2. Un sistema operativo ofrece una serie de recursos o características prin-


cipales, tanto a sus usuarios como a sus programadores. Estos pueden
agruparse en aislamiento, administración de recursos y abstracción.
De las siguientes afirmaciones, ¿cuál responde a cada uno de dichos con-
ceptos, y cuál no corresponde a una función del sistema operativo?

Instrumentar políticas que repartan la atención del sistema de forma


efectiva y acorde a las necesidades establecidas entre los diferentes
procesos o usuarios.
Cada proceso y cada usuario no tendrán que preocuparse por otros
que estén usando el mismo sistema; idealmente, su experiencia será
la misma que si el sistema estuviera exclusivamente dedicado a su
atención. Requiere que el sistema operativo cuente con ayuda del
hardware.
Presentar una interfaz consistente al usuario (puede ser gráfica o
textual), eliminando las diferencias que provendrían de manejar dis-
tintos tipos de hardware.
Los programadores no deben tener que preocuparse de los deta-
lles del acceso a hardware, o de la configuración particular de una
computadora. El programador debe poder enfocarse en resolver los
problemas o necesidades particulares de sus usuarios.

3. Algunos dispositivos requieren de bloqueo para garantizar a un progra-


ma su acceso exclusivo. ¿Cuáles de los siguientes entrarían en ese su-
puesto?

a) Teclado.
b) Unidad de cinta.
c) Discos.
d) Impresora.

4. Un programa típicamente pasa por varias etapas en su ejecución, algunas


de las cuales están limitadas por el procesador, mientras que las otras
lo están por la entrada/salida. Los componentes del sistema que están
ocupados en cada caso son distintos.
¿Qué tipo de sistemas nacieron para responder a esta necesidad?

5. Se presentó que los sistemas microkernel se basan en la simplificación de


los mecanismos de comunicación y un esquema más claro de comunica-
ción entre componentes. Sin embargo, los sistemas monolíticos siempre
1.8. EJERCICIOS 41

fueron más simples de implementar, razón por la cual muchos sistemas


microkernel se han reducido a ejercicios académicos. Explique esta ten-
sión.

6. De los sistemas operativos ampliamente utilizados que conozca, averigüe


cuáles son microkernel y cuáles son monolíticos.

7. Los sistemas operativos empleados para dispositivos móviles son los


mismos que los que utilizan las computadoras personales, sin embargo,
hay áreas particulares, como la interfaz al usuario o el manejo de la ener-
gía, que son claramente distintos: ¿cómo puede verse la influencia en el
sentido inverso? Esto es, ¿qué tanto ha influido la popularización de los
dispositivos móviles en el camino de los sistemas operativos en general?

1.8.2. Lecturas relacionadas


Fernando J. Corbató (2007). «ACM Turing Award Lectures». En: New
York, NY, USA: ACM. Cap. On Building Systems That Will Fail. ISBN:
978-1-4503-1049-9. DOI: 10 . 1145 / 1283920 . 1283947. URL: http :
//doi.acm.org/10.1145/1283920.1283947

R. Bjork (2000). URL: http : / / cs . gordon . edu / courses / cs322 /


lectures/history.html

Michael Kerrisk (2013). Making EPERM friendlier. URL: http : / / lwn .


net / Articles / 532771/ explica algunas de las limitantes de la se-
mántica POSIX como la falta de granularidad en el reporte de mensajes
de error (EPERM) y errno global por hilo.

Joel Spolsky (2003). Biculturalism. URL: http://www.joelonsoftware.


com/articles/Biculturalism.html

Jonathan Zittrain (2008). The future of the Internet and how to stop it. Yale
University Press. URL: http://futureoftheinternet.org/
66 CAPÍTULO 2. RELACIÓN CON EL HARDWARE

to, podría ser más realista que el tiempo de ejecución, no el tamaño del
problema, es constante.

Lo que escribe Gustafson se traduce a que es posible obtener la eficiencia


deseada de cualquier cantidad de procesadores aumentando suficientemente el
tamaño del problema. Al enfrentarse explícitamente con el bloqueo mental contra
el paralelismo masivo que nació de esta lectura errónea de lo comentado por
Amdahl, su artículo sencillo y de apenas más de una cuartilla de extensión
cambió la percepción acerca de la utilidad misma del paralelismo masivo.

2.10. Ejercicios
2.10.1. Preguntas de autoevaluación
1. De las siguientes opciones, ¿cuál responde a la definición de almacena-
miento primario?

a) Las unidades de almacenamiento no volátil de largo plazo (discos,


memoria flash, USB, etcétera)
b) La memoria RAM del sistema.
c) La capa de memoria que corre a mayor velocidad y está más cerca
del procesador.
d) Los registros, espacio de memoria de extremadamente alta veloci-
dad ubicados dentro del mismo procesador.

2. Los primeros procesadores tenían un único registro de propósito general,


llamado también acumulador. Los procesadores actuales tienen 32 o hasta
64. ¿Cuáles son las principales ventajas y desventajas de esta tendencia?

3. ¿Cuál es el máximo de información (en bytes) que puede transferir a me-


moria en un segundo un disco con un tiempo de acceso de 15 ms y una
tasa de transferencia de 80 MB por segundo?

4. De la siguiente lista de eventos, indique cuáles que corresponden a inte-


rrupciones y cuáles a excepciones

a) El usuario accionó alguna tecla.


b) Se produjo un acceso ilegal a memoria fuera del segmento (segmen-
tation fault).
c) El proceso en ejecución lanzó una llamada al sistema.
d) Llegó un paquete a la interfaz de red.
e) Se produjo una división sobre cero.
2.10. EJERCICIOS 67

f ) El proceso en ejecución estuvo activo ya demasiado tiempo, es hora


de un cambio de contexto.
g) Los datos solicitados al controlador de disco duro ya están disponi-
bles.

5. Si el procesador de un sistema corre a 1 GHz, la latencia de la memoria


es de 130ns, y el bus de memoria puede sostener un ancho de banda de
3 000 MB por segundos, asumiendo que no hay ningún otro proceso en
ejecución que entorpezca el proceso, ¿cuántos ciclos de reloj tiene que
esperar el procesador al solicitar una palabra (64 bits)?

2.10.2. Temas de investigación sugeridos


Rootkits: Escondiéndose del administrador Complementando a la división
de espacio usuario y espacio kernel, cabe preguntarse acerca de cómo
se pueden burlar los mecanismos de seguridad.
Si bien a estas alturas del texto aún no se ha profundizado en muchos de
estos temas, un enfoque podría comenzar con enumerar las amenazas:
Una vez que un atacante logró romper un programa al que tenía acceso,
engañando al sistema operativo para que le dé acceso privilegiado, bus-
cará para esconder sus rastros del administrador y, además, asegurarse
de tener un mecanismo fácil para entrar posteriormente. ¿Cómo lo hace,
cómo se puede detectar?

Sistemas basados en malla o grid El modelo de cómputo distribuido basado


en una malla o grid es muy flexible, y lo han adoptado proyectos de todo
tipo. ¿Qué es lo que se distribuye, cómo se paquetiza la información, cómo
se re-agrega, qué tanto costo computacional adicional significa el separar
en estos paquetes a la información?
Se puede emplear un modelo grid con participantes conocidos, con una
membresía predeterminada, pero muchos proyectos lo abren a participa-
ción pública. ¿Hay consideraciones de seguridad a tomar en cuenta?

El Módulo de Plataforma Confiable (TPM o SecureBoot) Tras largos años de


encontrar gran resistencia por parte de la industria, al día de hoy bue-
na parte de las computadoras nuevas vienen con un módulo de plataforma
confiable (Trusted Platform Module) activo. Este polémico módulo imple-
menta verificación de la integridad del sistema operativo, evitando que
un ataque (sea un virus o un agente hostil) ejecute código que altere la ope-
ración del sistema operativo o incluso ejecute antes de éste y lo envuelva
(por ejemplo, en un esquema de virtualización).
El esquema TPM, sin embargo, también puede evitar que el dueño de una
computadora la use como él quiera, forzándolo a ejecutar únicamente los
sistemas operativos aprobados o firmados por el fabricante.

También podría gustarte