libro abierto / serie apuntes                                                                                             ...
004.451SSOO                                                               ALQ       Sistemas Operativos                   ...
DedicadoA mi hermana In´s               e
http://alqua.org/libredoc/SSOO Pablo Ruiz M´zquiz             u        pablo@alqua.org   http://alqua.org/people/pablo    ...
c                                           copyleft  Copyright (c) 2004 Pablo Ruiz M´zquiz.                              ...
´Indice generalPortada                                                                                                   I...
´INDICE GENERAL         2.4.1.   Tablas de memoria, de E/S, de archivos y de procesos . .                                 ...
´                                                                           INDICE GENERAL   5.2. Prevenci´n de interbloqu...
´INDICE GENERALx                Sistemas Operativos - 0.5.0
1 Introducci´n a los Sistemas Operativos            o1.1.    Definici´n de Sistema Operativo               o   Un sistema o...
1 Introducci´n a los Sistemas Operativos            o1.2.     Relaci´n con la m´quina subyacente               o          ...
1.2 Relaci´n con la m´quina subyacente                                                          o          apor mecanismos...
1 Introducci´n a los Sistemas Operativos            o           o flag de control y que puede consultarse posteriormente, p...
1.2 Relaci´n con la m´quina subyacente                                                          o          ainfinito. Esto ...
1 Introducci´n a los Sistemas Operativos            oson los responsables de suspender el pograma de usuario y de reanudar...
1.3 Funciones y objetivos de los Sistemas OperativosLas computadoras incluyen varias se˜ales de solicitud de interrupci´n,...
1 Introducci´n a los Sistemas Operativos            ode aplicaciones. Estas aplicaciones pueden construirse con un lenguaj...
1.3 Funciones y objetivos de los Sistemas Operativos     Contabilidad: Un sistema operativo debe recoger estad´ısticas de ...
1 Introducci´n a los Sistemas Operativos            o1.4.     Evoluci´n hist´rica de los Sistemas Operativos              ...
1.4 Evoluci´n hist´rica de los Sistemas Operativos                                                  o      o1.4.2.   Siste...
1 Introducci´n a los Sistemas Operativos            o                                               Programa 1            ...
1.4 Evoluci´n hist´rica de los Sistemas Operativos                                                o      o1.4.4.   Computa...
1 Introducci´n a los Sistemas Operativos            o14                                         Sistemas Operativos - 0.5.0
2 Gesti´n de procesos       o2.1.     Procesos y tareasProceso una definici´n tradicional de proceso es la de instancia de ...
2 Gesti´n de procesos       o 1. Divisi´n impl´          o      ıcita de tareas definida por el sistema. 2. Divisi´n expl´ ...
2.1 Procesos y tareasel SO como respuesta a una de ejecuci´n del usuario o de una aplicaci´n que ejecuta a                ...
2 Gesti´n de procesos       o2.2.    Creaci´n y terminaci´n de procesos              o             o   Cuando se a˜ade un ...
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Ssoo 0 5-0 (1)
Upcoming SlideShare
Loading in …5
×

Ssoo 0 5-0 (1)

1,197 views

Published on

informatica, para plugin de android en need beans
tj

  • Be the first to comment

  • Be the first to like this

Ssoo 0 5-0 (1)

  1. 1. libro abierto / serie apuntes Pablo Ruiz M´zquiz u Sistemas Operativos ¬¬¬¬0.5.0 Programa 1 Programa 2 ¦ ¦ ¦ ¨ ¨ ¨ § § § © © © ¦ ¦ ¦ ¨ ¨ ¨ § § § © © © ¦ ¦ ¦ ¨ ¨ ¨ § § § © © © P1 inactivo P1 inactivo P1 inactivo P2 inactivo P2 inactivo P2 inactivo (a) Ejecución secuencial Tiempo Programa 1 ! ! ! # # # ! ! ! # # # ! ! ! # # # Programa 2       ¢ ¢ ¢ ¤ ¤ ¤ ¡ ¡ ¡ £ £ £ ¥ ¥ ¥       ¢ ¢ ¢ ¤ ¤ ¤ ¡ ¡ ¡ £ £ £ ¥ ¥ ¥       ¢ ¢ ¢ ¤ ¤ ¤ ¡ ¡ ¡ £ £ £ ¥ ¥ ¥ P1 P2 P1 P2 P1 P2 Tiempo (b) Ejecución multiprogramada Un libro libre de Alqua
  2. 2. 004.451SSOO ALQ Sistemas Operativos † lomo para ediciones impresas
  3. 3. DedicadoA mi hermana In´s e
  4. 4. 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 2004alqua,madeincommunity
  5. 5. 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 operativosCDU 004.451Editores 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
  6. 6. ´Indice generalPortada ICopyleft VI´Indice general VII1. 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 . 132. 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
  7. 7. ´INDICE GENERAL 2.4.1. Tablas de memoria, de E/S, de archivos y de procesos . . . . . . . 27 2.4.2. Bloque de control de procesos (BCP) . . . . . . . . . . . . . . . . . 28 2.4.3. Estados del sistema y listas de procesos . . . . . . . . . . . . . . . 30 2.4.4. Conmutaci´n de procesos . . . . . . . . . . . . . . . . . . o . . . . . 31 2.4.5. Servicios del sistema operativo para la gesti´n de procesos o . . . . . 323. Planificaci´n de procesos o 35 3.1. Concepto y criterios de planificaci´n . . . . . . . . . . . . . . . . . . . . o . 35 3.1.1. Utilizaci´n del procesador: . . . . . . . . . . . . . . . . . . . . . o . 35 3.1.2. Productividad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.1.3. Tiempo de retorno . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.1.4. Tiempo de espera . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.1.5. Tiempo de respuesta . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2. Tipos de planificadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.2.1. Planificador a largo plazo (PLP) . . . . . . . . . . . . . . . . . . . 36 3.2.2. Planificador a corto plazo (PCP) . . . . . . . . . . . . . . . . . . . 37 3.2.3. Planificador a medio plazo (PMP) . . . . . . . . . . . . . . . . . . 38 3.3. Algoritmos de planificaci´n . . . . . . . . . . . . . . . . . . . . . . . . . o . 38 3.3.1. Algoritmo First Come First Serve (FCFS) . . . . . . . . . . . . . . 39 3.3.2. Algoritmo por reparto circular de tiempo (RR, Round-Robin) . . . 39 3.3.3. Planificaci´n con expropiaci´n basada en prioridades (ED, Event- o o Driven) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.3.4. Planificaci´n MLQ (Multiple level queues) . . . . . . . . . . . . . o . 434. Programaci´n Concurrente o 45 4.1. Multitarea, multiprogramaci´n y multiproceso . . . . . . . . . . . . . . . o . 45 4.2. Principios de concurrencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.3. Comunicaci´n y sincronizaci´n de procesos . . . . . . . . . . . . . . . . o o . 46 4.3.1. Posibilidades de interacci´n de procesos . . . . . . . . . . . . . . o . 46 4.3.2. Necesidad de sincronizaci´n de los procesos: regi´n cr´ o o ıtica y exclu- si´n mutua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o . 47 4.4. Soluciones software para la exclusi´n mutua . . . . . . . . . . . . . . . . o . 49 4.4.1. Algoritmo de Dekker . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.4.2. Algoritmo de Peterson . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.4.3. Sem´foros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a . 56 4.4.4. Monitores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.4.5. Paso de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 4.4.6. Soluciones hardware para la exclusi´n mutua . . . . . . . . . . . o . 635. Interbloqueos 73 5.1. Principios de interbloqueo . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.1.1. Recursos reutilizables . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.1.2. Recursos consumibles . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.1.3. Condiciones de interbloqueo . . . . . . . . . . . . . . . . . . . . . . 74viii Sistemas Operativos - 0.5.0
  8. 8. ´ INDICE GENERAL 5.2. Prevenci´n de interbloqueos . . . . . . . . . . . . . . o . . . . . . . . . . . . 74 5.3. Detecci´n de interbloqueos . . . . . . . . . . . . . . . o . . . . . . . . . . . . 75 5.4. Predicci´n de interbloqueo. Algoritmo del banquero o . . . . . . . . . . . . 76 5.4.1. Negativa de iniciaci´n de procesos . . . . . . o . . . . . . . . . . . . 77 5.4.2. Negativa de asignaci´n de recursos . . . . . . o . . . . . . . . . . . . 786. Gesti´n de memoria o 81 6.1. Reubicaci´n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . o . 81 6.2. Asignaci´n de memoria con particiones fijas . . . . . . . . . . . . . . . . o . 82 6.3. Asignaci´n de memoria con particiones din´micas . . . . . . . . . . . . . o a . 84 6.4. Asignaci´n de memoria con paginaci´n simple . . . . . . . . . . . . . . . o o . 84 6.5. Asignaci´n de memoria con segmentaci´n simple . . . . . . . . . . . . . o o . 87 6.6. Memoria virtual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 6.6.1. Estructuras Hardware y de control . . . . . . . . . . . . . . . . . . 88 6.6.2. Hiperpaginaci´n y cercan´ de referencias . . . . . . . . . . . . . o ıa . 89 6.6.3. Memoria virtual con paginaci´n y buffer de traducci´n adelantada o o (TLB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6.6.4. Software del SO para la gesti´n de memoria virtual . . . . . . . . o . 90´Indice alfab´tico e 95Historia 97Creative Commons Deed 99Manifiesto de Alqua 101El proyecto libros abiertos de Alqua 105Otros documentos libres 109http://alqua.org/libredoc/SSOO ix
  9. 9. ´INDICE GENERALx Sistemas Operativos - 0.5.0
  10. 10. 1 Introducci´n a los Sistemas Operativos o1.1. Definici´n de Sistema Operativo o Un sistema operativo puede ser contemplado como una colecci´n organizada de exten- osiones software del hardware, consistentes en rutinas de control que hacen funcionar alcomputador y proporcionan un entorno para la ejecuci´n de programas. Adem´s, estos o aprogramas utilizan las facilidades proporcionadas por el sistema operativo para obteneracceso a recursos del sistema inform´tico como el procesador, archivos y dispositivos ade entrada/salida (E/S). De esta forma, el SO constituye la base sobre la cual puedenescribirse los programas de aplicaci´n, los cuales invocar´n sus servicios por medio de o allamadas al sistema. Por otro lado, los usuarios pueden interactuar directamente con elSO a trav´s de ´rdenes concretas. En cualquier caso, el SO act´a como interfaz entre e o ulos 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 ofactores. As´ las funciones visibles al usuario est´n en gran medida determinadas por la ı, anecesidades y caracter´ısticas del entorno objetivo que el SO est´ destinado a soportar. Por aejemplo, un SO destinado al desarrollo de programas en un entorno interactivo puedetener un conjunto bastante diferente de llamadas y ´rdenes que un sistema operativo odise˜ado para soporte en tiempo de ejecuci´n a una aplicaci´n de tiempo real dedicada, n o otal como el control del motor de un coche, el control del reactor de una central nuclearo el sistema de actualizaciones derivado de las operaciones de un cajero autom´tico de auna entidad bancaria. Internamente, un SO act´a como gestor de los recursos del sistema inform´tico tales u acomo el procesador, la memoria, los archivos y los dispositivos de E/S. En esa funci´n, oel SO mantiene actualizada la informaci´n relativa al estado de sistemas que soportan ola ejecuci´n concurrente de programas, el SO resuelve las peticiones conflictivas de re- ocursos de manera que preserve la integridad del sistema y al hacerlo intenta optimizarel rendimiento final. En general, el SO presenta al usuario el equivalente de una m´quina virtual que sea am´s f´cil de utilizar que la m´quina subyacente y uno de sus objetivos primarios es incre- a a amentar la productividad de los recursos que ofrece al sistema mediante una planificaci´nolo m´s ´ptima posible de ellos. a o 1
  11. 11. 1 Introducci´n a los Sistemas Operativos o1.2. Relaci´n con la m´quina subyacente o a1.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 aNeuman cl´sica consta de 3 componentes b´sicos: memoria principal, unidad central a ade 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 ode registros. Los componentes b´sicos mencionados se encuentran interconectados para allevar a cabo la funci´n principal del computador, que consiste en la ejecuci´n de las o osentencias 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. oAdem´s de los descritos anteriormente, los sistemas inform´ticos disponene de un con- a ajunto de elementos de interconexi´n (buses de datos). Estos elementos est´n constituidos o a2 Sistemas Operativos - 0.5.0
  12. 12. 1.2 Relaci´n con la m´quina subyacente o apor mecanismos que permiten la comunicaci´n entre los componentes que conforman el osistema inform´tico, es decir, su funci´n es la de interconectar procesadores, memoria a oprincipal y m´dulos de E/S. o1.2.2. Registros del procesador Dentro del procesador hay un conjunto de registros que ofrecen un nivel de memoriaque es m´s r´pido y peque˜o que la memoria principal. Los registros del procesador a a npueden 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 ahttp://alqua.org/libredoc/SSOO 3
  13. 13. 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 ode vista m´s sencillo es considerar que el procesamiento de instrucciones consiste en auna sencuencia sencilla que se repite a alta velocidad (cientos de millones de veces porsegundo). Esta secuencia consiste en 3 pasos: lectura de memoria de la instrucci´n m´- o aquina apuntada por el PC, incremento del contador del programa - para que apunte ala 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 formaconsecutiva las instrucciones que est´n en direcciones consecutivas, y forma un bucle a4 Sistemas Operativos - 0.5.0
  14. 14. 1.2 Relaci´n con la m´quina subyacente o ainfinito. Esto significa que la unidad de control de la computadora est´ continua e inin- aterrumpidamente 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 aque 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 nque permiten alterar esta ejecuci´n lineal. En esencia, todos ellos se basan en algo muy osimple; modifican el contenido del programa, con lo que se consigue que se salte o bifurquea otro segmento del programa o a otro programa (que, l´gicamente, tambi´n ha de residir o een 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- ociones de salto, desde el punto de vista de los SSOO son mucho m´s importantes las ainterrupciones y las interrupciones de TRAP. Por tanto, centraremos nuestro inter´s en eresaltar 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- ones aparecen, principalmente, como una v´ para mejorar la eficiencia del procesamiento ıadebido a que la mayor´ de los dispositivos externos son mucho m´s lentos que el proce- ıa asador. Con las interrupciones, el procesador se puede dedicar a la ejecuci´n de otras instruc- ociones mientras una operaci´n de E/S est´ en proceso. Cuando el dispositivo de E/S o aest´ disponible, es decir, cuando est´ preparado para aceptar m´s datos del procesador, e e ael m´dulo de E/S de dicho dispositivo enviar´ una se˜al de solicitud de interrupci´n al o a n oprocesador. El procesador responde suspendiendo la operaci´n del programa en curso y osaltando 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 ooriginal despu´s de haber atendido al dispositivo. e Desde el punto de vista del programa de usuario una interrupci´n es solamente eso: ouna interrupci´n de la secuencia normal de ejecuci´n. Cuando el tratamiento de la inte- o orrupci´n termina, la ejecuci´n contin´a. El programa no tiene que disponer de ning´n o o u uc´digo especial para dar cabida a las interrupciones; el procesador y el sistema operativo ohttp://alqua.org/libredoc/SSOO 5
  15. 15. 1 Introducci´n a los Sistemas Operativos oson los responsables de suspender el pograma de usuario y de reanudarlo despu´s en el emismo punto. Para dar cabida a las interrupciones, se a˜ade un ciclo de interrupci´n al ciclo de n oinstrucci´n. En el ciclo de interrupci´n el procesador comprueba si ha ocurrido alguna o ointerrupci´n, lo que se indicar´ con la presencia de alguna se˜al de interrupci´n. Si no hay o a n ointerrupciones pendientes, el procesador sigue con el ciclo de lectura y trae la pr´xima oinstrucci´n del programa en curso. Si hay una interrupci´n pendiente, el programador o osuspende la ejecuci´n del programa en curso y ejecuta una rutina de tratamiento de ointerrupci´n. Esta rutina, generalmente, forma parte del sistema operativo, determina la onaturaleza de la interrupci´n y realiza cuantas acciones sean necesarias. Una interrupci´n o odesencadena 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. a6 Sistemas Operativos - 0.5.0
  16. 16. 1.3 Funciones y objetivos de los Sistemas OperativosLas computadoras incluyen varias se˜ales de solicitud de interrupci´n, cada una de las n ocuales 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 aatendidas. Adem´s la computadora incluye un mencanismo de inhibici´n selectiva que a opermite detener todas o determinadas se˜ales de interrupci´n. Las se˜ales inhibidas no n o nson atendidas hasta que pasen a estar desinhibidas. La informaci´n de inhibici´n de o olas interrupciones suele incluirse en la parte del registro de estado que solamente esmodificable en nivel de n´cleo, por lo que su modificaci´n queda restringida al sistema u ooperativo. Las interrupciones se pueden generar por diversas causas, que se pueden clasificar dela 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. o1.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 adesnuda y los programas de aplicaciones o el propio usuario. por otro lado, el sistemaoperativo tambi´n se encarga de gestionar los recursos del sistema inform´tico para e aobtener un uso lo m´s ´ptimo posible de ´stos. A continuaci´n, trataremos las funciones a o e odel sistema operativo desde estos dos puntos de vista, as´ como las caracter´ ı ısticas quedebe presentar para mantener una capacidad de evoluci´n adecuada. o1.3.1. El Sistema Operativo como Interfaz Usuario/Computadora Un sistema operativo debe hacer que la interacci´n del usuario o de los programas ode aplicaci´n con el computador resulte sencilla y f´cil y debe construirse de modo que o apermita el desarrollo efectivo, la verificaci´n y la introducci´n de nuevas funciones en el o osistema 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 puedecontemplarse de forma estratificada o jer´rquica. Este usuario final no tiene que preocu- aparse de la arquitectura del computador y contempla el sistema inform´tico en t´rminos a ehttp://alqua.org/libredoc/SSOO 7
  17. 17. 1 Introducci´n a los Sistemas Operativos ode aplicaciones. Estas aplicaciones pueden construirse con un lenguaje de programaci´n oy son desarrolladas por los programadores de aplicaciones. Si se tuviera que desarrollar un programa de aplicaci´n con un conjunto de instruc- ociones totalmente responsables del control del hardware, dicho programa tendr´ una ıatarea abrumadora y compleja. Para facilitar esta tarea, se ofrecen una serie de progra-mas de sistema. Algunos de estos programas implementan funciones muy utilizadas queayudan a la creaci´n de aplicaciones de usuario, la gesti´n de archivos y el control de los o odispositivos 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 uprogramador y a los programas de aplicaci´n un conjunto de servicios y utilidades que ofaciliten 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 o8 Sistemas Operativos - 0.5.0
  18. 18. 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 orecursos que administra. De esta forma se obtendr´ un alto rendimiento del sistema ainform´tico gobernado. a El SO es el responsable de la gesti´n de los recursos de la m´quina y mediante su o aadministraci´n tiene el control sobre las funciones b´sicas de la misma. El SO no es nada o am´s que un programa pero la diferencia clave es su prop´sito. El SO dirige al procesador a oen el empleo de otros recursos del sistema y en el control del tiempo de ejecuci´n de los oprogramas de usuario. Una parte del SO reside en memoria principal. En esta parte est´ el n´cleo (kernel ) a uque incluye funciones del SO utilizdas con m´s frecuencia aunque, en un momento dado, apuede incluir otras partes en uso. El resto de la memoria, que contiene datos y programasde usuario, es administrada conjuntamente por el SO y por el hardware de control dememoria. El SO decide cu´ndo puede utilizarse un dispositivo de E/S por parte de un aprograma en ejecuci´n y controla el acceso y la utilizaci´n de los archivos. El procesador o oes, en s´ mismo, un recurso y es el SO el que debe determinar cu´nto tiempo de procesador ı adebe dedicarse a la ejecuci´n de un programa usuario en particular. En el caso de sistemas omultiprocesador, la decisi´n debe tomarse entre todos los procesadores. o1.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 enel dise˜o. Una afirmaci´n obvia es que el sistema debe tener una construcci´n modular, n o ocon interfaces bien definidas entre los m´dulos y debe estar bien documentado. ohttp://alqua.org/libredoc/SSOO 9
  19. 19. 1 Introducci´n a los Sistemas Operativos o1.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- aracter´ ı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 n1.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 ocon estas m´quinas se efectuaba desde una consola dotada con indicadores luminosos y aconmutadores o a trav´s de un teclado hexadecimal. Los programas se arrancan cargan- edo el registro contador de programas con la direcci´n de la primera instrucci´n. Si se o odeten´ el programa por un error, la condici´n de error se indicaba mediante los indica- ıa odores luminosos. El programador pod´ examinar los registros relevantes y la memoria ıaprincipal para comprobar el resultado de la ejecuci´n o para determinar la causa del oerror. El siguiente paso significativo de la evoluci´n en el uso de sistemas inform´ticos vino o acon la llegada de dispositivos de E/S tales como tarjetas perforadas y cintas de papely con los traductores de lenguajes. Los programas. codificados ahora en un lenguajede programaci´n, se traducen a un forato ejecutable mediante un programa como un ocompilador o un int´rprete. Otro programa, llamado cargador, automatiza el proceso de ecargar en memoria estos programas en c´digo ejecutable. El usuario coloca un programa oy sus datos de entrada en un dispositivo de entrada y el cargador transfiere la informaci´n odesde el dispositivo a la memoria. Despu´s de transferir el control al programa cargado epor medios manuales o autom´ticos, comienza la ejecuci´n del mismo. El programa en a oejecuci´n lee sus datos desde el dispositivo de entrada asignado y puede producir ciertos oresultados 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 ıaque usuarios ten´ que acceder al computador en serie. ıan10 Sistemas Operativos - 0.5.0
  20. 20. 1.4 Evoluci´n hist´rica de los Sistemas Operativos o o1.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 autilizaci´n de las mismas. El tiempo desperdiciado en la planificaci´n y la preparaci´n o o oera inaceptable. Para mejorar el uso, se desarroll´ el concepto de sistema operativo por lotes (batch). El oprimer sistema operativo por lotes fue desarrollado a mediados de los 50 por la GeneralMotoros 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 aun elemento de software conocido como monitor. Con el uso de esta clase de sistemaoperativo, los usuarios ya no ten´ acceso directo a la m´quina. En su lugar, el usuario ıan adeb´ entregar los trabajos en tarjetas o en cinta al operador del computador, quien ıaagrupaba 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´ ıade modo tal que volviera al monitor al terminar el procesamiento y, en ese momento, elmonitor comenzaba a cargar autom´ticamente el siguiente programa. a Para obtener provecho del potencial de utilizaci´n de recursos, un lote de trabajos odebe ejecutarse autom´ticamente sin intervenci´n humana. Para este fin, deben pro- a oporcionarse algunos medios que instruyan al sistema operativo sobre c´mo debe tratar ocada trabajo individual. Estas intrucciones son suministradas generalmente por mediode ´rdenes del sistema operativo incorporadas al flujo de lotes. Las ´rdenes del sistema o ooperativo 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 comienzoy finalizaci´n de un trabajo, las ´rdenes para cargar y ejecutar programas y las ´rdenes o o oque anuncian necesidades de recursos tales como el tiempo esperado de ejecuci´n y los orequisitos de memoria. Estas ´rdenes se hallan incoporadas al flujo de los trabajos, junto oa 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 ode 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 sistemainform´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 ıade c´lculo y fases intensivas de operaciones de E/S. Esto queda indicado en la figura 1.1 adonde los periodos de c´lculo intensivo se indican mediante cuadros sombreados y las aoperaciones de E/S mediante zonas en blanco. El problema es que los dispositivos deE/S son muy lentos comparados con el procesador. El procesador gasta parte del tiempoejecutando hasta que encuentra una instrucci´n de E/S. Entonces debe esperar a que oconcluya la instrucci´n de E/S antes de continuar. o Esta ineficiencia no es necesaria. Se sabe que hay memoria suficiente para almacenarhttp://alqua.org/libredoc/SSOO 11
  21. 21. 1 Introducci´n a los Sistemas Operativos o Programa 1 Programa 2 ¦ ¦ ¦ ¨ ¨ ¨ § § § © © © ¦ ¦ ¦ ¨ ¨ ¨ § § § © © © ¦ ¦ ¦ ¨ ¨ ¨ § § § © © © P1 inactivo P1 inactivo P1 inactivo P2 inactivo P2 inactivo P2 inactivo (a) Ejecución secuencial Tiempo Programa 1 ! ! ! # # # ! ! ! # # # ! ! ! # # # Programa 2       ¢ ¢ ¢ ¤ ¤ ¤ ¡ ¡ ¡ £ £ £ ¥ ¥ ¥       ¢ ¢ ¢ ¤ ¤ ¤ ¡ ¡ ¡ £ £ £ ¥ ¥ ¥       ¢ ¢ ¢ ¤ ¤ ¤ ¡ ¡ ¡ £ £ £ ¥ ¥ ¥ P1 P2 P1 P2 P1 P2 Tiempo (b) Ejecución multiprogramada Figura 1.1: Ejecuci´n secuencial vs multiprogramaci´n o oen memoria el sistema operativo (monitor residente) y un programa usuario. Suponga-mos que hay espacio suficiente para almacenar el sistema operativo y dos programasde usuario. Ahora, cuando un trabajo necesite esperar por una operaci´n de E/S, el oprocesador puede cambiar a otro trabajo que est´ listo para ser ejecutado. Si amplia- emos la memoria para almacenar varios programas, podremos conmutar entre todos deforma que el procesador permanezca ocupado el mayor tiempo posible, evitando as´ el ıdesperdicio de tiempo que suponen las esperas hasta que se completen las operaciones deE/S. Este concepto es conocido como multiprogramaci´n o multitarea y es el punto ocentral de los sistemas operativos modernos. Como sugiere la figura 1.1 se pueden lograr ganancias significativas de rendimientointercalando la ejecuci´n de los programas, o, multiprigramando, que es como se le de- onomina a este modo de operaci´n. Con un solo procesador no es posible la ejecuci´n o oparalela de programas, y como m´ximo, s´lo un programa puede tener el control del a oprocesador en un instante determinado. El ejemplo presentado en la figura 1.1 (b) con-sigue un 100 % de utilizaci´n del procesador s´lo con dos programas activos. Aunque o oconveniente para ilustrar la idea b´sica en la multiprogramaci´n, no se deben esperar a oresultados tan espectaculares en programas reales, ya que las distribuciones de las fa-ses de computaci´n y E/S tienden a ser m´s variables. Para aumentar la utilizaci´n de o a orecursos, los sistemas de multiprogramaci´n reales permiten generalmente que m´s de o ados programas compitan por los recursos del sistema al mismo tiempo. El n´mero de uprogramas en competencia activa por los recursos de un sistema inform´tico se denomina agrado de multiprogramaci´n. En principio, mayores grados de multiprogramaci´n deben o odar lugar a una mayor utilizaci´n de recursos. o La multiprogramaci´n ha sido tradicionalmente empleada para aumentar la utilizaci´n o ode los recursos de un sistema inform´tico y para soportar m´ltiples usuarios simult´nea- a u amente activos.12 Sistemas Operativos - 0.5.0
  22. 22. 1.4 Evoluci´n hist´rica de los Sistemas Operativos o o1.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 ocircuitos, que permit´ fabricar chips con miles de transistores en un cent´ ıa ımetro cuadradode silicio, se inicio la era de la computadora personal. En t´rminos de arquitectura, las ecomputadoras 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 oson computadoras personales grandes. La amplia disponibilidad de poder de c´mputo condujo, junto con un nivel gr´fico o abastante adecuado, al crecimiento de la industria de producci´n de software para las ocomputadoras personales. Gran parte de este software ten´ adem´s, la ventaja de pre- ıa, asentar una gran amiganilidad con el usuario. Dos sistemas operativos han dominado la escena de las computadoras personales y lasestaciones de trabajo: MS-DOS de Microsoft y UNIX de ATT. MS-DOS tuvo un ampliouso en el IBM PC y otras m´quinas que incorporaban el microprocesador 8088 de Intel ao alguno de sus sucesores. UNIX, su contendiente principal, domin´ las computadoras oque 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 ede los 80 ha sido el crecimiento de las redes de computadoras personales con sistemasoperativos en red y sistemas operativos distribuidos. En un sistema operativo en red, losusuarios son conscientes de la existencia de varias computadoras y pueden conectarsecon m´quinas remotas. Cada m´quina ejecuta su propio sistema operativo local y tiene a asu propio usuario. Un sistema operativo distribuido, por el contrario, presenta al usuarioun conjunto de computadores independientes como si se tratara de un solo sistema. Enun sistema operativo distribuido los usuarios no deben ser conscientes del lugar dondesu programa va a ejecutarse o la ubicaci´n de los archivos a los que desea acceder, esas ocuestiones deben ser manejadas autom´ticamente y de forma eficiente por el sistema aoperativo.http://alqua.org/libredoc/SSOO 13
  23. 23. 1 Introducci´n a los Sistemas Operativos o14 Sistemas Operativos - 0.5.0
  24. 24. 2 Gesti´n de procesos o2.1. Procesos y tareasProceso 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 actividadconsiste en la creaci´n e iniciliazaci´n de estructuras de datos en el SO para monitorizar o oy controlar el progreso de proceso en cuesti´n. Una vez creado, el proceso pasar´ a estar o aactivo y competir´ por la utilizaci´n de recursos del sistema como el procesador y los a odispositivos I/O. Un proceso evoluciona c´ ıclicamente entre per´ıodos de ejecuci´n activa y de espera por ola terminaci´n de actividades de I/O. Cuando un proceso queda inactivo por especificar ouna operaci´n de I/O y quedar a la espera de que ´sta se complete, el SO puede planificar o ela 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 amicamente la evoluci´n de los procesos registrando la informaci´n correspondiente a sus o ocambios cuando ´stos se produzcan. Esta informaci´n es utilizada por el SO para sus e olabores de planificaci´n y gesti´n sobre el conjunto de procesos que en un determinado o omomento pueden coexistir en el sistema inform´tico. a De esta forma adem´s de la plantilla est´tica constituida por el programa ejecutable a aen que se basa, un proceso posee ciertos atributos que ayudan al SO en su gesti´n. oLos atributos de un proceso incluyen su estado actual, unidad de planificaci´n, derechos ode acceso, nivel de prioridad entre otros datos. Desde el punto de vista del usuario, unproceso no es m´s que la ejecuci´n de un conjunto de instrucciones que llevan a cabo una a odeterminada tarea, mientras que para el SO es una entidad que atraviesa din´micamente aun conjunto de estados y que solicita los recursos del sistema que le son necesarios. Deesta forma, el acceso a tales recursos debe ser planificado de forma que se consiga unrendimiento en la utilizaci´n de los mismos lo m´s ´ptimo posible. o a o2.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 ode 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 oSO o bien por el desarrollador de la aplicaci´n. En otras palabras, lo que constituir´ un o aproceso independiente puede provenir de: 15
  25. 25. 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 multitareapara multiplexar la ejecuci´n de una serie de programas y explotar los beneficios de ola concurrencia entre una serie de aplicaciones. La divisi´n expl´ o ıcita en tareas permitemejoras adicionales en el rendimiento al explotar la concurrencia inherente o propia deuna determinada aplicaci´n o programa. La divisi´n impl´ o o ıcita en tareas significa que losprocesos son definidos por el sistema, esta divisi´n aparece com´nmente en sistemas de o umultiprogramaci´n de prop´sito general tales como los sistemas de tiempo compartido. o oEn este enfoque cada programa remitido para su ejecuci´n es tratado por el SO como oun proceso independiente. El SO asignar´ valores iniciales a lo atributos del proceso tales como la prioridad de aplanificaci´n y los derechos de acceso en el momento de la creaci´n del proceso bas´ndose o o aen 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 ´ ovarios procesos relacionados con objeto de mejorar su rendimiento. La divisi´n expl´ o ıcitase utiliza en situaciones donde se desea elevar la eficiencia o controlar expl´ ıcitamente lasactividades 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 oprocesos de usuario y procesos de sistema. Un proceso de usuario es aquel creado por16 Sistemas Operativos - 0.5.0
  26. 26. 2.1 Procesos y tareasel SO como respuesta a una de ejecuci´n del usuario o de una aplicaci´n que ejecuta a o oinstancias de ´ste. e Un proceso de sistema es un proceso que forma parte del propio SO y que desempe˜a nalguna de sus labores caracter´ ısticas, como por ejemplo, la elecci´n del siguiente proceso oa ejecutar o bien la prestaci´n de un servicio determinado como el acceso a un recurso de oI/O del sistema. Cualquiera que sea la naturaleza de los procesos, ´stos pueden mantener efundamentalmente 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- orrentes compiten unos con otros por la asignaci´n de los recursos del sistema necesarios opara sus operaciones respectivas. Adem´s, una colecci´n de procesos relacionados que a orepresenten 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 detareas. Los procesos cooperativos intercambian datos y se˜ales de sincronizaci´n necesa- n orios para estructurar su progreso colectivo. Tanto la competici´n como la colaboraci´n o ode procesos requiere una cuidada asignaci´n y protecci´n de los recursos en t´rminos o o ede aislamiento de los diferentes espacios de direcciones. La cooperaci´n depende de la oexistencia de mecanismos para la utilizaci´n controlada de los datos compartidos y el ointercambio de se˜ales de sincronizaci´n. n o Los procesos cooperativos comparten t´ ıpicamente algunos recursos y atributos adem´s ade interactuar unos con otros. Por esta raz´n, con frecuencia se agrupan en lo que se odenomina una familia de procesos. Aunque dentro de una familia son posibles relacionescomplejas entre sus procesos miembro, la relaci´n m´s com´nmente soportada por los o a usistemas operativos es la relaci´n padre-hijo. Esta relaci´n se establece cuando el SO o ocrea un nuevo proceso a instancias de otro ya existente. Los procesos hijos heredangeneralmente los atributos de sus procesos padres en el momento de su creaci´n y tambi´n o epueden 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 aproceso. Los requisitos principales que debe cumplir un SO para con los procesos son lossiguientes: 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
  27. 27. 2 Gesti´n de procesos o2.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 alas estructuras de datos que se utilizan para gestionar y controlar el proceso y asignarel espacio de direcciones que va a utilizar dicho proceso. Estas acciones constituyen lacreaci´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 aproceso indique su terminaci´n. Un trabajo por lotes debe incluir una instrucci´n de o odetenci´n halt o una llamada expl´ o ıcita a un servicio del sistema operativo para indicarsu terminaci´n, mientras que en una aplicaci´n interactiva, ser´ la acci´n del usuario la o o a oque indique cu´ndo termine el proceso. a Todas estas acciones provocan al final una petici´n de servicio al SO para terminar el oproceso demandante. Adem´s, una serie de errores pueden llevarnos a la terminaci´n de a oun proceso. A continuaci´n se enumeran algunas de las condiciones m´s habituales de o aterminaci´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

×