Download sistema Operativo - TICs-introduccion

Document related concepts

Sistema operativo wikipedia , lookup

Núcleo (informática) wikipedia , lookup

Historia de los sistemas operativos wikipedia , lookup

Arquitectura de Windows NT wikipedia , lookup

Windows NT wikipedia , lookup

Transcript
El sistema Operativo.
El sistema operativo, es un software básico que controla una computadora. El sistema
operativo tiene tres grandes funciones: coordina y manipula el hardware del ordenador o
computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el Mouse
(ratón); organiza los archivos en diversos dispositivos de almacenamiento, como discos
flexibles, discos duros, discos compactos o cintas magnéticas, y gestiona los errores de
hardware y la pérdida de datos.
Cómo Funciona Un Sistema Operativo
Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso
importante es la interpretación de los comandos que permiten al usuario comunicarse con el
ordenador. Algunos intérpretes de instrucciones están basados en texto y exigen que las
instrucciones sean tecleadas. Otros están basados en gráficos, y permiten al usuario
comunicarse señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en
gráficos son más sencillos de utilizar.
Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de
tarea única, más primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo,
cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni
responder a nuevas instrucciones hasta que se termine la impresión.
Todos los sistemas operativos modernos son multitarea y pueden ejecutar varios procesos
simultáneamente. En la mayoría de los ordenadores sólo hay una Unidad Central de
Procesamiento; un sistema operativo multitarea crea la ilusión de que varios procesos se
ejecutan simultáneamente en la Unidad Central de Procesamiento. El mecanismo que se
emplea más a menudo para lograr esta ilusión es la multitarea por segmentación de tiempos,
en la que cada proceso se ejecuta individualmente durante un periodo de tiempo determinado.
Si el proceso no finaliza en el tiempo asignado, se suspende y se ejecuta otro proceso. Este
intercambio de procesos se denomina conmutación de contexto. El sistema operativo se
encarga de controlar el estado de los procesos suspendidos. También cuenta con un
mecanismo llamado planificador que determina el siguiente proceso que debe ejecutarse. El
planificador ejecuta los procesos basándose en su prioridad para minimizar el retraso percibido
por el usuario. Los procesos parecen efectuarse simultáneamente por la alta velocidad del
cambio de contexto.
Los sistemas operativos pueden emplear memoria virtual para ejecutar procesos que exigen
más memoria principal de la realmente disponible. Con esta técnica se emplea espacio en el
disco duro para simular la memoria adicional necesaria. Sin embargo, el acceso al disco duro
requiere más tiempo que el acceso a la memoria principal, por lo que el funcionamiento del
ordenador resulta más lento.
Funciones de Los Sistemas Operativos.
1. Aceptar todos los trabajos y conservarlos hasta su finalización.
2. Interpretación de comandos: Interpreta los comandos que permiten al usuario
comunicarse con la computadora.
3. Control de recursos: coordina y manipula el hardware de la computadora, como la
memoria, las impresoras, las unidades de disco, el teclado o el ratón.
4. Manejo de dispositivos de Entrada/Salida: organiza los archivos en diversos
dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o
cintas magnéticas.
5. Manejo de errores: Gestiona los errores de hardware y la pérdida de datos.
6. Secuencia de tareas: El sistema operativo debe administrar la manera en que se
reparten los procesos. Definir el orden. (Quien va primero y quien después).
7. Protección: Evitar que las acciones de un usuario afecten el trabajo que esta realizando
otro usuario.
8. Multiacceso: Un usuario se puede conectar a otra maquina sin tener que estar cerca de
ella.
9. Contabilidad de recursos: establece el costo que se le cobra a un usuario por utilizar
determinados recursos.
Características de Los Sistemas Operativos.










Conveniencia. Un sistema operativo hace más conveniente el uso de una computadora.
Eficiencia. Un sistema operativo permite que los recursos de la computadora se usen de
la manera más eficiente posible.
Habilidad para evolucionar. Un sistema operativo deberá construirse de manera que
permita el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin
interferir con el servicio.
Encargado de administrar el hardware. El sistema operativo se encarga de manejar de
una mejor manera los recursos de la computadora en cuanto hardware se refiere, esto
es, asignar a cada proceso una parte del procesador para poder compartir los recursos.
Relacionar dispositivos (gestionar a través del Kernel). El sistema operativo se debe
encargar de comunicar a los dispositivos periféricos, cuando el usuario así lo requiera.
Organizar datos para acceso rápido y seguro.
Manejar las comunicaciones en red. El sistema operativo permite al usuario manejar
con alta facilidad todo lo referente a la instalación y uso de las redes de computadoras.
Procesamiento por bytes de flujo a través del bus de datos.
Facilitar las entradas y salidas. Un sistema operativo debe hacerle fácil al usuario el
acceso y manejo de los dispositivos de Entrada/Salida de la computadora.
Técnicas de recuperación de errores.
Fig. Error! No text of specified style in document.-1 Esquema de un Sistema Operativo.
Clasificación De Los Sistemas Operativos.
Por el número de
usuarios
Por el número de
tareas
SISTEMAS
OPERATIVOS
Por el número de
procesadores
monousuario
multiusuario
monotarea
multitarea
uniproceso
Multiproceso
Asimétrico
simétrico
Por el servicio
Sistema
Operativo de Red
Sistema Operativo
Distribuido
Fig. Error! No text of specified style in document.-2 Clasificación de los sistemas operativos.
Multiusuario.- los sistemas operativos multiusuario son capaces de dar servicios a más de un
usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por
medio de sesiones remotas.
Monousuario.- los sistemas operativos monousuario solo permiten un usuario a la vez.
Monotareas.- los sistemas operativos monotareas son aquellos que solo permiten una sola
tarea a la vez por usuario.
Multitarea.- un sistema operativo multitarea es aquel que le permite al usuario estar haciendo
varias labores al mismo tiempo. Esto se dice que es algo virtual porque realmente le esta
asignando un determinado tiempo a cada proceso alternándolos, y así parece que fuera en
tiempo real.
Uniproceso.- un sistemas operativo uniproceso es aquel que es capaz de manejar solamente
un proceso de una computadora.
Multiproceso.- un sistema operativo multiproceso se refiere a que es capaz de manejar más
de un procesador y es capaz de utilizarlos a todos para distribuir su carga de trabajo.
Multiproceso simétrico.- los procesos son enviados indistintamente a cualquier procesador,
teniendo teóricamente una mejor distribución del trabajo.
Multiproceso asimétrico.- en este caso el sistema operativo selecciona un procesador el cual
jugara el papel de procesador maestro y servirá como el pivote para distribuir la carga a los
demás procesadores.
Sistema Operativo de Red.-los sistemas operativos de red se definen como aquellos que
tienen la capacidad de interactuar con sistemas operativos en otras computadoras por medio
de un medio de transmisión con el objetivo de intercambiar información, transferir archivos y
ejecutar comandos remotos.
Sistema Operativo Distribuido.- este sistema abarca los servicios de red, logrando integrar
recursos (impresoras, memoria, procesos, unidades de disco, etc.) en una sola maquina virtual
que el usuario ingresa en forma transparente, es decir el usuario no necesita saber la ubicación
de los recursos sino que los conoce por un nombre.
Sistemas Operativos Actuales.
Los sistemas operativos empleados normalmente son UNIX, Mac OS, MS-DOS, OS/2,
Windows-NT y Windows XP. El UNIX y sus clones permiten múltiples tareas y múltiples
usuarios. Su sistema de archivos proporciona un método sencillo de organizar archivos y
permite la protección de archivos. Sin embargo, las instrucciones del UNIX no son intuitivas.
Otros sistemas operativos multiusuario y multitarea son OS/2, desarrollado inicialmente por
Microsoft Corporation e International Business Machines Corporation (IBM), y Windows-NT,
desarrollado por Microsoft. El sistema operativo multitarea de las computadoras Apple se
denomina Mac OS. El DOS y su sucesor, el MS-DOS, son sistemas operativos populares entre
los usuarios de computadoras personales. Sólo permiten un usuario y una tarea.
Tecnologías Futuras
Los sistemas operativos siguen evolucionando. Los sistemas operativos distribuidos están
diseñados para su uso en un grupo de ordenadores conectados pero independientes que
comparten recursos. En un sistema operativo distribuido, un proceso puede ejecutarse en
cualquier ordenador de la red (normalmente, un ordenador inactivo en ese momento) para
aumentar el rendimiento de ese proceso. En los sistemas distribuidos, todas las funciones
básicas de un sistema operativo, como mantener los sistemas de archivos, garantizar un
comportamiento razonable y recuperar datos en caso de fallos parciales, resultan más
complejas.1
1.9.2 Los lenguajes de Programación.
Un lenguaje de programación es un conjunto de símbolos y de reglas para combinarlos que se
usan para expresar algoritmos. Los lenguajes de programación, al igual que los lenguajes que
usamos para comunicarnos, poseen un léxico (vocabulario o conjunto de símbolos permitidos),
una sintaxis, que indica cómo realizar construcciones del lenguaje, y una semántica, que
determina el significado de cada construcción correcta.
Los lenguajes de programación o lenguajes de alto nivel están específicamente diseñados para
programar computadoras. Sus características fundamentales son:

Son independientes de la arquitectura física de la computadora. Por tanto no obligan
al programador a conocer los detalles de la computadora que utiliza, y permiten
utilizar los mismos programas en computadoras diferentes, con distinto lenguaje
maquina (portabilidad).

Normalmente, una sentencia en un lenguaje de alto nivel da lugar, a ser traducida a
varias instrucciones en lenguaje máquina.

Utilizan notaciones cercanas a las habituales en el ámbito en que se usan. Con estos
lenguajes las operaciones se expresan con sentencias o frases muy parecidas al
lenguaje matemático o al lenguaje natural. La utilización de conceptos habituales
suele implicar, las siguientes cualidades:
a) Las instrucciones se expresan por medio de texto.
b) Se puede asignar un nombre simbólico a determinados componentes del
programa para facilitar su comprensión por las personas.
c) Dispone de instrucciones potentes, conteniendo operadores y funciones de
una gran diversidad: aritméticas, especiales, lógicas etc.
d) Pueden incluirse comentarios en las líneas de instrucciones, o en líneas
específicas de comentarios.
El Proceso De Traducción.
Para facilitar el uso de las computadoras, se han desarrollado lenguajes de programación que
permiten utilizar una simbología y una terminología próximas a las utilizadas tradicionalmente
en la descripción de problemas.
La traducción por un compilador (la compilación) consta de dos etapas fundamentales, que a
veces no están claramente diferenciadas a lo largo del proceso: la etapa de análisis del
programa fuente y la etapa de síntesis del programa objeto.
1
Silberschatz, Galván, Gagne, Sistemas Operativos México: Limusa Wiley
Análisis lexicográfico.
Consiste en descomponer el programa fuente en sus elementos constituyentes o símbolos
(tokens). Los símbolos de un lenguaje son caracteres o secuencias de caracteres que tienen
un significado concreto en el lenguaje: cada una de las palabras reservadas, los símbolos de
operadores, identificadores de variables, números.
El analizador lexicográfico (o escáner) aísta los símbolos, identifica su tipo, y almacena en las
tablas de símbolos la información del símbolo que pueda ser necesaria durante el proceso de
traducción.
Análisis sintáctico.
La sintaxis de un lenguaje de programación especifica cómo deben escribirse los programas,
mediante un conjunto de reglas de sintaxis o gramática del lenguaje es sintácticamente
correcto cuando sus estructuras (expresiones, sentencias declarativas, asignaciones, etc.)
aparecen en un orden correcto.
Se han definido varios sistemas para definir la sintaxis de los lenguajes de programación
(metalenguajes). Entre ellos cabe destacar la notación BNF (Backus-Naur Form) y los
diagramas sintácticos.
Análisis semántico
La semántica de un lenguaje de programación es el significado dado a las distintas
construcciones sintácticas. El proceso de traducción es, en esencia, la generación de un código
en lenguaje máquina con el mismo significado que el código fuente. En los lenguajes de
programación, el significado está ligado a la estructura sintáctica de las sentencias. Así, una
sentencia de asignación significa transferir el valor de la expresión de la derecha al identificador
de la izquierda.
Generación y optimización de código
En esta fase se crea un archivo con un código en lenguaje objeto (normalmente lenguaje
máquina) con el mismo significado que el texto fuente. El archivo-objeto generado puede ser
(dependiendo del compilador) directamente ejecutable, o necesitar otros pasos previos a la
ejecución, tales como ensamblado, encadenado y carga. En algunas ocasiones se utiliza un
lenguaje intermedio (distinto del código objeto final), con el propósito de facilitar la optimización
del código.
En la generación de código intermedio se complementan y consultan las tablas generadas en
fases anteriores (tablas de símbolos, de constantes, etc.). También se realiza la asignación de
memoria a los datos definidos en el programa.
Compiladores e Intérpretes.
Un compilador traduce un programa fuente, escrito en un lenguaje de alto nivel, a un
programa objeto, escrito en lenguaje ensamblador o máquina. El programa fuente suele estar
contenido en un archivo, y el programa objeto puede almacenarse como archivo en memoria
masiva para ser procesado posteriormente, sin necesidad de volver a realizar la traducción.
Un interprete hace que un programa fuente escrito en un lenguaje vaya sentencia a sentencia
traduciéndose y ejecutándose directamente por la computadora. El intérprete capta una
sentencia fuente, la analiza e interpreta, dando lugar a su ejecución inmediata, no creándose
por tanto un archivo o programa objeto almacenable en memoria masiva para ulteriores
ejecuciones.
Traductores cruzados. Emuladores
Se denominan traductores cruzados a aquellos traductores que efectúan la traducción de
programas fuente a programas objeto en una computadora distinta (computadora B) a aquella
en la que se ejecutará el programa objeto (computadora A).
También en una computadora puede simularse el comportamiento de otra. Estos programas de
simulación se suelen denominar emuladores.