Upload
belkys-gonzalez
View
142
Download
1
Embed Size (px)
Citation preview
IINTRODUCCIÓNNTRODUCCIÓN
Los sistemas operativos (SO) son un área del software
extremadamente maravillosa ya que el diseño de ellos ejerce una gran
influencia sobre la funcionalidad general del computador. Es importante
la comprensión de los principios básicos de un SO.
El sistema operativo es como un director de orquestas. Es el
responsable de coordinar todos los componentes individuales del
computador de forma que operen juntos siguiendo un mismo plan.
Para seguir la comparación con el director de orquestas éste, al
igual que el SO, se hace cargo de la agrupación para producir una
secuencia de sonidos agradables. El director establece tiempo de la
música, de la entrada a cada instrumento según deban sonar, controla el
volumen de cada sector individual de la orquesta. Del mismo modo, el SO
asigna los recursos del computador a los diversos programas, sincroniza
sus actividades individuales, y proporciona, generalmente, los
mecanismos necesarios para que los programas se ejecuten en perfecta
armonía.
El SO proporciona una gran cantidad de funciones que asisten a la
ejecución de un programa , como lo son los procesos.
A continuación vamos ampliar nuestros conocimientos sobre los SO
dando paso a los siguientes aspectos, que tienen que ver con los
procesos dentro de un sistema operativo: Métodos de un proceso,
estados, componentes, gestión, administración, comunicación y los
sistemas operativos de interrupción.
1.1. MMÉTODOSÉTODOS DEDE UNUN PROCESOPROCESO ENEN UNUN S SISTEMAISTEMA O OPERATIVOPERATIVO..
La comunicación entre procesos, en inglés IPC (Inter-process
Communication) es una función básica de los sistemas operativos. Los
procesos pueden comunicarse entre sí a través de compartir espacios de
memoria, ya sean variables compartidas o buffers, o a través de las
herramientas provistas por las rutinas de IPC. La IPC provee un mecanismo
que permite a los procesos comunicarse y sincronizarse entre sí,
normalmente a través de un sistema de bajo nivel de paso de mensajes que
ofrece la red subyacente. (Ver anexo 1)
La comunicación se establece siguiendo una serie de reglas
(protocolos de comunicación). Los protocolos desarrollados para internet son
los mayormente usados: IP (capa de red), protocolo de control de
transmisión (capa de transporte) y protocolo de transferencia de archivos,
protocolo de transferencia de hipertexto (capa de aplicación).
Los procesos pueden estar ejecutándose en una o más computadoras
conectadas a una red. Las técnicas de IPC están divididas dentro de
métodos para: paso de mensajes, sincronización, memoria compartida y
llamadas de procedimientos remotos (RPC). El método de IPC usado puede
variar dependiendo del ancho de banda y latencia (el tiempo desde el pedido
de información y el comienzo del envió de la misma) de la comunicación
entre procesos, y del tipo de datos que están siendo comunicados.
Método
Dos o más procesos pueden cooperar mediante señales de forma que
uno obliga a detenerse a los otros hasta que reciban una señal para
continuar.
Se usa una variable de tipo Semáforo para sincronizar los procesos.
Si un proceso está esperando una señal, se suspende (Hold) hasta
que la señal se envíe (SIGNAL).
Se mantiene una cola de procesos en espera en el semáforo.
La forma de elegir los procesos de la cola en ESPERA es mediante
una política FIFO (First In First Out) también llamada FCFS (First
Come First Served), Round Robin, etc.
La sincronización explícita entre procesos es un caso particular del
estado "bloqueado". En este caso, el suceso que permite desbloquear un
proceso no es una operación de entrada/salida, sino una señal generada a
propósito por el programador desde otro proceso.
2.2. EESTADOSSTADOS DEDE UNUN PROCESOPROCESO..
El estado describe la situación actual de un proceso.
Dependiendo de este, el Sistema Operativo considera la acción que
llevará a cabo.
La clasificación más simple viene dada por el ‘Modelo de 2 Estados’
No todos los procesos que no ejecutan están en la misma situación
Un modelo que representa mejor este proceso es el “Modelo de 5
Estados”.
Modelo de 2 Estados
El modelo de estados más simple es el de dos estados. En este
modelo, un proceso puede estar ejecutándose o no. Cuando se crea un
nuevo proceso, se pone en estado de No ejecución. En algún momento el
proceso que se está ejecutando pasará al estado No ejecución y otro
proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo en
estado Ejecución.
De esta explicación se desprende que es necesario que el sistema
operativo pueda seguirle la pista a los procesos, conociendo su estado y el
lugar que ocupa en memoria. Además los procesos que no se están
ejecutando deben guardarse en algún tipo de cola mientras esperan su turno
para ejecutar.
El Modelo de 5 Estados. (Ver anexo 2)
Si el Sistema Operativo se queda sin recursos el proceso se queda en
‘Nuevo’.
Cuando recibe suficientes recursos pasa al estado ‘Listo’.
Este ya es un proceso completamente funcional, aunque el Sistema
Operativo no permite que haya más de un proceso ejecutándose
simultáneamente.
Cuando el Sistema Operativo permite continuar el proceso, este pasa
al estado de ‘Ejecución’.
Una vez finalizada la ejecución, el proceso acaba en el estado
‘Terminado’.
Durante ciertos instantes se mantiene la información del proceso en el
PCB, con el objetivo de obtener datos sobre este.
Por último el Sistema Operativo repite todos los pasos anteriores con
el resto de procesos, que se encontraban ‘en espera’.
Un estado especial sería ‘bloqueado’, por el cual el proceso es
interrumpido hasta que cumpla ciertos requisitos.
El Modelo de 7 Estados
La mayoría de los Sistemas Operativos pueden llevar los procesos
desde la memoria principal, hasta la secundaria, mediante un
mecanismo denominado ‘swapping’ (Intercambio).
Esto permite el intercambio de procesos.
Una gran ventaja de este método es cuando el proceso ‘liberado’ no
puede ejecutarse, y el ‘introducido’ si puede hacerlo.
Un proceso ‘Suspendido’, está en memoria secundaria
Un proceso ‘Bloqueado’, va siempre a memoria secundaria antes que
un proceso ‘listo’.
Un proceso solo regresa a memoria principal [De ‘Listo y Suspendido’
a ‘Listo’] cuando lo decide el Sistema Operativo.
Un proceso ‘Bloqueado y Suspendido’ nunca regresa a la memoria
principal [De ‘Bloqueado y Suspendido’ a ‘Bloqueado’], hasta que se
desbloquee.
Con el intercambio es posible sacar de la memoria principal a
procesos bloqueados, para dejar espacio a otros procesos totalmente
funcionales.
3.3. SSISTEMASISTEMAS OPERATIVOSOPERATIVOS DEDE INTERRUPCIÓNINTERRUPCIÓN..
Una interrupción es un mecanismo que permite ejecutar un bloque de
instrucciones interrumpiendo la ejecución de un programa, y luego
restablecer la ejecución del mismo sin afectarlo directamente. De este modo
un programa puede ser interrumpido temporalmente para atender alguna
necesidad urgente del computador y luego continuar su ejecución como si
nada hubiera pasado. (Ver anexo 4)
Generalmente se aplica para realizar tareas elementales asincrónicas
en el computador tales como responder al teclado, escribir en la pantalla, leer
y escribir archivos. Podemos considerar una tarea asincrónica como aquella
que es solicitada sin previo aviso y aleatoriamente desde el punto de vista
del computador. Tomemos el caso de la operación Ctrl-Alt-Supr. En Windows
tiene el efecto de que aparece en pantalla una lista de los procesos y
ventanas en ejecución en el computador. En cambio en el Sistema Operativo
DOS cuando el usuario presiona simultáneamente dichas teclas el
computador procede a reinicializarse, aunque pueda estar ocupado
ejecutando un programa en ese instante. Vale decir fuerza obligadamente a
que el computador se reinicialice. Ya sea en el sistema Windows o en DOS,
el computador no está constantemente monitoreando el teclado para ver si el
usuario ha solicitado un Ctrl-Alt-Del, ya que en ese caso consumiría mucho
tiempo de proceso en ello y por ende la capacidad de proceso se vería
significativamente afectada. La solución empleada es una interrupción.
Luego cada vez que el usuario presiona una tecla, la CPU es
advertida a través de una señal especial de interrupción. Cuando la CPU
advierte/recibe una señal de interrupción suspende temporalmente el
proceso actual almacenando en memoria RAM un bloque con toda la
información necesaria para restablecer posteriormente la ejecución del
programa si es que procede. Enseguida la CPU determina qué elemento ha
solicitado la interrupción y para cada caso existe un bloque de instrucciones
que realiza la tarea correspondiente que es ejecutada a continuación.
Terminada la ejecución se restablece el programa original en el mismo punto
en que fue interrumpido usando para ello la información almacenada
previamente.
Cada interrupción tiene asignada un número único. El PC está
diseñado de manera que la interrupción tiene asignada 4 bytes de memoria
RAM. La dirección de los cuatro bytes en la memoria corresponde al número
de la interrupción multiplicado por 4. Por ejemplo la interrupción IRQ 5 tiene
asignada 4 bytes en la dirección 0x00014 (0000:0014). El contenido de los 4
bytes de memoria RAM asignados a una interrupción contiene a su vez una
dirección que es un puntero a un bloque de instrucciones de máquina que
realiza el procedimiento correspondiente. De este modo al iniciar la ejecución
de una interrupción de los cuatro bytes que tiene asignados se obtiene la
dirección del bloque de instrucciones que efectivamente se ejecutan. Por
ejemplo si en la dirección 0000:0014 estuviera almacenado el valor 0xFFF00,
ello significa que en dicha dirección (ó (F000:FF00) se encuentra el bloque
de instrucciones a ejecutar cuando la interrupción IRQ 5 sea requerida.
Existen tres tipos de interrupciones:
Interrupciones internas de hardware
Las interrupciones internas son generadas por ciertos eventos que
surgen durante la ejecución de un programa.
Este tipo de interrupciones son manejadas en su totalidad por el
hardware y no es posible modificarlas.
Un ejemplo claro de este tipo de interrupciones es la que actualiza el
contador del reloj interno de la computadora, el hardware hace el llamado a
esta interrupción varias veces durante un segundo para mantener la hora
actualizada.
Aunque no podemos manejar directamente esta interrupción (no
podemos controlar por software las actualizaciones del reloj), es posible
utilizar sus efectos en la computadora para nuestro beneficio, por ejemplo
para crear un "reloj virtual" actualizado continuamente gracias al contador del
reloj interno. Únicamente debemos escribir un programa que lea el valor
actual del contador y lo traduzca a un formato entendible para el usuario.
Interrupciones externas de hardware
Las interrupciones externas las generan los dispositivos periféricos,
como pueden ser: teclado, impresoras, tarjetas de comunicaciones, etc.
También son generadas por los coprocesadores.
No es posible desactivar a las interrupciones externas.
Estas interrupciones no son enviadas directamente a la UCP, sino que
se mandan a un circuito integrado cuya función es exclusivamente manejar
este tipo de interrupciones. El circuito, llamado PIC 8259A, si es controlado
por la UCP utilizando para tal control una serie de vías de comunicación
llamadas puertos.
Una lista de las interrupciones generadas por hardware es la siguiente
IRQ Prioridad Función
0 1 Timer
1 2 Teclado Hardware
2 Reservada
3 11 COM 2
4 12 COM 1
5 13 Tarjeta de Sonido
6 14 Controlador Floppy
7 15 Puerta Paralela
8 3 Reloj (tics)
9 4 Libre para tarjeta de red, sonido, puerta SCSI
10 5 idem
11 6 idem
12 7 PS-mouse
13 8 Co-procesador matemático
14 9 Canal IDE primario
15 10 Canal IDE secundario
Interrupciones de software
Las interrupciones de software pueden ser activadas directamente por
el ensamblador invocando al número de interrupción deseada con la
instrucción INT.
El uso de las interrupciones nos ayuda en la creación de programas,
utilizándolas nuestros programas son más cortos, es más fácil entenderlos y
usualmente tienen un mejor desempeño debido en gran parte a su menor
tamaño.
Este tipo de interrupciones podemos separarlas en dos categorias: las
interrupciones del sistema operativo DOS y las interrupciones del BIOS.
La diferencia entre ambas es que las interrupciones del sistema
operativo son más fáciles de usar pero también son más lentas ya que estas
interrupciones hacen uso del BIOS para lograr su cometido, en cambio las
interrupciones del BIOS son mucho más rápidas pero tienen la desventaja
que, como son parte del hardware son muy específicas y pueden variar
dependiendo incluso de la marca del fabricante del circuito.
La elección del tipo de interrupción a utilizar dependerá únicamente de
las características que le quiera dar a su programa: velocidad (utilizando las
del BIOS) o portabilidad (utilizando las del DOS).
4. CCOMPONENTESOMPONENTES DEDE UNUN S SISTEMAISTEMA O OPERATIVOPERATIVO. . (Ver anexo 5)
El sistema operativo está compuesto por un conjunto de paquetes de
software que pueden utilizarse para gestionar las interacciones con el
hardware. Estos elementos se incluyen por lo general en este conjunto de
software:
El núcleo, que representa las funciones básicas del sistema
operativo, como por ejemplo, la gestión de la memoria, de los
procesos, de los archivos, de las entradas/salidas principales y de las
funciones de comunicación.
El intérprete de comandos, que posibilita la comunicación con el
sistema operativo a través de un lenguaje de control, permitiendo al
usuario controlar los periféricos sin conocer las características del
hardware utilizado, la gestión de las direcciones físicas, etcétera.
El sistema de archivos, que permite que los archivos se registren en
una estructura arbórea.
5.5. GGESTIÓNESTIÓN DEDE PROCESOSPROCESOS ENEN UNUN S SISTEMAISTEMA O OPERATIVOPERATIVO..
Un proceso es simplemente, un programa en ejecución que necesita
recursos para realizar su tarea: tiempo de CPU, memoria, archivos y
dispositivos de E/S. El SO es el responsable de:
Crear y destruir los procesos.
Parar y reanudar los procesos.
Ofrecer mecanismos para que se comuniquen y sincronicen.
La gestión de procesos podría ser similar al trabajo de oficina. Se
puede tener una lista de tareas a realizar y a estas fijarles prioridades alta,
media, baja por ejemplo. Debemos comenzar haciendo las tareas de
prioridad alta primero y cuando se terminen seguir con las de prioridad media
y después las de baja. Una vez realizada la tarea se tacha. Esto puede traer
un problema que las tareas de baja prioridad pueden que nunca lleguen a
ejecutarse. y permanezcan en la lista para siempre. Para solucionar esto, se
puede asignar alta prioridad a las tareas más antiguas.
6.6. AADMINISTRACIÓNDMINISTRACIÓN DEDE PROCESOSPROCESOS ENEN UNUN S SISTEMAISTEMA O OPERATIVOPERATIVO..
Concurrencia: Normalmente en una computadora co-existen n-
procesos simultáneamente
Administrador de Procesos: se encarga de seleccionar el proceso
en turno a ser ejecutado en el CPU
Objetivo: maximizar uso del CPU bajo un tiempo de respuesta
razonable manteniendo un uso justo, seguro y equilibrado del CPU
entre los procesos
El sistema operativo es responsable de las siguientes actividades en
la administración de procesos:
Creación de procesos y borrado.
Suspensión de procesos y resumen.
Mecanismos de:
sincronización de procesos
comunicación entre procesos
7.7. CCOMUNICACIÓNOMUNICACIÓN ENTREENTRE PROCESOSPROCESOS..
Hay dos formas en que se puede comunicar los procesos, los cuales
son:
Por medio de un esquema de comunicación por memoria
compartida (Buffer)
Por medio de un mecanismo de comunicación entre procesos
(IPC, Interprocess comunication).
La IPC ofrece un mecanismo que permite a los procesos comunicarse
y sincronizar sus acciones. La mejor forma de proveer la comunicación entre
procesos es mediante un sistema de mensajes.
La función de un sistema de mensaje es permitir a los procesos
comunicarse entre sí sin tener que recurrir a variables compartidas.
Un recurso IPC ofrece por los menos 2 operaciones:
Enviar (mensaje) (send) y recibir (mensaje) (receive).
Sean P y Q dos procesos que requieren comunicarse deberán enviarse
mensajes; para ello debe existir un enlace de comunicación entre ellos. Este
enlace puede implementarse de diversas maneras.
Los métodos para implementar lógicamente un enlace y las
operaciones de enviar / recibir son:
Comunicación directa o indirecta
Uso de buffer automático o explícito
Envío por copia o envío por referencia
Mensajes de tamaño fijo o variables
Comunicación directa:
Aquí cada proceso que desee comunicarse debe nombrar
explícitamente el destinatario o el remitente de la comunicación. A
continuación, se definen las primitivas de la siguiente manera:
Enviar(P,mensaje): Enviar un mensaje al proceso P.
Recibir(Q. Mensaje): Recibir un mensaje del proceso Q.
Con las siguientes propiedades:
Se establece automáticamente el enlace entre cada par de procesos.
Los procesos sólo necesitan conocer la identidad de otro para la
comunicación.
Solo hay un enlace entre cada par de procesos.
El enlace puede ser unidireccional o bidireccional.
Este esquema exhibe una simetría de direccionamiento; es decir, los
procesos tanto emisor como receptor necesitan nombrar al otro para
comunicarse.
Otra variante de este esquema es utilizar asimetría de
direccionamiento, con las siguientes primitivas:
Enviar(P,mensaje): enviar un mensaje al proceso P.
Recibir(Id,mensaje) : recibir un mensaje de cualquier proceso con el que
hubo comunicación.
Aquí sólo el emisor nombra al destinatario; el destinatario no ésta
obligado a nombrar al emisor.
Comunicación indirecta:
Aquí los mensajes se envían a, y se reciben de, buzones (también
llamados puertos). Un buzón puede considerarse en lo abstracto como un
objeto en el que los procesos pueden colocar mensajes y del cual se pueden
sacar mensajes. Cada buzón tiene una identificación única. Aquí dos
procesos se pueden comunicar sólo si comparten un buzón. Las primitivas se
definen como:
Enviar (A,mensaje): enviar un mensaje al buzón A.
Recibir (A,mensaje): recibir un mensaje del buzón A.
Un enlace de comunicación tiene las sig. propiedades:
Se establece un enlace entre un par de procesos sólo si tienen un
buzón compartido.
Un enlace puede estar asociado a más de dos procesos.
Entre cada par de procesos en comunicación puede haber varios
enlaces distintos, cada uno de los cuales corresponderá a un buzón.
Los enlaces pueden ser unidireccionales o bidireccionales.
Hay varias formas de designar el dueño de y los usuarios de un buzón
dado. Una posibilidad es permitir que un proceso declare variables de tipo
buzón. El proceso que declara un buzón es el dueño de ese buzón.
Cualquier otro proceso que conozca el nombre de dicho buzón podrá usarlo.
Por otro lado, un buzón propiedad del S.O tiene existencia propia; es
independiente y no está unido a ningún proceso específico. El S.O establece
un mecanismo que permite a un proceso:
Crear un buzón nuevo
Enviar y recibir mensajes a través del buzón
Destruir un buzón.
CCONCLUSIÓNONCLUSIÓN
Los sistemas operativos controlan diferentes procesos de la
computadora. Un proceso importante es la interpretación de los comandos
que permiten al usuario comunicarse con el ordenador. Algunos intérpretes
de instrucciones están basados en texto y exigen que las instrucciones sean
tecleadas. Otros están basados en gráficos, y permiten al usuario
comunicarse señalando y haciendo clic en un icono. Por lo general, los
intérpretes basados en gráficos son más sencillos de utilizar.
Los sistemas operativos pueden ser de tarea única o multitarea. Los
sistemas operativos de tarea única, más primitivos, sólo pueden manejar un
proceso en cada momento. Por ejemplo, cuando la computadora está
imprimiendo un documento, no puede iniciar otro proceso ni responder a
nuevas instrucciones hasta que se termine la impresión.
Todos los sistemas operativos modernos son multitarea y pueden
ejecutar varios procesos simultáneamente. En la mayoría de los ordenadores
sólo hay una UCP; un sistema operativo multitarea crea la ilusión de que
varios procesos se ejecutan simultáneamente en la UCP. El mecanismo que
se emplea más a menudo para lograr esta ilusión es la multitarea por
segmentación de tiempos, en la que cada proceso se ejecuta individualmente
durante un periodo de tiempo determinado. Si el proceso no finaliza en el
tiempo asignado, se suspende y se ejecuta otro proceso. Este intercambio de
procesos se denomina conmutación de contexto. El sistema operativo se
encarga de controlar el estado de los procesos suspendidos. También cuenta
con un mecanismo llamado planificador que determina el siguiente proceso
que debe ejecutarse. El planificador ejecuta los procesos basándose en su
prioridad para minimizar el retraso percibido por el usuario. Los procesos
parecen efectuarse simultáneamente por la alta velocidad del cambio de
contexto.
Los sistemas operativos pueden emplear memoria virtual para ejecutar
procesos que exigen más memoria principal de la realmente disponible. Con
esta técnica se emplea espacio en el disco duro para simular la memoria
adicional necesaria. Sin embargo, el acceso al disco duro requiere más
tiempo que el acceso a la memoria principal, por lo que el funcionamiento del
ordenador resulta más lento.
Sistemas Operativos actuales
Los sistemas operativos empleados normalmente son UNIX, Mac OS,
MS-DOS, OS/2 y Windows-NT. El UNIX y sus clones permiten múltiples
tareas y múltiples usuarios. Su sistema de archivos proporciona un método
sencillo de organizar archivos y permite la protección de archivos. Sin
embargo, las instrucciones del UNIX no son intuitivas. Otros sistemas
operativos multiusuario y multitarea son OS/2, desarrollado inicialmente por
Microsoft Corporation e International Business Machines Corporation (IBM), y
Windows-NT, desarrollado por Microsoft. El sistema operativo multitarea de
las computadoras Apple se denomina Mac OS. El DOS y su sucesor, el MS-
DOS, son sistemas operativos populares entre los usuarios de computadoras
personales. Sólo permiten un usuario y una tarea.
Tecnologías futuras
Los sistemas operativos siguen evolucionando. Los sistemas
operativos distribuidos están diseñados para su uso en un grupo de
ordenadores conectados pero independientes que comparten recursos. En
un sistema operativo distribuido, un proceso puede ejecutarse en cualquier
ordenador de la red (normalmente, un ordenador inactivo en ese momento)
para aumentar el rendimiento de ese proceso. En los sistemas distribuidos,
todas las funciones básicas de un sistema operativo, como mantener los
sistemas de archivos, garantizar un comportamiento razonable y recuperar
datos en caso de fallos parciales, resultan más complejas.
Anexo 1. Procesos de un Sistema Operativo
Anexo 2. Estados de un Proceso
Anexo 4. Sistema Operativo de Interrupción
Anexo 5. Componentes de un Sistema Operativo
BBIBLIOGRAFÍAIBLIOGRAFÍA
Microsoft ® Encarta ® 2009. © 1993-2008 Microsoft Corporation.
Reservados todos los derechos.
http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/
SO2.htm#PI
http://es.wikipedia.org/wiki/
Sistema_operativo#Gesti.C3.B3n_de_procesos
http://www.sistema.us/software/operativo/componentes-del-sistema-
operativo/
http://chsos20101.wikispaces.com/907545
http://wwwdi.ujaen.es/~lina/TemasSO/
DEFINICIONYCONTROLDEPROCESO/
1y2Queesunproceso.EstadoyTransiciones.htm#estados_proceso
http://mx.answers.yahoo.com/question/index?
qid=20080403154906AAcKK6v
Gary Nutt, Sistemas Operativos. 3a Edición. Pearson Addison Wesley.