Sistemas Operativos Generalidades

8
SISTEMAS OPERATIVOS GENERALIDADES Esquema de Sistemas Operativos Funciones del SO Proveer una máquina virtual, es decir, un ambiente en el cual el usuario pueda ejecutar programas de manera conveniente, protegiéndolo de los detalles y c omplejidades del hardware. Administrar eficientemente los recursos del computador. El SO como Máquina Virtual Un computador se compone de uno o más procesadores o CPUs, memoria principal o RAM, memoria secundaria (discos), t arjetas de expansión (tarjetas de red, módems y otros), monitor, teclado, mouse y otros dispositivos. Escribir programas que hagan uso correcto de todos estos componentes no es una tarea trivial (peor aún si se habla del uso óptimo) Si cada programador tuviera que preocuparse, por ejemplo, de cómo funciona el disco duro del computador, teniendo además siempre presentes todas las posibles cosas que podrían fallar, entonces a la fecha se habría escrito una cantidad bastante reducida de programas. Es mucho más fácil decir “escriba lo apuntado por este puntero al final del archivo datos”, que decir:

Transcript of Sistemas Operativos Generalidades

5/17/2018 Sistemas Operativos Generalidades - slidepdf.com

http://slidepdf.com/reader/full/sistemas-operativos-generalidades 1/8

 

SISTEMAS OPERATIVOS

GENERALIDADES

Esquema de Sistemas Operativos

Funciones del SO

Proveer una máquina virtual, es decir, un ambiente en el cual elusuario pueda ejecutar programas de manera conveniente,

protegiéndolo de los detalles y complejidades del hardware.

Administrar eficientemente los recursos del computador.

El SO como Máquina Virtual

Un computador se compone de uno o más procesadores o CPUs,

memoria principal o RAM, memoria secundaria (discos), tarjetas de

expansión (tarjetas de red, módems y otros), monitor, teclado, mouse

y otros dispositivos.

Escribir programas que hagan uso correcto de todos estos

componentes no es una tarea trivial (peor aún si se habla del uso

óptimo)

Si cada programador tuviera que preocuparse, por ejemplo, de cómo

funciona el disco duro del computador, teniendo además siempre

presentes todas las posibles cosas que podrían fallar, entonces a la

fecha se habría escrito una cantidad bastante reducida de programas.

Es mucho más fácil decir “escriba lo apuntado por este puntero al final

del archivo datos”, que decir:

5/17/2018 Sistemas Operativos Generalidades - slidepdf.com

http://slidepdf.com/reader/full/sistemas-operativos-generalidades 2/8

 

Poner en determinados registros del controlador de disco la dirección

que se quiere escribir, el número de bytes que se desea escribir, la

posición de memoria donde está la información a escribir, el sentido de

la operación (lectura o escritura), amén de otros parámetros;

Decir al controlador que efectué la operación;

Esperar. Decidir qué hacer si el controlador se demora más de lo

esperado (¿cuánto es "lo esperado"?);

Interpretar el resultado de la operación (una serie de bits);

Reintentar si algo anduvo mal, etc.

Además, habría que rescribir el programa si se instala un disco

diferente o se desea ejecutar el programa en otra máquina.

Hace muchos años que quedó claro que era necesario encontrar algún

medio para aislar a los programadores de las complejidades del

hardware. Esa es precisamente una de las tareas del sistema

operativo, que puede ser visto como una capa de software que maneja

todas las partes del sistema y hace de intermediario entre el hardware

y los programas del usuario.

De esta manera, el sistema operativo presenta una interfaz o máquina

virtual que es más fácil de entender y de programar que la máquina

"pura". Además, para una misma familia de máquinas, aunque tengan

componentes diferentes (por ejemplo, monitores de distinta resolución

o discos duros de diversos fabricantes), la máquina virtual puede ser

idéntica: el programador ve exactamente la misma interfaz.

El SO como Admin de Recursos

La otra tarea del sistema operativo consiste en administrar los recursos

del computador cuando hay dos o más programas que se ejecutan

simultáneamente y además requieren usar el mismo recurso (como

tiempo de CPU, memoria o impresora).

Principales tareas del SO

Administración de memoria

Administración de CPU

Manejo de dispositivos de E/S

Administración de archivos en disco

Comunicación con el usuario

Administración de memoria

5/17/2018 Sistemas Operativos Generalidades - slidepdf.com

http://slidepdf.com/reader/full/sistemas-operativos-generalidades 3/8

 

Mantiene el estado de los programas y datos residentes en memoria,

esperando el uso de la CPU, algún dispositivo de E/S o la utilización de

algún otro recurso.

Contiene tablas de asignación de direcciones que indican qué

programas y datos están en memoria, cuanto espacio ocupan en formaindependiente y dónde están ubicados.

Asigna o quita espacio en memoria a programas según sea posible o

requerido.

Administración de CPU

Decide qué programa hace uso del recurso de la unidad central de

procesamiento, en que momento y por cuánto tiempo.

Crea una lista de espera con los programas que están solicitandoutilizar este recurso a fin de poder asignar posteriormente el recurso

bajo alguna política de prioridad.

Manejo de dispositivos de E/S

Controla el flujo de datos desde y hacia cualquier dispositivo de

entrada y salida.

Controla la comunicación con los dispositivos de E/S y para dispositivos

particulares existen programas especiales de control de periféricos

(drivers).

Administración de archivos en disco

Crea, elimina, copia y controla el acceso a los archivos. Mantiene

directorios de los archivos existentes en el disco y administra el

espacio libre.

Comunicación con el usuario

Permite que el operador controle el computador.

Indica y, si es posible, controla los errores ocurridos en el sistema. Por

ejemplo el término anormal de alguna aplicación debido a fallas de la

aplicación misma o problemas de hardware.

Indica el número de usuarios que están utilizando el sistema

computacional.

Permite la utilización de dispositivos generales o particulares; cuando

no se encuentran disponibles envía un correspondiente mensaje de

información al usuario o la aplicación que lo solicita.

Resumen Historico

5/17/2018 Sistemas Operativos Generalidades - slidepdf.com

http://slidepdf.com/reader/full/sistemas-operativos-generalidades 4/8

 

Sistemas De Procesamiento Por Lotes (Batch)

Un sistema operativo por lotes lee un flujo separado de datos, cada

uno con banderas de control que definen qué hace cada trabajo.

Cuando éste termina, generalmente se imprime el resultado a través

de algún dispositivo de salida. La característica que delata un sistema

por lotes en forma definitiva es la ausencia de interconexión entre el

usuario y el trabajo mientras se ejecuta.

Los sistemas por lotes se caracterizan por ser secuenciales y por el

hecho de que la CPU tiene el control total de la ejecución del proceso.

Estos sistemas son muy útiles cuando se trata de la realización de

procesos masivos; sin embargo, el tiempo de proceso es alto y la CPU

pasa la mayor parte de ese tiempo ociosa, debido a la considerable

lentitud de los procesos de carga y descarga de paquetes de

información (antiguamente tarjetas). Los sistemas por lotes se pueden

clasificar en monoprogramables y multiprogramables.

SERVICIOS DE LOS SISTEMAS OPERATIVOS

Monoprogramación

◦ Se atiende un trabajo a la vez. Cuando el programa entra en

proceso se apodera de la CPU y de los dispositivos de E/S, hasta

que termina. La monoprogramación es el modo de trabajo en el

que solamente un programa utiliza el procesador, siendo

además el único existente en la memoria principal, de tal forma

que hasta que éste no termine su trabajo no cederá el control al

siguiente programa que será cargado en memoria, sustituyendo

al anterior.

5/17/2018 Sistemas Operativos Generalidades - slidepdf.com

http://slidepdf.com/reader/full/sistemas-operativos-generalidades 5/8

 

Los sistemas monoprogramables lineales son la expresión más simple

del sistema operativo y se caracterizan por tener una cola de atención

sin prioridades y un proceso no termina hasta haber completado su

ejecución

Los sistemas monoprogramables con prioridades se caracterizan por

tener una cola de atención con prioridades y un proceso no termina

hasta haber completado su ejecución.

5/17/2018 Sistemas Operativos Generalidades - slidepdf.com

http://slidepdf.com/reader/full/sistemas-operativos-generalidades 6/8

 

Los sistemas monoprogramables con prioridades y tiempo de salida secaracterizan por tener una cola de atención con prioridades y un

proceso puede terminar al haber completado su ejecución o después

de haber transcurrido un intervalo de tiempo de atención prefijado. En

el último caso es devuelto a la cola de atención.

SERVICIOS DE LOS SISTEMAS OPERATIVOS

Multiprogramación

◦ En un procesamiento por lotes puede ocurrir que en cierto

instante ocupe la CPU un proceso que demande una tarea deimpresión; así, él seguirá ocupando la CPU mientras espera que

el proceso de impresión termine, dejando la CPU ociosa. La

multiprogramación aumenta la utilización de la CPU organizando

los trabajos de manera que ésta siempre tenga algo que

ejecutar.

El sistema operativo escoge uno de los trabajos del depósito y lo

comienza a ejecutar. En algún momento, el trabajo tendrá que esperar

que se efectúe cierta tarea como montar una cinta, que se introduzca

un mandato mediante el teclado, o que termine una operación de E/S.En un sistema no multiprogramado, la CPU estaría inactiva. En un

sistema multiprogramado, el sistema operativo cambia a otro trabajo y

lo ejecuta; cuando ese trabajo tiene que esperar, la CPU cambia a otro,

y así sucesivamente.

Además, si al mismo tiempo existen varios programas listos para

ejecutarse, el sistema debe elegir uno de ellos. Esta decisión se

denomina planificación de la CPU.

Por otra parte, existen dos formas habituales de organizar la diferencia

de velocidades de ejecución entre la CPU y los dispositivos: Polling eInterrupciones.

5/17/2018 Sistemas Operativos Generalidades - slidepdf.com

http://slidepdf.com/reader/full/sistemas-operativos-generalidades 7/8

 

El polling consiste en que la CPU está constantemente preguntando a

cada periférico si tiene algo que hacer.

Las interrupciones permiten que la CPU se concentre en la atención de

 procesos; luego, cuando un dispositivo requiere de la atención de la

CPU, le enviará una solicitud de interrupción. Es decir es el procedimiento inverso al polling.

Tiempo Compartido

El tiempo compartido (o sistemas en línea) es una extensión lógica de

la multiprogramación. La CPU ejecuta las diversas tareas alternando

entre ellas, pero estos cambios son tan frecuentes que los usuarios

pueden interactuar con cada programa mientras se ejecuta. Un

sistema operativo de tiempo compartido permite a los diversos

usuarios compartir al mismo tiempo el computador.

Los sistemas operativos de tiempo compartido son complejos y ofrecen

algún mecanismo para la ejecución concurrente. Además, como en la

multiprogramación, hay que conservar simultáneamente varios

programas en la memoria, lo que requiere algún tipo de administración

de memoria, protección y planificación de la CPU. Para lograr un

tiempo de respuesta razonable hay que intercambiar los trabajos entre

la memoria principal y el disco que funciona como almacenamiento de

respaldo para la memoria principal. Por tanto, también es necesario

proporcionar administración del disco.

Sistemas De Tiempo Real 

Se utilizan cuando hay requerimientos de tiempo muy rígidos en las

operaciones o en el flujo de datos, generalmente se utilizan como

sistemas de control en una aplicación dedicada. Por ejemplo: sistemas

de control industrial, experimentos científicos y sistemas médicos.

Los sistemas de tiempo real se pueden clasificar en:

Los sistemas de tiempo real por hard: que garantizan que

las tareas críticas se ejecutan a tiempo. Los datos sonalmacenados en memorias no volátiles (ROM), no utilizan

técnicas de memoria virtual ni tiempo compartido, ambas

técnicas no pueden ser implementadas por hardware.

Los sistemas de tiempo real por soft: que ejecutan tareas

menos críticas y manejan técnicas de prioridades para la

asignación de tareas. Estos sistemas tienen menos utilidades

que los implementados por hard, por ejemplo no pueden

utilizarse para control industrial ni en robótica. Pero sí para

multimedia, supervisión de controles industriales y realidadvirtual.

5/17/2018 Sistemas Operativos Generalidades - slidepdf.com

http://slidepdf.com/reader/full/sistemas-operativos-generalidades 8/8

 

Multiproceso

Una nueva tendencia de los sistemas de computación es distribuir los

cálculos entre varios procesadores. Existen dos esquemas básicos para

la construcción de estos sistemas de multiproceso (o distribuidos). En

un sistema fuertemente acoplado los procesadores comparten lamemoria y un reloj, y por lo general la comunicación se lleva a cabo a

través de una memoria compartida.

En un sistema débilmente acoplado los procesadores no comparten ni

memoria ni reloj, pues cada uno cuenta con su propia memoria local.

Los procesadores se comunican a través de distintas líneas de

comunicación, como canales de alta velocidad o líneas telefónicas. A

estos sistemas generalmente se les conoce como sistemas distribuidos

y en ellos los procesadores pueden variar en cuanto a tamaño y

función; pueden incluir pequeños microprocesadores, estaciones detrabajo, minicomputadores y grandes sistemas de computación de

propósito general.

Razones para Construir Sistemas Distribuidos

Compartimiento de recursos

Aceleración de los cálculos

Confiabilidad

Comunicación

Sistemas Multiprocesadores

Un sistema multiprocesador tiene más de una CPU compartiendo

memoria y periféricos. Las ventajas más evidentes son mayor potencia

de computación y fiabilidad. Estos sistemas asignan una tarea

específica a cada procesador. Un procesador maestro controla el

sistema, los otros esperan al maestro o tienen tareas predefinidas. Este

esquema define una relación maestro/esclavo.

Sistemas Distribuidos

La principal diferencia entre los sistemas de multiprocesadores y

distribuidos, es que estos últimos no comparten memoria ni periféricos.

Cada procesador tiene su propia memoria local. Los procesadores se

comunican entre si a través de varias líneas de comunicación, tales

como líneas telefónicas o buses de alta velocidad. Dicho de otra forma,

se trata de redes de computadores donde los procesadores pueden

variar en tamaño y función.