sistemas operativos generalidades
TRANSCRIPT
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.