Fundamentos de Sistemas Operativos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 87

FUNDAMENTOS DE

SISTEMAS
OPERATIVOS
UNIDAD I

PROF. JOSÉ GUADALUPE SÁNCHEZ HERNÁNDEZ


¿Qué es un sistema operativo?

El sistema operativo es el principal programa que se ejecuta en toda computadora de propósito general. Los hay
de todo tipo, desde muy simples hasta terriblemente complejos, y entre más casos de uso hay para el cómputo
en la vida diaria, más variedad habrá en ellos

La diferencia en el uso son sólo –cuando mucho– consecuencias del diseño de un sistema operativo. Más aún,
con el mismo sistema operativo –como pueden constatarlo comparando dos distribuciones de Linux, o incluso la
forma de trabajo de dos usuarios en la misma computadora– es posible tener entornos operativos
completamente disímiles.

La importancia de estudiar este tema radica no sólo en comprender los mecanismos que emplean los sistemas
operativos para cumplir sus tareas sino en entenderlos para evitar los errores más comunes al programar, que
pueden resultar desde un rendimiento deficiente hasta pérdida de información. Como desarrolladores,
comprender el funcionamiento básico de los sistemas operativos y las principales alternativas que ofrecen en
muchos de sus puntos, o saber diseñar algoritmos y procesos que se ajusten mejor al sistema operativo en que
vayan a ejecutarse, puede resultar en una diferencia cualitativa decisiva en el producto final.
Los sistemas de archivos resultan un área de especial interés para administradores de sistemas: ¿cómo
comparar las virtudes y desventajas de tantos sistemas existentes, por qué puede resultar conveniente mezclar
distintos sistemas en el mismo servidor, cómo evitar la corrupción o pérdida de información? Lo que es más,
¿cómo recuperar información de un disco dañado?

En el área de la seguridad informática, la relación resulta obvia. Desde el punto de vista del atacante, si le
interesa localizar vulnerabilidades que permitan elevar su nivel de privilegios, ¿cómo podría lograrlo sin
comprender cómo se engranan los diversos componentes de un sistema?

Del mismo modo, para quien busca defender un sistema (o una red), resulta fundamental comprender cuáles
son los vectores de ataque más comunes y –nuevamente– la relación entre los componentes involucrados para
poder remediar o, mejor aún, prevenir dichos ataques.
Funciones y objetivos del sistema operativo

El sistema operativo es el único programa que interactúa directamente con el hardware de la computadora.
Sus funciones primarias son:

 Abstracción Los programas no deben tener que preocuparse de los detalles de acceso a hardware, o de la
configuración particular de una computadora.

 Administración de recursos Una sistema de cómputo puede tener a su disposición una gran cantidad de
recursos (memoria, espacio de almacenamiento, tiempo de procesamiento, etc.), y los diferentes procesos
que se ejecuten en él compiten por ellos.

 Aislamiento En un sistema multiusuario y multitarea cada proceso y cada usuario no tendrá que
preocuparse por otros que estén usando el mismo sistema —Idealmente, su experiencia será la misma que
si el sistema estuviera exclusivamente dedicado a su atención (aunque fuera un sistema menos poderoso).
Proceso por lotes (batch processing) Los antecedentes a lo que hoy se conoce como sistema operativo pueden
encontrarse en la automatización inicial del procesamiento de diferentes programas, surgida en los primeros
centros de cómputo: cuando en los años cincuenta aparecieron los dispositivos perforadores/lectores de
tarjetas de papel, el tiempo que una computadora estaba improductiva esperando a que estuviera lista una
tarea (como se designaba a una ejecución de cada determinado programa) para poder ejecutarla disminuyó
fuertemente ya que los programadores entregaban su lote de tarjetas perforadas (en inglés, batches) a los
operadores, quienes las alimentaban a los dispositivos lectores, que lo cargaban en memoria en un tiempo
razonable, iniciaban y monitoreaban la ejecución, y producían los resultados.

Los sistemas monitores se fueron sofisticando


al implementar protecciones que evitaran la
corrupción de otros trabajos (por ejemplo,
lanzar erróneamente la instrucción leer
siguiente tarjeta causaría que el siguiente
trabajo encolado perdiera sus primeros
caracteres, corrompiéndolo e impidiendo su
ejecución), o que entraran en un ciclo infinito,
estableciendo alarmas (timers) que
interrumpirían la ejecución de un proceso si
éste duraba más allá del tiempo estipulado.

Estos monitores implicaban la modificación


del hardware para considerar dichas
características de seguridad —y ahí se puede
hablar ya de la característica básica de gestión
de recursos que identifica a los sistemas
operativos.
Sistemas en lotes con dispositivos de carga (spool)

Una mejora natural a este último punto fue la invención del spool: un mecanismo de entrada/salida que
permitía que una computadora de propósito específico, mucho más económica y limitada, leyera las tarjetas y
las fuera convirtiendo a cinta magnética, un medio mucho más rápido, teniéndola lista para que la
computadora central la cargara cuando terminara con el trabajo anterior. Del mismo modo, la computadora
central guardaba sus resultados en cinta para que equipos especializados la leyeran e imprimieran para el
usuario solicitante.

La palabra spool (bobina) se tomó como acrónimo inverso hacia Simultaneous Peripherial Operations On-Line,
operación simultánea de periféricos en línea.
Sistemas multiprogramados.

A lo largo de su ejecución, un programa normalmente pasa por etapas con muy distintas características:
durante un ciclo fuertemente dedicado al cálculo numérico, el sistema opera limitado por el CPU (CPU-
bound), mientras que al leer o escribir resultados a medios externos (incluso mediante spools) el límite es
impuesto por los dispositivos, esto es, opera limitado por entrada-salida (I-O bound). La programación
multitareas o los sistemas multiprogramados buscaban maximizar el tiempo de uso efectivo del procesador
ejecutando varios procesos al mismo tiempo.
Sistemas de tiempo compartido

El modo de interactuar con las computadoras se modificó drásticamente durante los años sesenta, al
extenderse la multitarea para convertirse en sistemas interactivos y multiusuarios, en buena medida
diferenciados de los anteriores por la aparición de las terminales (primero teletipos seriales, posteriormente
equipos con una pantalla completa como se conocen hasta hoy).

En primer término, la tarea de programación y depuración del código se simplificó fuertemente al poder
hacer el programador directamente cambios y someter el programa a la ejecución inmediata. En segundo
término, la computadora nunca más estaría simplemente esperando a que esté listo un programa: mientras
un programador editaba o compilaba su programa, la computadora seguía calculando lo que otros procesos
requirieran.
¿Y del lado de las computadoras personales?

Si bien la discusión hasta este momento asume una computadora central con operadores dedicados y
múltiples usuarios, en la década de los setenta comenzaron a aparecer las computadoras personales, sistemas
en un inicio verdaderamente reducidos en prestaciones y a un nivel de precios que los ponían al alcance,
primero, de los aficionados entusiastas y, posteriormente, de cualquiera.

Las primeras computadoras personales eran distribuidas sin sistemas operativos o lenguajes de programación;
la interfaz primaria para programarlas era mediante llaves (switches), y para recibir sus resultados, se
utilizaban bancos de LEDs. Claro está, esto requería conocimientos especializados, y las computadoras
personales eran aún vistas sólo como juguetes caros.

La microcomputadora Altair 8800, primera computadora personal con distribución


masiva, a la venta a partir de 1975 (imagen de la Wikipedia: Altair 8800).
La revolución de los 8 bits

La verdadera revolución apareció cuando‚ poco tiempo más tarde, comenzaron a venderse computadoras
personales con salida de video (típicamente por medio de una televisión) y entrada por un teclado. Estas
computadoras popularizaron el lenguaje BASIC, diseñado para usuarios novatos en los sesenta, y para
permitir a los usuarios gestionar sus recursos (unidades de cinta, pantalla posicionable, unidades de disco,
impresoras, modem, etc.) llevaban un software mínimo de sistema —nuevamente, un proto-sistema
operativo.

La Commodore Pet 2001, en el mercado desde 1977, una de las primeras con
intérprete de BASIC (imagen de la Wikipedia: Commodore PET).
La computadora para fines “serios”: la familia PC

Al aparecer las computadoras personales “serias”, orientadas a la oficina más que al hobby, a principios de los
ochenta (particularmente representadas por la IBM PC, 1981), sus sistemas operativos se comenzaron a
diferenciar de los equipos previos al separar el entorno de desarrollo en algún lenguaje de programación del
entorno de ejecución.

El papel principal del sistema operativo ante el usuario era administrar los archivos de las diversas
aplicaciones mediante una sencilla interfaz de línea de comando, y lanzar las aplicaciones que el usuario
seleccionaba.

La PC de IBM fue la primer arquitectura de computadoras personales en desarrollar una amplia familia de
clones, computadoras compatibles diseñadas para trabajar con el mismo sistema operativo, y que
eventualmente capturaron casi 100% del mercado. Prácticamente todas las computadoras de escritorio y
portátiles en el mercado hoy derivan de la arquitectura de la IBM PC.

La computadora IBM PC modelo 5150


(1981), iniciadora de la arquitectura
predominantemente en uso hasta el
día de hoy.
(imagen de la Wikipedia: IBM
Personal Computer).
El impacto del entorno gráfico (WIMP)

Hacia mediados de los ochenta comenzaron a aparecer computadoras con interfaces usuario gráficas
(Graphical User Interfaces, textscguis) basadas en el paradigma WIMP (Windows, Icons, Menus, Pointer;
Ventanas, Iconos, Menúes, Apuntador), que permitían la interacción con varios programas al mismo tiempo.
Esto no necesariamente significa que sean sistemas multitarea: por ejemplo, la primer interfaz de MacOS
permitía ver varias ventanas abiertas simultáneamente, pero sólo el proceso activo se ejecutaba.

Esto comenzó, sin embargo, a plantear inevitablemente las necesidades de concurrencia a los programadores.
Los programas ya no tenían acceso directo a la pantalla para manipular a su antojo, sino que a una abstracción
(la ventana) que podía variar sus medidas, y que requería que toda la salida fuera estrictamente mediante las
llamadas a bibliotecas de primitivas gráficas que comenzaron a verse como parte integral del sistema
operativo.

Apple Macintosh (1984),


popularizó la interfaz usuario
gráfica (GUI) (imagen de la
Wikipedia: Macintosh).
Convergencia de los dos grandes mercados Conforme fueron apareciendo los CPU con características
suficientes en el mercado para ofrecer la protección y aislamiento necesario (particularmente, ntel 80386 y
Motorola 68030), la brecha de funcionalidad entre las computadoras personales y las estaciones de trabajo y
mainframes se fue cerrando. Hacia principios de los 1990, la mayor parte de las computadoras de
arquitecturas alternativas fueron cediendo a las presiones del mercado, y hacia mediados de la década sólo
quedaban dos arquitecturas principales: la derivada de IBM y la derivada de la Apple Macintosh.

Los sistemas operativos primarios para ambas plataformas fueron respondiendo a las nuevas características
del hardware: en las IBM, la presencia de Microsoft Windows (originalmente un entorno operativo desde su
primera edición en 1985, evolucionando hacia un sistema operativo completo ejecutando sobre una base de
MS-DOS en 1995) se fue haciendo prevalente hasta ser la norma. Windows pasó de ser un sistema
meramente de aplicaciones propias y que operaba únicamente por reemplazo de aplicación activa a ser un
sistema de multitarea cooperativa y, finalmente un sistema que requería protección en hardware (80386) e
implementaba multitarea apropiativa.

A partir del 2003, el núcleo de Windows en más amplio uso fue reemplazado por un desarrollo hecho de
inicio como un sistema operativo completo y ya no como un programa bajo MS-DOS: el núcleo de nueva
tecnología (Windows NT), que, sin romper compatibilidad con los APIs históricos de Windows, ofreció mucho
mayor estabilidad. Por el lado de Apple, la evolución fue muy en paralelo: ante un sistema ya agotado y
obsoleto, el MacOS 9, en 2001 anunció una nueva versión de su sistema operativo que fue en realidad un
relanzamiento completo: MacOS X es un sistema basado en un núcleo Unix BSD, sobre el microkernel Mach.
Dispositivos móviles

En los últimos años, buena parte del desarrollo en el mundo del cómputo se ha volcado hacia el modelo de
cómputo representado, genéricamente, por los dispositivos móviles. Dado el interés que estas plataformas
han despertado, se torna necesario abordar el tema, aunque sea más para anotar similitudes que diferencias
con el resto de los equipos de cómputo. Para hacer esto, sin embargo, es necesario primero abordar la
definición: ¿en qué consiste un dispositivo móvil, cuáles son los límites de su definición, qué fronteras se le
pueden definir? Es difícil encontrar límites claros y duros para lo que este concepto abarca; en el transcurso
de esta sección se abordan las características de las computadoras diseñadas no sólo en el nivel del hardware,
sino de interfaz usuario, para que su propietario las cargue consigo y las convierta en un asistente para sus
actividades cotidianas, para la organización de su vida diaria. Partiendo de esta definición se tiene que un
teléfono inteligente será tratado como dispositivo móvil, pero una computadora portátil no, puesto que su
interfaz es la misma de una computadora estándar.
El iPhone, de Apple,
introdujo la primera
interfaz usuario
multitouch y detonó
la popularidad de los
teléfonos
inteligentes —y con
ello, del cómputo
móvil

Psion Organiser, Sharp ZQ-770,


anunciada como la diseño bajo uno de
primer computadora los formatos de
de bolsillo práctica del PDA (Asistente
mundo en 1984. En la Personal Digital)
imagen, un más popularizados
dispositivo de su de la década de los
segunda generación noventa
iOS El sistema operativo de Apple, y diseñado exclusivamente para el hardware producido por dicha compañía.
Fue el primero en implementar la interfaz usuario multitouch y, en buena medida, se puede ver como el
responsable de la explosión y universalización en el uso de dispositivos móviles. Al igual que el sistema
operativo que emplean para sus equipos de escritorio, MacOS X, iOS está basado en el núcleo Darwin,
derivado de FreeBSD, un sistema libre tipo Unix.

Android Diseñado por la compañía Google, basa la mayor parte de su operación en software libre (un núcleo
Linux, máquina virtual Java, y muchas de las bibliotecas de sistema comunes en sistemas Linux), agregando una
capa de servicios propietarios. La estrategia de Google ha sido inversa a la de Apple: en vez de fabricar sus
propios dispositivos, otorga licencias para el uso de este sistema operativo a prácticamente todos los
fabricantes de hardware.

Windows Phone Microsoft ofrece una versión de su sistema operativo, compatible en API con el Windows de
escritorio, pero compilado para procesador ARM.

Symbian Si bien este sistema operativo ya está declarado como oficialmente muerto, su efecto en el desarrollo
temprano del segmento fue fundamental, y no puede ser ignorado. Symbian fue la plataforma principal para
Nokia en su época de gloria, así como para muchos otros fabricantes.

Firefox OS La fundación Mozilla, responsable del navegador Firefox (y heredera del histórico Netscape) está
intentando entrar al mercado móbil con este sistema, basado (al igual que Android) en el núcleo de Linux, pero
orientado a ofrecer una interfaz de programación siguiendo completamente los estándares y lenguajes para
uso en la Web.
Concurrencia

Es una propiedad de los sistemas en la cual los procesos de un cómputo se hacen simultáneamente, y pueden
interactuar entre ellos. Los cálculos (operaciones) pueden ser ejecutados en múltiples procesadores, o
ejecutados en procesadores separados físicamente o virtualmente en distintos hilos de ejecución. Un sin
número de modelos matemáticos han sido desarrollados para cálculos de la concurrencia en general
incluyendo redes de Petri, procesos Calculi, el modelo máquina de accesos random en paralelo, el Modelo
Actor y el Lenguaje Reo.
También concurrente significa algo que se repite cada cierto tiempo en un mismo lugar.

El problema de la cena de los filósofos lo propuesto


por Edgar Dijkstra en 1965 para representar el problema de
la sincronización de procesos en un sistema operativo.
Por turno cíclico: Se empieza por un filósofo, que si quiere puede comer y después
pasa su turno al de la derecha. Cada filósofo sólo puede comer en su turno

Varios turnos: Se establecen varios turnos. Para hacerlo más claro supongamos que
cada filósofo que puede comer (es su turno) tiene una ficha que después pasa a la
derecha. Si por ejemplo hay 7 comensales podemos poner 3 fichas en posiciones
alternas (entre dos de las fichas quedarían dos filósofos).
Se establecen turnos de tiempo fijo. Por ejemplo cada 5 minutos se pasan las fichas
(y los turnos) a la derecha.

Colas de tenedores: Cuando un filósofo quiere comer se pone en la cola de los dos
tenedores que necesita. Cuando un tenedor está libre lo toma. Cuando toma los dos
tenedores, come y deja libre los tenedores.
Diversas Visto desde el otro lado, cada tenedor sólo puede tener dos filósofos en cola,
soluciones siempre los mismos.
posibles
Resolución de conflictos en colas de tenedores: Cada vez que un filósofo tiene un
tenedor espera un tiempo aleatorio para conseguir el segundo tenedor. Si en ese
tiempo no queda libre el segundo tenedor, suelta el que tiene y vuelve a ponerse en
cola para sus dos tenedores.
Si un filósofo A suelta un tenedor (porque ha comido o porque ha esperado
demasiado tiempo con el tenedor en la mano) pero todavía desea comer, vuelve a
ponerse en cola para ese tenedor. Si el filósofo adyacente B está ya en esa cola de
tenedor (tiene hambre) lo toma y si no vuelve a cogerlo A.

El portero del comedor: Se indica a los filósofos que abandonen la mesa cuando no
tengan hambre y que no regresen a ella hasta que vuelvan a estar hambrientos
(cada filósofo siempre se sienta en la misma silla). La misión del portero es controlar
el número de filósofos en la sala, limitando su número a n-1.
Almacenamiento de la información

La tendencia actual es que la información sea tratada en formato digital, como software, documentos, música,
vídeo y otros formatos. Así pues, se hacen necesarios soportes con gran capacidad de almacenamiento y una
buena gestión, control, organización y administración de esta información, a fin de evitar pérdidas irreparables.

Cada archivo se identifica por su nombre -en Windows puede llegar a tener una longitud de 255 caracteres- y
una extensión que nos informa de qué tipo de archivo se trata.

El sistema de archivos

Ya hemos visto que el sistema operativo proporciona un sistema de archivos que permite manipular, crear,
eliminar, establecer una correspondencia entre archivos y directorios y realizar copias de seguridad de los
archivos. Estos sistemas no cesan de evolucionar para dar respuesta a las nuevas necesidades de capacidad
y seguridad. En la siguiente tabla se muestra una comparativa de sistemas de archivos:
Dispositivos de almacenamiento

Se han desarrollado diferentes dispositivos capaces de almacenar información y diseñados para distintos
propósitos, como pueden ser, por ejemplo, disponer de gran capacidad de almacenamiento, que sean
portátiles, de bajo consumo de energía, de reducidas dimensiones e, incluso, que no lleve partes móviles.
Compartir

Se le denomina compartir a el manejo de toda la información que se comparte Con los sistemas de
almacenamiento como en el distribuir los datos a través de los buses.

La función del bus es la de permitir la conexión lógica entre distintos subsistemas de un sistema digital, enviando
datos entre dispositivos de distintos órdenes: desde dentro de los mismos circuitos integrados, hasta equipos
digitales completos que forman parte de supercomputadoras.

La mayoría de los buses están basados en conductores metálicos por los cuales se trasmiten señales eléctricas
que son enviadas y recibidas con la ayuda de integrados que poseen una interfaz del bus dado y se encargan de
manejar las señales y entregarlas como datos útiles. Las señales digitales que se trasmiten son de datos, de
direcciones o señales de control.

Los buses definen su capacidad de acuerdo a la frecuencia máxima de envío y al ancho de los datos. Por lo
general estos valores son inversamente proporcionales: si se tiene una alta frecuencia, el ancho de datos debe
ser pequeño. Esto se debe a que la interferencia entre las señales (crosstalk) y la dificultad de sincronizarlas,
crecen con la frecuencia, de manera que un bus con pocas señales es menos susceptible a esos problemas y
puede funcionar a alta velocidad.

Todos los buses de computador tienen funciones especiales como las interrupciones y las DMA que permiten
que un dispositivo periférico acceda a una CPU o a la memoria usando el mínimo de recursos.
Existen dos tipos de transferencia en los buses:

Serie: El bus solamente es capaz de transferir los datos bit a bit. Es decir, el bus tiene un único cable que
transmite la información.

Paralelo: El bus permite transferir varios bits simultáneamente, por ejemplo 8 bits.
Aunque en primera instancia parece mucho más eficiente la transferencia en paralelo, esta presenta
inconvenientes:

La frecuencia de reloj en el bus paralelo tiene que ser más reducida.


La longitud de los cables que forman el bus está limitada, ya que a partir de determinada longitud la
probabilidad de que los bits lleguen desordenados es elevada.
Además, los modernos buses serie están formados por varios canales: En este caso se transmite por varios
buses serie simultáneamente.
Almacenar
Es la ubicación de los pulsos eléctricos en las celdas que conforman las memorias.

Las memorias son los dispositivos de almacenamiento de datos e instrucciones en una computadora.
Llamamos sistema de memoria al conjunto de estos dispositivos y los algoritmos de hardware y/o software
de control de los mismos. Diversos dispositivos son capaces almacenar información, lo deseable es que el
procesador tuviese acceso inmediato e ininterrumpido a la memoria, a fin de lograr la mayor velocidad de
procesamiento. Desafortunadamente, memorias de velocidades similares al procesador son muy caras. Por
esta razón la información almacenada se distribuye en forma compleja en una variedad de memorias
diferentes, con características físicas distintas.
NUCLEO DEL
SISTEMA
OPERATIVO
UNIDAD II

PROF. JOSÉ GUADALUPE SÁNCHEZ HERNÁNDEZ


Facilidades del Hardware
Partes de un sistema operativo y facilidades de hardware

Cada parte del sistema operativo está dividido de acuerdo al tipo de funcionalidad y objetivo que tiene, así
también a las áreas del ordenador a las cuales están enfocadas. A continuación la descripción de cada una de
estas.

Gestión de procesos:

Al momento de ejecutar un programa en nuestra computadora, deberá de utilizar procesos para reservar la
utilización de los recursos necesarios para su funcionamiento. Si por ejemplo el usuario ejecuta dos
programas consecutivamente, se crearan una determinada cantidad de procesos que se sumaran a los que
ya se están ejecutando para mantener activo nuestro ordenador.
El orden en que se realizan los procesos es de acuerdo a su prioridad, esto es un ejemplo de planificación de
procesos, lo cual consiste en decidir qué proceso se utilizara en cada instante de tiempo. Entre las
funcionalidades propias de los procesos también se pueden mencionar a los mecanismos de comunicación,
como su nombre lo indica gestiona la comunicación entre distintos procesos. También se tiene a los
mecanismos de sincronización, los cuales permiten el acceso a un recurso por varios procesos de manera
concurrente.
Gestión de la memoria:

La memoria es utilizada por los distintos programas, es decir por el CPU y por los dispositivos de
entrada/salida con los cuales cuenta el ordenador. Acerca de la memoria se puede mencionar que es de fácil
acceso, rápida o bien volátil, también se puede destacar que ante fallas o al apagar la computadora pierde su
información en un tiempo de alrededor de tres minutos.

El sistema operativo se encarga de la correcta utilización de este recurso, pues debe de ser el encargado de
saber que partes están siendo utilizadas y por quien, asignar espacios cuando se requiera, entre otros.
Gestión del almacenamiento secundario:

Es necesario para almacenar y manipular la información que necesita sobrevivir ante cualquier fallo en el
sistema, por ejemplo un cortocircuito o bien un apagón. Es necesario también para alojar temporalmente los
programas que son de un tamaño grande para ser alojados en la memoria volátil.

Sistema de entrada y salida: Esta es una de las principales funciones del sistema operativo pues es el medio
por el cual el usuario va a interactuar con los componentes físicos de la máquina. También se encargara de
gestionar la comunicación entre los dispositivos, controlar los posibles errores y detectar las interrupciones
que se puedan dar. Esta área del sistema operativo hace para el usuario, una PC más simple de manipular.
Sistemas de protección: Se refiere al control de acceso de los programas estableciendo límites de seguridad,
establece quienes pueden tener acceso a determinados recursos estableciendo políticas. Entre otros detalles
este sistema se encarga de que los procesos se ejecuten únicamente dentro de los espacios asignados a este.

Sistema de comunicaciones: Esto se refiere al uso específico de interfaces de red, permitiendo la comunicación
entre distintos sistemas. Las interfaces de red abarcan un gran campo dejando a un lado el sistema operativo,
pues se refiere a la salida y entrada de la computadora hacia el exterior, hacia otras computadoras a través de
distintos medios.

Programa de sistema: Es el software que es agregado al sistema operativo pero no forma parte de este,
haciendo posible la ejecución de programas. Estos proporcionan funcionalidades extras al sistema, por ejemplo
manipulación y modificación de archivos, manipula información del sistema, proporciona soporte a lenguajes de
software entre otros, comunicaciones
Relaciones con el núcleo

EL Núcleo del Sistema Operativo.: todas las operaciones en las que participan procesos son controladas por
la parte del sistema operativo denominada núcleo (nucleus, core o kernel, en inglés). El núcleo normalmente
representa sólo una pequeña parte de lo que por lo general se piensa que es todo el sistema operativo, pero
es tal vez el código que más se utiliza. Por esta razón, el núcleo reside por lo regular en la memoria principal
mientras que otras partes del sistema operativo son cargadas en la memoria principal sólo cuando se
necesitan.

Los núcleos se diseñan para realizar "el mínimo" posible de procesamiento en cada interrupción y dejar que
el resto lo realice el proceso apropiado del sistema, que puede operar mientras el núcleo se habilita para
atender otras interrupciones.
El núcleo de un sistema operativo normalmente contiene el
código necesario para realizar las siguientes funciones:

 Manejo de interrupciones.
 Creación y destrucción de procesos.
 Cambio de estado de los procesos.
 Despacho.
 Suspensión y reanudación de procesos.
 Sincronización de procesos.
 Comunicación entre procesos.
 Manipulación de los bloques de control de procesos.
 Apoyo para las actividades de entrada/salida.
 Apoyo para asignación y liberación de memoria.
 Apoyo para el sistema de archivos.
 Apoyo para el mecanismo de llamada y retorno de un
procedimiento.
 Apoyo para ciertas funciones de contabilidad del
sistema.
 Núcleo o Kernel y niveles de un Sistema Operativo.

El Kernel consiste en la parte principal del código del sistema


operativo, el cual se encargan de controlar y administrar los
servicios y peticiones de recursos y de hardware con
respecto a uno o varios procesos.
Representación de procesos

Bloque de control de un proceso (P.C.B.)

Estructura de datos que contiene información relativa a cada proceso:


 Identificador del proceso.
 Estado del proceso.
 Valores de los registros de C.P.U. (contador de programa, etc.).
 Datos para gestión de recursos:
 Memoria (tablas de páginas, etc.)
 E/S (demandas, tablas de dispositivos asignados, etc.)
 Procesador (prioridades, punteros a colas, etc.).
 Datos de contabilización (tiempo de uso de procesador, etc.)

Estados de un proceso
 No existente
 Existente
 Suspendido
 Activado
 Espera
 Preparado
 Ejecución
 Ejecución
 Preparado Espera
Manejador de interrupciones de primer nivel

• El GESTOR DE INTERRUPCIONES DE PRIMER NIVEL: FLIH


(First Level Interruption Handler): «Algo» que gestione las interrupciones

En principio, una señal es una indicación por la que se altera la secuencia de ejecución. Hay varios tipos de
interrupción, que se clasifican en función de su origen:

! EXTERNAS: Se producen fuera del procesador


! INTERNAS: Se producen dentro del procesador

La misión del FLIH, está en el núcleo, para dar una respuesta a cualquier tipo de señal que se produce en el
sistema.

Al producirse una señal, la atrapa el Hardware de interrupciones, que como mínimo, salva el contenido del
PC en el PCB del proceso. Además, puede que también salve el resto del entorno volátil (también en el PCB).
También direcciona al FLIH, es decir, pone en el PC la dirección del FLIH.
Despachador SCHEDULER

DISPATCHER Y SCHEDULER

Dispatcher: Módulo del núcleo encargado de


asignar C.P.U. al proceso que está en cabecera de
la cola de proceso en estado preparado.

Scheduler: Encargado de la selección del siguiente


proceso la hace el módulo de planificación
(también llamado low level scheduler).

Parámetros de planificación:
• índice de ocupación de C.P.U. (a maximizar)
I = tocup./ (tocup. + tdesocup)
• throughput (a maximizar)
T = nº jobs acabados / t
• turnaround time. Para s. no interactiv. (a
minimizar)
tt = tfinal – tinicio
• waiting time (a minimizar)
wi
= sumatorio tpreparadoi
• reponse time. para s.interactivos (a minimizar)
ri = t1ºrespuesta – tinicio
Implantación de Wait y Signal.

Semáforos:

Definición de Semáforos e implementación con espera activa.


Un mecanismo semáforo consta básicamente de dos operaciones primitivas señal (Signal) y espera (Wait)
(Originalmente definidas como P y V por Disjkstra), que operan sobre un tipo especial de variable semáforo,
“s”. La variable semáforo puede tomar valores enteros y, excepto posiblemente en su inicialización, solo
puede ser accedida y manipulada por medio de las operaciones SIGNAL y WAIT.

SIGNAL (s) ”SEÑAL)...:


Incrementa el valor de su argumento semáforo, s , en una operación indivisible.

WAIT (s) ..:ESPERA)


Decrementa el valor de su argumento semáforo, s , en tanto el resultado no sea negativo. La conclusión de la
operación WAIT, una vez tomada la decisión de decrementar su argumento semáforo, debe ser individual.
MANEJO DE MEMORIA
Objetivos

Conseguir que varios procesos puedan ejecutarse de


forma concurrente,
• Evitando los conflictos de uso
• Protegiendo al sistema operativo
• Aprovechando eficazmente el espacio disponible:

Minimizar la memoria desaprovechada


• Evitar fragmentación
• Memoria ocupada por varias copias de un mismo
objeto
• Memoria ocupada por las estructuras de datos
necesarias para la operación del gestor de
memoria

Carga parcial de programas sin perjudicar el


rendimiento:
• Complejidad temporal
• Tiempo de acceso a memoria

Nota: Un gestor de memoria ideal debería por tanto,


 Minimizar la memoria desaprovechada
 Tener una complejidad temporal mínima
 Y presentar un recargo por acceso a memoria
mínimo
 Además de proporcionar una buena protección y
una compartición flexible
Administrador de memoria:

Su tarea consiste en llevar un registro de las partes de memoria que se estén utilizando y las que no, con el
fin de asignar espacio en memoria a los procesos cuando éstos la necesiten y liberándola cuando terminen,
así como administrar el intercambio entre la memoria principal y el disco.

Los sistemas de administración de memoria se pueden clasificar en dos tipos: los que desplazan los
procesos de la memoria principal al disco y viceversa durante la ejecución y los que no.

El propósito principal de una computadora es el de ejecutar programas, estos programas, junto con la
información que accedan deben de estar en la memoria principal (al menos parcialmente) durante la
ejecución.

Para optimizar el uso del cpu y de la memoria, el sistema operativo debe de tener varios procesos a la vez
en la memoria principal, para lo cual dispone de varias opciones de administración tanto del procesador
como de la memoria. La selección de uno de ellos depende principalmente del diseño del hardware para el
sistema. A continuación se observarán los puntos correspondientes a la administración de la memoria.
Memoria real
La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es
el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de
mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido
acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez mayor.

Memoria virtual
El término memoria virtual se asocia a dos conceptos que normalmente a parecen unidos:
1. el uso de almacenamiento secundario para ofrecer al conjunto de las aplicaciones la ilusión de tener más
memoria RAM de la que realmente hay en el sistema.

2. ofrecer a las aplicaciones la ilusión de que están solas en el sistema, y que por lo tanto, pueden usar el
espacio de direcciones completo
Unidad de manejo de memoria

La unidad de manejo de memoria (mmu) es parte del procesador. Sus funciones son:
• convertir las direcciones lógicas emitidas por los procesos en direcciones físicas.
• comprobar que la conversión se puede realizar. La dirección lógica podría no tener una dirección física
asociada. Por ejemplo, la página correspondiente a una dirección se puede haber trasladado a una zona de
almacenamiento secundario temporalmente.
• comprobar que el proceso que intenta acceder a una cierta dirección de memoria tiene permisos para ello.
Implementación de memoria virtual

Para implementar la memoria virtual, para el sistema es necesario tener un hardware especial de
administración de memoria. Este hardware a menudo se conoce como un MMU (Memory Management
Unit). Sin un MMU, cuando el CPU accede a la RAM, las ubicaciones reales de RAM nunca cambian la
dirección de memoria 123 siempre será la misma dirección física dentro de la RAM.

Fallo de página
La memoria cargada en memoria principal se le denomina memoria residente.

Acceso a Memoria
El acceso a memoria genera la siguiente secuencia de pasos:
• Verificar que el proceso referencia una página correcta dentro de su espacio virtual, ya que no todas las
direcciones dentro de su espacio son válidas.

Algoritmos de remplazo

La necesidad de traer a memoria principal una página en una memoria principal llena, genera la búsqueda de
un frame a remplazar, mediante un algoritmo de remplazo. El mal algoritmo de remplazo puede generar un
impacto significativo de degradación del sistema, y es por esto que los estudiaremos.
Cuando se elige un frame a remplazar (la víctima), este será puesto en memoria swap, y ante un eventual uso
en el futuro, volverá a memoria principal a través de un page fault.

Los pasos a seguir cuando remplazamos frames son los siguientes:

• Elegir la víctima mediante algún algoritmo de remplazo


• Escribir la víctima en memoria swap (swap out) y ajustar la tabla de páginas
• Cargar la página en el frame correspondiente (swap in)
• Ajustar la tabla de página
FIFO (First in First out)

El algoritmo reemplaza la página que lleva más tiempo en memoria principal. Es un algoritmo fácil de
implementar ya que requiere únicamente de una estructura tipo cola, pero remplaza las páginas sin tener en
cuenta las referencias que tuvo.

Segunda Chance

Este algoritmo intenta disminuir la cantidad de fallos de páginas del algoritmo FIFO, teniendo en cuenta las
referencias a las páginas.

Óptimo

En este algoritmo se reemplaza la página que no va a ser usada por el mayor 0periodo de tiempo. Es
imposible de implementar porque requiere conocer a que páginas accederá el proceso.

Asignación de frames a procesos e hiperpaginación.

Si el SO no implementa una estrategia de asignación de memoria, un proceso que requiera mucha memoria
puede hacer colapsar el sistema.

Una forma de asignar frames a procesos podría ser dividir la cantidad de frames del sistema en partes iguales
para cada proceso. Este método puede ser ineficiente ya que no todos los procesos consumen la misma
cantidad de memoria.

Si un proceso utiliza en forma activa una cantidad mayor de frames de los asignados por el sistema, tendrá
un alto porcentaje de fallos de página, dando lugar a que el proceso esté continuamente realizando PF,
pasando más tiempo paginando que ejecutando, lo que se conoce como hiperpaginación. Se degrada
significativamente el rendimiento del sistema.
Políticas de manejo de memoria

Políticas de gestión de la memoria virtual


En un sistema con memoria virtual, hay que establecer las reglas para gestionar el intercambio de páginas o
segmentos entre la memoria principal y la secundaria:

Políticas de lectura
El SO debe decidir cuando cargar las páginas en memoria principal. Hay dos alternativas:
• Paginación por demanda: Carga una página en memoria sólo cuando se necesite, al iniciar la ejecución
de un proceso o por fallos de página. Por el principio de localidad de referencias, al llevar un tiempo
suficiente de ejecución, la tasa de fallos de página desciende hasta un nivel aceptable.

• Paginación previa: Se traen a memoria más páginas que las solicitadas. Aprovecha las ventajas de lectura
secuencial de los dispositivos de memoria secundaria (discos duros). Es una política eficaz si luego las
páginas extra son referenciadas.

Política de reemplazo
Cuando la memoria está llena y hay que cargar otra página, el SO debe decidir que página mandar a memoria
secundaria. El objetivo es seleccionar la página que más tarde en referenciarse.
Unidad 3

Sistemas operativos
de Red.
Los Sistemas Operativos de Red más
populares y conocidos son:

• Microsoft Windows Server 2003


• Microsoft Windows Server 2008
• UNIX
• Linux
• Mac OS X
• Novell NetWare
Sistema operativo de red (NOS)

En el caso de los Sistemas Operativos de Red se puede decir que son sistemas operativos que pueden
utilizar una o varias aplicaciones desde cualquier otro equipo o equipos de una red. Es por ello que a un
Sistema Operativo de Red, también se le conoce como interlocutor, ya que es el software que corre en un
servidor y permite al servidor administrar datos, usuarios, grupos, seguridad, aplicaciones y otras
funciones de red. Un Sistema Operativo de Red esta diseñado para permitir la compartición de archivos y
el acceso de impresoras, a través de múltiples computadoras en la red, típicamente una LAN (Red de Área
Local), Red Privada u otras redes.
El Administrador de sistema.

El administrador del sistema tiene la responsabilidad de asegurar su adecuado funcionamiento, de


saber a quién poder llamar si no se pueden resolver los problemas internamente, y de saber cómo
proporcionar recursos hardware y software a los usuarios.

Las tareas y responsabilidades de los administradores de sistemas varían dependiendo del tamaño del
sistema informático. En sistemas grandes las tareas de administración pueden dividirse entre varias
personas.

Por otro lado algunos sistemas pequeños tan sólo se necesita un administrador.

El administrador del sistema cumple un papel muy importante en la empresa ya que debe garantizar el
correcto funcionamiento del sistema informático. Además, dada la responsabilidad y el tipo de
información con el que trabaja, el administrador se convierte en una persona de confianza dentro de la
empresa. La descripción exacta del trabajo del administrador del sistema depende frecuentemente de
cada organización. Un administrador del sistema puede encontrarse envuelto en una amplia variedad de
actividades, desde establecer normas para instalar software a configurar los routers.
Sin embargo, hay una serie de tareas que todos los administradores tienen que gestionar:

 Instalación y configuración de software.


Instalar y configurar el sistema operativo, servicios y aplicaciones necesarios para que el servidor
trabaje de forma correcta.
 Instalación y configuración de hardware.
Instalar, configurar y hacer disponibles dispositivos como impresoras, terminales, módems, unidades
de cinta, etc.
 Instalación y configuración la red.
Instalar, configurar y realizar un mantenimiento de la red para permitir que los equipos se comuniquen
correctamente.
 Administración de usuarios.
Dar de alta o baja usuarios, modificar sus características y privilegios, etc.
 Formación y asesoramiento de los usuarios.
Proporcionar directa o indirectamente formación a los usuarios de modo que puedan utilizar el sistema
de forma efectiva y eficiente.
 Inicio y apagado del sistema.
Iniciar y apagar el sistema de un modo ordenado para evitar inconsistencias en el sistema de ficheros.
 Registro de los cambios del sistema.
Registrar cualquier actividad significativa relacionada con el sistema.
 Realización de copias de seguridad.
Establecer una correcta política de seguridad que permita restablecer el sistema en cualquier
momento.
 Seguridad del sistema.
Evitar que los usuarios interfieran unos con otros a través de acciones accidentales o deliberadas, así
como las posibles intrusiones.
El Administrador de SO de red.

Los So en red tienen unas características que los definen y los representan. En general, los SO en red se
utilizan con el objetivo de optimizar la utilización de recursos de una pequeña o gran red, y sobretodo para
realizar una gestión centralizada del software y todos los recursos hardware que se pueden gestionar en una
red. En general, un SO en red se instala en un equipo que tendrá un rango superior al resto de equipos de
una red.

Dicho lo anterior, tenemos que tener en cuenta que para la gestión de este tipo de infraestructuras
informáticas aparece la figura del administrador de So de red, figura que no estaba presente en la gestión
de redes de igual a igual, es decir , en grupos de trabajo. Las características que aportan a los SO en red son
las siguientes:

 Compartir recursos.
Compartir es el término utilizado para describir los recursos que públicamente están disponibles para
cualquier usuario de la red.
Permitir diferentes usuarios con diferentes niveles de acceso a los recursos.
Coordinación en el acceso a los recursos asegurando que dos usuarios no utilizan el mismo
recurso en el mismo instante.

 Gestión de usuarios.
Los sistemas operativos de red permiten al administrador de la red determinar las personas, o grupos
de personas, que tendrán la posibilidad de acceder a los recursos de la red.
Crear permisos de usuario, controlados por el sistema operativo de red, que indican quién
puede utilizar la red.
Asignar o denegar permisos de usuario en la red.
Eliminar usuarios de la lista de usuarios que controla el sistema operativo de red.
¿Qué es una Red?

Una red de computadoras, es un conjunto de equipos o nodos conectados entre sí por medio de
dispositivos físicos que envían y reciben impulsos eléctricos, ondas electromagnéticas o cualquier otro
medio para el transporte de datos, con la finalidad de compartir información, recursos y ofrecer servicios.
Como en todo proceso de comunicación se requiere de un emisor, un mensaje, un medio y un receptor
(Tanenbaum, Redes de Computadoras, 2011). La finalidad principal para la creación de una red de
computadoras es compartir los recursos y la información en la distancia, asegurar la confiabilidad y la
disponibilidad de la información, aumentar la velocidad de transmisión de los datos y reducir el costo
general de estas acciones.

La estructura y el modo de funcionamiento de las redes informáticas actuales están definidos en varios
estándares, siendo el más importante y extendido de todos ellos el modelo TCP/IP basado en el modelo
de referencia OSI. Este último, estructura cada red en siete capas con funciones concretas pero
relacionadas entre sí.
Capas del Modelo OSI
El modelo OSI (por sus siglas en inglés “Open Systems Interconnection”) (Tanenbaum, Redes de
Computadoras, 2011), esta compuesto de 7 capas que establecen un estándar para la conectividad de las
redes. Estas capas son:
1. Física: Es la conexión al medio
(características mecánicas, eléctricas,
ópticas, etc.), transmite y recibe
señales sobre el medio.
2. Enlace de datos: transmisión y
recepción de Unidades de datos,
controla el flujo y controla el acceso al
medio.
3. Red: Direccionamiento, enrutamiento
o encaminamiento y controla la red.
4. Transporte: Comunicación de punto a
punto, ve la secuenciación de las
unidades de datos, verifica que la
información llegue completa y corrige
errores.
5. Sesión: Contiene los mecanismos para
el inicio, fin y conservación de las
conexiones lógicas.
6. Presentación: Realiza las conversiones
de representación de datos y para
interpretar la información
7. Aplicación: realiza las funciones
relacionadas con la finalidad por la
cual se efectúa la comunicación.
Una característica particular de los Sistemas Operativos de Red es que son basados en la arquitectura de
Cliente – Servidor, la cual permite a múltiples clientes compartir sus recursos por la red.

Arquitectura de los Sistemas Operativos de Red

Los Sistemas Operativos de Red se han construido primordialmente siguiendo la arquitectura Cliente –
Servidor. Siendo que existen dos modelos de arquitectura en la cual se fundamentan, estos modelos son:

• Modelo de acceso remoto


• Modelo de carga y descarga

El modelo de acceso remoto, ofrece a los clientes un acceso transparente a un sistema de archivo
gestionado por un servidor remoto. Hay que recordar que los clientes desconocen la ubicación de los
archivos, por lo que se les da una interfaz para que interactúen con el sistema de archivos remoto, tal
como se muestra en la siguiente figura:
El modelo de carga y descarga, consiste en que el cliente accede a un archivo localmente después de
haberlo descargado del servidor, tal como lo muestra la siguiente figura. Cuando el cliente termina de
modificar o de leer el archivo, lo carga nuevamente en el servidor para que el archivo pueda ser utilizado
por otro cliente. Un ejemplo de este modelo es el servicio de FTP (Tanenbaum & Van Steen, Sistemas
Distribuidos, Principios y Paradigmas, 2008).
 Gestión de la red.
Algunos sistemas operativos de red avanzados incluyen herramientas de gestión que ayudan a los
administradores a controlar el comportamiento de la red. Cuando se produce un problema en la red,
estas herramientas de gestión permiten detectar síntomas de la presencia del problema y presentar
estos síntomas en un gráfico o en otro formato.

Algunas Actividades y Responsabilidades del Administrador de Redes:

• Tener control sobre el apagado y encendido de los equipos cuando se requieran.


• Dar mantenimiento preventivo y correctivo a toda la infraestructura de cualquier tipo de red de datos o de voz. Este punto debe ser
considerado como indispensable ya que los equipos deben tener un plan de mantenimiento para garantizar el óptimo rendimiento y
hasta en ocasiones respetar garantías por parte de los proveedores.
• Debe tener un stock de dispositivos de entrada y salida de información.
• Debe tener un stock adicional de refacciones para prevenir cualquier tipo de problemática que pudiera tener, estas refacciones
pueden ser, discos duros, memorias.
• Configurar los programas que se inician junto con el sistema o con el usuario.
• Administrar cuentas de usuarios, crear y administrar grupos, administrar acceso a los recursos a nivel usuario y/o administrador,
implementar y administrar la impresión en grupo como individual, implementar políticas hacia los usuarios, administrar el entorno
de equipo y usuario por medio de la política de grupos, así como de auditar cuentas y recursos, garantizar que las cuentas de
usuarios dados de baja ya no tengan acceso tanto a la red como al sistema.
• Administrar los programas que tengan licencia activa o autorizada y configurar los programas y los dispositivos para su buen
funcionamiento.
• Configurar servicios que funcionarán en red.
• Solucionar problemas con dispositivos o programas tanto de red como del usuario.
• Revisar bitácoras de actividades, solucionar y prevenir inconvenientes de seguridad.
• Entiende conceptos básicos de redes TCP/IP así como del esquema cliente-servidor, además de sus limitantes y ventajas.
• Instalar y configurar clientes y servidores para: ftp, telnet, ssh, finger, talk, smtp, http, NIS y NFS de acuerdo a la plataforma o sistema
operativo.
• Ser capaz de elaborar y dar seguimiento a planes de administración y operación de centros de cómputo y telecomunicaciones a
partir de objetivos estratégicos empresariales.

Actividad 1
Administración de redes

Que implica la administración de redes?, para poder dar una definición


más apegada a la realidad, nos basaremos en un modelo de
administración de redes creado por la ISO (International Standard
Organization) donde se definen 5 áreas donde se especifican claramente
las funciones de los sistemas administradores de redes.
Administración del Desempeño (Performance Management):

Encargada de monitorear y medir varios aspectos


de rendimiento, funcionamiento y utilización de
la red, con el fin de mantener en niveles
aceptables los servicios que se encuentran
disponibles, así como rastrear todos los efectos
en su operación. Para ello las tareas se dividen
entres fases, en la primera fase los datos de
rendimientos son recopilados en variables de
interés que den información suficiente para ser
tomados en cuenta; en la segunda fase los datos
son analizados para determinar niveles normales
(base); finalmente se definen los umbrales de
rendimiento para cada variable establecida como
importante, de tal forma que si se exceden dichos
umbrales es indicativo de la presencia de algún
problema que requiere atención.
Administración de la Configuración

Encargada de los aspectos de configuración de los


dispositivos de la red, como los archivos de configuración de
dichos dispositivos, y administración del software; así como
el almacenamiento en un lugar que sea accesible por el
personal autorizado.
Administración de la
Contabilidad (Accounting Management):

Encargada de generar la información que permita describir


el uso de los recursos que conforman la red. El primer paso
es medir la utilización de todos los recursos para luego
realizar un análisis de que proporcione el patrón de
comportamiento actual de uso de la red, de aquí también se
puede obtener información que ayude a planear un
crecimiento o actualización de cada elemento que forma
parte de la red, así como determinar si dicho uso es justo y
adecuado.
Administración de Fallas (Fault Management):

Encargada de detectar, registrar, aislar, notificar y corregir fallas en aquellos equipos que son parte de
la red que presenten algún problema que afecte el buen funcionamiento de la red. Es importante
aclarar que cualquier problema que se presente se verá reflejado como una degradación en los
servicios que ofrece la red. El proceso inicia desde la detección y determinación de síntomas hasta el
registro del problema y su solución.
Administración de la Seguridad (Security Management):

Controlar el acceso a los recursos de la red, de acuerdo a las


políticas establecidas con el fin de evitar algún abuso y la
perdida de la confidencialidad que ella recaiga; entre las
funciones está identificar los recursos sensibles y críticos de
la red, monitorear los accesos, entre otras más.
Topologías de Red
Topología física: Diseño de red del cableado (medio.)
Topología lógica: Define como los hosts acceden a los medios.

Topología Anillo

En esta topología los datos se transmiten de una computadora a otra hasta que llegan a la
computadora de destino. El cable transfiere una trama de datos completa permitiendo un bit por vez
en el cable. Para enviar datos los computadores tienen que esperar su turno. Esta topología se
conoce como activa ya que la señal es regenerada al pasar por cualquier PC de la topología.
Topología de Bus:

Se conoce como topología pasiva ya que esta


no regenera la señal en cambio para esta
función son utilizados los repetidores.

Esta topología utiliza solo un tramo de cable,


que se extiende de un extremo de la red
hasta otro. Los usuarios están conectados al
cable central por medio de segmentos de
cables.
Esta topología tiene más desventajas que
ventajas; las ventajas son el bajo costo y la
facilidad de configuración.

Las desventajas: requiere terminales en


ambos extremos si no puede producir un
rebote de señal que puede interrumpir las
comunicaciones en la red. También en un
extremo de la red debe estar conectado a
tierra.

Dificultad para detectar un fallo, y la


principal si el cable es cortado los demás
equipos de la red quedaran sin
comunicación.

Por lo tanto, muy pocas redes nuevas se


diseñan como buses físicos.
Topología en estrella
La topología en estrella y en estrella extendida son las más comunes en las conexiones de redes.
La topología en estrella conecta todos los cables a un punto central. Por lo general este punto es un
dispositivo de red, como un switche.

Es fácil de diseñar y de instalar y también es escalable para agregar más estaciones de trabajo o servidores
solo se debe conectar otro cable al dispositivo central o switche.

Otra de las ventajas es que si un cable falla solo se verá afectado el dispositivo que este al otro extremo de
ese cable el resto de la red seguirá funcionando. Haciendo así mas fácil un diagnostico de fallas en la red.
Sin embargo una de las grandes desventajas es su dependencia del dispositivo central sea un switche o un
router. si este dispositivo falla se verá afectada toda la red.
Topología en estrella extendida.

Una topología en estrella extendida se crea mediante el enlace de varias topologías en estrella a un
punto central la desventaja es la misma que la de topología en estrella. Es la topología de red más
utilizada en medianas y grandes organizaciones.

es la principal topología para cableado estructurado.


Topología Jerárquica

La topología jerárquica impone un orden en la red por medio de agrupamiento de equipos basándose en
la ubicación física en la red.

La desventaja de la topología jerárquica es que si un cable falla puede afectar a los demás host que
necesitan este cable para poder acceder a otros lugares de la red.
Topología de Anillo Doble

La topología de anillo doble tiene el beneficio de proporcionar rutas predecibles para la recuperación
de errores. La topología de anillo doble ofrece mayor confiabilidad que la topología de anillo sencillo ya
que posee dos rutas para que el tráfico fluya. si se presenta una falla los sensores pueden sellar la
sección con fallas y restaurar la conectividad por medio del otro anillo.
Topología en Malla

La topología en malla proporciona redundancia en una red conectando un host con cada uno de los
otros host que se encuentra en la red.

Es una solución muy costosa. Esta topología es implementada cuando no se puede interrumpir las
comunicaciones es muy confiada pero muy compleja y ya desplazada por la topología de estrella o
estrella extendida.

Actividad 2
SISTEMAS OPERATIVOS DISTRIBUIDOS (OSD)

Un sistema distribuido es un conjunto de computadoras independientes que se presenta a los usuarios


como un sistema único. En esta definición cabe destacar dos aspectos.

Uno, el hardware. La definición habla de máquinas autónomas, es decir, que pueden operar sin la
supervisión de ninguna otra.

Dos, el software, que debe conseguir que los usuarios del sistema lo vean como una máquina central
convencional única.

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, etc.
Características de Sistemas Distribuidos

Trasparencia: La trasparencia total es difícil de lograr. Parcialmente, el concepto de transparencia puede ser
aplicado a varios aspectos de un sistema distribuido.
La transparencia a la ubicación.
La transparencia a la migración.
La transparencia a la replicación.
La transparencia a la concurrencia.
La transparencia al paralelismo.

Flexibilidad: Este aspecto se refiere a la forma en que debe ser construido el sistema operativo. Conviven dos
escuelas de pensamiento que son las del kernel monolítico y las del sistema operativo basado en microkernel.
La primera sostiene que los servicios del sistema deben residir en el sistema operativo y la segunda que es
preciso extraer todos los servicios posibles fuera del núcleo del sistema operativo y disponerlos en procesos de
usuario, logrando un mayor estructura e independencia en los servicios, que pueden residir en máquinas
diferentes. Hoy en día el kernel monolítico domina el mundo de los sistemas operativos, pero parece que el
futuro se impondrá la filosofía microkernel, debido a su mayor flexibilidad.

Fiabilidad: Una de las motivaciones originales para tratar de construir sistemas distribuidos fue el aumento de
la fiabilidad del sistema. En un sistema con cien UCP's el fallo de uno de ellas no tendrá consecuencias graves,
por que su trabajo será realizado por las otras. En un sistema en el que el sistema de ficheros se reparte en
cuatro servidores, cada uno de ellos con una probabilidad de que en un instante dado sea inoperativo de 0.05,
la probabilidad de que el sistema de ficheros completo no sea operativo es de 0.054 = 0.000006.
Escalabilidad: A pesar de los progresos de los últimos años, con sistemas concretos y desarrollados, el diseño
de sistemas operativos distribuidos es un campo aún poco conocido e investigado. Los actuales sistemas
abarcan como máximo unos cientos de máquinas. A medida que la informática se introduce en las actividades
cotidianas y el ordenador se introduce en los hogares, comienzan a perfilarse sistemas de miles de millones de
máquinas.

En cuanto a los componentes o máquinas, es posible tener un único servidor que atienda a cuatro cientos
millones de hispanohablantes, pero más vale repartir su carga de trabajo entre otros servidores a fin de paliar
los efectos de una interrupción del servicio. En cuanto a las tablas, se puede mantener los números de teléfono
de cuatrocientos millones de personas en una sóla máquina. Supongamos un registro de 50 caracteres. El
listado total requiere un almacenamiento de 50 * 4 * 108 = 20 * 109 = 20 Gbytes, que puede soportar incluso
una única unidad de disco. No obstante, concentrar las peticiones en está máquina saturaría no sólo su UCP
sino las líneas de comunicación que salen y entran en el sistema.
Seguridad en los sistemas operativos de redes
Unidad 4

SISTEMAS MULTIPROCESAMIENTO
Los sistemas de Multiprocesamiento

son aquellos que usan más de un procesador, por lo que admiten la ejecución de varios procesos al mismo
tiempo. Aunque los sistemas de monoprocesamiento son más comunes estos sistemas crecen en
importancia ya que permiten incrementar la cantidad de procesos a ejecutar con respecto a los sistemas de
Monoprocesamiento.
Poseen tres ventajas principales:

Incrementan el rendimiento: Por incrementarse el numero de procesadores, se incrementa la cantidad de


trabajo en un tiempo menor.

Economía de escala: El costo de estos sistemas es menor que el de su equivalente sistemas


monoprocesamiento, porque ellos pueden compartir periféricos, almacenamiento, suministro de energía.
Por ejemplo si varios programas operan sobre el mismo conjunto de datos, es más barato almacenar estos
datos en un disco y hacer que todos los procesadores los compartieran que tener muchas computadoras con
discos locales y muchas copias de los datos.

Mayor Fiabilidad: ya que las funciones pueden ser distribuidas al tener más de un procesador pues al ocurrir
un fallo en un procesador entonces el sistema no se detiene sino que lo hace más lento.

Algunos ejemplos de Sistemas Operativos de multiprocesamiento son: Ubuntu, Debian, Windows XP,
Windows Vista, entre otros.
Los sistemas operativos multitarea, son ideales para usuarios que realizan varias actividades a la vez. En
este artículo, les vamos a describir qué son los sistemas operativos multitarea y para qué son utilizados
alrededor del mundo.

Lo primero que debemos hacer para comprender lo que son los sistemas operativos multitarea, es sin
lugar a dudas, definirlos. El concepto más utilizado y aceptado alrededor del mundo sobre este tipo de
sistemas operativos, es el siguiente:

Que hace un sistema operativo multitarea

El sistema operativo multitarea o multiproceso, como también se le conoce, es aquel sistema que permite
al usuario y al equipo, realizar varias operaciones, funciones o ejecuciones de manera concurrente o
simultánea. Lo que los hace especiales, es que debido a la arquitectura de los CPU´s, los equipos están
diseñados para ejecutar una sola tarea por vez, es decir, se necesitarían varias CPU´s para realizar varias
operaciones simultáneamente. Sin embargo, los sistemas operativos multitarea permiten realizar varias
operaciones a la vez, debido a que realizan una operación denominada cambio de contexto, la cual actúa
de la siguiente manera: Quita un proceso del CPU, ingresa uno nuevo, y luego vuelve a ingresar el
proceso que quitó del CPU en una especie de cola de ejecución, sin que el procesador se entere de todo
lo que está pasando, de modo, que pueda realizar varias tareas simultáneas. Es como una especie de
engaño, que permite mejorar el rendimiento de los ordenadores y facilitar el trabajo a los usuarios.
Tipos de sistemas operativos multitarea.

Entre los sistemas operativos multitarea, podemos encontrar la siguiente clasificación:

Cooperativos: Estos otorgan a los procesos la facultad de ceder intervalos de trabajo al sistema operativo,
según las necesidades del usuario, son un poco problemáticos, ya que por momentos las ejecuciones se
detienen. En la actualidad son muy poco utilizados.

Preferentes: Estos se encargan de administrar los procesos, repartiendo el uso del CPU, entre los procesos
que estén esperando ser ejecutados.

Real: Estos sistemas sólo se ejecutan en equipos con multiprocesadores, como su nombre lo indica,
permiten ejecutar varias tareas al mismo tiempo, en varios microprocesadores a la vez.
Sistemas Operativos Multiproceso
Las computadoras que tienen mas de un CPU son llamadas multiproceso.

Un sistema operativo multiproceso coordina las operaciones de las computadoras multiprocesadoras. Ya que cada CPU en una
computadora de multiproceso puede estar ejecutando una instrucción, el otro procesador queda liberado para procesar otras
instrucciones simultáneamente.
Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las
computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja.
Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como:

•Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores.
Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía convertirse en un
cuello de botella.

•Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al
implementar el multiproceso simétrico es que los Sistema Operativo tienen que ser rediseñados o diseñados desde el principio para
trabajar en u n ambiente multiproceso.
Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo
disponibles.
SISTEMA OPERATIVO MULTIUSUARIO
Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos
permiten a centenares o millares de usuarios al mismo tiempo.

TIPOS DE SISTEMAS OPERATIVOS MULTIUSUARIOS

1) Windows 3.1: Microsoft tomo una decisión, hacer un sistema operativo que tuviera una interfaz gráfica amigable para el
usuario, y como resultado obtuvo Windows. Este sistema muestra íconos en la pantalla que representan diferentes archivos o
programas, a los cuales se puede accesar al darles doble click con el puntero del mouse.
2) Windows NT: Esta versión de Windows se especializa en las redes y servidores. Con este SO se puede interactuar de forma
eficaz entre dos o más computadoras.
3) Mac OS: Las computadoras Macintosh no serían tan populares como lo son si no tuvieran el Mac OS como sistema operativo
de planta. Este sistema operativo es tan amigable para el usuario que cualquier persona puede aprender a usarlo en muy poco
tiempo. Por otro lado, es muy bueno para organizar archivos y usarlos de manera eficaz. Este fue creado por Apple Computer, Inc.
4) UNIX: El sistema operativo UNIX fue creado por los laboratorios Bell
de AT&T en 1969 y es ahora usado como una de las bases para la
supercarretera de la información. Unix es un SO multiusuario y
multitarea, que corre en diferentes computadoras, desde
supercomputadoras, Mainframes, Minicomputadoras, computadoras
personales y estaciones de trabajo. Esto quiere decir que muchos
usuarios puede estar usando una misma computadora por medio de
terminales o usar muchas de ellas.
5) LINUX es un sistema operativo, compatible Unix Dos características
muy peculiares lo diferencian del resto de los sistemas que podemos
encontrar en el mercado, la primera, es que es libre, esto significa que
no tenemos que pagar ningún tipo de licencia a ninguna casa
desarrolladora de software por el uso del mismo, la segunda, es que
el sistema viene acompañado del código fuente. El sistema lo forman
el núcleo del sistema (kernel) mas un gran numero de programa /
librerías que hacen posible su utilización.

También podría gustarte