T2-SO. Elementos y Estructura
1.-Sistema Operativo
Es un programa o conjunto de programas que actúan como intermediario entre el usuario y el hardware del ordenador, gestionando los recursos del sistema y optimizando su uso.
1.1.- Historia de los SO
Consta de 5 fases evolutivas
- Generación 0 (1940-1965): Sin S.O. codificaban a mano mediante interruptores mecánicos (ENIAC 1942 Eckert y Mauchly)
- Primera Generación (1940-finales de los 50): Con la construcción del UNIVAC I (Universal Automatic Computer) aparece el concepto de SO (EXEC I)
- Segunda Generación (1960-1965): Introducción del transistor
- Tercera Generación (1966-1981): Aparición de los circuitos integrados abaratando costes. Multiprogramación aprovechando los tiempos de espera, Spooling almacenamiento de trabajos para que los periféricos accedan sin importar su velocidad.
- Cuarta Generación (1971-1981): Se crea el Microprocesador (4004) incremento de la velocidad de proceso muy significativo. Reduce costes. Aparece UNIX a principios de los 70.
1.1.3.-Sistemas Operativos desde 1981
- 1981 IBM PC con SO. PC-DOS mas adelante MS-DOS de Microsoft,
- En los 90’s aparece Linux, un SO libre de codigo abierto
- 90’s Google aparece como competidor en navegadores con MS y mas tarde con Google OS y Android.
- Apple Mac o Macintosh funcionaban con MacOS
- Desde el 2010 aparecen Tablets y Smartphones con sus propios SO como iPad iPhone de Apple y los dispositivos de otras marcas como Samsung …
- El presente y el futuro se caracteriza por el Procesamiento Paralelo y la Inteligencia Artificial (Programas capaces de reconocer aprender y pensar)
1.2.- Elementos de un S.O.
- El Núcleo o Kernel: Parte esencial facilita el acceso de los programas al hardware. Cuando arranca el pc el kernel se carga en memoria y actua directamente sobre el hardware.
- Utilidades de bajo nivel: Conjunto de programas que no forman parte del kernel pero que se ejecutan sobre el núcleo.
- Interfaz de usuario: Shell (Cáscara) actúa como interprete entre el usuario y el kernel. Facilita el uso de comandos del nucleo mediante un aspecto gráfico.
1.3.-Clasificación de los SO:
- Por su estructura interna
- Monolítica: Todas las funciones están en el Kernel
- Capas: Estructura jerárquica, Comunicados de arriba a abajo.
- Control y gestión de programas
- Control, gestión y admón de periféricos
- Control, gestión y admón de usuarios
- Control de procesos
- Control de errores de sistema y aplicaciones
- Control y gestión de seguridad
- Máquina Virtual: Copia exacta del hardware real que gestiona el propio S.O.
- Por los servicios ofrecidos
- Según número de usuarios
- Monousuario: Los recursos se destinan a atender a un único usuario (MS-DOS, Windows10…)
- Multiusuario: Permiten varios usuarios compartiendo recursos (Windows 2000 Server, Novel, Windows NT Server, UNIX o Linux…)
- Según número de procesos
- Monotarea: Los recursos se dedican a una sola tarea
- Multitarea: Los recursos se asignan a varias tareas a la vez
- Según el nº de Procesadores
- Monoprocesador: Un solo procesador (lo mas habitual)
- Mulitprocesador: Varios procesadores que incrementan las capacidades multiproceso.
- Según número de usuarios
- Por modos de explotación
- Por lotes (Tipo “batch”): agrupan los trabajos en forma de lotes y los remite para su proceso secuencial
- Por Multiprogramación: El sistema distribuye la carga entre los procesos para incrementar la velocidad de proceso.
- Sistemas en tiempo compartido: Utiliza técnicas de planificación de la CPU para atender a los procesos en espera. El usuario interactúa con el sistema.
- Sistemas en tiempo real: Los resultados son correctos en el mismo tiempo que se ejecutan.
- Sistemas Híbridos: Mezclan los 2 anteriores combinando las ventajas.
- Por forma de ofrecer servicios
- Sistemas Centralizados: Los usuarios usan terminales para el uso de un mainframe.
- Sistemas en red: Comparten recursos.
- Sistemas Distribuidos: Distribuyen las tareas entre varios procesadores simulando uno solo, obteniendo grandes ventajas:
- Comparten recursos
- Aceleran los cálculos
- Fiabilidad
- Comunicación
- Sistemas no heterogéneos (Descentralizados)
2.-Funciones del S.O.
El S.O. es un asignador de recursos y facilita la comunicación entre el usuario y la máquina.
- Funciones
- Administración del procesador
- Comparte la CPU entre los procesos
- Administración de la memoria
- Lleva un registro de las partes de memoria ocupadas y las que no
- Gestión de dispositivos y periféricos
- Mediante drivers gestiona la comunicación entre usuario, maquina y dispositivo.
- Administración del Sistema de Archivos.
- File System se encarga de diseñar la forma en que se guarda la información.
- Detección y tratamiento de errores o control de errores
- Cuando se diagnostica un error se busca la causa y su posible solución
- Seguridad y protección del sistema o control de seguridad.
- Autenticación: Garantiza la identidad de los usuarios
- Privilegios: Determina el acceso y permisos
- Control de redes.
- Gestión y controlo de redes
- Seguridad de gestión, permisos y usuarios frente a intrusos, virus, malware etc…
- Administración del procesador
2.3.-Gestión de la Memoria
La memoria se caracteriza en tres variables:
- Capacidad: de almacenamiento
- Velocidad de acceso: Tiempo que dura la transferencia de datos entre microprocesador y memoria.
- Tiempo de ciclo: Tiempo entre la aceptación de lectura/escritura y la disponibilidad para aceptar la siguiente.
2.3.1.-Registros de Memoria
Jerarquía de memoria. A mayor velocidad menor capacidad y mayor precio
Cada proceso necesita un área de memoria donde poner 3 tipos de datos
- Código: las instrucciones
- Dato: variables de distinto tamaño de uso para las instrucciones.
- Pila: lugar de trabajo
Dirección Física: Posición real que ocupa un dato en memoria.
Dirección Lógica: Dirección generada por la CPU
3.1 Administrador del Sistema
Encargado del buen funcionamiento. Fuentes de información de un Administrador de Sistemas:
- Manuales del SO
- Manuales de administración de sistemas
- Ayuda on-line
- Internet
Tareas del administrador de sistemas:
- Añadir y eliminar usuarios.
- Añadir y eliminar hardware
- Backups periódicos
- Instalar aplicaciones de usuario
- Monitorizar el sistema operativo y ajustarlo
- Mantener la documentación del sistema
- Mantenimiento general de la red
- Manto software de red
- Configura conexiones que se realicen a otras redes (locales y externas)
- Instalar, mantener y configurar dispositivos de red (impresoras, discos duros etc…)
- Dar soporte a usuarios
- Resolver problemas
- Velar por la integridad del sistema
Ética del Administrador de Sistemas:
- Profesionalidad
- Integridad: Admitir errores y limitaciones
- Privacidad: Acceder a información privilegiada sólo en caso necesario.
- Estar en contacto con leyes y políticas de uso.
- Estar en comunicación con los usuarios,
- Mantenerse al día
- Compartir los conocimientos con los demás
- Ser consciente de la importancia de la responsabilidad ética y social.
3.2. Interfaces
- Línea de comandos: como MS-DOS o UNIX
- Interfaz gráfica (GUI): como Windows o Ubuntu
4.1. Procesos
Un proceso es un programa en ejecución.
- Ejecución en primer plano (foreground): Espera que el usuario introduzca un comando, Ejecuta ese comando y vuelve al principio.
- Ejecución en segundo plano (background): Espera que el usuario introduzca un comando, ejecuta el comando y sin esperar a que termine vuelve al principio mientras se ejecuta el comando.
Los DEMONIOS de Linux, son programas cargadas por el SO que ofrecen soporte para otras aplicaciones.
4.2. Estados de los Procesos
- Nonato: Todavía no existe
- Nuevo: recién creado
- Preparado o listo
- Bloqueado
- En ejecución o activo
- Finalizado.
El SO tiene un módulo PLANIFICADOR que se encarga de mover los procesos por sus estados de forma una vez creado el proceso (Nuevo) puede pasar a estado de listo para ser ejecutado, de activo volver a listo o a la espera y de activo a finalizado.
4.5. Algoritmos de planificación
- FCFS (First Come First Serve): Primero en llegar Primero en Salir
- SJF (Shortest Job First): El proceso mas corto se ejecuta primero.
- RR (Round Robin): Se asignan un tiempo de ejecución (Quantum) y rotan cuando consumen su quantum.
- Por Prioridades: Se ordena según la prioridad otorgada al proceso.
6.1. Sistemas de Archivo
Es la forma de almacenar la información permanentemente en soportes externos.
Cada SO tiene su propio sistema de archivos y cada partición sólo puede usar un sistema de archivo
Archivo: Unidad lógica de memoria para almacenar datos
Directorio: Contenedor de almacenamiento de archivos y otros directorios.
Atributos: Información asociada a un archivo que indica si es de sólo lectura, oculto y si se ha modificado.
Permisos:
- Lectura (r): Permite visualizar el contenido del archivo.
- Escritura (w): Permite modificar el contenido del archivo.
- Ejecución (x): Permite ejecutar el archivo.
7.1. Partes de un Disco Duro
- Sectores: Tamaño mínimo de datos de transferencia desde disco a memoria.
- Clúster: Unidad mínima de información almacenada en disco, puede estar formada por uno o mas sectores.
7.2. Tipos de sistema de archivos
- FAT16: obsoleto
- FAT32: Permite particiones mayores a 2Gb y tamaño máximo de archivo de 4 Gb
- NTFS: Permite nombres de archivo de 256 caracteres
- ext2fs: Distingue mayúsculas y minúsculas con archivos de hasta 2 Gb
- NSS: Permite 1 millón de archivos abiertos a la vez.
- HPFS: Permite archivos de 2 Gb. Se encuentra en OS/2
- ReFS: Descendiente compatible con NTFS se utiliza en WinServer