1) diferencias entre sistema operativo maquina virtual y maquuina

Anuncio
1)
DIFERENCIAS ENTRE SISTEMA
MAQUUINA SUBDYACENTE
OPERATIVO
MAQUINA
DIFERENCIAS ENTRE SISTEMA OPERATIVO
¿QUE ES UNA MAWINA VIRTUAL?
MAQUUINA SUBDYACENTE
Una máquina virtual es un contenedor de El sistema operativo (a veces también
software perfectamente aislado que citado mediante su forma abreviada OS
puede ejecutar sus propios sistemas en inglés) se encarga de crear el vínculo
operativos y aplicaciones como si fuera entre los recursos materiales, el usuario y
un ordenador físico. Una máquina virtual las aplicaciones (procesador de texto,
se comporta exactamente igual que lo videojuegos, etcétera). Cuando un
hace un ordenador físico y contiene sus programa desea acceder a un recurso
propios CPU, RAM, disco duro y tarjetas material, no necesita enviar información
específica a los dispositivos periféricos;
de interfaz de red (NIC) virtuales.
simplemente envía la información al
El sistema operativo no puede establecer sistema operativo, el cual la transmite a
una diferencia entre una máquina virtual los periféricos correspondientes a través
y una máquina física, ni tampoco lo de su driver (controlador). Si no existe
pueden hacer las aplicaciones u otros ningún driver, cada programa debe
ordenadores de una red. Incluso la propia reconocer y tener presente la
máquina virtual considera que es un comunicación con cada tipo de
ordenador “real”. Sin embargo, una periférico. Así pues cuenta con cuatro
máquina
virtual
se
compone elementos estructurales
exclusivamente de software y no contiene
2) MEMORIA PRINCIPAL
ninguna clase de componente de
hardware. El resultado de ello es que las
3) UNIDAD LOGICO
máquinas virtuales ofrecen una serie de
ARITMETICA
ventajas con respecto al hardware físico.
4) CONTROL DE PROCESOS
5) DISPOCITIVOS DE ENTRADA
Y SALIDA
VIRTUAL
Y
2) ESQUEMATIZAS EL SUCESO DE UNA INTERUPCION
3) ESQUEMATIZAR LAS FUNCIONES Y/O OBJETIVOS DE UN SISTEMA OPERATIVO
4) COMO CONTROLA Y/O PROCESA LAS TAREAS EL SISTEMA OPERATIVO
·
Administración del procesador: el sistema operativo administra la distribución del procesador entre los
distintos programas por medio de un algoritmo de programación. El tipo de programador depende
completamente del sistema operativo, según el objetivo deseado.
·
Gestión de la memoria de acceso aleatorio: el sistema operativo se encarga de gestionar el espacio de
memoria asignado para cada aplicación y para cada usuario, si resulta pertinente. Cuando la memoria
física es insuficiente, el sistema operativo puede crear una zona de memoria en el disco duro,
denominada "memoria virtual". La memoria virtual permite ejecutar aplicaciones que requieren una
memoria superior a la memoria RAM disponible en el sistema. Sin embargo, esta memoria es mucho
más lenta.
·
Gestión de entradas/salidas: el sistema operativo permite unificar y controlar el acceso de los programas
a los recursos materiales a través de los drivers (también conocidos como administradores periféricos o
de entrada/salida).
·
Gestión de ejecución de aplicaciones: el sistema operativo se encarga de que las aplicaciones se ejecuten
sin problemas asignándoles los recursos que éstas necesitan para funcionar. Esto significa que si una
aplicación no responde correctamente puede "sucumbir".
·
Administración de autorizaciones: el sistema operativo se encarga de la seguridad en relación con la
ejecución de programas garantizando que los recursos sean utilizados sólo por programas y usuarios que
posean las autorizaciones correspondientes.
·
Gestión de archivos: el sistema operativo gestiona la lectura y escritura en el sistema de archivos, y las
autorizaciones de acceso a archivos de aplicaciones y usuarios.
·
Gestión de la información: el sistema operativo proporciona cierta cantidad de indicadores que pueden
utilizarse para diagnosticar el funcionamiento correcto del equipo.
Gestión de procesos
Procesos y tareas
Proceso una dentición tradicional de proceso es la de instancia de un programa en ejecución. La
ejecución de tal programa es indicada al SO mediante una acción u orden especializada. El SO responde
en ese punto creando un nuevo proceso. En general, esta actividad consiste en la creación e inicialización
de estructuras de datos en el SO para monitorizar y controlar el progreso de proceso en cuestión. Una vez
creado, el proceso pasará a estar activó y competirá por la utilización de recursos del sistema como el
procesador y los dispositivos I/O.
Un proceso evoluciona cýclicamente entre perýodos de ejecución activa y de espera por la terminación de
actividades de I/O. Cuando un proceso queda inactivo por especi?car una operación de I/O y quedar a la
espera de que ´esta se complete, el SO puede plani?car la ejecución de otro proceso.
Desde este punto de vista, un proceso es una entidad individualmente plani?cable, que puede ser
asignada al procesador y ejecutada por ´este. El SO controla, pues, dina- micamente la evoluciono de los
procesos registrando la información correspondiente a sus cambios cuando ´estos se produzcan. Esta
información es utilizada por el SO para sus labores de plani?cacion y gestión sobre el conjunto de
procesos que en un determinado momento pueden coexistir en el sistema informático. De esta forma
además de la plantilla estática constituida por el programa ejecutable en que se basa, un proceso posee
ciertos atributos que ayudan al SO en su gestión. Los atributos de un proceso incluyen su estado actual,
unidad de plani?cacion, derechos de acceso, nivel de prioridad entre otros datos. Desde el punto de vista
del usuario, un proceso no es más que la ejecución de un conjunto de instrucciones que llevan a cabo una
determinada tarea, mientras que para el SO es una entidad que atraviesa dinámicamente
Un conjunto de estados y que solicita los recursos del sistema que le son necesarios. De esta forma, el
acceso a tales recursos debe ser platicado de forma que se consiga un rendimiento en la utilización de los
mismos lo más ´optimo posible.
5) ESQUEMATIZAR LOS ESTADOS DE UN PROCESO
Modelo de dos estados No ejecución y en ejecución
EXPEDIR
SALIR
ENTRAR
EJECUCION
NO EJECUCION
PAUSAR
Modelo de cinco estados NUEVO, LISTO, EJECUCION, ESPERA Y TEREMINADO
NUEVO
TERMINADO
LISTO
ESPERA
EJECUCION
Transiciones de los estados de los procesos
6)
CUANDO ABLAMOS DE UN PLANIFICADOR DE LARGO PLAZO, CORTO PLAZO
Y MEDIANO PLAZO
PLANIFICACION AALRGO PLAZO (PLP)
Su misión consiste en controlar la admisión de procesos nuevos al sistema. Cuando Esta presente este
tipo de plani?cador, su objetivo principal es proporcionar una mezcla Equilibrada de trabajos. El PLP
decide cuando se da entrada al sistema a un nuevo Proceso para que ´este sea ejecutado. Este proceso
puede proceder de la respuesta al Envío de un trabajo por lotes o bien a la orden de ejecución realizada
por el usuario. En Cierto modo, el PLP actúa como una válvula de admisión de primer nivel para
mantener
PLANIFICADOR A CORTO PLAZO (PCP)
Este plani?cador decide qué procesos toman el control de la CPU. El PCP asigna el
Procesador entre el conjunto de procesos preparados residentes en memoria. Su principal objetivo es
maximizar el rendimiento del sistema de acuerdo a con el conjunto de criterio elegidos. Al estar a cargo
de la transición de estado preparado a ejecución, el PCP deber ser invocado cuando se realice una
operación de conmutación de procesos para seleccionar
En una unidad de tiempo se utilizara menos veces y ello hará posible que su estructura sea mas compleja.
PALNIFICADOR A MECIO PLAZO (PMP)
El PMP tiene por misión traer procesos suspendidos a la memoria principal. Este
Plani?cador controla la transición de procesos en situación de suspendidos a situación de preparados.
El PMP permanecerá inactivo mientras se mantenga la condición que dio lugar a la suspensión del
proceso, sin embargo, una vez desaparecida dicha condición el PMP intenta asignar al proceso la
cantidad de memoria principal que requiera y volver a dejarlo en situación de preparado. Para
funcionar adecuadamente, el PMP debe disponer de información respecto a las necesidades de
memoria de los procesos suspendidos, lo cual no es complicado de llevar a la práctica ya que el
tamaño real del proceso puede ser calculado en el momento de suspenderlo almacenándose en el
BCP. Este plani?cador será invocado cuando quede espacio libre en memoria por la terminación de
un proceso o cuando el suministro de procesos preparados quede por debajo
De un limite especi?cado
7)
QUE ES LA PROGRAMACION CONCURRENTE
4.1. Multitarea, multiprogramación y multiproceso Un sistema multitarea es aquel que permite la
ejecución de varios procesos sobre un procesador mediante la multiplexaci´on de este entre los procesos.
La multitarea se implementa generalmente manteniendo el código y los datos de varios procesos
simultáneamente en memoria y multiplexado el procesador y los dispositivos E/S entre ellos. La
multitarea suele asociarse con soporte software y hardware para la protección de memoria con el en de
evitar que los procesos corrompan el espacio de direcciones y el comportamiento de otros procesos
residentes en memoria, un sistema multitarea, sin embargo, no tiene necesariamente que soportar formas
elaboradas de gestión de memoria y archivos. En este sentido multita tarea es sencillamente sinónimo de
concurrencia. El termino multiprogramación designa a un SO que además de soportar multitarea
proporciona formas bosticadas de protección de memoria y fuerza el control de la con- correncia cuando
los procesos acceden a dispositivos E/S y a archivos compartidos, en general la multiprogramación
implica multitarea pero no viceversa.
Los SSOO operativos de multiprogramación soportan generalmente varios usuarios en cuyo caso
también se les denomina sistemas multiusuario o mulatices. Los SSOO para multiproceso gestionan la
operación de sistemas informáticos que incorporan varios procesadores conocidos habitualmente como
sistemas multiprocesadores. Los SSOO para multiprocesadores son multitarea por dentición ya que
soportan la ejecución simultánea de varias tareas o procesos sobre diferentes procesadores y serán
multiprogramados si disponen de los mecanismos de control de concurrencia y protección de memoria
adecua- dos. En general todos los SSOO de multiprogramación se caracterizan por mantener un conjunto
de procesos activos simultáneamente que compiten por los recursos del sistema, incluidos el procesador,
la memoria y los dipositivos E/S. Un SO de multiprogramación vigila el estado de todos los procesos
activos y de todos los recursos del sistema, cuando se producen cambios importantes de estado,
ocupando es invocado explícitamente el SO se activa para asignar recursos y proporcionar ciertos
servicios de su repertorio.
8)
QUE SON LOS INTERBLOQUES
1. Principios de interbloqueo
Una situación de interbloqueo tiene lugar cuando ninguno de los procesos que compiten por los
recursos del sistema o interactúan entre si puede avanzar por carecer de algún recurso o esperar a
que se produzca algún tipo de evento.
1.1. Recursos reutilizables
Un recurso reutilizable es aquel que puede ser utilizado por un proceso y no se agota por hacer
uso del mismo, los procesos obtienen unidades de estos recursos y tras utilizarlas las liberan para
que puedan ser reutilizadas por otros procesos. Como ejemplos de recursos reutilizables tenemos
el procesador, la memoria principal y los dispositivos E/S.
1.2. Recursos consumibles
Un recurso consumible es aquel que puede ser producido y consumido. Normalmente no hay
liýmite en el número de recursos consumibles de un tipo particular. Ası un proceso productor
podrá liberar cualquier número de recursos consumibles. Las ´únicas restricciones en este sentido
vendrán impuestas por la capacidad de almacenamiento temporal del sistema. Cuando un proceso
consume un recurso de este tipo la parte consumida queda excluida del sistema. Ejemplos týpicos
son: interrupciones, señales y mensajes.
9)
CUALES SON LAS FUNCIONES BASICAS QUE NUCLEO PROPORCIONA
Núcleo
Esquema básico de la interacción entre un Núcleo, el resto del Software (los programas de aplicación,
las bases de datos, etc.) y el Hardware.
Que es el NUCLEO
En informática, el núcleo (también conocido en español con el anglicismo kernel, de raíces germánicas
como kern) es la parte fundamental de un sistema operativo. Es el software responsable de facilitar a los
distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado
de gestionar recursos, a través de servicios de llamada al sistema. Como hay muchos programas y el
acceso al hardware es limitado, el núcleo también se encarga de decidir qué programa podrá hacer uso de
un dispositivo de hardware y durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al
hardware directamente puede ser realmente complejo, por lo que los núcleos suelen implementar una
serie de abstracciones del hardware. Esto permite esconder la complejidad, y proporciona una interfaz
limpia y uniforme al hardware subyacente, lo que facilita su uso para el programador.
Funciones generalmente ejercidas por un núcleo
Los núcleos tienen como funciones básicas garantizar la carga y la ejecución de los procesos, las
entradas/salidas y proponer un interfaz entre el espacio núcleo y los programas del espacio del usuario.
Aparte de las funcionalidades básicas, el conjunto de las funciones de los puntos siguientes (incluidos los
pilotos materiales, las funciones redes y sistemas de ficheros o los servicios) necesariamente no son
proporcionados por un núcleo de sistema de explotación. Pueden establecerse estas funciones del sistema
de explotación tanto en el espacio usuario como en el propio núcleo. Su implantación en el núcleo se
hace en el único objetivo de aumentar los resultados. En efecto, según la concepción del núcleo, la
misma función llamada desde el espacio usuario o el espacio núcleo tiene un coste temporal obviamente
diferente. Si esta llamada de función es frecuente, puede resultar útil integrar estas funciones al núcleo
para aumentar los resultados.
Hay que señalar que estas técnicas son utilizadas para atenuar defectos de los núcleos como los elevados
estados. En la medida de lo posible, es preferible escribir un programa informático fuera del núcleo, en el
espacio usuario. En efecto, el espacio del núcleo, supone la ausencia de mecanismos como la protección
de la memoria. Es pues más complejo escribir un programa informático que funciona en el espacio del
núcleo, que en el espacio usuario; los errores y faltas de seguridad pueden ser elevados.
10) DIFERENCIAS ENTRE LENGUAJES
MODO DE USUARIO DE ALTO NIVEL
Lenguaje de alto nivel
Los lenguajes de programación de alto nivel se caracterizan por expresar los algoritmos de una manera
adecuada a la capacidad cognitiva humana, en lugar de a la capacidad ejecutora de las máquinas. En los
primeros lenguajes de alto nivel la limitación era que se orientaban a un área específica y sus
instrucciones requerían de una sintaxis predefinida. Se clasifican como lenguajes procedí mentales. Otra
limitación de los lenguajes de alto nivel es que se requiere de ciertos conocimientos de programación
para realizar las secuencias de instrucciones lógicas. Los lenguajes de muy alto nivel se crearon para que
el usuario común pudiese solucionar tal problema de procesamiento de datos de una manera más fácil y
rápida.
La programación en un lenguaje de bajo nivel como el lenguaje de la máquina o el lenguaje simbólico
tiene ciertas ventajas:
·
Mayor adaptación al equipo.
·
Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.
Pero también tiene importantes inconvenientes:
·
Imposibilidad de escribir código independiente de la máquina.
·
Mayor dificultad en la programación y en la comprensión de los programas.
Por esta razón, a finales de los años 1950 surgió un nuevo tipo de lenguajes de programación que evitaba
estos inconvenientes, a costa de ceder un poco en las ventajas. Estos lenguajes se llaman "de tercera
generación" o "de alto nivel", en contraposición a los "de bajo nivel" o "de nivel próximo a la máquina".
Principales lenguajes de alto nivel [editar]
·
Ada
·
ALGOL
·
Basic
·
C#
·
Clipper
·
COBOL
·
Fortran
·
FoxPro o Visual Foxpro
·
Java
·
Lexico
·
Logo
·
PL/SQL
·
RPG
·
MATLAB
·
SISTEMA BERNAL ITM
·
Modula-2
·
Lenguajes funcionales
o
Haskell
o
Lisp
BAJO NIVEL
Saltar a navegación, búsqueda
Un lenguaje de programación de bajo nivel es el que proporciona poca o ninguna abstracción del
microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina.
La palabra "bajo" no implica que el lenguaje sea inferior a un lenguaje de alto nivel; se refiere a la
reducida abstracción entre el lenguaje y el hardware.
Uso: ventajas e inconvenientes. [editar]
En general se utiliza este tipo de lenguaje para programar controladores (drivers).
La programación en un lenguaje de bajo nivel como el lenguaje de la máquina o el lenguaje simbólico
tiene ciertas ventajas:
·
Mayor adaptación al equipo.
·
Posibilidad de obtener la máxima velocidad con mínimo uso de memoria.
Pero también tiene importantes inconvenientes:
·
Imposibilidad de escribir código independiente de la máquina.
·
Mayor dificultad en la programación y en la comprensión de los programas.
·
El programador debe conocer más de un centenar de instrucciones.
·
Es necesario conocer en detalle la arquitectura de la máquina.
Características
·
Se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle.
·
Está orientado a la máquina.
Primera generación [editar]
El lenguaje de programación de primera generación (por sus siglas en inglés, 1GL), es el lenguaje de
código máquina. Es el único lenguaje que un microprocesador entiende de forma nativa. El lenguaje
máquina no puede ser escrito o leído usando un editor de texto, y por lo tanto es raro que una persona lo
use directamente.
Segunda generación [editar]
El lenguaje de programación de segunda generación (por sus siglas en inglés, 2GL), es el lenguaje
ensamblador. Se considera de segunda generación porque, aunque no es lenguaje nativo del
microprocesador, un programador de lenguaje ensamblador debe conocer la arquitectura del
microprocesador (como por ejemplo las particularidades de sus registros o su conjunto de instrucciones).
ENSAMBLADOR Y EJEMPLOS
Ejemplo Lenguaje ensamblador
Lenguaje de máquina del Intel 8088. El código de máquina se resalta en rojo, el equivalente en lenguaje
as sembler en magenta, y las direcciones de memoria donde se encuentra el código, en azul.
El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas
informáticos, y constituye la representación más directa del código máquina específico para cada
arquitectura de computadoras legible por un programador.
Fue usado ampliamente en el pasado para el desarrollo de software, pero actualmente sólo se utiliza en
contadas ocasiones, especialmente cuando se requiere la manipulación directa del hardware o se
pretenden rendimientos inusuales de los equipos.
Descargar