CAPITULO 1 INTRODUCCION A LOS SISTEMAS...

23
1 CAPITULO 1. INTRODUCCION A LOS SISTEMAS OPERATIVOS 1. INTRODUCCION Una computadora sin el software es en esencia una masa metálica sin utilidad, con el software una computadora puede almacenar, procesar y recuperar información. El software para computadora puede clasificarse en general en dos clases: los programas de sistema que controlan las operaciones de la computadora y los programas de aplicación, los cuales resuelven problemas para los usuarios. El programa fundamental en todos los sistemas de computación es el Sistema Operativo. Un sistema de computación se puede dividir a grandes rasgos en cuatro componentes: - Hardware Proporciona los recursos de computación básicos ellos son: la CPU, la memoria y los dispositivos de E/S. - Los programas de sistema ( Sistema Operativo) Controla y coordina el uso del hardware entre los diversos programas de aplicación de los diferentes usuarios. - Los programas de aplicación definen la forma en que dichos recursos se utilizan para resolver los problemas de c omputación de los usuarios. Aquí están los compiladores, sistema de base de datos, juegos y programa de negocios. Es decir todos aquellos programas que son escritos por el usuario para resolver problemas particulares. - Los usuarios pueden ser personas, máquinas u otros computadores, ellos tratan de resolver diferentes problemas. Algunas definiciones de Sistema Operativo son: - “ Un sistema operativo se puede comparar con un gobierno. Los componentes de un sistema de computador son su hardware, software y datos. El sistema operativo nos da los medios para aprovechar adecuadamente estos recursos durante el funcionamiento del sistema del computador. Al igual que un gobierno el SO no desempeña ninguna función útil por si solo; lo que hace es crear un entorno dentro del que otros programas pueden hacer un trabajo útil.” - Un sistema operativo es el que controla todos los recursos de la computadora y proporciona una base sobre la cual puede escribirse los programas de aplicación. - “Un sistema operativo es un c onjunto de programas que ordenadamente relacionadas entre sí, contribuyen a que la computadora lleve correctamente su trabajo”. - Un sistema operativo es un conjunto de programas que controlan el funcionamiento de la computadora.

Transcript of CAPITULO 1 INTRODUCCION A LOS SISTEMAS...

1

CAPITULO 1.

INTRODUCCION A LOS SISTEMAS OPERATIVOS

1. INTRODUCCION

Una computadora sin el software es en esencia una masa metálica sin utilidad, con elsoftware una computadora puede almacenar, procesar y recuperar información.

El software para computadora puede clasificarse en general en dos clases: los programasde sistema que controlan las operaciones de la computadora y los programas deaplicación, los cuales resuelven problemas para los usuarios. El programa fundamentalen todos los sistemas de computación es el Sistema Operativo.

Un sistema de computación se puede dividir a grandes rasgos en cuatro componentes:

- Hardware Proporciona los recursos de computación básicos ellos son: la CPU,la memoria y los dispositivos de E/S.

- Los programas de sistema ( Sistema Operativo) Controla y coordina el uso delhardware entre los diversos programas de aplicación de los diferentes usuarios.

- Los programas de aplicación definen la forma en que dichos recursos se utilizanpara resolver los problemas de c omputación de los usuarios. Aquí están loscompiladores, sistema de base de datos, juegos y programa de negocios. Es decirtodos aquellos programas que son escritos por el usuario para resolver problemasparticulares.

- Los usuarios pueden ser personas, máquinas u otros computadores, ellos tratande resolver diferentes problemas.

Algunas definiciones de Sistema Operativo son:

- “ Un sistema operativo se puede comparar con un gobierno. Los componentes deun sistema de computador son su hardware, software y datos. El sistemaoperativo nos da los medios para aprovechar adecuadamente estos recursosdurante el funcionamiento del sistema del computador. Al igual que un gobiernoel SO no desempeña ninguna función útil por si solo; lo que hace es crear unentorno dentro del que otros programas pueden hacer un trabajo útil.”

- Un sistema operativo es el que controla todos los recursos de la computadora yproporciona una base sobre la cual puede escribirse los programas de aplicación.

- “Un sistema operativo es un c onjunto de programas que ordenadamenterelacionadas entre sí, contribuyen a que la computadora lleve correctamente sutrabajo”.

- Un sistema operativo es un conjunto de programas que controlan elfuncionamiento de la computadora.

2

2. HISTORIA DE LA EVOLUCION DE LOS SISTEMAS OPERATIVOS

La evolución de los sistemas operativos ha sido una consecuencia de los avancesproducidos en el hardware de las computadoras, desde las primeras que se construyeron,hasta la gran variedad de ellas que existen hoy en día ; por esta razón, hablaremos decuatro niveles de sistemas operativos.

La primera computadora digital real, diseñada por el matemático Ingles CharlesBabbage, no tenia sistema operativo.

El primer nivel, constituido por los sistemas operativos básicos, q ue surgieron en losaños cincuenta con las primeras computadoras, donde todo el trabajo consistía encontrolar y secuenciar la ejecución de los programas y sus datos, que en aquella épocaestaban sustentados en tarjetas perforadas. Apareció la denominada secuenciaautomática de trabajos consistente en intercalar entre las tarjetas de un programa y otro,una serie de tarjetas de control con instrucciones o comandos del lenguaje de controlde trabajos (JCL- Job Control Language). El programa que controlaba elsecuenciamiento de los trabajos se denominó monitor y constituyo el primer sistemaoperativo.

El segundo nivel estuvo en la década de los sesenta y su ayuda a la programación y ala gestión de los trabajos fue más decisiva, proporcionando nuevos métod os de trabajocon el fin de aumentar el rendimiento de utilización del procesador.

Una vez resuelto el problema de la automatización en la ejecución de los trabajos, aúnquedaba mucho tiempo en el que el procesador se encontraba ocioso, con la siguienteperdida económica. Esta situación se debía fundamentalmente a la diferencia develocidad entre el procesador y los dispositivos de entra / salida, cuyo funcionamientoera principalmente mecánico. Para minimizar el tiempo de espera surgieron métodoscomo el on-line y off-line que consisten en conectar directamente los dispositivoslentos a la computadora (on-line) o hacerlo a través de dispositivos más rápidos off -line.

Proceso On-line

Lectora de tarjetas Computadora Impresora

Proceso Off-line

Lectora de Unidades de Computadora Unidades de ImpresoraTarjetas cinta cinta

Con el tiempo aparecieron dispositivos de E/S más veloces que se utilizaron pararesolver el problema existente, aunque también aumento la velocidad y capacidad delproceso del procesador.

Aparecieron las cintas magnéticas, cuya velocidad era mayor que la de las lectoras detarjetas, pero el acceso para escribir directamente en ellas era complicado. Por ello, seimpuso una técnica consistente en perforar los programas en tarjetas, que eran leídas poruna lectora de tarjetas y grabadas en una cinta magnética directamente. Esta cinta sepasaba a la computadora en bloque para la ejecución de los programas, grabándose los

3

resultados en la nueva cinta. Por último, la cinta de resultados se volcaba sobre laimpresora. Las acciones de copiado de tarjetas a cinta y de cinta a impresora, al serlentas y separarse del control de la computadora, permitían a ésta realizar otros trabajosdistintos. Este tratamiento se conoce como Off -line.

Otras técnicas para mejorar el rendimiento que ha venido utilizando los sistemasoperativos de este nivel son las deno minadas buffering y spooling.

Buffering

En el caso anterior, el proceso de carga de la cinta a la computadora es relativamentelento con respecto a la velocidad interna de proceso; además se consume un tiempoadicional debido al protocolo o conversación que se establece entre el procesador y launidad de cinta.

Una forma de mejorar el tiempo que se pierde en los proceso de carga de las cintas esutilizar una memoria intermedia, también denominada buffer, donde la cinta vagrabando datos hasta que se lle na, volcándose éstos en la memoria de una vez, ymientras el procesador realiza operaciones con los datos recibidos, en paralelo se vuelvea cargar el buffer. A esta forma de trabajo se denomina buffering.

Spooling

Con la aparición de discos magnéticos c omo dispositivo de almacenamiento masivo deinformación con acceso directo desapareció el problema que representaban las cintasmagnéticas, ya que solo podían ser escritas después de ser leídas por completo,requiriendo además un tratamiento secuencial des de su principio hasta su final, mientrasque los discos pueden ser leídos y escritos simultáneamente y en cualquier punto de susuperficie.

La técnica de SPOOL (Simultaneous Peripheral Operation On -Line) permite que lasalida de un programa se escriba en un buffer y posteriormente sea llevada a un discomagnético en espera de poder ser enviada a una impresora o cualquier otro periférico desalida que en ese momento pueda estar ocupado. De esta forma el procesador puedeestar ejecutando un trabajo mientras se imprimen.

El tercer nivel de sistemas operativos apareció en la década de los setenta. Paramejorar aún mas el rendimiento en los sistemas informáticos se utiliza el concepto demultiprogramación consistente en la ejecución, en un mismo procesador, d e variosprogramas a la vez. Para ello existen modalidades de proceso por lote (batch), el tiempocompartido (sharing) y el tiempo real (real time) en el que, a través de políticas deasignación, se ejecutan varios programas intercalando la ejecución de su s instruccionesen el procesador.

El proceso batch consiste en ir solicitando la ejecución de procesos que no precisanconversión con le usuario (no conversacionales) y estas peticiones van situándose enuna cola, siendo el sistema operativo el que da ent rada a un conjunto de ellos para suejecución.

4

Los procesos actuales son en su mayoría interactivos o conversacionales y necesitan undeterminado dialogo con el usuario. Por ello aparece el tiempo compartido, consistenteen un conjunto de terminales que están continuamente solicitando atención delprocesador, siendo el sistema operativo quien va intercalando dicha atención entre losdistintos usuarios.

Por último, el tiempo real es la posibilidad que tienen determinados procesos en unsistema multiprogramado de obtener respuestas del procesador en un tiempo muypequeño. Ejemplo los sistema de reserva de vuelos.

El cuarto nivel es el constituido por las últimas innovaciones en los sistemasoperativos aparecidas todas aquellas a partir de la década de los ochenta. En primerlugar indicaremos que no se trata, en estos casos, de aumentar el rendimiento en lautilización del procesador, sino de aumentar la seguridad, la velocidad de proceso y lasprestaciones que pueden ofrecerse al usuario. Existen sist emas operativos que controlanlo que se denomina proceso distribuido, consistente en la conexión en paralelo devarias computadoras compartiendo memoria, buses y terminales con el fin de ganarseguridad en el servicio, debido a que el sistema operativo v a repartiendo el trabajosolicitado entre las distintas computadoras e incluso ante el fallo o caída de una de ellasno se interrumpe el servicio por parte del resto.

Para aumentar la velocidad de proceso, existe el multiproceso consistente encomputadoras que poseen mas de un procesador, con lo que el sistema operativocontrola el reparto de trabajo entre los distintos procesadores, aumentando el número deinstrucciones que la máquina puede ejecutar por unidad de tiempo.

ESTRUCTURA DE LOS SISTEMAS OP ERATIVOS

Para diseñar un sistema operativo lo primero que hay que decidir es su finalidad y eltipo de procesos que se quiere realizar a través de él (proceso por lotes, tiempocompartido, multiprocesos, etc.).

Para ello es preciso tener en cuenta las n ecesidades que pueden plantearse:

Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuadoal uso a que se le quiere destinar.

Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma deoperación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad.

La estructura de los sistemas operativos hace referencia a la parte interna de un sistemaoperativo. Existen diferentes estructuras de sistema operativo cuatro de estas estruc turashan sido probadas en la práctica, estos son:

Estructura monolítica Estructura Jerárquica (por Capas) Máquina virtual Modelo cliente-Servidor

5

1. Estructura Monolítica

Es la estructura de los primeros sistemas operativos constituidos fundamentalment e porun solo programa compuesto de un conjunto de rutinas o procedimientos, donde cadauno de los cuales puede llamar a los demás procedimientos, cada vez que así lorequiera. Cuando se usa esta técnica, cada procedimiento del sistema tiene una interfazbien definida en términos de parámetros y resultados y cada uno de ellos es libre dellamar a cualquier otro.

Por ejemplo en la figura. (1) Cuando el programa del usuario es atraído hacia el núcleo,el sistema operativo examina los parámetros de llamada p ara determinar cual de ellas(#de servicio) se desea realizar. (2) A continuación el sistema operativo analiza unatabla que contiene en la entrada k un apuntador al procedimiento que realiza la k -ésimallamada al sistema. (3) Esta operación identifica el procedimiento de servicio al cuál sellama. (4) Finalmente la llamada al sistema termina y el control regresa al programa delusuario.

Las características fundamentales de este tipo de estructura son:

- Construcción del programa final a base de módulos co mpilados separadamenteque se unen a través del editor de enlace.

- Buena definición de parámetros de enlace entre las distintas rutinas existentes.- Carecen de protecciones y privilegios.- Generalmente están hechos a medida, por lo que son eficientes y rápido s en su

ejecución y gestión.

2. Estructura jerárquica

A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron lossistemas, se hizo necesaria una mayor organización del software.

Se dividió el sistema operativo en pequeñas partes , de tal forma que cada una deellas estuviera perfectamente definida y con un claro interface con el resto de elementos.

Se constituyó una estructura jerárquica o de niveles en los sistemas operativos, elprimero de los cuales fue el denominado THE (Tech nische Hogeschool, Eindhoven), deDijkstra, que se utilizó con fines didácticos.

Nivel 5 - UsuarioNivel 4 - ArchivosNivel 3 - Entrada / salida

Nivel 2 - ComunicacionesNivel 1 - MemoriaNivel 0 - Gestión CPU

3. Maquina Virtual

La máquina virtual se trata de un tipo de sistemas operativos en el que son copiasexactas del hardware simple con su modo núcleo(kernel)/usuario, E/S, interrupciones ytodo lo demás que posee la máquina real.

6

Como cada máquina virtual es idéntica al hardware real, la máq uina virtual puedeejecutar cualquier sistema operativo, que se ejecuta en forma directa sobre el hardware.

Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto desistemas.

- La multiprogramación- La máquina extendida

4. Modelo cliente-servidor

El tipo más reciente de sistemas operativos es el denominado Cliente -Servidor, quepuede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas.

Este sistema sirve para todo; por tanto, es de propósito general y s e basa en lo mismoque el resto de sistemas operativos convencionales: el núcleo y los proceso,presentando grandes diferencias en cuanto a la forma de distribuir lo trabajos entre susdistintas partes.

Suele suministrar mecanismos adecuados para la gest ión de:

- Procesos- Memoria- Comunicación entre procesos.

El núcleo tiene como misión establecer o controlar la comunicación entre los clientes ylos servidores. Los procesos pueden ser tanto servidores como clientes. Por ejemplo, unprograma de aplicación normal es un cliente que llama al servidor correspondiente paraacceder a un archivo o realizar una operación de E/S sobre un dispositivo concreto. Asu vez, un proceso cliente puede actuar como servidor para otro.

7

CAPITULO 2

PROCESOS

1. INTRODUCCION

Actualmente las computadoras pueden realizar varias tareas al mismo tiempo. Es decir,mientras ejecuta el programa de un usuario, una computadora puede asimismo estarleyendo un disco e imprimiendo en una impresora.

En un sistema de multiprogramación, la un idad central de procesamiento (CPU) ejecutavarios procesos a la vez, ejecutando cada uno de los procesos en decenas o cientos demilisegundos (aunque realmente la CPU ejecuta en cierto instante un solo proceso).

En cualquier instante de tiempo la CPU e stá ejecutando solo un programa, por eso en elcurso de un segundo puede trabajar en varios programas, con lo que se da al usuario lailusión de paralelismo.

Algunas veces las personas hablan de pseudo paralelismo para referirse a estoscambios que la CPU realiza entre programas, a fin de compararlo con el verdaderoparalelismo del hardware de la operación de esta unidad mientras corren uno o másdispositivos de entrada o salida.

2. CONCEPTO

Uno de los conceptos más importantes que gira en torno a un sist ema operativo es el deproceso. Este concepto surgió por primera vez con la multiprogramación, donde sepuede ejecutar más de un programa simultáneamente con el fin de aprovechar almáximo los recursos de la computadora .

Un proceso es un programa en ejecución junto con el entorno asociado (registros,variables, etc.)

El corazón de un sistema operativo es el núcleo, un programa de control que reaccionaante cualquier interrupción de eventos externos y que da servicio a los procesos,creándolos, terminadolos y respondiendo a cualquier petición de servicio por parte delos mismos.

3. MODELO DE PROCESOS

En este modelo todo el software ejecutable inclusive el sistema operativo se organiza envarios procesos secuenciales.

En este modelo la CPU alterna los proces os; es decir el conjunto de procesos enejcución la CPU alterna entre un proceso y otro rápidamente, a esta forma de alternar sedenomina multiprogramación.

Por ejemplo, se tiene una computadora que multiprograma cuatro programas enmemoria, donde se van procesando, cada proceso tiene su propio flujo de control (es

8

decir su contador de programas) y se ejecuta en forma independiente (solo uno de ellosse encuentra en ejecución).

La diferencia entre un programa (conjunto de instrucciones) y un proceso (in struccionesejecutándose) es obvio, pero crucial para entender el funcionamiento de los sistemasoperativos. Hacemos hincapié en que un programa por si solo no es un proceso; unprograma es una entidad pasiva, como contenido de un archivo guardado en disc o,mientras que un proceso es una entidad activa, con el contador de programaespecificando la siguiente instrucción que se ejecutará y un conjunto de recursosasociados.

Estado de los procesos.

Los estados de los procesos son internos del sistema opera tivo y transparentes alusuario. Para éste, su proceso estará siempre en ejecución independientemente delestado en que se encuentre internamente en el sistema.

Un proceso puede tomar básicamente tres estados:

1. Ejecución. Estado en el que se encuentra un proceso cuando tiene el controldel procesador, es decir, utiliza la CPU en el instante dado.

2. Listo. Aquellos procesos que están dispuestos para ser ejecutados, pero noestán en ejecución por alguna causa (interrupción, haber entrado en laestando otro proceso en ejecución, etc.).

3. Bloqueado. Son los procesos que no pueden ejecutarse de momento pornecesitar algún recurso no disponible (generalmente recursos deentrada/salida).

4. COMUNICACIÓN ENTRE PROCESOS

Frecuentemente los procesos requieren una c omunicación entre ellos, por ejemplo: enun entubamiento donde la salida del primer proceso debe transferir al segundo, y este altercero y así sucesivamente. Existe la comunicación entre procesos de preferencia enuna forma estructurada sin utilizar inter rupciones.

4.1 Condiciones de competencia

La condición de competencia ocurre cuando dos o más procesos accesan a un recursocompartido sin control, de manera que el resultado combinado de este acceso dependedel orden de llegada.

En algunos sistemas operativos los procesos que trabajan juntos comparten confrecuencia un espacio común para almacenamiento, en el que cada uno puede leer oescribir dentro del espacio compartido; este puede encontrarse en la memoria principal oser un archivo compartido.

9

Las condiciones de competencia se manifiestan cuando dos o mas procesos leen oescriben en ciertos datos compartidos y el resultado final depende de quien ejecuta yen que momento. Por ejemplo cuando dos procesos desean tener aaceso a la memoriacompartida al mismo tiempo, el proceso B comienza a utilizar una de las variablescompartidas, antes que el proceso A termine con ella.

La clave para evitar problemas de condiciones de competencia y situacionesrelacionadas con la memoria compartida, archivo compart idos y cualquier otra cosacompartida, es determinar una forma de prohibir que más de algún proceso lea o escribaen los datos compartidos a la vez.

4.2. Sección Crítica

Se denomina sección critica a todas aquellas áreas compartidas, como memoriacompartida, archivos compartidos y cualquier otra cosa compartida, es decir, existesección crítica donde hay un recurso compartido.

4.3. Exclusión Mutua

Es un mecanismo que permite que una secuencia de instrucciones, donde participanvariables compartidos, sean ejecut ados por un solo proceso sin ser alterados por lasactividades de otros procesos. Dicho de otra manera, la exclusión mutua asegura de quesi un proceso está utilizando una variable o archivo compartido, es que los otrosprocesos no puedan hacer lo mismo.

Para tener una solución adecuada al problema de la Exclusión mutua se necesitan quecumplan cuatro condiciones:

1. Nunca dos procesos pueden encontrase simultáneamente dentro de sussecciones criticas.

2. No se hacen suposiciones acerca de las velocidades relati vas de los procesoso del número de CPU.

3. Ningún proceso suspendido fuera de la sección critica debe bloquear a otrosprocesos.

4. Nunca un proceso debe querer entrar en forma arbitraria en su seccióncritica.

Existen varios métodos para lograr la exclusión m utua, entre ellas tenemos:

5. PLANIFICACIÓN DEL PROCESADOR

El mecanismo más común que poseen los sistemas operativos actuales para realizar lagestión del procesador se conoce con el nombre de planificación, cuyo objetivoprincipal es el de dar un buen servicio a todos los procesos que existan en un momentodado en el sistema.

La planificación del procesador que es una parte del sistema operativo, es el que decideque proceso conviene ejecutar primero, es decir, se refiere a la manera de decidir cuántotiempo de ejecución y cuando se le asignan a cada proceso del sistema. Obviamente, siel sistema es monousuario y monotarea no hay mucho que decidir, pero en el resto delos sistemas esto es crucial para el buen funcionamiento del sistema.

10

5.1. Niveles de planificación

En los sistemas de planificación generalmente se identifican tres niveles: el alto, elmedio y el bajo.

El nivel alto decide que trabajos (conjunto de procesos) son candidatos a convertirseen procesos compitiendo por los recursos del si stema.

El nivel intermedio decide que procesos se suspenden o reanudan para lograr ciertasmetas de rendimiento.

El nivel bajo es el que decide que proceso, de los que ya están listos (y que en algúnmomento pasó por los otros dos planificadores) es al que le toca ahora estarejecutándose en la unidad central de procesamiento.

En adelante se revisaran principalmente los planificadores de bajo nivel porque son losque finalmente eligen al proceso en ejecución.

5.3. Objetivos de la planificaciónLas politicas de planificación intentan cubrir los siguientes objetivos:

Justicia o Imparcialidad Maximizar la Producción Minimizar el Tiempo de Respuesta .

Evitar el aplazamiento indefinido El sistema debe ser predecible .

5.4. Criterios de planificación

Los criterios que se deben tener en cuenta a la hora de elegir o diseñar un algoritmo deplanificación son los siguientes:

Tiempo de respuesta. Tiempo de servicio. Tiempo de ejecución. Tiempo de procesador. Tiempo de espera. Eficiencia. Rendimiento.

5.5 Medidas

Para estudiar el comportamiento de las distintas políticas de planificación, definiremosdos medidas relacionadas entre sí que nos indiquen como estamos tratando un procesoconcreto.Consideremos :

Tiempo de servicio (T): T = t f - ti

11

Tiempo de espera (E): E = T – t

t: El tiempo que un proceso P necesita estar en ejecución para llevar a cabo sutrabajo.

ti : Instante en que el usuario da la orden de ejecución del proceso.tf : Instante en que el proceso termina su ejecu ción.5.6 Políticas de planificación

Las politicas de planificación se agrupan en:

Planificación apropiativa

Planificación no apropiativa

5.7. ALGORITMOS DE PLANIFICACIÓN

5.7.1. Primero en llegar, primero en ser servido (FCFS)

En esta política de planificación FCFS (First Come, First Served), el procesador ejecutacada proceso hasta que termina; por tanto, los procesos que entran en cola de procesospreparados permanecerán encolados en el orden en que lleguen hasta que les toque suejecución. Este método se conoce también como “primero en entrar, primero en salir”(First Input, First Output - FIFO).

5.7.2. Round- Robin (RR)

Esta política, cuya traducción podría ser asignación cíclica o planificación en rueda , esuna mejora de la FCFS. Trata de ser más justa e n cuanto a la respuesta tanto de losprocesos cortos como de los largos.

5.7.3. El siguiente proceso, el más corto (SJN)

El método SJN (Shortest Job Next) es una política de planificación no apropiativa quetrata de cubrir los mismos objetivos que la RR.

Esta política toma de la cola de procesos preparados el que necesite menos tiempo deejecución para realizar su trabajo. Para ello debe saber el tiempo de procesador quenecesita cada proceso, lo cual es tarea nada fácil, pero posible a través de diversosmétodos como puede ser la información suministrada por el propio usuario o por elpropio programa.

5.7.4. Próximo proceso, el de tiempo restante más corto (SRT)

La política SRT (shortest Remaining Time) es una mezcla de los dos métodos anterioresy trata de obtener las ventajas de ambos. Para ello esta técnica cambia el proceso que

12

esta en ejecución cuando se ejcuta un proceso (paso del planificador de largo plazo al decorto plazo), Con una exigencia de tiempo de ejecución total menor que el que estáejecutando en el procesador. El valor del tiempo de respuesta medio de los procesoslargos mejora con respecto a SJN.

El tiempo de Espera E es bastante corto para la mayoria de los procesos. SRT consigueuna buena eficiencia, ya que logra que la lista de procesos prepa rados sea lo ma´s cortaposible.

5.7.5. Prioridad

En esta política se asocia a cada proceso una prioridad, de manera que el procesador seasigna al proceso de mayor prioridad.

Las prioridades pueden ser definidas interna o externamente. En el primer caso, elsistema operativo se basa en una serie de informaciones medibles para el cálculo yasignación de dichas prioridades (tiempo necesitado de procesa dor, necesidad dememoria, etc.

13

CAPITULO 3

ADMINISTRACIÓN DE ENTRADA/SALIDA

1. INTRODUCCIÓN

El control de las operaciones de entrada/salida (E/S) es otra de las misiones que debe realizar un sistemaoperativo para facilitar el uso de los distintos dispositivos que forman parte de un sistema informático.

En primer lugar, analizaremos algunos de los principios de l hardware y después delsoftware de E/S en general.

2. PRINCIPIO DEL HARDWARE DE E/S

Distintas personas analizan de varias maneras de Hardware de E/S. Los ingenieros electricistas loconciben en términos de chips, cables, fuentes de poder, motores y demás componentes físicos queconforman el hardware. Los programadores observan la interfaz que se presenta al software (loscomandos que el hardware acepta, las funciones que lleva a cabo y los errores que se pueden informar).En este caso, nos concierne la pr ogramación de los dispositivos de E/S no el diseño, construcción omantenimiento de ellos; así nuestro interés estará restringido a la forma de programar el hardware y no asu funcionamiento interno. Sin embargo es frecuente que la programación de muchos d ispositivos de E/Seste íntimamente ligada con su operación interna.

Dispositivos de E/S

Los dispositivos hardware de la computadora cuya misión es la de intercambiar datos con el procesador yla memoria principal en un sentido, en otro o en ambos, común mente denominados periféricos, no sonfáciles ni cómodos de utilizar directamente por los procesos. Por otro lado, los procesos no necesitanconocer las peculiaridades ni características de dichos dispositivos, sino únicamente intercambiar datoscon ellos. Por tanto, estos detalles deben ser ocultados para que de este modo las operaciones de E/S seanindependientes del tipo o modelo del dispositivo.

A lo largo de la historia de las computadoras se han desarrollado muchos tipos dedispositivos que podemos reunir en tres grandes grupos:

Dispositivos de almacenamiento , entre estos podemos nombrar a algunoscomo ser los discos, cintas magnéticas, tambores magnéticos y otros.

Los Discos son los dispositivos para almacenamiento secundario más comunes. Acepta n y recuperan datos a alta velocidad.Los datos son transferidos entre el disco y la memoria en bloques. Los discos pueden ser fijos y removibles. Los primeros no sepueden cambiar, mientras que los segundos pueden ser intercambiados, con lo que se consi gue un mayor volumen dealmacenamiento.

Terminales, se denominan al conjunto formado por un teclado y unapantalla conectados a la computadora para introducir datos a través delprimero y recibirlos a través de la segunda.

Comunicaciones, las líneas de comunicación son dispositivos cuya misiónes la de conectar entre sí computadoras y éstas con sus terminales cuando ladistancia es grande. Suelen llevar consigo elementos:

14

- Físicos, como pude ser la propia línea, y los adaptadores a la líneadenominados módem.

- Lógicos como pueden ser el protocolo de comunicación y elmétodo de control y detección de errores que se utilice.

A su vez, los dispositivos se pueden clasificar, atendiendo al tipo de información quemanejan y cómo lo hacen, en los siguientes grupos :

Dispositivos de bloque. Es aquel que almacena la información en bloques detamaño fijo, cada uno con su propia dirección. Los tamaños comunes de los bloquesvan desde 128 bytes hasta 1024 bytes. Su característica principal es que se puedeleer o escribir en un bloque de forma independiente de los demás (por ejemplo losdiscos).

Dispositivos de carácter. Son dispositivos que envían o reciben un flujo o cadenade caracteres, sin sujetarse a una estructura de bloques, es decir, a ninguna estructuraprefijada. No se puede utilizar direcciones ni pueden realizar operaciones debúsqueda. Como ejemplo de estos dispositivos son las terminales, impresoras delínea, tarjetas perforadas, interfaces de una red, ratones y muchos otros dispositivosno parecidos a los discos son dispositivos de carácter.

Este esquema de clasificación no es perfecto. Algunos dispositivos no se ajustan a él.Por ejemplo, los relojes no tienen direcciones por medio de bloques tampoco generan oaceptan flujos de caracteres. Lo único que h acen es provocar interrupciones a intervalosbien definidos.

3. INTERFAZ PROCESADOR – PERIFERICO

( Interfaz. Elemento compartido entre dos partes para que interactuen o se comuniquen entre sí. Sepueden considerar como las reglas existentes para estable cer dicha comunicación.)

La velocidad y la complejidad de los periféricos determinan cómo deben ser conectados al procesador.

Estudiaremos tres tipos de conexión:

3.1. Registros

Los dispositivos se pueden conectar al procesador por los registros de los dispo sitivos que pueden ser

accedidos directamente en una zona determinada de la memoria o, indirectamente, por medio de

instrucciones hardware que devuelven el estado del mismo.

Estos registros tienen cuatro misiones:- Transferir el estado del dispositivo (stat us).- Transferir instrucciones al dispositivo.- Transferir datos desde el dispositivo.- Transferir datos al dispositivo.

15

Ahora bien, el procesador sólo puede dar comienzo a las operaciones de E/S sin podercontrolar su terminación, pero para ver cuándo se ha completado una operación sepueden emplear dos métodos:

Polling. Consiste en leer constantemente el registro de status del dispositivo. Tieneel inconveniente de ocupar el procesador un tiempo no deseado.

Interrupciones. El procesador continúa con otros trabajos y sólo cuando eldispositivo concluye la operación llama la atención del procesador,interrumpiéndole para que trate dicha situación y realice las acciones que considerenecesarias, es decir, sirva la interrupción.

3.2. Controladores

Los dispositivos complejos (discos…) no se conectan directamente al procesador, sino que lo hacen a

través de un controlador que contiene el estado del dispositivo (status), controla el mismo y chequea los

datos transferidos.

El controlador es el que acepta las órdenes del procesador y se comunica con él a travésde registros como se tratara de un dispositivo.

El controlador, también llamado unidad de control, puede manejar varios dispositivosdel mismo tipo.

3.3. Canales

Normalmente los controladores se conectan al proce sador a través de un canal oprocesador de E/S (IOP_ Input Output Porocessor). El propósito de un canal esconseguir que los dispositivos sean tratados como virtuales o transparentes.

Los canales son manejados por comandos y cuando terminan la operación d evuelven elstatus correspondiente e interrumpen al procesador.

Los canales pueden ser de varios tipos:- Selectores. Pueden manejar varios dispositivos, pero sólo pueden transferir datos deuno en uno.- Multiplexores. Manejan varios dispositivos y pue den y transferir datossimultáneamente.

(Canal es el medio Físico para la transferencia de información)

4. SOFTWARE DE CONTROL DE E/S (DRIVER)

Se define driver como “el software formado por un conjunto de rutinas y tablas que, formando parte delnúcleo del sistema operativo, ejecutan y controlan todas las operaciones de E/S sobre cualquier periféricoconectado a la computadora, siendo particulares para cada dispositivo”.

16

Un driver no es un proceso o tarea independiente gestionado por el sistema operativ o, sino un conjunto detablas en las que aloja la información que caracteriza a cada periférico conectado a la computadora, y unaserie de rutinas que controlan toda la gestión de los mismos y las informaciones que fluyen en un sentidoen otro. Se encuentran permanentemente alojados en memoria principal y requieren una elevada rapidezde ejecución sin formar parte del proceso de usuario que los utilice.

Proceso de usuario

Sent. Primitivas de E/S

DRIVER

Periférico

El tratamiento por el núcleo de un sistema operativo de toda la información de E/Sdesde, o a un periférico, se puede dividir en dos niveles para su estudio:

Tratamiento independiente del periférico

Esta formado por el conjunto de rutinas que procesan información sin atender a lascaracterísticas propias del periférico.

Las funciones básicas del software independiente del dispositivo es llevar a cabo lasfunciones de E/S comunes a todos los dispositivos, además de proporcionar una interfazuniforme del software a nivel de usuario.

Tratamiento dependiente del periférico

Es el conjunto de rutinas que el núcleo del sistema operativo ofrece para controlar elpropio dispositivo periférico.

El proceso de gestión de operaciones de E/S se encuent ra representado por la siguientefigura:

Proceso de usuario

Software independiente delos dispositivos

Despachador de E/S

Manejador deinterrupcionesHARDWARE

17

4.1. Funciones de un driver

Entre las funciones que realiza un dr iver podemos citar las siguientes:

Definir las características del periférico al resto del sistema operativo Inicializar los registros asociados al periférico en el momento del arranque del

sistema operativo. Habilitar o deshabilitar el dispositivo para un proceso. Procesar todas las operaciones de E/S solicitadas por un proceso. Cancelar toda la operación de E/S en el momento que sea necesario por cualquier

motivo. Procesar todas las interrupciones hardware generadas por el propio periférico. Tratar los errores y estado del dispositivo haciendo la correspondiente

comunicación al usuario.

4.2. Rutinas de un driver

Son los puntos de entrada al driver y pueden ser llamadas directamente por elnúcleo del sistema operativo o por una interrupción hardware del dispo sitivoperiférico. En general, en un driver podemos encontrar las siguientes rutinas:

Inicialización. Es llamada por el núcleo del sistema operativo en la inicializacióndel sistema la rutina se encarga de inicializar el dispositivo incluyendo lainformación correspondiente en los registros de estado y operación del mismo.

Atención de peticiones de E/S. Esta rutina atiende todas las peticiones de losprocesos de usuario para realizar operaciones de E/S.

Gestión de interrupciones. Es la rutina que maneja todas las interrupciones deldispositivo. Toma el control cuando el dispositivo periférico origina unainterrupción en el procesador.

Cancelación de operaciones de E/S. Es una rutina que da por finalizadas lasoperaciones de E/S sobre el dispositivo cuan do se produzca alguna circunstanciaque le obligue a ello.

Otras. Existen otras rutinas menos importantes, como puede ser: el time-out quecontrola el tiempo de proceso de la operación y el Power –fail que actúa en elarranque y reanudarse el proceso desp ués de un corte de alimentación del sistema.

4.3. Estructura de datos de un driver

Las rutinas de un driver para dar un correcto servicio a las peticiones de E/S necesitan para cada

dispositivo una serie de datos que se encuentran en estructura de datos en fo rma de tabla. Las cuales son

similares a los siguientes:

18

Bloque de control del driver (BCD)

Es la representación del driver desde el punto de vista del sistema operativo. Contiene aquellos

parámetros que son susceptibles de ser variados dinámicamente y a quellos que definen el tipo de

dispositivo que puede ser atendido por el driver. Los datos que suelen contener son:

Dirección del siguiente BCD. Nombre del driver. Dirección del comienzo de los bloques de control de unidades (BCU) que controle el driver. Número de unidades a servir. Dirección de comienzo de la rutina de inicialización del driver. Estado del driver (On/Off line…) Dirección de comienzo de la cola de bloques de E/S (BES). Dirección del BES que esta siendo servido. Variables particulares del driver.

Bloque de control de la unidad (BCU)

Cada dispositivo físico se relaciona desde el punto de vista del sistema operativo como una unidad dentro

del tipo al que le corresponda y es definido e identificado por el sistema operativo por medio de su B CU.

Dirección del siguiente BCU del driver. Numero de unidad Estado de la unidad. Numero del vector de interrupción asociado. Dirección de la rutina de gestión de la interrupción. Dirección del puerto de E/S. Dirección del BCD al que pertenece. Dirección del PBC del proceso que tiene reservada esta unidad. Dirección del comienzo de la cola de bloques de E/S (BES). Dirección del BES que esta siendo servido. Características de la unidad.

Paquete de petición de E/S (PES)

Cuando un proceso de usuario intent a hacer una operación de E/S, el sistema operativocrea un paquete asociado a dicho proceso y a dicha petición para ser tratado por eldriver. Este paquete se coloca en una cola prioritaria para ser atendido por el driver alque va dirigido. Los datos que normalmente contiene son:

Dirección del siguiente PES en la cola. Prioridad de la petición de E/S. Proceso que ha lanzado la petición. Dirección donde devolver el resultado de la petición.

19

Función a realizar (entrada o salida) Identificador del dispositivo. Identificador de la unidad. Dirección de la lista de parámetros de entrada de la llamada al sistema operativo.

5. INTERRUPCIONES VECTORIZADAS

Los sistemas operativos realizan diversidad de operaciones y están preparados paraaceptar interrupciones que p rovienen de los dispositivos periféricos. Para poderreconocer qué dispositivo ha sido el causante de una interrupción y poder darle eltratamiento adecuado, el sistema operativo destina parte de su memoria (la más baja)para almacenar las direcciones de l os ya mencionados manejadores de interrupcionesasociados a cada dispositivo. Cada palabra almacenada que contiene la dirección de unmanejador de interrupción se conoce con el nombre de vector de interrupciones .

Por tanto, el vector de interrupción es un número que nos indica la palabra que contienela dirección de una rutina que debe tratar una interrupción.

20

CAPITULO 5ADMINISTRACIÓN DE ARCHIVOS

1. INTRODUCCIÓN

La parte más visible de un sistema operativo es el sistema de archivo. La mayoría de losprogramas leen o escriben cuando menos un archivo y los usuarios siempre tienen conocimientode la existencia de archivos y sus propiedades. Para muchas personas, la comodidad y la utilidaddel sistema operativo dependen principalmente de la interfaz, estruc tura y contabilidad delsistema de archivos.

El sistema de archivos consta de dos partes distintas: una colección de archivos, cada uno de loscuales contiene datos relacionados, y una estructura de directorios , que organiza todos losarchivos del sistema y proporciona información sobre ellos.

En este capítulo consideraremos los diversos aspectos de los archivos y las distintas estructurasde directorios. También describiremos formas de manejar la protección de los archivos, que esnecesaria en un entorno en el que múltiples usuarios tienen acceso a los archivos.

2. ARCHIVOS

2.1. Definiciones de Archivos

Es una colección de datos Es un conjunto de datos relacionados lógicamente Es una colección de información relacionada

Los computadores pueden guardar informa ción en varios medios de almacenamientodistintos, Como discos magnéticos, cintas magnéticas y discos ópticos. Con objeto defacilitar el uso del sistema de computación, el sistema operativo proporciona una vistalógica uniforma del almacenamiento de infor mación. El sistema operativo abstrae de laestructura física para crear una estructura lógica: el archivo. Es a través del sistemaoperativo que los archivos se almacenan en dispositivos físicos, y por lo tanto, unsubsistema de el se encarga de la adminis tración.

2.2. Atributos de los Archivos

Un archivo tiene un nombre, para comodidad de sus usuarios, y usamos ese nombrepara hacer referencia al archivo. El nombre suele ser una cadena de caracteres, como“ejemplo.c”. Algunos sistemas distinguen entre las let ras mayúsculas y minúsculas enlos nombres, mientras que en otros las consideran equivalentes.

Un archivo tiene otros atributos que varían de un sistema operativo a otro, pero quegeneralmente son: Nombre: El nombre simbólico del archivo es la única infor mación que se mantiene

en forma comprensible para seres humanos. Tipo: Esta información se necesita en sistemas que reconocen distintos tipos. Ubicación: Esta información es un puntero a un dispositivo y la posición del

archivo en ese dispositivo.

21

Tamaño: Este atributo incluye el tamaño actual del archivo y tal vez el tamañomáximo permitido.

Protección: La información de control de acceso determina quién puede leer,escribir, ejecutar, etc., el archivo.

Hora, fecha e identificación del usuario : Esta información podría mantenerse parala creación, la ultima modificación y el último uso. Estos datos pueden ser útilespara protección, seguridad y control de su uso.

2.3. Tipos de Archivos

Los archivos representan datos y programas. Los archivos de datos pueden sernuméricos, alfabéticos, binarios. Un archivo es una secuencia de bits, bytes, líneas,registros, de acuerdo a lo que necesita el usuario creador de ese archivo.

Existe, entonces, diferentes tipos de archivo:

Text file:Source file:Object fileExecutable file:

2.4. Subsistema de archivos

El subsistema de archivos o sistema de gestión de archivos es el sistema de software queproporciona a los usuarios y aplicaciones los servicios relativos al uso de archivos.

Sus objetivos son:

Cumplir con la gestión de datos y solicitudes del usuario. Garantizar la integridad del contenido de los archivos Dar soporte de E/S para los distintos dispositivos Brindar un conjunto de rutinas standard de interfaces de E/s. Optimizar el rendimiento tanto a nivel de productivid ad como de tiempo de

respuesta.

METODOS DE ACCESO

Una vez creado un archivo estando su información almacenada en el soportecorrespondiente, se quiere utilizar su información, para esto, independientemente decómo haya sido almacenada la información en e l soporte físico, se podrá acceder a ellasegún un esquema lógico secuencial, directo o bien casi directo. El subsistema dearchivos del sistema operativo define que formas de acceso lógico permite y quemétodos de acceso soporta.

Un método de acceso es un conjunto de rutinas y tablas que posibilitan acceder a lainformación de los archivos según un esquema lógico determinado.

Algunos sistemas ofrecen un solo método de acceso a sus usuarios. Otros, por elcontrario, permiten utilizar varios y será el usu ario el que decida cual usar.

22

Acceso secuencial

El método de acceso más sencillo es el acceso secuencial. La información del archivo seprocesa en orden, del primero al último y de uno en uno. El efecto es como si el archivo,para el usuario, estuviera organizado por registros consecutivos que solo permiten llegara uno cualquiera de ellos pasando previamente por los anteriores.

Las rutinas del método de acceso secuencial mantendrán un apuntador al siguiente registro lógico a

acceder. Una operación de lectura o escritura, lee o escribe el registro y avanza el apuntador al siguiente.

Es un método muy utilizado por su simplicidad, especialmente en archivos con pocainformación.

Acceso directo

Este método permite el acceso directo a cualquier parte del a rchivo, es decir, no es necesario pasar por lainformación anterior para acceder a un determinado registro.

Solo puede existir este tipo de acceso en aquellos soportes que por su naturaleza lo permitan. Es el casode los discos, mientras las cintas no pued en tener este tipo de acceso.

Un archivo se compone de registros lógicos de longitud fija que permiten a losprogramas leer y escribir registros rápidamente sin ningún orden específico. El métodode acceso directo de los archivos se basa en el modelo de discos, ya que estos permitenel acceso aleatorio a cualquier bloque de archivo.

Para este método, el archivo se visualiza como una secuencia numerada de bloques oregistros. Un archivo de acceso directo permite leer o escribir bloques arbitrarios. Así,podríamos leer el bloque 14, luego el 53 y luego escribir el bloque 7. No hayrestricciones sobre el orden de lectura o escritura de un archivo.

Los archivos de acceso directo son muy útiles para obtener acceso inmediato a grandescantidades de información. Las bases de datos suelen ser de este tipo.

Acceso directo indexado

En este caso se construye un índice o tabla de las relaciones entre las claves y susbloques físicos para cada archivo.

La localización de un registro se realizara accediendo primer o a ese índice y con ladirección del bloque correspondiente a la clave solicitada, se alcanzará el bloqueadecuado.Para archivos grandes se puede utilizar un índice maestro o índice de índices. Elmaestro apunta al índice secundario que contiene la clave y este directamente al bloquefísico. Estos índices se crearan durante la carga del archivo.

23

DIRECTORIOS

Son a su vez archivos de estructura especial, cuyos registros contienen la descripciónde los archivos existentes en el sistema. Mediante estos directorios, el subsistema podrálocalizar rápidamente un archivo solicitado y conocer sus características (organización,tamaño, fecha, etc.)Desde el punto de vista lógico, un directorio es una tabla de símbolos que refleja losarchivos existentes.

Cada sistema organiza esta información a su manera: algunos construyen una cabecera(header del archivo) y la separan del directorio, quedando información primaria en eldirectorio para localización del archivo y el resto en el header. Otros estructuran eldirectorio como una simple lista, con una entrada por archivo, como si fuera un archivosecuencial donde el nombre de cada archivo es la clave.

La estructura de dicha tabla podrá ser más o menos compleja dependiendo de losdistintos sistemas operativos, pero en cualquier caso deberán permitir la realización delas siguientes operaciones básicas: