Este documento presenta un diagrama que muestra la ejecución secuencial y multiprogramada de dos programas. En la ejecución secuencial, el programa 1 se ejecuta completamente antes de que comience el programa 2. En la ejecución multiprogramada, el sistema operativo permite que ambos programas se ejecuten de forma concurrente, alternando entre ellos.
Este documento presenta una canción de amor del poeta francés Guillaume de Machaut del siglo XIV. La canción expresa el dolor del poeta por un amor no correspondido a través de su melodía rítmica y versos que describen su sufrimiento y deseo.
El documento presenta una unidad didáctica sobre la expresión oral. La unidad se centra en desarrollar la competencia comunicativa oral a través de ejercicios de lectura, recitación de poemas y trabajos en grupo. El objetivo principal es organizar un festival de ponencias donde los estudiantes presenten discursos sobre promoción de estilos de vida saludable utilizando recursos tecnológicos. La unidad está organizada en bloques temáticos y contiene actividades, aprendizajes esperados y criterios de evaluación.
El documento presenta información sobre sistemas operativos. Explica conceptos básicos como procesos, planificación de procesos, programación concurrente, interbloqueos y gestión de memoria. Incluye definiciones de sistemas operativos, su evolución histórica y las funciones y objetivos principales como interfaz usuario-computadora y administrador de recursos.
Programa en ejecución / unidad de procesamiento gestionada por el sistema operativo. El proceso es un concepto fundamental en los sistemas operativos , el objetivo último de éstos es crear, ejecutar y destruir procesos, de acuerdo a las órdenes de los usuarios.
El documento describe diferentes fármacos utilizados en trastornos de la coagulación. Explica los mecanismos de acción de la heparina convencional, las heparinas de bajo peso molecular y la warfarina. También describe sus indicaciones, contraindicaciones y formas de reversión de sus efectos anticoagulantes.
1. El documento describe una investigación sobre la migración de trabajadores entre países.
2. Los investigadores encontraron que los trabajadores migran entre países debido a diferencias salariales y oportunidades de empleo.
3. El estudio también examinó factores como redes sociales, idioma y cultura que afectan los patrones de migración laboral.
Este documento clasifica los intervalos musicales en familias según su calidad o afinación. Presenta los intervalos disminuidos, menores, justos, mayores y aumentados agrupados en el piano y en la notación musical tradicional.
Este documento es la partitura musical de la canción tradicional valenciana "Cançó de Corda". La letra de la canción expresa que ya no se usan más los cohetes de caña porque son cortos de alcance, están mal hechos y son de poca calidad.
Este documento presenta una canción de amor del poeta francés Guillaume de Machaut del siglo XIV. La canción expresa el dolor del poeta por un amor no correspondido a través de su melodía rítmica y versos que describen su sufrimiento y deseo.
El documento presenta una unidad didáctica sobre la expresión oral. La unidad se centra en desarrollar la competencia comunicativa oral a través de ejercicios de lectura, recitación de poemas y trabajos en grupo. El objetivo principal es organizar un festival de ponencias donde los estudiantes presenten discursos sobre promoción de estilos de vida saludable utilizando recursos tecnológicos. La unidad está organizada en bloques temáticos y contiene actividades, aprendizajes esperados y criterios de evaluación.
El documento presenta información sobre sistemas operativos. Explica conceptos básicos como procesos, planificación de procesos, programación concurrente, interbloqueos y gestión de memoria. Incluye definiciones de sistemas operativos, su evolución histórica y las funciones y objetivos principales como interfaz usuario-computadora y administrador de recursos.
Programa en ejecución / unidad de procesamiento gestionada por el sistema operativo. El proceso es un concepto fundamental en los sistemas operativos , el objetivo último de éstos es crear, ejecutar y destruir procesos, de acuerdo a las órdenes de los usuarios.
El documento describe diferentes fármacos utilizados en trastornos de la coagulación. Explica los mecanismos de acción de la heparina convencional, las heparinas de bajo peso molecular y la warfarina. También describe sus indicaciones, contraindicaciones y formas de reversión de sus efectos anticoagulantes.
1. El documento describe una investigación sobre la migración de trabajadores entre países.
2. Los investigadores encontraron que los trabajadores migran entre países debido a diferencias salariales y oportunidades de empleo.
3. El estudio también examinó factores como redes sociales, idioma y cultura que afectan los patrones de migración laboral.
Este documento clasifica los intervalos musicales en familias según su calidad o afinación. Presenta los intervalos disminuidos, menores, justos, mayores y aumentados agrupados en el piano y en la notación musical tradicional.
Este documento es la partitura musical de la canción tradicional valenciana "Cançó de Corda". La letra de la canción expresa que ya no se usan más los cohetes de caña porque son cortos de alcance, están mal hechos y son de poca calidad.
1) El documento propone un concepto para introducir un nuevo enfoque de capacitación en una base de prueba con la aprobación del NAC. 2) El concepto involucra capacitar a los empleados actuales en nuevas habilidades para mejorar su desempeño y satisfacer mejor las necesidades cambiantes de la organización. 3) La capacitación se centraría en áreas como liderazgo, comunicación y resolución de problemas.
Este documento parece ser un texto en latín medieval que describe una obra musical polifónica. El texto menciona varios elementos musicales como notas, compases y secciones. Aunque el idioma y la falta de puntuación dificultan la comprensión, el documento parece centrarse en describir la estructura y progresión de una pieza musical compleja.
El documento presenta estadísticas sobre el número de personas en diferentes grupos de edad. Muestra que la población entre 25-30 años es de 30 personas, entre 20-25 años es de 25 personas y entre 15-20 años es de 20 personas.
El documento habla sobre la importancia de la educación y el aprendizaje continuo para mantenerse actualizado en un mundo en constante cambio. Explica que las personas deben seguir capacitándose a lo largo de su vida laboral para adaptarse a las nuevas demandas del mercado laboral y mantenerse competitivos.
El documento describe los pasos para realizar una investigación científica, incluyendo la formulación de una pregunta de investigación, revisión de literatura, diseño de un estudio, recolección y análisis de datos, y comunicación de los resultados.
Este documento presenta el plan de estudios para el primer semestre de ciencias para el sexto grado. Incluye cinco unidades principales: 1) Sistemas del cuerpo humano, 2) Procesos biológicos en plantas, 3) Elementos, 4) Movimiento y fuerza, 5) Presión atmosférica. Cada unidad contiene varios capítulos y se detallan los objetivos de cada uno. También incluye apéndices con ejemplos de lecciones, exámenes, hojas de trabajo y otros recursos.
"Desarrollo económico en el Estado Plurinacional de Bolivia"Gobernabilidad
El Programa de Fortalecimiento Democrático del PNUD invito al conversatorio de analisis politico bajo el lema: "Desarrollo economico en el Estado Plurinacional de Bolivia"http://www.gobernabilidad.org.bo/
Este documento contiene la partitura musical de la canción "Ob-La-Di, Ob-La-Da" de The Beatles. La partitura incluye las partes para carillón, xilófonos, xilófono bajo, batería y piano.
Este documento presenta una propuesta para crear un parque en un área protegida cerca de Moroleón, Gto. El parque se construiría en zonas deforestadas para minimizar el impacto ambiental. Se utilizarían materiales regionales como madera y adobe. El parque estaría abierto a toda la gente interesada en la naturaleza y serviría para crear conciencia ambiental. Se propone usar un diseño inspirado en la Bauhaus que integre los espacios de una manera no lineal y que incorpore ecotecnias para integrarse con
1) El documento propone un concepto para introducir un nuevo enfoque de capacitación en una base de prueba con la aprobación del NAC. 2) El concepto involucra capacitar a los empleados actuales en nuevas habilidades para mejorar su desempeño y satisfacer mejor las necesidades cambiantes de la organización. 3) La capacitación se centraría en áreas como liderazgo, comunicación y resolución de problemas.
Este documento parece ser un texto en latín medieval que describe una obra musical polifónica. El texto menciona varios elementos musicales como notas, compases y secciones. Aunque el idioma y la falta de puntuación dificultan la comprensión, el documento parece centrarse en describir la estructura y progresión de una pieza musical compleja.
El documento presenta estadísticas sobre el número de personas en diferentes grupos de edad. Muestra que la población entre 25-30 años es de 30 personas, entre 20-25 años es de 25 personas y entre 15-20 años es de 20 personas.
El documento habla sobre la importancia de la educación y el aprendizaje continuo para mantenerse actualizado en un mundo en constante cambio. Explica que las personas deben seguir capacitándose a lo largo de su vida laboral para adaptarse a las nuevas demandas del mercado laboral y mantenerse competitivos.
El documento describe los pasos para realizar una investigación científica, incluyendo la formulación de una pregunta de investigación, revisión de literatura, diseño de un estudio, recolección y análisis de datos, y comunicación de los resultados.
Este documento presenta el plan de estudios para el primer semestre de ciencias para el sexto grado. Incluye cinco unidades principales: 1) Sistemas del cuerpo humano, 2) Procesos biológicos en plantas, 3) Elementos, 4) Movimiento y fuerza, 5) Presión atmosférica. Cada unidad contiene varios capítulos y se detallan los objetivos de cada uno. También incluye apéndices con ejemplos de lecciones, exámenes, hojas de trabajo y otros recursos.
"Desarrollo económico en el Estado Plurinacional de Bolivia"Gobernabilidad
El Programa de Fortalecimiento Democrático del PNUD invito al conversatorio de analisis politico bajo el lema: "Desarrollo economico en el Estado Plurinacional de Bolivia"http://www.gobernabilidad.org.bo/
Este documento contiene la partitura musical de la canción "Ob-La-Di, Ob-La-Da" de The Beatles. La partitura incluye las partes para carillón, xilófonos, xilófono bajo, batería y piano.
Este documento presenta una propuesta para crear un parque en un área protegida cerca de Moroleón, Gto. El parque se construiría en zonas deforestadas para minimizar el impacto ambiental. Se utilizarían materiales regionales como madera y adobe. El parque estaría abierto a toda la gente interesada en la naturaleza y serviría para crear conciencia ambiental. Se propone usar un diseño inspirado en la Bauhaus que integre los espacios de una manera no lineal y que incorpore ecotecnias para integrarse con
5. http://alqua.org/libredoc/SSOO
Pablo Ruiz M´zquiz
u pablo@alqua.org http://alqua.org/people/pablo
Sistemas Operativos
versi´n 0.5.0
o
15 de abril de 2004
alqua,madeincommunity
6. c
copyleft
Copyright (c) 2004 Pablo Ruiz M´zquiz.
u
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To
view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/1.0/ or send a letter to
Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Copyright (c) 2004 Pablo Ruiz M´zquiz.
u
Este trabajo cae bajo las provisiones de la licencia Atribuci´n-No Comercial-Comparte Igual de Creative
o
Commons. Para ver una copia de esta licencia visite http://creativecommons.org/licenses/by-nc-sa/1.0/
o escriba una carta a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Serie apuntes
´
Area Sistemas operativos
CDU 004.451
Editores
Pablo Ruiz M´zquiz
u pablo@alqua.org
Notas de producci´n
o
´
Plantilla latex-book-es-b.tex, v. 0.1 (C) Alvaro Tejero Cantero.
compuesto con software libre
7. ´
Indice general
Portada I
Copyleft VI
´
Indice general VII
1. Introducci´n a los Sistemas Operativos
o 1
1.1. Definici´n de Sistema Operativo . . . . . . . . . . . . . . . . . . . . . .
o . 1
1.2. Relaci´n con la m´quina subyacente . . . . . . . . . . . . . . . . . . . .
o a . 2
1.2.1. Componentes b´sicos de la arquitectura Von Neuman . . . . . .
a . 2
1.2.2. Registros del procesador . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3. Ejecuci´n de instrucciones . . . . . . . . . . . . . . . . . . . . . .
o . 4
1.2.4. Interrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Funciones y objetivos de los Sistemas Operativos . . . . . . . . . . . . . . 7
1.3.1. El Sistema Operativo como Interfaz Usuario/Computadora . . . . 7
1.3.2. El Sistema OPerativo como administrador de recursos . . . . . . . 9
1.3.3. Facilidad de evoluci´n del Sistema Operativo . . . . . . . . . . .
o . 9
1.4. Evoluci´n hist´rica de los Sistemas Operativos . . . . . . . . . . . . . .
o o . 10
1.4.1. Proceso en serie. Primera generaci´n (1945-1955) . . . . . . . . .
o . 10
1.4.2. Sistemas sencillos de proceso por lotes. Segunda generaci´n (1955-
o
1965) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4.3. Multiprogramaci´n. Tercera Generaci´n (1965-1980) . . . . . . .
o o . 11
1.4.4. Computadoras personales. Cuarta Generaci´n (1980-1990) . . . .
o . 13
2. Gesti´n de procesos
o 15
2.1. Procesos y tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.1. Divisi´n impl´
o ıcita y expl´
ıcita de tareas . . . . . . . . . . . . . . . . 15
2.1.2. Tipos de procesos y relaci´n entre procesos concurrentes
o . . . . . . 16
2.1.3. El sistema operativo y los procesos . . . . . . . . . . . . . . . . . . 17
2.2. Creaci´n y terminaci´n de procesos . . . . . . . . . . . . . . . .
o o . . . . . . 18
2.3. Estados de un proceso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.1. Modelo de dos estados . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.2. Modelo de 5 estados . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.3. Procesos suspendidos . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4. Estructuras de control del sistema operativo . . . . . . . . . . . . . . . . . 27
vii
11. 1 Introducci´n a los Sistemas Operativos
o
1.1. Definici´n de Sistema Operativo
o
Un sistema operativo puede ser contemplado como una colecci´n organizada de exten-
o
siones software del hardware, consistentes en rutinas de control que hacen funcionar al
computador y proporcionan un entorno para la ejecuci´n de programas. Adem´s, estos
o a
programas utilizan las facilidades proporcionadas por el sistema operativo para obtener
acceso a recursos del sistema inform´tico como el procesador, archivos y dispositivos
a
de entrada/salida (E/S). De esta forma, el SO constituye la base sobre la cual pueden
escribirse los programas de aplicaci´n, los cuales invocar´n sus servicios por medio de
o a
llamadas al sistema. Por otro lado, los usuarios pueden interactuar directamente con el
SO a trav´s de ´rdenes concretas. En cualquier caso, el SO act´a como interfaz entre
e o u
los usuarios/aplicaciones y el hardware de un sistema inform´tico.
a
El rango y la extensi´n de los servicios proporcionados por un SO dependen de varios
o
factores. As´ las funciones visibles al usuario est´n en gran medida determinadas por la
ı, a
necesidades y caracter´ısticas del entorno objetivo que el SO est´ destinado a soportar. Por
a
ejemplo, un SO destinado al desarrollo de programas en un entorno interactivo puede
tener un conjunto bastante diferente de llamadas y ´rdenes que un sistema operativo
o
dise˜ado para soporte en tiempo de ejecuci´n a una aplicaci´n de tiempo real dedicada,
n o o
tal como el control del motor de un coche, el control del reactor de una central nuclear
o el sistema de actualizaciones derivado de las operaciones de un cajero autom´tico de
a
una entidad bancaria.
Internamente, un SO act´a como gestor de los recursos del sistema inform´tico tales
u a
como el procesador, la memoria, los archivos y los dispositivos de E/S. En esa funci´n,
o
el SO mantiene actualizada la informaci´n relativa al estado de sistemas que soportan
o
la ejecuci´n concurrente de programas, el SO resuelve las peticiones conflictivas de re-
o
cursos de manera que preserve la integridad del sistema y al hacerlo intenta optimizar
el rendimiento final.
En general, el SO presenta al usuario el equivalente de una m´quina virtual que sea
a
m´s f´cil de utilizar que la m´quina subyacente y uno de sus objetivos primarios es incre-
a a a
mentar la productividad de los recursos que ofrece al sistema mediante una planificaci´no
lo m´s ´ptima posible de ellos.
a o
1
12. 1 Introducci´n a los Sistemas Operativos
o
1.2. Relaci´n con la m´quina subyacente
o a
1.2.1. Componentes b´sicos de la arquitectura Von Neuman
a
A un nivel muy alto, un sistema inform´tico que implemente la arquitectura Von
a
Neuman cl´sica consta de 3 componentes b´sicos: memoria principal, unidad central
a a
de proceso y dispositivos de entrada/salida. La unidad central de proceso, a su ves,
est´ constituida por la unidad aritm´tico-l´gica, la unidad de control y un conjunto
a e o
de registros. Los componentes b´sicos mencionados se encuentran interconectados para
a
llevar a cabo la funci´n principal del computador, que consiste en la ejecuci´n de las
o o
sentencias que forman los procesos. As´ pues, se tienen cuatro elementos estructurales
ı
principales.
Memoria principal: Com´nmente conocida como memoria RAM. En ella se encon-
u
trar´ el programa en c´digo m´quina a ejecutar, los datos de entrada y los resulta-
a o a
dos. La memoria est´ formada por un conjunto de celdas id´nticas que pueden ser
a e
accedidas de forma aleatoria mediante los distintos registros de direccionamiento.
Esta memoria es normalmente vol´til y tambi´n se conoce como memoria real.
a e
La unidad aritm´tico-l´gica permite efectuar un conjunto de opoeraciones aritm´ti-
e o e
cas y l´gicas de los datos. Estos datos, que pueden proceder de memoria principal o
o
ser el resultado de operaciones previas, se almacenar´n en los registros de entrada
a
de que esta unidad dispone. El resultado de la operaci´n, as´ como la informa-
o ı
ci´n relativa al estado de terminaci´n de la misma, quedar´n almacenados en los
o o a
correspondientes registros.
La unidad de control es la que se encarga de hacer funcionar al conjunto, para lo
cual lleva a cabo las siguientes funciones:
• Lee de memoria las instrucciones m´quina que forman el programa.
a
• Interpreta cada instrucci´n le´
o ıda.
• Lee los datos de memoria referenciados por la instrucci´n.
o
• Ejecuta la instrucci´n.
o
• Almacena el resultado de cada instrucci´n.
o
Finalmente, la unidad de Entrada/Salida se encarga de realizar la transferencia de
informaci´n entre la memoria (o los registros) y los perif´ricos. La E/S se puede
o e
efectuar bajo el gobierno de la unidad de control (E/S programada) o de forma in-
dependiente (DMA). El transporte de datos se realiza, pues, entre el computador
y su entorno exterior. Dicho entorno consta de una gran variedad de dispositi-
vos externos que incluye a los dispositivos de memoria secundaria, los equipos de
comunicaci´n y los terminales.
o
Adem´s de los descritos anteriormente, los sistemas inform´ticos disponene de un con-
a a
junto de elementos de interconexi´n (buses de datos). Estos elementos est´n constituidos
o a
2 Sistemas Operativos - 0.5.0
13. 1.2 Relaci´n con la m´quina subyacente
o a
por mecanismos que permiten la comunicaci´n entre los componentes que conforman el
o
sistema inform´tico, es decir, su funci´n es la de interconectar procesadores, memoria
a o
principal y m´dulos de E/S.
o
1.2.2. Registros del procesador
Dentro del procesador hay un conjunto de registros que ofrecen un nivel de memoria
que es m´s r´pido y peque˜o que la memoria principal. Los registros del procesador
a a n
pueden clasificarse de la siguiente forma:
Registros visibles de usuario: Un registro visible al usuario es aqu´l que puede ser
e
referenciado por medio de lenguaje m´quina que ejecuta el procesador, siendo, por
a
lo general, accesible a todos los programas, tanto de aplicaci´n como de sistema.
o
Un programador de lenguaje de m´quina o ensamblador puede minimizar las refe-
a
rencias a memoria principal mediante un uso ´ptimo de estos registros. Los tipos
o
de registro normalmente disponibles son: registros de datos, registros de direcci´n
o
y registros de c´digos de condici´n.
o o
• Los registros de datos pueden ser asignados por el programador a diversas
funciones. En muchos casos, son de prop´sito general y pueden ser empleados
o
por instrucciones que lleven a cabo cualquier tipo de operaci´n sobre un da-
o
to determinado. Sin embargo, suelen establecerse ciertas restricciones como
dedicar algunos registros para operaciones en coma flotante.
• Los registros de direcci´n guardan direcciones de memoria principal que pue-
o
den contener datos, instrucciones o parte de una direcci´n efectiva utilizada
o
para calcularla. Como ejemplo de registros de direcci´n podemos incluir los
o
siguientes:
◦ Registro ´ındice: Se utiliza en el direccionamiento indexado que consiste
en sumar un ´ ındice a un valor base para obtener la direcci´n efectiva.
o
◦ Puntero de segmento: Cuando se utiliza direccionamiento segmentado la
memoria se divide en segmentos, que son bloques de palabras de tama˜o n
variable. Una referencia a memoria consta de un segmento particular y
un desplazamiento dentro del segmento.
◦ Puntero de pila: Si existe un direccionamiento de pila visible para los
usuarios, la pila estar´, por lo general, en memoria principal, existiendo
a
un registro dedicado a se˜alar la cima de la pila, para poder sacar (pop)
n
e introducir (push) elementos en ella.
• Una ultima categor´ de registros que son, al menos, parcialmente visibles
´ ıa
para los usuarios, son aqu´llos que contienen c´digos de condici´n (tambi´n
e o o e
denominados indicadores o flags). Los c´digos de condici´n son bits activados
o o
por el hardware como resultado de determinadas operaciones. Por ejemplo,
una operaci´n aritm´tica puede producir un resultado positivo, negativo, cero,
o e
con acarreo o con desbordamiento, lo que se reflejar´ en el correspondiente bit
a
http://alqua.org/libredoc/SSOO 3
14. 1 Introducci´n a los Sistemas Operativos
o
o flag de control y que puede consultarse posteriormente, por ejemplo, como
parte de una operaci´n de salto condicional. Es importante tener en cuenta que
o
los c´digos de condici´n pueden ser consultados por las aplicaciones de usuario
o o
pero no modificados por ´stas. Los bits de c´digo de condici´n se sgrupan en
e o o
uno o m´s registros que forman parte de los determinados registros o palabras
a
de control que veremos a continuaci´n.
o
En algunas m´quinas, una llamadaa un procedimiento o subrutina provocar´ que
a a
los registros visibles de usuario se salven autom´ticamente, para luego restaurarlos
a
y continuar con la ejecuci´n normal. Este proceso de salvar y restaurar lo lleva a
o
cabo el procesador como parte de las instrucciones de llamada y retorno. Esto per-
mite que cada procedimiento pueda utilizar los registros de forma independiente.
En otras m´quinas, sin embargo, es responsabilidad del programador salvar los re-
a
gistros que considere relevantes antes de efectuar una llamada a un procedimiento.
Los registros de control y estado son utilizados por el procesador para el control de
las operaciones o por rutinas privilegiadas del sistema operativo para controlar la
ejecuci´n de los programas. En la mayor´ de las m´quinas, la mayor parte de estos
o ıa a
registros no son visibles para los usuarios. Adem´s de los registros MAR, MBR,
a
IOAR, IOBR, que se utilizan en funciones de direccionamiento e intercambio de
datos entre la unidad procesadora y la memoria principal y los dispositivos de
E/S, la unidad de control tiene asociados una serie de registros, entre los que cabe
destacar el contador de programa (PC, program counter ), que indica la direcci´n o
de la siguiente instrucci´n m´quina a ejecutar, el puntero de pila (SP, stack poin-
o a
ter ), que sirve para manejar la pila del sistema en memoria principal, el registro
de instrucci´n (RI) que permite almacenar la instrucci´n m´quina a ejecutar, y el
o o a
registro de estado (SR) o palabra de estado del programa (PSW, program status
word ) que almacena junto con el contador de programa (PC) diversa informaci´n o
producida por la ultima instrucci´n del programa ejecutada (bits de estado aritm´-
´ o e
tico) e informaci´n sobre la forma en que ha de comportarse la computadora (bits
o
de nivel de ejecuci´n que determinan el modo en que la computadora ejecuta las
o
instrucciones, usuario o sistema o supervisor, y bits de control de interrupciones
que establecen las instrucciones que se pueden aceptar).
1.2.3. Ejecuci´n de instrucciones
o
La tarea b´sica que realiza un computador es la ejecuci´n de instrucciones. El punto
a o
de vista m´s sencillo es considerar que el procesamiento de instrucciones consiste en
a
una sencuencia sencilla que se repite a alta velocidad (cientos de millones de veces por
segundo). Esta secuencia consiste en 3 pasos: lectura de memoria de la instrucci´n m´-
o a
quina apuntada por el PC, incremento del contador del programa - para que apunte a
la siguiente instrucci´n m´quina - y ejecuci´n de la instrucci´n.
o a o o
Esta secuencia tiene 2 prioridades fundamentales: es lineal, es decir, ejecuta de forma
consecutiva las instrucciones que est´n en direcciones consecutivas, y forma un bucle
a
4 Sistemas Operativos - 0.5.0
15. 1.2 Relaci´n con la m´quina subyacente
o a
infinito. Esto significa que la unidad de control de la computadora est´ continua e inin-
a
terrumpidamente realizando esta secuencia.
Podemos decir, por tanto, que lo unico que sabe hacer la computadora es repetir a
´
gran velocidad esta secuencia. Esto quiere decir, que para que realice algo util, se ha de
´
tener cargados en memoria un programa m´quina con sus datos y hemos de conseguir
a
que el contador de program apunte a la instrucci´n m´quina inicial del programa.
o a
El esquema de ejecuci´n lineal es muy limitado, por lo que se a˜aden unos mecanismos
o n
que permiten alterar esta ejecuci´n lineal. En esencia, todos ellos se basan en algo muy
o
simple; modifican el contenido del programa, con lo que se consigue que se salte o bifurque
a otro segmento del programa o a otro programa (que, l´gicamente, tambi´n ha de residir
o e
en memoria). Los tres mecanismos b´sicos de ruptura de secuencia son los siguientes.
a
Las instrucciones m´quina de salto o bifurcaci´n, que permiten que el programa
a o
rompa su secuencia lineal de ejecuci´n pasando a otro fragmento de s´ mismo.
o ı
Las interrupciones externas o internas, que hacen que la unidad de control modi-
fique el valor del contador de programa saltando a otro programa.
La instrucci´n de m´quina“TRAP”, que produce un efecto similar a la interrupci´n,
o a o
haciendo que se salte a otro programa.
Si desde el punto de vista de la programaci´n son especialmente interesantes las instruc-
o
ciones de salto, desde el punto de vista de los SSOO son mucho m´s importantes las
a
interrupciones y las interrupciones de TRAP. Por tanto, centraremos nuestro inter´s en
e
resaltar los aspectos fundamentales de estos dos mecanismos.
1.2.4. Interrupciones
Casi todos los computadores tienen un mecanismo mediante el cual otros m´dulos o
(E/S, memoria) pueden interrumpir la ejecuci´n normal del procesador. Las interrupcio-
o
nes aparecen, principalmente, como una v´ para mejorar la eficiencia del procesamiento
ıa
debido a que la mayor´ de los dispositivos externos son mucho m´s lentos que el proce-
ıa a
sador.
Con las interrupciones, el procesador se puede dedicar a la ejecuci´n de otras instruc-
o
ciones mientras una operaci´n de E/S est´ en proceso. Cuando el dispositivo de E/S
o a
est´ disponible, es decir, cuando est´ preparado para aceptar m´s datos del procesador,
e e a
el m´dulo de E/S de dicho dispositivo enviar´ una se˜al de solicitud de interrupci´n al
o a n o
procesador. El procesador responde suspendiendo la operaci´n del programa en curso y
o
saltando a un programa que da servicio al dispositivo de E/S en particular, conocido co-
mo rutina de tratamiento de interrupciones (Interrupt handler), reanudando la ejecuci´n o
original despu´s de haber atendido al dispositivo.
e
Desde el punto de vista del programa de usuario una interrupci´n es solamente eso:
o
una interrupci´n de la secuencia normal de ejecuci´n. Cuando el tratamiento de la inte-
o o
rrupci´n termina, la ejecuci´n contin´a. El programa no tiene que disponer de ning´n
o o u u
c´digo especial para dar cabida a las interrupciones; el procesador y el sistema operativo
o
http://alqua.org/libredoc/SSOO 5
16. 1 Introducci´n a los Sistemas Operativos
o
son los responsables de suspender el pograma de usuario y de reanudarlo despu´s en el
e
mismo punto.
Para dar cabida a las interrupciones, se a˜ade un ciclo de interrupci´n al ciclo de
n o
instrucci´n. En el ciclo de interrupci´n el procesador comprueba si ha ocurrido alguna
o o
interrupci´n, lo que se indicar´ con la presencia de alguna se˜al de interrupci´n. Si no hay
o a n o
interrupciones pendientes, el procesador sigue con el ciclo de lectura y trae la pr´xima
o
instrucci´n del programa en curso. Si hay una interrupci´n pendiente, el programador
o o
suspende la ejecuci´n del programa en curso y ejecuta una rutina de tratamiento de
o
interrupci´n. Esta rutina, generalmente, forma parte del sistema operativo, determina la
o
naturaleza de la interrupci´n y realiza cuantas acciones sean necesarias. Una interrupci´n
o o
desencadena una serie de sucesos tanto en el hardware del procesador como en el software.
Estos sucesos pueden secuenciarse de la siguiente forma:
1. El dispositivo emite una se˜al de interrupci´n al procesador.
n o
2. El procesador finaliza la ejecuci´n de la instrucci´n en curso antes de responder a
o o
la interrupci´n.
o
3. El procesador pregunta por la interrupci´n comprueba que hay una y env´ una
o ıa
se˜al de reconocimiento al dispositivo que gener´ la interrupci´n, de forma que
n o o
´ste suspende su se˜al de interrupci´n.
e n o
4. El procesador necesita ahora prepararse para transferor el control a la rutina de
interrupci´n. Para empezar, hace falta salvar la informaci´n necesaria para rea-
o o
nudar la ejecuci´n del programa en curso en el punto de la la interrupci´n. La
o o
m´ınima informaci´n es la palabra de estado del programa (PSW) y la ubicaci´n
o o
de la pr´xima instrucci´n a ejecutar.
o o
5. El procesador carga ahora el contador de programa con la ubicaci´n de entrada
o
del programa de tratamiento de interrupci´n.
o
6. La rutina de interrupci´n suele comenzar salvando el contenido de los registros del
o
procesador porque la rutina puede utilizarlos y se perder´ la informaci´n que la
ıa o
ejecuci´n del proceso interrumpido hibiera dejado en ellos.
o
7. La rutina de tratamiento de la interrupci´n procesa la interrupci´n realizando las
o o
acciones requeridas para atenderla.
8. Tras completar el tratamiento de la interrupci´n, se recuperan de la pila los valores
o
de los registros que se salvaron y se restauran en los correspondientes registros.
9. El paso final es restaurar los valores del la PSW y del contador de programa tambi´n
e
a partir de la pila y continuar con la ejecuci´n del programa interrumpido. Estas
o
acciones se llevan a cabo como resultado de ejecutar la instrucci´n m´quina para
o a
retorno de interrupci´n, RETI, que incluyen la mayor´ de las computadoras en su
o ıa
lenguaje m´quina.
a
6 Sistemas Operativos - 0.5.0
17. 1.3 Funciones y objetivos de los Sistemas Operativos
Las computadoras incluyen varias se˜ales de solicitud de interrupci´n, cada una de las
n o
cuales tiene una determinada prioridad. En caso de activarse al tiempo varias de es-
tas se˜ales, se tratar´ la de mayor prioridad, quedando las dem´s a la espera de ser
n a a
atendidas. Adem´s la computadora incluye un mencanismo de inhibici´n selectiva que
a o
permite detener todas o determinadas se˜ales de interrupci´n. Las se˜ales inhibidas no
n o n
son atendidas hasta que pasen a estar desinhibidas. La informaci´n de inhibici´n de
o o
las interrupciones suele incluirse en la parte del registro de estado que solamente es
modificable en nivel de n´cleo, por lo que su modificaci´n queda restringida al sistema
u o
operativo.
Las interrupciones se pueden generar por diversas causas, que se pueden clasificar de
la siguiente forma:
Excepciones de programa. Hay determinadas causas que hacen que un programa
presente un problema en su ejecuci´n, por lo que deber´ generarse una interrupci´n,
o a o
de forma que el SO trate dicha causa. Ejemplos de errores de este tipo son el
desbordamiento de operaciones matem´ticas, al divisi´n entre cero, el intento de
a o
acceso a una zona de memoria no permitida, etc.
Interrupciones de reloj.
Interrupciones de E/S. Los controladores de los dispositivos de E/S necesitan in-
terrumpir para indicar que han terminado una operaci´n o un conjunto de ellas.
o
Excepciones del hardware como la detecci´n de un error de paridad en la memoria.
o
Instrucciones de TRAP. Estas instrucciones permiten que un programa genere una
interrupci´n y se utilizan fundamentalmente para solicitar los servicios del SO.
o
1.3. Funciones y objetivos de los Sistemas Operativos
Como ya se ha visto, un sistema operativo act´a como interfaz entre la m´quina
u a
desnuda y los programas de aplicaciones o el propio usuario. por otro lado, el sistema
operativo tambi´n se encarga de gestionar los recursos del sistema inform´tico para
e a
obtener un uso lo m´s ´ptimo posible de ´stos. A continuaci´n, trataremos las funciones
a o e o
del sistema operativo desde estos dos puntos de vista, as´ como las caracter´
ı ısticas que
debe presentar para mantener una capacidad de evoluci´n adecuada.
o
1.3.1. El Sistema Operativo como Interfaz Usuario/Computadora
Un sistema operativo debe hacer que la interacci´n del usuario o de los programas
o
de aplicaci´n con el computador resulte sencilla y f´cil y debe construirse de modo que
o a
permita el desarrollo efectivo, la verificaci´n y la introducci´n de nuevas funciones en el
o o
sistema y, a la vez, no interferir en los servicios ya proporcionados.
El Hardware y el Software que se utilizan para proveer al usuario de aplicaciones puede
contemplarse de forma estratificada o jer´rquica. Este usuario final no tiene que preocu-
a
parse de la arquitectura del computador y contempla el sistema inform´tico en t´rminos
a e
http://alqua.org/libredoc/SSOO 7
18. 1 Introducci´n a los Sistemas Operativos
o
de aplicaciones. Estas aplicaciones pueden construirse con un lenguaje de programaci´n o
y son desarrolladas por los programadores de aplicaciones.
Si se tuviera que desarrollar un programa de aplicaci´n con un conjunto de instruc-
o
ciones totalmente responsables del control del hardware, dicho programa tendr´ una ıa
tarea abrumadora y compleja. Para facilitar esta tarea, se ofrecen una serie de progra-
mas de sistema. Algunos de estos programas implementan funciones muy utilizadas que
ayudan a la creaci´n de aplicaciones de usuario, la gesti´n de archivos y el control de los
o o
dispositivos de E/S. El programa de sistema m´s importante es el sistema operativo.
a
El sistema operativo oculta al programador los detalles del hardware y le proporcio-
na una interfaz c´moda para utilizar el sistema y act´a como mediador, ofreciendo al
o u
programador y a los programas de aplicaci´n un conjunto de servicios y utilidades que
o
faciliten su tarea.
De forma resumida el sistema operativo ofrece servicios en las siguientes ´reas:
a
Creaci´n de programas: El sistema operativo ofrece una gran variedad de servicios
o
como los editores y depuradores (debuggers), para ayudar al programador en la
creaci´n de programas. Normalmente, estos servicios est´n en forma de programas
o a
de utilidad que no forman realmente parte del sistema operativo, pero que son
accesibles a trav´s de ´l.
e e
Ejecuci´n de programas: Para ejecutar un programa es necesario realizar un cierto
o
n´mero de tareas. Las instrucciones y los datos deben cargarse en memoria prin-
u
cipal, los archivos y los dispositivos de E/S deben inicializarse y deben prepararse
otros recursos. El sistema operativo administra todas estas tareas por el usuario.
Acceso a los dispositivos de E/S: Cada dispositivo de E/S requiere un conjunto
propio y peculiar de instrucciones o se˜ales de control para su funcionamiento.
n
El sistema operativo, ayudado por los manejadores o drivers de dispositivo tiene
en cuenta estos detalles de forma que el programador pueda pensar en forma de
lecturas y escrituras simples desde o hacia el dispositivo.
Acceso controlado a los archivos: El sistema operativo se ocupa del formato de los
archivos y del medio de almacenamiento. En el caso de sistemas de varios usuarios
trabajando simult´neamente, es el sistema operativo el que brinda los mecanismos
a
para controlar que el acceso a los archivos se lleve a cabo de una forma correcta.
Acceso al sistema: En el caso de un sistema compartido o p´blico, el sistema
u
operativo controla el acceso al sistema como un todo y a los recursos espec´ ıficos
del sistema. Las funciones de acceso deben brindar proteci´n a los recursos y a los
o
datos ante usuarios no autorizados y debe resolver conflictos en la propiedad de
los recursos.
Detecci´n y respuesta a errores: Cuando un sistema inform´tico est´ en funcio-
o a a
namiento pueden producirse varios errores. El sistema operativo debe dar una
respuesta que elimine la condici´n de error con el menor impacto posible sobre las
o
aplicaciones que est´n en ejecuci´n.
a o
8 Sistemas Operativos - 0.5.0
19. 1.3 Funciones y objetivos de los Sistemas Operativos
Contabilidad: Un sistema operativo debe recoger estad´ısticas de utilizaci´n de los
o
diversos recursos y supervisar par´metros de rendimiento tales como el tiempo de
a
respuesta.
1.3.2. El Sistema OPerativo como administrador de recursos
Un SO debe perseguir una utilizaci´n lo m´s ´ptima y equilibrada posible de los
o a o
recursos que administra. De esta forma se obtendr´ un alto rendimiento del sistema
a
inform´tico gobernado.
a
El SO es el responsable de la gesti´n de los recursos de la m´quina y mediante su
o a
administraci´n tiene el control sobre las funciones b´sicas de la misma. El SO no es nada
o a
m´s que un programa pero la diferencia clave es su prop´sito. El SO dirige al procesador
a o
en el empleo de otros recursos del sistema y en el control del tiempo de ejecuci´n de los
o
programas de usuario.
Una parte del SO reside en memoria principal. En esta parte est´ el n´cleo (kernel )
a u
que incluye funciones del SO utilizdas con m´s frecuencia aunque, en un momento dado,
a
puede incluir otras partes en uso. El resto de la memoria, que contiene datos y programas
de usuario, es administrada conjuntamente por el SO y por el hardware de control de
memoria. El SO decide cu´ndo puede utilizarse un dispositivo de E/S por parte de un
a
programa en ejecuci´n y controla el acceso y la utilizaci´n de los archivos. El procesador
o o
es, en s´ mismo, un recurso y es el SO el que debe determinar cu´nto tiempo de procesador
ı a
debe dedicarse a la ejecuci´n de un programa usuario en particular. En el caso de sistemas
o
multiprocesador, la decisi´n debe tomarse entre todos los procesadores.
o
1.3.3. Facilidad de evoluci´n del Sistema Operativo
o
Un SO importante evolucionar´ en el tiempo por una serie de razones:
a
Actualizaciones del hardware y nuevos tipos de hardware: Las mejoras introducidas
en los componentes hardware del computador deben tener soporte en el sistema
operativo. Un ejemplo es el aprovechamiento del sistema operativo del hardware
de paginaci´n que acompa˜a a la memoria de algunos sistemas inform´ticos.
o n a
Nuevos servicios: Como respuesta a nuevas necesidades, el sistema operativo am-
pliar´ su oferta de servicios para a˜adir nuevas medidas y herramientas de control.
a n
Correcciones: El sistema operativo tiene fallos que se descubrir´n con el curso del
a
tiempo y que es necesario corregir.
La necesidad de hacer cambios en un SO de forma regular introduce ciertos requisitos en
el dise˜o. Una afirmaci´n obvia es que el sistema debe tener una construcci´n modular,
n o o
con interfaces bien definidas entre los m´dulos y debe estar bien documentado.
o
http://alqua.org/libredoc/SSOO 9
20. 1 Introducci´n a los Sistemas Operativos
o
1.4. Evoluci´n hist´rica de los Sistemas Operativos
o o
Para intentar comprender los requisitos b´sicos de un SO y el significado de las ca-
a
racter´
ısticas principales de un sistema operativo contempor´neo, resulta util considerar
a ´
c´mo han evolucionado los sistemas operativos a los largo de los a˜os.
o n
1.4.1. Proceso en serie. Primera generaci´n (1945-1955)
o
En los primeros computadores, de finales de los 40 hasta mediados de los 50, el progra-
ma interactuaba directamente con el hardware: no hab´ sistema operativo. La operaci´n
ıa o
con estas m´quinas se efectuaba desde una consola dotada con indicadores luminosos y
a
conmutadores o a trav´s de un teclado hexadecimal. Los programas se arrancan cargan-
e
do el registro contador de programas con la direcci´n de la primera instrucci´n. Si se
o o
deten´ el programa por un error, la condici´n de error se indicaba mediante los indica-
ıa o
dores luminosos. El programador pod´ examinar los registros relevantes y la memoria
ıa
principal para comprobar el resultado de la ejecuci´n o para determinar la causa del
o
error.
El siguiente paso significativo de la evoluci´n en el uso de sistemas inform´ticos vino
o a
con la llegada de dispositivos de E/S tales como tarjetas perforadas y cintas de papel
y con los traductores de lenguajes. Los programas. codificados ahora en un lenguaje
de programaci´n, se traducen a un forato ejecutable mediante un programa como un
o
compilador o un int´rprete. Otro programa, llamado cargador, automatiza el proceso de
e
cargar en memoria estos programas en c´digo ejecutable. El usuario coloca un programa
o
y sus datos de entrada en un dispositivo de entrada y el cargador transfiere la informaci´n
o
desde el dispositivo a la memoria. Despu´s de transferir el control al programa cargado
e
por medios manuales o autom´ticos, comienza la ejecuci´n del mismo. El programa en
a o
ejecuci´n lee sus datos desde el dispositivo de entrada asignado y puede producir ciertos
o
resultados en un dispositivo de salida tal como una impresora o la pantalla.
Estos primeros sistemas presentaban dos problemas principales:
Planificaci´n: La mayor´ de las instalaciones empleaban un formulario de reserva
o ıa
de tiempo de m´quina. Normalmente, un usuario pod´ reservar bloques de tiempo,
a ıa
m´ltiplos, por ejemplo, de media hora. Si la ejecuci´n del programa terminaba antes
u o
del plazo asignado, el tiempo restante se desperdiciaba. Tambi´n pod´ suceder que
e ıa
el programa no terminara dentro del plazo asignado, con lo que el programadir no
pod´ saber si el programa hab´ terminado satisfactoriamente o no.
ıa ıa
Tiempo de preparaci´n: Un programa aun siendo sencillo requer´ un tiempo de
o ıa
preparaci´n bastante grande ya que en primer lugar se cargaba un compilador
o
y un programa en lenguaje de alto nivel (programa fuente) en la memoria. A
continuaci´n, se salvaba el programa ya compilado (programa objeto) y, por ultimo,
o ´
se montaba y cargaba este programa objeto junto con las funciones comunes.
Este modo de trabajo pod´ denominarse proceso en serie porque refleja el hecho de los
ıa
que usuarios ten´ que acceder al computador en serie.
ıan
10 Sistemas Operativos - 0.5.0
21. 1.4 Evoluci´n hist´rica de los Sistemas Operativos
o o
1.4.2. Sistemas sencillos de proceso por lotes. Segunda generaci´n
o
(1955-1965)
Las primeras m´quinas eran muy caras y, por tanto, era importante maximizar la
a
utilizaci´n de las mismas. El tiempo desperdiciado en la planificaci´n y la preparaci´n
o o o
era inaceptable.
Para mejorar el uso, se desarroll´ el concepto de sistema operativo por lotes (batch). El
o
primer sistema operativo por lotes fue desarrollado a mediados de los 50 por la General
Motoros para usar en un IBM 701.
La idea central que est´ detr´s del esquema sencillo de proceso por lotes es el uso de
a a
un elemento de software conocido como monitor. Con el uso de esta clase de sistema
operativo, los usuarios ya no ten´ acceso directo a la m´quina. En su lugar, el usuario
ıan a
deb´ entregar los trabajos en tarjetas o en cinta al operador del computador, quien
ıa
agrupaba secuencialmente los trabajos por lotes y ubicaba los lotes enteros en un dis-
positivo de entrada para su empleo por parte del monitor. Cada programa se constru´ ıa
de modo tal que volviera al monitor al terminar el procesamiento y, en ese momento, el
monitor comenzaba a cargar autom´ticamente el siguiente programa.
a
Para obtener provecho del potencial de utilizaci´n de recursos, un lote de trabajos
o
debe ejecutarse autom´ticamente sin intervenci´n humana. Para este fin, deben pro-
a o
porcionarse algunos medios que instruyan al sistema operativo sobre c´mo debe tratar
o
cada trabajo individual. Estas intrucciones son suministradas generalmente por medio
de ´rdenes del sistema operativo incorporadas al flujo de lotes. Las ´rdenes del sistema
o o
operativo son sentencias escritas en un Lenguaje de Control de Trabajos (JCL, Job Con-
trol Language). Entre las ´rdenes t´
o ıpicas de un JCL se incluyen las marcas de comienzo
y finalizaci´n de un trabajo, las ´rdenes para cargar y ejecutar programas y las ´rdenes
o o o
que anuncian necesidades de recursos tales como el tiempo esperado de ejecuci´n y los
o
requisitos de memoria. Estas ´rdenes se hallan incoporadas al flujo de los trabajos, junto
o
a los programas y a los datos del usuario.
Una parte residente en memoria del SO por lotes, a veces llamado monitor de lotes, lee,
interpreta y ejecuta estas ´rdenes. En respuesta a ellas, los trabajos del lote se ejecutan
o
de uno en uno.
1.4.3. Multiprogramaci´n. Tercera Generaci´n (1965-1980)
o o
Incluso con las mejoras anteriores, el proceso por lotes dedica los recursos del sistema
inform´tico a una unica tarea a la vez.
a ´
En el curso de su ejecucic´n, la mayor´ de los programas oscilan entre fases intensivas
o ıa
de c´lculo y fases intensivas de operaciones de E/S. Esto queda indicado en la figura 1.1
a
donde los periodos de c´lculo intensivo se indican mediante cuadros sombreados y las
a
operaciones de E/S mediante zonas en blanco. El problema es que los dispositivos de
E/S son muy lentos comparados con el procesador. El procesador gasta parte del tiempo
ejecutando hasta que encuentra una instrucci´n de E/S. Entonces debe esperar a que
o
concluya la instrucci´n de E/S antes de continuar.
o
Esta ineficiencia no es necesaria. Se sabe que hay memoria suficiente para almacenar
http://alqua.org/libredoc/SSOO 11
23. 1.4 Evoluci´n hist´rica de los Sistemas Operativos
o o
1.4.4. Computadoras personales. Cuarta Generaci´n (1980-1990)
o
Con el desarrollo de la tecnolog´ LCI (Large Scale Integration) de construcci´n de
ıa o
circuitos, que permit´ fabricar chips con miles de transistores en un cent´
ıa ımetro cuadrado
de silicio, se inicio la era de la computadora personal. En t´rminos de arquitectura, las
e
computadoras personales no eran muy distintas de las minicomputadoras del tipo PDP-
11, pero en t´rminos de precio s´ eran bastante distintas. Las computadoras personales
e ı
m´s poderosas reciben el nombre gen´rico de estaciones de trabajo, pero en realidad s´lo
a e o
son computadoras personales grandes.
La amplia disponibilidad de poder de c´mputo condujo, junto con un nivel gr´fico
o a
bastante adecuado, al crecimiento de la industria de producci´n de software para las
o
computadoras personales. Gran parte de este software ten´ adem´s, la ventaja de pre-
ıa, a
sentar una gran amiganilidad con el usuario.
Dos sistemas operativos han dominado la escena de las computadoras personales y las
estaciones de trabajo: MS-DOS de Microsoft y UNIX de ATT. MS-DOS tuvo un amplio
uso en el IBM PC y otras m´quinas que incorporaban el microprocesador 8088 de Intel
a
o alguno de sus sucesores. UNIX, su contendiente principal, domin´ las computadoras
o
que no utilizaban microprocesadores de Intel, as´ como las estaciones de trabajo, en
ı
particular las que poseen chips RISC de altas prestaciones.
Un interesante desarrollo que comenz´ a llevarse a cabo a mediados de la d´cada
o e
de los 80 ha sido el crecimiento de las redes de computadoras personales con sistemas
operativos en red y sistemas operativos distribuidos. En un sistema operativo en red, los
usuarios son conscientes de la existencia de varias computadoras y pueden conectarse
con m´quinas remotas. Cada m´quina ejecuta su propio sistema operativo local y tiene
a a
su propio usuario. Un sistema operativo distribuido, por el contrario, presenta al usuario
un conjunto de computadores independientes como si se tratara de un solo sistema. En
un sistema operativo distribuido los usuarios no deben ser conscientes del lugar donde
su programa va a ejecutarse o la ubicaci´n de los archivos a los que desea acceder, esas
o
cuestiones deben ser manejadas autom´ticamente y de forma eficiente por el sistema
a
operativo.
http://alqua.org/libredoc/SSOO 13
24. 1 Introducci´n a los Sistemas Operativos
o
14 Sistemas Operativos - 0.5.0
25. 2 Gesti´n de procesos
o
2.1. Procesos y tareas
Proceso una definici´n tradicional de proceso es la de instancia de un programa en
o
ejecuci´n. La ejecuci´n de tal programa es indicada al SO mediante una acci´n u
o o o
orden especializada.
El SO responde en ese punto creando un nuevo proceso. En general, esta actividad
consiste en la creaci´n e iniciliazaci´n de estructuras de datos en el SO para monitorizar
o o
y controlar el progreso de proceso en cuesti´n. Una vez creado, el proceso pasar´ a estar
o a
activo y competir´ por la utilizaci´n de recursos del sistema como el procesador y los
a o
dispositivos I/O.
Un proceso evoluciona c´ ıclicamente entre per´ıodos de ejecuci´n activa y de espera por
o
la terminaci´n de actividades de I/O. Cuando un proceso queda inactivo por especificar
o
una operaci´n de I/O y quedar a la espera de que ´sta se complete, el SO puede planificar
o e
la ejecuci´n de otro proceso.
o
Desde este punto de vista, un proceso es una entidad individualmente planificable,
que puede ser asignada al procesador y ejecutada por ´ste. El SO controla, pues, din´-
e a
micamente la evoluci´n de los procesos registrando la informaci´n correspondiente a sus
o o
cambios cuando ´stos se produzcan. Esta informaci´n es utilizada por el SO para sus
e o
labores de planificaci´n y gesti´n sobre el conjunto de procesos que en un determinado
o o
momento pueden coexistir en el sistema inform´tico.
a
De esta forma adem´s de la plantilla est´tica constituida por el programa ejecutable
a a
en que se basa, un proceso posee ciertos atributos que ayudan al SO en su gesti´n. o
Los atributos de un proceso incluyen su estado actual, unidad de planificaci´n, derechos
o
de acceso, nivel de prioridad entre otros datos. Desde el punto de vista del usuario, un
proceso no es m´s que la ejecuci´n de un conjunto de instrucciones que llevan a cabo una
a o
determinada tarea, mientras que para el SO es una entidad que atraviesa din´micamente
a
un conjunto de estados y que solicita los recursos del sistema que le son necesarios. De
esta forma, el acceso a tales recursos debe ser planificado de forma que se consiga un
rendimiento en la utilizaci´n de los mismos lo m´s ´ptimo posible.
o a o
2.1.1. Divisi´n impl´
o ıcita y expl´
ıcita de tareas
Dependiendo del SO y del entorno objetivo de ejecuci´n de programas, la divisi´n
o o
de un trabajo en tareas que ser´n ejecutadas como procesos independientes as´ como la
a ı
asignaci´n inicial de los atributos de esos procesos pueden ser efectuadas o bien por el
o
SO o bien por el desarrollador de la aplicaci´n. En otras palabras, lo que constituir´ un
o a
proceso independiente puede provenir de:
15
26. 2 Gesti´n de procesos
o
1. Divisi´n impl´
o ıcita de tareas definida por el sistema.
2. Divisi´n expl´
o ıcita de tareas definida por el desarrollador.
En general, la divisi´n impl´
o ıcita de tareas se aplica en sistemas operativos multitarea
para multiplexar la ejecuci´n de una serie de programas y explotar los beneficios de
o
la concurrencia entre una serie de aplicaciones. La divisi´n expl´
o ıcita en tareas permite
mejoras adicionales en el rendimiento al explotar la concurrencia inherente o propia de
una determinada aplicaci´n o programa. La divisi´n impl´
o o ıcita en tareas significa que los
procesos son definidos por el sistema, esta divisi´n aparece com´nmente en sistemas de
o u
multiprogramaci´n de prop´sito general tales como los sistemas de tiempo compartido.
o o
En este enfoque cada programa remitido para su ejecuci´n es tratado por el SO como
o
un proceso independiente.
El SO asignar´ valores iniciales a lo atributos del proceso tales como la prioridad de
a
planificaci´n y los derechos de acceso en el momento de la creaci´n del proceso bas´ndose
o o a
en el perfil del usuario y en valores predeterminados del sistema.
La divisi´n expl´
o ıcita significa que los desarrolladores definen expl´ ıcitamente cada pro-
ceso y alguno de sus atributos, t´ ıpicamente una unica aplicaci´n queda dividida en
´ o
varios procesos relacionados con objeto de mejorar su rendimiento. La divisi´n expl´
o ıcita
se utiliza en situaciones donde se desea elevar la eficiencia o controlar expl´ ıcitamente las
actividades del sistema.
Entre las razones m´s comunes para aplicar la divisi´n expl´
a o ıcita de tareas se incluyen
1. Ganancia de velocidad: algunas de las tareas independientes en que quede dividida
la aplicaci´n podr´n ejecutarse de forma concurrente con la consiguiente mejora
o a
en el tiempo total de ejecuci´n de la aplicaci´n.
o o
2. Mejora en el rendimiento de la utilizaci´n de dispositivos de I/O con latencia:
o
dedicando tareas expl´ıcitas a la realizaci´n de operaciones I/O, ´stas podr´n ser
o e a
planificadas por el SO de forma concurrente con tareas de computaci´n intensiva
o
con la consiguiente ganancia en el rendimiento.
3. Multiprocesamiento: los procesos independientes que constituyen una aplicaci´n
o
pueden ser perfectamente portados para su ejecuci´n en un entorno multiprocesa-
o
dor con lo que se conseguir´ paralelismo real.
ıa
4. Computaci´n distribuida: de igual forma, cada tarea independiente puede ser asig-
o
nada a un procesador que forme parte de un sistema distribuido, siendo necesaria
una sincronizaci´n con el resto de procesadores que se ocupan de sus respectivas
o
tareas.
2.1.2. Tipos de procesos y relaci´n entre procesos concurrentes
o
En principio, podemos realizar una clasificaci´n muy general de los procesos entre
o
procesos de usuario y procesos de sistema. Un proceso de usuario es aquel creado por
16 Sistemas Operativos - 0.5.0
27. 2.1 Procesos y tareas
el SO como respuesta a una de ejecuci´n del usuario o de una aplicaci´n que ejecuta a
o o
instancias de ´ste.
e
Un proceso de sistema es un proceso que forma parte del propio SO y que desempe˜a n
alguna de sus labores caracter´ ısticas, como por ejemplo, la elecci´n del siguiente proceso
o
a ejecutar o bien la prestaci´n de un servicio determinado como el acceso a un recurso de
o
I/O del sistema. Cualquiera que sea la naturaleza de los procesos, ´stos pueden mantener
e
fundamentalmente dos tipos de relaciones: Competici´n y/o Colaboraci´n.
o o
En virtud de la compartici´n de recursos de un solo sistema, todos los procesos concu-
o
rrentes compiten unos con otros por la asignaci´n de los recursos del sistema necesarios
o
para sus operaciones respectivas. Adem´s, una colecci´n de procesos relacionados que
a o
representen colectivamente una sola aplicaci´n l´gica, suelen cooperar entre s´ La coope-
o o ı.
raci´n es habitual entre los procesos creados como resultado de una divisi´n expl´
o o ıcita de
tareas. Los procesos cooperativos intercambian datos y se˜ales de sincronizaci´n necesa-
n o
rios para estructurar su progreso colectivo. Tanto la competici´n como la colaboraci´n
o o
de procesos requiere una cuidada asignaci´n y protecci´n de los recursos en t´rminos
o o e
de aislamiento de los diferentes espacios de direcciones. La cooperaci´n depende de la
o
existencia de mecanismos para la utilizaci´n controlada de los datos compartidos y el
o
intercambio de se˜ales de sincronizaci´n.
n o
Los procesos cooperativos comparten t´ ıpicamente algunos recursos y atributos adem´s a
de interactuar unos con otros. Por esta raz´n, con frecuencia se agrupan en lo que se
o
denomina una familia de procesos. Aunque dentro de una familia son posibles relaciones
complejas entre sus procesos miembro, la relaci´n m´s com´nmente soportada por los
o a u
sistemas operativos es la relaci´n padre-hijo. Esta relaci´n se establece cuando el SO
o o
crea un nuevo proceso a instancias de otro ya existente. Los procesos hijos heredan
generalmente los atributos de sus procesos padres en el momento de su creaci´n y tambi´n
o e
pueden compartir recursos con sus procesos hermanos.
2.1.3. El sistema operativo y los procesos
Todos los SSOO de multiprogramaci´n est´n construidos en torno al concepto de
o a
proceso. Los requisitos principales que debe cumplir un SO para con los procesos son los
siguientes:
1. El SO debe intercalar la ejecuci´n de procesos para optimizar la utilizaci´n del
o o
procesador ofreciendo a la vez un tiempo de respuesta razonable.
2. El SO debe asignar los recursos del sistema a los procesos en conformidad con una
pol´
ıtica espec´
ıfica que evite situaciones de interbloqueo.
3. El SO podr´ tener que dar soporte a la comunicaci´n entre procesos y ofrecer
ıa o
mecanismos para su creaci´n, labores que pueden ser de ayuda en la estructuraci´n
o o
de aplicaciones.
http://alqua.org/libredoc/SSOO 17
28. 2 Gesti´n de procesos
o
2.2. Creaci´n y terminaci´n de procesos
o o
Cuando se a˜ade un proceso a los que ya est´ admisnitrando el SO, hay que construir
n a
las estructuras de datos que se utilizan para gestionar y controlar el proceso y asignar
el espacio de direcciones que va a utilizar dicho proceso. Estas acciones constituyen la
creaci´n de un nuevo proceso.
o
Son cuatro los sucesos comunes que llevan a la creaci´n de un proceso.
o
1. Nueva tarea en un sistema de proceso por lotes.
2. Nueva conexi´n interactiva.
o
3. Nuevo proceso creado por el SO para dar un servicio.
4. Un proceso generado por otro ya existente.
Por otro lado, en cualquier sistema inform´tico debe existir alguna forma de que un
a
proceso indique su terminaci´n. Un trabajo por lotes debe incluir una instrucci´n de
o o
detenci´n halt o una llamada expl´
o ıcita a un servicio del sistema operativo para indicar
su terminaci´n, mientras que en una aplicaci´n interactiva, ser´ la acci´n del usuario la
o o a o
que indique cu´ndo termine el proceso.
a
Todas estas acciones provocan al final una petici´n de servicio al SO para terminar el
o
proceso demandante. Adem´s, una serie de errores pueden llevarnos a la terminaci´n de
a o
un proceso. A continuaci´n se enumeran algunas de las condiciones m´s habituales de
o a
terminaci´n de procesos:
o
1. Terminaci´n normal: Un proceso termina de ejecutar su conjunto de instrucciones
o
y finaliza.
2. Tiempo l´ımite excedido: El proceso requiere m´s tiempo para completar su ejecu-
a
ci´n del que el sistema establece como m´ximo.
o a
3. No disponibilidad de memoria: Tiene lugar cuando un proceso necesita m´s me-
a
moria de la que el sistema puede proporcionar.
4. Violaci´n de l´
o ımites: Ocurre cuando un proceso trata de acceder a una posici´n de
o
memoria a la que no puede hacerlo.
5. Error de protecci´n: Se produce si un proceso intenta utilizar un recurso o un
o
archivo para el que no tiene permiso o trata de utilizarlo de forma incorrecta.
6. Error aritm´tico: Aparece si el proceso intenta hacer un c´lculo prohibido como
e a
la divisi´n por cero o trata de almacenar un n´mero mayor del que el hardware
o u
acepta.
7. Superaci´n del tiempo m´ximo de espera por un recurso: En este caso, el proceso
o a
se encuentra a la espera de obtener un recurso o de que tenga lugar un determinado
evento durante un tiempo que alcanza el l´ ımite establecido.
18 Sistemas Operativos - 0.5.0