Documentos de Académico
Documentos de Profesional
Documentos de Cultura
20 – 10 - 10
Hardware de E / S
(HDD)
Ejemplo:
M
ATA 2 E * Jumper En Disco Duro.
Maestro (M) – Esclavo (S) – Cable Selec (CS).
• Servidores SCSI:
1. Cada interfaz hasta 7 unidades.
SCSI: 2. ID. Dispositivo 0 – 7 (El 1° n° de la tarjeta ID.).
3. Tecnología más rápida & ruidosa.
4. Mayor precio de costo ($$$).
1 Hardware.
Ejemplo:
RS232C:
Esta es una interfase entre la computadora y el MODEM (Fibra
Óptica).
COM:
Puertos PS/2:
El conector PS/2 o puerto PS/2 toma su nombre de la serie de
ordenadores IBM Personal System/2 que es creada por IBM en 1987,
y empleada para conectar teclados y ratones.
SCD
El sector de arranque es el primer sector de todo disco duro (cabeza 0, cilindro 0, 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.
El espacio particionado es el espacio del disco que ha sido asignado a alguna partición. El
espacio no particionado, es espacio no accesible del disco ya que todavía no ha sido
asignado a ninguna partición. A continuación se muestra un ejemplo de un disco duro con
espacio particionado (2 particiones primarias y 2 lógicas) y espacio todavía sin particionar.
El caso más sencillo consiste en un sector de arranque que contenga una tabla de
particiones con una sola partición, y que esta partición ocupe la totalidad del espacio restante
del disco. En este caso, no existiría espacio sin particionar.
Fuente
A: Pista.
B: Sector.
C: Sector de una pista.
D: Clúster.
Sector de Arranque
• Porque cumple la función de cargar el Kernel. Para la ejecución del Sistema Operativo
en el ordenador.
2. Para que esto suceda se lee desde el primer disco duro, el primer sector físico de
datos del tamaño de 512 bytes y se carga a la memoria.
5. En el MBR, es importante saber que los últimos 2 bytes deben contener una cifra
(AA55): un MBR que tenga otra cifra será tratado como no válido por parte de la BIOS
y de todos los sistemas operativos de PC.
6. Tras el proceso de chequeo del Hardware por parte de la BIOS. El gestor de Arranque
alojado en el Master Boot Record, procede a efectuar tres pasos para la ejecución del
Sistema Operativo: Componer una línea de comandos kernel, Cargar un disco ram de
inicio (initrd), si es necesario, Cargar y pasar el control al kernel de Linux. (en el caso
de un Sistema GNU/Linux.
N° Disco Duro
1 Servo Motor. • Motor que mueve los discos del HDD.
25 – 10 – 10
1. Comunicación Entre Procesos:
2. Condiciones De Competencia:
• El algunos sistemas operativos se da el caso de que dos o más procesos que están
colaborando compartan un área de almacenamiento en que ambos puedan leer y
escribir. Ejemplo: Spooler de impresión.
4 Un hilo de ejecución (Threads), en sistemas operativos, es una característica que permite a una aplicación realizar varias tareas a la
vez (concurrentemente).
• Generalmente las soluciones para este tipo de problemas son perfectas pero muchas
veces algo raro e inexplicable.
“GHOST IN THE MACHINE”5.
3. Regiones Críticas:
La sección crítica por lo general termina en un tiempo determinado y el hilo, proceso o tarea sólo
tendrá que esperar un período determinado de tiempo para entrar. Se necesita un mecanismo de
sincronización en la entrada y salida de la sección crítica para asegurar la utilización en exclusiva del
recurso, por ejemplo un semáforo6.
• Es una forma de evitar, que dos o más procesos escriban en una misma región de
memoria compartida al mismo tiempo.
3. Ningún proceso que se esté ejecutando afuera de su sección crítica puede bloquear a otros procesos.
4. Ningún proceso debería esperar de manera indefinida para entrar a la sección crítica.
5 Lectura Complementaria.
6 Fuente.
4. Semáforos:
1. El estado interno del semáforos cuenta cuántos procesos pueden utilizar el recurso.
2. Puede ser realizado hasta con un número entero, impidiendo que éste llegue a
negativo alguna vez.
A) init(): Inicializa el semáforo antes que cualquier proceso haya iniciado alguna
operación wait(), o una operación signal(). Si se inicializa con '1' se ha construido un
semáforo binario.
B) wait(): Si el estado indica cero, el proceso queda con el semáforo en 'rojo' hasta
que sea despertado por otro proceso. Si el estado indica que un proceso más puede
tener acceso al recurso, se decrementa el contador y la operación termina con éxito.
C) signal(): Una vez que se ha terminado el uso del recurso, el proceso lo señaliza en
el semáforo. Si queda algún proceso bloqueado por el semáforo en 'rojo', éste pasará
a 'verde', desbloqueándolo.
27 – 10 – 10
1. Administración De Memoria
• Existe una Utopía: Que la memoria no sea volátil y tampoco limitada en su capacidad,
pero eso es inviable.
A) Los que llevan y traen procesos entre la memoria principal y el disco durante la
ejecución.
• Si el sistema está organizado de esa forma, sólo puede ejecutar un proceso a la vez.
Cuando el usuario ejecuta un comando, el S.O. copia el programa solicitado a la RAM
y lo ejecuta.
7 Se llama prompt al carácter o conjunto de caracteres que se muestran en una línea de comandos para indicar que está a la espera de
órdenes. Éste puede variar dependiendo del intérprete de comandos y suele ser configurable.
Modelo De La Multiprogramación
Si se tienen cinco procesos que consumen sólo un 20% del CPU, éste
debería tener un uso del 100%.
• En ese caso se supone que los procesos no estarían bloqueados al mismo tiempo, lo
que haría cambiar las cosas.
1.1 Intercambio:
• Ejemplo: En una máquina con 256 MB de RAM, que puede copiar 4 bytes en 40
nanosegundos se necesitarían aproximadamente 2,7 segundos para compactar toda
la RAM.
• Si los procesos se crean con un tamaño fijo que nunca cambia, la asignación es
sencilla.
• Si los segmentos de los procesos crecen, se presentará un problema cada vez que un
proceso trate de crecer. Si hay un espacio adyacente al proceso, el proceso podrá
crecer en dicho espacio.
• Si se sabe que los procesos pueden crecer durante su ejecución, lo más conveniente
sería asignar un espacio de memoria extra cada vez que se intercambie un proceso a
la memoria o se cambie de lugar.
• Hay que tener cuidado de que cuando se intercambia un proceso a disco sólo se
intercambie la memoria que se está utilizando.
• Con un bitmap la memoria se divide en pequeñas unidades que pueden ir desde unas
pocas palabras o varios kilobytes.
• A cada una de esas pequeñas unidades se les asigna un bit, del mapa de bits. El bit
es 0 si está libre, 1 si está en uso.
• Si los procesos y espacios se mantienen en una lista ordenada por dirección, pueden
utilizarse varios algoritmos para asignarle la memoria a un proceso recién creado.
2. Memoria Virtual: Permite que los programas que están en ejecución estén solo
parcialmente presentes en la RAM.
• En los esquemas de memoria vistos anteriormente, todos funcionan bien HASTA que
aparece un proceso demasiado grande para caber completo en la memoria principal.
• El método ideado se conoce como Memoria Virtual, y fue creado por Fotherigham
en 1961. La idea básica de este esquema es que el tamaño combinado del programa,
sus datos y su pila puede ser más grande que la memoria física que se le pueda
asignar.
Administración De Memoria
Paginación:
• La mayoría de los sistemas con memoria virtual utiliza esta técnica. Se basa en el
principio de que cualquier computador maneja un conjunto de direcciones de memoria
que los programas pueden producir.
• Cuando se usa memoria virtual, esas direcciones no van al bus, sino a la MMU. El
espacio de direcciones virtual se divide en unidades llamadas páginas. Las
direcciones correspondientes a la memoria física se llaman marcos de página.
• Ambos tienen el mismo tamaño, y las transferencias entre RAM y disco siempre se
contabilizan en números de páginas.
• Cuando un programa intenta acceder a la primera dirección (0), como por ejemplo con
la instrucción:
MOV REG,0
¿Qué pasaría si el programa intenta utilizar una página que no tiene correspondencia física?
• Ejemplo: MOV REG,32780 (En una máquina que llega hasta 32767). La MMU ve que
la página no tiene correspondencia, y hace que el CPU atienda al sistema operativo.
• El número de páginas se utiliza como índice para consultar la tabla de páginas y así
obtener el número del marco de página que corresponde a esa página virtual. Si el bit
de presencia es 0, se genera la interrupción del sistema.
Tablas De Páginas
• Además hay que recordar que cada uno de los procesos necesita su propia tabla de
páginas. En cuanto a la rapidez corresponde decir que de la página virtual a la física
hay que hacer una referencia cada vez que se direcciona algo en la memoria.
• Una instrucción de este tipo utiliza por lo menos una palabra, y a veces, un operando.
Lo que conlleva a remitirse varias veces a la tabla de páginas cada vez que se ejecuta
una instrucción.
• El diseño más sencillo consiste en tener sólo una tabla de páginas, que consiste en un
arreglo de registros rápidos de hardware, con una entrada por cada página virtual e
indexada por número de página virtual. Cuando se inicia un proceso, el SS.OO
carga los registros con la tabla de páginas del proceso, tomada de una copia que se
guarda en la memoria principal. Lo malo es que esto es costoso, sobretodo si la tabla
de páginas es muy grande.
• En la figura se muestra un ejemplo sencillo. Hay una dirección virtual de 32 bits que
se divide en un campo de 10 bits, otro más de 10 bits, y un campo de desplazamiento
de 12 bits.
• Como los desplazamientos son de 12 bits, quiere decir que las páginas son de 4KB y
hay 2^20 páginas. La gracia de este esquema es que no es necesario tener todas las
tablas de páginas todo el tiempo. Este diseño es expansible a tres o más niveles. Al
tener más niveles se aumenta la flexibilidad, pero complica más las cosas.
Segmentación
• Los métodos vistos hasta ahora son unidimensionales porque las direcciones virtuales
van desde 0 hasta la dirección máxima, y son consecutivas. En el caso de varios
problemas podría ser mucho mejor dos o más espacios de direcciones distintos que
sólo uno. Un compilador tiene muchas tablas que se van creando a medida que
avanza la compilación.
• Las primeras cuatro tablas crecen en forma continua mientras avanza la compilación.
La última se agranda y se achica de forma impredecible durante la compilación.
• Otra posibilidad es quitarle espacio a las tablas que les sobra para darle a las que les
falta. Estos desplazamientos son posibles, pero susceptibles a tener superposiciones,
lo cual resulta en un montón de problemas de programación.
• Los segmentos no tienen por qué ser todos del mismo tamaño. Además de cambiar
de tamaño durante la ejecución. Un segmento puede contener un procedimiento, un
arreglo, una pila o una colección de variables escalares.
Orígenes De UNIX
• Conocer bien el uso que se le dará al sistema, pues de ese conocimiento se obtiene:
El Sistema De Archivos que se usará, El Particionado que se le dará a el o los
discos.
• Sistemas De Archivos: EFS, FFS, EXT2, EXT3, EXT4, XFS, ReiserFS, JFS, SWAP.
Sistema de Archivos
• Los Inodos son estructuras de datos propias de los sistemas de archivos utilizados en
los sistemas UNIX.
• Cada Inodo queda identificado con un número entero único en el sistema de archivos
y los directorios recogen una pareja que lleva el número de Inodo y el nombre, que
lleva al archivo.
• No existe una definición clara para un Inodo, Dennis Ritchie lo explicó de la siguiente
manera:
1. El identificador de Dispositivo.
2. El número de Inodo que identifica al archivo que está dentro del sistema de
archivos.
5. El GID.
6. El modo de acceso.
4. Con el Ext3 se le añadió journaling, pero sigue teniendo la estructura del Ext2.
• XFS:
2. Era propietario para su sistemas UNIX (llamado IRIX), pero en mayo del 2000 se
liberó bajo licencia GNU/GPL.
4. FreeBSD lo soporta desde el 2005 sólo en forma experimental (hasta la versión 7).
6. Posee journaling.
• ReiserFS:
3. Maneja Journaling.
• JFS:
5. Soporta journaling.
• SWAP:
3. De ser una partición esta debería ir en la parte mas rápida del disco, o si se tiene mas
de un disco, en el disco más rápido.
Puntos de Montaje
2. Maneja todos sus archivos bajo el alero de un gran directorio raíz (“root” o “/”).
3. Al hacer esto quiere decir que el resto de unidades, discos, o particiones deberían
estar dentro de la misma raíz.
5. Esto nos indica que el contenido de dicho sistema de archivos aparecerá dentro de el
directorio designado como punto de montaje.
/
|- home/
| |- pepe/
| |- luis/
|
|- mnt/
|- cdrom/
/
|- datos1/
|- datos2/
Si elegimos /mnt/cdrom como el punto de montaje el resultado sería el seguiente
/
|- home/
| |- pepe/
| |- luis/
|
|- mnt/
|- cdrom/
|- datos1/
|- datos2/
Dispositivos
• Los archivos del directorio /dev no son realmente los dispositivos sino referencias para
ponernos en contacto con el hardware.
• La mayor parte de los archivos del directorio /dev están asociados al hardware, pero
no todos. Hay varios ejemplos:
• Como están asociados con archivos, éstos tienen las mismas características (o
propiedades) de los archivos. Tienen un par de propiedades extra como:
3. Minor Number: Indica el número de unidad de todos los dispositivos del mismo tipo.
Gestor de Arranque
• Es un programa que se graba en el primer sector del disco duro. Cuando se carga y
se ejecuta le solicita al usuario que elija que sistema se va a cargar y qué parámetro
se le va a entregar al que sea elegido.
• Los mas conocidos son NTLoader (Microsoft), LILO (LinuxLoader) y GRUB (Grand
Unified Bootloader). GRUB es el más usado actualmente en los sistemas Linux.
Llamadas a Sistema
8 Es una interrupción no enmascarable que es activada cuando el terminal del mismo nombre se lleva a nivel lógico uno. Esta interrupción
es la de más alta prioridad, por lo que puede ser usada para tratar los acontecimientos más relevantes, tales como errores, fallos de
alimentación, etc.
• Las llamadas a sistema ejemplificadas recién son para ser utilizadas en un sistema
UNIX que cumple el estándar POSIX. Los sistemas Micro$oft usan otro tipo de
llamadas pero el fin es más o menos el mismo.