Nombre (s) Y Matriculas:
Yeison Guaba 15-SIST-6-048
Tema:
Practica No. 4
Trabajo de:
Sistema Operativo
Sección:
311
Fecha:
15/06/2016
Profesor:
Benito Vinicio
El sistema de archivos visto por el usuario del
lenguaje de órdenes
Los lenguajes de órdenes de los sistemas operativos, constituyen
conjuntos de órdenes básicas que cubren las funciones del sistema
operativo, este conjunto de órdenes es específico de cada sistema
operativo, pero a pesar de ello mantienen similitud en las funciones que
realizan.
Si bien es cierto que hoy en día los sistemas operativos usan ambientes
gráficos, para la interacción con el usuario, el lenguaje de ordenes continua existiendo a través de la pulsación de botones o interpretación
de gestos, pero si aun así necesitamos usarlo, aún tenemos disponibles
los entornos de línea de comando en todos ellos, como sería el caso
de la línea de comando de Windows (cmd) o las terminales en los
casos de Mac OS y Linux.
Para el caso de los sistemas operativos móviles como Android, iOS,
Blackberry 10 o Windows Phone estos no poseen una interfaz de línea
de comando como en sus contrapartes para equipos de cómputo pero aun así poseen las mismas clases de ordenes en su interior, solo que
cubiertas por la capa de interfaz gráfica que hace más fáciles de usar
estos dispositivos con la incorporación y popularización de las pantallas
táctiles.
Las sentencias que conforman el lenguaje de órdenes de cualquier
sistema operativo se pueden clasificar en las siguientes clases:
Conexión y mantenimiento
Control de programa
Gestión de archivos
Informe de estado
Administración del sistema
Conexión y mantenimiento
Esta clase de ordenes incluyen los típicos comandos para iniciar y
cerrar sesiones o cambiar de contraseña, un ejemplo de estas lo
podemos ver en los comandos login, logout y pass de linux, mientras que los sistemas operativos de ambiente gráfico para equipo de
cómputo lo vemos en las ventanas en donde seleccionamos el usuario
y colocamos la contraseña, como la que vemos a continuación en el
caso de Windows.
En el ambiente de los sistemas operativos móviles, si bien son sistemas
monousuario, por motivos de seguridad tienen un solo usuario pero que
mantiene las funciones de inicio y cierre de sesión e incluso de introducir contraseña, solo que con métodos más elaborados, como la
ventana de bloqueo a través de trazos en Android.
Control de programas
Esta clase, se integra por las órdenes para ejecutar, cerrar y abortar
programas; en los ambientes de línea de comando, la orden para
ejecutar un programa se sintetiza en solo escribir el nombre del
programa como ocurría en MS-DOS, pero si aún lo desea puede ver su uso en la línea de comandos de Windows con el comando start o en el
caso de las terminales de Linux y Mac-OS precediendo los símbolos “.
/” (Punto y diagonal) a los nombres de los programas a ejecutar.
En los ambientes gráficos modernos, estas órdenes se generan al hacer
clic o doble clic sobre un acceso directo si usamos el mouse, o hacer
tap (gesto de presionar una vez con el dedo) en una pantalla táctil.
Gestión de archivos
A esta clase pertenecen las ordenas que nos permiten manipular los
archivos y directorios (carpetas) del sistema operativo, es decir, las
órdenes para crear, copiar, mover o renombrar archivos y carpetas de las unidades de disco, las cuales suelen ser muy comunes en los
lenguajes de órdenes de muchos sistemas operativos como es el caso
de:
Copy (copiar)
Cd (cambio de carpeta)
Md (crear carpeta)
Rd (borrar carpeta)
Del (borrar archivos)
Las cuales son iguales en las líneas de comando de Windows, Linux y Mac-OS, para el caso de los ambientes gráficos estas órdenes se
realizan de múltiples maneras, ya sea presionando botones con el
mouse o con atajos de teclado.
Informe de estado
Estas órdenes son muy variadas en todos los sistemas operativos pero
se consideran dentro de esta categoría incluye las utilidades para listar
los programas o procesos que se están ejecutando o ver la lista de
usuarios conectados, mientras que en los sistemas de ambiente gráfico se incluyen utilidades como el “administrador de tareas de Windows” o
el “monitor de sistema” de Mac-OS.
ORGANIZACIÓN DEL DISCO DURO
Disco duro
El disco duro es el dispositivo principal para el almacenamiento y
recuperación de grandes cantidades de información. Constituyen el
elemento fundamental de almacenamiento secundario (la memoria
principal sería la memoria RAM). El disco duro es un elemento de memoria no volátil y de tipo magnético
Respecto al estudio de su estructura podemos tomar dos puntos de
vista: el físico y el lógico.
Estructura física de un disco duro
Desde el punto de vista físico, un disco duro está compuesto por un
conjunto de discos que se encuentran en una carcasa cerrada herméticamente junto con una parte mecánica que soporta las cabezas
lectoras (parecidas a las de un tocadiscos). Cada uno de esos discos
cuenta a su vez con dos caras o superficies sobre las cuales se puede
almacenar información. Estas superficies están magnetizadas y están
compuestas por millones de pequeños elementos capaces de ser magnetizadas de forma positiva o negativa. Así, es posible representar
los dos valores que forman un bit (0's y 1's). Sin embargo, esto no
quiere decir que siempre las dos caras sean utilizables ya que eso
depende del número de cabezas lectoras/escritoras disponibles. El conjunto de cabezales se puede desplazar linealmente desde el exterior
hasta el interior de la pila de platos mediante un brazo mecánico que
los transporta. Por último, para que los cabezales tengan acceso a la
totalidad de los datos, es necesario que la pila de discos gire. Este giro se realiza a velocidad constante y no cesa mientras esté encendido el
ordenador.
A la hora de hacer referencia a las partes del disco, diferenciamos entre:
Plato: cada uno de los discos de los que están compuesto el disco
duro.
Cara: cada uno de los lados de un plato.
Cabeza: número de cabezales para la lectura/escritura de información.
Pista: una circunferencia dentro de una cara.
Cilindro: conjunto de varias pistas; son todas las circunferencias que
están alineadas verticalmente.
Sector: unidad mínima de información que se puede leer o escribir en un disco duro. Generalmente, cada sector almacena 512 bytes de
información.
El número total de sectores de un disco duro se puede calcular a través de esta fórmula (no es necesario saberla ya que puede deducirse
si se conoce la estructura de un disco duro)
A la hora de contar cada uno de los componentes, hay que tener en cuenta que las cabezas y los cilindros se comienzan a enumerar desde
el 0, mientras que los sectores lo hacen desde el 1. Un bloque de
información vendrá determinado por su cabeza, su cilindro y por el
sector que ocupa; por ejemplo 0-0-1.
Proceso de lectura/escritura
El proceso de lectura o escritura en el disco duro está compuesto por
los siguientes pasos:
Desplazar los cabezales de lectura/escritura hasta el lugar donde
empiezan los datos
Esperar a que el primer dato, que gira con los platos, llegue al lugar
donde están los cabezales
Leer el dato con el cabezal correspondiente.
Estructura lógica
La estructura lógica de un disco duro está formada por:
El sector de arranque o Master Boot Record, que contiene la tabla de
particiones.
Las particiones, necesarias para poder colocar los sistemas de archivos.
El sector de arranque es el primer sector del disco duro, referenciado
por la cabeza 0, cilindro 0 y sector 1. En él se almacena la tabla de particiones y un pequeño programa master de inicialización, llamado
también Master Boot. Este programa es el encargado de leer la tabla de
particiones y ceder el control al sector de arranque de la partición
activa. Si no existiese partición activa, mostraría un mensaje de error.
Una partición de disco es el nombre que recibe cada una de las
divisiones presentes en una unidad física de almacenamiento de datos.
Cada partición representa una unidad lógica de información. Toda
partición tiene su propio sistema de archivos (formato). Cada sistema operativo interpreta, utiliza y manipula cada partición como un disco
físico independiente, a pesar de que dichas particiones estén en un solo
disco físico
El espacio particionado de un disco es aquel que ha sido asignado a
alguna partición, mientras que el espacio no particionado, es el espacio
no accesible del disco ya que todavía no ha sido asignado a ninguna
partición.
Un disco duro, por ejemplo, podría tener dos particiones (dos unidades
lógicas dentro de una misma unidad física) y trabajar de la misma
manera que si tuviésemos dos discos duros. Como mínimo, un disco duro debe tener una partición que sea la que albergue el sistema
operativo.
Las razones que nos pueden llevar a crear más de una partición en un disco son:
Organizativas. Por ejemplo, cuando hay dos usuarios que utilizan un
mismo ordenador y, con objeto de lograr una mejor organización y seguridad de sus datos, deciden utilizar particiones separadas.
Instalación de más de un sistema operativo. Cada sistema operativo
requiere una partición por lo que si queremos usar varios será necesario particional el disco.
Razones de eficiencia. Por ejemplo, suele ser preferible tener varias
particiones FAT pequeñas antes que una gran partición FAT. Esto es debido a que cuanto mayor es el tamaño de una partición, mayor es el
tamaño del clúster (conjunto de sectores). y, por consiguiente, se
desaprovecha más espacio de la partición.
Tipos de particiones
El formato o sistema de archivos de las particiones (p. ej. NTFS) no
debe ser confundido con el tipo de partición (p. ej. partición primaria).
Independientemente del sistema de archivos de una partición (FAT, ext3,
NTFS, etc.), existen 3 tipos diferentes de particiones:
Partición primaria: Son las divisiones crudas o primarias del disco, solo
puede haber 4 de éstas o 3 primarias y una extendida. Depende de una
tabla de particiones. Un disco físico completamente formateado consiste,
en realidad, de una partición primaria que ocupa todo el espacio del disco y posee un sistema de archivos. A este tipo de particiones,
prácticamente cualquier sistema operativo puede detectarlas y asignarles
una unidad, siempre y cuando el sistema operativo reconozca su
formato (sistema de archivos).
Partición extendida: También conocida como partición secundaria es
otro tipo de partición que actúa como una partición primaria; sirve para
contener infinidad de unidades lógicas en su interior. Fue ideada para
romper la limitación de 4 particiones primarias en un solo disco físico. Solo puede existir una partición de este tipo por disco, y solo sirve
para contener particiones lógicas. Por lo tanto, es el único tipo de
partición que no soporta un sistema de archivos directamente.
Partición lógica: Ocupa una porción de la partición extendida o la
totalidad de la misma, la cual se ha formateado con un tipo específico
de sistema de archivos (FAT32, NTFS, ext2,...) y se le ha asignado una
unidad, así el sistema operativo reconoce las particiones lógicas o su sistema de archivos. Puede haber un máximo de 23 particiones lógicas
en una partición extendida.
Tabla de particiones
La tabla de particiones es una estructura de 64 bytes que se encuentra
almacenada en el Master Boot Record (MBR) a partir del byte 446. La
tabla de particiones almacena toda la información básica sobre la
partición: si es arrancable, si no lo es, el formato, el tamaño y el sector de inicio.
Sistemas de archivos
El sistema de archivos es la estructura que utiliza una partición de
disco para almacenar la información con la finalidad de facilitar su acceso. El proceso de asignar un sistema de archivos a una partición
se denomina formateo.
Los sistemas operativos suelen tener su propio sistema de archivos,
aunque hay sistemas operativos que funcionan en diferentes entornos. El
software del sistema de archivos se encarga de organizar los archivos y
directorios, manteniendo un registro de los bloques que pertenecen a cada archivo, los bloques no utilizados, etc.
Gestión de archivos vista por el sistema operativo
Gestión de archivos: es la administración de los archivos esto se realiza
a través del sistema operativo permitiendo que los usuarios tengan acceso directo con los archivos y tengan control de ellos, así como
también se puede enviar y compartir archivos con otros usuarios,
brindarles seguridad y protección a estos. De modo que le permite al
usuario realizar ciertas operaciones con ellos, las cuales son:
1) Puedes crear un archivo, identificándolo con un nombre y determinar
el espacio de este.
2) Abrir el archivo, aquí se realiza distintas operaciones como su
ejecución, leerlo, escribir en el.
3) Borrarlo de modo que puedes liberar el espacio que ocupa este archivo.
4) Cerrar el archivo, finaliza la ejecución de este.
5 Modificarlo permite hacer cambios al archivo como cambiar su
nombre.
Generalización de los servicios de archivos
La gestión de archivos maneja los datos que residen en el
almacenamiento secundario
Tipos de Archivos:
Físico.- La información vista desde la perspectiva del hardware
Lógico.- Su significado está definido por el usuario.
El Sistema de Archivos
El sistema de archivos de un SO lo conforman todas aquellas rutinas
encargadas de administrar todos los aspectos relacionados con el
manejo de Archivos.
Está formado por:
Métodos de acceso.- Se ocupan de la manera en que se tendrá acceso
a la información almacenada en el archivo.
Ejemplo: Secuencial, Directo, indexado, etc.
Administración de archivos.- Se ocupa de ofrecer los mecanismos para
almacenar, compartir y asegurar archivos, así como para hacer
referencia a ellos.
Administración de almacenamiento secundario.- Se ocupa de asignar
espacio para los archivos en los dispositivos de almacenamiento
secundario.
Mecanismos de integridad.- Se ocupan de garantizar que no se
corrompa la información de un archivo, de tal manera que solo la
información que deba estar en el, se encuentre ahí.
Son responsabilidades del sistema de archivos:
-La transferencia de peticiones de acceso desde el espacio de dirección
de archivo lógico al físico
-La transmisión de elementos entre el almacenamiento principal y
secundario
-La gestión de almacenamiento secundario
-Brindar soporte para protección y compartimiento
Perspectiva de los usuarios del lenguaje de órdenes
Los usuarios del lenguaje de órdenes invocan los servicios de gestión
mediante órdenes del sistema operativo. Pueden listar (List) directorios,
copiar (copy) archivos, Crear (Create), borrar (Delete) y cambiar el
nombre (Rename) de los archivos.
Categorías de Directorios:
Plano.- Contiene todos los archivos del sistema o de un volumen dado.
Jerárquico.- Agrupa los archivos en subdirectorios. El acceso a los
archivos requiere una especificación de vía de Acceso completa.
Ventajas
El directorio jerárquico presenta las siguientes ventajas:
- Nombre único de archivo facilitado
- Soporte para el compartimiento selectivo, protección y uso de alias o
enlaces de archivo.
- Manipulación cómoda de directorios.
Perspectiva del Programador
Los programadores invocan los servicios del sistema mediante llamadas
en tiempo de ejecución. Estas sirven para acceder (Open, Read); desplazarse lógicamente (Seek); modificar porciones de archivo (write) y
cerrar (close) archivos.
Gestor de archivos
El gestor de Archivos proporciona medios para creación, manipulación y
acceso a los archivos con ninguna o poca interpretación: El SO
considera los archivos como series de bits. Suelen permitir un acceso
secuencial o directo a los archivos.
Organización del Disco.
- Los datos se almacenan en la superficie del disco magnético en
círculos concéntricos llamados pistas
- La colección de pistas de todas las superficies que se encuentran a
la misma distancia del eje se llama cilindro.
- Un número de bloques de datos llamados sectores se graba en cada
pista.
Tipos de Discos
- Extraíbles o fijos si se pueden extraer o no
- De cabeza fija o móvil, según el número de cabezas. Controlador de disco Convierte las órdenes de nivel alto (Seek, read); en secuencias
temporizadas de órdenes de unidad (lectura, escritura, etc); proporciona
conversión serie/paralela y el control de errores.
Gestión del espacio en Disco
Determina la manera en que un Sistema Operativo controla los lugares del disco ocupados por cada archivo de datos. Se debe controlar
básicamente la identificación del archivo, sector de inicio y sector final.
Modos de Asignación de Espacio
Asignación contigua.- Asigna áreas contiguas en disco. Los archivos se
colocan en bloques consecutivos de disco. Su ventaja es el acceso
secuencial y directo rápido. Su desventaja es que produce mucha
fragmentación:
Interna.- Son los bloques libres al final del archivo
Externa.- Son los bloques libres que son muy pequeños para ser asignados.
Estrategias de asignación
El primero que encuadre.- requiere menos búsqueda en disco
El mejor que encuadre.- Busca coincidencia entre el espacio pedido y el
espacio asignado. Reduce la fragmentación interna.
Asignación no contigua.- Utiliza dos estrategias básicas:
El Encadenamiento.- Unos pocos bytes de cada bloque de disco se reserva para señalar el próximo bloque en secuencia. El acceso
secuencial es bueno, el directo es lento. Su ventaja es que no produce
fragmentación externa, su desventaja es que no permite transferencia
multisectorial.
La Indexación.- Reúne punteros en bloques de índices. La n-ésima
entrada en el bloque índice apunta al n-ésimo bloque que conforma el
archivo. En el directorio se controla la dirección del bloque índice de cada archivo. Sus ventajas son la mejora de velocidad en el acceso
directo, y evita la fragmentación externa. Sus desventajas son el acceso
a disco necesario para recuperar una dirección y el espacio necesario
para almacenar la información de direccionamiento.
Implementación del gestor de archivos:
Para implantar el gestor de archivos de un SO, los diseñadores utilizan:
Niveles de Abstracción de dispositivo:
Hay tres niveles:
1.- El primero es cómo el usuario ve los archivos: la información es
dirigida en archivos en términos de direcciones lógicas.
2.- El segundo considera cada volumen de almacenamiento como un
conjunto lineal de bloques lógicos.
3.- La tercera es la proporcionada por las controladoras de dispositivos.
Generalización de los servicios de archivo.
La E/S independiente de dispositivo ofrece gran comodidad y
flexibilidad. Para proporcionar una abstracción común de muchos tipos distintos de dispositivos de E/S, es habitual considerar todos los
dispositivos como archivos, en los que se puede escribir y leer bytes en
serie y estructurados en bloques, permitiendo que accedan a un mismo
grupo de servicios como READ, WRITE, OPEN y CLOSE.
Un sistema de E/S suele incluir una planificadora, que asigna los
procesadores y canales de E/S, un controlador de tráfico, que lleva un
control del estado del dispositivo, y un número de conductoras de dispositivo, que convierten las órdenes genéricas de E/S como READ o
WRITE en señales de control de dispositivo.
E/S Síncrona.- Cuando una petición de E/S suspende el proceso invocante hasta que se complete la operación.
E/S Asíncrona.- Cuando la petición de E/S permite que procedan
paralelamente el proceso invocante y la rutina de E/S llamada.
Distribución de la memoria en disco La memoria física de un sistema se divide en dos categorías:
• Memoria de acceso aleatorio: comprende circuitos integrados y es, en consecuencia, muy veloz.
• Memoria de almacenamiento masivo: comprende dispositivos magnéticos (disco duro, cintas magnéticas, etcétera) y es mucho más
lenta. Los mecanismos de distribución de memoria La memoria central se puede distribuir de tres maneras:
• Segmentación: los programas se dividen en paquetes de longitudes variadas conocidos como "segmentos".
• Paginación: consiste en dividir la memoria en bloques y los programas
en páginas de longitud fija.
• una combinación de segmentación y paginación: algunas partes de la
memoria se segmentan y otras se paginan.
TIPOS DEINTERRUPCION
Manejando interrupciones.
En el mapa de memoria del PC podemos encontrar dos tipos de
interrupciones, las de software y las de hardware. En este tutorial solo se explicaran interrupciones de hardware. En un PC, las interrupciones
externas son manejadas por el controlador de prioridad de
interrupciones 8259A. Cuando el 8259A recibe una señal de interrupción
a través de las señalesIRQ2 a IRQ7, envía una señal de petición de interrupción a la entrada INTR del uP. Entonces el 8086 envía una señal
INTA (interrupt-acknowledge) al 8259A. El uP puede luego leer el tipo de
interrupción del dispositivo externo. El 8086 usa el tipo de interrupción
leído desde el dispositivo externo para obtener la dirección de la rutina
de servicio de la interrupción de la tabla de vectores de interrupción en
la memoria. Note que las señales INTR y INTA no están presentes en el bus ISA, estas señales solo son utilizadas por el uP y el 8259A.
Programando las interrupciones.
El objetivo básico de una interrupción es ejecutar una función que
responda a la petición de un dispositivo de hardware. Un vector interrupción contiene la dirección de esta función. En un sistema basado
en el 8086 el primer Kbyte de memoria (desde 00000H a 003FFH) es
utilizado como una tabla de vectores de interrupción. Para apuntar a
cualquier dirección del mapa de memoria son necesarios cuatro bytes. 16 bits para el desplazamiento y 16 bits para el el segmento. Luego, un
Kbyte de memoria permite almacenar 256 vectores de interrupción.
Algunos de los 256 vectores de interrupción son utilizados por el
sistema, otros están libres para ser usados por los programas de usuario. Para instalar una rutina de interrupción de usuario es posible
utilizar un programa como el del ejemplo.
El programa instala una rutina de interrupción en el canal de
interrupción IRQ1, que es el reloj de sistema. Este timer genera una
interrupción 18.2 veces por segundo. En la rutina de servicio de la
interrupción, se incrementa una variable global. Cuando esta variable es
igual a 18 se presenta en la pantalla. Luego obtendremos un contador de segundos (aprox.). TIPOS DE PUERTOS
Los puertos de comunicación
Los puertos de comunicación, como su nombre indica, son una serie de puertos que sirven para comunicar nuestro ordenador con los
periféricos u otros ordenadores. Se trata en definitiva de dispositivos
I/O (Imput/Output, o Entrada/Salida)
PUERTO SERIE (RS-232). Los puertos RS-232, también conocidos como puertos serie y como
puertos COM son uno de los primeros puertos de comunicaciones
incorporados a los PC, pero también uno de los más ineficaces.
El interface de este tipo de puerto suele ser de dos tipos, de 9 pines
(normalmente señalado como COM1) y de 25 pines(normalmente
señalado como COM2), siendo estos conectores de tipo MACHO en la parte del PC. En un principio todas las placas base contaban con
ambos tipos de puerto serie.
PUERTO PARALELO.
El puerto paralelo más conocido es el puerto de impresora, también
conocido como Puerto LPT. A veces se le denomina Centronic, que es
el nombre que recibe el conector del extremo correspondiente a la impresora, siendo él.
Métodos de asignación de memoria
La asignación de memoria consiste en el proceso de asignar memoria para propósitos específicos, ya sea en tiempo de compilación o de ejecución. Si es en tiempo de compilación es estática, si es en tiempo de ejecución es dinámica y si son variables locales a un grupo de sentencias se denomina automática.
Asignación estática de memoria
La Asignación estática de memoria consiste en el proceso de asignar memoria en tiempo de compilación antes de que el programa asociado sea ejecutado, a diferencia de la asignación dinámica o la automática donde la memoria se asigna a medida que se necesita en tiempo de ejecución.
Una aplicación de esta técnica conlleva que un módulo de programa (por ejemplo función o subrutina) declara datos estáticos de forma local, de forma que estos datos son inaccesibles desde otros módulos a menos que se les pasen referenciados como parámetros o que les sean devueltos por la función. Se mantiene una copia simple de los datos estáticos, accesible a través de llamadas a la función en la cual han sido declarados.
El uso de variables estáticas dentro de una clase en la programación orientada a objetos permite que una copia individual de tales datos se comparta entre todos los objetos de esa clase.
Las constantes conocidas en tiempo de compilación, como literales de tipo cadena, se asignan normalmente de forma estática. En programación orientada a objetos, el método usual para las tablas de clases también es la asignación estática de memoria.
Asignación automática de memoria
Las variables automáticas son variables locales a un bloque de sentencias (subrutina, función o procedimiento). Pueden ser asignadas automáticamente en la pila de datos cuando se entra en el bloque de código. Cuando se sale del bloque, las variables son automáticamente desasignadas. Las variables automáticas tendrán un valor sin definir cuando son declaradas, por tanto es buena práctica de programación inicializarlas con un valor válido antes de usarlas.
Top Related