2013-1
TRANSCRIPT
TRABAJO PRÁCTICO
ASIGNATURA: PROGRAMACIÓN DE SISTEMAS
CÓDIGO: 312
NOMBRE DEL ESTUDIANTE: Angela Y Cuevas R
CÉDULA DE IDENTIDAD: V.-14.041.069
CENTRO LOCAL: TÁCHIRA CARRERA: 236
NÚMERO DE ORIGINALES: xx
FIRMA DEL ESTUDIANTE:
LAPSO: 2013/1.
TELEFÓNO: 0416-8756944 / 0414-7579789
CORREO ELECTRÓNICO: [email protected].
RESULTADOS DE CORRECCIÓN:OBJ. Nº 1 2 3 4 5 6 7 8 9 10 11 12 130:NL 1:L
UNIVERSIDAD NACIONAL ABIERTAÁREA DE INGENIERÍACARRERA INGENIERÍA DE SISTEMAS
INTRODUCCION
El sistema operativo de una computadora se encarga de
administrar los elementos del hardware, para que su funcionamiento sea
coordinado. El hardware realiza las tareas de cómputo y procesos físicos;
poniendo al alcance del usuario estos procesos.
En el presente trabajo se describen y analizan los sistemas
operativos Linux y MAC OS X, quienes son fuertes competidores,
prefiriéndolo la mayoría de usuarios en el mercado de las computadoras
personales así como el mercado de los servidores.
LINUX código abierto que con lleva la posibilidad de acceder a su
código fuente, de modificarlo, y redistribuirlo de la manera que se
considere conveniente, estando sujeto a una determinada licencia de
código abierto, que nos da el marco legal, este encierra su código,
ocultándolo y restringiéndose los derechos a sí misma, sin dar posibilidad
de realizar ninguna adaptación ni cambios que no haya realizado
previamente la empresa fabricante.
Mac OS (del inglés Macintosh Operating System, en español
Sistema Operativo de Macintosh) está basada en un modelo de
integración vertical en los que Apple proporciona todos los aspectos de su
hardware y crea su propio sistema operativo que viene preinstalado en
todas las Macs. Es conocido por haber sido el primer sistema dirigido al
público en contar con una interfaz gráfica compuesta por la interacción del
Mouse con ventanas, Icono y menús.
OBJETIVO Nº 6ANALICE LOS SISTEMAS OPERATIVOS LINUX Y MAC OS X
CONSTRUYA UNA TABLA COMPARATIVA DESCRIBIENDO SUS OBJETIVOS Y CARACTERÍSTICAS (ESTABILIDAD, SEGURIDAD,
FACILIDAD DE USO, CONTROLADORES DE HARDWARE, COMPATIBILIDAD Y ROBUSTEZ). PRESENTE SUS PROPIAS
CONCLUSIONES E INTERPRETACIÓN EN FUNCIÓN EL ANÁLISIS REALIZADO.
El Sistema Operativo Linux es un Software Libre, el usuario puede
modificar su código a su conveniencia, se puede instalar en cuantas
máquinas se desee, tiene varias distribuciones o paquetes para su uso.
Es prácticamente inmune a los virus. Se usa ampliamente en servidores y
es menos utilizado por personas particulares (Personales). Fue
proyectado para no tener que reiniciar el sistema cuando se instala un
programa ni realizar formatos regulares. El usuario tiene libertad total de
obtener conocimiento completo del sistema. Utiliza varios formatos de
archivo que son compatibles con casi todos los sistemas operacionales
utilizados en la actualidad.
El Sistema Operativo MAC OS X, ha sido diseñado para sacar el
máximo partido a la sofisticada arquitectura del Mac Pro. Basado en la
extrema solidez del sistema UNIX, OS X ofrece auténtico rendimiento de
64 bits e incorpora las mejores herramientas del sector para
desarrolladores. Tiene una alta compatibilidad, al conectar un periférico
(Impresora, cámara digital, etc.) a la Mac, el Sistema Operativo lo detecta
automáticamente, no hay necesidad de instalar los drivers desde un CD.
La interfaz es intuitiva, creativa y fácil de usar. Es menos vulnerable
a virus y malware. En cuanto a Seguridad tanto en la línea de comandos
como en la interfaz gráfica los procesos requieren elevación para realizar
modificaciones. El acceso restringido a los archivos del sistema es
responsable de gran parte de la seguridad. Sin embargo, el sistema
permite modificaciones cuando es requerido. La arquitectura de
seguridad integrada en el Mac OS X, al igual que en otros sistemas Unix,
es una de las principales razones por las que los Mac están libres de
malware.
Cuadro N° 1. Tabla Comparativa S.O. Linux y Mac OS X.
Aspecto GNU/LINUX Mac OS X
Estabilidad
Difícilmente se quinda, los servidores que lo usan pueden trabajan por varios meses sin parar, demostrando ser muy estable.
Se producen muy pocos cuelgues de alguna aplicación (se puede forzar la salida de una única aplicación sin que esto afecte al resto del sistema).
Seguridad
Posee variados sistemas de protección, no existen virus para este sistema operativo, haciéndolo muy seguro.
Tal como pasa en el resto de sistemas basados en UNIX, la inexistencia o incidencia prácticamente nula de virus, troyanos, etc. lo hace muy atractivo para gente que lo usa.
Facilidad de Uso
Se le dificulta un poco al usuario al principio de su uso, pero a medida que lo trabaja mejora esta parte.
Se destaca por su facilidad de uso y su multitarea cooperativa, posee una interfaz sencilla para el usuario.
Controladores de Hardware
Es desarrollado por voluntarios, algunos dispositivos no funcionan en lo absoluto porque sus fabricantes ocultan los detalles técnicos.
Todos los driver son dados por Apple, así que no habrá ningún problema de compatibilidad entre SO y hardware.
Compatibilidad
Lee y escribe en sistemas de archivos de Windows, Macintosh, etc. Por red se comunica con cualquier otro sistema.
El centro del Mac OS X es compatible con POSIX, construido sobre el núcleo XNU, con facilidades UNIX, los periféricos los detecta automáticamente.
Robustez
Pueden pasar meses e incluso años sin la necesidad de apagar o reiniciar el equipo, y si una aplicación falla simplemente no bloquea totalmente al equipo.
Es muy extraño sufrir un "Kernel Panic" (el equivalente a la Pantalla Azul de la Muerte [4]).
Fuente: La Autora.
Objetivo Nº 7Diseñe un cuadro comparativo con las características del núcleo de
Linux y MAC OS X
Cuadro N° 1. Cuadro Comparativo de Características del S.O. Linux y
Mac OS X.
Linux MAC OS X* Núcleo Monolítico híbrido. Los controladores de dispositivos y las extensiones del núcleo normalmente se ejecutan en un espacio privilegiado conocido como anillo 0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan en espacio de usuario. * Los controladores de dispositivos y las extensiones al núcleo se pueden cargar y descargar fácilmente como módulos, mientras el sistema continúa funcionando sin interrupciones. * El código del Núcleo se ejecuta en el modo privilegiado del procesador con pleno acceso a todos los recursos físicos del computador (Modo Núcleo).* El usuario de Linux puede adaptar el Kernel a sus necesidades configurando y compilando un nuevo Kernel o simplemente parchando y compilando el Kernel existente.
* Núcleo (Kernel) Hibrido, fundamentalmente son micronúcleos que tienen algo de código para que este se ejecute más rápido.* El Objetivo principal de los micronúcleos es el de separar la implementación de los servicios básicos y de la política de funcionamiento del sistema. * Es familia UNIX, Darwin es el kernel del sistema operativo, y sobre el que se centran las más importantes interacciones del software con el hardware. * Este kernel ha formado parte del proyecto de código abierto. Se basa en FreeBSD y Match, presenta numerosas mejoras de kernel y librerías que mejoran el rendimiento de las aplicaciones.
Fuente: La Autora.
El núcleo, es el único programa responsable de la comunicación
entre el hardware y el programa informático, resulta de compromisos
complejos referentes a cuestiones de resultados, seguridad y arquitectura
de los procesadores. Tiene grandes poderes sobre la utilización de los
recursos materiales (hardware), en particular, de la memoria. Sus
funciones básicas son garantizar la carga y la ejecución de los procesos,
las entradas/salidas y proponer una interfaz entre el espacio núcleo y los
programas del espacio del usuario.
Los Núcleos monolíticos (Linux), facilitan abstracciones del
hardware subyacente realmente potentes y variadas. Tienen un mayor
rendimiento que el micronúcleo (MAC OS X), suelen ser más fáciles de
diseñar correctamente, tienen un menor nivel de complejidad que soporta
el tratar con todo el código de control del sistema en un solo espacio de
direccionamiento.
Los Núcleos Micronúcleos (MAC OS X) proporcionan un pequeño
conjunto de abstracciones simples del hardware, y usan las aplicaciones
llamadas servidores para ofrecer mayor funcionalidad.
En el estudio realizado a este núcleo se observa que el objetivo
principal es la separación de la implementación de los servicios básicos y
de la política de funcionamiento del sistema. Donde los servidores de
usuario utilizados para gestionar las partes de alto nivel del sistema, son
muy modulares y simplifican la estructura y diseño del núcleo, la mayoría
de los componentes del sistema operativo residen en su propio espacio
de memoria privado y protegido.
Los Núcleos Híbridos (Micronúcleos modificados Linux) son muy
parecidos a los Micronúcleos, excepto porque incluyen código adicional
en el espacio de núcleo para que se ejecute más rápidamente. Tienen
algo de código (no esencial) en espacio de núcleo para que éste se
ejecute más rápido de lo que lo haría si estuviera en espacio de usuario.
Núcleo híbrido con núcleo monolítico (Linux). Híbrido implica que el
núcleo en cuestión usa conceptos de arquitectura o mecanismos tanto del
diseño monolítico como del Micronúcleo, específicamente el paso de
mensajes y la migración de código hacia el espacio de usuario, pero
manteniendo cierto código en el propio núcleo por razones de
rendimiento.
Objetivo Nº 8Analice los sistemas operativos Linux y MAC OS X y presente las
ventajas y desventajas entre los mismos con respecto a: sistema de gestión de memoria, técnica de intercambio y memoria virtual.
Presente sus propias conclusiones e interpretación en función del análisis realizado.
Cuadro N° 2. Cuadro Comparativo de Ventajas del S.O. Linux y Mac OS
X.
LINUX MAC OS X
En cuanto a la Gestión de
Memoria:
* La segmentación (protege la zona
de memoria) para separar las zonas
de memoria asignadas al núcleo y a
los procesos.
* El código y los datos del núcleo
están totalmente protegidos.
* Implementa técnicas de copia en
escritura permitiendo minimizar el
número de páginas de memorias
utilizadas.
* Ni el segmento de código ni el de
datos se duplica.
* Utiliza la dirección de entrada swap
para localizar páginas y cargarlas.
* El tiempo de acceso de una
memoria RAM, es mucho más
pequeño que la memoria secundaria.
En cuanto a las Técnicas de
Intercambio:
* El núcleo permite cambiar con
frecuencia a las aplicaciones y
programas para que sean movidas
En cuanto a la Gestión de
Memoria:
* Lleva un registro de las partes de
memoria que se estén utilizando y
de las que no.
* Asigna espacio en memoria a los
procesos cuando éstos la necesiten
y liberándola cuando terminen
(Debe ser Transparente para el
usuario).
* Administra el intercambio entre la
memoria principal y el disco en los
casos en los que la memoria
principal no le pueda dar capacidad
a todos los procesos.
* Los segmentos de un proceso
aparecen lógicamente contiguos.
* Protección de memoria de modo
que si se corrompe una zona de
memoria, las otras zonas no serán
afectadas.
En cuanto a las Técnicas de
Intercambio:
* Usa un disco o parte de un disco
de la memoria física hacia la
memoria de intercambio.
* Cuando se agota la memoria real,
el sistema copia el contenido
directamente en la memoria de
intercambio a fin de poder realizar
otras tareas.
* Los procesos poco activos, los
mueve al área de intercambio (disco
duro), y de esa forma libera la
memoria principal para cargar otros
procesos.
* Se pueden usar varias áreas de
intercambio (ficheros o particiones).
* Un fichero es más fácil de crear,
borrar, ampliar o reducir, según se
crea necesario.
* Con las particiones no hay
problemas de fragmentación y no
hay que usar ningún sistema de
ficheros en concreto.
En cuanto a Memoria Virtual:
* Todos los accesos a memoria se
realizan a través de las tablas de
páginas y cada proceso tiene su
propia tabla de páginas.
* Usa bibliotecas compartidas que
varios procesos pueden usar al
mismo tiempo.
* Usa la técnica llamada Paginación
por Demanda que sólo copia una
página de memoria virtual de un
(dispositivo de swap) como respaldo
de la memoria principal.
* Cuando no caben en memoria
todos los procesos activos se elige
un proceso residente y se copia en
swap su imagen en memoria.
* Existe “traslado” entre memoria y
disco, durante tiempo de ejecución
de un proceso.
* Tiene como prioridad dar cabida a
la ejecución de más aplicaciones de
las que pueden resistir
simultáneamente en la memoria del
sistema.
En cuanto a Memoria Virtual:
* Transferencia información entre la
memoria principal y la secundaria.
* Se implementa sobre un esquema
de paginación.
* Permite a Mac OS X usar
"virtualmente" más memoria
además de la RAM que tenga
utilizando espacio en el disco duro
para complementar la RAM.
* Los discos duros son mucho más
lentos que la RAM, por lo que Mac
OS X distribuye la información
automáticamente entre el espacio
en disco y la RAM para obtener el
mejor rendimiento posible.
proceso en la memoria física del
sistema cuando el proceso trata de
usarla.
* Introduce un nivel de abstracción
en la interfaz haciendo que
la estructura apunte a un grupo de
rutinas de manejo de memoria
virtual.
Fuente: La Autora.
Cuadro N° 3. Cuadro Comparativo de Desventajas del S.O. Linux y Mac
OS X.
LINUX MAC OS X
En cuanto a la Gestión de
Memoria:
* Al poder cargar en memoria
varios procesos se pueden producir
problemas en cuanto a la
protección de la memoria, teniendo
que recurrir al uso de algún
método.
En cuanto a las Técnicas de
Intercambio:
* Si los algoritmos utilizados en el
intercambio de páginas están mal
diseñados o hay poca memoria
disponible, se da un problema
conocido como hiperpaginación.
* Los atascos y sobrecargas en el
sistema, lo causa los procesos que
continuamente están siendo
En cuanto a la Gestión de
Memoria:
* Se debe asegurar que no haya
una sobre -escritura de memoria
(protección).
* Escasez de memoria en los
sistemas multitarea y/o
multiusuario.
En cuanto a las Técnicas de
Intercambio:
* Si una aplicación (partición)
invade un espacio que no le
corresponde se produce un error
del sistema.
En cuanto a Memoria Virtual:
* Si llegase a superar La memoria
virtual a la capacidad del disco, se
colgaría la máquina.
pasados de memoria física al área
de intercambio.
* La fragmentación afecta, ya que
se encuentra dentro de un sistema
de ficheros.
* Crear una partición es un proceso
algo difícil; si se elige bien el
tamaño de la partición, no hará
falta ningún cambio en el futuro.
En cuanto a Memoria Virtual:
* Causaría superfluo cargar todo el
código y datos en la
memoria física donde podría
terminar sin usarse.
* Se necesita saber de dónde viene
la memoria virtual y cómo ponerla
en memoria para arreglar los fallos
de página.
* Si abrimos muchos programas
nos vamos a dar cuenta que
cuando utilicemos la memoria
virtual, la máquina comienza a
funcionar más lenta, o la velocidad
que tiene el disco disminuye.
* Tiende a hacer uso de toda la
memoria disponible, lo cual hace
que su rendimiento se vea afectado
ya que tiene que empezar a borrar
cosas de la memoria (“paging out”)
el cual es un proceso que tiene un
alto impacto en su rendimiento.
Fuente: La Autora.
La memoria es uno de los recursos más valiosos que gestiona el
sistema operativo, uno de los elementos principales que caracterizan un
proceso es la memoria que utiliza.
El gestor de memoria de Linux hace de puente entre los requisitos
de las aplicaciones y los mecanismos que proporciona el hardware de
gestión de memoria. Es una de las partes del sistema operativo que está
más ligada al hardware. El reparto de la memoria entre los procesos
activos se realiza mediante una multiplexación del espacio disponible
entre ellos.
Los segmentos toman los tres primeros Gigabytes de espacio de
direccionamiento de los procesos, su contenido puede leerse y
modificarse en modo usuario. En modo núcleo toma al cuarto Gigabyte
del espacio de direccionamiento, y su contenido sólo puede leerse y
modificarse en este modo. El código y los datos del núcleo quedan
totalmente protegidos de esta forma. Mientras que el direccionamiento
influye en la visión del proceso, como en el aprovechamiento del
hardware y el rendimiento del sistema.
Linux también utiliza los mecanismos de memoria virtual
proporcionados por el procesador sobre el que se ejecuta. Las
direcciones manipuladas por el núcleo y los procesos son direcciones
virtuales y el procesador efectúa una conversión para transformar una
dirección virtual en dirección física en la memoria central.
La dirección de memoria se descompone en dos partes, un número
de página y un desplazamiento en la página. El número de página se
utiliza como índice en una tabla de páginas, lo que proporciona una
dirección física de página en memoria central. A esta dirección se le
añade el desplazamiento para obtener la dirección física de la palabra de
memoria en concreto.
En cuanto al espacio de intercambio es una zona del Disco (fichero
o partición) que se usa para guardar las imágenes de los procesos que no
han de mantenerse en memoria física. A este espacio se le suele
llamar swap (intercambiar).
Para simplificar la asignación y liberación de un grupo de páginas,
el núcleo sólo permite designar grupos de páginas cuyo tamaño sea
predeterminado y corresponda a los tamaños gestionados en las listas.
Este método permite una mejor utilización de la memoria.
Linux usa bibliotecas compartidas que varios procesos pueden usar
al mismo tiempo. El código y los datos de estas bibliotecas compartidas
tienen que estar unidos al espacio virtual de direccionamiento de un
proceso y también al espacio virtual de direccionamiento de los otros
procesos que comparten la biblioteca.
Es necesario saber de dónde viene la memoria virtual en uso y
cómo ponerla en memoria para arreglar los fallos de página. Como estas
áreas de memoria virtual vienen de varias fuentes, Linux introduce un
nivel de abstracción en la interfaz haciendo que la estructura apunte a
un grupo de rutinas de manejo de memoria virtual. De esta manera, toda
la memoria virtual de un proceso se puede gestionar de una manera
consistente sin importar las diferentes maneras de gestionar esa memoria
por parte de distintos servicios de gestión.
En cuanto al MAC OS X, la gestión de memoria (incluye la
memoria RAM de alta velocidad, la memoria virtual y los archivos de
intercambio del disco duro), es muy eficiente, se asigna automáticamente
y ajusta los contenidos en la misma según sea la situación.
Cada aplicación que se arranca solicita al Sistema un cierto
espacio de memoria RAM para ejecutarse. Si hay suficiente RAM
disponible se reserva ese espacio para la aplicación que lo solicitó. Cada
aplicación puede utilizarce para leer y escribir esa zona de memoria
reservada, a la que conocemos también con el nombre de partición, y no
debe ni debería poder escribir o leer en las otras particiones.
Generalmente si una aplicación invade un espacio que no le pertenece se
produce un error del sistema.
El Sistema por su parte, no reserva un tamaño fijo de memoria,
sino que puede crecer según las necesidades. Para evitar las
complicaciones inherentes a este modelo de funcionamiento, el Mac
asigna la memoria para el Sistema contando desde la dirección de
memoria cero hacia adelante. Para las aplicaciones lo hace desde la
última hacia atrás. De este modo, queda un espacio vacío entre las
aplicaciones y el Sistema que éste puede utilizar para crecer lo necesario.
La pagina consiste en que el sistema operativo divide la memoria
en unidades de tamaño fijo, llamados marcos. Los procesos son divididos
en páginas de igual tamaño que los marcos. Al proceso de intercambiar
páginas, segmentos o programas completos entre memoria principal y
disco se le conoce como `intercambio' o `swapping'.
Mac Os X mantiene una tabla de segmentos por cada proceso y en
cada cambio de proceso va informando a la MMU (Unidad de Manejo de
Memoria) de que tabla debe usar. En esta etapa los Datos y programas
se dividen en segmentos y Espacios de direcciones independientes,
crecimiento independiente.
Mediante la Administración de memoria con Intercambio en Mac Os
X, existe “traslado” entre memoria y disco, durante tiempo de ejecución de
un proceso, no necesariamente deben permanecer en memoria y la
cantidad de procesos son superiores a la capacidad de cpu y memoria,
esto dado a que tiene como prioridad dar cabida a la ejecución de mas
aplicaciones de las que pueden residir simultáneamente en la memoria
del sistema.
Concluyo en que la memoria virtual hace que el sistema parezca
disponer de más memoria de la que realmente tiene, puediendo ser
muchas veces mayor que la memoria física del sistema.
Linux realiza una gestión de la memoria eficaz y totalmente
independiente del procesador sobre el que se esté ejecutando. Es un
sistema operativo mucho más potente de lo que la gente se imagina. Y los
Mac OS X gestiona la memoria según las necesidades de los programas
que se tengan abiertos, pudiendo utilizar casi toda la memoria disponible
si hace falta. El sistema deja siempre algo para los programas abiertos
pero asigna sobre la marcha la necesaria al programa que esté
trabajando.
Actualmente la mayoría de los sistemas de cómputo cuentan con
una alta capacidad de memoria, de igual manera las aplicaciones actuales
tienen también altos requerimientos de memoria, lo que sigue generando
escasez de memoria en los sistemas multitarea y/o multiusuario.
Como se observa en los cuadros comparativos los sistemas
operativos en estudio poseen mas ventajas que desventajas, ya que
comparamos a dos grandes de los grandes, los cuales van de la mano al
crecimiento y actualizaciones de hardware y software cada vez mas
innovador.
Fuente: La autora.
Objetivo Nº 9Analice los sistemas operativos Linux y MAC OS X con respecto al
sistema de Entrada y Salida, y presente un cuadro comparativo donde se describan las técnicas de cache de buffer y cola de
caracteres de ambos sistemas. Presente sus propias conclusiones e interpretación en función del análisis realizado.
*****
Entrada y salida designa cualquier transferencia de información desde o haciamemoria o el procesador.Comprende tanto la transferencia entre diversos niveles de la memoria como lacomunicación con los periféricos.El sistema de entrada y salida es la parte del S.O. encargada de la administración delos dispositivos de e/s.Este sistema proporciona un medio para tratar los archivos y dispositivos demanera uniforme, actuando como interfaz(debe ser independiente, sencilla y fácilde utilizar) entre los usuarios y los dispositivos de e/s que pueden ser manipuladospor ordenes de alto nivel.Existen tres características que agudizan el problema de entrada ysalida:3.Operación asincrónica debido a que los tiempos de transacción de laCPU con la memoria y los dispositivos de E/S son muy diferentes. Losdispositivos de E/S actúan asincrónicamente respecto a la unidad lógica.5.Diferencia de velocidades entre los dispositivos de E/S y la CPU dememoria, los dispositivos mas rápidos se conectan mediante canalesespecializados utilizando técnicas de DMA y los mas lentos se controlandesde la CPU.7.Conversiones de formato entre los periféricos y el sistema, debido aque mientras unos dispositivos necesita transferencias en serie los otrostransmiten en paralelo
PRINCIPIOS DE HARDWARE DE E/S1.Dispositivos De Entrada Y Salida3.Controladores De Dispositivos5.Puertos De Entrada Y Salida7.Acceso Directo A Memoria9.Canales De Entrada Y Salida
***
Sistemas Operativos Windows y Linux Sistema de Entrada y Salida:
Consiste en un sistema de almacenamiento temporal (caché), una interfaz
de manejadores de dispositivos y otra para dispositivos concretos. El
sistema operativo debe gestionar el almacenamiento temporal de E/S y
servir las interrupciones de los dispositivos de E/S.
El Sistema Operativo necesita:
Dispositivos de almacenamiento de datos:
Almacenamiento secundario (discos).
Almacenamiento terciario (cintas).
Dispositivos de interacción con el usuario:
Periféricos de interfaz de usuario (ratones, pantallas, impresoras,
escáner, lápices ópticos, etc.)
Dispositivos de comunicaciones:
Conexión con otras máquinas (tarjetas de red, módems, etc.)
Es necesario hacer una clasificación de los periféricos. Esta
clasificación (estructura) corresponde a si gestionan la información por
bloques o por caracteres:
• Periféricos tipo bloque: Son aquellos en los que la información
que se maneja es de tamaño fijo. La información entra o sale de memoria
en forma de bloque. Un ejemplo son los registros de ficheros de datos
almacenados en discos o disquetes, ya que cada registro contiene
información referente a un bloque homogéneo.
• Periféricos tipo carácter: Son los que sirven para introducir datos
dentro de la memoria del ordenador en forma de caracteres, sin ningún
orden concreto, por ejemplo los teclados.
• Gestión en forma de cadena de caracteres: pueden ser el monitor,
la impresora, etc.
El sistema operativo se encarga de acceder a la información de la
memoria principal, extraerla en forma de impulsos eléctricos y enviarla a
los diferentes dispositivos periféricos. Si la información se envía a un
disco duro, los impulsos se transformarán en señales de tipo magnético;
si se envía a una impresora, se transformarán en caracteres, etc.
En los sistemas UNIX, se utiliza una cache común para todos los
dispositivos de bloques. El tamaño de la cache es dinámico y crece de
acuerdo a las necesidades de la memoria del resto del sistema. Para
gestionarla se usa básicamente una política de reemplazo LRU. En las
últimas versiones esta cache trabaja coordinadamente con la utilizada por
el gestor de memoria. En cuanto al acceso a los discos, se utiliza el
algoritmo del ascenso con un único sentido de servicio.
La red, es un dispositivo que tiene un tratamiento un poco
diferente. El usuario no puede acceder a este dispositivo de la misma
manera que a un archivo. La parte del sistema operativo que trata la red
está dividida en tres niveles: Nivel inferior donde está el manejador del
dispositivo al que el usuario no puede acceder directamente. Nivel
intermedio donde el software implementa la pila de protocolos (Ej.: TCP e
IP). En el nivel superior está la interfaz del programador que corresponde
con la de los sockets definidos en el UNIX BSD.
Los Periféricos de entrada. Son los que sirven para introducir
información (datos o programas) en el ordenador. La información va
desde ellos hacia la memoria y el resto de componentes internos para ser
procesada. Son periféricos de entrada el teclado, el escáner, la unidad
lectora de CD-ROM, el ratón, etc.
Los Periféricos de salida. Son los que se utilizan para extraer la
información (datos en forma de resultados, programas, etc.) desde la
memoria y resto de componentes internos del ordenador, y mostrar los
datos. Son periféricos de salida la impresora, la pantalla, el plóter, etc.
Las técnicas de Cache de buffer y cola de caracteres: que hacen eficiente
al sistema de Entrada y Salida del sistema operativo MS-DOS.
El buffer-caché mantiene copias de bloques de disco individuales.
Las entradas del caché están identificadas por el dispositivo y número de
bloque. Cada buffer se refiere a cualquier bloque en el disco y consiste de
una cabecera y un área de memoria igual al tamaño del bloque del
dispositivo. Para minimizar la sobrecarga, los buffer se mantienen en una
de varias listas enlazadas.
El page-caché mantiene páginas completas de la memoria
virtual (4 KB en la plataforma x86). Las páginas pertenecen a ficheros en
el sistema de ficheros, de hecho las entradas en el page-caché están
parcialmente indexadas por el número de i-nodo y su desplazamiento en
el fichero.
Utilidades del Cache Buffer: Un caché de disco es una zona de memoria
intermedia entre el computador y los discos. Cuando se trabaja con
programas de aplicación.
El mayor o menor rendimiento de un caché de disco viene definido
por la cantidad de memoria destinada. Cuanta más memoria se dedique
al caché, mayor número de informaciones del disco se podrán almacenar.
Técnicas de buffering. Área de memoria donde se almacena
temporalmente los datos.
Caché de disco. Ampliación del concepto de buffer. Dispone de
varios sectores del disco accedidos recientemente almacenados en
memoria.
Fuente: La autora y otros textos varios sitios web.
*******
Objetivo Nº 10
Analice y describa los esquemas para la implantación de los
sistemas de archivos: gestión de archivos y la estructura física de
los mismos, estructura de control, y asignación de archivos de los
sistemas operativos Windows y Linux, y presente las similitudes y/o
diferencias entre ambos. Presente sus propias conclusiones e
interpretación en función del análisis realizado.
Aunque los discos rígidos pueden ser muy pequeños, aún así
contienen millones de bits, y por lo tanto necesitan organizarse para poder
ubicar la información. Éste es el propósito del sistema de archivos.
Un disco rígido se conforma de varios discos circulares que giran en torno
a un eje. Las pistas se dividen en piezas llamadas sectores (cada uno de
los cuales contiene 512 bytes). El formateado lógico de un disco permite
que se cree un sistema de archivos en el disco, lo cual, a su vez, permitirá
que un sistema operativo (DOS, Windows 9x,UNIX, ...) use el espacio
disponible en disco para almacenar y utilizar archivos. El sistema de
archivos se basa en la administración de clústers (Uno o más sectores), la
unidad de disco más chica que el sistema operativo puede administrar.
Por el otro lado, ya que un sistema operativo sólo sabe administrar
unidades enteras de asignación (es decir que un archivo ocupa un
número entero de clústers), cuantos más sectores haya por clúster, más
espacio desperdiciado habrá. Por esta razón, la elección de un sistema de
archivos es importante.
En realidad, la elección de un sistema de archivos depende en
primer lugar del sistema operativo que esté usando. Generalmente,
cuanto más reciente sea el sistema operativo, mayor será el número de
archivos que admita. Por esto, se necesita contar con FAT16 en DOS y
en las primeras versiones de Windows 95.
Empezando por Windows 95 OSR2, usted puede elegir entre los
sistemas de archivos FAT16 y FAT32. Si el tamaño de la partición es
mayor a 2GB, se excluyen los sistemas de archivos FAT y usted
necesitará usar el sistema FAT32 (o modificar el tamaño de la partición).
Por debajo de este límite, se recomienda FAT16 para particiones con una
capacidad menor a 500Mb. De lo contrario, es preferible usar FAT32.
En el caso de Windows NT (hasta la versión 4) se puede elegir
entre el sistema FAT16 y NTFS. No se admite FAT32. Por lo general, se
recomienda el sistema NTFS ya que brinda una mayor seguridad y un
mejor rendimiento que el sistema FAT. Actualmente, Microsoft
recomienda el uso de una partición de tipo FAT pequeña (de entre 250 y
500MB) para el sistema operativo, para poder iniciar el sistema desde un
disquete ó CD DOS de arranque en caso de que ocurra una catástrofe, y
el uso de una segunda partición para almacenar sus datos.
Sistema operativo
Tipos de Sistemas de Archivos Admitidos
Dos FAT16
Windows 95 FAT16
Windows 95 OSR2 FAT16, FAT32
Windows 98 FAT16, FAT32
Windows NT4 FAT, NTFS (versión 4)
Windows 2000/XP FAT, FAT16, FAT32, NTFS (versiones 4 y 5)
LinuxExt2, Ext3, ReiserFS, Linux Swap (FAT16, FAT32, NTFS)
OS/2 HPFS (Sistema de Archivos de Alto Rendimiento)
SGI IRIX XFS
FreeBSD, OpenBSD
UFS (Sistema de Archivos Unix)
Sun Solaris UFS (Sistema de Archivos Unix)
Cuando coexisten varios sistemas operativos en la misma
máquina, la elección de un sistema de archivos es un gran problema.
Debido a que el sistema de archivos está estrechamente ligado al sistema
operativo, cuando existen varios sistemas operativos, usted debe elegir
un sistema de archivos para cada uno, teniendo en cuenta que es posible
que deba acceder a los datos de un sistema operativo desde otro. Una
solución sería la de usar particiones FAT para todos los sistemas,
asegurándose de que las particiones no sean mayores a 2 GB.
Sistemas de Gestión de Archivos (File Management Sytems): Es
aquel sistema software que provee servicios a los usuarios y aplicaciones
en el uso de archivos. El único camino que tiene el usuario o la aplicación
tiene para acceder a los archivos es a través de un sistema de gestión de
archivos. Esto revela para el usuario o programador la necesidad de
desarrollar software de propósito especial para cada aplicación y provee
al sistema un medio de controlar su ventaja más importante.
Estos son los objetivos de un sistema de gestión de archivos:
1. Cumplir con las necesidades de gestión de datos y con los
requisitos del usuario, que incluye el almacenamiento de, datos y la
capacidad de ejecutar las operaciones en la lista precedente.
2. Garantizar, en la medida de lo posible, que el dato en el archivo es
valido.
3. Optimizar el rendimiento, ambos desde el punto de vista del
sistema en términos de productividad global, y como punto de vista
del usuario en tiempos de respuesta.
4. Para proveer soporte de E/S para una variedad de tipos de
dispositivos de almacenamiento.
5. Para minimizar o eliminar la posibilidad de perdida o destrucción de
datos.
6.
Para proveer un conjunto estándar de rutinas de E/S.
7.
Para proveer soporte de E/S para múltiples usuarios, en caso de
sistemas multiusuarios.
Arquitectura de los sistemas de Archivos (File System
Architecture)
Diferentes sistemas van a tener diferente organizaciones pero
estas organizaciones son razonablemente representativas. A un
nivel mas bajo los manejadores de dispositivos (device drivers) se
comunican directamente con los dispositivos de periféricos o con
sus canales o controladores. Un controlador de dispositivos es
responsable de iniciar las operaciones de E/S en un dispositivo y
procesar la terminación de una petición de E/S. Para operaciones
de archivos, el controlador típico de dispositivos son discos y
unidades de cinta. Los manejadores de los dispositivos son
usualmente considerados como parte del sistema operativo.
El próximo nivel esta referido con el nombre de sistema de archivos
básicos (basic file system), o nivel de E/S física (physical I/O) Esta
es la interfase primaria con el ambiente fuera del sistema de la
computadora. Este nivel trata con bloques de datos que son
intercambiados con sistemas de disco o cinta. De este modo. se
preocupa de ubicar dichos bloques en el dispositivo de
almacenamiento secundario y del almacenamiento intermedio de
los mismos en memoria principal. Este nivel no comprenderá el
contenido de los datos o la estructura de los archivos implicados. El
sistema de archivos básicos es usualmente considerado como
parte del sistema operativo.
El supervisor básico de E/S (Basic I/O supervisor) es el
responsable de la iniciación y terminación de todas las E/S con
archivos. En este nivel, hay unas estructuras de control que se
encargan de la entrada y de salida con los dispositivos la
planificación y el estado de los archivos. El supervisor básico de
E/S se encarga de seleccionar el dispositivo donde se va a realizar
la E/S con los archivos dependiendo del archivo seleccionado.
También se encarga de la planificación de los accesos a disco y
cinta para optimizar el rendimiento. En este nivel se asignan los
buffers de E/S y se reserva la memoria secundaria. El supervisor
básico de E/S es parte del sistema operativo.
La E/S lógica habilita a los usuarios y aplicaciones de acceder a
registros. Así mientras el sistema de archivos básico trabaja con
bloques de datos. el modulo lógico de E/S trabaja con el archivo de
registros. La E/S lógica provee una capacidad de E/S de registro
de propósito general y mantiene los datos básicos acerca de los
archivos.
El nivel del sistema de archivo mas cercano de usuario es
usualmente el método de acceso (access method). Provee una
interfase estándar entre aplicaciones y los archivos del sistema a
dispositivos que guarden datos. Los diferentes métodos de acceso
reflejan los diferentes estructuras de datos y diferentes maneras de
acceder y procesar el dato.
Funciones de la gestión de archivos (File management Functions)
Los usuarios y las aplicaciones interactúan con el sistema de
archivos mediante comandos para crear y borrar archivos y realizar
operaciones sobre los archivos. Antes de ejecutar alguna
operación, los archivos del sistema deben identificar y localizar el
archivo seleccionado. Esto requiere el uso de alguna clase de
directorio que es reservado para describir la localización de todos
los archivos, mas sus atributos. Además , la mayoría de los
sistemas compartidos aplican algún control de acceso a los
usuarios: solamente los usuarios autorizados están permitidos para
acceder a archivos particulares en determinados lugares. Las
operaciones básicas que el usuario o el programa puede ejecutar
sobre un archivo se puede realizar a nivel de registro. El usuario o
la aplicación ve el archivo con una estructura que organiza los
registros, como una estructura secuencial. De este modo, para
traducir las ordenes del usuario a ordenes específicas de
manipulación de archivos., debe emplearse el método de acceso
apropiado para esta estructura de archivo.
Organización y acceso a archivos (File organizittion and access)
En esta parte vamos a usar el termino organización de archivos
para referirnos a la estructura lógica de los registros determinada
por la manera en que se accede a ellos. La organización fisica del
archivo en almacenamiento secundario depende de la estrategia
de agrupación y de la estrategia de asignación de archivos.
Para seleccionar una organización de archivos hay diversos
criterios que son importantes:
1.
Acceso Rápido para recuperar la información
2.
Fácil actualización
3.
Economia de almacenamiento
4.
Mantenimiento simple.
5.
Fiabilidad para asegurar la confianza de los datos.
La prioridad relativa de estos criterios va a depender de las
aplicaciones que va a usar el archivo.
El numero de alternativas de organización de archivos que se han
implementado o propuesto es inmanejable, incluso para un libro
dedicado a los sistemas de archivos.
La mayor parte de las estructuras empleadas en los sistemas
reales se encuadran en una de estas categorias o puede
implementarse como una combinación de estas:
1.
Pilas (The pile)
2.
Archivos secuenciales (sequential file)
3.
Archivos Secuenciales indexados. (indexed sequential file)
4.
Archivos indexados.(indexed file)
5.
Archivos directos o de dispersión (direct, or hashed, file).
Pilas
La forma menos complicada de organización de archivos puede
denominarse la pila. Los datos se recolectan en el orden en que
llegan. Cada registro consiste en una ráfaga de datos. El propósito
de la pila es simplemente acumular la masa de datos y guardarlo.
Como no hay estructura para el archivo de la pila. el acceso a
registro es por búsqueda exhaustiva..Si se quiere todos los
registros que contienen un campo particular o que tienen un valor
determinado para ese campo, debe buscarse en el archivo entero.
Los archivos de pilas se aplican cuando los datos se recogen y
almacenan antes de procesarlos o cuando no son fáciles de
organizar. Este tipo de archivo usa bien el espacio cuando los
datos almacenados varían en tamaño y en estructuras. Este tipo de
archivos no se adapta a la mayoría de las aplicaciones.
Archivos Secuenciales
La forma mas común de estructura de archivo es el archivo
secuencial. En este tipo de archivo, un formato fijo es usado para
los registros. Todos los registros tienen el mismo tamaño, constan
del mismo numero de campos de tamaño fijo en un orden
particular. Como se conocen la longitud y la posición de cada
campo, solamente los valores de los campos se necesitan
almacenarse; el nombre del campo y longitud de cada campo son
atributos de la estructura de archivos.
Un campo particular, generalmente el primero de cada registro se
conoce como el campo clave. El campo clave identifica
unívocamente al registro. así, los valores de la clave para registros
diferentes son siempre diferentes.
Los archivos secuenciales son típicamente utilizados en
aplicaciones de proceso de lotes Y son óptimos para dichas
aplicaciones si se procesan todos los registros. La organización
secuencias de archivos es la única que es fácil de usar tanto en
disco como en cinta.
Para las aplicaciones interactivas que incluyen peticione s o
actualizaciones de registros individuales, los archivos secuenciales
ofrecen un rendimiento pobre.
Normalmente un archivo secuencial se almacena en bloques, en
un orden secuencial simple de los registros. La organización física
del archivo en una cinta o disco se corresponde exactamente con
la ubicación lógica del archivo. En este caso, el procedimiento para
ubicar los nuevos registros en un archivo de pila separado, llamado
archivo de registro (log file) o archivo de transacciones.
Periódicamente, se realiza una actualización por lotes que mezcla
el archivo de registro con el archivo maestro para producir un
nuevo archivo en secuencia correcta de claves.
Archivos Secuenciales indexados
Un método popular para superar las desventajas de los archivos
secuenciales es el del archivo secuencias indexado. El archivo
secuencial indexado mantiene las caracteristicas básicas de los
archivos secuenciales: los registros están organizados en una
secuencia basada en un campo. Dos características se añaden: un
índice del archivo para soportar los accesos aleatorios y un archivo
de desbordamiento ( overflow ). El indice provee una capacidad de
búsqueda para llegar rapidamente a las proximidades de un
registro deseado. El archivo de desbordamiento (overflow) es
similar al archivo de registro usado en un archivo secuencial, pero
esta intregrado de forma que los registros del archivo de
desbordamiento se ubican en la dirección de un puntero desde si
registro precedente. En la estructura secuencial indexada mas
simple, se usa un solo nivel de indexacion. El indice, en este caso,
es un archivo secuencial simple. Cada registro del archivo indice
tiene dos campos: un campo clave, que es el mismo que el campo
clave del archivo principal y un puntero al archivo principal. Para
encontrar un campo especifico se busca en el indice hasta
encontrar el valor mayor de la clave que es igual o precede al valor
deseado de la clave. La busqueda continua en el archivo principal
a partir de la posición indicada por el puntero.
Archivos Indexados
Los archivos secuenciales indexados retienen la limitación del
archivo secuencial: la eficacia en el procesamiento se limita al
basado en un único campo del archivo. Cuando es necesario
buscar un registro basándose en algún otro atributo distinto del
campo clave ambas formas de archivo secuencial no son
adecuadas. En algunas aplicaciones esta flexibilidad es deseable.
Para alcanzar esta flexibilidad, se necesita una estructura que
utilice múltiples índices, uno para cada tipo de campo que pueda
ser objeto de la búsqueda.
Se suelen utilizar dos tipos de índices. Uno indice exhaustivo
contiene una entrada par cada registro del archivo principal. Otro
índice parcial contendrá entradas a los registros donde este el
campo de interés. Con registros de longitud variable, algunos
registros no contendran todos los campos.
Los archivos indexados son muy utilizados en aplicaciones donde
es critica la oportunidad de la informacion y donde los datos son
rara vez procesados de forma exhaustiva.
Archivos Directos o de Dispersión
Los archivos directos explotan la capacidad de los discos para
acceder directamente a cualquier bloque de dirección conocida.
Como en los archivos secuenciales y secuenciales indexados, se
requiere un campo clave en cada registro. Sin embargo, aquí no
hay concepto de ordenamiento secuencial.
Directorios de Archivo
Asociado con algunos sistemas de gestión de archivos o cualquier
colección de archivos suele haber un directorio de archivos. El
directorio contiene informnación acerca de los archivos, incluyendo
atributos, localización y propietario. Mucha de esta información,
especialmente la concernida con el almacenamiento es gestionada
por el sistema operativo. El directorio es propiamente un archivo,
poseído por el sistema operativo y, accesible a traces de diversas
rutinas de gestión de archivos. Aunque alguna información en los
directorios esta disponible para los usuarios y aplicaciones, en
general , la información se proporciona indirectamente a través de
rutinas del sistema. De este modo los usuarios pueden acceder
directamente al directorio, incluso en modo de solo lectura.
Estructura
La manera en que la información se almacena difiere mucho en los
diferentes sistemas. Parte de la información puede almacenarse en
un registro de cabecera asociado al archivo, esto reduce el espacio
necesario para el directorio, haciendo mas fácil mantener todo el
directorio.
La forma mas fácil de estructuración de un directorio es una lista de
entradas, unas para cada archivo. Esta estructura puede
representarse con un simple archivo secuencial, con el nombre del
archivo haciendo las veces de clave.
Operaciones que se pueden realizar con un directorio:
1.
Buscar: Cuando alguien referencia el archivo, debe buscarse en el
directorio la entrada correspondiente al archivo.
2.
Crear archivo: Al crear un nuevo archivo. debe añadirse una
entrada al directorio.
3.
Borrar archivo: Al borrar un archivo, debe eliminarse una entrada al
directorio.
4.
Listar directorio: Puede solicitarse todo el directorio o una parte.
Una simple lista no se ajusta bien a estas operaciones. Si el
directorio es una simple lista secuencias, no ofrecerá ayuda en la
organización de los archivos y obligara al usuario a tener cuidado
de no usar el mismo nombre para dos tipos diferentes de archivos.
Para resolver este problema se puede acudir a un esquema de dos
niveles donde hay un directorio para cada usuario y un directorio
maestro.
Un método mas potente y flexible es el directorio jerárquico o
estructurado en arbol. Existe un directorio maestro que contiene un
numero determinado de directorios de usuario. Cada uno de estos
directorios puede tener a su vez subdirectorios y archivos como
entradas. Esto se cumple en cualquier nivel.
Para organizar cada directorio y subdirectorio. El método mas
simple es almacenar cada directorio como un archivo secuencial.
Cuando los directorios contengan un numero muy grande de
entradas, tal organización puede conducir a tiempos de, búsqueda
innecesariamente grandes. En ese caso se prefiere una estructura
de dispersión.
Designación (Naming)
Los usuarios necesitan poder referirse a un archivo mediante un
nombre simbólico. Cada archivo del sistema debe tener un nombre
único para que las referencias al archivo no sean ambiguas. Por
otro lado, es una carga inaceptable para los usuarios el
proporcionar nombres únicos, especialmente en los sistemas
compartidos.
El uso de directorios estructurados en arbol minimiza la dificultad
de asignar nombres unicos. Cualquier archivo del sistema puede
ser localizado siguiendo un camino desde, el directorio raíz o
maestro. descendiendo por varias ramas hasta que se alcance el
archivo. La serie de nombres de directorios, terminados con el
propio nombre del archivo, constituye el propio nombre del camino
del archivo.
Cada usuario interactivo o proceso tiene asociado un directorio
actual, conocido a menudo como directorio de trabajo.
El Compartir Archivos (File Sharing)
En un sistema multiusuario, casi siempre existe la necesidad de
permitir a los usuarios
Compartir archivos. Dos problemas surgen:
1.
Los derechos de accesos
2.
Gestion de los accesos simultáneos
Derechos de Acceso:
El sistema de archivos provee una herramienta flexible para
permitir compartir extensos archivos entre los usuarios. El sistema
de archivos debe proporcionar un numero de opciones de modo en
que un archivo que es accedido pueda ser controlado.
Normalmente, al usuarios o a los grupos de usuarios se les otorgan
ciertos derechos de acceso a cada archivo. Un amplio rango de
derechos de acceso se ha venido usando. La siguiente lista
representa los derecho de acceso que pueden ser asignados a un
usuario en particular para un archivo en particular:
1.
Ninguno: El usuario no puede siquiera determinar la existencia del
archivo ni mucho menos acceder al mismo. No se permite al
usuario leer el directorio de usuario que incluya al archivo.
2.
Conocimiento: El usuario sabe de la existencia del archivo Y quien
el dueño. El usuario puede solicitar los derechos de acceso
adicionales al propietario.
3.
Ejecución: El usuario puede ejecutar y cargar un programa pero no
copiarlo.
4.
Lectura: El usuario puede leer el archivo para cualquier propósito,
incluyendo copia y ejecución.
5.
Adición: El usuario puede añadir datos al archivo, generalmente al
final, pero no puede modificar o borrar el contenido del mismo.
6.
Actualización: El usuario puede modificar, borrar y añadir otros
datos al archivo.
7.
Cambio de protección: El usuario puede cambiar los derechos de
acceso otorgados a usuarios.
8.
Borrado: El usuario puede borrar el archivo del sistema de
archivos.
Los derechos constituyen una jerarquía. Si un usuario adquiere el
derecho de la actualización para un archivo determinado, también
habrá adquirido los derechos siguientes: conocimiento, ejecución,
lectura y adición.
El propietario de un archivo dispone de los derecho de acceso
listados antes y puede otorgar derechos a los otros. Puede
ofrecerse acceso a las siguientes clases de usuarios:
1.
Usuario específico: Usuarios individuales quienes son designados
por su ID de usuario.
2.
Grupos de usuarios: Un conjunto de usuarios no definidos
individualmente.
3.
Todos: Todos los usuarios que tengan acceso al sistema. Estos
serán archivos públicos.
Acceso Simultáneos:
Cuando el acceso es concedido para añadir o actualizar un archivo
a mas de un usuario, el sistema operativo o el sistema de gestión
de archivos debe hacer cumplir una disciplina. Un método de
fuerza bruta consiste en permitir a los usuarios bloquear el archivo
entero cuando lo vaya a actualizar. Un mejor control es bloquear
los registros individuales durante la actualización. Al disertar la
posibilidad de accesos comparados, deben abordarse aspectos de
exclusión mutua e interbloqueo.
Agrupación de Registros (Record Blocking)
Para realizar E/S, los registros deben organizarse en bloques.
Dado un tamaño de bloque, pueden seguirse los siguientes tres
métodos de agrupación en bloques:
1.
Bloques fijos: Se usan registros de longitud fija y un numero entero
de registros son Guardados en un bloque. Puede haber espacio sin
usar al final de cada bloque.
2.
Bloque de longitud variable por tramos: Se usan registros de
longitud variable y agrupados en bloques sin dejar espacios sin
usar.
3.
Bloque de longitud variable sin tramos: Son usados registros de
longitud variable, pero no se dividen en tramos. En la mayoria de
los bloques habrá un espacio desperdiciado, debido a la
imposibilidad de aprovechar el resto del bloque si el registro
siguiente es mayor que el espacio sin usar restante.
Los bloques de tamaño fijo son el modo mas común de archivos
secuenciales con registro de longitud variable. Los bloques de
longitud variable por tramos constituyen un almacenamiento eficaz
y no ponen limites al tamaño de los registros. Pero esta tecnica es
difícil de implementar.
Gestión del Almacenamiento secundario (Secondary Storage
Management)
En el almacenamiento secundarlo, un archivo consiste en una
colección de bloques. El sistema de gestiónele archivos es el
responsable de la asignación de los bloques a archivos. Esto crea
dos problemas sobre la gestión. Primero, el espacio en el
almacenamiento secundario debe ser designados a los archivos,
en segundo lugar, es necesario guardar constancia del espacio
disponible para asignar. Estas dos tareas están relacionadas, el
metodo tomado para asignar los archivos puede influir en el
método de gestión del espacio libre. También existe una
interacción entre la estructura de archivo y la política de
asignación.
Asignación de Archivos
Surgen varias cuestiones:
1. Cuando se crea un archivo nuevo. ¿se asigna de una sola vez el
maximo espacio que necesite?
2. El espacio se asigna a un archivo en forma de una o mas
unidades contiguas que se llaman secciones. Un tamaño de una
sección puede variar desde un único bloque a un archivo entera.
Que tamaño de sección deberia usarse para asignar archivos?
3. ¿Qué tipos de estructura de datos o tabla se usaran para
guardar constancia de las secciones asignadas a un archivo. Dicha
tabla se conoce normalmente como tabla de asignacion de
archivos (FAT).
Asignación previa frente a Asignación dinámica
Una política de asignación requiere que el tamaño máximo de un
archivo sea declarado un el momento de crearlo. En un numero de
casos, como el compilar los programas, la producción del resumen
de los datos del archivo, o la transferencia de un archivo desde otro
sistema por una red de comunicaciones, este valor puede
estimarse. Pero en muchas aplicaciones es dificil estimar el tamaño
máximo del archivo.
Tamaño de Sección
La segunda cuestión de la lista anterior es la del tamaño de
sección asignada a los archivos. En un extremo, se puede asignar
una sección suficientemente grande para guardar el archivo entero.
En el otro extremo, se asigna el espacio en disco de bloque en
bloque. Al elegir el tamaño de sección, debe haber un compromiso
relativo a la eficiencia desde el punto de vista de un solo archivo
frente al del sistema global.
1- La contigüidad del espacio aumenta el rendimiento.
2- Disponer de un gran numero de secciones pequeñas aumenta el
tamaño de las tablas necesarias para gestionar la asignación de
información.
3- Disponer de secciones de tamaño fijo simplifica la resignación
del espacio.
4- Disponer de secciones de tamaño variable o secciones
pequeñas de tamaño fijo minimiza la perdida de espacio no usado
provocado por la sobre asignación.
Secciones contiguas variables y grandes: Esta opción ofrecerá un
rendimiento mejor. El tamaño variable evitara la perdida y las
tablas de asignación de archivos serán pequeñas. El espacio es
difícil de reutilizar.
Bloques: Las secciones fijas y pequeñas ofrecen una flexibilidad
mayor. La contigüidad se abandona y los bloques se asignan a
medida que se necesitan.
Cualquier opción es compatible con la asignación previa o con la
asignación dinámica. En el primer caso se asigna previamente a
los archivos un grupo contiguo de bloques. En el segundo caso,
todas las secciones necesarias son asignadas de una vez,
Entonces la tabla de asignación de archivos permanecerá con
tamaño fijo.
No esta claro que estrategia es la mejor. La dificultad de moldear
estrategias alternativas esta en que intervienen muchos factores
incluyendo los tipos de archivo, la pauta a los accesos a archivo, el
grado de rnultiprogramacion, etc
Métodos de Asignación de Archivos
Con Asignación contigua: Cuando se crea un archivo se le asigna
un unico conjunto contiguo de bloques. Esta es una estrategia de
asignación previa que emplea secciones de tamaño variable. La
tabla de asignación de archivos necesita solo una entrada por cada
archivo, que muestre el bloque de comienzo y la longitud del
archivo. La asignación contigua es la mejor desde el punto de vista
de un archivo secuencias individual.
Con Asignación encadenada: La asignación normalmente se hace
con bloques individuales. Cada bloque contendrá un puntero al
siguiente bloque de la cadena. La tabla de asignación de archivos
necesita de nuevo una sola entrada por cada archivo que muestre
el bloque de comienzo y la longitud del archivo. No hay que
preocuparse por la fragmentación externa porque solo se necesita
un solo bloque cada vez. Este tipo de organización física se ajusta
mejor a los archivos secuenciales que van a ser procesados
secuencialmente.
La asignación indexada: Trata mucho de los problemas de las
asignaciones contigua y encadenada. La tabla de asignación de
archivos contienen un índice separado de un nivel para cada
archivo; el índice posee una entrada para cada sección asignada al
archivo. Los índices no están almacenados físicamente como parte
de la tabla de asignación de archivos. El índice del archivo se
guardara en un bloque aparte y la entrada del archivo en la tabla
de asignación apuntada a dicho bloque. La asignación indexada
soporta tanto el acceso secuencial como el acceso directo a los
archivos.
Gestión del Espacio Libre
Al igual que al espacio asignado a los archivos, se debe gestionar
el espacio que no queda asignado actualmente a ningun archivo.
Para llevar a cabo cualquiera de las técnicas de asignación que se
han descrito, es necesario saber que bloques del disco están
disponibles. Hace falta una tabla de asignación de disco además
de una tabla de asignación de archivos. Tres técnicas son de uso
común:
1.
Las tablas de bits.
2.
Las secciones libres encadenadas.
3.
Y la indexación.
Tablas de Bíts
El método de las tablas de bits utiliza un vector que contiene un bit
por cada bloque del disco. Cada entrada de igual a 0 corresponde
a u bloque libre y cada 1 corresponde a un bloque en uso. Las
tablas de bits tienen la ventaja de que es relativamente facil
encontrar un bloque o un grupo continuo de bloques libres. Las
tablas de bits trabajan bien con cualquiera de los métodos de
asignación de archivos. Otra ventaja es que puede ser tan pequeña
como sea posible y puede mantenerse en memoria cada vez que
se realice una asignación.
Secciones libres encadenadas
Las secciones libres pueden encadenarse juntas mediante un
puntero y un valor de longitud en cada sección libre. Este método
tiene un gasto minimo porque no hay necesidad de tabla de
asignacion de disco, sin simplemente un puntero al comienzo de la
cadena y la longitud de la primera seccion. Este método sirve para
todas las técnicas de asignación de archivos.
Indexación
El método de indexación trata el espacio libre como si fuera un
archivo y utiliza una tabla índice. Por razones de eficiencia, el
índice debe trabajar con secciones de tamaño variable mejor que
con bloques. De este modo, habrá una entrada en la tabla para
cada sección libre del disco. Este procedimiento ofrece un soporte
eficaz para todos los métodos de asignación de archivos.
Fiabilidad
Considérese el escenario siguiente:
1. El usuario A solicita una asignación para añadir datos a un
archivo existente.
2. La petición se atiende y se actualizan en memoria principal las
tablas de asignación de disco y archivos, pero no aun en el disco.
3. El sistema se hunde y a continuacion se reinicia
4. El usuario B solicita una asignación y se le otorga un espacio en
el disco que se solapa con la ultima asignación hecha al usuario A.
5. El usuario A accede a la sección solapada mediante una
referencia que esta almacenada en el archivo de A. Esto surge
debido al que el sistema mantiene copias de la tabla de asignación
de disco y la tabla de asignación de archivos en memoria principal.
Para evitar esto puede seguir los siguientes pasos:
1. bloquear en el disco la tabla de asignación de disco
2- Buscar espacio disponible en la tabla de asignación de disco.
3- Asignar el espacio, actualizar la tabla de asignación de disco y
actualizar el disco.
4- Actualizar la tabla de asignación de archivos y actualizar el
disco.
5- Desbloquear la tabla de asignación de disco.
Acronimos
UCP Unidad Central de Proceso
S.O. Sistema Operativo
E/S Entrada y Salida
FAT File allocation Table
***************Sistemas de Archivos de Linux así como su Estructura de Directorios, temas básicos para empezar a conocer este sistema operativo.El autor de este contenido es Francisco Illeras, Administrador de Sistemas en la UGR y Tutor del Curso.Si queremos instalar Linux en un equipo con Windows y que coexista con él, debemos crear e instalarlo en una partición diferente. Debemos de tener en cuenta que el “Sistema de Archivos” que cada uno de estos sistemas operativos utiliza es diferente.
Para empezar, ¿qué es un “Sistema de Archivos”? Pues este término (también se utiliza “Sistema de Ficheros” o directamente el inglés: “File System“), hace referencia a la forma en la que la información se organizará en el disco duro (o dispositivo de almacenamiento utilizado), definiendo cómo se realizarán las operaciones de lectura/escritura, búsquedas e indexación de los datos.El disco duro de nuestro ordenador esta confeccionado por múltiples bloques (denominados sectores) donde se almacenan los datos que manejamos. El “sistema de archivos” es el que determina como se organizan dichos bloques para confeccionar lo que conocemos bajo el nombre de “archivos” y “directorios”, manteniendo información acerca del espacio disponible en cada instante.
A lo largo de la historia, cada uno de los sistemas operativos que conocemos, ha tenido su propio “Sistemas de archivos”. Así, podemos encontrar que Microsoft trabaja con dos tipos de sistemas de archivos bien identificados: FAT (que tenía varias versiones, y que era utilizado para Microsoft Windows 95, Windows 98, y Windows XP) y NTFS (propio de Microsoft Windows NT, Windows XP, Windows Vista o el actual Windows 7). Son muchas las diferencias entre FAT y NTFS, pero las más importantes están orientadas a la posibilidad de contar con dispositivos de almacenamiento más grandes (FAT estaba limitado en tamaño de particiones) y más seguridad en el acceso a los ficheros del sistema.Por el contrario, GNU/Linux comenzó su andadura con su sistema de archivos “Ext2”, pero éste fue sustituido por nuevas versiones que si tenían la capacidad de trabajar con grandes volúmenes de información (Terabytes) y de poder restituir rápidamente (gracias al “Journaling”) el sistema ante un fallo importante en el sistema de archivos. Posteriormente aparecieron otros sistemas de archivos nuevos y mejoras sobre el modelo existente.Veámoslo con más detalle:
Ext2
(Sistema de archivos Extendido, versión 2)el primer sistema de archivos utilizado por GNU/Linux fue creado por Remy Card (no es del todo cierto, antes existió “Ext”, utilizado con “Minix”, pero debido a sus limitaciones y usos no suele contar como un sistema de archivos válido para las distribuciones GNU/Linux que conocemos hoy en día). Como todos los sistemas de archivos de Linux, éste también es asíncrono, es decir, no escribe inmediatamente los metadatos en el dispositivo de almacenamiento, sino que lo hace de manera periódica. Con ello consigue aprovechar los tiempos muertos de la CPU y consecuentemente, el rendimiento general del equipo. Pese a ser el primero, ya dispone de mecanismos que permiten la recuperación de la información en caso de fallo (detectando particiones desmontadas erróneamente).
Ext3
(Sistema de archivos Extendido, versión 3)es compatible con Ext2 (la única diferencia con éste es que posee un fichero adicional de registro para implementar “journaling”). De hecho, el objetivo de Ext3 era mejorar Ext2, pero manteniendo la compatibilidad con éste. Entre las principales diferencias cabe destacar que Ext3 mantiene la consistencia no solo de los metadatos (como ya hace Ext2) sino también de los propios datos. Por supuesto, la seguridad de poder recuperar los datos de nuestro sistema tiene un coste, y es que tendremos menos rendimiento y más consumo de espacio en disco.
Ext4
(Sistema de archivos Extendido, versión 4)mantiene la compatibilidad con sus antecesores, posee “journaling”, reduce considerablemente la fragmentación de archivos (mejorando con ello el rendimiento), permite dispositivos de almacenamiento de más capacidad.
ReiserFS
desarrollado por la empresa Namesys, fue el primer sistema de archivos con “journal” incluido en un núcleo estándar de Linux. Pero además, implementa otra serie de ventajas no disponibles en otros sistema de archivos, como puede ser la repartición de sistemas de ficheros montados, o un esquema para reducir la fragmentación. La versión más reciente de este sistema de archivos se denomina “Reiser4”, y además de las características antes indicadas, posee mecanismos que le permiten trabajar con cientos de miles de archivos, y una estructura de archivos optimizada.
XFS
creado por Silicon Graphics Inc., se trata de un sistema de archivos con “journaling” que inicialmente funcionaba sobre la implementación IRIX de UNIX, pero que posteriormente se liberó como código abierto. Destaca por su alta escalabilidad y fiabilidad (admite redireccionamiento de 64 bits, implementación paralelizada), y sobre todo porque es capaz de trabajar con archivos muy grandes.
JFS
desarrollado por IBM, inicialmente fue creado para servidores de alto rendimiento y equipos de altas prestaciones. Posee un eficiente “journaling” que le permite trabajar cómodamente con archivos de gran tamaño como con otros más pequeños. Las particiones JFS pueden ser dinámicamente redimensionadas (como ya hacía RaiserFS), pero no pueden ser comprimidas (algo que si hacen RaiserFS y XFS).
Existen más sistemas de archivos utilizados en GNU/Linux, pero no los trataremos aquí debido a que se utilizan con menos frecuencia.
Journaling
Seguro que no le ha pasado desapercibido el término “Journaling” o “journal” a lo largo de los párrafos anteriores, y es que se trata de la principal característica que identifica los sistemas operativos modernos. El “Journaling” (también conocido como “registro por diario”) es un mecanismo que almacenará las transacciones (operaciones de lectura y escritura de archivos) que se realizan en el sistema, y que permitirá la recuperación de los datos en caso de fallo grave.Su funcionamiento, a grandes rasgos, sería el siguiente: cuando se desea guardar un archivo en el sistema de ficheros, se anotará esta acción en el “journal” (en ocasiones también se le denomina “bitácora”) pasando a continuación a realizar realmente la operación de escritura en el disco duro del equipo. Si la operación de escritura en disco duro finaliza con éxito entonces se elimina esa operación del “journal” (“diario”). Pero, si antes de finalizar la operación de escritura en disco se produjese un fallo (por ejemplo, un corte eléctrico) entonces el “journal”, que aún mantiene la información correspondiente al fichero, podría recuperarlo para el sistema rápidamente en el siguiente inicio.
Estructura de Directorios en Linux
Pero no solo el sistema de archivos de nuestro sistema operativo Linux es importante para conocer aspectos que afectan al rendimiento de nuestro
equipo, también es importante que conozcamos la forma en la que esta estructurado el sistema de directorios.El estándar utilizado por GNU/Linux para organizar la información se denomina FHS (Filesystem Hierarchy Standard), y éste sistema se encarga de organizar la información de forma jerárquica.
Ilustración: Jerarquía estándar del sistema de archivos.Partiendo de un “raiz” encontraremos los siguientes directorios:
/bin almacena las aplicaciones (comandos) básicas del sistema.
/bootaquí se encontrarán los archivos necesarios para el inicio del sistema, así como los correspondientes al cargador de arranque.
/dev cada uno de los archivos representa a un dispositivo del sistema.
/etces el directorio donde se encontrarán la mayoría de los archivos de configuración del sistema y de otras aplicaciones importantes.
/homedonde se encontrarán los directorios personales de los usuarios del sistema.
/lib bibliotecas compartidas necesarias para la ejecución del sistema.
/mnt
se trata del directorio en el que se solían ‘montar’ los distintos dispositivos de almacenamiento (discos duros externos, pen-drive), pero que ahora ha quedado obsoleto porque se utiliza el nuevo directorio “/media” para dicha función.
/procmantiene ficheros que almacenan el estado (procesos, dispositivos) del sistema.
/root es el directorio personal del administrador del sistema.
/sbin comandos de administración del sistema.
/tmp carpeta donde el sistema almacena información temporal.
/usrubicación que normalmente se dedica para instalar las aplicaciones de usuario.
/var
su contenido no se explica brevemente, ya que en él podremos encontrar los archivos de registro del sistema, archivos temporales del servicio de correo, o el directorio de trabajo del servidor de páginas web.
El estándar FHS posee más detalles relacionados con estos directorios, como por ejemplo:
Se recomienda que directorios como ‘/tmp’, ‘/var’ y ‘/home’ posean una partición propia, ya que si se produce un crecimiento desmesurado de los datos almacenados en ellas no afectarán al resto del sistema.
También se aconseja que el directorio ‘/home’ se encuentre en una partición aparte para que en el caso de una actualización del sistema, ésta pueda mantenerse inalterada.
Se considere al directorio ‘/etc’ como el más importante (junto con el directorio ‘/home’ porque almacena los datos de usuario), por lo que se aconsejan copias de seguridad del mismo.Otra característica que observaremos en cuanto comencemos a trabajar con Linux es que todo en este sistema operativo es un archivo: el hardware, una partición o los ficheros de datos.
Objetivo Nº 11
Analice y describa los mecanismos de control y distribución de
trabajo involucrados en los sistemas operativos Windows y Linux.
Presente sus propias conclusiones e interpretación en función del
análisis realizado.
El MS-DOS es un sistema operativo monousuario y monotarea, al
cumplir estas dos condiciones mencionadas el procesador está en cada
momento en exclusividad a la ejecución de un proceso, por lo que la
planificación del procesador es simple y se dedica al único proceso activo
que pueda existir en un momento dado.
El MS-DOS contiene cinco elementos fundamentales, para el
control y distribución de procesos:
La ROM-BIOS: Programa de gestión de entrada y salida entre el
Sistema Operativo y los dispositivos básicos del ordenador.
La IO.SYS: Son un conjunto de instrucciones para la transferencia
de entrada/salida desde periféricos a memoria. Prepara el sistema en el
arranque y contiene drivers de dispositivo residentes.
MSDOS.SYS: Es el Kernel del MS-DOS, en que figuran
instrucciones para control de los disquetes. Es un programa que gestiona
los archivos, directorios, memoria y entornos.
DBLSPACE.BIN: Es el controlador del Kernel del compresor del
disco duro que sirve para aumentar la capacidad de almacenamiento del
disco, disponible a partir de la versión 6 del MS-DOS. Este controlador se
ocupa de toda la compresión y descompresión de ficheros y se puede
trasladar desde la memoria convencional a la memoria superior.
COMMAND.COM: Es el intérprete de comandos, mediante los
cuales el usuario se comunica con el ordenador, a través del prompt \>.
Interpreta los comandos tecleados y contiene los comandos internos de
MS-DOS que no se visualizan en el directorio del sistema.
Los ficheros IO.SYS, MSDOS.SYS y DBLSPACE.BIN son ocultos,
es decir, no se ven al listar el directorio, y se cargan desde el disco a la
memoria del ordenador al arrancar éste.
En el control del MS-DOS, existen 2 maneras de arrancar el
sistema:
En Frío: está apagado y lo arrancamos con el 'ON'. Cachea los
dispositivos de entrada y de salida, teclado, monitor, discos duros,
disquetes, memoria (RAM), entre otros. Después busca el S.O. y lo carga,
primero mira en la disquetera y si hay disquete con sistema operativo lo
arranca; después mira el disco duro.
En Caliente: Se ejecuta apagando el ordenador con el botón reset
o con Ctrl+Alt+Supr. No se hacen todos los test anteriores y se carga
directamente del S.O., suele emplearse tras caídas del sistema operativo
o bloqueo del ordenador.
Entre los programas que intervienen en el control del sistema
operativo MS-DOS, se encuentran:
Bootstrap: Es el encargado de la inicialización del ordenador.
También es conocido como IPL (initial program load). Está programado en
Basic.
Es un programa situado en memoria ROM que lo primero que hace
es leer el programa de arranque del disco (situado en el primer sector del
disco), que determina si en el disco están los ficheros IBMBIOS.COM e
IBMDOS.COM (si no están aparece un mensaje indicativo de tal problema
- Non Sistem Disk).
Si encuentra los ficheros ejecuta primero el IBMBIOS.COM,
compuesto de dos partes:
BIOS: Es la parte encargada de controlar los periféricos.
SYSINIT: Se encarga de determinar la cantidad de memoria
continua del computador.
Después ejecuta el IBMDOS.COM y el SYSINIT se va de la parte
baja de la memoria del ordenador a la parte alta y deja su lugar en la
parte baja al IBMDOS (kernel o núcleo), que lo primero que hace es
controlar que los periféricos funcionen correctamente. Una vez
controlados los periféricos, vuelve el SYSINIT que llama a los servicios
del Kernel y ejecuta el fichero CONFIG.SYS (si una de sus instrucciones
no va bien, continúa con las otras instrucciones, dando el correspondiente
mensaje de error).
Por último SYSINIT llama a los servicios del MS-DOS y carga el
COMMAND.COM (parte residente y parte de inicialización). La parte de
inicialización cargará el AUTOEXEC.BAT.
Después de esto, el SYSINIT y la parte de inicialización del
COMMAND.COM se borran de la memoria.
BIOS.
Significa Basic Imput Output System. Es específico de cada
fabricante y se encarga de controlar las unidades hardware de entrada y
salida (teclado, impresora, reloj, entre otros). El BIOS se lee y se guarda
en la RAM cargando el fichero IBMBIOS.COM o IO.SYS.
IBMDOS.COM.
Es el kernel o núcleo del sistema. Sus funciones son gestión de
ficheros, gestión de memoria, generación de otros programa, Es
independiente del hardware empleado. Contiene un conjunto de servicios
(funciones del sistema).
COMMAND.COM.
Es una interfase entre el usuario y el aparato mediante un conjunto
de prompts y mensajes de respuesta a los comandos del usuario. Es el
responsable del análisis gramatical y gestiona las órdenes del usuario (es
el procesador de las órdenes).
El COMMAND.COM también es el encargado de gestionar las
interrupciones; el sistema de interrupciones dispone de una jerarquía
sencilla de prioridades para tratar las interrupciones ocasionadas por los
periféricos, cuando el tratamiento de una interrupción termina, se
devuelve el control al programa que se estaba ejecutando cuando sucedió
la interrupción.
Se ocupa también de tratar los errores que hayan podido
producirse durante la ejecución de un programa, devolviendo el control al
programa en que se produjo el error si ello es posible, y si no al MSDOS.
Gestiona los comandos internos, que dependen directamente de él.
No es obligatorio emplear este, se puede colocar otro creado por el
usuario (aunque se tendría que indicar en el CONFIG.SYS.
Está dividido en tres partes:
Residente: se carga en la parte baja de la memoria, por encima del
kernel y la BIOS. Controla los errores críticos, el empleo de Ctrl+Break,
Ctrl+C.
Sección de inicialización: Se carga por encima de la parte residente
y se encarga de procesar el archivo AUTOEXEC.BAT, después se borra
de la memoria RAM.
Módulo transitorio: Se carga en la parte alta de la memoria y su
finalidad es preparar el prompt o símbolo del sistema necesario para
poder introducir instrucciones y ejecutarlas. Sólo se carga cuando se
necesita y, después de ejecutar la orden, se descarga.
CONFIG.SYS.
El config.sys es un fichero de sistema (propio del sistema
operativo), creado o modificado con cualquier editor de textos.
Se ejecuta antes que el autoexec.bat y contiene una serie de
comandos de configuración del equipo. Algunos de sus parámetros son
imprescindibles, entre ellos el "Files" que indica el número de ficheros que
se pueden abrir al mismo tiempo.
No tiene limitación de tamaño y debe estar situado en el directorio
raíz del disco.
Además de los Files existen otros comandos "típicos" en este
archivo:
Buffers: Zonas intermedias de almacenamiento donde se guardan
cosas temporalmente, para transferir datos. El formato de la orden es:
BUFFERS (donde indica el número de buffers que se pueden emplear,
normalmente es 10).
Country: Indica el país en el que se está trabajando, así se
visualizarán los caracteres correctos del país.
Device: Sirve para cargar características de ratón, teclado, y otros.
Break: Indica al DOS si debe controlar la pulsación de las teclas
Ctrl+C o Ctrl+Break.
Lastdrive: Indica cual es la última letra de unidad de disco que
reconocerá el sistema.
AUTOEXEC.BAT.
Es un archivo de procesamiento por lotes. Sirve para inicializar una
serie de funciones no imprescindibles, introducir datos, activar controles
del sistema y cargar programas automáticamente.
El sistema operativo lo ejecuta automáticamente si existe. No tiene
limitación de tamaño y debe estar en el directorio desde el cual arranca el
sistema.
Hay varios comandos que están incluidos usualmente:
Keybsp: Actualiza el teclado a español.
Path: Busca un programa en cualquier carpeta que se le haya
indicado en este comando.
Set: Incluye variables de entorno y su valor correspondiente.
Uno de los mecanismo que utiliza el núcleo de Linux para tener
control de los procesos es la utilización de las señales, los sistemas
operativos UNIX pueden enviar señales a los procesos, una señal no es
más que un mensaje que envía un proceso a otro, una de las más
conocida es la señal TERM que se utiliza habitualmente con el
comando kill -TERM 15000, mediante el cual se le envía a una señal para
obligarle a que finalice.
En Linux, los usuarios pueden enviar sólo señales a los procesos
de los que son propietarios, excepto el usuario root que puede enviar
señales a cualquier proceso del sistema.
Otro de los mecanismos de control de seguridad que nos ofrecen
los sistemas operativos Linux, es el control de los puertos privilegiados. El
usuario root es el único que puede conectarse a un puerto menor de
1024, hay dos motivos básicos por los que el núcleo realiza esta
restricción que garantiza la seguridad del sistema, los cuales son:
De esta forma podemos estar seguros de que una conexión que se
realice por debajo del puerto 1024 de la máquina remota, como por
ejemplo el 999, viene de un programa que está siendo ejecutado por el
usuario root de dicha máquina.
Por ejemplo, ssh puede configurarse para que ciertos usuarios
puedan establecer una conexión sin que se les pida ningún tipo de
contraseña.
Si intentamos conectarnos a un puerto privilegiado de otra
máquina, como por ejemplo el 80, podemos confiar que es el demonio
oficial el que está pidiéndonos un nombre de usuario y la contraseña, en
lugar de un falso servidor creado por alguien del sistema.
Por otro lado, el sistema de gestión de memoria virtual en Linux
también posee un mecanismo de seguridad interno, que se basa en que
cada proceso tiene su propio espacio de memoria reservado justo
después de arrancarse el programa, así como sus propias variables
estáticas. De forma que si un proceso intenta reservar memoria es el
núcleo el que procesa automáticamente, con lo que ningún proceso tiene
acceso al espacio de memoria asignado a otro proceso a no ser que se
este utilizando algún mecanismo estándar de comunicación entre
proceso, como puede ser (IPC).
Este hecho es bueno para la seguridad del sistema, ya que evita
que un proceso pueda interferir en el segmento de memoria de otro
proceso, además nos aporta estabilidad al sistema puesto que si un
proceso tiene un problema no afectará al ningún otro proceso.
El mecanismo de seguridad de gestión de memoria, tiene otro
mecanismo que se encarga de controlar el uso de la memoria por cada
proceso, y si un proceso consume mucha memoria es eliminado
automáticamente por el núcleo sin afectar al resto de los procesos, este
hecho es importante ya que otros sistemas operativos carecen de este
comportamiento, con lo que un proceso puede dejar sin memoria al
sistema.
Además, Linux tiene un sistema estándar de registro que es muy
sencillo de utilizar, los famosos logs del sistema, que trataremos con
detalle en próximos artículos. Los logs del sistema nos permite registrar
todo tipo de información, manipular el formato de dicha información o
redirigir la información a cualquier fichero o proceso que deseemos, esta
característica hace que podamos obtener mucha información de todo lo
que pasa en nuestro sistema.
Otro de los mecanismo de los que disponemos es el poder
especificar que dispositivos TTY tiene el acceso el usuario root, ya que un
TTY es un terminal desde el cual se puede establecer una conexión con
el sistema, y se pueden acceder a los diferentes TTys a través de la
combinación de teclas Alt+F1..F6, ya que los TTYs del F7..F12 están
pensados para que realicen otras funcionalidades.
El fichero /etc/securetty es el que especifica en que dispositivos
tiene permitido el acceso el usuario root, quizás sean demasiados
terminales y le estamos dando demasiadas facilidades a un atacante para
averiguar la contraseña de root.
Lo que puedes hacer es comentar(#simbolo del comentario) todas
las líneas que aparecen en dicho fichero excepto la tty1, de esta forma el
usuario root sólo podrá conectarse como root a través del primer terminal,
y cuando quiera conectar a través de otro terminal como por ejemplo tty2,
tendrá que logearse primero como usuario normal del sistema y luego
convertirse(su) en root.
Esto nos garantiza que si un atacante quiere iniciar una sesión
como root, deberá tener acceso al terminal tty1, que implica que deberá
tener acceso físico al ordenador, o hacerse con la contraseña de un
usuario y luego intentar averiguar la contraseña del root, con lo que ya le
ponemos las cosas un poco más complicadas.
******
CONCLUSION
Este Trabajo Practico compuesto por diferentes capítulos, en donde se
tiene por finalidad, demostrar los detalles de la comparación entre dos
sistemas operativos para PC, como lo son Windows y Linux, se enfoca
hacia personas que tengan conocimientos mínimos sobre computadoras
personales, en especial a alumnos de la carrera de análisis de sistemas.
En él, se puede leer, desde los primeros pasos para la instalación, hasta
las características mas nuevas y avanzadas, pasando por: el uso normal
de los sistemas, estructura y funcionamiento general, perspectiva actuales
y futuras y una conclusión sobre el desempeño y el rendimiento en
distintas condiciones de funcionamiento.
Toda la información contenida en este trabajo, es fruto de experiencias
personales del autor y de búsquedas criticas realizadas en distintos
ámbitos,Internet, revistas especializadas y documentación oficial que en
muchos de los casos viene integrada con el sistema.
El diseño de la estructura, se ideo a partir del análisis de trabajos
realizados con anterioridad que guardan similitudes con este, además de:
libros, revistas y documentos con características de diseño considerados
por el autor de fácil acceso para todo aquel que lea el trabajo. El orden de
aparición de los temas tratados se fijo a partir de el orden en que el autor
fue teniendo contacto con los sistemas, para que la persona que tenga
contacto con el trabajo también baya avanzando en él, a medida que
avance con los sistemas.
Las aspiraciones buscadas con el desarrollo de este análisis son los de
cubrir los espacios existentes, en lo que hace a información sobre Linux
como sistema operativo de escritorio, para esto se utiliza a Windows,
como base para entender el funcionamiento y poder explicar a modo de
comparación los dos sistemas.
Windows es un sistema que aprovecha la potencia de los procesadores,
ha sido diseñado para adaptarse a las nuevas tecnologías, ofrece
compatibilidad con varias plataformas (OS/2, Unix y versiones anteriores
a el mismo), soporta el multiprocesamiento simétrico, buen rendimiento y
conectividad, seguridad y al no estar encasillado en ningún modelo
estandar de Sistema Operativo tiene la capacidad de combinar las
ventajas del modelo cliente/servidor, puede correr además sobre
múltiples arquitecturas con un mínimo de cambios, permite que varios
procesos sean ejecutados simultáneamente en varios procesadores y
estos no se apropien de recursos del sistema por tiempo indefinido, sino
por tratamiento del sistema.
http://www.monografias.com/trabajos26/arquitectura-windows/
arquitectura-windows.shtml
http://wwwmodalidad-informatica.blogspot.com/2011/04/comparacion-entre-el-
nucleo-de-linux-y.html