C1_Tema II.04_Sistemas_Operativos 2024.pdf
Document Details
2024
Tags
Full Transcript
Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE TEMA II 04. SISTEMAS OPERATIVOS. CARACTERÍSTICAS Y ELEMENTOS CONSTITUTIVOS. SISTEMAS WINDOWS. SISTEMAS UNIX Y LINUX. SISTEMAS OPERATIVOS PARA...
Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE TEMA II 04. SISTEMAS OPERATIVOS. CARACTERÍSTICAS Y ELEMENTOS CONSTITUTIVOS. SISTEMAS WINDOWS. SISTEMAS UNIX Y LINUX. SISTEMAS OPERATIVOS PARA DISPOSITIVOS MÓVILES. Índice 1. INTRODUCCIÓN 5 2. DEFINICIÓN DE SISTEMA OPERATIVO 6 3. ESTRUCTURA DE UN SISTEMA OPERATIVO 7 3.1 KERNEL O NÚCLEO 7 3.2 INTERFAZ DE USUARIO - SHELL 7 3.3 SISTEMA DE PROTECCIÓN 10 3.4 SISTEMA DE ENTRADA Y SALIDA 11 3.4.1 INTERFAZ DEL SISTEMA OPERATIVO PARA E/S 12 3.4.1.1 MECANISMO DE INCREMENTO DE PRESTACIONES E/S 14 3.4.2 SISTEMA DE ARCHIVOS 14 3.4.2.1 SISTEMA DE ARCHIVOS PROPORCIONADOS POR EL SISTEMA OPERATIVO 15 3.4.3 GESTOR DE REDES 19 3.4.4 GESTOR DE BLOQUES 19 3.4.5 GESTOR DE CACHÉ 19 3.4.6 MANEJADORES DE DISPOSITIVO DRIVERS 20 3.5 GESTIÓN DE PROCESOS 21 3.6 GESTIÓN DE MEMORIA PRINCIPAL 26 3.7 GESTIÓN DE ALMACENAMIENTO SECUNDARIO/SISTEMA DE GESTIÓN DE ARCHIVOS 29 3.7.1 TIPOS DE ARCHIVO 30 3.8. PLANIFICACIÓN DE DISCO/PLANIFICACIÓN E/S 31 3.8.1 ASIGNACIÓN DE ESPACIO DE ALMACENAMIENTO 33 3.8.2. MÉTODOS DE ASIGNACIÓN DE ESPACIO 34 3.8.3. SISTEMA DE COMUNICACIONES 35 1 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 3.8.4 GESTOR DE RECURSOS 39 4. FUNCIONES DE UN SISTEMA OPERATIVO 40 4.1. 32 BITS VS 64 BITS 41 5. TIPOS DE SISTEMAS OPERATIVOS 43 5.1 SISTEMAS OPERATIVOS POR SU ESTRUCTURA 43 5.2 SISTEMAS OPERATIVOS POR LAS OPERACIONES QUE IMPLEMENTAN EN SU NÚCLEO 43 5.3 SISTEMAS OPERATIVOS POR LOS SERVICIOS QUE OFRECEN 45 5.4 SISTEMAS OPERATIVOS POR EL NÚMERO DE USUARIOS 45 5.5 SISTEMAS OPERATIVOS POR EL NÚMERO DE TAREAS 45 5.6 SISTEMAS OPERATIVOS POR EL NÚMERO DE PROCESADORES 46 5.6.1 MULTIPROCESADOR 46 5.6.1.1 UMA: UNIFORM MEMORY ACCESS (ACCESO A MEMORIA UNIFORME). 46 5.6.1.2 NUMA: NON UNIFORM MEMORY ACCESS (ACESO A MEMORIA NO UNIFORME). 47 5.6.1.3 DSM: DISTRIBUTED SHARED MEMORY (MEMORIA HÍBRIDA COMPARTIDA) 48 5.6.1.4 MEMORIA HÍBRIDA 48 5.7 SISTEMAS OPERATIVOS POR LA FORMA EN QUE OFRECEN SUS SERVICIOS 49 6. LISTADO DE SISTEMAS OPERATIVOS 51 6.1 SISTEMAS OPERATIVOS PARA PC 51 6.2 SISTEMAS OPERATIVOS PARA SMART TV 51 6.3 SISTEMAS OPERATIVOS PARA SMARTWATCHES 51 6.4 SISTEMAS OPERATIVOS PARA OTROS DISPOSITIVOS 52 7. SISTEMAS WINDOWS 53 7.1 VERSIONES DE CLIENTE 53 7.2 VERSIONES DE SERVIDOR 55 7.3 MODELOS DE LICENCIAS DE WINDOWS 59 7.3.1 TIPOS DE LICENCIAS DE CLIENTE DE WINDOWS 59 7.3.2 TIPOS DE LICENCIAS DE SERVIDOR DE WINDOWS 60 7.4 COMPONENTES NOVEDOSOS DE WINDOWS 62 2 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 7.4.1 WINDOWS UAC (USER ACCOUNT CONTROL) 62 7.4.2 APPLOCKER 62 7.4.3 BITLOCKER 63 7.4.4 WINDOWS DEFENDER 64 7.4.5 WINDOWS SANDBOX – ESPACIO AISLADO DE WINDOWS 64 7.4.6 WINDOWS MIXED REALITY 64 7.5 COMANDOS DE WINDOWS 65 7.5.1 COMANDOS DE ADMINISTRACIÓN 65 7.5.2 COMANDOS DE RED 65 8. SISTEMAS UNIX 67 9. SISTEMAS GNU/LINUX 69 9.1 DISTRIBUCIONES DE LINUX POPULARES 70 9.2 COMANDOS DE LINUX 71 9.2.1 COMANDOS DE PROPÓSITO GENERAL 71 9.2.2 COMANDOS DE OPERACIÓN DE FICHEROS 72 9.2.2.1 FIND 74 9.2.3 COMANDOS DE TRATAMIENTO DE FICHEROS 75 9.2.4 EDITORES DE FICHEROS DE TEXTO 77 9.2.5 COMANDOS DE RED 77 9.2.6 FICHEROS DE RED 78 9.2.7 COMANDOS DE MANEJO DE PAQUETES DE INSTALACIÓN 78 9.2.8 COMANDOS GRÁFICOS 79 9.2.9 MONTAJE DE SISTEMAS DE FICHEROS 79 9.3 ESTRUCTURA DE DIRECTORIOS BÁSICA/FILESYSTEM HIERARCHY STANDARD (FHS) 80 9.3.1 ESTRUCTURA DE DIRECTORIOS DETALLADA 81 9.4 NIVELES DE EJECUCIÓN (RUNLEVELS) 84 9.5 ADMINISTRACIÓN DE USUARIOS 85 9.6 SEGURIDAD DE FICHEROS 87 3 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 9.7 PERMISOS EN LINUX 87 9.7.1 CHMOD 88 9.7.2 FACL (FILE ACCESS CONTROL LIST) 89 9.8 PROGRAMACIÓN DE TAREAS 90 9.8.1 CRON 90 9.8.2 AT 92 9.8.3 BATCH 93 9.9 ARCHIVO /ETC/FSTAB 93 9.10 MONTAR SISTEMAS DE ARCHIVOS CON MOUNT 95 9.11 ALMACENAMIENTO REMOTO 96 9.12 NFS (NETWORK FILE SYSTEM) 96 9.12.1 VERSIONES DE NFS 96 9.12.2 MONTAR CLIENTE NFS MANUALMENTE 97 9.12.3 MONTAR SISTEMAS DE FICHEROS NFS UTILIZANDO /ETC/FSTAB 97 9.12.4 EXPORTAR EL SISTEMA DE FICHEROS NFS 98 9.13 SAMBA 99 9.13.1 FICHEROS DE CONFIGURACIÓN DE SAMBA 100 9.14 PROGRAMACIÓN BÁSICA DE SCRIPTS EN LINUX 100 10 SISTEMAS OPERATIVOS PARA DISPOSITIVOS MÓVILES 104 10.1 ANDROID 104 10.1.1 ARQUITECTURA ANDROID 104 10.1.2 VERSIONES ANDROID 107 10.1.3 NOVEDADES ANDROID 12 109 10.2 IOS 110 10.2.1 ARQUITECTURA IOS 110 10.3 OTROS SISTEMAS OPERATIVOS MÓVILES 111 11. CONCLUSIÓN 111 4 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 1. INTRODUCCIÓN El sistema operativo es el software más importante de un dispositivo. Generalmente de él depende lo que las aplicaciones pueden llegar a hacer y con qué facilidad se puede llegar a hacer. Al ser el intermediario entre las aplicaciones y el hardware del sistema el sistema operativo está íntimamente ligado a la arquitectura subyacente por lo que en éste tema se tratarán temas que a veces cruzan la línea entre el software y el hardware. Éste documento comprende tanto un estudio generalizado de elementos comunes de todos los sistemas operativos así como un tema para cada uno de los más importantes de la actualidad como Windows, Unix, Linux, Android e IOS. Es importante conocer los distintos algoritmos de paginación, de planificador de procesos y de planificador de acceso a disco. También es interesante repasar los comandos de la Shell de Linux, la planificación de trabajos con Cron así como los comandos de Windows. 5 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 2. DEFINICIÓN DE SISTEMA OPERATIVO Es el software de un sistema que gestiona los recursos hardware y provee de servicios a los programas de aplicación abstrayendo al programador de tratar con el hardware directamente (actuando como una máquina virtual o extendida). Es un intermediario entre el usuario y el hardware. Provee el soporte necesario para escribir los programas de aplicación mediante las llamadas al SO. El Sistema operativo se ejecuta siempre en modo privilegiado o supervisor con respecto al resto. La mayoría de aparatos electrónicos que utilizan microprocesadores llevan incorporado un sistema operativo. Un sistema informático puede dividirse en cuatro componentes: - Hardware - Sistema Operativo - Programas de aplicación - Usuarios 6 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 3. ESTRUCTURA DE UN SISTEMA OPERATIVO Un sistema operativo está compuesto por muchos componentes que pueden cambiar en función del sistema y de la arquitectura. Generalmente los sistemas operativos suelen tener los siguientes componentes: - Kernel o núcleo - Interfaz de usuario - Controlador de dispositivo o driver - Sistema de archivos - Sistema de protección - Sistema de entrada y salida - Gestión de procesos - Gestión de memoria principal - Gestión de almacenamiento secundario - Sistema de comunicaciones - Gestor de recursos 3.1 KERNEL O NÚCLEO Es un componente esencial del sistema operativo. Se ejecuta en modo privilegiado o modo núcleo en un área aislada para evitar que cualquier software malicioso pueda corromperlo. No existe en algunos sistemas operativos, como por ejemplo en los sistemas empotrados, porque no todas las arquitecturas permiten distintos modos de ejecución. Se encarga de: - Facilita a los programas acceso seguro al hardware del sistema - Gestiona los recursos facilitando a las aplicaciones su uso mediante el servicio de llamadas al sistema. - Gestiona la multiprogramación (decide qué programa podrá usar un dispositivo de hardware y durante cuánto tiempo). - Provee de abstracciones de hardware para ocultar la complejidad del hardware subyacente a los programadores de aplicaciones ofreciéndoles una interfaz limpia y uniforme del hardware subyacente. 3.2 INTERFAZ DE USUARIO - SHELL Es el medio con el que el usuario interactúa con el equipo para controlar su funcionamiento. El Shell o intérprete de comandos es el programa informático que provee dicha interfaz. 7 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Generalmente es la parte del sistema operativo que el usuario ve por lo que suelen ser fáciles de entender, amigables e intuitivos. Las funciones principales de la interfaz de usuario son las siguientes: - Puesta en marcha y apagado. - Control de las funciones manipulables del equipo. - Manipulación de archivos y directorios. - Herramientas de desarrollo de aplicaciones. - Comunicación con otros sistemas. - Información de estado. - Configuración de la propia interfaz y entorno. - Intercambio de datos entre aplicaciones. - Control de acceso. - Sistema de ayuda interactivo Según su construcción pueden ser de tres tipos: - Interfaz hardware: Utilizan dispositivos físicos para la entrada y salida de comandos de control e información al sistema operativo (teclado, ratón, pantalla, panel de control…) - Interfaz software: Se utiliza para la salida de información generalmente a través de la pantalla. - Interfaz software-hardware: Traductor entre la máquina y las personas. Traduce la instrucción dada a código binario y el código binario a información legible. Evolución - CLI: Command Line Interface: Permite interactuar con el sistema a través de líneas de texto simples o de archivos de script. Ejemplos: o COMMAND.COM: Intérprete de comandos de MS-DOS o CMD: Intérprete de comandos de OS/2 y sistemas basados en Windows NT (Windows 2000, XP, 2003 Server, Vista, 7, 8, 8.1 y 10) o Bourne Shell: Intérprete usado en las primeras versiones de Unix. Se convirtió en un estándar. En algunas sistemas el Shell /bin/sh es el Shell Bourne pero en otros el /bin/sh es un enlace simbólico a uno equivalente como Bash. 8 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE o BASH: Bourne-again Shell. Popular interfaz de comandos presente en Linux, Unix y Solaris. Nació para sustituir al Shell Bourne. Existen versiones para Windows 10 y Android. o Emacs Shell/Eshell: Intérprete de comandos implementado en Emacs o Z Shell /zsh: Potente intérprete de comandos para sistemas tipo Unix. Utilizado por MacOS Catalina o C Shell/csh: Intérprete de comandos basado en C que es el lenguaje con el que está desarrollado Unix. o TCsh: Versión mejorada de Csh. o PowerShell: Intérprete de comandos de Windows destinado a competir con la potencia de los shells de Linux. Puede ser utilizado en los sistemas operativos de Microsoft, Linux, MacOS así como en otros programas de Microsoft como SQL Server, Exchange o IIS. Permite automatizar tareas administrativas al usuario. A partir de la liberación de su código en GitHub cambió su nombre a PowerShell Core. Requiere la instalación previa del framework.NET - GUI: Graphical User Interface: Permite interactuar con el sistema a través de un conjunto de imágenes y objetos gráficos. En la mayoría de sistemas operativos salvo en Windows muchas de las funciones que se realizan desde la interfaz gráfica son enviadas al CLI que es el encargado de ejecutarlas. Windows sigue teniendo muchas más opciones que se ejecutan por scripts. Ejemplos: o GNOME Shell: Interfaz básica del entorno de escritorio GNOME presente en distribuciones Linux. Su nombre proviene de GNU Object Model Environment. Consume menos recursos que KDE por eso está presente en ordenadores de bajo rendimiento. o KDE: Interfaz potente y multiplataforma orientada para competir con los mejores interfaces gráficos. Presente en Linux o Unity: Entorno de escritorio basado en GNOME creado por la empresa Canonical para la distribución de Ubuntu. Diseñado para aprovechar el espacio en pantallas pequeñas como las de los netbooks. o LXQt: Entorno de escritorio libre y de código abierto utilizado en Lubuntu en sustitución de GNOME. o MATE: Continuación de GNOME 2 que cambió de nombre pare evitar conflictos con GNOME 3. Adecuado para equipos con hardware modesto. o Xfce: Entorno de escritorio libre para sistemas tipo Unix. Su objetivo es ser rápido, ligero pero visualmente atractivo. Puede ser ejecutado con tan solo 40 MB de Ram. 9 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE o Windows Luna: Interfaz gráfica de Windows XP o Windows Aero: Interfaz gráfica de Windows Vista y Windows 7. Aero viene de Authentic, Energetic, Reflective and Open, Auténtico, Energético, Reflectivo y Abierto o Modern UI: Interfaz gráfica de Windows 8 y Windows Phone. o Continuum: Interfaz gráfica incluida en el sistema operativo Windows 10, tanto en versiones de desarrollo como en las versiones finales. Mezcla entre la interfaz Windows Aero y Modern UI pertenecientes a Windows 7 y Windows 8.x respectivamente. - NUI: Natural User Interface: Interfaz natural de usuario. Permite interactuar con el sistema a través de movimientos gestuales del cuerpo, alguna de sus partes (como las yemas de los dedos en pantallas multitáctiles o las manos) o por reconocimiento de voz. Ejemplos: o Xbox Kinect o Siri: Asistente virtual para IOS, macOS, tvOS, watchOS. o Microsoft Cortana: Asistente virtual creado por Microsoft para Windows 10, Windows 10 Mobile, Windows Phone 8.1, altavoz inteligente Invoke, Windows Mixed Reality. Permite la comunicación por comandos de voz o Google Assistant: Asistente virtual desarrollado por Google disponible en los dispositivos móviles Google y Android y dispositivos domésticos inteligentes. o Amazon Alexa: Asistente virtual desarrollado por Alexa utilizado por primera vez con el altavoz inteligente Amazon Echo. 3.3 SISTEMA DE PROTECCIÓN Es la parte del sistema operativo encargada de controlar el acceso de los programas, procesos o usuarios al sistema y a los recursos. Se encarga de distinguir entre usos autorizados y no autorizados, especificar el tipo de acceso a un recurso y proveer medios para el cumplimiento de la protección. - Control de acceso: Características de seguridad que controlan quién puede tener acceso a los recursos de un sistema operativo. - Políticas: Conjunto de reglas que establecen que se puede y que no se puede hacer en un sistema. Pueden ser definidas por el hardware, por el propio sistema operativo, por el administrador o por el propietario del recurso. Las políticas son flexibles, pueden cambiar a lo largo del tiempo y aplicarse de forma diferente según los recursos o usuarios. - Mecanismo: Determinación de los elementos hardware/software utilizados para implementar una política. - Protección: Control para que cada proceso sólo pueda acceder a los recursos especificados y de la forma establecida por la política. 10 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE - Derechos de acceso: Definen el tipo de acceso que tiene los sujetos (usuarios, procesos, programas, etc) sobre los objetos. Los derechos de acceso más comunes son. o Acceso de lectura. o Acceso de escritura. o Acceso de ejecución. - Derecho: Permiso para realizar una operación. - Dominio: Conjunto de parejas (objeto, derechos). Cada pareja indica un objeto y las operaciones que se pueden realizar con él. Un mismo objeto puede estar presente en varios dominios con distintos derechos en cada dominio. Cuando un proceso se ejecuta en un dominio determinado puede acceder a los objetos dados de alta en el dominio con los derechos especificados dentro de dicho dominio. Un proceso puede alternar entre los dominios durante su ejecución realizando una llamada de “alternancia de dominio” al sistema operativo. - Anillo: Nombre dado a dominios en algunos sistemas operativos. MECANISMOS DE IMPLEMENTACIÓN - Matriz de acceso: - ACL (Access Control List): Listas de Control de Acceso: - Dominios protección - Mecanismo de Cerradura-Llave 3.4 SISTEMA DE ENTRADA Y SALIDA El sistema de entrada y salida es el encargado de controlar los dispositivos de Entrada/Salida del ordenador controlando la comunicación con los periféricos a través de los diferentes niveles de memoria. Funciones principales: - Facilitar a las aplicaciones el uso de los dispositivos periféricos mediante el uso de servicios genéricos sin tener que lidiar con las complejidades del hardware. - Detectar y controlar los errores de los dispositivos. - Optimizar la E/S del sistema - Permitir la conexión de dispositivos nuevos de E/S facilitando en la medida de lo posible la configuración automática (Plug & Play, UPNP, etc) - En algunos sistemas operativos se crean dispositivos virtuales que permiten conectar cualquier tipo de dispositivo físico proporcionando una interfaz común para trabajar con los dispositivos independientemente de su tipo (independencia de dispositivo). 11 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Está constituido por un conjunto de controladores de dispositivo cada uno encargado de un tipo de dispositivos de E/S y una serie de capas con funcionalidades bien definidas: Es fundamental que el sistema de entrada/salida esté muy optimizado porque las operaciones de Entrada/Salida ocupan un 30% del tiempo del Sistema Operativo. - Interfaz del sistema operativo para E/S. - Sistema de archivos. - Gestor de redes: Proporciona una interfaz homogénea para acceder a todos los sistemas de red que proporciona el sistema operativo (TCP/IP, Novell) - Gestor de bloques. - Gestor de caché: Acelera y optimiza la E/S mediante la gestión de almacenamiento - Manejadores de dispositivo. 3.4.1 INTERFAZ DEL SISTEMA OPERATIVO PARA E/S Ofrece a las aplicaciones una interfaz homogénea para poderse comunicar con los drivers de dispositivo ocultando los detalles de bajo nivel ofreciendo distintos tipos de servicios de E/S. - E/S Síncrona: Bloqueante. El emisor espera a la respuesta del receptor antes de proseguir con la ejecución del programa. 12 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE - E/S Asíncrona: No bloqueante. El emisor envía el mensaje y continúa su trabajo. También ofrece una interfaz para que los usuarios puedan comunicarse entre sí y controla los manejadores que no son comunes entre otros. 13 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 3.4.1.1 MECANISMO DE INCREMENTO DE PRESTACIONES E/S Los procesos de Entrada y Salida suelen ocasionar el cuello de botella de los sistemas operativos por lo que su optimización es fundamental. - Acceso Directo a memoria - Cache en el controlador de disco - Caché de disco en memoria principal - Solapamiento de búsquedas y transferencias: Un mismo controlador puede gestionar varios dispositivos del mismo tipo. En vez de acceder a ellos secuencialmente el controlador puede distribuir la información entre los dispositivos de tal forma que una misma búsqueda se realice simultáneamente entre los dispositivos conectados al controlador y las transferencias puedan ser divididas entre todos los dispositivos conectados incrementando notablemente la velocidad. 3.4.2 SISTEMA DE ARCHIVOS Es el componente del sistema operativo que controla cómo se almacenan y recuperan los datos. Proporcionan una interfaz homogénea, a través del sistema de archivos virtuales para acceder a todos los sistemas de archivos que proporciona el sistema operativo. Sus principales funciones son: - Asignación de espacio a los archivos, mediante una cadena de bloques de un mismo tamaño (sectores). - Administración del espacio libre y del acceso a los datos resguardados. - Estructurar la información guardada en un dispositivo de almacenamiento de datos o unidad de almacenamiento (normalmente un disco duro de una computadora). - Representar la información almacenada textual o gráficamente utilizando un gestor de archivos. - Proveer métodos para crear, eliminar, mover y renombrar archivos y directorios. - Asegurar el acceso a los archivos mediante listas de control de acceso (ACLs), permisos o capacidades. Otras funciones adicionales son: - Proveer atributos extendidos - Integridad del sistema de archivos (Journaling): Registro por diario. El sistema de archivos mantiene un journal (registro diario) con la información necesaria para restablecer los datos afectados por una transacción en caso de que ésta falle. 14 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE - Soporte para cuotas de discos. 3.4.2.1 SISTEMA DE ARCHIVOS PROPORCIONADOS POR EL SISTEMA OPERATIVO SISTEMA DE DESCRIPCIÓN SISTEMAS FICHEROS OPERATIVOS FAT File Allocation Table. Tabla de asignación de archivos. DOS, Windows Las diferentes capacidades de la tabla de asignación dieron lugar a diferentes versiones: - FAT12: 12 bits - FAT16: 16 bits - FAT32: 32 bits vFAT Virtual FAT – FAT Virtual Windows Extensión de FAT con soporte de nombres de archivos largos NTFS New Tecnology File System. Utilizado originalmente en la Windows XP, plataforma Windows NT®, posteriormente fue adoptado por Vista, 7, 8 10 y todas las versiones de Windows. versiones de Permite la restricción de acceso a archivos y carpetas por servidor desde NT. medio de permisos. No tenía soporte oficial en Linux puesto que las especificaciones no estaban liberadas (Linux oficialmente sólo leía y permitía escribir pero bajo tu propio riesgo). El driver NTFS3 de la compañía Paragon está integrado en la 'realease candidate' de la versión 5.15 del kernel de Linux, que en breve se convertirá en la versión estable del mismo y empezará a integrarse en las grandes distribuciones. Tiene formato de compresión nativa Permite encriptación Soporta particiones de 2 TB No recomendado en sistemas con menos de 400 MB. DFS Distributed File System Windows 15 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE EXT Extended File System. Linux Sistema de ficheros de alto rendimiento en Linux usado para discos duros y sistemas de almacenamiento extraíbles (disqueteras y memorias USB). Permite actualizar de ext2 a ext3 sin perder los datos almacenados ni tener que formatear el disco. Presenta un menor consumo de CPU. Está considerado más seguro que otros sistemas de ficheros en Linux dada su relativa sencillez y su mayor tiempo de prueba. EXT2 Second Extended File System Linux EXT3 Third Extended file System. Evolución de Ext2 con registro en Linux diario Tamaño máximo de archivo 16GB EXT4 Fourth Extended file System. Mejora de Ext3 con soporte para Linux extensiones. Tamaño máximo de archivo 16TB Tamaño máximo del sistema de archivos 1EB EXT3COW Ext3 con control de versiones Linux NFS Network File System. Sistema de archivos en red que permite Linux integrar los recursos compartidos en la red como directorios montados sobre el sistema de ficheros local. ReFS Resilient File System Windows Server Sucesor de NTFS presenta características clave para mejorar la 2012, 2016, resistencia a la corrupción, el rendimiento y la escalabilidad de 2019… los datos. Windows 8.1, 10 Permite detectar y corregir la corrupción del sistema de ficheros sin necesidad de desmontar el volumen. Fue introducido con Windows Server 2012 F2FS Flash-Friendly File System Linux 16 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Creado por Samsung para el núcleo de Linux teniendo en cuenta las características de los dispositivos basados en memorias flash NAND (unidades SSD, eMMC y SD). Soluciona problemas como el efecto bola de nieve, los árboles errantes y la sobrecarga de limpieza. FFS Fast File System BSD ZFS Zettabyte File System. Solaris, BSD, Desarrollado por Sun Microsystems para el sistema operativo Linux, Windows Solaris. Es un robusto sistema de ficheros de 128 bits, creado para superar las expectativas de cualquier sistema real, cuenta un sistema ligero de ficheros, nueva estructura de almacenamiento en disco y administración simple de espacio. Dispone de un sistema de auto reparación denominado "Self- healing" entre muchas otras características que permiten su implementación en grandes servidores. DOS Sistema de archivos de disquete. Apple II CDFS Compact Disc File System Formato de registro de Sistema de ficheros utilizado en los CDROM arranque UDF Sistema de ficheros utilizado en los DVDROM maestro: Sistema de archivos del estándar ISO9660. Generalmente permite el almacenamiento de los datos en una sóla sesión. Una vez cerrada la sesión no se permite la escritura de nuevos datos LFS Utilizado en discos sin registro de arranque maestro 17 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE HFS/HFS+ Hierarchical File System o sistema de archivos por jerarquía. MacOS de Apple® Sustituto de MFS ("Macintosh File System"). El símbolo + indica extendido, es decir, la última versión de HFS. Desarrollado por Apple®, admite el uso de direcciones de espacio en disco de 64 bits y permite utilizar bloques de asignación de archivos de 32 bits con el fin de potenciar la eficiencia del disco al reducir la utilización de espacio en volúmenes de gran tamaño o con un número elevado de archivos. Admite nombres de archivo más descriptivos, con una longitud máxima de 255 caracteres y codificación de texto Unicode para los nombres de archivo internacionales o con sistemas de escritura mixtos. Ofrece un formato opcional de sistema de archivos con distinción de mayúsculas y minúsculas para HFS+ que permite al administrador alojar sin problemas archivos utilizados por aplicaciones UNIX que requieren esta función. Linux SWAP Sistema de ficheros utilizado por la partición SWAP de Linux. Linux Filesystem Realmente no es un sistema de ficheros propiamente dicho porque no tiene la necesidad de crear ficheros ni directorios. Se suele limitar a una reserva de espacio de disco donde guardar las páginas de memoria en formato RAW. XFS Sistema de archivos de 64 bits utilizado por CentOS y RedHat Linux Linux Enterprise. OpenSUSE propone éste sistema de archivos para puntos de montaje como /home. Ideal para particiones LVM. Incorpora registro de bitácora (journaling) (buffer circular de bloques de disco utilizados como un diario/journal donde se escriben primero los cambios antes de que se actualicen los datos del disco) 18 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Comparativa ReFS y NTFS Comparativa ReFS y NTFS Característica ReFS NTFS Longitud máxima del nombre 255 caracteres Unicode 255 caracteres Unicode del archivo Longitud máxima del nombre 32 000 caracteres Unicode 32 000 caracteres Unicode de la ruta Tamaño de archivo máximo 35 PB (petabytes) 256 TB Tamaño máximo del volumen 35 PB (petabytes) 256 TB 3.4.3 GESTOR DE REDES Componente del sistema operativo que se encarga de: - Proporcionar una interfaz homogénea para acceder a todos los distintos sistemas de red proporcionados por el sistema operativo como pueden ser TCP/IP, IPX/SPX, etc - Acceder a los drivers de cada tipo de red particular de forma transparente. 3.4.4 GESTOR DE BLOQUES Los sistemas de archivos y otros dispositivos lógicos con acceso a nivel de bloques se suelen limitar a traducir las operaciones del formato del usuario de bloques que entiende el dispositivo y se las pasan a este gestor de bloques. - Dispositivos de Bloques: Almacenan la información en bloques direccionables de tamaño fijo (desde 512b a 64kb) La elección del tamaño del bloque es muy importante porque cada archivo ocupa como mínimo un bloque completo. Un bloque muy grande desperdiciará espacio y uno muy pequeño incrementará el número de lecturas/escrituras y favorecerá la fragmentación. Los dispositivos de bloque permiten leer o escribir en un bloque de forma independiente de los demás. Ejemplos: Discos Duros, Dispositivos de Estado Sólido. - Dispositivos de Caracteres: La información se transfiere como un flujo de caracteres no direccionables por lo que no tienen operaciones de búsqueda. Ejemplos: Terminales, impresoras en línea, teclados, ratones. 3.4.5 GESTOR DE CACHÉ 19 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Optimiza las E/S mediante la gestión de almacenamiento intermedio de memoria para dispositivos de tipo bloques. El tamaño de la caché de bloques varía dinámicamente en función de la memoria RAM disponible, y los bloques se escriben a los dispositivos según la política que se tenga definida. 3.4.6 MANEJADORES DE DISPOSITIVO DRIVERS Un controlador de dispositivo es un Interfaz software que permite al sistema operativo interactuar con un periférico. El driver proporciona una interfaz de alto nivel sobre los dispositivos traduciendo internamente las operaciones de control al lenguaje del propio dispositivo. Éste enfoque tiene las siguientes ventajas: - Oculta la complejidad del hardware subyacente al sistema operativo y a las aplicaciones. - Permite la ampliación de las capacidades futuras del sistema operativo. - Es más seguro al no permitir a las aplicaciones acceder directamente a los dispositivos. Los drivers son dependientes del hardware, normalmente proporcionados por el fabricante y específicos del sistema operativo (en particular del Kernel). Sin el driver el hardware no se puede utilizar. Generalmente tiene dos capas diferenciadas: - Interfaz estandarizada que debe adaptarse a las especificaciones dadas por el propio sistema operativo. - Interfaz con el dispositivo definida totalmente por el fabricante. Es la encargada de traducir las órdenes estandarizadas del sistema operativo a las características propias del hardware, aprovechando su diseño y arquitectura. 20 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Drivers WHQL: Drivers certificados por Microsoft (laboratorios de calidad de hardware de Windows – Windows Hardware Quality Laboratory) que garantizan que el hardware, periférico o software es compatible con el sistema operativo Microsoft Windows. Una vez que el driver es certificado es firmado por Microsoft. Algunos sistemas windows no permiten instalar drivers no firmados salvo que se desactive la exigencia de la firma de los drivers. 3.5 GESTIÓN DE PROCESOS Todos los programas que se vayan a ejecutar deben ser convertidos en, al menos, un proceso. El proceso está formado por: - Las instrucciones de un programa destinadas a ser ejecutadas - Su estado de ejecución en un momento dado (valores de los registros de la CPU). - Un conjunto de recursos del sistema asociados, incluyendo la memoria de trabajo (memoria reservada y los datos almacenados). - Las estructuras de información necesarias para su correcta planificación. El sistema operativo almacena ésta información en un registro especial llamado Bloque de Control de Procesos (BCP) o Process Control Block (PCB). 3.5.1 CONCEPTOS BÁSICOS DE PROCESOS Proceso Programa en ejecución con su propio código, estado actual, memoria, un conjunto de recursos de sistema asociados y otra información que permita al usuario su planificación. Trabajo Proceso administrado por la shell Tiempo de servicio (Ts): Tiempo dedicado a tareas productivas (cpu, entrada/salida). Ts=TCPU + TE/S Tiempo de retorno Turnaround (Tq) Tiempo que transcurre desde que se lanza un proceso hasta que finaliza. Es el tiempo que está un proceso en el sistema. Objetivo minimizarlo. Instante final (Tf) – Instante inicial (Ti) 21 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Tiempo de espera (Te) El tiempo que un proceso permanece en espera en las colas de espera. Te = Tq - Ts Tiempo de respuesta Tiempo que un proceso bloqueado tarda en entrar en ejecución. Uso de CPU Porcentaje de tiempo que la CPU está realizando trabajo útil. El objetivo de un buen gestor de procesos es maximizar este valor. Aunque conceptualmente es un valor entre el 0% y el 100% en sistemas reales se ha observado que oscila entre el 40% y el 90%. Productividad o rendimiento (throughput) Número de procesos terminados en una unidad de tiempo. El objetivo es maximizarlo. Número de procesos/unidad de tiempo Quantum Tiempo mínimo de uso del procesador por parte de un proceso. Tick Fracción de tiempo durante la cual se puede realizar trabajo útil (uso de la CPU sin ser interrumpido). Está definido por una señal emitida por el temporizador (timer) de forma periódica. Su frecuencia se establece al inicio del sistema. En Linux un tick dura 1 ms, en Windows entre 10 y 15 ms. Tiempo de núcleo o kernel Tiempo ocupado por el sistema en el espacio de núcleo implementando, entre otras cosas, la política de planificación y los cambios de contexto. Tiempo desocupado (idle) Tiempo en el que la cola de procesos preparados está vacío y no puede realizarse ningún trabajo. 22 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 3.5.2 NIVELES DE PLANIFICACIÓN - Planificación a largo plazo (planificador de trabajos): Realiza el control de admisión de trabajos a ejecutar. Es el encargado de crear los procesos necesarios para realizar los trabajos. Utilizada habitualmente en sistemas de procesos por lotes (batch). - Planificación a medio plazo (planificador de procesos inactivos): Selecciona qué procesos se añaden o se suspenden (expulsión a swap) de memoria principal. Sólo existe en los sistemas de tiempo compartido o donde existe gestión de memoria principal. - Planificación a corto plazo: Selecciona el siguiente proceso a ejecutar. Se lleva a cabo decenas de veces por segundo. El planificador a corto plazo se denomina Despachador (Dispatcher) Transición de estado de un proceso entre planificadores 1. El planificador a largo plazo se encarga de admitir un nuevo proceso: a. Transición de Nuevo → Preparado. 2. El planificador a medio plazo gestiona la activación y bloqueo de un proceso relacionado con eventos. a. Transición En ejecución → Bloqueado b. Transición Bloqueado → Preparado. 3. El planificador a corto plazo decide el proceso a activar entre los procesos que están listos para ejecutarse y detiene a aquellos que exceden su tiempo de procesador. a. Transición Preparado → En ejecución. b. Transición En ejecución → Preparado. 23 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 3.5.3 TIPOS DE PLANIFICACIÓN Algoritmo apropiativo: El sistema operativo puede expulsar a un proceso de la CPU. También conocido como expulsivo o expropiativo. Algoritmo No Apropiativo: El proceso en ejecución conserva el uso de la CPU hasta que termina. No se permite la expulsión. 3.5.4 TIPOS DE ALGORITMOS DE PLANIFICACIÓN Los objetivos de un buen planificador son: - Ser justo - Maximizar el rendimiento - Ser predecible - Minimizar la sobrecarga - Equilibrar el uso de recursos - Evitar la postergación indefinida. - Favorecer el uso esperado del sistema - Dar preferencia a los procesos que podrían causar bloqueo - Favorecer a los procesos con un comportamiento deseable - Degradarse suavemente FCFS (First-Come, First-Served): Primero en llegar, primero en ser servido. También llamado FIFO (del inglés First In, First Out). Algoritmo no apropiativo en el que el primer proceso que llega se ejecuta hasta finalizar. Una vez terminado se ejecuta el siguiente. Penaliza a los procesos cortos si tienen por delante procesos largos. SJF (Shortest Job First). El trabajo más corto primero Algoritmo no apropiativo. Selecciona el proceso más corto de los que hay esperando en la cola. En el caso de que dos procesos tengan la misma duración utiliza el método FIFO anterior. Sólo se puede aplicar si se conoce de antemano la duración de cada trabajo. Puede provocar inanición: Los procesos largos pueden dejar de ejecutarse si continuamente van llegando procesos cortos. SRTF (Short Remaining Time Next). 24 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Versión apropiativa de SJF. Al igual que SJF, selecciona el proceso más corto de lo que encuentra en la cola sin embargo puede expulsar un proceso en ejecución si entra uno más corto. También puede provocar inanición: Un proceso largo puede ser expulsado muchas veces y no llegar a terminar por la continua llegada de procesos más cortos. Round Robin. Asigna a cada proceso un tiempo máximo de uso de la CPU tratando a todos los procesos de forma equitativa. Pasado el tiempo y si el proceso no ha terminado es desalojado y retornado al estado de listo. Es un algoritmo de planificación circular, organizado mediante una cola FIFO circular (volviendo siempre al primer proceso una vez terminado con el último). A cada proceso se le asigna un intervalo de tiempo llamado Quantum o Cuanto cuya duración varía según el sistema (Una regla empírica establece que el 80% de los procesos tienen que durar menos tiempo que el quantum definido). Round Robin egoísta Variación de Round Robin con dos colas. La cola de procesos “aceptados” y la cola de procesos “nuevos” donde ingresan los procesos nuevos que han de ser ejecutados. La prioridad de los procesos de la cola de procesos “nuevos” se incrementa a mayor velocidad que la prioridad de los procesos de la cola de “aceptados”. De tal forma que cuando la prioridad de un proceso de la cola de “nuevos” alcanza la prioridad de los procesos de la cola de “aceptados” el proceso nuevo asciende a la cola de aceptados. 3.5.5 COMPARATIVA DE ALGORITMOS DE PLANIFICACIÓN El algoritmo SJF presenta mejor promedio, tiene un buen tiempo de espera y tiempo de retorno. FCFS y SRTF tienen unos tiempos de espera similares, pero SFJ sigue siendo mejor en este aspecto. Round Robin tiene el mejor tiempo de espera para los procesos, pero por el contrario su tiempo de retorno es el más alto debido a la expulsión de procesos cuando se termina el quantum. También presenta una ligera pérdida de capacidad del microprocesador para la gestión del propio planificador. 25 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 3.6 GESTIÓN DE MEMORIA PRINCIPAL Todo proceso que vaya a ser ejecutado necesita residir en la memoria principal del ordenador bien con todo su código y datos o sólo la parte que se va a necesitar inmediatamente. Para ello el sistema operativo dispone de un Gestor de Memoria que se encarga de gestionar la memoria disponible entre los procesos para que puedan ser ejecutados sin conflictos. Objetivos del Gestor de memoria: – Administrar la memoria disponible, mantener un registro de las zonas libres de memoria y las zonas ocupadas por los procesos. – Ofrecer a cada proceso un espacio lógico propio. – Cargar los programas de disco a memoria y volcar los datos de memoria a disco. – Proporcionar protección entre procesos. Evita que un proceso referencie la memoria de otro proceso sin permiso. Evita que un error de programación de un proceso o un código malicioso interfiera en la operación de otro. o Monoprogramación: Protección del espacio de memoria del sistema operativo. o Multiprogramación: Protección del sistema operativo y de los espacios de memoria de los procesos entre sí. Error clásico de Windows que se produce cuando un proceso intenta acceder a una zona de memoria protegida – Permitir que los procesos compartan memoria. – Dar soporte a las regiones del proceso y transformar las referencias de memoria de programa a su nueva ubicación: o Transformación estática: o Transformación dinámica: – Maximizar el grado de multiprogramación. – Proporcionar a los procesos mapas de memoria muy grandes. 3.6.1 ALGORITMOS DE REEMPLAZO DE PÁGINAS DE MEMORIA Óptimo Es un algoritmo teórico. Se utiliza como referencia de comparación del resto de algoritmos. 26 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Su funcionamiento sería aquel que predijera con exactitud qué páginas serán menos referenciadas en el futuro para poder eliminarlas de memoria con el mínimo perjuicio al rendimiento. Es decir, el algoritmo que produjera el mínimo número de cambios de página para un trabajo dado. FIFO, First In, First Out. Primera en entrar, primera en salir Las páginas se almacenan en una cola de tal forma que cuando se necesita espacio se elimina siempre la más antigua independientemente de lo que se use o lo que se prevea que se va a utilizar. En la práctica no tiene un comportamiento aceptable. Presenta la llamada Anomalía FIFO o Anomalía de Belady. Belady demostró que para determinadas secuencias de páginas aumentar el número de marcos de página en el sistema puede generar un mayor número de errores de página. Segunda oportunidad (Reloj) Es una evolución del algoritmo FIFO. En este caso cuando una página debe ser sacada se toma la primera en la cola, y en vez de sacarla, consulta el valor de un bit de referencia. En caso de estar fijado (en 1) se cambia el bit a 0 y se lo coloca al final de la cola, actualizando su tiempo de carga como si recién hubiera llegado al procesador. De esta forma, se le da una segunda oportunidad. Si el bit se encuentra sin fijar(en 0), la página se saca de memoria. Cada vez que la MMU accede a una página, fija su bit de referencia a 1. Para esto es necesario soporte para bit de referencia por hardware. De páginas de reloj (CLOCK) (Reloj mejorado) Existe una mejora en el algoritmo de segunda oportunidad que presenta una mejora en la implementación. Es el algoritmo del CLOCK, que lo que hace es tener una lista circular, de forma que al llegar al último elemento de la lista, pasa automáticamente al primero. Los elementos no se mueven al final de la cola cuando son accedidos, simplemente se cambia el bit de referencia a 0. Esto nos evita tener que hacer movimientos de punteros en el caso de implementarlo con una lista enlazada. De hecho, se puede implementar con un array perfectamente, ahorrando así memoria. Not Recently Used, NRU No usada recientemente Cuando una página es referenciada, fija el bit de referencia para esa página. Similarmente, cuando una página es modificada, fija su bit de modificación. Usualmente estas operaciones son realizadas por el hardware, aunque puede hacerse también por software. En un tiempo fijo, el 27 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE sistema operativo pone en 0 los bits de referencia de todas las páginas, de modo que las páginas con su bit de referencia en 1 son las que fueron referenciadas dentro del último intervalo de reloj. Cuando una página debe ser reemplazada, el sistema operativo divide las páginas en cuatro categorías: Categoría 0: No referenciada, No modificada Categoría 1: No referenciada, modificada Categoría 2: referenciada, No modificada Categoría 3: referenciada, modificada Las mejores páginas para cambiar son las que se encuentran en la categoría 0, mientras que las peores son las de la categoría 3. Se desaloja al azar una página de la categoría más baja que no esté vacía. Este algoritmo se basa en la suposición de que es mejor desalojar una página modificada a la que no se ha hecho referencia en al menos un tic de reloj, en vez de una página limpia que se está usando mucho. Favorece a las páginas que fueron usadas recientemente LRU Least Recently Used Menos Usada Recientemente Este algoritmo difiere del de 'No usada recientemente' en el hecho de que aquel solo se fija en el intervalo de tiempo desde que se pusieron en 0 los bits de referencia de las páginas, mientras que el algoritmo de 'Menos usada recientemente' intenta proveer un comportamiento casi óptimo mediante la observación de las páginas que menos fueron usadas recientemente. Este tipo de páginas, estadísticamente son las que tienen menor probabilidad de ser usadas nuevamente. Aunque este algoritmo provee un buen comportamiento en teoría, es caro de implementar, en cuanto a recursos consumidos. Hay varias implementaciones que intentan mantener bajo el costo y lograr un rendimiento considerable. Un método consiste en tener una lista enlazada y ordenada de todas las páginas en memoria. En el final de la lista está la página menos usada recientemente, y al principio la más usada recientemente. El costo alto de este método es porque cada vez que se referencia una página debe ser movida en la lista, algo que consume mucho tiempo. Otra forma, que requiere soporte de hardware, consiste en tener un contador que es incrementado en cada instrucción del CPU. Cada vez que una página es accedida, gana el número del contador en ese momento. Cuando una página debe ser retirada de memoria, simplemente hay que buscar cuál es la que tiene el menor número, que es la que fue usada hace más tiempo. En el presente no existen contadores tan grandes para permitir esto. Debido al alto costo del LRU, se proponen algoritmos similares, pero que permiten implementaciones menos costosas. Aging. Envejecimiento 28 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Desciende del algoritmo "No usada frecuentemente", con algunas modificaciones necesarias para tener en cuenta en qué momento fue usada frecuentemente una página, y no solamente cuántas veces fue. En vez de solo incrementar el contador de la página cuando es referenciada, primero se desplaza a la derecha (se divide entre 2) y después sí se suma 1. Por ejemplo, si los bits de referencia de una página fueron 1, 0, 0, 1, 1 y 0 en los últimos 6 ticks del reloj, el contador se verá así: 10000000, 01000000, 00100000, 10010000, 11001000, 01100100. De esta forma, cuando se necesite eliminar una página de memoria, se eliminará la que tenga el número más pequeño en su contador. Este algoritmo consigue una buena aproximación al algoritmo óptimo. 3.7 GESTIÓN DE ALMACENAMIENTO SECUNDARIO/SISTEMA DE GESTIÓN DE ARCHIVOS Un sistema de gestión de archivos es el componente del sistema operativo que proporciona la organización de la creación, el almacenamiento y el acceso a los archivos. Los objetivos principales del sistema de gestión de ficheros son: - Reemplazar la estructura física de los datos almacenados con un modelo lógico fácil de usar, que se implementa en forma de un árbol de directorios que se muestra en utilidades como Windows Explorer para Windows, Konqueror (Linux KDE), Nautilus etc. El elemento básico de este modelo es un archivo que, al igual que el sistema de archivos en su conjunto, se puede caracterizar tanto por su estructura lógica como física. Deben distinguirse los términos: - Sistema de archivos: Principios de acceso a los datos organizados como archivos. - Sistema de gestión de archivos: Implementación específica del sistema de archivos, es decir conjunto de módulos de software que proporcionan trabajo con archivos en un sistema operativo específico. 29 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 3.7.1 TIPOS DE ARCHIVO - Archivo estándar/ ordinario: contienen información con la que trabaja el usuario. El contenido de un archivo ordinario está determinado por la aplicación que trabaja con él. Pueden ser de dos tipos: o Archivos ejecutables: son programas escritos en el lenguaje de comandos del sistema operativo y realizan algunas funciones del sistema (tienen extensiones.exe,.com,.bat). o Archivos de datos: todos los demás tipos de archivos: textos y documentos gráficos, hojas de cálculo, bases de datos, etc. - Directorio: Archivos especiales que contienen referencias a otros archivos o directorios. - Enlaces físicos os duros (hard links): Asociación adicional de otro nombre y ubicación a un archivo existente. Se realiza a nivel de i-nodo por lo que el archivo original tiene constancia de los enlaces duros que le apuntan. Si se elimina un archivo se decrementa el número de enlaces duros. Sólo cuando éste número llega a cero se borra realmente el archivo. No se pueden hacer enlaces duros a directorios ni a diferentes sistemas de ficheros, particiones y ubicaciones de red. - Enlaces simbólicos: Enlace a la ruta del archivo original. Parecido a una acceso directo de Windows. Si se pueden hacer enlaces simbólicos a directorios y ubicaciones de red. Comando de Linux para crear enlaces: ln [opciones] rutaArchivoOriginal rutaEnlace 🡪 Crea un enlace duro ln –s [opciones] rutaArchivoDirectorioOriginal rutaEnlace 🡪 Crea una enlace simbólico - Archivos especiales: Representan dispositivos físicos de entrada/salida utilizados para unificar el mecanismo de acceso a archivos y dispositivos externos. o Archivo que apunta a un dispositivo de tipo bloque. o Archivo que apunta a un dispositivo tipo carácter. o Archivo de tubería llamado named pipe para la comunicación de procesos o Archivo socket como las tuberías con nombre. El tipo de archivo en Windows está asociado a la extensión del mismo. 30 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE En Linux no existen per se las extensiones de nombre de archivo (el punto es un carácter más salvo si es el primer carácter del archivo que lo convierte en oculto). Para conocer el tipo y otros detalles de archivo en Linux se utiliza el comando: file nombreArchivo 3.8. PLANIFICACIÓN DE DISCO/PLANIFICACIÓN E/S Método mediante el cual los sistemas operativos deciden el orden en el que se enviarán las peticiones de lectura y escritura al subsistema de disco. Los objetivos deseables de los métodos de planificación de disco son: - Minimizar el tiempo de búsqueda (seek time) en el disco. - Dar prioridad a las peticiones de E/S de ciertos procesos frente a otros menos prioritarios. - Asignar una parte del ancho de banda de lectura de disco a cada proceso. - Garantizar que no se produzcan deadlines. Las peticiones deben atenderse antes de un tiempo máximo determinado. 3.8.1 ALGORITMOS DE PLANIFICACIÓN DE DISCO Los algoritmos de planificación de disco más importantes son: - FCFS (First Come, First Served): Atiende las peticiones por orden de llegada dando preferencia a las que han llegado antes. - SSF (Shortest Seek First): Atiende la petición más cercana desde la ubicación actual. - Scan (algoritmo del ascensor): Atiende a las peticiones que se va encontrando en el sentido en el que se mueven las cabezas de lectura/escritura. - C-Scan (Scan circular): Similar al Scan pero al llegar al extremo vuelve al principio sin servir ninguna solicitud. Recorre el disco en un solo sentido. - Scan de N-pasos: Scan de N registros cada vez. Es un Scan que sólo da servicio a aquellas peticiones que se encuentran en espera cuando comienza un recorrido particular. - F-Scan: Scan de N pasos, donde N es igual a la longitud de la cola de peticiones al comienzo del ciclo de Scan. 31 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE - Planificación aleatoria (random scheduling, RSS): La planificación no sigue ningún orden establecido si no que se atienden las peticiones de forma aleatoria. Se suele utilizar en procesos de análisis y simulación. - FIFO (First In, First Out, el primero que entra es el primero en salir), también conocido como FCFS (First Come First Served, el primero en venir es el primero en ser servido). Atiende las peticiones en el orden estricto de llegada. - LIFO (Last In, First Out, el último que entra es el primero en salir). Atiende las peticiones en el orden inverso a la llegada. Se atienden primero las últimas que han llegado. - SSTF Shortest seek time first (la búsqueda más corta primero): Mejora de FIFO. La unidad mantiene un buffer de peticiones entrantes junto al cilindro donde se encuentran. Se atenderán primero las peticiones que se encuentren en el cilindro más cercano al que se encuentra en cada momento el cabezal. Éste algoritmo puede provocar inanición de peticiones. Si llegan muchas peticiones cercanas al cabezal las que están alejadas pueden ser ignoradas. - SCAN: Algoritmo del ascensor. Existen algunas variantes como C-SCAN, LOOK y C-LOOK). - N-Step-SCAN: SCAN de N registros simultáneos. - FSCAN: N-Step-SCAN donde N es igual al tamaño de la cola al principio del ciclo de SCAN. - CFQ, Completely Fair Queuing (cola completamente justa), parecido al Round Robin de la planificación de procesos. - Planificación anticipada (anticipatory scheduling): Realiza una demora controlada antes de realizar las peticiones de Entrada/Salida para reordenar las operaciones de búsqueda mejorando el desempeño y reduciendo de manera significativa las operaciones de petición de los discos duros. Está diseñado específicamente para optimizar los subsistemas de discos pequeños o bien muy lentos, como es el caso de discos duros con estándar SCSI-1 y algunos antiguos modelos de IDE/ATA. No se utiliza actualmente puesto que los discos duros modernos (SCSI-2, PATA y SATA) utilizan TCQ (Tagged Command Queuing), que es una tecnología consiste en la optimización de peticiones de lectura/escritura desde la propia unidad de disco duro permitiendo realizar múltiples peticiones de lectura/escritura. 32 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Es totalmente inapropiado para unidades de almacenamiento de alto desempeño, así como en sistemas RAID. 3.8.2 MÉTODOS DE ACCESO Técnicas utilizadas para almacenar y recuperar datos utilizada por el sistema operativo. - BSAM Método de Acceso Básico Secuencial: Lee los bytes del archivo en orden empezando desde el principio. No se pueden efectuar saltos en la posición del archivo por lo que los datos se almacenan en el orden en el que llegan. Utilizan conjuntos de datos secuenciales. - BDAM Método de Acceso Directo: Apareció con la llegada de los dispositivos de acceso directo (discos magnéticos). También conocido como acceso aleatorio. - Acceso indexado: Permite buscar archivos sin ningún orden utilizando listas con un campo clave o más datos del archivo. Se utiliza en búsquedas para encontrar cierta posición o cierto valor en un archivo. Permite acelerar las búsquedas facilitando su procesamiento. No permite recorrer los archivos secuencialmente, solo guarda la dirección de un archivo y la almacena, no guarda una dirección del siguiente archivo por lo cual tiene que llegar a él por otro método. - ISAM Método de Acceso Secuencial Indizado: Almacena registros de forma secuencial y permite tanto el procesamiento secuencial como el aleatorio. Sus índices permiten el acceso a los registros seleccionados sin tener que buscar el archivo completo. Utiliza dos métodos de acceso: método de acceso secuencial indizado básico (BISAM) y método de acceso secuencial indizado en cola (QISAM). Es el utilizado por Windows y por Linux 3.8.2 ASIGNACIÓN DE ESPACIO DE ALMACENAMIENTO El subsistema de archivos se debe encargar de localizar espacio libre en los medios de almacenamiento para guardar archivos, borrarlos, renombrarlos o agrandarlos. Normalmente utiliza estructuras especiales y jerarquizadas llamadas directorios que contienen la lista de archivos creados y por cada archivo una serie de direcciones que contienen los datos de los mismos. 33 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Fragmentación externa: se produce cuando los archivos han ocupado posiciones no contiguas de disco dejando demasiados bloques libres de pequeño tamaño, en los que no "caben" nuevos archivos. Fragmentación interna: Es la pérdida de espacio en disco producida porque el tamaño de un determinado archivo puede ser inferior al tamaño del clúster. Los archivos ocupan al menos un clúster. No puede haber dos archivos distintos en el mismo clúster. La media de fragmentación interna de un sistema de ficheros es el 50% del tamaño del cluster por cada archivo (De media el último bloque de un archivo ocupará el 50%). Por eso los tamaños de bloque muy grandes no son recomendables para sistemas que contengan muchos archivos pequeños. 3.8.3. MÉTODOS DE ASIGNACIÓN DE ESPACIO - Asignación contigua: Cada directorio contiene una tabla con los nombres de sus archivos, la dirección del bloque inicial de cada archivo y la longitud del área asignada al archivo (número de bloques). Ejemplo: o Un archivo comienza en el sector 12 y mide 10 bloques, cuando el archivo sea accedido, el brazo se moverá inicialmente al bloque 12 y de ahí hasta el 22. o Cuando el archivo es borrado y el hueco libre es ocupado por otro archivo más pequeño se produce fragmentación externa haciendo necesaria la desfragmentación (compactación) del sistema de ficheros. Es necesario declarar el tamaño máximo del archivo antes de crearlo. o Permite el acceso secuencial y directo. o Número de búsquedas y tiempo de búsqueda mínimos para acceder a archivos contiguos. - Asignación enlazada/encadenada: Los directorios contienen una tabla con los nombres de sus archivos y un puntero al primer y último bloque del archivo. o Cuando un archivo es leído, el brazo de disco se desplaza a la dirección del primer bloque. El bloque contiene los datos iniciales junto con un puntero (dirección) del siguiente bloque. Una vez leídos los datos el brazo se desplaza al siguiente bloque continuando con la lectura y así sucesivamente. o La asignación encadenada permite que los bloques no sean contiguos creando una lista enlazada. o No genera fragmentación externa. No se necesita declarar el tamaño del fichero en el momento de crearlo. No es necesario compactar el disco. 34 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE o Ocupa más espacio por el espacio ocupado por los punteros. La solución es unir los bloques en cúmulos o clústers y asignar clústers a los archivos en lugar de bloques. - Indexada: El directorio contiene un bloque de índices para cada archivo, con punteros hacia todos los bloques que lo componen. o El acceso directo es muy ágil, cuando se quiere leer un archivo o cualquiera de sus partes, se realizan dos accesos: uno al bloque de índices y otro a la dirección deseada. o Ventajas: Ideal para archivos grandes o Desventajas: Al sacrificar varios bloques para almacenar los punteros de los bloques de los archivos se desperdicia mucho espacio. Algo que se incrementa con archivos pequeños porque presentan una relación muy costosa entre bloques asignados a índices y bloques asignados a datos. 3.9. SISTEMA DE COMUNICACIONES El sistema de comunicaciones es el componente de un sistema operativo que permite el intercambio de información entre procesos y programas que se ejecutan localmente con procesos y programas que se ejecutan de forma remota. El sistema operativo es el responsable de controlar el envío y recepción de la información, crear y mantener la comunicación para que las aplicaciones envíen y reciban información, y crear y mantener conexiones virtuales entre aplicaciones locales y aplicaciones remotas Funciones: - Gestionar los interfaces de red. - Crear y mantener puntos de comunicación que sirvan a las aplicaciones para enviar y recibir información. - Crear y mantener conexiones virtuales entre aplicaciones locales y remotas. - Comunicación de procesos locales. Los procesos ejecutándose concurrentemente en un sistema operativo pueden ser: - Independientes: Si no afectan ni son afectados por otro proceso en el sistema. - Cooperantes: Si afectan o son afectados por otro proceso en el sistema. Para la comunicación entre proceso el sistema de comunicaciones provee de varios sistemas de comunicación: 35 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Método Descripción Sistema operativo Es el método de comunicación más lento Archivo debido a la sobrecarga de leer y escribir en Todos los sistemas operativos. el propio fichero. Forma limitada de comunicación entre procesos. Es una notificación enviada a un proceso para informarle de un evento. Cuando se manda una señal a un proceso el proceso ejecuta el manejador de la señal si lo tiene y si no lo tiene se ejecuta la acción por defecto para esa señal. El comando kill de Unix envía una señal: Kill(pid, señal) Algunas de las señales especificadas en la La mayoría de los Sistemas Single Unix Specification son: Operativos; algunos, como Windows, solo Señal - SIGABRT: Proceso ABORTADO implementan señales en las - SIGINT: Interrupción producida al librerías de C run-time de C y pulsar Control+C. Por defecto aborta actualmente no proveen soportes el proceso pero puede ser para su uso como técnica de IPC. reprogramada. - SIGKILL: Detención inmediata del proceso. No reprogramable - SIGUSR1: Señal definida por el usuario para ser usada en aplicaciones. - SIGUSR2: Señal definida por el usuario para ser usada en aplicaciones. Las señales pueden ser especificadas por su nombre de constante o por su número 36 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Por ejemplo: Kill -9 pid = kill –SIGKILL pid El comando kill –l muestra las señales disponibles Sistema de comunicación orientado a la La mayoría de los sistemas conexión que permite intercambiar cualquier operativos. flujo de datos de manera fiable y ordenada. Existe una variante llamada Unix Socket Definido por dos direcciones ip (local y remota) domain sockets/IPC sockets que identifican el dispositivo origen y remoto, (Interprocess Communication un protocolo de transporte y dos puertos (local Sockets) orientados a la y remoto) que identifican los programas dentro comunicación de procesos dentro de los dispositivos origen y destino. del mismo equipo. Cadena de procesos conectados de tal forma que la salida de un proceso es la entrada del siguiente siguiendo el modelo productor/consumidor. Tienen asociado un fichero en memoria principal. Tubería sin Las tuberías sin nombre son temporales y se Todos los sistemas POSIX. nombre/Pipes eliminan cuando no están siendo utilizadas ni por procesos productores ni por procesos consumidores. Permiten la comunicación y sincronización entre un proceso que crea la tubería y los procesos descendientes. La tubería es creada por el sistema de archivos y por lo tanto no son temporales. Se manejan mediante llamadas al sistema operativo. Tubería con Todos los sistemas POSIX. nombre Puede ser utilizada por cualquier proceso siempre que disponga de los permisos adecuados. En Linux se crea con el comando mkfifo. 37 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Un semáforo es una variable especial (tipo abstracto de datos) que constituye el método clásico para restringir o permitir el Semáforo acceso a recursos compartidos mediante Todos los sistemas POSIX. tres operaciones (init, wait, y signal) Fueron inventados por Edsger Dijkstra en 1965. Requiere que los procesos comunicantes establezcan una región de memoria compartida. Los procesos que deseen comunicarse a través Memoria de una región de memoria compartida ya Todos los sistemas POSIX. compartida creada deben agregar esa región a su espacio de direcciones. La forma y localización de los datos está gestionada por los propios procesos. Permite comunicar y sincronizar sus acciones sin necesidad de compartir memoria. Usado en los paradigmas MPI, Java Mensajes Funciones básicas: send y receive. RMI, CORBA y otros. Los mensajes pueden tener un tamaño fijo o variable. La entrada/salida mapeada en memoria Todos los sistemas POSIX. Windows Mapa de consiste en utilizar el mismo espacio de también es apto para esta técnica, Memoria direcciones para direccionar tanto posiciones de las API usadas son específicas de memoria como dispositivos físicos. esta plataforma. Estructura de datos gestionada por el kernel, en la cual van a poder escribir y leer los procesos Cola de La mayoría de los Sistemas que se ejecuten en el sistema. Los mecanismos Mensajes Operativos. de sincronización para que no se produzca colisión son responsabilidad del kernel. 38 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Zona de la memoria RAM del ordenador asociada con un puerto físico o un canal de comunicación. Proporciona un espacio para el Puertos Algunos Sistemas Operativos. almacenamiento temporal de la información que se va a transferir entre la localización de memoria y el canal de comunicación. 3.10 GESTOR DE RECURSOS Para que un programa pueda realizar las tareas solicitadas por el usuario requiere de la asignación de recursos para cada una de esas tareas. El sistema operativo administra los recursos que se deben asignar a los programas en ejecución. El sistema operativo administra todos los recursos del sistema incluyendo: - CPU - Dispositivos de entrada y salida - Memoria principal (acceso directo) - Memoria secundaria (virtual) - Procesos o programas en ejecución - Resto de recursos del sistema. 39 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 4. FUNCIONES DE UN SISTEMA OPERATIVO Las funciones del sistema operativo han sido tratadas en la propia estructura pero a modo resumen podemos listar las siguientes: - Suministro del interfaz de usuario - Administración de recursos - Administración de archivos - Administración de tareas - Servicio de soporte y utilidades. 40 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 4.1. 32 BITS VS 64 BITS Las arquitecturas de los ordenadores han ido evolucionando a lo largo del tiempo. Arquitecturas de 8 bits, 16 bits, 32 bits, 64 bits tienen que llevar asociados sistemas operativos que aprovechen las características que brindan las nuevas arquitecturas. Actualmente conviven las arquitecturas de 32 y 64 bits. La mayor diferencia es la cantidad de memoria que se puede direccionar. - A mayor número de bits de ancho de banda del bus de direcciones 🡪 Mayor capacidad de memoria direccionable por lo que los sistemas operativos podrán reconocer mayor cantidad de memoria RAM. o 232 = 4.294.967.296 = 4 GB. Un sistema operativo de 32 bits puede reconocer hasta 4GB de memoria RAM. Existen trucos para reconocer más memoria RAM pero un mismo proceso no podrá utilizar más de 3GB de RAM o 264 = 18.446.744.073.709.551.616 = 16 exabytes Es importante destacar que por lo general un sistema operativo de 64 bits puede ejecutar programas compilados para arquitecturas de 32 bits del mismo sistema operativo. Pero no al revés, un sistema operativo de 32 bits no puede ejecutar aplicaciones compiladas para entornos de 64 bits. Un sistema operativo de 32 bits si puede hacer llamadas a procedimientos remotos (RPC) en otro equipo que tenga un sistema operativo de 64 bits. 41 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE Memoria RAM soportada por distintos sistemas operativos actuales Versión X86 X64 Windows Server 2019 - 64GB Essentials Windows Server 2019, 2016 - 24TB Standard Windows 10 Enterprise 4GB 6TB Windows 10 Educacion 4GB 2TB Windows 10 Pro para 4GB 6TB Workstation Windows 10 Pro 4GB 2TB Windows 10 Home 4GB 128GB Mac OS X from 10.10 18 Exabyte Red Hat Linux 8 64TB - Otra diferencia importante es el conjunto de instrucciones ampliadas de microprocesador para hacer uso del incremento de bits del bus de datos haciendo que se pueda trabajar con números más grandes por ciclo de reloj. Un ordenador de 64 bits puede ejecutar aplicaciones de 32 bits WOW64: Windows-on-Windows 64-bit. Subsistema de Microsoft Windows que permite ejecutar aplicaciones de 32 bits en sistemas operativos de 64 bits. Apareció por primera vez en Windows XP 64 bits edición y está presente en todas las versiones posteriores de 64 bits. Se implementa mediante tres librerías de enlace dinámico (DLL): - Wow64.dll: Interfaz principal que traduce las llamadas de 32 y 64 bits. - Wow64win.dll: Ofrece los puntos de entrada para las aplicaciones de 32 bits. - Wow64cpu.dll: Cambia el modelo de procesador entre 32 y 64 bits. 42 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 5. TIPOS DE SISTEMAS OPERATIVOS Los sistemas operativos pueden ser de distintos tipos en función de la catalogación que utilicemos. 5.1 SISTEMAS OPERATIVOS POR SU ESTRUCTURA - Estructura monolítica: Es la estructura de los primeros sistemas operativos, consistía en un sólo programa desarrollado con rutinas entrelazadas que podían llamarse entre sí. Por lo general, eran sistemas operativos hechos a medida, pero difíciles de mantener. - Estructura jerárquica: Conforme las necesidades de los usuarios aumentaron, los sistemas operativos fueron creciendo en complejidad y funciones. Esto llevó a que se hiciera necesaria una mayor organización del software del sistema operativo, dividiéndose en partes más pequeñas, diferenciadas por funciones y con una interfaz clara para interoperar con los demás elementos. Ejemplo: MULTICS. - Máquina virtual: Integran distintos sistemas operativos dando la sensación de ser varias máquinas diferentes. Presentan una interfaz a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estas máquinas no son máquinas extendidas, son una réplica de la máquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina extendida al usuario. Ejemplos: VMware y VM/CMS - Microkernel o Cliente-Servidor: Aíslan del núcleo las operaciones de gestión de memoria, entrada/salida, sistema de archivos, etc. Éste aislamiento incrementa la seguridad, la tolerancia a fallos y la portabilidad entre plataformas de hardware. El núcleo distribuye las diferentes tareas en porciones de código modulares y sencillas. Ejemplos: MAC OS X o AIX. 5.2 SISTEMAS OPERATIVOS POR LAS OPERACIONES QUE IMPLEMENTAN EN SU NÚCLEO El modo de ejecución del procesador determina qué conjunto de instrucciones y a qué recursos del procesador se puede acceder. Los procesadores ofrecen, como mínimo, dos modos de funcionamiento del procesador: ▪ Modo privilegiado/Modo supervisor: Permite el acceso a todo el conjunto de instrucciones que ofrece el procesador y a todos los recursos del sistema. Incluye también 43 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE el conjunto de instrucciones del modo no privilegiado Es el modo en el que se ejecuta el núcleo de un sistema operativo. ▪ Modo no privilegiado: Permite acceder a un subconjunto de las instrucciones que ofrece el procesador, es el modo en el que se ejecutan los procesos. Los sistemas operativos se pueden clasificar en base a la cantidad de funcionalidades propias del sistema operativo que se implementan en su núcleo. En general distinguimos tres tipos: Monolíticos: gestionan los cuatro componentes fundamentales del sistema operativo en modo supervisor, esto incluye, la planificación de procesos, la administración de la memoria principal, la gestión de E/S y el administrador de ficheros. Micronúcleos: implementan en su núcleo únicamente la planificación de procesos, la gestión de interrupciones (la parte básica fundamental de la gestión de E/S que necesariamente se tiene que realizar en modo privilegiado) y la comunicación entre procesos. Por tanto, la administración de memoria principal, la gestión de la E/S y la gestión de ficheros se realiza en modo usuario. En este tipo de sistema operativo hay procesos especiales propios del sistema operativo que implementan dichas funcionalidades en modo usuario y se denominan proceso servidor. Híbrido: a mitad de camino entre monolítico y micronúcleo, incluyen la gestión de dispositivos de E/S en modo supervisor con el fin de mejorar el rendimiento del sistema. Unikernel: Las aplicaciones se ejecutan en modo supervisor, dentro del espacio del núcleo del Sistema Operativo. Por tanto, la totalidad del código se ejecuta en modo privilegiado. Los procesos no invocan llamadas al sistema pues tienen acceso directo a los recursos del computador. El argumento para este diseño es el rendimiento a cambio de sacrificar la fiabilidad. Sólo es aplicable a sistemas de propósito muy específico. En número de líneas de código, el núcleo monolítico es mayor que el micronúcleo, al implementar más componentes del sistema operativo que permiten la gestión del computador en el espacio del núcleo, es decir, en modo privilegiado. Los sistemas operativos monolíticos ofrecen mejor rendimiento que los micronúcleos, pero los micronúcleos son más fiables, pues un fallo de programación en el núcleo lleva al traste con la ejecución del sistema. 44 Centro de Estudios TIC www.cetic.edu.es Técnico Auxiliar de Informática de la AGE 5.3 SISTEMAS OPERATIVOS POR LOS SERVICIOS QUE OFRECEN La clasificación de Sistemas Operativos por servicio se refiere al punto de vista del usuario final. Y se clasifica por tres clases: - Por el número de usuarios. - Por el número de tareas - Por el número de procesadores 5.4 SISTEMAS OPERATIVOS POR EL NÚMERO DE USUARIOS - Monousuario: Sistema operativo que solo puede ser ocupado por un único usuario en un determinado tiempo. - Multiusuario: proveer servicio y procesamiento a múltiples usuarios simultáneamente. La acción se produce estrictamente en forma pseudo-simultánea bajo el concepto tiempo compartido. 5.5 SISTEMAS OPERATIVOS POR EL NÚMERO DE TAREAS - Monotarea/tarea única: solamente puede estar ejecutando un proceso en un momento dado. Cuando se ejecuta una aplicación, guarda la parte residente del s.o. que controla las llamadas del sistema, a continuación toma el control de todo el ordenador y al finalizar vuelve a cargar el sistema cuando termina. Es una característica de los sistemas operativos más antiguos como MS-DOS. Los s.o monotarea son fáciles de diseñar y de programar pero debido a sus limitaciones y su debilidad ante software malicioso no se emplean en los s.o modernos. - Multitarea: Pueden ejecutar múltiples procesos o aplicaciones compartiendo el tiempo de los procesadores disponibles de forma automática. Al fraccionar el tiempo del procesador entre varios programas el usuario tiene la sensación de que los programas se ejecutan simultáneamente. o Multitarea cooperativa: El s.o. da el control a un proceso y es el propio proceso el que decide ceder el control pasando al estado de Espera. Esto puede ocasionar bloqueos si el proceso no cede el control por el motivo que sea. También puede crear latencias no predecibles e irregula