Está en la página 1de 15

UNI DAD 1

1. Concepto de sistema operativo.


Un sistema operativo es un programa que controla la ejecucin de aplicaciones y
programas actuando como interfaz entre las aplicaciones y el hardware del
computador.
Se puede considerar que un SO tiene los siguientes 3 objetivos:
- Facilidad de uso: el SO facilita el uso de un computador. (desarrollo de
programas, ejecucin de programas acceso a dispositivos de E/S, acceso
controlado a ficheros, acceso al sistema, deteccin y respuesta de errores,
contabilidad)
- Eficiencia: un SO permite que los recursos de un sistema de computacin
se puedan utilizar de una manera eficiente.
- Capacidad para evolucionar: un SO se debe construir de tal forma que se
puedan desarrollar, probar e introducir nuevas funciones en el sistema sin
interferir con su servicio. (por ejemplo, actualizaciones de hardware,
nuevos servicios, resolucin de fallos)

2. Recursos que administra un SO.
Los principales recursos administrados por el SO son:
- Procesador
- Memoria Principal
- Dispositivos de entrada y salida

3. Procesos por lotes.
La idea central bajo el esquema de procesamiento en lote es el uso de una pieza
de software denominado monitor. Con este tipo de sistema operativo, el usuario
no tiene que acceder directamente a la mquina, en su lugar, el usuario enva un
trabajo a travs de una tarjeta o cinta al operador que crea un sistema por lotes
con todos los trabajos enviados y coloca la secuencia de trabajos en el dispositivo
de entrada, para que lo utilice el monitor. Cuando un programa finaliza su
procesamiento, devuelve el control al monitor, punto en el cual dicho monitor
comienza la carga del siguiente programa.

4. Aplicaciones del JCL.
JCL es un lenguaje de control de trabajos. Es un lenguaje de programacin
primitivo utilizado para dotar de instrucciones al monitor.

5. Concepto de Spooling.
El spooling se refiere al proceso mediante el cual el computador introduce
trabajos en un buffer (memoria o disco) de manera que un dispositivo pueda
acceder a ellos cuando se encuentre listo.

6. Diferencias entre monoprogramacin y multiprogramacin.
Se denomina monoprogramacin a la situacin en la cual existe un nico
programa en ejecucin. El procesador ejecuta durante cierto tiempo hasta que
alcanza una instruccin de E/S. entonces debe esperar que la instruccin de E/S
concluya antes de continuar.
La multiprogramacin permite albergar en memoria varios programas de manera
de realizar multiplexacin entre todos ellos. Cuando un trabajo necesita esperar
por la E/S, se puede asignar el procesador al otro trabajo que probablemente no
est esperando por una operacin de E/S.

7. Describir los sistemas de programacin por lotes, tiempo compartido y tiempo
real.
Del mismo modo que la multiprogramacin permite al procesador gestionar
mltiples trabajos en lotes en un determinado tiempo, la multiprogramacin
tambin se puede utilizar para gestionar mltiples trabajos interactivos. En este
ltimo caso, la tcnica se denomina tiempo compartido, porque se comparte el
tiempo de procesador entre mltiples usuarios. En un sistema de tiempo
compartido, mltiples usuarios acceden simultneamente al sistema a travs de
terminales, siendo el SO el encargado de entrelazar la ejecucin de cada
programa de usuario en pequeos intervalos de tiempo o cuantos de
computacin. Por lo tanto, si hay n usuarios activos solicitando un servicio a la
vez, cada usuario solo vera en media 1/n de la capacidad de computacin
efectiva, sin contar la sobrecarga introducida por el SO. Sin embargo, dado el
tiempo de reaccin relativamente lento de los humanos, el tiempo de respuesta de
un sistema diseado adecuadamente debera ser similar al de un computador
dedicado.
Ambos tipos de procesamiento utilizan multiprogramacin, sin embargo la
multiprogramacin en lotes maximiza el uso del procesador mientras que el
tiempo compartido minimiza el tiempo de respuesta.
En los sistemas de procesamiento de transacciones de tiempo real, un cierto
nmero de usuarios realiza consultas o actualizaciones sobre una base de datos.

8. Multiprocesamiento.
El multiprocesamiento es la gestin de mltiples procesos dentro de un
multiprocesador.
En un monoprocesador multiprogramado, la ejecucin de varios procesos se
puede intercalar en el tiempo. En un multiprocesador, no solo se intercala la
ejecucin de procesos, tambin es posible que haya mltiples procesos que se
ejecuten de forma simultnea.

9. Sealar diferencias entre proceso distribuido y multiproceso.
Un proceso distribuido gestiona mltiples procesos que ejecutan sobre mltiples
sistemas de cmputos distribuidos, es decir, separados fsicamente pero
conectados entre s por una red de comunicaciones distribuidas, con lo cual,
aunque cada mquina posee sus propios componentes de hardware y software el
usuario lo percibe como un nico sistema.
La diferencia entre multiproceso y proceso distribuido, es que aunque ambas
gestionan varios procesos, la primera lo realiza sobre un sistema multiprocesador
donde cada procesador puede acceder a una memoria comn, mientras que la
segunda los procesadores se encuentran separados con lo cual cada uno cuenta
con su propia memoria local.

10. Estructuras que presentan los SO.
Algunas de las estructuras que presentan los SO son:
- Monoltico
El SO se forma por un gran ncleo monoltico, que proporciona la mayora
de las funcionalidades consideradas propias del SO, incluyendo la planificacin,
los sistemas de ficheros, las redes, los controladores de dispositivos, la gestin de
memoria y otras funciones. Normalmente, un ncleo monoltico se implementa
como un nico proceso, con todos los elementos compartiendo el mismo espacio
de direcciones.

- Microncleo (Microkelner)
Una arquitectura microncleo asigna solo unas pocas funciones esenciales
al ncleo, incluyendo los espacios de almacenamiento, comunicacin entre
procesos y la planificacin bsica. Ciertos procesos proporcionan otros servicios
del SO, algunas veces denominados servidores, que ejecutan en modo usuario y
son tratados como cualquier otra aplicacin por el microncleo. La tcnica
microncleo simplifica la implementacin, proporciona flexibilidad y se adapta
perfectamente a un entorno distribuido.

- Multiprocesamiento simtrico
El multiprocesamiento simtrico (SMP) se refiere a la arquitectura
hardware del computador y tambin al comportamiento del SO que explota la
arquitectura multitheading. Multitheading es una tcnica en la cual un proceso,
ejecutando una aplicacin se divide en una serie de hilos o theads que pueden
ejecutar concurrentemente. Un thread o hilo, se trata de una unidad de trabajo
que incluye el contexto del procesador y su propia rea de datos para una pila. Un
hilo se ejecuta secuencialmente y se puede interrumpir de forma que el
procesador pueda dar paso a otro hilo. El proceso, es una coleccin de uno o ms
hilos y sus recurso de sistema asociados. La tcnica multithereading es til para
las aplicaciones que llevan a cabo un nmero de tareas esencialmente
independientes que no necesitan ser serializadas como por ejemplo un servidor
de base de datos que escucha y procesa numerosas peticiones de cliente.
La tcnica multithreading y SMP son frecuentemente analizados juntos, pero son
dos utilidades independiente, pudiendo un nodo monoprocesador utilizar la
tcnica de multithreading para estructurar aplicaciones y proceso de ncleo.

- Sistemas Distribuidos
Un sistema distribuido proporciona la ilusin de un solo espacio de
memoria principal y un solo espacio de memoria secundario, ms otras utilidades
de accesos unificadas, como un sistema de ficheros distribuidos frente a la
problemtica de proporcionar la apariencia de un solo sistema a un clster de
computadores, tratndose este de una coleccin de entidades cada uno con sus
propios mdulos de memoria principal, de memoria secundaria y otros mdulos
de E/S.

- Diseo Orientado a Objetos
Los SO orientados a objetos explotan el uso de tecnologas OO. El diseo
introduce una disciplina al proceso de aadir extensiones modulares a un
pequeo ncleo. A nivel del SO, una estructura basada en objeto permite a los
programadores personalizar un SO sin eliminar la integridad del sistema,
facilitando el desarrollo de herramientas distribuidas y SO distribuidos.

11. Caractersticas fundamentales de la estructura monoltica.
El SO se forma por un gran ncleo monoltico, que proporciona la mayora de las
funcionalidades consideradas propias del SO, incluyendo la planificacin, los
sistemas de ficheros, las redes, los controladores de dispositivos, la gestin de
memoria y otras funciones. Normalmente, un ncleo monoltico se implementa
como un nico proceso, con todos los elementos compartiendo el mismo espacio
de direcciones.

12. Caractersticas de la estructura jerrquica.
Para gestionar la complejidad de los SO y eliminar los problemas relacionados al
mismo, se han desarrollado basados en la estructura modular, lo cual ayuda a
organizar el proceso de desarrollo de software y limita el esfuerzo de diagnosticar
y corregir errores. Los mdulos deben tener interfaces bien definidas y estas
deben ser tan sencillas como sean posibles facilitando la programacin y
posterior evolucin del sistema. A su vez, debe existir mnimas interfaces entre
los mdulos de manera de modificar un mdulo con un mnimo impacto en otros
mdulos.
La estructura jerrquica de un SO separa sus funciones de acuerdo a las
caractersticas de sus escala de tiempo y su nivel de abstraccin. Se puede ver al
sistema como una serie de niveles. Cada nivel realiza un subconjunto relacionado
de funciones requeridas por el SO. Dicho nivel confa en los niveles
inmediatamente inferiores para realizar funciones ms primitivas y ocultar los
detalles de esas funciones. Cada nivel proporciona servicios a la capa
inmediatamente superior. Idealmente, estos niveles deben definirse de tal forma
que los cambios en un nivel no requieran cambios en otros niveles. En general,
las capas inferiores tratan con una escala de tiempo menor, por ejemplo las partes
que deben interactuar directamente con el hardware del computador, mientras
que otras partes ejecutan en una escala de tiempo mucho ms larga, por ejemplo
aquellas que se comunican con el usuario.

13. Concepto de mquina virtual.
Una mquina virtual es un programa informtico que crea un entorno virtual
entre el sistema operativo y el hardware para que el usuario final pueda ejecutar
aplicaciones en una maquina abstracta. Se trata de un tipo de sistemas operativos
que presentan una interface a cada proceso, mostrando una mquina que parece
idntica a la maquina real subyacente.

14. Funcin del ncleo en un SO del tipo cliente-servidor.
La estructura cliente servidor es un modelo basado en la idea del servicio, en el
que el cliente es un proceso consumidor de servicios y el servidor es un proceso
proveedor de servicios.
La estructura se encuentra compuesta de los siguientes niveles:
- Nivel presentacin: agrupa a todos los elementos asociados al componente
cliente.
- Nivel de aplicacin: agrupa a todos los elementos asociados al componente
servidor.
- Nivel de comunicacin: agrupa a todos los elementos que hacen posible la
comunicacin entre los componentes cliente-servidor.
- Nivel de base de datos: agrupa a todas las actividades asociadas al acceso de
los datos.
La funcin del kernel se reduce a funciones bsicas como controlar, supervisar y
coordinar la comunicacin entre procesos clientes y servidores, mientras que se
pretende implementar la mayora de las funciones del sistema operativo como
procesos de usuario dejando un ncleo mnimo.

15. Qu entiende por virtualizacin, y que software conoce que ofrezca el
Servicio en el mercado?
La virtualizacin es una tecnologa que permite ejecutar varios sistemas
operativos simultneamente en una misma mquina. En un entorno virtualizado,
cada sistema operativo tiene la ilusin de residir en una mquina propia,
disponible enteramente para l. Para conseguir esto es necesario un programa
(denominado virtualizador) que se encargue de arbitrar el uso del hardware.
Para ello intercepta las operaciones privilegiadas y simula sus efectos sobre un
dispositivo virtual, tambin simulado. As, cuando un sistema operativo cree que
est escribiendo en un disco duro real, en realidad lo hace en un fichero,
gestionado por el supervisor, que simula dicho disco duro. Lo mismo con el resto
de los perifricos.

16. Servicios que debe proporcionar un SO.
Un SO proporciona normalmente servicios en las siguientes reas:
- Desarrollo de programas
- Ejecucin de programas
- Acceso a dispositivos de E/S
- Acceso controlado a los ficheros
- Acceso al sistema
- Deteccin y respuesta a errores
- Contabilidad
17. Manejo de las interrupciones.
Ver 31.

Una interrupcin es una seal que enva un dispositivo de E/S a la CPU para
indicar que la operacin de la que se estaba ocupando ya ha terminado. Una
interrupcin se trata en todo caso, despus de terminar la ejecucin de la
instruccin en curso. La ventaja de este procedimiento es que no se tiene que
perder tiempo ejecutando continuamente rutinas para consultar el estado del
perifrico.
El mecanismo de tratamiento de las interrupciones permite al SO utilizar la CPU
en servicio de una aplicacin, mientras otra permanece a la espera de que
concluya una operacin en un dispositivo de E/S. El hardware se encarga de
avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede intervenir
entonces, si es conveniente, para hacer que el programa que estaba esperando
por el dispositivo se contine ejecutando. En ciertos intervalos de tiempo puede
convenir no aceptar seales de interrupcin las cuales pueden inhibirse por
programa.


18. En qu consiste una llamada al SO y cmo se ejecuta?
Ciertas instrucciones las cuales son ncleo del SO, solo se pueden ejecutar en
modo privilegiado nicamente (modo sistema o ncleo). Esta incluir lectura y
modificacin de los registros de control as como el acceso a ciertas regiones de
memoria.
El modo usuario, es en el cual los programas de usuario tpicamente se ejecutan.
Los motivos por los cuales se utilizan estos modos es porque se necesita proteger
al SO y a las tablas claves del sistema de la interferencia con programas de
usuario. En modo ncleo, el software tiene control completo del procesador y de
sus instrucciones, registros y memoria.
Cuando una llamada al sistema es invocada, la ejecucin el programa que invoca
es interrumpida y sus datos son guardados, normalmente en su bloque de control
de proceso, para poder continuar ejecutndose luego. El procesador entonces
comienza a ejecutar las instrucciones de cdigo de alto nivel de privilegio, para
realizar la tarea requerida. Cuando finaliza, se retorna al proceso original y
continuo su ejecucin.
Existe un bit en la palabra de estado de programa (PSW) que indica el modo de
ejecucin. Este bit se cambia como respuesta a determinados eventos.
Habitualmente cuando un usuario realiza una llamada a un servicio del SO o
cuando una interrupcin dispara la ejecucin de una rutina del SO, este modo de
ejecucin se cambia a modo ncleo y tras la finalizacin del servicio, el
procesador restaura el PSW del programa interrumpido, con lo cual, se restaura el
nivel de privilegios de dicho programa fijando de nuevo el modo usuario.

19. Qu entiende por Agrupacin o Cluster de computadoras?
Un clster es un conjunto de computadoras constituidas mediante la utilizacin
de hardware comn y que se comporta como si fuese una nica computadora.
Este grupo de computadoras de relativo bajo costo se encuentra conectadas entre
s mediante un sistema de red de alta velocidad y un software que realiza la
distribucin de la carga de trabajo entre los equipos.

20. Qu ventajas trae aparejada la clusterizacion?
La tecnologa cluster permite incrementar la capacidad de procesamiento usando
tecnologa estndar, tanto en componente de hardware como de software que
pueden adquirirse a un costo relativamente bajo.
De esta manera, los clster ofrecen las siguientes caractersticas a un costo
relativamente bajo:
- Alto rendimiento
- Alta disponibilidad
- Alta eficiencia
- Escalabilidad

21. Qu entiende por GRID o malla de computadoras?
La computacin en GRID es un paradigma de computacin distribuida en el cual
todos los recursos de un nmero indeterminado de computadoras son englobados
para ser tratados como un nico superordenador de manera transparente, aunque
no estn conectadas o enlazadas firmemente.

22. Qu diferencias hay entre Clster y Grid?
En un clster todos los nodos se encuentran en el mismo lugar, conectados por
una red local para as englobar todos los recursos. En cambio, en un GRID no
tienen por qu estar en el mismo espacio geogrfico, es decir, pueden estar en
diferentes puntos del mundo. A su vez, un GRID es el resultado de englobar las
maquinas en una supercomputadora, mientras que con un clster solo se busca
mejorar el rendimiento de las maquinas englobndolas en una sola.

23. Efecte una presentacin de casos para los temas desarrollados en la unidad.

24. Protecciones en un SO.
En general, el principal problema es el control de acceso a los sistemas de
computacin y a la informacin almacenada en ellos.
La mayora del trabajo en seguridad y proteccin relacionado con los SO se
puede agrupar de forma genrica en cuatro categoras:
- Disponibilidad: relacionado con la proteccin del sistema frente a las
interrupciones.
- Confidencialidad: asegura que los usuarios no puedan leer los datos sobre
los cuales no tienen autorizacin de acceso.
- Integridad de los datos: proteccin de los datos frente a modificaciones no
autorizadas.
- Autenticidad: relacionado con la verificacin apropiada de la identidad de
los usuarios y la validez de los mensajes o los datos.

25. Definir el concepto de proceso.
Un proceso podra definirse como:
- Un programa en ejecucin
- Una instancia de un programa ejecutndose en un computador
- La entidad que se puede asignar o ejecutar en un procesador
- Una unidad de actividad caracterizada por un solo hilo secuencial de
ejecucin, un estado actual y un conjunto de recursos del sistema asociado.

Un proceso se puede considerar formado por los siguientes componentes:
- Un programa ejecutable
- Los datos asociados que necesita el programa (variables, espacio de
trabajo, buffers, etc)
- El contexto de ejecucin del programa.

26. Concepto de bloque de control de proceso.
El bloque de control de proceso (BCP) contiene suficiente informacin de forma
que es posible interrumpir el proceso cuando est corriendo y posteriormente
restaurar su estado de ejecucin como si no hubiera habido interrupcin alguna.
El BCP es la herramienta clave que permite al SO dar soporte a mltiples
procesos y proporcionar multiprogramacin. Cuando un proceso se interrumpe,
los valores actuales del contador de programa y los registros del procesador
(datos de contexto) se guardan en los campos correspondientes del BCP y el
estado del proceso se cambia a cualquier otro valor. El SO es libre de poner otro
proceso en estado de ejecucin.
Entre la informacin almacenada en el BCP se encuentra:
- Identificador
- Estado
- Prioridad
- Contador de programa
- Puntero a memoria
- Datos de contexto
- Informacin de estado de E/S
- Informacin de auditoria

27. Cambio contexto. Cambio de modo.
En la fase de interrupcin, el procesador comprueba que no exista ninguna
interrupcin pendiente, indicada por la presencia de una seal de interrupcin. Si
no hay interrupciones pendientes, el procesador pasa a la fase de bsqueda de
instruccin siguiendo con el programa del proceso actual. Si hay una interrupcin
pendiente, el proceso acta colocando el contador de programa en la direccin de
comienza de la rutina del programa manejador de la interrupcin y cambia de
modo de ejecucin a modo ncleo de forma que el cdigo de tratamiento de la
interrupcin pueda incluir instrucciones privilegiadas. El procesador acto
seguido, pasa a la fase de bsqueda de instruccin y busca la primera instruccin
del programa de manejo de interrupcin que dar servicio a la misma. En este
punto, el contexto del proceso que se ha interrumpido se salvaguarda en el BCP
del programa interrumpido.
Un cambio de modo puede ocurrir sin que se cambie el estado del proceso
actualmente en estado ejecutando.
Sin embargo, si el proceso actualmente en estado ejecutando se va a mover a
cualquier otro estado, entonces el SO debe salvar el estado del procesador,
actualizar el BCP del proceso que est actualmente en el estado ejecutando.
Mover el BCP a la cola apropiada (listo, bloqueado, listo/suspendido).
Seleccionar un nuevo proceso a ejecutar. Actualizar el BCP del proceso elegido
incluyendo el cambio de estado a ejecutando. Actualizar las estructuras de datos
de gestin de memoria y restaurar el estado del procesador al que tena en el
momento en el que el proceso seleccionado sali del estado ejecutando por
ltima vez.

28. Estados activo de un proceso.
Un modelo de los estados de un proceso es:
- Ejecutado: el proceso est actualmente en ejecucin.
- Listo: un proceso que se prepara para ejecutar cuando tenga oportunidad.
- Bloqueado: un proceso que no puede ejecutar hasta que se cumpla un
evento determinado o se complete una operacin E/S.
- Nuevo: un proceso que se acaba de crear y que an no ha sido admitido
en el grupo de procesos ejecutables por el SO.
- Saliente: un proceso que ha sido liberado del grupo de procesos
ejecutables por el SO, debido a que ha sido detenido o que ha sido abortado por
alguna razn.
- Bloqueado/Suspendido: el proceso est en almacenamiento secundario
y esperando un evento.
- Listo/Suspendido: el proceso est en almacenamiento secundario pero
est disponible para su ejecucin tan pronto como sea cargado en memoria
principal.

29. Transiciones de estado.


- Null Nuevo. Se crea un nuevo proceso para ejecutar un programa.
- Nuevo Listo. El SO mueve a un proceso del estado nuevo al estado listo,
cuando este se encuentre preparado para ejecutar un nuevo proceso. La mayora
de los sistemas fijan un lmite basado en el nmero de procesos existentes o la
cantidad de memoria virtual que se podr utilizar por parte de los procesos
existentes.
- Listo Ejecutando. Cuando llega el momento de seleccionar un nuevo
proceso para ejecutar, el SO selecciona uno de los procesos que se encuentren en
estado listo. Esta es una tarea que lleva a cabo el planificador.
- Ejecutando Saliente. El proceso actual en ejecucin se finaliza por parte del
SO tanto si el proceso indica que ha completado su ejecucin como si este se
aborta.
- Ejecutando Listo. La razn ms habitual para esta transicin es que el
proceso en ejecucin haya alcanzado el mximo tiempo posible de ejecucin de
forma ininterrumpida. Otro caso, es en el cual el SO asigna diferentes niveles de
prioridad a diferentes procesos.
- Ejecutando Bloqueado. Un proceso se pone en el estado bloqueado si
solicita algo por lo cual debe esperar, por ejemplo al solicitar un recurso como un
fichero o una seccin compartida de memoria.
- Bloqueado Listo. Un proceso en estado bloqueado se mueve al estado listo
cuando sucede el evento por el cual estaba esperando.
- Listo Saliente. En algunos sistemas un padre puede terminar la ejecucin de
un proceso hijo en cualquier momento. Tambin, si el padre termina, todos los
procesos hijos asociados con dicho padre pueden finalizar.
- Bloqueado Saliente. Igual al caso anterior.
- Bloqueado Bloqueado/Suspendido. Si no hay procesos listos, entonces al
menos uno de los procesos bloqueados se transfiere a disco para hacer espacio
para otro proceso que no se encuentre bloqueado. Esta transicin puede realizarse
incluso si hay procesos listos disponibles, por ejemplo si el SO determina que el
proceso actualmente en ejecucin o los procesos listos requieren ms memoria
principal para mantener un rendimiento adecuado.
- Bloqueado/Suspendido Listo/Suspendido. Un proceso en estado
bloqueado/suspendido se mueve al estado listo/suspendido cuando sucede un
evento el cual estaba esperando. Esto requiere que la informacin de estado
concerniente a un proceso suspendido sea accesible para el SO.
- Listo/Suspendido Listo. Cuando no hay ms procesos listos en memoria
principal, el SO necesitara traer uno para continuar la ejecucin. Adicionalmente
puede darse el caso de que un proceso en estado listo/suspendido tenga mayor
prioridad que cualquiera de los procesos en estado listo.
- Listo Listo/Suspendido. Normalmente, el SO preferir suspender procesos
bloqueados que un proceso listo, pero puede ser necesario suspende un proceso
listo si con ello se consigue liberar un bloque suficientemente grande de
memoria.

30. Operaciones sobre un proceso.
Las operaciones sobre un proceso son:
- Creacin de proceso
- Cambio de proceso
- Finalizacin de proceso

31. Interrupciones, excepciones, llamados al supervisor.
Podemos distinguir dos tipos de interrupciones de sistema, las interrupciones
propiamente dichas y las traps.
Las interrupciones se producen por causa de algn tipo de evento que es externo
e independiente al proceso actualmente en ejecucin, por ejemplo, la finalizacin
de la operacin de E/S.
Las traps estn asociadas a una condicin de error o excepcin generada dentro
del proceso que est ejecutando como un intento de acceso no permitido a un
fichero.
Dentro de una interrupcin ordinaria, el control se transfiere inicialmente al
manejador de interrupcin que realiza determinadas tareas internas y que
posteriormente salta a una rutina del SO encargada de cada uno de los tipos de
interrupciones particulares, como son: interrupcin de reloj, interrupcin de E/S,
fallo de memoria.
Con un trap, el SO conoce si una condicin de error o de excepcin es
irreversible. Si no es as, el proceso en ejecucin se pone en el estado saliente y
se hace un cambio de proceso. De no ser as, el SO actuara dependiendo de la
naturaleza del error y su propio diseo. Se puede intentar un procedimiento de
recuperacin o simplemente la notificacin al usuario, pudiendo implicar tanto
un cambio de proceso como la continuacin de la ejecucin del proceso actual.

32. Concepto de hilos (threads). Funcionalidad. Multihilos.
Multihilo se refiere a la capacidad de un SO de dar soporte a mltiples hilos de
ejecucin en un solo proceso.
Dentro de un proceso puede haber uno o ms hilos, cada uno con:
- Un estado de ejecucin por hilo.
- Un contexto de hilo que se almacena cuando no est en ejecucin.
- Una pila de ejecucin.
- Un espacio de almacenamiento por cada hilo.
- Acceso a memoria y recursos de su proceso compartido por todos los hilos
de un mismo proceso.
En un entorno multihilo, sigue habiendo un nico BCP del proceso y un espacio
de direcciones de usuario asociado al proceso, pero ahora hay varias pilas (pila de
usuario y ncleo) separadas para cada hilo, as como un bloque de control para
cada hilo que contiene los valores de los registros, la prioridad y otra informacin
relativa al estado del hilo. De esta forma, todos los hilos de un proceso comparten
el estado y los recursos de ese proceso, residen en el mismo espacio de
direcciones y tienen acceso a los mismos datos. Cuando un hilo cambia
determinados datos en memoria, otros hilos ven los resultados cuando acceden a
estos datos. Si un hilo abre un archivo con permisos de lectura, los dems hilos
del mismo proceso pueden tambin leer ese archivo.

Los mayores beneficios de los hilos son:
- Menor tiempo de creacin de un hilo con respecto a un proceso.
- Menor tiempo de finalizacin de un hilo con respecto a un proceso.
- Menor tiempo de cambio entre dos hilo dentro de un proceso.
- Los hilos mejoran la eficiencia de la comunicacin entre diferentes
programas que estn ejecutando. La comunicacin entre procesos
independientes requiere la intervencin del ncleo para proporcionar
proteccin y los mecanismos necesarios de comunicacin. Sin embargo,
ya que los hilos dentro de un mismo proceso comparten memoria y
archivos, se pueden comunicar entre ellos sin necesidad de invocar al
ncleo.

33. Hilos a nivel ncleo y a nivel usuario.
En un entorno de hilos a nivel de usuario puro, la aplicacin gestiona todo el
trabajo de los hilos y el ncleo no es consciente de la existencia de los mismos.
Cualquier aplicacin puede programarse para ser multihilo a travs del uso de
una biblioteca de hilos, que contiene cdigo para la creacin y destruccin de
hilos, para el paso de mensaje, para planificar la ejecucin, etc.
Por defecto, una aplicacin comienza con un solo hilo y ejecutando ese hilo. Esta
aplicacin y su hilo se localizan en un solo proceso gestionado por el ncleo. En
cualquier momento que la aplicacin est ejecutando, la aplicacin puede crear
un nuevo hilo a ejecutar dentro del mismo proceso. La creacin se realiza
llamando a la utilidad de creacin en la biblioteca de hilos. Se pasa el control a
esta utilidad a travs de una llamada a procedimiento. La biblioteca de hilos crea
una estructura de datos para el nuevo hilo y luego pasa el control a uno de los
hilos de ese proceso que est en estado listo, utilizando algn algoritmo de
planificacin. Todo esto tiene lugar en el espacio de usuario y dentro de un solo
proceso. El ncleo contina planificando el proceso como una unidad y asigna al
proceso un nico estado.
El uso de hilos a nivel usuario presenta las siguientes ventajas:
- El cambio de hilo no requiere privilegios de modo ncleo porque toda la
estructura de gestin de hilos estn en el espacio de direcciones de usuario
de un solo proceso.
- La planificacin puede especificarse por parte de la aplicacin.
- Los hilos a nivel de aplicacin pueden ejecutar en cualquier SO.

En un entorno de hilos a nivel de ncleo, el ncleo gestiona todo el trabajo de
gestin de hilos. No hay cdigo de gestin de hilos en la aplicacin, solamente
una interfaz de programacin de aplicacin para acceder a las utilidades de hilos
del ncleo. El ncleo mantiene informacin de contexto del proceso como una
entidad y de los hilos individuales del proceso. La planificacin realizada por el
ncleo se realiza a nivel de hilo. Esto permite planificar simultneamente
mltiples hilos de un solo proceso en mltiples procesadores. A su vez, si un hilo
de un proceso se bloquea, el ncleo puede planificar otro hilo del mismo proceso.
Sin embargo, la principal desventaja de los hilos a nivel ncleo es la transferencia
de control de un hilo a otro del mismo proceso, requiere de un cambio de modo
al ncleo.

34. Qu entiende por microncleo?
Una arquitectura microncleo asigna solo unas pocas funciones esenciales al
ncleo, incluyendo los espacios de almacenamiento, comunicacin entre
procesos y la planificacin bsica. Ciertos procesos proporcionan otros servicios
del SO, algunas veces denominados servidores, que ejecutan en modo usuario y
son tratados como cualquier otra aplicacin por el microncleo. La tcnica
microncleo simplifica la implementacin, proporciona flexibilidad y se adapta
perfectamente a un entorno distribuido actuando como una arquitectura
cliente/servidor dentro de un solo computador.

35. Presentacin de casos.
Presentacin de Windows y Linux

También podría gustarte