Está en la página 1de 17

Sistemas Operativos

DEFINICIÓN DE SISTEMAS OPERATIVOS

El sistema operativo es el programa (o software) más importante de un


ordenador. Para que funcionen los otros programas, cada ordenador de uso general
debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales
como reconocimiento de la conexión del teclado, enviar la información a la pantalla,
no perder de vista archivos y directorios en el disco, y controlar los dispositivos
periféricos tales como impresoras, escáner, etc.

Para que un ordenador pueda hacer funcionar un programa informático (a


veces conocido como aplicación o software), debe contar con la capacidad necesaria
para realizar cierta cantidad de operaciones preparatorias que puedan garantizar el
intercambio entre el procesador, la memoria y los recursos físicos (periféricos).

En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad


y poder, es como un policía de tráfico, se asegura de que los programas y usuarios
que están funcionando al mismo tiempo no interfieran entre ellos. El sistema
operativo también es responsable de la seguridad, asegurándose de que los usuarios
no autorizados no tengan acceso al sistema.

El sistema operativo (a veces también citado mediante su forma


abreviada OS en inglés) se encarga de crear el vínculo entre los recursos materiales,
el usuario y las aplicaciones (procesador de texto, videojuegos, entre otros.) Cuando
un programa desea acceder a un recurso material, no necesita enviar información
específica a los dispositivos periféricos; simplemente envía la información al sistema
operativo, el cual la transmite a los periféricos correspondientes a través de su driver
(controlador). Si no existe ningún driver, cada programa debe reconocer y tener
presente la comunicación con cada tipo de periférico. De esta forma, el sistema
operativo permite la "disociación" de programas y hardware, principalmente para
simplificar la gestión de recursos y proporcionar una interfaz de usuario (MMI por
sus siglas en inglés) sencilla con el fin de reducir la complejidad del equipo.
FUNCIONES DEL SISTEMA OPERATIVO

El sistema operativo cumple varias funciones:

• 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.

• Gestiona los recursos del ordenador en sus niveles más bajos.

• Sobre el SO funcionan el resto de programas y aplicaciones del software.

• Dispone de una interfaz (elemento que hace posible la fácil comunicación


usuario maquina) liberando al usuario del conocimiento del hardware. El SO
Windows se basa en una interfaz gráfica, "GUI" (Interface Gráfica de
Usuario), permitiendo al usuario interactuar con el hardware de una forma
sencilla y rápida.

TIPOS DE SISTEMAS OPERATIVOS

SISTEMAS OPERATIVOS POR LOTES

Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con
poca o ninguna interacción entre los usuarios y los programas en ejecución. Se reúnen
todos los trabajos comunes para realizarlos al mismo tiempo, evitando la espera de
dos o más trabajos como sucede en el procesamiento en serie. Estos sistemas son de
los más tradicionales y antiguos, y fueron introducidos alrededor de 1956 para
aumentar la capacidad de procesamiento de los programas.

Cuando estos sistemas son bien planeados, pueden tener un tiempo de


ejecución muy alto, porque el procesador es mejor utilizado y los Sistemas
Operativos pueden ser simples, debido a la secuencia de ejecución de trabajos.

Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE,


del DC6600, el cual está orientado a procesamiento científico pesado, y el EXEC II
para el UNIVAC 1107, orientado a procesamiento académico.

Algunas otras características con que cuentan los Sistemas Operativos por lotes son:

• Requiere que el programa, datos y órdenes al sistema sean remitidos todos


juntos en forma de lote.

• Permiten poca o ninguna interacción usuario/programa en ejecución.

• Mayor potencial de utilización de recursos que procesamiento serial simple en


sistemas multiusuarios.

• No conveniente para desarrollo de programas por bajo tiempo de retorno y


depuración fuera de línea.

• Conveniente para programas de largos tiempos de ejecución (por ejemplo:


análisis estadísticos, nóminas de personal, entre otros.).

• Se encuentra en muchos computadores personales combinados con


procesamiento serial.

• Planificación del procesador sencilla, típicamente procesados en orden de


llegada.

• Planificación de memoria sencilla, generalmente se divide en dos: parte


residente del S.O. y programas transitorios.

• No requieren gestión crítica de dispositivos en el tiempo.

• Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca


protección y ningún control de concurrencia para el acceso.
SISTEMAS OPERATIVOS MONOUSUARIO

Los sistemas monousuarios son aquellos que nada más puede atender a un solo
usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de
aplicación que se este ejecutando.

Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada,
salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las
instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario.
Y están orientados principalmente por los microcomputadores.

SISTEMAS OPERATIVOS MULTIUSUARIO

Es todo lo contrario a monousuario; y en esta categoría se encuentran todos los


sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que
comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes.

En otras palabras consiste en el fraccionamiento del tiempo (timesharing).

SISTEMAS OPERATIVOS DISTRIBUIDOS

Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores.


Puede ser que este conjunto de procesadores esté en un equipo o en diferentes, en este
caso es trasparente para el usuario. Existen dos esquemas básicos de éstos. Un
sistema fuertemente acoplado es a es aquel que comparte la memoria y un reloj
global, cuyos tiempos de acceso son similares para todos los procesadores. En un
sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya
que cada uno cuenta con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del
sistema se compone otro componente debe de ser capaz de reemplazarlo.

Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los
siguientes: Sprite, Solaris-MC, Mach, Chorus, Spring, Amoeba, Taos, entre otros.

Características de los Sistemas Operativos distribuidos:

• Colección de sistemas autónomos capaces de comunicación y cooperación


mediante interconexiones hardware y software.

• Gobierna operación de un S.C. y proporciona abstracción de máquina virtual a


los usuarios.

• Objetivo clave es la transparencia.

• Generalmente proporcionan medios para la compartición global de recursos.

• Servicios añadidos: denominación global, sistemas de archivos distribuidos,


facilidades para distribución de cálculos (a través de comunicación de
procesos internodos, llamadas a procedimientos remotos, etc.).

SISTEMAS OPERATIVOS DE RED

Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de
algún medio de comunicación (físico o no), con el objetivo primordial de poder
compartir los diferentes recursos y la información del sistema.

El primer Sistema Operativo de red estaba enfocado a equipos con un procesador


Motorola 68000, pasando posteriormente a procesadores Intel como Novell NetWare.

Los Sistemas Operativos de red más ampliamente usados son: Novell NetWare,
Personal NetWare, LAN Manager, Windows NT Server, UNIX, LANtastic.
SISTEMAS OPERATIVOS DE TIEMPO COMPARTIDO

Permiten la simulación de que el sistema y sus recursos son todos para cada usuario.
El usuario hace una petición a la computadora, esta la procesa tan pronto como le es
posible, y la respuesta aparecerá en la terminal del usuario.

Los principales recursos del sistema, el procesador, la memoria, dispositivos de E/S,


son continuamente utilizados entre los diversos usuarios, dando a cada usuario la
ilusión de que tiene el sistema dedicado para sí mismo. Esto trae como consecuencia
una gran carga de trabajo al Sistema Operativo, principalmente en la administración
de memoria principal y secundaria.

Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-


10.

SISTEMAS OPERATIVOS CLIENTE/SERVIDOR

El modelo de sistema operativo cliente-servidor permite al usuario en una


máquina, llamada el cliente, requerir algún tipo de servicio de una máquina a la que
está unido, llamado el servidor, mediante una red como una LAN (Red de Área Lo-
cal) o una WAN (Red de Área Mundial). Estos servicios pueden ser peticiones de
datos de una base de datos, de información contenida en archivos o los archivos en sí
mismos, o peticiones de imprimir datos en una impresora asociada.

Aunque clientes y servidores suelen verse como máquinas separadas, pueden,


de hecho, ser dos áreas separadas en la misma máquina. Por tanto, una única máquina
Unix puede ser al mismo tiempo cliente y servidor. Además una máquina cliente uni-
da a un servidor puede ser a su vez servidor de otro cliente y el servidor puede ser un
cliente de otro servidor en la red. También es posible tener el cliente corriendo en un
sistema operativo y el servidor en otro distinto.
Hay varios tipos comunes de máquinas clientes en entornos cliente-servidor.
Uno de los clientes más populares es una computadora personal basada en Intel que
ejecuta aplicaciones de DOS en un entorno Windows. Otra cliente popular es una
terminal X; de hecho, el sistema X Windows es un modelo cliente-servidor clásico.

Los clientes en una red cliente-servidor son las máquinas o procesos que piden
información, recursos y servicios a un servidor unido. Estas peticiones pueden ser
cosas como proporcionar datos de una base de datos, aplicaciones, partes de archivos
o archivos completos a la máquina cliente. Los datos, aplicaciones o archivos pueden
residir en un servidor y ser simplemente accedidos por el cliente o pueden ser copia-
dos o movidos físicamente a la máquina cliente.

DEFINICIÓN DE PARALELISMO

El paralelismo es una forma de computación en la cual varios cálculos pueden reali-


zarse simultáneamente, basado en el principio de dividir los problemas grandes para obtener
varios problemas pequeños, que son posteriormente solucionados en paralelo. Hay varios
tipos diferentes de paralelismo: nivel de bit, nivel de instrucción, de datos y de tarea. El para-
lelismo ha sido empleado durante muchos años, sobre todo para la Computación de alto ren-
dimiento.

DEFINICIÓN DE CONCURRENCIA

Es la propiedad de los sistemas que permiten que múltiples procesos sean


ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.

Los procesos concurrentes pueden ser ejecutados realmente de forma


simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En
cambio, la concurrencia es simulada si sólo existe un procesador encargado de
ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma
alternada en uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera
simula que se están ejecutando a la misma vez.
Debido a que los procesos concurrentes en un sistema pueden interactuar entre
otros también en ejecución, el número de caminos de ejecución puede ser
extremadamente grande, resultando en un comportamiento sumamente complejo. Las
dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de
lenguajes de programación y conceptos que permitan hacer la concurrencia más
manejable.

DEFINICIÓN DE PROCESO

Un proceso es un concepto manejado por el sistema operativo que consiste en


el conjunto formado por:

 Las instrucciones de un programa destinadas a ser ejecutadas por el


microprocesador.
 Su estado de ejecución en un momento dado, esto es, los valores de
los registros de la CPU para dicho programa.
 Su memoria de trabajo, es decir, la memoria que ha reservado y sus
contenidos.
 Otra información que permite al sistema operativo su planificación.

Esta definición varía ligeramente en el caso de sistemas operativos multihilo,


donde un proceso consta de uno o más hilos, la memoria de trabajo (compartida por
todos los hilos) y la información de planificación. Cada hilo consta de instrucciones
y estado de ejecución.

Los procesos son creados y destruidos por el sistema operativo, así como tam-
bién este se debe hacer cargo de la comunicación entre procesos, pero lo hace a peti-
ción de otros procesos. El mecanismo por el cual un proceso crea otro proceso se de-
nomina bifurcación (fork). Los nuevos procesos son independientes y no comparten
memoria (es decir, información) con el proceso que los ha creado.
DEFINICIÓN DE EXCLUSIÓN MUTUA

Exclusión mutua (comúnmente abreviada como mutex por mutual exclusion) se usan
en programación concurrente para evitar el uso simultáneo de recursos comunes, como varia-
bles globales, por fragmentos de código conocidos como secciones críticas.

La mayor parte de estos recursos son las señales, contadores, colas y otros datos que
se emplean en la comunicación entre el código que se ejecuta cuando se da servicio a una
interrupción y el código que se ejecuta el resto del tiempo. Se trata de un problema de vital
importancia porque, si no se toman las precauciones debidas, una interrupción puede ocurrir
entre dos instrucciones cualesquiera del código normal y esto puede provocar graves fallos.

La técnica que se emplea por lo común para conseguir la exclusión mutua es inhabili-
tar las interrupciones durante el conjunto de instrucciones más pequeño que impedirá la co-
rrupción de la estructura compartida (la sección crítica). Esto impide que el código de la inte-
rrupción se ejecute en mitad de la sección crítica.

Algunos sistemas tienen instrucciones de operación indivisibles similares a las ante-


riormente descritas para manipular las listas enlazadas que se utilizan para las colas de even-
tos y otras estructuras de datos que los sistemas operativos usan comúnmente.

La mayoría de los métodos de exclusión mutua clásicos intentan reducir la latencia y


espera activa mediante las colas y cambios de contexto. Algunos investigadores afirman que
las pruebas indican que estos algoritmos especiales pierden más tiempo del que ahorran.
DEFINICIÓN DE SPOOLING

Spooling (Simultaneous Peripheral Operations On-Line) se refiere al proceso median-


te el cual la computadora introduce trabajos en un buffer (un área especial en memo-
ria o en un disco), de manera que un dispositivo pueda acceder a ellos cuando esté
listo.

El spooling es útil en caso de dispositivos que acceden a los datos a distintas veloci-
dades. El buffer proporciona un lugar de espera donde los datos pueden estar hasta
que el dispositivo (generalmente más lento) los procesa. Esto permite que la CPU
pueda trabajar en otras tareas mientras que espera que el dispositivo más lento acabe
de procesar el trabajo.

La aplicación más común del spooling es la impresión. En este caso, los documentos
son cargados en un buffer, que habitualmente es un área en un disco, y la impresora
los saca de éste a su propia velocidad. El usuario puede entonces realizar otras opera-
ciones en el ordenador mientras la impresión tiene lugar en segundo plano.
El spooling permite también que los usuarios coloquen varios trabajos de impresión
en una cola de una vez, en lugar de esperar a que cada uno acabe para enviar el si-
guiente.

DEFINICIÓN DE MEMORIA VIRTUAL

La memoria virtual es una técnica de administración de la memoria real que permite


al sistema operativo brindarle al software de usuario y a sí mismo un espacio de direcciones
mayor que la memoria real o física.

La mayoría de los ordenadores tienen cuatro tipos de memoria: registros en la CPU, la


memoria caché (tanto dentro como fuera del CPU), la memoria física (generalmente en forma
de RAM, donde la CPU puede escribir y leer directa y razonablemente rápido) y el disco duro
que es mucho más lento, pero también más grande y barato.
Muchas aplicaciones requieren el acceso a más información (código y datos) que la
que se puede mantener en memoria física. Esto es así sobre todo cuando el sistema operativo
permite múltiples procesos y aplicaciones ejecutándose simultáneamente. Una solución al
problema de necesitar mayor cantidad de memoria de la que se posee consiste en que las
aplicaciones mantengan parte de su información en disco, moviéndola a la memoria principal
cuando sea necesario. Hay varias formas de hacer esto. Una opción es que la aplicación mis-
ma sea responsable de decidir qué información será guardada en cada sitio (segmentación), y
de traerla y llevarla. La desventaja de esto, además de la dificultad en el diseño e implemen-
tación del programa, es que es muy probable que los intereses sobre la memoria de dos o
varios programas generen conflictos entre sí: cada programador podría realizar su diseño
teniendo en cuenta que es el único programa ejecutándose en el sistema. La alternativa es
usar memoria virtual, donde la combinación entre hardware especial y el sistema operativo
hace uso de la memoria principal y la secundaria para hacer parecer que el ordenador tiene
mucha más memoria principal (RAM) que la que realmente posee. Este método es invisible a
los procesos.

Aunque la memoria virtual podría estar implementada por el software del sistema
operativo, en la práctica casi siempre se usa una combinación de hardware y software, dado
el esfuerzo extra que implicaría para el procesador.

DEFINICIÓN DE EMULACIÓN

En informática, un emulador es un software que permite ejecutar programas


de computadora o videojuegos en una plataforma (arquitectura hardware o sistema
operativo) diferente de aquella para la cual fueron escritos originalmente. A diferen-
cia de un simulador, que sólo trata de reproducir el comportamiento del programa, un
emulador trata de modelar de forma precisa el dispositivo de manera que este funcio-
ne como si estuviese siendo usado en el aparato original.

Un uso popular de los emuladores es el de imitar la experiencia de los video-


juegos de máquinas recreativas o videoconsolas en computadoras personales, o el
poder ser jugados en otras videoconsolas. La emulación de videojuegos de sistemas
antiguos (abandonware) en las modernas computadoras personales y videoconsolas
de hoy día resulta generalmente más cómoda y práctico que en los dispositivos origi-
nales. Sin embargo, puede ser requerido a los creadores de emuladores una licencia
de software para escribir programas originales que dupliquen la funcionabilidad de la
ROM y BIOS del hardware original, lo que comúnmente se conoce como high-level
emulation o emulación de alto nivel.

INSTRUCCIONES COBEGIN Y COEND

Cobegin y Coend

Son un conjunto de instrucciones que se ejecutan en paralelo.

Ejemplo:

Cobegin

accion1;

accion2;

Acción n;

Coend

Todas las instrucciones insertadas entre las palabras clave COBEGIN y COEND se
ejecutarán concurrentemente.
MICROPROGRAMACIÓN

La microprogramación consiste en un conjunto de microinstrucciones, para


poder ejecutar líneas de código y operaciones.

La microprogramación es un lenguaje de programación a un nivel muy bajo


sin llegar al nivel más bajo (que es donde las operaciones se realizan con números
binarios).

Para poder realizar la microprogramación, se deben conocer muy bien los re-
gistros del procesador en el que se va a trabajar, ya que en este lenguaje se interactúa
muy de cerca con ellos. También es importante conocer las instrucciones del mismo
para poder usar algunas de ellas que simplifiquen las instrucciones, todo esto con las
microinstrucciones que se usen por default para la programación.

Un ejemplo de microprogramación seria la siguiente línea

MOV AX,0000000100000000b

PUSH AX

POPF

Esta instrucción pretende modificar un registro de bandera (If) con un valor de


1, estas microinstrucciones juntas en un lenguaje de alto nivel podrían significar algo
como "If b = a", como se ve codificar en microprogramación es un poco más laborio-
so, la ventaja de este lenguaje como en la mayoría de los lenguajes de bajo nivel, es la
precisión de los datos, ya que en todo momento se sabe dónde están los datos, y en
qué posición se encuentran los registros.
DEFINICIÓN DE SEMÁFOROS

Un semáforo es una variable especial protegida (o tipo abstracto de datos que solo es
manejado por el sistema operativo) que constituye el método clásico para restringir o permi-
tir el acceso a recursos compartidos (por ejemplo, un recurso de almacenamiento del sistema
o variables del código fuente) en un entorno de multiprocesamiento (en el que se ejecutarán
varios procesos concurrentemente). Fueron inventados por Edsger Dijkstra y se usaron por
primera vez en el sistema operativo THEO.

DEFINICIÓN DE MONITORES

Monitor o Pantalla es una herramienta de sincronización que posee una estructura


propia, y una colección de procedimientos, variables y estructuras de datos que se agrupan en
un módulo especial.

Los procesos pueden llamar a los procedimientos de un monitor, siempre que lo requieran
pero no pueden acceder directamente a las estructuras de datos del monitor.
BIBLIOGRAFÍA
http:es.wikipedia.org/wiki/sistemas_ operativos

http://www.monografias.com/trabajos81/sistemas-operartivos/sistemas-
operartivos.shtml

http://es.wikipedia.org/wiki/Sistema_operativo_de_red

TANENBAUM, Andrew - Sistemas Operativos. Diseño e Implementación.

http://es.wikipedia.org/wiki/emulador

También podría gustarte