SlideShare una empresa de Scribd logo
1 de 62
Descargar para leer sin conexión
Universidad Cenfotec
Curso: INF01TIC INTRODUCCIÓN A LA TECNOLOGÍA DE
INFORMACIÓN
Prof: Ing. Rebeca Esquivel Flores, M.Sc
resquivel@ucenfotec.ac.cr
Conceptos Básicos de Sistemas Operativos y Máquinas
Virtuales
Un Sistema Operativo es el software encargado de ejercer el
control y coordinar el uso del hardware entre diferentes
programas de aplicación y los usuarios. Es un administrador de
los recursos de hardware del sistema. Se encarga de ofrecer una
distribución ordenada y controlada de los procesadores,
memorias y dispositivos de E/S entre los diversos programas
que compiten por ellos.
Así, el sistema operativo es un programa del sistema que actúa como interfaz entre el usuario y el hardware
del computador, su objetivo es gestionar y administrar eficientemente los recursos de hardware sirviendo
de base para la creación y ejecución de programas de aplicación.
Un computador sin sistema operativo no es más que una pieza de hardware sin
utilidad alguna.
Durante las primeras generaciones de computadoras solo un usuario con conocimientos técnicos específicos
para esa específica máquina podía darle un uso apropiado al hardware ya que no se contaba con un sistema
operativo amigable para el usuario final. Fue hasta finales de la década de 1960 cuando un grupo de
empleados de los laboratorios Bell de AT&T empieza a trabajar en el que se considera el primer sistema
operativo portable, multitarea y multiusuario, UNIX, ampliamente conocido en el mercado.
40´S: uso de computadora estaba restringido a empresas o instituciones que podían pagar
su alto precio, y no existía un sistema operativo. En su lugar, el programador debía tener un
conocimiento y contacto profundo con el hardware.
50´S: Nacen los sistemas operativos, de los primeros FORTRAN MONITOR SYSTEM e
IBSYS
Posteriormente: OS/360 IBM ( buscaba unificar todas las máquinas con un mismo OS.
Ya para la cuarta generación: electrónica avanzada con miles de transistores de un
centímetro cuadrado lo que da como resultado las computadoras personales, interfaces
amigables y por consiguiente los SO MS-DOS y UNIX.
Inicio de los Sistemas
Operativos
Los primeros computadores estaban compuestos exclusivamente por el sistema físico (hardware), estos
sistemas, eran grandes máquinas que se operaban desde una consola.
Un grupo de personas diseñaba, construía, programaba, operaba y daba mantenimiento a cada máquina. La
programación se realizaba en lenguaje de máquina.
No se habían inventado los lenguajes de programación incluso el ensamblador que es lo más cercano a los
ceros y unos con que se programaba en aquel momento.
Se desconoce el término "Sistemas Operativo" el modo en que se operaba la máquina consistía en que el
programador reservaba cierto período en una hoja que servía a tales fines, iba al cuarto de la máquina,
insertaba su conexión a la computadora y pasaba unas horas esperando que ninguno de los 20,000 o más
bulbos se quemara durante la ejecución. La inmensa mayoría de los problemas eran cálculos numéricos
directos, por ejemplo, el cálculo de valores para tablas de senos y cosenos, en resumen la máquina
pertenecía por completo al operador, que en general, era quien escribía los programas en lenguaje de
máquina y, se encargaba de alimentar los datos en forma manual y en su momento en tarjetas o cintas
perforadas.
Etapas en el desarrollo de los
sistemas operativos
El programador escribía un programa y luego lo controlaba directamente desde la consola.
En primer lugar, el programa se cargaba manualmente en la memoria, desde los interruptores del tablero
frontal (una instrucción en cada ocasión), desde una cinta de papel o desde tarjetas perforadas.
Luego se pulsaban los botones adecuados para establecer la dirección de inicio y comenzar la ejecución del
programa.Mientras este se ejecutaba, el programador-operador lo podía supervisar observando las luces en
la consola.
Si se descubrían errores, el programador podía detener el programa, examinar el contenido de la memoria
y los registros y depurar el programa directamente desde la consola. La salida del programa se imprimía, o
se perforaba en cintas de papel o tarjetas para su impresión posterior.
Etapas en el desarrollo de los
sistemas operativos
Hechos de la primer etapa:
Dado que la ejecución de los programas era verificado desde consola, el tiempo de utilización de CPU,
podría llegar a ser bajo lo que conlleva a pérdida de capacidad de procesamiento del sistema.
Durante el tiempo de utilización, cada usuario disponía de todos los recursos y empleaba la ejecución paso
a paso para poner a punto sus programas.
Sin importar el tamaño de la memoria, solo un usuario era quien la utilizaba.
Etapas en el desarrollo de los
sistemas operativos
El programador debía seguir la ejecución del programa,
corregirlo si fuera necesario y obtener los resultados,
tratando de hacerlo, en el tiempo que tenía asignado.
Utilización del sistema:
Un aspecto importante de este entorno era su naturaleza totalmente interactiva. El programador también
era el operador del sistema de cómputo.
Este modo de operación llamado de “puerta abierta” era poco económico pues la inactividad del CPU,
esperando decisiones del programador, podía alcanzar hasta el 90% del tiempo.
Si se agotaba el tiempo asignado, el programador debía abandonar la unidad sin concluir el trabajo y, por el
contrario, si terminaba antes, el equipo quedaba inactivo hasta que llegara el siguiente usuario anotado en
la lista.
“Estos ordenadores se basaban en dos factores: sus dispositivos de E/S y su habilidad para
ejecutar un programa, pero no disponían de recursos lógicos adicionales, como pudieran ser
medios de almacenamiento secundario, por lo que, los usuarios debían tener sus programas
escritos en tarjetas perforadas que tenía que leer el ordenador cada vez que se deseaba ejecutar
el trabajo correspondiente.”
---- Pascual Morera ----
A medida que transcurrió el tiempo, se desarrollaron software y hardware adicionales; empezaron a
popularizarse las lectoras de tarjetas, impresoras de líneas y cintas magnéticas.
Para manejar y aprovechar estos dispositivos, el programador tuvo que añadir a sus trabajos los
programas necesarios para controlar cada uno de los dispositivos que iba a utilizar.
Así, la codificación de entrada / salida necesarias para implementar funciones básicas se consolidó en un
sistema de control de entrada / salida (IOCS por sus siglas de Input Output Control System).
Los usuarios que deseaban realizar operaciones de entrada / salida ya no tenían que codificar las
instrucciones directamente. En vez de eso, utilizaban las rutinas IOCS para hacer el trabajo real de una
biblioteca disponible para tal efecto.
Se adoptó el criterio de grabar en la memoria los manejadores de dispositivos y tenerlos siempre a
disposición de todos los usuarios.
La memoria ahora incluía estos programas para controlar los dispositivos.
Segunda Etapa
Segunda Etapa
El Sistema de Control
de Entrada y Salida
Más tarde aparecieron los compiladores de FORTRAN y otros lenguajes, lo que facilitó la tarea de
programación, pero hizo más complejo el funcionamiento del computador.
Por ejemplo al preparar la ejecución de un programa en FORTRAN, el programador necesitaba primero
cargar en el computador el compilador de FORTRAN que generalmente se conservaba en una cinta
magnética.
Había que montar la cinta adecuada en la unidad correspondiente. El programa se leía a través del lector de
tarjetas y se escribía en otra cinta.
El compilador de FORTRAN producía una salida en lenguaje ensamblador, que luego tenía que ensamblarse.
Para esto era necesario montar otra cinta con el ensamblador, y su salida debía enlazarse con las rutinas de
apoyo de las bibliotecas.
Finalmente, el programa objeto, en código binario, estaba listo para ejecutarse; se cargaba en memoria y
se depuraba desde la consola.
Segunda Etapa
Pasos en la preparación
Observemos que se podía necesitar un considerable tiempo de preparación que consistía en:
–Cargar la cinta del compilador FORTRAN
–Ejecutar el compilador
–Descargar la cinta del compilador
–Cargar la cinta del ensamblador
–Ejecutar el ensamblador
–Descargar la cinta del ensamblador
–Cargar el programa objeto y ejecutarlo
Si ocurría un error en alguno de los pasos, probablemente había que comenzar desde el
inicio.
Segunda Etapa
Solución Propuesta dos etapas:
1:se contrató a un operador profesional, por lo que el programador ya no manejó directamente la máquina.
En el momento en que se terminaba un trabajo, el operador iniciaba el siguiente, con lo que se eliminaban
los períodos de inactividad en los que el computador estaba reservado pero no se utilizaba.
Puesto que el operador tenía más experiencia que el programador en montar las cintas, se reducía el
tiempo de preparación; el usuario proporcionaba las tarjetas o cintas necesarias, junto con una breve
descripción de cómo ejecutar el trabajo.
Por supuesto, el operador no podía depurar un programa incorrecto desde la consola, ya que no comprendía
el programa, de modo que en caso de error se hacía un volcado de la memoria y de los registros, y el
programador realizaba la depuración a partir del volcado de memoria (en papel).
Esto permitía al operador proseguir de inmediato con el trabajo siguiente, pero representaba un trabajo
más difícil de depuración para el programador.
Segunda Etapa
Solución Propuesta dos etapas:
2:ahorro considerable se logró al reducir el período de preparación.
Los trabajos con requisitos semejantes se agrupaban en lotes (batch) y se ejecutaban como grupo en el
computador.
Así, si por ejemplo se agrupaban los programas en FORTRAN como un lote, se podía preparar el
computador una sola vez para FORTRAN ahorrando así bastante tiempo al operador.
Segunda Etapa
Para superar este tiempo de inactividad se desarrolló la secuencia automática de trabajos;
con esta técnica se crearon los primeros sistemas operativos rudimentarios.
Se deseaba un procedimiento para transferir automáticamente el control de un trabajo al
siguiente.
Para este fin se creó un pequeño programa denominado monitor residente, el cual debía
permanecer siempre en memoria.
Al encender el computador se invocaba el monitor residente, que transfería el control a un
programa. Cuando éste terminaba, devolvía el control al monitor, el cual pasaba al siguiente
programa.
Para indicar al monitor dónde comenzaba y terminaba cada trabajo se colocaron tarjetas con
ciertas características. El computador sólo tenía que leer e interpretar dichas tarjetas.
A estas tarjetas se les llamó tarjetas de control y al programa que las interpretaba:
“lenguaje de control de trabajos” (JCL, Job Control Language).
Secuenciación automática
de trabajos
Al utilizar tarjetas de
control, se le indicaba al
monitor residente qué
programas se debían
ejecutar. Por ejemplo, el
monitor podía ejecutar: el
compilador FORTRAN
(FTN), el ensamblador
(ASM), o el programa de
usuario (RUN). Se debía
utilizar una tarjeta de
control para cada uno.
Tarjetas de Control
Para diferenciar estas tarjetas del
resto del programa, con objeto de
identificarlas y tratarlas
adecuadamente, la primera
columna debía contener algún
símbolo especial que variaba de
un sistema a otro, pero que
normalmente era ´$´ o en el caso
de IBM utilizaba ´//´.
Además, debía poder gestionar la
entrada y salida de datos desde el
exterior al ordenador y viceversa,
con el fin de poder llevar a cabo
correcta y rápidamente el trabajo
encomendado, sin necesidad de
intervención de los usuarios u
operadores
Tarjetas de Control
Para que la secuencia fuese totalmente automática
había que incluir programas que actuasen en caso de
interrupción del proceso, bien por un error o por
terminación del mismo.
En la memoria debían estar los programas:
controladores de dispositivos, gestión de errores y el
lenguaje de control.
Estas primitivas tarjetas de control fueron los
antecesores de los modernos lenguajes de control de las
tareas y los intérpretes de comandos.
Las grandes computadoras de la segunda generación se
utilizaron principalmente para los cálculos científicos y
de ingeniería.
Monitor Residente
Por lo general, se programaba en FORTRAN
y lenguaje ensamblador. Los sistema
operativos más comunes eran FMS (Fortran
Monitor System) e IBYSYS, el sistema
operativo de IBM para la 7094.
El IPL
Al arrancar era necesario instalar los
programas que debían permanecer en
memoria.
La solución se conoce como IPL (initial
program load) o programa de carga
inicial, este vendría a ser
comparativamente, un antecesor del
BIOS de las computadoras de hoy día.
El IPL es un programa contenido en ROM
que se ejecuta automáticamente al
conectar el computador y cuya misión
consiste en localizar el dispositivo
periférico donde se encuentran los
programas de control y cargarlos en RAM
para ser ejecutados en el momento
oportuno.
Tarjetas de Control
A pesar de todas las mejoras conseguidas, los dispositivos de entrada/salida provocaban que la CPU
con frecuencia se mantuviera esperando.
Por ejemplo un ensamblador o compilador podía procesar 300 tarjetas por segundo, en cambio un
lector de tarjetas, alrededor de 20 tarjetas por segundo.
Esto implica que ensamblar un programa de 1200 tarjetas requería 60 segundos para lectura y 4 para
procesarlas.
Mientras se lleva a cabo una lectura la CPU está inactiva y mientras la CPU procesa, los dispositivos de
E/S se encuentran inactivos.
Una ayuda para agilizar la entrada/salida la brindaron las cintas magnéticas, más rápidas que las
lectoras de tarjetas.
Operación fuera de
Línea
No obstante presentaban el problema que el acceso para
que los usuarios escribiesen directamente en ellas era
complicado.
Así que se decidió escribir los programas en tarjetas,
después pasarlos a cinta, una vez en la cinta, el computador
los leía y trataba, posteriormente se imprimían los
resultados.
Al ser estas acciones muy lentas, copiar de tarjetas a cinta y
de cinta a impresora, se realizaban en unidades especiales,
que se encontraban conectadas al computador.
Los trabajos se leían y pasaban a una cinta magnética
mediante una computadora pequeña (como la IBM 1401).
Operación fuera de
Línea
La computadora IBM 1401 ofrecía un
alto rendimiento en la lectura de
tarjetas, copiado de cinta e impresión
de salida, mientras que para cálculos
numéricos no era eficiente.
Después la cinta se rebobinaba y se
llevaba a la computadora principal,
donde se colocaba en una unidad de
cinta. Al concluir cada trabajo, el
sistema escribía en una segunda cinta
en vez de la impresora. Al concluir
todo el lote se retiraba la cinta de
salida y se procedía a hacer la
impresión en lote.
Operación fuera de Línea
La cinta de salida se llevaba a una
computadora pequeña (como una 1401)
para impresión fuera de línea (es decir
sin conectarse a la computadora central).
La principal ventaja de la operación fuera
de línea era que el computador principal
ya no estaba restringido por la velocidad
de los lectores de tarjetas o las
impresoras de línea, sino sólo por la
velocidad mucho mayor de las unidades
de cinta magnética.
Operación fuera de Línea
- Lograron satisfacer en forma razonable a la mayoría de sus clientes
- Técnicas fundamentales como la MULTIPROGRAMACIÓN
- En esta etapa aparecieron los verdaderos sistema operativos, sin embargo eran
enormes y extraordinariamente complejos, tal vez el doble o triple que los
monitores anteriores.
“Por ejemplo el OS/360 constaba de millones de líneas de lenguaje ensamblador,
escrito por miles de programadores, con miles de errores, que requerían de un
flujo continuo de nuevas versiones, en un intento por corregirlos. Cada nueva
versión resolvía algunos errores pero introducía otros nuevos, por lo que es
probable que el número de errores fuera constante con respecto al tiempo.”
Tercera Etapa
Utilización de Buffers
Dado que los dispositivos de E/S son mucho más lentos que el procesador, se
requiere un mecanismo para evitar las largas esperas de la unidad central.
Un buffer o almacenamiento temporal, permite hacer simultánea la E/S de un
trabajo con su propio cómputo.
Consiste de un área de memoria principal donde se almacena temporalmente la
información que va a procesar la CPU o que va a enviar, después de haber sido
procesada, hacia a algún periférico.
Así, la CPU se ve pronto libre para realizar otros trabajos.
Tercera Etapa
Interrupciones
Con el sistema de buffer se consigue un importante ahorro de tiempo; sin embargo para que el sistema
sea eficaz, se requiere conocer lo antes posible cuándo un dispositivo de E/S ha terminado una operación
y pueda comenzar con la siguiente.
Este problema se resuelve con el servicio de interrupciones.
Tan pronto como un dispositivo de E/S termina una operación interrumpe a la CPU y esta cede el control a
un programa residente en memoria, conocido como servicio de interrupción o rutina de la
interrupción, que se encarga de iniciar la siguiente operación de E/S.
Este esquema de interrupciones es tradicional para que los dispositivos interrumpan a la CPU ya sea que
han terminado o que van a comenzar un proceso de E/S, por ejemplo en el teclado, después que se ha
presionado una tecla se genera una interrupción para que la CPU transfiera el control a la rutina apropiada
para llevar esos datos introducidos por el usuario a memoria principal para ser procesados.
Obviamente como es tan rápida la velocidad de procesamiento y tan lento la introducción de letras por el
teclado por parte del usuario que normalmente no existe ningún atraso, sin embargo cuando la CPU está
atendiendo algún proceso u otra interrupción prioritaria, el buffer local del controlador se llena y no se
puede seguir aceptando más entradas del teclado.
Tercera Etapa
Nace la multiprogramación
La operación fuera de línea y el uso de buffer realizados al mismo tiempo que la E/S tienen sus
limitaciones.
Un solo usuario no puede, en general, mantener todo el tiempo ocupados a la CPU o los
dispositivos de E/S.
La multiprogramación aumenta la utilización de la CPU organizando los trabajos de manera que
ésta siempre tenga algo que ejecutar.
Sin embargo, exige sistemas operativos más avanzados ya que al existir varios programas en
memoria se requiere una planificación de la CPU para que elija el programa adecuado en cada
momento, así como la planificación de los dispositivos
Tercera Etapa
Ocupación de recursos
Se muestran aquí los tiempos de
ocupación de los recursos, incluido
el propio procesador, necesarios
para realizar las tareas de dos
procesos.
En esta figura, se observa que
existen varios intervalos de
tiempo durante los cuales no se
hace ningún uso del procesador,
estando totalmente inactivo con
un pésimo rendimiento y por tanto
un alto costo de procesamiento.
Tercera Etapa
Ocupación de recursos
Por otro lado, pueden existir en el
sistema otros programas que
estén esperando su oportunidad
para acceder al procesador con el
fin de ejecutarse; entonces ¿por
qué no utilizar dichos intervalos de
inactividad del procesador para
ejecutarlos?.La respuesta es
sencilla, sí que podemos
utilizarlos, pero no para ejecutar
otro programa, sino muchos otros,
ya que todos tendrán que realizar
operaciones de entrada/salida
coincidiendo, en muchos casos,
las de varios, circunstancia que se
aprovechará para la ejecución de
otros.
Tercera Etapa
En la siguiente figura, se muestra la
ejecución de los procesos A y B si se
realizan de forma secuencial con un solo
CPU.
Con la multiprogramación
se consigue un mejor
aprovechamiento de los
recursos del ordenador, tal
como se observa en la
figura 12, siguiente
Tercera Etapa
La utilización de la programación ha dado
lugar a diferenciar los trabajos de acuerdo
con sus características y necesidades de
recursos.
–Trabajos limitados por proceso
(CPU Bound)
–Trabajos limitados por
entrada/salida (I/O Bound)
Tercera Etapa
Los primeros consumen la mayor
parte de su tiempo en el
tratamiento de la información y
poca entrada/salida y mayor uso
de CPU, mientras que los segundos
basan su acción en operaciones de
entrada/salida haciendo poco uso
del procesador, el cual
permanecerá inactivo,
considerándose ideales desde el
punto de vista de la
multiprogramación.
Tercera Etapa
Así, el principal objetivo de la multiprogramación es mantener en memoria varios
programas activos, lo que conlleva al sistema operativo a realizar las siguientes tareas
básicas:
–Ocultar a los usuarios los detalles del hardware
–Gestionar y administrar los recursos que necesiten los usuarios
–Proporcionar facilidad de sincronización y comunicación entre los programas a
ejecutar
–Reforzar las políticas de protección. Aseguran que ningún proceso se meta en la
memoria de otro, o en el espacio del Sistema Operativo.
Tercera Etapa
- La primer tarea, obliga a que el acceso al procesador debe seguir algún tipo de reglas o políticas
para que todos los posibles programas que lleguen a ejecutarse se realice sin que el usuario sea
consciente de ello, a esto se le conoce como planificación del CPU.
- La memoria debe ser compartida por todos los programas ya que necesitarán residir en ella al
mismo tiempo, por ello se debe establecer algún tipo de administración para impedir agresiones de
unos programas a otros. Al mismo tiempo, los distintos programas requerirán la utilización de
recursos que deberán ser diestramente asignados y utilizados.
- Varios programas pueden necesitar la utilización de un recurso al mismo tiempo, dando lugar a
problemas de concurrencia, estableciéndose una competencia entre ellos por conseguirlos.Si un
recurso no estuviera disponible, habría que bloquear el programa hasta que lo estuviera, pero sin
hacerlo indefinidamente. Es decir se deberá planificar correctamente el procesador y los trabajos a
realizar
- Se deben reforzar las políticas de protección impidiendo utilizar recursos o destruir datos de otro.
Tercera Etapa
Debido a esta nueva técnica fue necesario
replantearse la estructura del sistema
operativo.
A partir de ese momento se habla de núcleo
del mismo, o kernel, que se compone de
rutinas que gestionan la memoria central,
el procesador, los periféricos y otros
recursos, respondiendo a las peticiones
realizadas por los programas y a las
interrupciones de los dispositivos de E/S.
De hecho el núcleo entra en acción cuando lo
requiere un programa o un dispositivo.
Debido a que la CPU tenía que atender a
múltiples trabajos, en la memoria del
computador se debían encontrar este
conjunto de trabajos, tal como se muestra en
la figura 14 de abajo.
Tercera Etapa
Los sistemas de tiempo compartido se crearon para ofrecer un uso interactivo del sistema de
computación a un costo razonable.
El tiempo compartido (o multitarea) 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 el sistema de cómputo a través del programa que ejecuta sin
percatarse de estos cambios.
Un sistema operativo de tiempo compartido utiliza la planificación de la CPU y la multiprogramación
para proporcionar a cada usuario, que tiene su propio programa en memoria, una pequeña porción de
un computador en tiempo compartido.
En el tiempo compartido, el tiempo disponible se divide en períodos cortos, denominados segmentos
de tiempo que se otorgan a la diversas tareas en forma alternante.
Tercera Etapa
Los dispositivos de E/S que utilizaba el usuario inicialmente (cintas, perforadoras de
tarjetas) se sustituyen por terminales conversacionales o interactivos.
Con este sistema, los usuarios ya no tienen que suministrar todos los datos al principio de
la ejecución del programa, sino que pueden irlos alimentando según se necesiten durante
la ejecución.
Tercera Etapa
Aunque el tiempo compartido se concibe como una forma de instrumentar los
sistemas operativos multiusuario, también tiene aplicaciones importantes en los
sistemas monousuario.
Consideremos, por ejemplo, al usuario de un sistema de cómputo interactivo
individual, que desea que la máquina imprima un documento. Mientras se lleva
cabo esa tarea desea realizar una serie de cálculos en otro programa.
En otras palabras, el usuario quiere que el sistema operativo coordine la
ejecución de varias tareas al mismo tiempo, en forma muy similar a como haría si
cada una de las tareas hubiera sido solicitada por un usuario distinto.
Tercera Etapa
Con el desarrollo de la alta escala de integración de los circuitos integrados, se inició la era de la
computadora personal.
Mientras que las minicomputadoras permitieron que un departamento de una empresa o universidad
tuviera su propia computadora, el microprocesador hizo posible que una sola persona tuviera su
computadora personal.
Puesto que el sistema operativo ha sido la interfaz entre la máquina y el usuario; la interfaz que provee el
SO ha tenido un gran desarrollo.
Se ha perseguido desarrollar una interfaz amigable con el usuario, destinado a aquellos usuarios que no
poseen conocimientos profundos en el área de computación.
Otro desarrollo importante que comenzó a llevarse a cabo en esta etapa consistió en los sistemas
operativos de red de computadoras personales, así como los sistemas operativos distribuidos.
Cuarta Etapa
En un sistema operativo de red, los usuarios están conscientes de la existencia de
varias computadoras y pueden conectarse con máquinas remotas y copiar archivos
de una máquina a otra.
Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario (o
grupo de usuarios).
Por el contrario un sistema operativo distribuido es aquel que aparece ante sus
usuarios como un sistema tradicional de un solo procesador, aún cuando esté
compuesto por varios procesadores.
En un sistema distribuido, los usuarios, no deben ser conscientes del lugar donde su
programa se ejecute o del lugar donde se encuentran sus archivos; eso debe ser
manejado en forma automática y eficaz por el sistema operativo.
Cuarta Etapa
Conjunto de programas que relacionados entre sí dan coherencia a las acciones
que lleva a cabo la computadora.
Su importancia se centra en optimizar el uso del sistema de cómputo mediante un
aprovechamiento eficaz de todos sus recursos y una adecuada comunicación con
el usuario.
La mayoría de los Sistemas Operativos modernos pueden gestionar más de un
usuario, más de una tarea y más de una unidad de procesamiento.
SISTEMA OPERATIVO
Funciones del Sistema Operativo:
● Controla todos los recursos de la computadora
● Proporciona la base sobre la cual pueden escribirse los programas de
aplicación.
● Supervisa la ejecución de los programas de usuario
● Sirve de plataforma a partir de la cual se ejecutan dichos programas.
SISTEMAS OPERATIVOS
Roles:
1. Control del acceso al hardware
Se utilizan controladores para los dispositivos de Entrada y Salida y los usuarios se sienten cómodos
utilizando las conexiones Plug and Play (PnP) que se proveen vía buses y conectores USB.
. Maneja los archivos y documentos
Es transparente para el usuario, las estructuras de datos que el Sistema Operativo debe mantener para
crear, guardar, borrar archivos que utilizan sus aplicaciones.
. Provee una interfaz con el usuario
Existen dos tipos de interfaz con los usuarios, la interfaz gráfica, (GUI Graphical User Interface) con la que
la mayoría de usuarios están familiarizados y la interfaz de línea de comando (CLI Command Line
Interface) que es utilizada por usuarios con un nivel de experiencia más alto.
4. Administrar o manejar las aplicaciones
Esta capacidad ofrece al usuario moverse de una aplicación a otra, ya sea en sus móviles como en los
equipos de escritorio o laptop.
SISTEMAS OPERATIVOS
Sistemas operativos multiusuarios
Multiusuario: de multi: varios; y usuarios, "apto para ser utilizado por muchos usuarios"
En general se le llama multiusuario a la característica de un sistema operativo o programa que permite
proveer servicio y procesamiento a múltiples usuarios simultáneamente. Esto implica que dos o más
usuarios pueden utilizar los recursos del sistema y compartir los dispositivos periféricos.
Sistemas operativos multitarea
Es la capacidad del computador y su sistema operativo de correr varias aplicaciones al mismo tiempo.
Sistemas operativos multiprocesadores
Conocido como multiprocesamiento es la capacidad que tiene el sistema operativo de trabajar
simultáneamente con varias unidades de procesamiento.
Sistemas operativos multi-hilados
Es la capacidad del sistema operativo de descomponer en pequeñas tareas los procesos que se corren
sobre él y aprovechar la multiprogramación y el multiprocesamiento.
Tipos de sistemas operativos
Sistemas operativos para redes
Los sistemas operativos para redes, conocidos como NOS (Network Operating System), son el software
que permite la interconexión de computadores para acceder a todos los servicios y recursos que se
encuentren en la red de computadores.
Los sistemas operativos más utilizados que soportan la red son, Windows NT Server, UNIX, Personal
Netware, LAN Manager, Novell Netware, LANtastic.
Sus características principales son:
● Trabajan con múltiples usuarios
● Corre aplicaciones de múltiples usuarios
● Es muy robusto
● Exhibe un incremento de la seguridad con respecto a los sistemas tradicionales de una sola
máquina
Tipos de sistemas operativos
TIPOS DE SISTEMAS
OPERATIVOS
Los Sistemas Operativos más comunes
UNIX como el primer sistema operativo robusto y amigable con el usuario, sistema operativo portable,
multitarea y multiusuario, cuyo desarrollo comenzó en 1969 a manos de un grupo de empleados de los
laboratorios Bell de AT&T, entre los que figuraban Ken Thompson, Dennis Ritchie y Douglas McIlroy.
Distribuciones de UNIX: UNIX Versión 7 o UNIX System V, BSD, el AIX, el XENIX y las versiones GNU
iniciadas por Richard Stallman en el 83, que vendrían a poner al alcance de todos el conocido Linux.
Microsoft Windows traido al mundo por Bill Gates y Paul Allen a través de la empresa Microsoft.
MAC OS (del inglés Macintosh Operating System) es el nombre del sistema operativo creado por Apple
para su línea de computadoras Macintosh. Es conocido por haber sido uno de los primeros sistemas
dirigidos al usuario final ya que contaba con una interfaz gráfica compuesta por la interacción del mouse
con ventanas, iconos y menús.
Mac OS X fue base para la creación del iOS, conocido como el Sistema Operativo para iPhone, iPod Touch
y el iPad, así como la base para el sistema operativo utilizado en el Apple TV.
SISTEMAS OPERATIVOS
Es el encargado de organizar la forma en que se almacenan los archivos dentro del disco.
En los sistemas modernoS se presentan al usuario en forma gráfica (tipo Windows, Mac) o
en forma de texto.
El (File System) sistema de archivos, es el conjunto de métodos y estructuras de datos
que emplea el sistema operativo para manipular los archivos dentro de un disco, o
partición del mismo.
Cada sistema operativo tiene su propio administrador de archivos.
SISTEMA DE ARCHIVOS
Los primeros sistemas de archivos fueron creados para sistemas operativos con interfaces no
gráficas.
Y, representaban las unidades, particiones y directorios en su distribución física real.
Solo era posible llevar a cabo un número limitado de operaciones sobre los recursos de
información o archivos del sistema.
El primer desarrollo de FS visual en 1974 fue DIRED, desarrollado por Stanford Artificial
Intelligence Laboratory (SAIL) por Stan Kugell .
Este desarrollo sirvió de base para los administradores de archivos que surgieron a continuación
Con la llegada de las interfaces gráficas, los administradores de archivos fueron evolucionando
hacia la habilidad de asociar tipos de archivos a programas, así tenemos los .exe, .doc, .xls, .png,
etc.
Además al representar en forma icónica cada uno de los componentes en un dispositivo, se facilita
la comprensión de conceptos por parte del usuario.
SISTEMA DE ARCHIVOS
Historia
Un sistema de archivos debe proveer las herramientas para manejar:
● Cada dispositivo de almacenamiento.
● Dónde (en qué parte del dispositivo) serán almacenados los datos.
● El formato de los datos en los dispositivos.
● Los medios físicos de la transferencia de datos hacia y desde los dispositivos.
● Efectuar operaciones en los archivos tales como copiar, mover o eliminar archivos o
cambiarlos a donde el usuario los quiera ubicar.
FUNCIONES
Clusters
El dispositivo se divide en bloques de la misma longitud. En la mayoría de los casos se usan
sectores de 512 bytes de longitud.
El sistema administrador de archivos se encarga de organizar los clusters en archivos y
directorios, mantiene registro de qué es los que se está usando y qué está libre.
Archivo
Es una colección de datos que tiene un nombre y se almacena en un dispositivo de
almacenamiento. Se puede asegurar que es un conjunto de registros relacionados entre sí.
Un archivo debe tener nombre y atributos.
Los atributos varían de sistema a sistema. Algunos de ellos son los que proporcionan la
información sobre derechos de acceso (UGO en caso de Windows, Linux, Unix. User, Group,
Owner), pero existe una gran cantidad de ellos.
TÉRMINOS
Acceso Secuencial: Se lee en orden todos los registros del archivo comenzando por el
principio, sin poder:
● Saltar registros.
● Leer en otro orden.
Acceso Aleatorio: Se puede leer los registros en cualquier orden utilizando dos métodos
para determinar el punto de inicio de la lectura:
● Cada operación de lectura da la posición en el archivo con la cual iniciar.
● Una operación especial , establece la posición de trabajo pudiendo luego leerse el
archivo secuencialmente.
ACCESOS A ARCHIVOS
ACCESOS A ARCHIVOS
Un sistema de
archivo simple
Sistema de archivo con
apuntadores a datos
Utilización de apuntadores a
bloques de enlaces a datos
Es una pieza de software que emula a un
computador y puede ejecutar programas como
si fuese uno real.
MÁQUINAS VIRTUALES
Nacen ante la necesidad de probar un programa o realizar pruebas en otro
sistema operativo diferente al instalado en nuestras máquinas, se presenta la
disyuntiva de: ¿formatear el equipo e instalar este sistema operativo?, ¿crear una
partición e instalarlo? o ¿buscar otro equipo en el que sí esté instalado el Sistema
Operativo deseado?. La solución es: instalar una herramienta que emule el
sistema operativo que se quiere probar, así no hay necesidad de formatear ni de
cambiar de equipo. El sistema operativo emulado debería ser totalmente
independiente del sistema operativo real, conviviendo ambos en total armonía y
pudiendo pasar de uno a otro con facilidad. Lo anterior se consigue mediante el
uso de las máquinas virtuales.
MÁQUINAS VIRTUALES
Una máquina virtual se comporta exactamente igual que lo hace una máquina
física y contiene sus propios CPU, RAM, disco duro y tarjetas de interfaz de red
(NIC) virtuales (es decir, basados en software). La característica principal de
las máquinas virtuales es que los procesos que ejecutan están limitados por los
recursos y abstracciones proporcionados por ellas, en otras palabras, en el
momento de instalar una máquina virtual sobre la máquina real, se le asignan
recursos (CPU, RAM, etc.) que serán con los que ese sistema operativo
trabajará. Adicional a esto, cualquier máquina virtual se pueden copiar y mover
a otra máquina física de manera muy sencilla, lo que proporciona una manera
rápida y cómoda de hacer respaldos o de reutilizar máquinas existentes.
MÁQUINAS VIRTUALES
Por qué utilizar máquina virtuales
● Para probar un nuevo software en casa en un sistema operativo sin alterar nuestra
configuración.
● Para ver bondades y aprender un nuevo sistema operativo
● Proporcionan la ventaja de que no se crean particiones ni sectores de arranque para
otros sistemas operativos.
● El prendido y apagado de las máquinas virtuales es independiente del de su máquina.
● Se evitan problemas con virus, están completamente aisladas.
● El sistema de archivos es independiente del sistema de archivos de su máquina.
● Se pueden usar para trabajar con software antiguo.
Sin embargo como desventaja del uso de máquinas virtuales, se ralentiza nuestra propia
máquina (la pone un poco más lenta)
MÁQUINAS VIRTUALES
Máquina Virtual de Sistema
Son llamadas Guest (Huésped) y la máquina en que se instala se llama Host (Anfitrión).
Constituyen el grupo más simple de máquinas y pueden emular hardware que no soportan. (Anfitrión)
Máquina Virtual de proceso
Una máquina virtual de proceso, a veces llamada "máquina virtual de aplicación", se ejecuta como un
proceso normal dentro de un sistema operativo y soporta un solo proceso. La máquina se inicia
automáticamente cuando se lanza el proceso que se desea ejecutar y se detiene cuando éste finaliza.
El hipervisor:
Esta capa de software (VMM) maneja, gestiona y arbitra los cuatro recursos principales de una
computadora (CPU, Memoria, Red, Almacenamiento) y reparte dinámicamente dichos recursos entre todas
las máquinas virtuales definidas en el computador anfitrión. En la actualidad todos los fabricantes tanto de
Software como de Hardware están trabajando para mejorar, ayudar al Hypervisor (VMM) para llegar a una
virtualización completa, fiable y robusta.
CLASIFICACIÓN DE MÁQUINAS
VIRTUALES
Técnicas de virtualización
Emulación del hardware subyacente (ejecución nativa)
Esta técnica se suele llamar virtualización completa (full virtualization) del hardware, y se puede
implementar usando un hypervisor de Tipo 1 o de Tipo 2.
El tipo 1 se ejecuta directamente sobre el hardware del host, tal como se muestra en la figura 21, lo
controla y administra los sistema operativos invitados. Un sistema operativo invitado, por tanto, se
ejecuta en otro nivel por encima del hipervisor.
CLASIFICACIÓN DE MÁQUINAS
VIRTUALES
Técnicas de virtualización
El tipo 2, se ejecuta sobre el sistema operativo, tal como se muestra en la figura 22. Con la capa
del hypervisor como un nivel distinto segundo software, los sistemas operativos invitados son
ejecutados en el tercer nivel por encima del hardware.
CLASIFICACIÓN DE MÁQUINAS
VIRTUALES
Cada máquina virtual puede ejecutar
cualquier sistema operativo soportado por
el hardware subyacente. Así los usuarios
pueden ejecutar dos o más sistemas
operativos distintos simultáneamente en
computadoras "privadas" virtuales.
Las máquinas virtuales también pueden
actuar como emuladores de hardware,
permitiendo que aplicaciones y sistemas
operativos concebidos para otras
arquitecturas de procesador se puedan
ejecutar sobre un hardware que en teoría
no soportan.
Técnicas de virtualización
Virtualización a nivel de sistema operativo
Esta técnica consiste en dividir una computadora en varios compartimentos independientes de
manera que en cada compartimento podamos instalar un servidor. A estos compartimentos se los
llama "entornos virtuales". Desde el punto de vista del usuario, el sistema en su conjunto actúa
como si realmente existiesen varios servidores ejecutándose en varias máquinas distintas. Dos
ejemplos son las zonas de Solaris (Solaris Zones) y la técnica de Micro Partioning de AIX.
CLASIFICACIÓN DE MÁQUINAS
VIRTUALES

Más contenido relacionado

Similar a Conceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdf

Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativosdemoniac23
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativojohnk123
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativojohnk123
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativojohnk123
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativosAlejandro Luna
 
Introduccion a-los-´so
Introduccion a-los-´soIntroduccion a-los-´so
Introduccion a-los-´sosquall3800
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativofresitafer
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativosEriberto Navarro
 
Sistema operativo1
Sistema operativo1Sistema operativo1
Sistema operativo1goldenay
 
Trabajo sistemas ... sistemas operativos
Trabajo sistemas   ... sistemas operativosTrabajo sistemas   ... sistemas operativos
Trabajo sistemas ... sistemas operativosbrandonxx
 
Historia y evolucion sistemas oerativo
Historia y evolucion sistemas oerativoHistoria y evolucion sistemas oerativo
Historia y evolucion sistemas oerativoJavier Collantes
 
Historia y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativosHistoria y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativosalexitopico
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativomamasita123
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativomamasita123
 

Similar a Conceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdf (20)

Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativos
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativo
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativo
 
Qué es un sistema operativo
Qué es un sistema operativoQué es un sistema operativo
Qué es un sistema operativo
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativos
 
Introduccion a-los-´so
Introduccion a-los-´soIntroduccion a-los-´so
Introduccion a-los-´so
 
Sistema operativo
Sistema operativoSistema operativo
Sistema operativo
 
Sistema ferrr
Sistema ferrrSistema ferrr
Sistema ferrr
 
Historia de los sistemas operativos
Historia de los sistemas operativosHistoria de los sistemas operativos
Historia de los sistemas operativos
 
Sistema operativo1
Sistema operativo1Sistema operativo1
Sistema operativo1
 
Trabajo sistemas ... sistemas operativos
Trabajo sistemas   ... sistemas operativosTrabajo sistemas   ... sistemas operativos
Trabajo sistemas ... sistemas operativos
 
Historia y evolucion sistemas oerativo
Historia y evolucion sistemas oerativoHistoria y evolucion sistemas oerativo
Historia y evolucion sistemas oerativo
 
Sistemas operativos historia 1
Sistemas operativos   historia 1Sistemas operativos   historia 1
Sistemas operativos historia 1
 
Sistemas operativos: Historia, parte 1
Sistemas operativos: Historia, parte 1Sistemas operativos: Historia, parte 1
Sistemas operativos: Historia, parte 1
 
Resumen Décadas S.O
Resumen Décadas S.OResumen Décadas S.O
Resumen Décadas S.O
 
Trabajo
TrabajoTrabajo
Trabajo
 
Historia y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativosHistoria y evolucion de los sistemas operativos
Historia y evolucion de los sistemas operativos
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativo
 
Adriana rivera sistema operativo
Adriana rivera sistema operativoAdriana rivera sistema operativo
Adriana rivera sistema operativo
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 

Conceptos Básicos de Sistemas Operativos y Máquinas Virtuales (1).pdf

  • 1. Universidad Cenfotec Curso: INF01TIC INTRODUCCIÓN A LA TECNOLOGÍA DE INFORMACIÓN Prof: Ing. Rebeca Esquivel Flores, M.Sc resquivel@ucenfotec.ac.cr
  • 2. Conceptos Básicos de Sistemas Operativos y Máquinas Virtuales
  • 3. Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación y los usuarios. Es un administrador de los recursos de hardware del sistema. Se encarga de ofrecer una distribución ordenada y controlada de los procesadores, memorias y dispositivos de E/S entre los diversos programas que compiten por ellos.
  • 4. Así, el sistema operativo es un programa del sistema que actúa como interfaz entre el usuario y el hardware del computador, su objetivo es gestionar y administrar eficientemente los recursos de hardware sirviendo de base para la creación y ejecución de programas de aplicación. Un computador sin sistema operativo no es más que una pieza de hardware sin utilidad alguna. Durante las primeras generaciones de computadoras solo un usuario con conocimientos técnicos específicos para esa específica máquina podía darle un uso apropiado al hardware ya que no se contaba con un sistema operativo amigable para el usuario final. Fue hasta finales de la década de 1960 cuando un grupo de empleados de los laboratorios Bell de AT&T empieza a trabajar en el que se considera el primer sistema operativo portable, multitarea y multiusuario, UNIX, ampliamente conocido en el mercado.
  • 5. 40´S: uso de computadora estaba restringido a empresas o instituciones que podían pagar su alto precio, y no existía un sistema operativo. En su lugar, el programador debía tener un conocimiento y contacto profundo con el hardware. 50´S: Nacen los sistemas operativos, de los primeros FORTRAN MONITOR SYSTEM e IBSYS Posteriormente: OS/360 IBM ( buscaba unificar todas las máquinas con un mismo OS. Ya para la cuarta generación: electrónica avanzada con miles de transistores de un centímetro cuadrado lo que da como resultado las computadoras personales, interfaces amigables y por consiguiente los SO MS-DOS y UNIX. Inicio de los Sistemas Operativos
  • 6. Los primeros computadores estaban compuestos exclusivamente por el sistema físico (hardware), estos sistemas, eran grandes máquinas que se operaban desde una consola. Un grupo de personas diseñaba, construía, programaba, operaba y daba mantenimiento a cada máquina. La programación se realizaba en lenguaje de máquina. No se habían inventado los lenguajes de programación incluso el ensamblador que es lo más cercano a los ceros y unos con que se programaba en aquel momento. Se desconoce el término "Sistemas Operativo" el modo en que se operaba la máquina consistía en que el programador reservaba cierto período en una hoja que servía a tales fines, iba al cuarto de la máquina, insertaba su conexión a la computadora y pasaba unas horas esperando que ninguno de los 20,000 o más bulbos se quemara durante la ejecución. La inmensa mayoría de los problemas eran cálculos numéricos directos, por ejemplo, el cálculo de valores para tablas de senos y cosenos, en resumen la máquina pertenecía por completo al operador, que en general, era quien escribía los programas en lenguaje de máquina y, se encargaba de alimentar los datos en forma manual y en su momento en tarjetas o cintas perforadas. Etapas en el desarrollo de los sistemas operativos
  • 7. El programador escribía un programa y luego lo controlaba directamente desde la consola. En primer lugar, el programa se cargaba manualmente en la memoria, desde los interruptores del tablero frontal (una instrucción en cada ocasión), desde una cinta de papel o desde tarjetas perforadas. Luego se pulsaban los botones adecuados para establecer la dirección de inicio y comenzar la ejecución del programa.Mientras este se ejecutaba, el programador-operador lo podía supervisar observando las luces en la consola. Si se descubrían errores, el programador podía detener el programa, examinar el contenido de la memoria y los registros y depurar el programa directamente desde la consola. La salida del programa se imprimía, o se perforaba en cintas de papel o tarjetas para su impresión posterior. Etapas en el desarrollo de los sistemas operativos
  • 8. Hechos de la primer etapa: Dado que la ejecución de los programas era verificado desde consola, el tiempo de utilización de CPU, podría llegar a ser bajo lo que conlleva a pérdida de capacidad de procesamiento del sistema. Durante el tiempo de utilización, cada usuario disponía de todos los recursos y empleaba la ejecución paso a paso para poner a punto sus programas. Sin importar el tamaño de la memoria, solo un usuario era quien la utilizaba. Etapas en el desarrollo de los sistemas operativos El programador debía seguir la ejecución del programa, corregirlo si fuera necesario y obtener los resultados, tratando de hacerlo, en el tiempo que tenía asignado.
  • 9. Utilización del sistema: Un aspecto importante de este entorno era su naturaleza totalmente interactiva. El programador también era el operador del sistema de cómputo. Este modo de operación llamado de “puerta abierta” era poco económico pues la inactividad del CPU, esperando decisiones del programador, podía alcanzar hasta el 90% del tiempo. Si se agotaba el tiempo asignado, el programador debía abandonar la unidad sin concluir el trabajo y, por el contrario, si terminaba antes, el equipo quedaba inactivo hasta que llegara el siguiente usuario anotado en la lista. “Estos ordenadores se basaban en dos factores: sus dispositivos de E/S y su habilidad para ejecutar un programa, pero no disponían de recursos lógicos adicionales, como pudieran ser medios de almacenamiento secundario, por lo que, los usuarios debían tener sus programas escritos en tarjetas perforadas que tenía que leer el ordenador cada vez que se deseaba ejecutar el trabajo correspondiente.” ---- Pascual Morera ----
  • 10. A medida que transcurrió el tiempo, se desarrollaron software y hardware adicionales; empezaron a popularizarse las lectoras de tarjetas, impresoras de líneas y cintas magnéticas. Para manejar y aprovechar estos dispositivos, el programador tuvo que añadir a sus trabajos los programas necesarios para controlar cada uno de los dispositivos que iba a utilizar. Así, la codificación de entrada / salida necesarias para implementar funciones básicas se consolidó en un sistema de control de entrada / salida (IOCS por sus siglas de Input Output Control System). Los usuarios que deseaban realizar operaciones de entrada / salida ya no tenían que codificar las instrucciones directamente. En vez de eso, utilizaban las rutinas IOCS para hacer el trabajo real de una biblioteca disponible para tal efecto. Se adoptó el criterio de grabar en la memoria los manejadores de dispositivos y tenerlos siempre a disposición de todos los usuarios. La memoria ahora incluía estos programas para controlar los dispositivos. Segunda Etapa
  • 11. Segunda Etapa El Sistema de Control de Entrada y Salida
  • 12. Más tarde aparecieron los compiladores de FORTRAN y otros lenguajes, lo que facilitó la tarea de programación, pero hizo más complejo el funcionamiento del computador. Por ejemplo al preparar la ejecución de un programa en FORTRAN, el programador necesitaba primero cargar en el computador el compilador de FORTRAN que generalmente se conservaba en una cinta magnética. Había que montar la cinta adecuada en la unidad correspondiente. El programa se leía a través del lector de tarjetas y se escribía en otra cinta. El compilador de FORTRAN producía una salida en lenguaje ensamblador, que luego tenía que ensamblarse. Para esto era necesario montar otra cinta con el ensamblador, y su salida debía enlazarse con las rutinas de apoyo de las bibliotecas. Finalmente, el programa objeto, en código binario, estaba listo para ejecutarse; se cargaba en memoria y se depuraba desde la consola. Segunda Etapa
  • 13. Pasos en la preparación Observemos que se podía necesitar un considerable tiempo de preparación que consistía en: –Cargar la cinta del compilador FORTRAN –Ejecutar el compilador –Descargar la cinta del compilador –Cargar la cinta del ensamblador –Ejecutar el ensamblador –Descargar la cinta del ensamblador –Cargar el programa objeto y ejecutarlo Si ocurría un error en alguno de los pasos, probablemente había que comenzar desde el inicio. Segunda Etapa
  • 14. Solución Propuesta dos etapas: 1:se contrató a un operador profesional, por lo que el programador ya no manejó directamente la máquina. En el momento en que se terminaba un trabajo, el operador iniciaba el siguiente, con lo que se eliminaban los períodos de inactividad en los que el computador estaba reservado pero no se utilizaba. Puesto que el operador tenía más experiencia que el programador en montar las cintas, se reducía el tiempo de preparación; el usuario proporcionaba las tarjetas o cintas necesarias, junto con una breve descripción de cómo ejecutar el trabajo. Por supuesto, el operador no podía depurar un programa incorrecto desde la consola, ya que no comprendía el programa, de modo que en caso de error se hacía un volcado de la memoria y de los registros, y el programador realizaba la depuración a partir del volcado de memoria (en papel). Esto permitía al operador proseguir de inmediato con el trabajo siguiente, pero representaba un trabajo más difícil de depuración para el programador. Segunda Etapa
  • 15. Solución Propuesta dos etapas: 2:ahorro considerable se logró al reducir el período de preparación. Los trabajos con requisitos semejantes se agrupaban en lotes (batch) y se ejecutaban como grupo en el computador. Así, si por ejemplo se agrupaban los programas en FORTRAN como un lote, se podía preparar el computador una sola vez para FORTRAN ahorrando así bastante tiempo al operador. Segunda Etapa
  • 16. Para superar este tiempo de inactividad se desarrolló la secuencia automática de trabajos; con esta técnica se crearon los primeros sistemas operativos rudimentarios. Se deseaba un procedimiento para transferir automáticamente el control de un trabajo al siguiente. Para este fin se creó un pequeño programa denominado monitor residente, el cual debía permanecer siempre en memoria. Al encender el computador se invocaba el monitor residente, que transfería el control a un programa. Cuando éste terminaba, devolvía el control al monitor, el cual pasaba al siguiente programa. Para indicar al monitor dónde comenzaba y terminaba cada trabajo se colocaron tarjetas con ciertas características. El computador sólo tenía que leer e interpretar dichas tarjetas. A estas tarjetas se les llamó tarjetas de control y al programa que las interpretaba: “lenguaje de control de trabajos” (JCL, Job Control Language). Secuenciación automática de trabajos
  • 17. Al utilizar tarjetas de control, se le indicaba al monitor residente qué programas se debían ejecutar. Por ejemplo, el monitor podía ejecutar: el compilador FORTRAN (FTN), el ensamblador (ASM), o el programa de usuario (RUN). Se debía utilizar una tarjeta de control para cada uno. Tarjetas de Control
  • 18. Para diferenciar estas tarjetas del resto del programa, con objeto de identificarlas y tratarlas adecuadamente, la primera columna debía contener algún símbolo especial que variaba de un sistema a otro, pero que normalmente era ´$´ o en el caso de IBM utilizaba ´//´. Además, debía poder gestionar la entrada y salida de datos desde el exterior al ordenador y viceversa, con el fin de poder llevar a cabo correcta y rápidamente el trabajo encomendado, sin necesidad de intervención de los usuarios u operadores Tarjetas de Control
  • 19. Para que la secuencia fuese totalmente automática había que incluir programas que actuasen en caso de interrupción del proceso, bien por un error o por terminación del mismo. En la memoria debían estar los programas: controladores de dispositivos, gestión de errores y el lenguaje de control. Estas primitivas tarjetas de control fueron los antecesores de los modernos lenguajes de control de las tareas y los intérpretes de comandos. Las grandes computadoras de la segunda generación se utilizaron principalmente para los cálculos científicos y de ingeniería. Monitor Residente Por lo general, se programaba en FORTRAN y lenguaje ensamblador. Los sistema operativos más comunes eran FMS (Fortran Monitor System) e IBYSYS, el sistema operativo de IBM para la 7094.
  • 20. El IPL Al arrancar era necesario instalar los programas que debían permanecer en memoria. La solución se conoce como IPL (initial program load) o programa de carga inicial, este vendría a ser comparativamente, un antecesor del BIOS de las computadoras de hoy día. El IPL es un programa contenido en ROM que se ejecuta automáticamente al conectar el computador y cuya misión consiste en localizar el dispositivo periférico donde se encuentran los programas de control y cargarlos en RAM para ser ejecutados en el momento oportuno. Tarjetas de Control
  • 21. A pesar de todas las mejoras conseguidas, los dispositivos de entrada/salida provocaban que la CPU con frecuencia se mantuviera esperando. Por ejemplo un ensamblador o compilador podía procesar 300 tarjetas por segundo, en cambio un lector de tarjetas, alrededor de 20 tarjetas por segundo. Esto implica que ensamblar un programa de 1200 tarjetas requería 60 segundos para lectura y 4 para procesarlas. Mientras se lleva a cabo una lectura la CPU está inactiva y mientras la CPU procesa, los dispositivos de E/S se encuentran inactivos. Una ayuda para agilizar la entrada/salida la brindaron las cintas magnéticas, más rápidas que las lectoras de tarjetas. Operación fuera de Línea
  • 22. No obstante presentaban el problema que el acceso para que los usuarios escribiesen directamente en ellas era complicado. Así que se decidió escribir los programas en tarjetas, después pasarlos a cinta, una vez en la cinta, el computador los leía y trataba, posteriormente se imprimían los resultados. Al ser estas acciones muy lentas, copiar de tarjetas a cinta y de cinta a impresora, se realizaban en unidades especiales, que se encontraban conectadas al computador. Los trabajos se leían y pasaban a una cinta magnética mediante una computadora pequeña (como la IBM 1401). Operación fuera de Línea
  • 23. La computadora IBM 1401 ofrecía un alto rendimiento en la lectura de tarjetas, copiado de cinta e impresión de salida, mientras que para cálculos numéricos no era eficiente. Después la cinta se rebobinaba y se llevaba a la computadora principal, donde se colocaba en una unidad de cinta. Al concluir cada trabajo, el sistema escribía en una segunda cinta en vez de la impresora. Al concluir todo el lote se retiraba la cinta de salida y se procedía a hacer la impresión en lote. Operación fuera de Línea
  • 24. La cinta de salida se llevaba a una computadora pequeña (como una 1401) para impresión fuera de línea (es decir sin conectarse a la computadora central). La principal ventaja de la operación fuera de línea era que el computador principal ya no estaba restringido por la velocidad de los lectores de tarjetas o las impresoras de línea, sino sólo por la velocidad mucho mayor de las unidades de cinta magnética. Operación fuera de Línea
  • 25. - Lograron satisfacer en forma razonable a la mayoría de sus clientes - Técnicas fundamentales como la MULTIPROGRAMACIÓN - En esta etapa aparecieron los verdaderos sistema operativos, sin embargo eran enormes y extraordinariamente complejos, tal vez el doble o triple que los monitores anteriores. “Por ejemplo el OS/360 constaba de millones de líneas de lenguaje ensamblador, escrito por miles de programadores, con miles de errores, que requerían de un flujo continuo de nuevas versiones, en un intento por corregirlos. Cada nueva versión resolvía algunos errores pero introducía otros nuevos, por lo que es probable que el número de errores fuera constante con respecto al tiempo.” Tercera Etapa
  • 26. Utilización de Buffers Dado que los dispositivos de E/S son mucho más lentos que el procesador, se requiere un mecanismo para evitar las largas esperas de la unidad central. Un buffer o almacenamiento temporal, permite hacer simultánea la E/S de un trabajo con su propio cómputo. Consiste de un área de memoria principal donde se almacena temporalmente la información que va a procesar la CPU o que va a enviar, después de haber sido procesada, hacia a algún periférico. Así, la CPU se ve pronto libre para realizar otros trabajos. Tercera Etapa
  • 27. Interrupciones Con el sistema de buffer se consigue un importante ahorro de tiempo; sin embargo para que el sistema sea eficaz, se requiere conocer lo antes posible cuándo un dispositivo de E/S ha terminado una operación y pueda comenzar con la siguiente. Este problema se resuelve con el servicio de interrupciones. Tan pronto como un dispositivo de E/S termina una operación interrumpe a la CPU y esta cede el control a un programa residente en memoria, conocido como servicio de interrupción o rutina de la interrupción, que se encarga de iniciar la siguiente operación de E/S. Este esquema de interrupciones es tradicional para que los dispositivos interrumpan a la CPU ya sea que han terminado o que van a comenzar un proceso de E/S, por ejemplo en el teclado, después que se ha presionado una tecla se genera una interrupción para que la CPU transfiera el control a la rutina apropiada para llevar esos datos introducidos por el usuario a memoria principal para ser procesados. Obviamente como es tan rápida la velocidad de procesamiento y tan lento la introducción de letras por el teclado por parte del usuario que normalmente no existe ningún atraso, sin embargo cuando la CPU está atendiendo algún proceso u otra interrupción prioritaria, el buffer local del controlador se llena y no se puede seguir aceptando más entradas del teclado. Tercera Etapa
  • 28. Nace la multiprogramación La operación fuera de línea y el uso de buffer realizados al mismo tiempo que la E/S tienen sus limitaciones. Un solo usuario no puede, en general, mantener todo el tiempo ocupados a la CPU o los dispositivos de E/S. La multiprogramación aumenta la utilización de la CPU organizando los trabajos de manera que ésta siempre tenga algo que ejecutar. Sin embargo, exige sistemas operativos más avanzados ya que al existir varios programas en memoria se requiere una planificación de la CPU para que elija el programa adecuado en cada momento, así como la planificación de los dispositivos Tercera Etapa
  • 29. Ocupación de recursos Se muestran aquí los tiempos de ocupación de los recursos, incluido el propio procesador, necesarios para realizar las tareas de dos procesos. En esta figura, se observa que existen varios intervalos de tiempo durante los cuales no se hace ningún uso del procesador, estando totalmente inactivo con un pésimo rendimiento y por tanto un alto costo de procesamiento. Tercera Etapa
  • 30. Ocupación de recursos Por otro lado, pueden existir en el sistema otros programas que estén esperando su oportunidad para acceder al procesador con el fin de ejecutarse; entonces ¿por qué no utilizar dichos intervalos de inactividad del procesador para ejecutarlos?.La respuesta es sencilla, sí que podemos utilizarlos, pero no para ejecutar otro programa, sino muchos otros, ya que todos tendrán que realizar operaciones de entrada/salida coincidiendo, en muchos casos, las de varios, circunstancia que se aprovechará para la ejecución de otros. Tercera Etapa En la siguiente figura, se muestra la ejecución de los procesos A y B si se realizan de forma secuencial con un solo CPU.
  • 31. Con la multiprogramación se consigue un mejor aprovechamiento de los recursos del ordenador, tal como se observa en la figura 12, siguiente Tercera Etapa
  • 32. La utilización de la programación ha dado lugar a diferenciar los trabajos de acuerdo con sus características y necesidades de recursos. –Trabajos limitados por proceso (CPU Bound) –Trabajos limitados por entrada/salida (I/O Bound) Tercera Etapa
  • 33. Los primeros consumen la mayor parte de su tiempo en el tratamiento de la información y poca entrada/salida y mayor uso de CPU, mientras que los segundos basan su acción en operaciones de entrada/salida haciendo poco uso del procesador, el cual permanecerá inactivo, considerándose ideales desde el punto de vista de la multiprogramación. Tercera Etapa
  • 34. Así, el principal objetivo de la multiprogramación es mantener en memoria varios programas activos, lo que conlleva al sistema operativo a realizar las siguientes tareas básicas: –Ocultar a los usuarios los detalles del hardware –Gestionar y administrar los recursos que necesiten los usuarios –Proporcionar facilidad de sincronización y comunicación entre los programas a ejecutar –Reforzar las políticas de protección. Aseguran que ningún proceso se meta en la memoria de otro, o en el espacio del Sistema Operativo. Tercera Etapa
  • 35. - La primer tarea, obliga a que el acceso al procesador debe seguir algún tipo de reglas o políticas para que todos los posibles programas que lleguen a ejecutarse se realice sin que el usuario sea consciente de ello, a esto se le conoce como planificación del CPU. - La memoria debe ser compartida por todos los programas ya que necesitarán residir en ella al mismo tiempo, por ello se debe establecer algún tipo de administración para impedir agresiones de unos programas a otros. Al mismo tiempo, los distintos programas requerirán la utilización de recursos que deberán ser diestramente asignados y utilizados. - Varios programas pueden necesitar la utilización de un recurso al mismo tiempo, dando lugar a problemas de concurrencia, estableciéndose una competencia entre ellos por conseguirlos.Si un recurso no estuviera disponible, habría que bloquear el programa hasta que lo estuviera, pero sin hacerlo indefinidamente. Es decir se deberá planificar correctamente el procesador y los trabajos a realizar - Se deben reforzar las políticas de protección impidiendo utilizar recursos o destruir datos de otro. Tercera Etapa
  • 36. Debido a esta nueva técnica fue necesario replantearse la estructura del sistema operativo. A partir de ese momento se habla de núcleo del mismo, o kernel, que se compone de rutinas que gestionan la memoria central, el procesador, los periféricos y otros recursos, respondiendo a las peticiones realizadas por los programas y a las interrupciones de los dispositivos de E/S. De hecho el núcleo entra en acción cuando lo requiere un programa o un dispositivo. Debido a que la CPU tenía que atender a múltiples trabajos, en la memoria del computador se debían encontrar este conjunto de trabajos, tal como se muestra en la figura 14 de abajo. Tercera Etapa
  • 37. Los sistemas de tiempo compartido se crearon para ofrecer un uso interactivo del sistema de computación a un costo razonable. El tiempo compartido (o multitarea) 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 el sistema de cómputo a través del programa que ejecuta sin percatarse de estos cambios. Un sistema operativo de tiempo compartido utiliza la planificación de la CPU y la multiprogramación para proporcionar a cada usuario, que tiene su propio programa en memoria, una pequeña porción de un computador en tiempo compartido. En el tiempo compartido, el tiempo disponible se divide en períodos cortos, denominados segmentos de tiempo que se otorgan a la diversas tareas en forma alternante. Tercera Etapa
  • 38. Los dispositivos de E/S que utilizaba el usuario inicialmente (cintas, perforadoras de tarjetas) se sustituyen por terminales conversacionales o interactivos. Con este sistema, los usuarios ya no tienen que suministrar todos los datos al principio de la ejecución del programa, sino que pueden irlos alimentando según se necesiten durante la ejecución. Tercera Etapa
  • 39. Aunque el tiempo compartido se concibe como una forma de instrumentar los sistemas operativos multiusuario, también tiene aplicaciones importantes en los sistemas monousuario. Consideremos, por ejemplo, al usuario de un sistema de cómputo interactivo individual, que desea que la máquina imprima un documento. Mientras se lleva cabo esa tarea desea realizar una serie de cálculos en otro programa. En otras palabras, el usuario quiere que el sistema operativo coordine la ejecución de varias tareas al mismo tiempo, en forma muy similar a como haría si cada una de las tareas hubiera sido solicitada por un usuario distinto. Tercera Etapa
  • 40. Con el desarrollo de la alta escala de integración de los circuitos integrados, se inició la era de la computadora personal. Mientras que las minicomputadoras permitieron que un departamento de una empresa o universidad tuviera su propia computadora, el microprocesador hizo posible que una sola persona tuviera su computadora personal. Puesto que el sistema operativo ha sido la interfaz entre la máquina y el usuario; la interfaz que provee el SO ha tenido un gran desarrollo. Se ha perseguido desarrollar una interfaz amigable con el usuario, destinado a aquellos usuarios que no poseen conocimientos profundos en el área de computación. Otro desarrollo importante que comenzó a llevarse a cabo en esta etapa consistió en los sistemas operativos de red de computadoras personales, así como los sistemas operativos distribuidos. Cuarta Etapa
  • 41. En un sistema operativo de red, los usuarios están conscientes de la existencia de varias computadoras y pueden conectarse con máquinas remotas y copiar archivos de una máquina a otra. Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario (o grupo de usuarios). Por el contrario un sistema operativo distribuido es aquel que aparece ante sus usuarios como un sistema tradicional de un solo procesador, aún cuando esté compuesto por varios procesadores. En un sistema distribuido, los usuarios, no deben ser conscientes del lugar donde su programa se ejecute o del lugar donde se encuentran sus archivos; eso debe ser manejado en forma automática y eficaz por el sistema operativo. Cuarta Etapa
  • 42. Conjunto de programas que relacionados entre sí dan coherencia a las acciones que lleva a cabo la computadora. Su importancia se centra en optimizar el uso del sistema de cómputo mediante un aprovechamiento eficaz de todos sus recursos y una adecuada comunicación con el usuario. La mayoría de los Sistemas Operativos modernos pueden gestionar más de un usuario, más de una tarea y más de una unidad de procesamiento. SISTEMA OPERATIVO
  • 43. Funciones del Sistema Operativo: ● Controla todos los recursos de la computadora ● Proporciona la base sobre la cual pueden escribirse los programas de aplicación. ● Supervisa la ejecución de los programas de usuario ● Sirve de plataforma a partir de la cual se ejecutan dichos programas. SISTEMAS OPERATIVOS
  • 44. Roles: 1. Control del acceso al hardware Se utilizan controladores para los dispositivos de Entrada y Salida y los usuarios se sienten cómodos utilizando las conexiones Plug and Play (PnP) que se proveen vía buses y conectores USB. . Maneja los archivos y documentos Es transparente para el usuario, las estructuras de datos que el Sistema Operativo debe mantener para crear, guardar, borrar archivos que utilizan sus aplicaciones. . Provee una interfaz con el usuario Existen dos tipos de interfaz con los usuarios, la interfaz gráfica, (GUI Graphical User Interface) con la que la mayoría de usuarios están familiarizados y la interfaz de línea de comando (CLI Command Line Interface) que es utilizada por usuarios con un nivel de experiencia más alto. 4. Administrar o manejar las aplicaciones Esta capacidad ofrece al usuario moverse de una aplicación a otra, ya sea en sus móviles como en los equipos de escritorio o laptop. SISTEMAS OPERATIVOS
  • 45. Sistemas operativos multiusuarios Multiusuario: de multi: varios; y usuarios, "apto para ser utilizado por muchos usuarios" En general se le llama multiusuario a la característica de un sistema operativo o programa que permite proveer servicio y procesamiento a múltiples usuarios simultáneamente. Esto implica que dos o más usuarios pueden utilizar los recursos del sistema y compartir los dispositivos periféricos. Sistemas operativos multitarea Es la capacidad del computador y su sistema operativo de correr varias aplicaciones al mismo tiempo. Sistemas operativos multiprocesadores Conocido como multiprocesamiento es la capacidad que tiene el sistema operativo de trabajar simultáneamente con varias unidades de procesamiento. Sistemas operativos multi-hilados Es la capacidad del sistema operativo de descomponer en pequeñas tareas los procesos que se corren sobre él y aprovechar la multiprogramación y el multiprocesamiento. Tipos de sistemas operativos
  • 46. Sistemas operativos para redes Los sistemas operativos para redes, conocidos como NOS (Network Operating System), son el software que permite la interconexión de computadores para acceder a todos los servicios y recursos que se encuentren en la red de computadores. Los sistemas operativos más utilizados que soportan la red son, Windows NT Server, UNIX, Personal Netware, LAN Manager, Novell Netware, LANtastic. Sus características principales son: ● Trabajan con múltiples usuarios ● Corre aplicaciones de múltiples usuarios ● Es muy robusto ● Exhibe un incremento de la seguridad con respecto a los sistemas tradicionales de una sola máquina Tipos de sistemas operativos
  • 48. Los Sistemas Operativos más comunes UNIX como el primer sistema operativo robusto y amigable con el usuario, sistema operativo portable, multitarea y multiusuario, cuyo desarrollo comenzó en 1969 a manos de un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuraban Ken Thompson, Dennis Ritchie y Douglas McIlroy. Distribuciones de UNIX: UNIX Versión 7 o UNIX System V, BSD, el AIX, el XENIX y las versiones GNU iniciadas por Richard Stallman en el 83, que vendrían a poner al alcance de todos el conocido Linux. Microsoft Windows traido al mundo por Bill Gates y Paul Allen a través de la empresa Microsoft. MAC OS (del inglés Macintosh Operating System) es el nombre del sistema operativo creado por Apple para su línea de computadoras Macintosh. Es conocido por haber sido uno de los primeros sistemas dirigidos al usuario final ya que contaba con una interfaz gráfica compuesta por la interacción del mouse con ventanas, iconos y menús. Mac OS X fue base para la creación del iOS, conocido como el Sistema Operativo para iPhone, iPod Touch y el iPad, así como la base para el sistema operativo utilizado en el Apple TV. SISTEMAS OPERATIVOS
  • 49. Es el encargado de organizar la forma en que se almacenan los archivos dentro del disco. En los sistemas modernoS se presentan al usuario en forma gráfica (tipo Windows, Mac) o en forma de texto. El (File System) sistema de archivos, es el conjunto de métodos y estructuras de datos que emplea el sistema operativo para manipular los archivos dentro de un disco, o partición del mismo. Cada sistema operativo tiene su propio administrador de archivos. SISTEMA DE ARCHIVOS
  • 50. Los primeros sistemas de archivos fueron creados para sistemas operativos con interfaces no gráficas. Y, representaban las unidades, particiones y directorios en su distribución física real. Solo era posible llevar a cabo un número limitado de operaciones sobre los recursos de información o archivos del sistema. El primer desarrollo de FS visual en 1974 fue DIRED, desarrollado por Stanford Artificial Intelligence Laboratory (SAIL) por Stan Kugell . Este desarrollo sirvió de base para los administradores de archivos que surgieron a continuación Con la llegada de las interfaces gráficas, los administradores de archivos fueron evolucionando hacia la habilidad de asociar tipos de archivos a programas, así tenemos los .exe, .doc, .xls, .png, etc. Además al representar en forma icónica cada uno de los componentes en un dispositivo, se facilita la comprensión de conceptos por parte del usuario. SISTEMA DE ARCHIVOS Historia
  • 51. Un sistema de archivos debe proveer las herramientas para manejar: ● Cada dispositivo de almacenamiento. ● Dónde (en qué parte del dispositivo) serán almacenados los datos. ● El formato de los datos en los dispositivos. ● Los medios físicos de la transferencia de datos hacia y desde los dispositivos. ● Efectuar operaciones en los archivos tales como copiar, mover o eliminar archivos o cambiarlos a donde el usuario los quiera ubicar. FUNCIONES
  • 52. Clusters El dispositivo se divide en bloques de la misma longitud. En la mayoría de los casos se usan sectores de 512 bytes de longitud. El sistema administrador de archivos se encarga de organizar los clusters en archivos y directorios, mantiene registro de qué es los que se está usando y qué está libre. Archivo Es una colección de datos que tiene un nombre y se almacena en un dispositivo de almacenamiento. Se puede asegurar que es un conjunto de registros relacionados entre sí. Un archivo debe tener nombre y atributos. Los atributos varían de sistema a sistema. Algunos de ellos son los que proporcionan la información sobre derechos de acceso (UGO en caso de Windows, Linux, Unix. User, Group, Owner), pero existe una gran cantidad de ellos. TÉRMINOS
  • 53. Acceso Secuencial: Se lee en orden todos los registros del archivo comenzando por el principio, sin poder: ● Saltar registros. ● Leer en otro orden. Acceso Aleatorio: Se puede leer los registros en cualquier orden utilizando dos métodos para determinar el punto de inicio de la lectura: ● Cada operación de lectura da la posición en el archivo con la cual iniciar. ● Una operación especial , establece la posición de trabajo pudiendo luego leerse el archivo secuencialmente. ACCESOS A ARCHIVOS
  • 54. ACCESOS A ARCHIVOS Un sistema de archivo simple Sistema de archivo con apuntadores a datos Utilización de apuntadores a bloques de enlaces a datos
  • 55. Es una pieza de software que emula a un computador y puede ejecutar programas como si fuese uno real. MÁQUINAS VIRTUALES
  • 56. Nacen ante la necesidad de probar un programa o realizar pruebas en otro sistema operativo diferente al instalado en nuestras máquinas, se presenta la disyuntiva de: ¿formatear el equipo e instalar este sistema operativo?, ¿crear una partición e instalarlo? o ¿buscar otro equipo en el que sí esté instalado el Sistema Operativo deseado?. La solución es: instalar una herramienta que emule el sistema operativo que se quiere probar, así no hay necesidad de formatear ni de cambiar de equipo. El sistema operativo emulado debería ser totalmente independiente del sistema operativo real, conviviendo ambos en total armonía y pudiendo pasar de uno a otro con facilidad. Lo anterior se consigue mediante el uso de las máquinas virtuales. MÁQUINAS VIRTUALES
  • 57. Una máquina virtual se comporta exactamente igual que lo hace una máquina física y contiene sus propios CPU, RAM, disco duro y tarjetas de interfaz de red (NIC) virtuales (es decir, basados en software). La característica principal de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas, en otras palabras, en el momento de instalar una máquina virtual sobre la máquina real, se le asignan recursos (CPU, RAM, etc.) que serán con los que ese sistema operativo trabajará. Adicional a esto, cualquier máquina virtual se pueden copiar y mover a otra máquina física de manera muy sencilla, lo que proporciona una manera rápida y cómoda de hacer respaldos o de reutilizar máquinas existentes. MÁQUINAS VIRTUALES
  • 58. Por qué utilizar máquina virtuales ● Para probar un nuevo software en casa en un sistema operativo sin alterar nuestra configuración. ● Para ver bondades y aprender un nuevo sistema operativo ● Proporcionan la ventaja de que no se crean particiones ni sectores de arranque para otros sistemas operativos. ● El prendido y apagado de las máquinas virtuales es independiente del de su máquina. ● Se evitan problemas con virus, están completamente aisladas. ● El sistema de archivos es independiente del sistema de archivos de su máquina. ● Se pueden usar para trabajar con software antiguo. Sin embargo como desventaja del uso de máquinas virtuales, se ralentiza nuestra propia máquina (la pone un poco más lenta) MÁQUINAS VIRTUALES
  • 59. Máquina Virtual de Sistema Son llamadas Guest (Huésped) y la máquina en que se instala se llama Host (Anfitrión). Constituyen el grupo más simple de máquinas y pueden emular hardware que no soportan. (Anfitrión) Máquina Virtual de proceso Una máquina virtual de proceso, a veces llamada "máquina virtual de aplicación", se ejecuta como un proceso normal dentro de un sistema operativo y soporta un solo proceso. La máquina se inicia automáticamente cuando se lanza el proceso que se desea ejecutar y se detiene cuando éste finaliza. El hipervisor: Esta capa de software (VMM) maneja, gestiona y arbitra los cuatro recursos principales de una computadora (CPU, Memoria, Red, Almacenamiento) y reparte dinámicamente dichos recursos entre todas las máquinas virtuales definidas en el computador anfitrión. En la actualidad todos los fabricantes tanto de Software como de Hardware están trabajando para mejorar, ayudar al Hypervisor (VMM) para llegar a una virtualización completa, fiable y robusta. CLASIFICACIÓN DE MÁQUINAS VIRTUALES
  • 60. Técnicas de virtualización Emulación del hardware subyacente (ejecución nativa) Esta técnica se suele llamar virtualización completa (full virtualization) del hardware, y se puede implementar usando un hypervisor de Tipo 1 o de Tipo 2. El tipo 1 se ejecuta directamente sobre el hardware del host, tal como se muestra en la figura 21, lo controla y administra los sistema operativos invitados. Un sistema operativo invitado, por tanto, se ejecuta en otro nivel por encima del hipervisor. CLASIFICACIÓN DE MÁQUINAS VIRTUALES
  • 61. Técnicas de virtualización El tipo 2, se ejecuta sobre el sistema operativo, tal como se muestra en la figura 22. Con la capa del hypervisor como un nivel distinto segundo software, los sistemas operativos invitados son ejecutados en el tercer nivel por encima del hardware. CLASIFICACIÓN DE MÁQUINAS VIRTUALES Cada máquina virtual puede ejecutar cualquier sistema operativo soportado por el hardware subyacente. Así los usuarios pueden ejecutar dos o más sistemas operativos distintos simultáneamente en computadoras "privadas" virtuales. Las máquinas virtuales también pueden actuar como emuladores de hardware, permitiendo que aplicaciones y sistemas operativos concebidos para otras arquitecturas de procesador se puedan ejecutar sobre un hardware que en teoría no soportan.
  • 62. Técnicas de virtualización Virtualización a nivel de sistema operativo Esta técnica consiste en dividir una computadora en varios compartimentos independientes de manera que en cada compartimento podamos instalar un servidor. A estos compartimentos se los llama "entornos virtuales". Desde el punto de vista del usuario, el sistema en su conjunto actúa como si realmente existiesen varios servidores ejecutándose en varias máquinas distintas. Dos ejemplos son las zonas de Solaris (Solaris Zones) y la técnica de Micro Partioning de AIX. CLASIFICACIÓN DE MÁQUINAS VIRTUALES