Download Sistema Operativo

Document related concepts

Partición de disco wikipedia , lookup

Tabla de asignación de archivos wikipedia , lookup

Desfragmentación wikipedia , lookup

Hierarchical File System wikipedia , lookup

Proceso de arranque en Linux wikipedia , lookup

Transcript
SISTEMAS OPERATIVOS
Elementos que Integran un sistema computarizado
CPU.
Ejecuta los programas almacenados en la memoria .
Efectúa cálculos lógicos y artiméticos.
Se encarga de controlar a los demás componentes.
Memoria RAM.
Almacena los programas y los datos que van a ser procesados por la CPU.
Periféricos.
Comunica la CPU con el mundo exterior desde donde envía y recibe datos.
Bus
Comunica eléctricamente las tres partes de la computadora.
CPU
Memoria
Bus
Periféricos
Equipos simples.
Con un único programa se accede a la memoria y a uno o más periféricos de
simple control. Los programas son escritos una única vez.
Software
Hardware
Equipos Complejos.
Pueden ejecutar varios programas.
Deben controlar elementos hardware diverso y de alta complejidad
(unidades de disco, pantallas, etc. que el control de los mismos depende
de los fabricantes).
Deben administrar seguridad de datos y accesos.
Para facilitar el manejo y la programación de los sistemas computarizados
complejos se introduce el concepto de Software de Aplicación y de
Sistema Operativo.
La aplicación
efectua una
Llamada al
Sistema
Operativo
Software de Aplicación
El S.O lo envía
a la aplicación
Sistema Operativo
El Sistema
Operativo
interacciona
con el
hardware
Hardware
El hardware
devuelve al S.O
lo solicitado.
ESTRUCTURA DE UN SISTEMA OPERATIVO
Shell
Aplicaciones
Conjunto de funciones que hacen de
interfase entre una aplicación y las
llamadas a las funciones del núcleo.
Llamadas al Sistema
Sistema Operativo
Núcleo (Kernel)
El manejo del
hardware se
realiza
únicamente
en modo
protegido
Conjunto de funciones del SO que
trabajan en modo protegido y que son
ejecutadas a través de las funciones
de la capa anterior
Hardware
Shell. Es un programa utiliza el sistema operativo para ejecutar tareas de
mantenimiento y administración, lanzar programas, etc. Se carga y ejecuta
inmediatamente después que se inicia el sistema operativo o cuando un usuario
comienza una sesión. En Windows tenemos el Explorer.exe (GUI) y cmd.exe
(consola), en Linux GNome, Kde, etc (GUI) y bash, sh, scs, etc (consola).
OPERACION DUAL
Los microprocesadores pueden trabajar en varios modos y el SO utiliza esta
propiedad de los microprocesadores para poder funcionar en dos modos:
Modo kernel: se accede a todas las instrucciones del microprocesador.
Modo usuario: Se accede solo a algunas instrucciones del juego del
microprocesador. Todos las aplicaciones en modo usuario funcionan de la
siguiente manera
Proceso Usuario
Ejecutando
procesos de usuario
Llamada al Sistema
Regreso de la
llamada al sistema
Modo
Usuario
Kernel (núcleo)
Función del Sistema
Operativo
Modo
Kernel
QUE ES UN SISTEMA OPERATIVO?
Es un programa que manipula los recursos de la
computadora los cuales pueden ser de hardware o de
software.
Existen diversos tipos de sistemas operativos. Pueden
clasificarse según las dimensiones del equipo.
•
•
•
•
•
Integrados. Agendas electrónicas, celulares, etc.(symbian, Windows CE)
Tiempo Real. Procesos industriales.(QNX)
Computadoras personales.
Servidores.
Mainframes.
Además los SO pueden ser multi o mono usuario o multi o mono tarea de
acuerdo a que puedan operar una computadora uno o más usuarios y cada
usuario pueda ejecutar uno o más programas.
Trabajos del Sistema Operativo
Manipulación del procesador
Crear y eliminar Procesos.
Suspender y activar a los procesos.(multitarea).
Facilitar mecanismos para que los procesos se comuniquen entre si.
Manipulación de la memoria.
Conocer que partes de la memoria está disponible o no.
Decidir cuáles procesos deben ser cargados en la memoria y cuales deben
ser desalojados.
Manipulación de los dispositivos de almacenamiento externo.
Sistemas de Archivo.
Protección y Seguridad
Protección. Mecanismos que permiten controlar el acceso de los usuarios y
los procesos a los recursos del sistema
Seguridad. Mecanismos para protegerse de alguien que quiera violar las
protecciones.
Manipulación del Procesador
Crear y eliminar procesos.
Un proceso es un programa en ejecución.
Cada proceso tiene asignado un rango de direcciones de memoria minimo y
máximo llamado espacio de direcciones que el proceso puede leer y escribir
en ellas.
Pila
0xFFFF
Hueco
Datos
Código
0x
El espacio de direcciones puede llegar a ser el del direccionamiento máximo
de la memoria. Por ejemplo en un sistema de 32 bits un programa puede tener
un espacio de direcciones de hasta 4 GBytes.
El SO divide el espacio de direcciones en páginas y las lleva a memoria
cuando estas son solicitadas. (fallo de página)
Manipulación del Procesador
Suspender y activar los procesos.
Cuando se trabaja con multitarea el SO es el encargado de asignar ranuras
tiempo de ejecución para cada proceso.
A su turno un proceso es activado por el SO y se ejecuta hasta que:
• Se le acaba el tiempo asignado.
• Efectúa un llamado al Kernel que consume tiempo.
Un cambio de proceso implica:
• Detener su ejecución.
• Guardar el estado de los registros del microprocesador.
• Tomar los valores de las variables, manipuladores de archivos abiertos y
sus punteros correspondientesy guardarlos en una tabla de procesos.
• Restaurar los valores del proceso al que le toca continuar.
Manipulación del Procesador
En los sistemas multitarea los procesos tienen la capacidad de crear y
lanzar procesos llamados subprocesos o procesos hijos y éstos a su vez
también pueden crear sus subprocesos. Estos comparten el mismo
espacio de dirección y el padre lleva un rastro de quienes son sus hijos.
Comunicación entre procesos
Problemas de competencia. Los procesos a veces deben compartir
espacios de memoria, archivos, etc. eso hace que hayan problemas
de competencia. (Qué pasa si dos procesos acceden a una zona
compartida al mismo tiempo? ).
Bloqueos irreversibles. Pueden darse condiciones especiales en
que dos procesos se interfieran mutuamente y ambos queden
bloqueados indefinidamente Por ejemplo un proceso A que esté
bloqueado esperando se libere un recurso que está utilizando un
proceso B, y simultáneamente B esté bloqueado esperando que se
libere un recurso que está utilizando A.
Manipulación del Procesador
Area crítica. Es la parte de un proceso donde se accede a recursos
compartidos (En adelante abreviado como AC).
Semáforo. Es una variable que un proceso decrementa el semáforo (down)
antes de ingresar a un área crítica. Si el semáforo estaba en cero quiere
decir que otro proceso ingresó al AC, en dicho caso el proceso se desactiva
(“duerme”). Cuando un proceso sale del AC este incrementa el semáforo
(up) y activa un proceso “dormido”.
Mutex. Similar al semáforo pero solamente tiene dos estados la variable.
Bloqueada o Desbloqueada. Al ingresar al AC el proceso llama a mutex_lock
y al salir a mutex_unlock. Si al llamar a mutex_lock el mutex ya está
bloqueado el proceso se desactiva hasta recibir un mutex_unlock.
Monitores. Es una colección de procedimientos, variables y estructuras de
datos que se agrupan en un tipo especial de módulo o paquete. Los
procesos pueden invocar a los procedimientos de un monitor cuando lo
deseen, pero no pueden acceder en forma directa a sus estructuras de
datos internos desde procedimientos declarados fuera de dicho monitor.
MANIPULACIÓN DE DISPOSITIVOS
Sistema de Archivos
Los sistemas operativos se encargan de lidiar con los distintos dispositivos
de almacenamiento masivo (discos rígidos, memorias flash, CD, puertos de
impresoras, etc ) y le presentan al usuario un modelo simplificado del
manejo de todos ellos. En todos los medios el usuario almacena los datos
bajo la forma de archivos en directorios (o carpetas) y para trabajar con
ellos crea, abre, cierra, modifica el apuntador de archivo, establece
permisos, etc., despreocupándose de las características físicas (sectores,
cilindros, cabezas, segundos, sectores dañados, redundancia cíclica, etc.)
Otros dispositivos.
Cuando se agregan otros dispositivos a la computadora, por lo general el
fabricante provee los programas necesarios para controlarlos (drivers).
Generalmente estos se los ubica como complemento del kernel del SO.
En Unix por lo general estos programas instalan recompilando el Kernel. En
Windows se los incluye en una lista de dispositivos y se los integra al Kernel
en el momento de inicio de la Computadora o cuando se lo conecta.
SISTEMA DE ARCHIVOS
Consta de dos partes:
• Estructura Lógica: Es el formato provisto por el SO utilizado como
interfase por el usuario para acceder a los archivos en cualquier
dispositivo de almacenamiento de datos.
• Estructuras de Directorios (Carpetas) y archivos. Por lo general
jerárquicas y en forma de árbol.
• Estructuras de seguridad. Permisos de lectura, escritura, ejecución,
cuotas de uso, listas de control de acceso (ACL).
• Estructura Física: Es la forma que el SO implementa físicamente la
estructura lógica del sistema de archivos, o sea cómo se manejan los
datos físicamente para implementar la estructura de archivos. Existen
diferentes sistemas de implementar el sistema de archivos. Algunos
dependen del hardware, otros no. Las implementaciones más conocidas
son FAT, NTFS, UFS (Unix File System) ext1, ext2, ext3. etc.
Cuadro de Sistemas de Archivos más Comunes
Disco Duro
EFS · exFAT · ext (ext2 · ext3 · ext3cow · ext4)
FAT (FAT12, FAT16, FAT16B, FAT32) ·
NetWare File System ·
NILFS· Novell Storage Services·
NTFS·
Unix File System·
Discos Opticos
HSF · ISO 9660 · ISO 13490 · UDF
Flash memory /
SSD
FAT · exFAT · TFAT · FFS2 · JFFS · JFFS2 · LogFS · NVFS · YAFFS ·
UBIFS
Distribuidos
Coda · CXFS · Global File System · Google File System · OCFS · QFS ·
Xsan
Estructura Física de una Unidad de Disco Duro
Plato: cada uno de los discos que hay dentro del
disco duro.
Cara: cada uno de los dos lados de un plato.
Cabeza: número de cabezales.
Pistas: una circunferencia dentro de una cara; la
pista 0 está en el borde exterior.
Cilindro: conjunto de varias pistas; son todas las
circunferencias que están alineadas verticalmente
(una de cada cara).
Sector : cada una de las divisiones de una pista. El
tamaño del sector no es fijo, siendo el estándar
actual 512 bytes, aunque próximamente serán 4 KB.
Antiguamente el número de sectores por pista era
fijo, lo cual desaprovechaba el espacio
significativamente, ya que en las pistas exteriores
pueden almacenarse más sectores que en las
interiores. Así, apareció la tecnología ZBR
(grabación de bits por zonas) que aumenta el
número de sectores en las pistas exteriores, y utiliza
más eficientemente el disco duro.
Organización Genérica de un Sistema de Archivos
Los sistemas de archivo pueden prescindir de algunos de los elementos mostrados.
Bloque de Arranque. Se utiliza para cargar el Sistema Operativo si está en la partición. Está siempre
presente.
Superbloque. Puede estar presente o no y da información importante acerca de algunos sistemas de
archivos.(tipo de sistema de archivos, numeros de bloques de la particion, etc.)
Adm. de Espacio Libre. Algunos sistemas de archivos llevan una lista de sectores libres del disco. Puede
estar presente o no.
Nodos-i. Estructura utilizada por UNIX para describir los archivos. Los sistemas Microsoft utilizan otro tipo
de identificadores de archivos
SECTOR CERO (Master Boot Record MBR)
Es utilizado para guardar el programa que permite cargar al Sistema
Operativo (Gestor de Arranque) o la tabla de Particiones.
Primer sector físico del disco
446 bytes
Código máquina (gestor de arranque)
64 bytes
Tabla de particiones (4 registros que definen cada una de las particiones
primarias)
2 bytes
Firma de unidad arrancable ("55h AAh" en hexadecimal)
Registro de la tabla de Particiones
Offset
Descripción
0x00
Estado
0x01
Cabezal, sector y cilindro del primer sector en la partición
0x04
Tipo de partición
0x05
Cabezal, Sector y Cilindro del último sector de la partición.
0x08(4 bytes)
Logical block address (LBA) del primer sector de la partición. LBA evita direccionar
los sectores de disco mediante número de pista, cabeza y cilindro.
0x0C(4 bytes)
Longitud de la partición, en sectores.
Sistema de Archivos FAT (File Allocation Table)
Sector de
Arranque
FAT
Copia 1
FAT
Copia 2
Directorio
Raíz
Archivos y
Directorios
Los bloques de disco que ocupa un archivo están escritos en una tabla llamada FAT. El primer
bloque se guarda en un directorio y hace las veces de nodo de cabecera para una lista enlazada
donde figura los números de bloques que ocupa un archivo. El último sector está marcado con un
símbolo especial.
También la FAT lleva un registro de los espacios vacíos y los bloques defectuosos del disco.
La copia 2 es una copia idéntica a la primera y se pone por seguridad puesto que si se daña la FAT
no se localizan más los archivos.
Las FAT, el sector de arranque y el directorio raíz se crean mediante el proceso de formateo.
El Directorio en los Sistemas de Archivo FAT
Entrada de Directorio del Sistema Operativo DOS
El número del primer bloque indica donde comenzar a buscar en la FAT
Búsqueda del archivo Prueba.exe mediante la FAT
PRUEBA
EXE
Primer Bloque 8
Sectores / Clústeres
ocupados por otros
archivos
FAT
Sector 0
16
Sector/Clúster
defectuoso
DF
0
9
10
17
FF
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Sector no utilizado
Sistemas de Archivos que Utilizan Nodos-i (UNIX)
Administración de Espacio Libre. Puede ser un mapa de bits o una
tabla que indique que bloques están libres.
Nodos-i. Son nodos que indican en qué bloque están los datos. Todos los
nodos-i están en dicha sección.
Directorio Raíz. Ídem Sistema FAT pero la estructura cambia
Localización del archivo prueba en el esquema de Nodos-i
Nodos-i
Directorio
Archivo|
25
Nodo-i 1
Miarchivo
16
Nodo-i 2
Prueba
7
Nodo-i 3
Otrosarchivos.
-
Nodo-i N° 7
Atributos.Tamaño de archivo, hora de
creación, hora de último acceso,
última modificación, dueño, grupo,
información de protección, conteo de
números de entrada.
Nodo-i 4
Bloque de datos 1
Nodo-i 5
Bloque de datos 2
Nodo-i 6
Nodo-i 7
Hasta Bloque de datos 10
Nodo-i 8
Bloque indirecto único.
Etc. etc.
Bloque indirecto doble.
Bloque indirecto triple.
Esquema completo de un nodo-i
SISTEMA DE ARCHIVOS NTFS
Creado por MIcrosoft a partir de Windows 2000. Se utiliza en todos los Sistemas Operativos posteriores.
Características generales.
Cada partición es dividida en bloques (clústeres) de diferentes tamaños. El tamaño más común es
de 4 KBytes.
El tamaño de cada partición puede llegar a alcanzar 16 exabytes 216 Bytes (18.000.000.000 de
GBytes).
Descripción General. NTFS está basado en un único archivo llamado Master File Table (MFT) que puede
estar localizada en cualquier parte del disco. El bloque donde comienza MFT está indicado en el sector de
arranque de la partición y se genera cuando se la crea.
Características de la MFT
Está compuesta de registros de 1 Kbyte de tamaño.
Los primeros 16 registros contienen definiciones de NTFS como tamaño, atributos, etc. (Registros
de Metadatos).
El resto muestra los bloques donde se encuentran los archivos, directorios y otros datos.
SISTEMA DE ARCHIVOS NTFS
Estructura de un registro MFT. Está compuesto de una serie un encabezado de registro y una serie de
encabezado de atributos y atributos.
Como se ve un archivo en un Directorio NTFS