82
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. 1 2 3 4 5 6 7 8 9 10 11 12 1 UNIVERSIDAD NACIONAL ABIERTA ÁREA DE INGENIERÍA CARRERA INGENIERÍA DE SISTEMAS

2013-1

Embed Size (px)

Citation preview

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