SlideShare una empresa de Scribd logo
1 de 127
Descargar para leer sin conexión
UNIVERSIDAD DE ORIENTE
VICERRECTORADO ACADÉMICO
CONSEJO DE ESTUDIOS DE POSTGRADO
POSTGRADO EN INFORMÁTICA GERENCIAL
NÚCLEO MONAGAS
Profesor:
Msc. Gerardo Guacaran
Autores:
Ing. Jesús Mota
Ing. Ruth Reyes
Ing. Francisco Antequera
Maturín, Febrero de 2019
2
INDICE GENERAL
INDICE GENERAL………………………………………………………………. 2
INDICE DE CUADROS…………………………………………………………... 4
INDICE DE FIGURAS……………………………………………………………. 5
INTRODUCCIÓN………………………………………………………………… 7
PARTE 1. ESTRUCTURA DEL HARDWARE………………………………… 9
CAPÍTULO 1.-Antecedentes y Evolución de WINDOWS SERVER 2008……….. 9
1.1 Evolución Histórica. …………………………………………………. 9
1.2 Ediciones. ……………………………………………………………. 11
1.3 Funciones o Servicios Integrados. ……………………………………. 13
1.4 Versiones. …………………………………………………………….. 16
1.5 Certificaciones. ……………………………………………………….. 20
CAPÍTULO 2.- Diagrama de bloques de la estructura de hardware de una
computadora real, susceptible de soportar la implantación del Sistema Operativo
WINDOWS SERVER 2008………………………………………………………... 22
2.1 Requisitos del Sistema. ………………………………………………. 22
2.2 Diagrama de Bloques de la estructura del Hardware. ……………….. 22
2.3 Descripción del bloque procesador…………………………………… 25
2.4 Descripción del bloque memoria y jerarquía………………………… 26
2.5 Descripción del bloque periféricos…………………………………… 28
2.6 Evolución histórica de la estructura del hardware. ………………… 30
PARTE 2. ESTRUCTURA DEL SISTEMA OPERATIVO WINDOWS SERVER
2008………………………………………………………………………………... 31
CAPÍTULO 3.- Sistema operativo WINDOWS SERVER 2008…………………… 31
3.1 Objetivos de diseño…………………………………………………… 31
3.2 Diagrama de bloque del Sistema operativo…………………………… 32
3.3 Descripción de cada bloque…………………………………………... 33
CAPÍTULO 4.- Conceptualización de Procesos y/o hilos………………………… 40
4.1 Conceptos de Procesos y/o hilos. …………………………………….. 40
4.2 Diagrama de estado de Procesos y/o hilos……………………………. 44
CAPÍTULO 5.- Planificación de procesos………………………………………… 47
5.1 Sincronización de procesos…………………………………………… 47
5.2 Planificación de sistemas en ambiente Multiprogramación………….. 51
5.3 Planificación de sistemas en ambiente Multiprocesamiento…………. 54
5.4 Estrategia real de Planificación de Procesos………….………………. 57
CAPÍTULO 6.- Gestión de memoria principal……………………………………. 60
6.1 Jerarquía de memoria…………………………………………………. 62
6.1 Memoria Física y memoria virtual……………………………………. 64
6.3 Partición, Segmentación, Paginación…………………………………. 65
6.4 Estrategia real de Gestión de Memoria principal en Windows Server
2008………………………………………………………………………... 67
CAPÍTULO 7.- Gestión de almacenamiento en WINDOWS SERVER 2008…….. 69
7.1 Planificación y gestión de dispositivos de almacenamiento secundario
(Discos y memoria flash) ………………………………………………… 69
7.2 Sistema VFS su equivalente………………………………………….. 72
7.3 Sistemas de archivos manejados por WINDOWS SERVER 2008 76
3
(NFS, FAT, ..) ……………………………………………………………..
CAPÍTULO 8.- Gestión de E/S…………………………………………………… 78
8.1 Manejo de Periféricos a través del Sistema de archivos……………… 79
CAPÍTULO 9.- Consideraciones sobre seguridad y protección...………………… 80
9.1 Seguridad a través del hardware……………………………………… 82
9.2 Seguridad a través del software………………………………………. 85
9.3 Descripción de algunos fallos de seguridad y protección en Windows
Server 2008………………………………………………………………... 86
CAPÍTULO 10.- Discusión sobre las tendencias………………………………… 88
10.1 Tendencias “free” u “Open” de este Sistema operativo……………. 89
10.2 Base instalada (Cuota de mercado local y global) de este Sistema
Operativo al año 2017…………………………………............................... 91
10.3 Reseña de algún artículo reciente (año 2017) donde se compare este
Sistema operativo con otro. ……………………………………………….. 92
CAPITULO 11.- Evolución entre Versiones y sus Diferencias…………………... 97
11.1 Características de las versiones. …………………………………….. 98
11.2 Comparación entre versiones. ………………………………………. 105
CAPITULO 12.- Windows Server 2019…………………………………………... 111
12.1 Descripción. …………………………………………………………. 111
12.2 Versiones. ……………………………………………………………. 113
12.3 Novedades. …………………………………………………………... 114
CONCLUSIONES………………………………………………………………… 118
BIBLIOGRAFIA………………………………………………………………….. 122
4
INDICE DE CUADROS
Cuadro N°1 Evolución Histórica de las Versiones de Windows Server hasta la
versión 2008………………………………………………..................................... 11
Cuadro N° 2 Certificaciones disponibles para Windows Server 2008……………. 20
Cuadro Nº 3 Evolución Histórica de la Estructura de Hardware Windows Server
2008……………………………………………………………………………….. 30
Cuadro Nº 4 Diferencia entre Procesos e Hilos…………………………………… 43
Cuadro Nº 5 Comparación entre versiones……………………………………….. 59
Cuadro Nº 6 Variantes del kernel de Windows Server 2008……………………... 60
Cuadro Nº 7 Memoria RAM en Ediciones Windows…………………………….. 68
Cuadro Nº 8 Comparación de SO Windows Server (2008, 2012, 2016 y 2019),
en relación a sus Capacidades híbridas…………………………………………… 106
Cuadro Nº 9 Comparación de SO Windows Server (2008, 2012, 2016 y 2019),
en relación a su Infraestructura Hiperconvergente………………………………... 106
Cuadro Nº 10 Comparación de SO Windows Server (2008, 2012, 2016 y 2019),
en relación a su seguridad………………………………………………………… 109
Cuadro Nº 11 Comparación de SO Windows Server (2008, 2012, 2016 y 2019),
en relación a las bondades de las Aplicaciones…………………………………… 110
5
INDICE DE FIGURAS
Figura Nº 1: Interfaz Gráfica de Windows Server 2008………………………….. 9
Figura Nº 2: Interfaz Windows Server 2008 SP2…………………………………. 12
Figura Nº 3: Interfaz Windows Server 2008 R2………………………………….. 13
Figura Nº 4: Funciones o Servicios Integrados en Windows Server 2008. ……… 14
Figura Nº 5: Versiones de Windows Server 2008. ……………………………….. 17
Figura N° 6: Características de las Versiones de Windows Server 2008…………. 20
Figura N° 7: Requisitos Mínimos y recomendados para la instalación de
Windows Server 2008…………………………..………………………………… 22
Figura Nº 8 capa de abstracción de Hardware (HAL) ……………………………. 23
Figura Nº 9: Administración de Hardware Windows Server 2008………….. 24
Figura Nº 10: Esquema General de Administración de procesos Windows Server
2008…………………………..…………………………..……………………….. 25
Figura Nº 11: Bloque Administrador de Memoria Windows Server 2008……. 26
Figura Nº 12: Jerarquía de Memoria Windows Server 2008…………………... 28
Figura Nº 13: Bloque Administrador de Periféricos Windows Server 2008…... 29
Figura N° 14: Diagrama de bloques bloque de E/S de periféricos de Windows
Server 2008…………………………..…………………………..……………… 30
Figura Nº 15 Diagrama de Bloques Windows Server 2008………………………. 33
Figura Nº 16 Núcleo de Windows Server 2008…………………………………... 34
Figura Nº 17 Administrador de Objetos Windows Server 2008………………….. 35
Figura Nº 18: Administrador de Procesos Windows Server 2008………………... 36
Figura Nº 19: Administrador de Memoria Virtual Windows Server 2008……….. 36
Figura Nº 20: Administrador de Energía Windows Server 2008…………………. 38
Figura Nº 21 Modo Usuario Windows Server 2008……………………………… 39
Figura Nº 22 Estructura de un Proceso Windows Server 2008…………………… 41
Figura Nº 23: Atributos de un Proceso Windows Server 2008…………………… 42
Figura Nº 24 Procesos e Hilos…………………………..………………………… 43
Figura Nº 25: Transición de los estados de un hilo. ……………………………… 44
Figura Nº 26: Implementación de los procesos e hilos en Windows NT/2000…… 45
Figura Nº 27: Estados de un Proceso…………………………..………………… 46
Figura Nº 28: Estados de un Proceso…………………………..………………… 47
Figura Nº 29. Principales Planificadores de la CPU…………………………..….. 49
Figura Nº 30. Multiprogramación…………………………..…………………….. 53
Figura Nº 31: Algoritmo Round Robin. …………………………..…………... 58
Figura Nº 32. Memoria y MMU…………………………..………………………. 62
Figura Nº 33. Diagrama piramidal de la jerarquía de memoria…………………... 63
Figura Nº 34. Memoria virtual…………………………..………………………... 65
Figura Nº 35. Tipos de Estructuras de Archivo. …………………………..……… 73
Figura Nº 36. Cualidades de la seguridad…………………………..…………….. 81
Figura Nº 37. Permisos de usuarios sobre carpetas y archivos…………………… 82
Figura Nº 38. Componentes internos de chip TPM……………………………….. 83
Figura Nº 39. Configuración característica BitLocker en Windows Server 2008... 84
Figura Nº 40: Configuración característica RSM en Windows Server 2008……... 85
Figura Nº 41. Entorno grafico de ReactOS……………………………………….. 90
Figura Nº 42. Android pasa a dominar el mercado de los SO…………………….. 91
6
Figura Nº 43. Sistemas Operativos más usados en Servidores…………………… 92
Figura Nº 44. Ventajas del Sistema Operativo Linux…………………………….. 94
Figura Nº 45. Desventajas del Sistema Operativo Linux…………………………. 94
Figura Nº 46. Ventajas del Sistema Operativo Windows Server…………………. 95
Figura Nº 47. Desventajas del Sistema Operativo Windows Server……………… 96
Figura Nº 48. Evolución histórica de Windows Server…………………………… 97
Figura Nº 49. Ediciones de Windows Server 2008……………………………….. 97
Figura Nº 50. Ediciones de Windows Server 2019……………………………….. 113
Figura Nº 51. Vista de interfaz del proyecto Honolulu…………………………... 115
Figura Nº 52: Windows Defender ATP en Windows Server 2019……………….. 116
Figura 53. Activación de Subsistema de Windows para Linux…………………... 117
7
INTRODUCIÓN
Un Sistema Operativo (SO), de manera general está representado por el conjunto de
programas que se ejecutan dentro de algún equipo que cumple en primera instancia la
función de permitir la interacción del usuario con la máquina, para tal fin es necesario que
el SO, pueda gestionar todos los recursos del equipo, lo cual involucra a los elementos
hardware (monitor, teclado, mouse, unidades de almacenamiento, impresoras, etc.) así
como al software del equipo.
Los equipos informáticos (PC, laptops, servidores, tablets, smartphones y cualquier otro)
tienen y necesitan un SO que permitan su normal funcionamiento, administrando los
recursos del equipo, coordinando el funcionamiento del hardware y organizando los
archivos y directorios en los dispositivos de almacenamiento.
Los sistemas operativos para PC, laptops y servidores variados, pero los más utilizados
son Windows, Mac y LINUX. A tal punto que el SO Windows de la empresa Microsoft,
introducido en el mercado desde 1985, es el más utilizado en la actualidad,
específicamente en lo que se refiere a PC’s t Laptops, de hecho puede considerársele un
gran colaborador evolución de la informática personal.
Microsoft no solo ha desarrollado sistemas operativos para PC’s y laptops sino que
también incursionó en el área de los sistemas operativos para servidores, dentro de este
ámbito ha evolucionado con el tiempo y desarrollado una serie de versiones para satisfacer
las exigencias y demandas del mundo empresarial actual.
Dentro de los Sistemas Operativos desarrollados por Microsoft se destaca Windows
Server 2008, el cual será objeto de estudio en el presente documento, que se encuentra
estructurado en tres (3) partes.
Dentro de la primera parte del documento titulado Estructura del Hardware, se analizan
aspectos asociados a los antecedentes y evolución de Windows Server 2008, haciendo
referencia a las ediciones, versiones existentes así como a las funciones y servicios
integrados al sistema. Adicionalmente se estudian aspectos asociados a los requisitos del
Sistema, así como los diagramas de bloques de procesados, memoria y periféricos, además
de la evolución histórica de la estructura del hardware.
8
Dentro de la segunda parte del documento (Estructura del Sistema Operativo Windows
Server 2008), seccionado dentro de diez capítulos, se consolida información asociada a la
conceptualización de los procesos e hilos, la planificación de los procesos y la gestión de la
memoria principal, el almacenamiento secundario y los servicios de entrada y salida.
Adicionalmente se analizan las consideraciones de seguridad y protección del sistema, así
como las tendencias de uso de este SO y la evolución de las versiones con las respectivas
diferencias entre ellas.
Finalmente se le dedica un capítulo al estudio del SO Windows Server 2019, por ser la
última versión disponible en el mercado (para servidores) elaborada por la empresa
Microsoft.
9
PARTE 1. ESTRUCTURA DEL HARDWARE
CAPÍTULO 1: Antecedentes Y Evolución de WINDOWS SERVER 2008
1.1 Evolución Histórica.
Windows Server es un sistema Operativo producido por Microsoft diseñado para
servidores, el cual según información recopilada en la web
https://isft179windowsserver2008r2.blogspot.com/esta “construido sobre la misma base de
Windows Vista. Por lo cual comparte gran parte de la arquitectura y funcionalidad del
mismo. Su núcleo se basa en el núcleo de Windows NT 6.1”. Este sistema operativo es el
sucesor de Windows Server 2003, y fue lanzado al público 5 años después de este último. A
pesar de estar construido sobre la base de Windows vista, es considerado una variante para
servidores de la versión de la versión Windows 7. En la figura N° 1 se puede apreciar la
interfaz de usuario del mismo. (Ver Figura N°1):
Figura Nº1: Interfaz Gráfica de Windows Server 2008.
Fuente: https://fernandomachadopirizen.files.wordpress.com/2011/02/ws2008r2.png
10
La versión Beta de este sistema operativo se lanzó el 27 de julio de 2005, posteriormente
Beta 2 se anunció y se lanzó el 23 de mayo de 2006 en Win HEC 2006. La versión Beta 3
se publicó el 25 de abril de 2007 y El 24 de septiembre de 2007 se lanzó al público en
general una versión denominada Release Candidate 0.El 5 de diciembre de 2007 fue
publicada la versión Release 1Candidate. Y finalmente, Windows Server 2008 se lanzó a la
fabricación el 4 de febrero de 2008 pero no fue sino hasta el 27 de febrero de 2008 cuando
fue oficialmente publicada.
Windows Server 2008 presenta muchas mejoras con respecto a su versión anterior
(Windows Server 2003), reflejadas en la inclusión de nuevas características de
virtualización y algunas otras tales como la reducción en el consumo de energía, la
incorporación de nuevas herramientas de administración de recursos, nuevas características
del Active Directory, una papelera de reciclaje para objetos AD borrados, una nueva
versión de IIS (7.5) que incluye un renovado servidor FTP, soporte para DNSSEC y el
aumento del número de núcleos de procesamiento de 64 a 256. De igual manera en esta
versión los procesadores de 32-bits ya no están soportados.
En cuanto a la instalación del sistema operativo también se observan mejoras
considerables debido a que la misma pasó a un entorno totalmente gráfico, incluyendo
soporte a .NET Framework, aplicaciones ASP.NET y soporte para Windows PowerShell.
Así mismo las mejoras de rendimiento, representan un factor importante de esta versión,
Microsoft anunció que se habían realizado trabajos para disminuir el tiempo de arranque,
mejorar la eficiencia de operaciones E/S a la vez que aumentar potencia de procesamiento y
mejoras generales de velocidad en dispositivos de almacenamiento, especialmente en
iSCSI.
El lanzamiento extraoficial de este versión fue el 27 de febrero de 2008, con una versión
preliminar (beta) de Windows Server 2008 R2 para suscriptores de los programas de
Microsoft, TechNet y MSDN, así como también a participantes del programa Microsoft
Connect sobre Windows 7. Dos días después, se lanzó al público general mediante el
Centro de descargas de Microsoft. En el cuadro N°1 se visualiza la evolución histórica de
las versiones de Windows Server hasta Windows Server 2008.
11
Cuadro N°1
Evolución Histórica de las Versiones de Windows Server hasta la versión2008
Versión
Windows
NT
Nombre
Comercial
Ediciones Fecha de Emisión
3.1 Windows NT 3.1 Avanced Server 27 Julio 1993.
3.5 Windows NT 3.5 Server
21 Septiembre
1994.
3.51 Windows NT 3.51 Server 30 Mayo 1995
4.0 Windows NT 4.0
Server, Server Enterprise
Edition, Terminal Server,
Embedded
29 Julio 1996
5.0 Windows 2000 Datacenter Server. 17 Febrero 2000
5.2
Windows 2003
Estándar, Enterprise,
Datacenter, Web, Storage,
Small Business Server,
Computer Cluster.
26 Septiembre
2000
Windows 2003 R2
Estándar, Enterprise,
Datacenter, Web, Storage,
Small Business Server,
Computer Cluster.
24 Abril 2003
6.0 Windows 2008
Estándar, Enterprise,
Datacenter, Web,
Foundation, HPC, Itanium-
Based Systems.
06 Diciembre
2005
6.1 Windows 2008 R2
Estándar, Enterprise,
Datacenter, Web,
Foundation, HPC, Itanium-
Based Systems.
27 Febrero 2008
Fuente: https://prezi.com/trlyrwk_jjwi/windows-server-introduccion-historia-y-actualidad/
1.2 Ediciones.
Windows Server 2008 está disponible en dos ediciones:
 Windows Server 2008 SP2: Originalmente conocido como Windows Server Codename
"Longhorn", su título oficial (Windows Server 2008) fue anunciado por el presidente de
Microsoft, Bill Gates, durante su discurso de apertura en WinHEC el 16 de mayo de
2007.Esta versión está construido desde la misma base de Windows Vista, por lo cual
comparte la mayoría de las características técnicas y de seguridad de este. Las cuales según
la fuente https://en.wikipedia.org/wiki/Windows_Server_2008 se resumen en las siguientes:
12
BitLocker y ASLR (asignación aleatoria de diseño de espacio de direcciones);
Firewall de Windows mejorado con configuración predeterminada segura;
Tecnologías .NET Framework 3.0, específicamente Windows Communication
Foundation, Microsoft Message Queue Server y Windows Workflow Foundation; y
las mejoras del núcleo, la memoria y el sistema de archivos.
La Figura Nº 2 describe la interfaz gráfica de usuario de Windows Server 2008 SP2
(Ver Figura Nº 2):
Figura Nº2: Interfaz Windows Server 2008 SP2
Fuente: https://en.wikipedia.org/wiki/Windows_Server_2008_R2
 Windows Server 2008 R2: Microsoft introdujo Windows Server 2008 R2 en la
Professional Developers Conference (PDC) del 2008 como una variante de servidor del
nuevo sistema operativo Windows 7. Una guía preliminar publicada por la compañía
describe muchas áreas de mejora las cuales se describen en la fuente
https://en.wikipedia.org/wiki/Windows_Server_2008_R2 como:
nuevas características de virtualización incluyendo Live Migration y
ClusterSharedVolumes, un reducido consumo de energía, un nuevo conjunto de
herramientas de administración, nuevas características Active Directory como una
13
"papelera de reciclaje" para objetos AD borrados, una nueva versión de IIS (7.5) que
incluye un renovado servidor FTP, soporte para DNSSEC y el aumento del número
de núcleos de procesamiento de 64 a 256.
La Figura Nº 3 muestra la interfaz gráfica de usuario para Windows Server 2008 R2:
Figura Nº 3: Interfaz Windows Server 2008 R2
Fuente: https://en.wikipedia.org/wiki/Windows_Server_2008_R2
1.3 Funciones o Servicios Integrados.
Windows Server 2008 al igual que versiones anteriores ofrece una gama de
funcionabilidades para la administración de recursos y servicios disponibles. Algunas de las
funciones o aplicaciones incluidas en Windows Server 2008 se resumen en la Figura N°4 a
continuación:
14
Figura Nº4: Funciones o Servicios Integrados en Windows Server 2008.
Fuente: https://es.slideshare.net/FrancoSanMartinHerrera/windows-2008-server-r2-
aspectos-generales
Las mismas se describen de manera resumida a continuación:
 Domaincontroller: Al igual que en versiones anteriores del sistema operativo Windows,
el controlador de dominio permite a los usuarios autenticarse en el dominio para acceder a
los recursos de la red.
 Global catalog server: El servidor de catálogo global es un controlador de dominio que
también almacena un subconjunto de objetos de AD DS de otros dominios en el bosque.
Cuando un usuario interno o externo con los derechos de seguridad apropiados quiere ver
una lista de usuarios de Active Directory en el bosque, el servidor de catálogo global
proporciona la lista.
 DNS server: El sistema de nombres de dominio (DNS) mantiene una lista de servidores
y sistemas de red y sus direcciones IP asociadas, por lo que un servidor DNS proporciona
información sobre los dispositivos conectados a la red.
15
 DHCP server: El Protocolo de configuración dinámica de host (DHCP) asigna
direcciones de red IPv4 y / o IPv6 a los dispositivos en la red. Windows 2008 proporciona
la función de servicio para facilitar las direcciones DHCP a los dispositivos de red.
 Cluster server: Cuando la tolerancia a fallos es importante para una organización, la
agrupación en clúster proporciona una conmutación por error de un sistema a otro.
Windows 2008 ofrece la posibilidad de vincular sistemas entre sí, de modo que cuando un
sistema falla, otro sistema asume el control.
 Network policy server: NPS es la implementación de Microsoft de un servidor y proxy
de Servicio de usuario de acceso telefónico de autenticación remota (RADIUS). NPS
realiza la autenticación, autorización y contabilidad de conexión centralizada para muchos
tipos de acceso a la red, incluidas las conexiones inalámbricas y de red privada virtual
(VPN). NPS enruta los mensajes de autenticación y contabilidad a otros servidores
RADIUS. También actúa como un servidor de evaluación de estado para la Protección de
acceso a la red (NAP).
 Terminal server: En lugar de tener una computadora de escritorio o portátil para cada
usuario en la red, las organizaciones tienen la opción de configurar terminales delgadas
simples y de bajo costo para que los usuarios obtengan acceso a los recursos de la red.
Windows 2008 Terminal Services permite que un único servidor aloje el acceso al sistema
de red para docenas de usuarios.
• Remoteaccess server: Cuando un usuario remoto tiene un sistema de computadora de
escritorio o portátil y necesita acceso a los servicios de red, Windows 2008 proporciona
servicios de acceso remoto que permiten a los sistemas remotos establecer una conexión
remota segura.
• Web server: A medida que más y más tecnologías se vuelven conscientes de la web y se
alojan en servidores web, Windows 2008 proporciona la tecnología para alojar estas
aplicaciones para el acceso basado en navegador.
 Media server: Windows 2008 proporciona una fuente para alojar y publicar contenido
de audio y video, más allá de los documentos de procesamiento de texto y las hojas de
cálculo en medios enriquecidos, como video y audio.
16
 Virtualization server: Windows 2008 proporciona las capacidades básicas para realizar
la virtualización de servidores, proporcionando la capacidad para que una organización
consolide servidores físicos en menos sistemas de servidores host, lo que reduce el costo
total de las operaciones de TI.
 Distributed File System (DFS) server: Durante la última década, los archivos de datos se
han almacenado en servidores de archivos en toda la organización. Windows 2008
proporciona sistemas de archivos distribuidos que permiten a una organización tomar el
control de los archivos distribuidos en un espacio de nombres unificado común.
1.4 Versiones
Windows Server 2008 esta disponibles en siete versiones diferentes, las cuales son:
Estándar, Enterprise, Datacenter, Web, Storage, Small Business Server y Itanium-Based
Systems. Las cuales están diseñadas para todo tipo de empresas, grandes y pequeñas, desde
un servidor simple hasta un servidor de aplicaciones masivo. En cuanto a la virtualización,
la cual se ha convertido en una característica esencial dentro de Windows Server 8, existen
diferencias importantes en las ediciones para la licencia de la nueva función Hyper-V que
viene con las ediciones Standard, Enterprise y Datacenter.
Según Martín franco (2009) la necesidad de varias versiones se debe a que:
“Una talla no se ajusta a todos. Por ejemplo, una pequeña organización con unos
pocos usuarios hasta unos pocos cientos de usuarios que necesitan principalmente un
sistema centralizado para el inicio de sesión en la red, junto con el uso compartido de
archivos e impresoras probablemente puede usar la edición estándar.
Mientras que una gran empresa o una que necesite un servidor de aplicaciones
robusto puede optar por Enterprise Edition. Una compañía que necesita alojar una
base de datos gigantesca que requiere muchos procesadores, almacenamiento y
memoria podría necesitar Datacenter Edition.”
En función a ello la Figura N°5 muestra un resumen de las diferentes versiones
disponibles:
17
Figura Nº5: Versiones de Windows Server 2008.
Fuente: https://es.slideshare.net/FrancoSanMartinHerrera/windows-2008-server-r2
Así mismo, a continuación se detallan las características de las versiones de Windows
Server:
 Standard Edition: Adecuada para pequeñas y medianas empresas que necesiten un
solución sólida para uso compartido de impresoras, archivos, cuentas de usuarios y
recursos de red. Así como los servicios típicos de servidores tales como servicios
web, DNS y DHCP. En cuanto a los procesadores esta edición al igual que las
demás trabaja con procesadores multinúcleos, punto en el cual es importante resaltar
que según lo verificado en la fuente electrónica de Martín Franco (2.000)
“Microsoft define un procesador como un chip físico o un zócalo en una placa base.
Esto significa que la edición estándar puede admitir hasta cuatro procesadores de un
solo núcleo, de doble núcleo, o incluso de cuatro núcleos y superiores.” Esta edición
se encuentra disponible en versiones de 32bits que soporta hasta 4GB de RAM, y 64
bits que soporta hasta 32GB de RAM. Los usuarios de la edición estándar de 64 bits
puede instalar una instancia virtual de Server 2008 Standard Edition con Hyper-V.
 Enterprise Edition: Tiene todas las características de la versión Standard pero posee
algunas adicionales que la hace ideal para medianas y grandes empresas, como por
ejemplo que admite hasta ocho procesadores y 64GB de RAM en la versión de
18
32bits y hasta 2TB en la versión de 64bits, así mismo la agrupación de servidores es
otra de características distintivas de esta edición, con la cual los administradores
pueden vincular dos o más servidores físicos lógicamente para actuar como un
único servidor de alto rendimiento y tolerante al fallo de máquinas. Adicionalmente
Enterprise Edition permite hasta 16 nodos de clúster. Posee características de
tolerancia a fallos, que permite agregar memoria en caliente, (sin apagar el sistema)
y en cuanto a Hiper-V permite hasta cuatro instancias virtuales por licencia.
 Datacenter Edition: Una versión ideal para grandes empresas que manejen grandes
cantidades de datos y virtualización a gran escala consolidando servidores que
ejecutan grandes volúmenes de transacciones, soporta 32 procesadores en la versión
de 32Bits y hasta 64 en la versión de 64Bits. Al igual que la versión Enterprise
Edition tiene características de tolerancia a fallos, para reemplazar memorias y
procesadores en caliente. En cuanto a las características de Hiper-V las cantidades
de instancias virtuales en 64 Bits para esta edición es limitada.
 Windows Web Server 2008: Diseñado para funcionar como servidor web,
ejecutando servicios Internet Information Server (IIS) 7.0, tiene funciones de
soporte de hardware similares a la versión Estándar, pero no tiene soporte de
virtualización y además carece de muchas características de otras ediciones, como el
acceso remoto y los Servicios de Terminal Server. Sin embargo es una solución
rentable cuando se necesita un servidor web con todas las funciones que este
amerita pero sin algunas aplicaciones disponibles en otras ediciones.
 Windows HPC Server 2008: Sucesor de Windows Computer Cluster Server 2003,
considerado como la última generación de informática de alto rendimiento, ofrece
herramientas de clase empresarial para entornos altamente productivos. Puede
escalar en forma eficiente a miles de núcleos de procesamiento y consolas de
administración que le permiten monitorear y mantener la estabilidad del sistema.
Windows HPC Server 2008 está diseñado para aplicaciones de gama alta que
requieren clústeres informáticos de alto rendimiento (HPC significa High
19
Performance Computing) lo cual facilita el soporte a cargas de trabajo de
aplicaciones orientadas a servicios (SOA) y lotes.
 Windows Foundation Server 2008: Al contrario de la versión HPC está orientado a
pequeñas empresas, tiene un límite de 15 usuarios y tiene licencia por cuenta de
usuario. Podría ser el primer sistema operativo Server 2008 de una empresa, pero a
medida que la empresa crece, puede actualizarse a versiones superiores para obtener
acceso a funciones mejoradas y soporte para más usuarios. Fundation está
disponibles en versiones de 64bits, soporta 1 zócalo de procesador físico, que puede
tener varios núcleos (4 en estándar), 8 GB de RAM (32 GB en estándar), 30
conexiones del Bloque de mensajes del servidor, 2 conexiones de administrador de
escritorio remoto Sin derechos de instancia virtual o Hyper-V.
 Windows Server 2008 Itanium-Based Systems: En ocasiones, es posible encontrar
en algunos sitios de Microsoft o en algunos sitios de descarga, que los enlaces de
descarga estén disponibles para Windows x86, Windows x64 y Windows x64
Itanium. Itanium según https://www.thewindowsclub.com “se refiere a una
arquitectura de procesador para sistemas operativos de servidor, y también se
denominó IA-64, donde IA se refería a la arquitectura Intel.” IA-64 utiliza la
arquitectura Intel Itanium, que está diseñada para servidores empresariales de alto
rendimiento y sistemas informáticos.
Windows XP y Windows Server 2008 R2 son las últimas versiones de Windows
con soporte para este tipo de arquitectura, esta última se caracteriza por ser una
plataforma de clase empresarial para desplegar aplicaciones comerciales, bases de
datos, líneas de negocios y aplicaciones personalizadas.
En función de esto, la Figura 6 muestra un resumen de las características de las diferentes
versiones de Windows Server 2008.
20
Figura 6: Características de las Versiones de Windows Server 2008
Fuente: https://en.wikipedia.org/wiki/Windows_Server_2008_R2
1.5 Certificaciones
Las certificaciones de Windows Server 2008 al igual que en versiones anteriores están
diseñadas a capacitar a los profesionales en la implementación, construcción y resolución
de problemas asociados a esta versión de Windows Server. Las mismas se pueden obtener a
través de la plataforma de Microsoft Certified Solutions Associate (MCSA). Para esta
versión desaparecen las certificaciones MCSA y pasan a llamarse MCTS (Microsoft
Certified Technology Specialist) y MCITP (Microsoft Certified IT Professional).
Actualmente existen 5 certificaciones para Windows Server 2008 enfocados a roles
específicos de trabajo, las cuales se describen en el Cuadro Nº 2, el cual se muestra a
continuación:
Cuadro N°2
Certificaciones disponibles para Windows Server 2008
Nombre
Certificación
Contenido Exámenes
El MCTS: Windows
Server 2008 Active
Directory
Configuration:
1.- Active Directory and Directory
Services
2.- Active Directory server roles
3.- Certificate management
4.- Group Policy
Exam 70-640: TS:
Windows Server 2008
Active Directory,
Configuring
El MCTS: Windows 1.- Ipadressing and services Exam 70-642: TS:
21
Server 2008
Network
Infraestructure
Configuration:
2.- Names resolution
3.- File and print services
4.- Network access and remote access
5.- Monitoring network services
Windows Server 2008
Network Infrastructure,
Configuring
El MCTS: Windows
Server 2008
Applications
Infraestructure
Configuration
1.- Windows deployment services
2.- Terminal services
3.- Web services
4.- Media services
Exam 70-643: TS:
Windows Server 2008
Applications
Infrastructure,
Configuring
El MCITP: Server
Administrator
La obtención de una certificación de
Administrador del servidor MCITP
permite adquirir habilidades y
conocimientos en la administración y
el mantenimiento de una
infraestructura de Windows Server
2008 R2. La certificación MCITP: SA
es para las personas que desean
mantener una infraestructura de
Windows 2008 en lugar de diseñar
una, en cuyo caso, el certificado
MCITP: EA sería la certificación que
busca. Tener esta certificación
representa una gran adición al
currículum vitae o CV de un
profesional de TI y así como una gran
ventaja al solicitar el puesto de
administrador de sistema. El salario
promedio para el administrador del
servidor MCITP es de USD $ 75000.
 Exam 70-640: TS:
Windows Server 2008
Active Directory,
Configuring
 Exam 70-642: TS:
Windows Server 2008
Network Infrastructure,
Configuring
El MCITP:
Enterprise
Administrator
Obtener una certificación de
administrador empresarial MCITP en
Windows 2008 es un paso definitivo
para profesionales de la carrera en la
industria de TI. Esta reconocida
certificación MCITP se tiene en alta
estima y proporcionará a sus
empleadores actuales y futuros que
posee las habilidades y los
conocimientos para implementar y
mantener una infraestructura de red de
Windows Server 2008. Las personas
que cuentan con una certificación de
administrador empresarial de MCITP
tienen uno de los salarios más altos en
promedio en comparación con otras
 Exam 70-640: TS:
Windows Server 2008
Active Directory,
Configuring
 Exam 70-642: TS:
Windows Server 2008
Network Infrastructure,
Configuring
 Exam 70-643: TS:
Windows Server 2008
Applications
Infrastructure,
Configuring
 Exam 70-620: TS:
Windows Vista,
Configuring
22
certificaciones de MCITP, si lo
desean, pueden ver nuestra
comparación de los salarios promedio
de MCITP.
 Exam 70-624 TS:
Deploying and
Maintaining Windows
Vista Client and 2007
Microsoft Office System
Desktops
Fuente: https://www.megacrack.es/2008/03/09/certificaciones-windows-server-2008/
CAPÍTULO 2.
Diagrama de bloques de la estructura de hardware de una computadora real,
susceptible de soportar la implantación del Sistema Operativo WINDOWS SERVER
2008
2.1 Requisitos del Sistema.
A continuación se describen todos los requisitos estimados como mínimos y estándares
para la instalación del Sistema Operativo Windows Server 2008 (Ver Figura N°7):
Figura N°7: Requisitos Mínimos y recomendados para la instalación de Windows Server
2008
Fuente: https://es.wikipedia.org/wiki/Windows_Server_2008
2.2 Diagrama de Bloques de la estructura del Hardware.
La capa encargada de la administración del Hardware en Windows NT se denomina
HAL, esta es la responsable de la comunicación entre el kernel (Sistema Operativo) y el
hardware, además oculta algunos detalles dependientes del hardware tales como
controladores de E/S, de interrupción y mecanismos de comunicación multiprocesos. Entre
23
otras cosas la HAL permite utilizar diferentes procesadores al mismo tiempo. La Figura
Nº8 muestra la ubicación de la capa de abstracción de Hardware (HAL) dentro del núcleo
del sistema operativo:
Figura Nº8 capa de abstracción de Hardware (HAL)
Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT
Particularmente, Windows Server 2008 permite en la mayoría de sus ediciones agregar
dispositivos de hardware, tales como memorias y procesadores en caliente. Además de esto,
la virtualización es una función tradicional dentro de estos sistemas que demanda una
efectiva administración de recursos por parte del sistema operativo. Esto implica que el
sistema debe tener la capacidad de ser un servidor particionable, la cual según la fuente
https://technet.microsoft.com/es-es/library/cc664685.aspx#EAAA es:
La capacidad de un servidor de crear una o más particiones de hardware aisladas. A
cada partición de hardware se le asignan sus propios procesadores, memoria y
puentes de host de E / S que son independientes de todas las demás particiones de
hardware. Cada partición de hardware puede ejecutar una instancia independiente
del sistema operativo.
En un servidor particionable estáticamente, la configuración de las unidades de
partición asignadas a cada partición de hardware no se puede cambiar mientras el
sistema se está ejecutando. Para cambiar la configuración, el sistema debe apagarse y
reiniciarse. Windows Server 2008 y versiones posteriores de Windows Server admiten
servidores particionables estáticamente. En un servidor particionable dinámicamente, la
configuración de las unidades de partición asignadas a una partición de hardware se
puede cambiar mientras el sistema se está ejecutando. Las unidades de partición se
24
pueden agregar o reemplazar sin reiniciar la instancia del sistema operativo que se
ejecuta en la partición de hardware.
La Figura Nº 9 muestra un ejemplo de un servidor particionable de hardware.
Figura Nº 9: Administración de Hardware Windows Server 2008
Fuente: https://technet.microsoft.com/es-es/library/cc664685.aspx#EAAA
En Windows Server 2008, los procesadores y la memoria se modelan como dispositivos
Plug and Play. Esto permite que los controladores de dispositivos y las aplicaciones se
registren para recibir notificaciones de Plug and Play para que puedan recibir notificaciones
cuando se agreguen procesadores o memoria. Esto también permite iniciar el procesador y
los dispositivos de memoria después de que se haya iniciado el sistema operativo. Los
puentes de host de E / S se han modelado como dispositivos Plug and Play desde Windows
2000.
La administración de hardware en Windows Server 2008, se apoya en una secuencia de
notificaciones que un controlador de dispositivo puede recibir cuando se agrega un nuevo
procesador, la cual es la siguiente:
 Notificación de que se ha iniciado un nuevo procesador. Esta notificación se envía
de forma sincrónica antes de que el sistema operativo comience a programar
25
subprocesos en el nuevo procesador. Un controlador de dispositivo debe registrarse
para recibir esta notificación de que se ha iniciado un nuevo procesador.
 Notificación de Plug and Play de que se ha agregado un dispositivo procesador:
Esta notificación se envía de forma asíncrona después de que el sistema operativo
comienza a programar subprocesos en el nuevo procesador. Un controlador de
dispositivo debe registrarse para recibir notificaciones de Plug and Play para recibir
esta notificación.
2.3 Descripción del bloque procesador.
Windows Server 2008 tiene la capacidad de trabajar con múltiples procesadores, los
cuales pueden ser agregados en caliente al sistema. La administración de los mismos se
realiza a través del bloque de procesamiento ubicado en el núcleo, y su funcionamiento
generalizado se muestra en la figura 10.
Figura Nº 10: Esquema General de Administración de procesos Windows Server 2008
Fuente: Alcalá Raúl. Procesos. Planificación del Procesador (2011)
Para ello el Sistema operativo implementa una serie de recursos tales como:
 Tiempo de la CPU.
 Memoria.
 Acceso de archivos y dispositivos de E/S.
En el entorno de multiprogramación, el sistema operativo decide qué proceso recibe el
procesador cuando y durante cuánto tiempo. Esta función se llama programación de
procesos. Windows Server realiza las siguientes actividades para la administración del
procesador:
26
 Realiza un seguimiento del procesador y el estado del proceso. El programa
responsable de esta tarea se conoce como controlador de tráfico.
 Asigna el procesador (CPU) a un proceso.
 Desasigna el procesador cuando ya no se requiere un proceso.
2.4 Descripción del bloque memoria y jerarquía.
El bloque administrador de la memoria virtual en Windows Server 2008 está ubicado en
el núcleo. Como un subsistema del modo executive, tal como se muestra en la Figura Nº
6, su función es implementar la memoria virtual utilizada para asignar un espacio de
direcciones privadas a cada proceso. (Ver Figura 11)
Figura Nº 11: Bloque Administrador de Memoria Windows Server 2008
Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT
En este sentido, tal como se indica en la fuente
https://es.slideshare.net/FrancoSanMartinHerrera/windows-2008-server:
En los sistemas operativos modernos como Windows, las aplicaciones y muchos
procesos de sistema siempre hacen referencia a la memoria a través de direcciones
de memoria virtual. El hardware traduce las direcciones de memoria virtual
automáticamente a direcciones reales (RAM). Solo las partes principales del kernel
27
del sistema operativo omiten esta traducción de direcciones y usan directamente las
direcciones de memoria reales.
Los procesos dentro de Windows utilizan un espacio de direcciones de 32 bits que
permite habilitar un espacio de direcciones de hasta 4 gigabytes de direcciones, o 8
terabytes en el caso de los sistemas de 64 bits. Cuando todos los procesos que se
ejecutan en el sistema requieren de más memoria que la disponible, Windows utiliza
la alternancia entre la memoria virtual (determinado por un archivo de paginación) y
la memoria física, que al igual que en UNIX recibe el nombre de swapping.
Este intercambio se realiza no de bytes a bytes, sino de página a página, que en
Windows son bloques de 4 KB donde se almacenan los datos de los procesos. De ahí
que toda la memoria esté paginada, tanto la física como la virtual. La física en forma
de marcos de página y la virtual en forma de páginas.
Además, Windows dispone de tablas de páginas que son las que apuntan a las
propias páginas, y los punteros de estas tablas se almacenan a su vez en un directorio
de páginas. Cada proceso dispone sólo de un directorio. El espacio de direcciones
para un proceso es el conjunto de direcciones de memoria virtual que puede utilizar.
El espacio de direcciones para cada proceso es privado y no se puede acceder por
otros procedimientos, a menos que se comparta.
Una dirección virtual no representa la ubicación física real de un objeto en la
memoria, sino que el sistema mantiene una tabla de páginas para cada proceso. El
sistema traduce la dirección virtual a una dirección física mediante diferentes
algoritmos, lo que hace que no se pueda acceder a las posiciones de otros procesos
porque no es posible hacer referencia a dichas posiciones.
A diferencia de los otros sistemas, las páginas pueden estar en tres estados; libre,
donde no puede ser accedida por ningún proceso pero sí reservada o encargada;
reservada, es un espacio de dirección virtual fijada para usos futuros; encargada,
aquella que ha sido asignada a un espacio físico, ya sea en memoria física o virtual.
En la Figura 12 se muestra un ejemplo de la jerarquización de memoria
implementada por los sistemas Windows NT/2000 en general, la cual es
representativa de la implementada por Windows Server 2008 (Ver Figura 12)
28
Figura Nº 12: Jerarquía de Memoria Windows Server 2008
Fuente: http://arquitecturadehardware001.blogspot.com/2014/09/jerarquia-de-la-
memoria.html
2.5 Descripción del bloque periféricos.
El administrador de E / S en modo kernel de Windows es el responsable de las
administración de periféricos del sistema operativo. Su función principal según lo reseñado
en la fuente https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/windows-
kernel-mode-i-o-manager es “administrar la comunicación entre las aplicaciones y las
interfaces proporcionadas por los controladores de dispositivo”. Su ubicación en el kernel
del sistema operativo se puede visualizar en la Figura 13 a continuación:
29
Figura Nº 13: Bloque Administrador de Periféricos Windows Server 2008
Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT
Así mimo, considerando que los dispositivos o periféricos funcionan a velocidades que
pueden no coincidir con el sistema operativo, la comunicación entre el sistema operativo y
los controladores de dispositivos se realiza principalmente a través de paquetes de solicitud
de E / S (IRP). La Figura 14 describe el funcionamiento del bloque de administración de
periféricos el cual se encarga de contralar las operaciones de E/S del sistema operativo
Windows Server 2008, la descripción de las operaciones de este bloque se describen en la
fuente https://www.researchgate.net/figure/ en la cual se especifica que se trata de:
Modelo de pila de controladores de E / S de Windows NT. El (Administrador de E /
S) del sistema operativo Windows NT maneja el flujo de datos hacia y desde
dispositivos periféricos. Exporta un (sistema de servicios de E / S) cuyo subsistema
protegido en modo usuario proporciona una programación. (Aplicaciones) utiliza
esa interfaz para manipular los dispositivos, como enviarles solicitudes de E / S, de
modo que el (Administrador de E / S) pueda interceptar todas esas solicitudes.
30
Figura 14: Diagrama de bloques bloque de E/S de periféricos de Windows Server 2008
Fuente:https://www.researchgate.net/figure/Windows-NT-I-O-driver-stack-model-The-I-O-
Manager-of-the-Windows-NT-operating-system_fig1_220718462
2.6 Evolución histórica de la estructura del hardware.
Esta sección describe la evolución de los requerimientos de hardware de las diferentes
versiones de Windows Server 2008, este resumen se presenta en el cuadro Nº 3 a
continuación:
Cuadro Nº3
Evolución Histórica de la Estructura de Hardware Windows Server 2008
Especificación Windows Server 2008 SP2 Windows Server 2008 R2
Fecha de Lanzamiento Febrero 2008 Julio 2009
Procesadores Físicos
("sockets")
Standard: 4
Enterprise: 8
Datacenter: 32
Standard: 4
Enterprise: 8
Datacenter: 64
Procesadores Lógicos con
Hyper-V está deshabilitado
IA-32: 32
x64: 64
256
Procesadores lógicos cuando
Hyper-V está habilitado
IA-32: N/A
x64: 24
64
Memoria en IA-32
Standard, Web: 4 GB
Enterprise, Datacenter: 64
GB
N/A
31
Memoria en x64
Standard, Web: 32 GB
HPC: 128 GB
Enterprise, Datacenter: 1 TB
Foundation: 8 GB
Standard, Web: 32 GB
HPC: 128 GB
Enterprise, Datacenter: 2
TB
Memory on Itanium 2 TB 2 TB
Fuente: Elaborada por el investigador con datos
dehttps://en.wikipedia.org/wiki/Windows_Server_2008
PARTE 2. ESTRUCTURA DEL SISTEMA OPERATIVO WINDOWS SERVER
2008
CAPÍTULO 3. Sistema operativo WINDOWS SERVER 2008
3.1 Objetivos de diseño
Al estudiar acerca de los objetivos de diseño de Windows Server 2008, nos encontramos
que el mismo busca cubrir ciertos características de funcionabilidad que lo hagan
competente y funcional para cubrir las demandas del mercado de Sistemas Operativos para
servidores. En base a esto, los objetivos de diseño de Windows Server 2008 son los
siguientes:
 Extensibilidad: El código pudiese cambiar a medida que cambiasen los requisitos de
mercado. Es decir esta versión busca ser fácilmente mantenible.
 Portabilidad: Permitir la portabilidad de aplicaciones entre distintos ordenadores.
 Fiabilidad y Robustez: Debe estar diseñado con protección contra errores internos y
externos.
 Compatibilidad: Garantiza una interfaz de usuario de aplicaciones (API) compatible con
las actualmente disponibles en Microsoft.
 Multiproceso y factibilidad de ampliación: Las aplicaciones pueden ejecutarse tanto en
sistemas monoprocesador como multiprocesador.
 Procesamiento Distribuido: Debe soportar facilidad de comunicaciones, y debe poder
distribuir sus tareas entre los distintos ordenadores de la red.
32
 Sistema Abierto: Debe cumplir con las normas POSIX, las cuales según Juan A Pérez
/Juan A. Morera (2002) en artículo publicado en
https://peredafp.files.wordpress.com/2009/02/04-estructura-windows-2008.pdf: “Es un
estándar de sistemas abiertos basados en el sistema operativo UNIX”.
 Rendimiento: Debería ser lo más rápido y eficiente posible.
3.2 Diagrama de bloque del Sistema operativo WINDOWS SERVER 2008
Windows Server 2008 está incluido dentro de la familia de Windows NT, su núcleo está
basada en la versión de Windows NT 6.1, y al igual que todas las versiones de esta familia
se caracterizan por contar con multitarea apropiativa, además de esto posee la faculta de
Symmetrical Multi Processoró SMP, también conocido como multiprocesamiento
simétrico. Además de esto según la fuente electrónica
https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT “procesar las peticiones de
entrada/salida (en inglés Input/Output, I/O) acude a una dirección de paquetes de E/S que
utiliza peticiones (IRPs) y E/S asíncrona”.
La arquitectura de este sistema operativo es altamente modular, basada en el objetivo de
diseño característico de la familia de Windows, un núcleo pequeño tan pequeño como sea
posible, integrado por módulos que dan respuesta a las llamadas del sistema, las cuales
necesariamente se ejecutan en modo privilegiado, el resto de las acciones se ejecutan en
modo no privilegiado.
Así, el núcleo resulta una base compacta, robusta, estable y lo más pequeña posible, pero
en la cual se ejecutan también otras unidades que sirven para propósitos bien definidos, lo
cual se conoce como sistema multinivel. Así mismo y tal como se indica en la fuente
https://peredafp.files.wordpress.com/2009/02/04-estructura-w indows-2000.pdf “En
Windows se ejecuta en modo privilegiado el kernel y el Ejecutivo. En modo usuario los
susbsistemas. Los programas de usuario interaccionan con el SO a través de un juego de
llamadas al sistema (funciones): API (Application Programming Interface)”.
El diagrama de bloques característico de Windows NT se muestra en la Figura Nº15 a
continuación:
33
Figura Nº 15 Diagrama de Bloques Windows Server 2008
Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT
3.3 Descripción de cada bloque
Modo Núcleo (Kernel): Esta capa está compuesta por dos subsistemas capaces de gestionar
los procesos de E/S. Los cuales según lo descrito en la fuente electrónica
(https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT) son los siguientes “el
subsistema de Entorno (ejecuta aplicaciones escritas para distintos tipos de sistemas
operativos), y el subsistema Integral (maneja funciones específicas de sistema de parte del
subsistema de Entorno)”.
34
El modo núcleo de Windows Server 2008 tiene acceso total al hardware, además según la
misma fuente (https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT) “impide a los
servicios del modo usuario y las aplicaciones acceder a áreas críticas del sistema operativo
a las que no deberían tener acceso”.
El núcleo (kernel) también es responsable de inicializar los controladores de dispositivos
al arrancar el sistema, existen 03 niveles de controladores en el modo núcleo los cuales se
definen como de alto, intermedio y bajo nivel. En la Figura Nº6 se muestra un resumen del
núcleo del S.O en estudio. (Ver Figura Nº16):
Figura Nº 16 Núcleo de Windows Server 2008
Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT
Así mismo, los subsistemas y componentes del modo núcleo se describen a continuación:
 Administrador de objetos (Object Manager): es un subsistema ejecutivo que todos
los demás subsistemas ejecutivos, especialmente las llamadas al sistema, deben
pasar para obtener acceso a los recursos de Windows Server 2008, lo que lo
convierte en un servicio de infraestructura de administración de recursos. El
administrador de objetos se utiliza para reducir la duplicación de la funcionalidad de
administración de recursos de objetos en otros subsistemas ejecutivos, lo que podría
35
provocar errores y dificultar el desarrollo de Windows. En la Figura Nº6 se muestra
la interfaz de administración de objetos de Windows Server 2008. (Ver Figura
Nº17):
Figura Nº 17 Administrador de Objetos Windows Server 2008
Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT
 Gestor de procesos (Process Manager): Responsable de crear y terminar procesos y
subprocesos usando las funciones subyacentes del kernel. En la figura Nº7 se
muestra la interfaz de usuario de Windows Server para gestión de procesos. (Ver
Figura Nº18)
36
Figura Nº 18: Administrador de Procesos Windows Server 2008
Fuente: http://rickardnobel.se/windows-2008-r2-memory-counters-in-task-manager/
 Administrador de memoria virtual (Virtual Memory Manager): Bloque encargado
de Implementar la memoria virtual utilizada para asignar un espacio de direcciones
privadas a cada proceso. La interfaz de administración y monitoreo de la memoria
virtual de Windows Server 2008 está incluida en la interfaz del administrador de
procesos, tal como se observa en la figura Nº 19.
Figura Nº 19: Administrador de Memoria Virtual Windows Server 2008
Fuente: https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the-
limits-of-windows-virtual-memory/
37
 Gestor de E/S (I/O Manager):Según la fuente
https://www.oreilly.com/library/view/securing-window.html “Este bloque se
encarga de proporcionar un sistema de E / S independiente del dispositivo a los
procesos.”Es decir, envía las solicitudes de E / S al controlador de dispositivo
apropiado. Y además permite que los dispositivos se comuniquen con los
subsistemas en modo usuario. Otras de sus funciones es traducir los comandos de
lectura y escritura en modo usuario en los IRP de lectura o escritura que pasa a los
controladores de dispositivo. A partir de Windows NT Server 4.0, Terminal Server
Edition, el administrador de memoria implementa el denominado espacio de sesión,
un rango de memoria en modo kernel que está sujeto a cambio de contexto, al igual
que la memoria en modo usuario.
 Llamadas a Procedimientos Local (LPC Manager): Este bloque según lo indicado
en la fuente https://www.oreilly.com/library/view/securing-window.html
“Implementa una versión rápida y liviana de RemoteProcedureCall (RPC) para la
comunicación entre componentes dentro de una computadora.” Es decir,
proporciona puertos de comunicación entre procesos con semántica de conexión.
Sin embargo también es usado por el modo usuario para comunicarse con sus
clientes, los subsistemas ejecutivos para comunicarse con los subsistemas en modo
usuario y como base para el transporte local de Microsoft RPC.
 Monitor de referencia de seguridad (SRM): Es la autoridad principal para hacer
cumplir las reglas de seguridad del subsistema de seguridad integral. Determina si
se puede acceder a un objeto o recurso, mediante el uso de listas de control de
acceso (ACL), que a su vez se componen de entradas de control de acceso (ACE).
La cual es definida en la fuente electrónica
https://www.oreilly.com/library/view/securing-window.htmlcomo “Aplica las
políticas de acceso y auditoría en el sistema. El Monitor de referencia de seguridad
proporciona validación de acceso, verificación de privilegios y generación de
mensajes de auditoría en tiempo de ejecución para los procesos en modo usuario y
kernel”.
38
 Administrador de ventanas e interfaz gráfica de dispositivos GDI: Según la fuente
electrónica https://www.oreilly.com/library/view/securing-window.html “Estos
componentes forman parte del modo kernel del subsistema Win32. Manejan la
entrada del usuario y la salida de pantalla. Todo el subsistema Win32 se ejecutó
originalmente en modo de usuario; sin embargo, por razones de rendimiento, una
parte de ella se movió al modo kernel a partir de NT 4.0”. La interfaz del dispositivo
gráfico es responsable de tareas como dibujar líneas y curvas, renderizar fuentes y
manejar paletas. La serie de versiones de Windows NT 3.x colocó el componente
GDI en el Subsistema de Tiempo de Ejecución Cliente / Servidor en modo usuario,
pero se movió al modo kernel con Windows NT 6.0 de Windows Server 2008 para
mejorar el rendimiento de los gráficos.
 Administrador de energía (Power Manager): Se ocupa de los eventos de energía
(apagado, en espera, hibernación, etc.) y notifica a los controladores afectados con
IRP especiales (IRP de energía). En la figura Nº9 se muestra la interfaz de
administrador de energía de Windows Server 2008 (Ver Figura Nº 20):
Figura Nº 20: Administrador de Energía Windows Server 2008
Fuente: https://blogs.technet.microsoft.com/askds/2008/03/17/managing-power-with-
group-policy-part-1-of-3/
39
 Gestor de PnP (PnP Manager): Maneja plug and play y admite la detección e
instalación de dispositivos en el momento del arranque. También tiene la
responsabilidad de detener e iniciar dispositivos a pedido. Esto puede suceder
cuando un bus (como USB o IEEE 1394 FireWire) obtiene un nuevo dispositivo y
necesita tener un controlador de dispositivo cargado para admitirlo.
Modo Usuario (Executive): Esta capa se relaciona con todos los subsistemas del modo
usuario, esta es la responsable de la entrada/salida de objetos, la seguridad y la gestión de
procesos; además según lo documentado en la fuente electrónica
https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT entre sus funciones se
encuentra “proporcionar sincronización multiprocesador, hilos y programación y envío de
interrupciones, y envío de excepciones.” La Figura Nº21 muestra el entorno de usuario.
Figura Nº 21 Modo Usuario Windows Server 2008
Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT
Los subsistemas que se ejecutan en modo de usuario se denominan subsistemas de
entorno. Hay tres subsistemas de entorno, descritos a continuación:
 Subsistema Win32: La parte del subsistema Win32 que se ejecuta en modo de
usuario. El subsistema Win32 es una parte requerida del sistema operativo y se
carga como parte de la secuencia de inicio. El subsistema consta de las DLL de la
API de Win32 (kernel32.dll, user32.dll, gdi32.dll) y el proceso del subsistema de
Win32 (csrss.exe).
40
 Subsistema POSIX: Proporciona soporte para aplicaciones POSIX.1. Es un
componente opcional que se carga bajo demanda.
 Subsistema OS / 2 1.x: Proporciona soporte para aplicaciones de consola OS / 2 1.x.
Es un componente opcional que se carga bajo demanda.
CAPÍTULO 4. Conceptualización de Procesos y/o hilos
4.1 Conceptos de Procesos y/o hilos.
Procesos: Los procesos en Windows Server 2008 al igual que Windows NT 6.1 el cual es
su núcleo, se implementan como objetos y son accedidos mediante servicios de objetos. Un
proceso NT tiene asociados varios hilos que se ejecutan en su espacio de direccionamiento.
Así mismo, el diseño de los procesos de Windows Server 2008 está dirigido por la
necesidad de dar soporte a varios entornos de sistemas operativos. Por lo cual tal como lo
indican Alvear Luis y Álvarez David (2012) “la estructura nativa de los procesos y de los
servicios que brinda el núcleo de NT 6.1 es relativamente simple y de propósito general,
permitiendo a cada subsistema emular la estructura y la funcionalidad particular de los
procesos de un sistema operativo.” (pág. 21)
Las características más importantes de los procesos de NT son las siguientes:
 Los procesos de Windows Server 2008 se implementan como objetos.
 Un proceso ejecutable puede tener uno o más hilos.
 Los objetos proceso y los objetos hilo tienen capacidades predefinidas de
sincronización.
 El núcleo de Windows Server 2008 no conserva ninguna relación entre los procesos
que crea, incluyendo las relaciones padre-hijo.
Cada proceso en Windows Server 2008 tiene una señal de acceso que le sirve para
cambiar sus propios atributos. También tienen que ver con el proceso una serie de bloques
que definen el espacio de direcciones virtuales asignado. El proceso no puede modificar
directamente estas estructuras, sino que debe depender del administrador de memoria
virtual, quien le proporciona al proceso un servicio de asignación de memoria. Finalmente,
el proceso incorpora una tabla de objetos, con los descriptores de otros objetos que conoce.
41
En la Figura Nº11 se muestra un ejemplo de la estructura de un proceso en Wind0ws Server
2008. (Ver Figura Nº 22):
Figura Nº 22 Estructura de un Proceso Windows Server 2008
Fuente: https://sisoperativoutp1995.wordpress.com/2016/10/01/procesos-en-windows-
nt2000/
En la Figura Nº 23 se muestra la descripción de los atributos de un proceso.
42
Figura Nº 23: Atributos de un Proceso Windows Server 2008
Fuente: https://sisoperativoutp1995.wordpress.com/2016/10/01/procesos-en-windows-
nt2000/
Hilos: Los hilos son similares a los procesos ya que ambos representan una secuencia
simple de instrucciones ejecutada en paralelo con otras secuencias. Estos según lo indicado
por Alvear Luis y Álvarez David (2012) son:
una forma de dividir un programa en dos o más tareas que corren simultáneamente,
compitiendo, en algunos casos, por la CPU. La diferencia más significativa entre los
procesos y los hilos, es que los primeros son típicamente independientes, llevan
bastante información de estados, e interactúan sólo a través de mecanismos de
comunicación dados por el sistema. (pág.26)
Por otra parte, los hilos generalmente comparten la memoria, es decir, acceden a las
mismas variables globales o dinámicas, por lo que no necesitan costosos mecanismos de
comunicación para sincronizarse. Por ejemplo un hilo podría encargarse de la interfaz
gráfica (iconos, botones, ventanas), mientras que otro hace una larga operación
internamente. De esta manera el programa responde más ágilmente a la interacción con el
usuario. En sistemas operativos que proveen facilidades para los hilos, es más rápido
43
cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro. Es
posible que los hilos requieran de operaciones atómicas para impedir que los datos
comunes sean cambiados o leídos mientras estén siendo modificados. El descuido de esto
puede generar estancamiento. En el Cuadro Nº4 se muestra la diferencia entre un proceso y
un hilo en Windows:
Cuadro Nº4
Diferencia entre Procesos e Hilos
Proceso Hilo
Manejado por el S.O, independiente de
otros procesos. Maneja memoria privada, se
necesitan mecanismos de comunicación
para compartir información.
Manejados por los procesos, relacionados
con otros hilos del mismo proceso.
Memoria compartida con el resto de los
hilos que forman el proceso.
Fuente: Procesos e Hilos en los Sistemas Operativos Windows y Linux. Luis F. Alvear,
David A. Álvarez (2012)
Así mismo, nótese cómo en la Figura Nº24 se puede apreciar que los procesos son
entidades independientes, mientras que los hilos son entidades relacionadas por la sección
de datos en el interior del proceso que los contiene.
Figura Nº 24 Procesos e Hilos
Fuente: Procesos e Hilos en los Sistemas Operativos Windows y Linux. Luis F. Alvear,
David A. Álvarez (2012)
44
En resumidas cuentas, y tal como se indica en la fuente
https://www.monografias.com/trabajos26/estados-proceso-hilos/:
Un proceso es una entidad correspondiente a un trabajo de usuario o a una
aplicación, que dispone de sus propios recursos, tales como memoria y archivos. Un
hilo es una unidad de trabajo que se puede expedir para su ejecución secuencial y
que es interrumpible, de forma que el procesador puede pasar de un hilo a otro.
4.2 Diagrama de estado de Procesos y/o hilos
A continuación se muestra en la Figura Nº 25 la transición entre estados de un hilo en
Windows Server 2008:
Figura Nº 25: Transición de los estados de un hilo.
Fuente: https://sisoperativoutp1995.wordpress.com/2016/10/01/procesos-en-windows-
nt2000/
Los estados de un hilo son los siguientes:
 Alerta: Seleccionado como el siguiente hilo a ser ejecutado en un procesador dado.
Operación (planificación) previa a la invocación de un cambio de contexto.
 Bloqueado: Espera a que un objeto de sincronización pase a una situación de
marcado (“signaled”) que indique la llegada del evento de espera.
45
 Listo: El hilo listo para ejecutarse
 Ejecución: El hilo está ejecutando
 Standby: El hilo ha sido seleccionado para ser ejecutado en un procesador
particular.
 Waiting: Se encuentra bloqueado esperando un evento
 Terminated: Finalización del hilo.
De igual manera en la Figura Nº 26 a continuación se describe la implementación de
procesos e hilos en Windows NT (Núcleo de Windows Server 2008):
Figura Nº 26: Implementación de los procesos e hilos en Windows NT/2000.
Fuente: https://sisoperativoutp1995.wordpress.com/2016/10/01/procesos-en-windows-
nt2000/
Estados de un Proceso: Al igual que los hilos, los procesos también pueden estar en ciertos
estados, para los cuales la Figura Nº 27 muestra un ejemplo de estos:
46
Figura Nº 27: Estados de un Proceso
Fuente: Procesos e Hilos en los Sistemas Operativos Windows y Linux. Luis F. Alvear,
David A. Álvarez (2012)
Hay una cola sencilla de procesos. Cada entrada de la cola es un puntero a un proceso en
particular. Cuando un proceso se interrumpe, se le pasa a la cola de procesos en espera. Por
otra parte, si un proceso termina o se abandona, este sale del sistema. En cualquier caso, el,
distribuidor selecciona entonces un proceso de la cola para ejecutarlo. En función a esto y
según los autores Alvear Luis y Álvarez David (2012) antes citados:
Algunos procesos en el estado de No Ejecución están listos para ejecutar, mientras
que otros están bloqueados, esperando a que termine una operación de E/S. Los
procesos esperan cola en una lista en la cual el primero en entrar, es primero en
salir. Así pues, utilizando una cola sencilla, el distribuidor podría no seleccionar
exactamente el proceso que está en el extremo más antiguo de la cola, por lo cual se
han incorporado algunos estados de gran utilidad. (pág.40)
Así, los posibles estados de un proceso son los siguientes:
 Ejecución: El proceso que está actualmente en ejecución.
 Listo: Proceso que está preparado para ejecutar, en cuanto se le dé la oportunidad.
 Bloqueados: Proceso que no puede ejecutar hasta que se produzca cierto suceso,
como la terminación de una operación de E/S.
47
 Nuevo: Proceso que se acaba de crear, pero que aún no ha sido admitido por el
sistema operativo en el grupo de procesos ejecutables
 Terminado: Un proceso que ha sido excluido por el sistema operativo del grupo de
procesos ejecutables.
En la Figura Nº 28 se muestra una representación de los mismos:
Figura Nº 28: Estados de un Proceso
Fuente: Procesos e Hilos en los Sistemas Operativos Windows y Linux. Luis F. Alvear,
David A. Álvarez (2012)
CAPÍTULO 5.- Planificación de procesos
5.1 Sincronización de procesos
La forma en que se reparte el uso de la CPU entre los procesos, tiene un enorme impacto
en el rendimiento de un sistema multiprogramado, por lo que siempre se ha prestado una
gran atención a las políticas de planificación que se implementan y se han elaborado
multitud de conceptos relacionados con ello. Como conocimiento general, Además de por
su arquitectura, Los distintos sistemas operativos se diferencian por las soluciones que
aportan a los requisitos de funcionamiento, por lo que uno de los objetivos principales es
proporcionar una utilización eficiente de los recursos del proceso, permitiendo a los
procesos un uso de ellos que evite situaciones de inanición.
Según TANENBAUM (2009) “Un proceso no es más que una instancia de un programa
en ejecución, incluyendo los valores actuales del contador de programa, los registros y las
48
variables” (p. 84), lo que quiere decir que un proceso es un programa en ejecución que
necesita estar cargado en memoria y disponer de recursos (CPU, memoria, archivos,
dispositivos de E/S) para cumplir su objetivo. Mientras que los programas son un conjunto
de archivos que están almacenados en algún dispositivo de almacenamiento (disco duro,
pendrive…) y cuyo código fuente está escrito en algún lenguaje de programación. Cuando
este conjunto de archivos se ejecutan, entonces pasan a ser un proceso.
Aunque la política de planificación es independiente, en general, del número de unidades
de proceso, los sistemas multiprocesador requieren políticas complementarias que tienen
como objetivo un compromiso entre el equilibro de la carga de los procesadores, que
conduce a una mejor utilización de estos, y el aprovechamiento de la localidad de los
procesos, que impulsa a mantener a cada proceso en un mismo procesador durante su
ejecución.
Evaluar la calidad de una política de planificación es complejo y presenta diferentes
perspectivas, dependiendo de los intereses de las aplicaciones, lo que lleva a definir
previamente un conjunto de parámetros de rendimiento. El rendimiento de una determinada
política de planificación dependerá también del comportamiento de los programas, por lo
que la elección de una u otra política deberá tener en cuenta el tipo de procesos que ejecuta
el sistema, fundamentalmente si están orientados a cálculo o son interactivos. El sistema
operativo se encarga de enlazar las aplicaciones con los dispositivos de hardware, por lo
que deberá controlar elementos de ambas subestructuras. Algunas aplicaciones, como las de
tiempo real, imponen unos requisitos muy particulares en el uso del procesador, lo que hace
difícil su convivencia con las aplicaciones habituales en los sistemas de propósito general
(de tiempo compartido), conduciendo a políticas de planificación de tiempo real
específicas.
La parte del S.O. encargada de seleccionar el siguiente proceso para ejecutar es el
planificador (scheduler) pero otras partes del sistema pueden colaborar en esta tarea,
normalmente modificando los parámetros que utiliza el scheduler para decidir qué proceso
planificar. Los objetivos de un planificador varían dependiendo del entorno de aplicación
según comenta Pedro Cabalar (S.F) en su trabajo llamado “Sistemas Operativos”
49
- “Entornos de proceso por lotes (batch): Se denomina planificador a largo plazo (o de
trabajos) y mayormente decide el orden de los trabajos y el grado de multiprogramación.
(ej. Inventarios, cálculos de nóminas, etc.)
- Entornos interactivos: entornos gráficos, servidores, etc. Planificación apropiativa para
atender distintos procesos concurrentemente (tiempo compartido). Se suele llamar
planificador a medio plazo.
- Entornos de tiempo real: menos dependencia de apropiación de CPU. Los procesos no
ejecutan por largos períodos de tiempo. El sistema y sus procesos suelen ser más limitados
y controlados”.
La Figura 29 muestra el esquema de administración de procesos de Windows Server 2008:
Figura Nº29. Principales Planificadores de la CPU
Fuente: https://gsitic.wordpress.com/2017/12/10/bii2-conceptos-de-sistemas-operativos-
estructuras-componentes-y-funciones-caracteristicas-y-evolucion-administracion-de-
memoria-procesos-y-subprocesos-entrada-salida-sistemas-de-archivo-siste/
Planificador a largo plazo: Una vez creado un proceso
- Decide algunos de los criterios para su planificación
- Selecciona procesos de la cola de esperando ejecución y los carga a memoria.
- Controla el grado de multiprogramación. Es importante que elija un conjunto
equilibrado de procesos.
- Se ejecuta con poca frecuencia.
50
Para estos sistemas de procesamiento son aceptables los algoritmos no apropiativos
(o apropiativos con largos periodos para cada proceso). Este método reduce la conmutación
de procesos y por ende, mejora el rendimiento. En realidad, los algoritmos de
procesamiento por lotes son bastante generales y a menudo se pueden aplicar a otras
situaciones también.
Planificador a corto plazo:
- Selecciona los procesos que se sacaran o introducirán temporalmente en la memoria
principal, al sacar un proceso de memoria por problemas de espacio, hace que este
no sea inmediatamente planificable.
- Se ejecuta con mucha frecuencia.
En un entorno con usuarios interactivos, la apropiación es esencial para evitar que un
proceso acapare la CPU y niegue el servicio a los demás. Aun si no hubiera un proceso que
se ejecutara indefinidamente de manera intencional, podría haber un proceso que
deshabilitara a los demás de manera indefinida, debido a un error en el programa. La
apropiación es necesaria para evitar este comportamiento. Los servidores también entran en
esta categoría, ya que por lo general dan servicio a varios usuarios (remotos), todos los
cuales siempre tienen mucha prisa.
Planificador a medio plazo:
- Decide qué proceso pasa de la memoria principal a la secundaria (memoria virtual)
o viceversa.
- Cada vez que un proceso abandona la CPU, toma la decisión de qué proceso
planificar en función de la política de planificación establecida y del valor de los
parámetros de planificación.
Políticas principales para la planificación:
Planificación no apropiativa: (algoritmos no expulsivos)
- Los procesos se ejecutan hasta que terminan o se bloquean.
- Sencillo de implementar.
51
- Rendimiento negativo en general.
Planificación apropiativa: (algoritmos expulsivos)
- Los procesos pueden ser expulsados de la CPU.
- Mayor coste de implementación. Necesitan soporte hardware adicional (relojes)
- Mejora el servicio y evita monopolización de la CPU.
En los sistemas con restricciones de tiempo real, la apropiación a veces es no necesaria
debido a que los procesos saben que no se pueden ejecutar durante periodos extensos, que
por lo general realizan su trabajo y se bloquean con rapidez. La diferencia con los sistemas
interactivos es que los sistemas de tiempo real sólo ejecutan programas destinados para
ampliar la aplicación en cuestión. Los sistemas interactivos son de propósito general y
pueden ejecutar programas arbitrarios que no sean cooperativos, o incluso
malintencionados.
5.2 Planificación de sistemas en ambiente Multiprogramación
Se denomina multiprogramación a la técnica que permite que dos o más procesos ocupen la
misma unidad de memoria principal y que sean ejecutados al "mismo tiempo" en la unidad
central de proceso o CPU como ya vimos en los capítulos anteriores.
El concepto de multiprogramación no se debe confundir con operación de multiproceso. Si
bien el primer término implica el último, no sucede en viceversa. La operación
multiproceso es la gestión de la totalidad de los recursos del sistema de la computadora
mediante la implementación de cauce segmentado. La multiprogramación modificó el
esquema de implementación de sistemas operativos por lotes al permitir alcanzar una
mayor interacción entre los usuarios y programas en ejecución, un mayor rendimiento total
del sistema y la creación de sistemas dinámicos que facilitan la implementación y
estandarización de nuevos programas y conexiones con sistemas externos.
Los sistemas multiprogramados son sistemas complejos, con cierta sofisticación. Tienen un
número variado de procesos preparados para ejecutar, que hay que mantener
simultáneamente en memoria, o por lo menos información sobre ellos. Son procesos, por
otra parte que se van alternando en el uso de todos los recursos del sistema, no sólo la CPU,
52
sino también la memoria física, los dispositivos e incluso recursos lógicos, como puede ser
la posesión de estructuras de sincronización (semáforos, esperas activas,...). El tener
trabajando sobre los mismos recursos del sistema a diferentes procesos, de diferentes
aplicaciones, con diferentes necesidades y características, es un factor decisivo a la hora de
elegir políticas de asignación de procesos a procesadores.
Como saber qué procesos pueden competir por qué conjunto de recursos y cómo, puede
cambiar de manera drástica el rendimiento de un sistema. Los algoritmos de planificación
son las políticas que se seguirán para elegir qué proceso entra en cada momento a
ejecutarse en el sistema. La política utilizada es crítica para decidir el orden de ejecución de
los procesos, por lo que al efectuar una planificación se siguen los siguientes criterios:
 Maximizar la utilización y productividad de la CPU.
 Minimizar el tiempo de retorno, de espera y de respuesta.
La multiprogramación significa que varios programas que están en memoria al mismo
tiempo pueden compartir la CPU, mejorando la eficiencia global del sistema y realizando
más trabajo en menos tiempo.
Un trabajo se ejecuta hasta que deba aguantar; normalmente para terminar alguna solicitud
de E/S. En un sistema informático sencillo, la CPU permanecería inmóvil durante ese
tiempo; con la multiprogramación sin embargo, si mantenemos en memoria varios trabajos
al mismo tiempo, cuando uno de ellos tiene que esperar, el sistema operativo retira de la
CPU ese trabajo y la dedica a otro.
En la figura 30 se puede observar como la ejecución de los 3 procesos (o hilos) se va
solapando en el tiempo a tal velocidad, que causa la impresión de realizarse en paralelo
(simultáneamente). De ahí que, en rigor, se diga que la CPU ejecuta «concurrentemente»
(no simultáneamente) varios procesos; en un lapso de tiempo determinado, se ejecutarán
alternativamente partes de múltiples procesos cargados en la memoria principal.
53
Figura Nº 30. Multiprogramación
Fuente: http://soperativosos.blogspot.com/2015/04/multiprogramacion.html
Como tipos de sistemas operativos de multiprogramación tenemos:
Sistemas de tiempo compartido: Poseen un buen tiempo de respuesta del terminal y tratan
con frecuencia de proporcionar un reparto equitativo de los recursos comunes para dar la
ilusión a cada usuario de poseer la máquina para el mismo. Su algoritmo empleado en el
despacho de las actividades es único de la filosofía de estos sistemas. El mismo consiste en
la ejecución de los programas con prioridad rotatoria que se incrementa con las esperas y
cae después de que se dispensó el servicio. El sistema operativo interrumpe un programa y
lo pone al final de la cola de programas en espera, cuando es más largo que la fracción de
tiempo definida por el sistema, para prevenir a los programas de la monopolización del
procesador.
El gestor de memoria del sistema proporciona el aislamiento y protección de los programas
en ejecución. Sin embargo, se puede emplear un espacio de memoria compartido
controlado por el sistema operativo.
Los componentes de entrada salida se rigen por un gestor I/O que debe permitir la
cooperación con múltiples usuarios y dispositivos. Debido a la lenta respuesta de los
terminales humanos y la reacción o respuesta humana, el procesamiento de las
interrupciones del terminal no necesita ser críticas para el tiempo.
54
El gestor de archivos, por otro lado, debe proporcionar protección y control de acceso, dado
a la posibilidad de concurrencia y de conflictos al acceder a los archivos.
Sistemas de tiempo real: Se usan en entornos donde se deben aceptar y procesar en tiempo
breve y sin tiempos muertos un gran número de sucesos, en su mayoría externos al sistema
de computadora. Son asuntos secundarios la conveniencia del usuario y la utilización de
recursos.
Estos sistemas se caracterizan principalmente por encargarse de procesos que se activan al
ocurrir el suceso relacionado, señalado frecuentemente por una interrupción. Se consigue el
multiproceso planificando los procesos independientes unos de otros. Se asigna a cada
proceso un cierto nivel de prioridad que corresponde a la importancia relativa de los
sucesos que sirve. El procesador está normalmente asignado al proceso con más alta
prioridad entre los que están listos para ejecutarse. Esta forma de planificación se llama
planificación basada en la prioridad preferente.
Generalmente estos sistemas de operación no poseen ningún tipo de almacenamiento
secundario, solamente en aquellos sistemas de grandes magnitudes en los cuales si es
requerido se necesita la implementación de un gestor de archivos que como en otros tipos
de sistemas operativos debe manejar protección y control de acceso.
Sistemas operativos combinados: Los sistemas combinados se caracterizan por poseer
bloques o lotes que se ejecutan con una menor prioridad que el resto de las aplicaciones.
Así se logra el uso completo del procesador al eliminar los tiempos muertos o de espera.
5.3 Planificación de sistemas en ambiente Multiprocesamiento
El rendimiento que pueda obtenerse en cualquier sistema informático es resultado de la
combinación del hardware y del software; y como elemento radical del software, el sistema
operativo. Con la aparición de máquinas de propósito general de más de un procesador,
surge la necesidad de adaptar los sistemas operativos ya existentes para la gestión de un
nuevo recurso con múltiples instancias: el procesador, la mayoría de las realizaciones de
sistemas multiprocesadores suelen incluir el diseño de mecanismos para la sincronización y
comunicación entre procesadores. Para una mayor eficiencia, se intenta incluso que estos
55
mecanismos formen parte del hardware de la máquina, aumentando o modificando, si es
posible, el conjunto de instrucciones del procesador.
La planificación de procesos en un sistema multiprocesador presenta dos componentes
importantes:
- Planificación temporal, que define la política de planificación en cada procesador
individual, exactamente igual que si de un monoprocesador se tratase, salvo por el
hecho de que en los multiprocesadores es menos relevante para el rendimiento la
política que se elija, y tanto menos cuanto más procesadores. En la planificación
temporal se decide qué procesos se ejecutan.
- Planificación espacial, que define cómo se asignan los procesadores a los diferentes
procesos. En la planificación espacial se decide en qué procesadores se ejecutan los
procesos.
En un multiprocesador moderno existen niveles de memoria cache (interna y externa)
privados para cada procesador, lo que, como veremos, tiene relevancia para la elección de
una política de planificación, de las cuales hay gran variedad hoy en día. Corvella y otros
(1991) indican “Podemos agruparlas todas ellas en dos grandes familias: las políticas de
tiempo compartido y las de espacio compartido”.
 Las políticas de planificación de tiempo compartido: Reparten el recurso procesador
entre las aplicaciones en función del tiempo total del sistema, asignándoles ranuras
(slots) de tiempo. Son adaptaciones de las políticas de planificación de sistemas
monoprocesador de las que provienen en su fundamento como ya hemos desarrollado en
los títulos anteriores.
 Las políticas repartiendo todo el sistema en función de su espacio: es decir,
particionando el número total de procesadores entre las aplicaciones del sistema. Como
caso especial de planificación en multiprocesadores está la planificación de grupos: se
considera toda la máquina como una única partición y se multiplexa en el tiempo todo el
grupo de procesadores como bloque entre las diferentes aplicaciones.
56
Para agregarle contenido a lo citado, las políticas de planificación de tiempo compartido
buscan decidir qué proceso seleccionar para ser ejecutado en un determinado procesador
según una prioridad asignada a cada proceso. Por lo que podemos concluir que lo que
define estas políticas propuestas, son los parámetros bajo los que se determina la prioridad
de un proceso entre los cuales están:
- El tiempo de CPU consumido en total desde el inicio de su ejecución, o consumido
recientemente desde su última planificación
- El tamaño del proceso (tiempo que se estime va a durar su ejecución),
- El número de flujos, o cualquier otro criterio previsto por el sistema, o por el
usuario.
Hay que acotar que los sistemas que se basan puramente en la prioridad que se asigna a un
proceso, pueden tener problemas de inanición; es por eso que para solucionar este
problema, la mayoría de sistemas basados en prioridades las van cambiando en el tiempo
mediante un mecanismo de envejecimiento (aging). Se conocen también como sistemas de
prioridades dinámicas.
La política más sencilla, conocida como de “tiempo compartido” por excelencia, es la de
round-robin, que como ya vimos en capítulos anteriores, asigna a cada proceso un tiempo
concreto de procesador, arbitrado por el reloj del sistema, y al finalizar este tiempo se cede
la CPU al siguiente proceso de la cola de preparados.
Con respecto a las políticas de espacio compartido, las mismas combinan planificación
temporal y espacial. Se utilizan en entornos de cálculo intensivo, generalmente con
aplicaciones multithread. Pueden clasificarse en dos tipos, que no se excluyen entre sí:
- Políticas de planificación en grupos y
- Políticas de particionado.
Diferenciándose entre ellas en que mientras la planificación en grupos escoge todos los
procesadores para cada aplicación, el particionado proporciona a cada aplicación una
máquina más pequeña, dedicada, de la que se intenta obtener la máxima utilización
57
Se pueden dar dos enfoques de planificación en multiprocesadores:
- Cada procesador se autoplanifica: cada procesador analiza la cola y escoge un
proceso que ejecuta, por lo que hay que asegurarse de que dos procesadores no
escogido el mismo proceso para ejecutar y de que no se pierden procesos en la cola.
- Un procesador planifica a los demás: se tiene una estructura maestro/esclavo. El
procesador principal ejecuta el sistema operativo y las rutinas principales y los
esclavos solo ejecutan programas de usuarios. El problema puede surgir si se queda
bloqueado el maestro.
5.4 Estrategia real de Planificación de Procesos de Windows Server 2008
Para nuestro caso al tratarse de servidores en red, varios procesos compiten a menudo por
la CPU, por lo que la planificación retoma importancia. Por ejemplo, cuando la CPU tiene
que elegir entre ejecutar un proceso que recopila las estadísticas diarias y uno que atiende
las peticiones de los usuarios, habrá usuarios más contentos si el segundo tipo de procesos
tiene prioridad sobre la CPU.
Además de elegir el proceso correcto que se va a ejecutar a continuación, el planificador
también tiene que preocuparse por hacer un uso eficiente de la CPU, debido a que la
conmutación de procesos es cara. Para empezar, debe haber un cambio del modo de usuario
al modo kernel. Después se debe guardar el estado del proceso actual, incluyendo el
almacenamiento de sus registros en la tabla de procesos para que puedan volver a cargarse
más adelante. En muchos sistemas, el mapa de memoria se debe guardar y luego
seleccionar un nuevo proceso mediante la ejecución del algoritmo de planificación.
Después de eso, se debe volver a cargar en la MMU el mapa de memoria del nuevo proceso
y finalmente iniciar.
Generalmente la conmutación de procesos hace inválida toda la memoria caché, por lo que
tiene que volver a cargarse en forma dinámica desde la memoria principal dos veces (al
momento de entrar al kernel y al salir de éste). Con todo, si se realizan muchas
58
conmutaciones de procesos por segundo, se puede llegar a consumir una cantidad
considerable de tiempo de la CPU, por lo cual se aconseja tener precaución.
La política de planificación utilizada por nuestro SO es el Round robin (turno circular)
el cual pertenece a los algoritmos apropiativos, Uno de los algoritmos más antiguos,
simples, equitativos y de mayor uso y es un método para seleccionar todos los elementos en
un grupo de manera equitativa y en un orden racional, normalmente comenzando por el
primer elemento de la lista hasta llegar al último y empezando de nuevo desde el primer
elemento. El nombre del algoritmo viene del principio de Round-Robin conocido de otros
campos, donde cada persona toma una parte de un algo compartido en cantidades parejas.
Una forma sencilla de entender el round robin es imaginar una secuencia para "tomar
turnos". En operaciones computacionales, un método para ejecutar diferentes procesos de
manera concurrente, para la utilización equitativa de los recursos del equipo, es limitando
cada proceso a un pequeño período (quantum), y luego suspendiendo éste proceso para dar
oportunidad a otro proceso y así sucesivamente. A esto se le denomina comúnmente como
Planificación Round-Robin. El cual se describe en la Figura 31:
Figura Nº31: Algoritmo Round Robin.
Fuente:https://www.monografias.com/trabajos105/planificacion-procesos/planificacion-
procesos.shtml
59
La desventaja principal de este algoritmo es que cambia los procesos en ejecución con
demasiada frecuencia, lo que supone una pequeña pérdida de tiempo.
Desde Windows NT, se ha planificado threads por prioridades, siguiendo un esquema
parecido al de UNIX. Contando con 32 niveles de prioridad divididos en dos clases. Los 16
niveles superiores, de prioridades estáticas, constituyen la clase de tiempo real. Los 16
inferiores (clase variable), donde se ubican los threads de usuario, son de tiempo
compartido y se gestionan con disciplina FCFS (Planificación primero entra primero
servido). En un multiprocesador con N procesadores, la planificación de threads en
Windows se basa en dos criterios: (1) afinidad al procesador, y (2) asignar N‒1
procesadores a los N‒1 threads más prioritarios y el restante a todos los demás. Como
podemos ver en el Cuadro Nº 5 nuestro SO tiene la característica de ser un SO multitarea,
multiproceso y multiprocesamiento.
Cuadro Nº5.
Comparación entre versiones.
Sistema Operativo
Nº de
usuarios
Nº de procesos
Nº
procesadores
Tiempo de
respuesta
MS-DOS Mono Mono Mono Real
Windows 9x, Me Mono Pseudo multitarea Mono Compartido
Windows NT
Workstation, 2000
Professional,
XP/Vista/7/8
Mono Multi Multi Compartido
UNIX, Linux,
Windows NT Server,
Windows 2000 Server,
2003 Server y 2008
Server
Multi Multi Multi Compartido
Fuente: Los autores (2019) con información disponible en:
https://www.microsoft.com/es-es/cloud-platform/windows-server-comparison
Uno de los cambios de bajo nivel en el sistema es que Windows Server 2008 sólo incluye
una versión del kernel diseñada para funcionar en sistemas multiprocesador. En el pasado,
Windows usaba una versión específica a monoprocesadores en equipos con una sola CPU
60
porque esta versión podía lograr un rendimiento ligeramente superior al omitir el código de
sincronización necesario sólo en entornos de multiprocesador. Con la aceleración del
hardware, las ventajas de rendimiento de las optimizaciones se vuelven insignificantes, y la
mayoría de los sistemas de servidor actuales incluyen más de un procesador, lo que
convierte en innecesaria una versión monoprocesadora.
El Cuadro Nº 6 muestra las variantes del kernel de Windows Server 2008, donde la
versión usada en un sistema depende de si es la versión depurada (comprobada) o la versión
a la venta del sistema operativo, si la instalación es de 32 bits o de 64 bits. Cabe mencionar
que Windows Server 2008 es también el último sistema operativo de Windows Server que
ofreció con una versión de 32 bits.
Cuadro Nº 6
Variantes del kernel de Windows Server 2008.
Kernel 32 bits 64 bits
Multiprocesador Sí Sí
Multiprocesador comprobado Sí Sí
Multiprocesador con extensión de dirección física (PAE) Sí No
Multiprocesador PAE comprobado Sí No
Fuente: http://www.mug-it.org.ar/Note.aspx?Note=333279
CAPÍTULO 6.-GESTIÓN DE LA MEMORIA
Parafraseando la ley de Parkinson, diría que los programas se expanden para llenar la
memoria disponible para contenerlos. Partiendo de esto, la gestión de memoria es quien se
encarga de asignar y administrar la memoria física del sistema a los programas que se estén
ejecutando y que a su vez se expanden hasta llenar la memoria con que se cuenta.
La gestión de memoria representa un vínculo delicado entre el rendimiento (tiempo de
acceso) y la cantidad (espacio disponible). Siempre se busca obtener el mayor espacio
disponible en la memoria, pero pocas veces existe la predisposición para comprometer el
rendimiento. Se puede decir que los objetivos principales de un sistema de gestión de
memoria serian:
61
- Permitir que la memoria se comparta (en sistemas de multiprocesos).
- Ofrecer a cada proceso un espacio lógico propio proporcionando una protección
entre los procesos.
- Maximizar el rendimiento del sistema
- Asignar bloques de espacio de memoria a distintas tareas.
- Proteger los espacios de memoria utilizados (por ejemplo, evitar que un usuario
modifique una tarea realizada por otro usuario).
- Proporcionar a los procesos mapas de memoria grandes
- Optimizar la cantidad de memoria disponible, específicamente a través de sistemas
de expansión de memoria. (Anónimo, Kioskea.net, 2014)
En un sistema de multiprogramación cada programa debe contener dentro del código
referencias al espacio de memoria a utilizar, ya que el mismo no siempre será el mismo, por
tanto el sistema tendrá que realizar una reubicación de las direcciones de memoria a las que
hacen referencia las instrucciones de los programas para que se correspondan con las
direcciones de memoria principal asignadas al mismo.
Esto se logra a través de la unidad de manejo de memoria (MMU), que es un componente
hardware, normalmente integrado en la CPU como podemos ver en la Figura 31;
Responsable de manejar las peticiones de acceso a memoria que solicita la CPU. Este
entonces se encarga de convertir las direcciones lógicas (memoria virtual) emitidas por los
procesos en direcciones físicas, se encarga además de que la conversión se realice con éxito
y que el proceso que intenta acceder a las direcciones de memoria correspondientes tenga el
permiso para ello.
También hay que acotar que siempre está en la memoria principal, ya que si estuviera en la
memoria secundaria nadie podría llevarlo a la memoria principal en caso de fallo de acceso
a memoria (Ver Figura 32):
62
Figura Nº32. Memoria y MMU
Fuente: https://gsitic.wordpress.com/2017/12/10/bii2-conceptos-de-sistemas-operativos-
estructuras-componentes-y-funciones-caracteristicas-y-evolucion-administracion-de-
memoria-procesos-y-subprocesos-entrada-salida-sistemas-de-archivo-siste/
Dentro de la MMU existe una pequeña memoria asociativa denominada TLB (Translation
Lookaside Buffer), que mantiene la información de las últimas páginas accedidas. Se puede
decir que se trata de una memoria tipo caché. Con ello se evita que el procesador esté
siempre leyendo la tabla de páginas directamente, con el consecuente decremento de
rendimiento.
El funcionamiento del TLB consiste en verificar si la dirección requerida se encuentra en el
mismo, si es así automáticamente la MMU traducirá la dirección lógica en su respectiva
dirección física para ser utilizada. En cambio, si la dirección no está presente en el TLB se
produce un fallo de página, por lo que se procederá a buscar en la tabla de dirección
mediante un proceso llamado page walk. Este proceso es costoso, ya que requiere de la
lectura de múltiples ubicaciones de memoria. Una vez determinada la dirección física a
través del page walk, el mapeo de la dirección virtual a la física es ingresado en el TLB
para su posterior uso.
6.1 Jerarquía de memoria
Cada Sistema (Servidores, PC de escritorio, etc.) tienen una jerarquía de memoria, tarea
ejecutada por el administrador de memoria quien con una pequeña cantidad de memoria
caché, una cantidad mucho mayor de memoria principal (RAM) y decenas o centenas de
63
gigabyte de almacenamiento en disco se encarga de saber qué partes de la memoria están en
uso o no, asignar y liberar la memoria principal a los procesos que la requieren, y
administrar los intercambios entre la memoria principal y el disco.
Entre las principales operaciones que desarrolla el administrador de memoria se
encuentran:
- La reubicación: que consiste en trasladar procesos activos dentro y fuera de la memoria
principal para maximizar la utilización del procesador;
-.La protección: mecanismos que protegen los procesos que se ejecutan de interferencias de
otros procesos;
- Compartición: uso compartido de códigos y datos con lo que el mecanismo de protección
permite que ciertos procesos de un mismo programa que comparten una tarea tengan
memoria en común
Podemos observar que los puntos básicos relacionados con la memoria según la Figura 32
son la capacidad (en cuanto más memoria haya disponible más podrá utilizarse), la
velocidad (garantizando que no haya tiempos de espera entre calculo y calculo) y en suma,
el coste de la memoria. Por lo que podemos concluir que, lo que Se busca entonces es
contar con la capacidad suficiente de memoria, con una velocidad que sirva para satisfacer
la demanda de rendimiento y con un coste que no sea excesivo. (Ver Figura 33)
Figura Nº33. Diagrama piramidal de la jerarquía de memoria
Fuente: https://es.wikipedia.org/wiki/Jerarqu%C3%ADa_de_memoria
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008
Análisis de la estructura y características del sistema operativo Windows Server 2008

Más contenido relacionado

La actualidad más candente

Protección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosProtección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosRichard J. Nuñez
 
9. 10 distribuciones linux y sus caracteristicas
9. 10 distribuciones linux y sus caracteristicas9. 10 distribuciones linux y sus caracteristicas
9. 10 distribuciones linux y sus caracteristicasjackie_moncayo
 
Sistema operativo windows 7
Sistema operativo windows 7Sistema operativo windows 7
Sistema operativo windows 7ztyph
 
Inv 1 algoritmos de control de concurrencias
Inv 1 algoritmos de control de concurrenciasInv 1 algoritmos de control de concurrencias
Inv 1 algoritmos de control de concurrenciasJuan Anaya
 
Sistemas operativos distribuidos.
Sistemas operativos distribuidos.Sistemas operativos distribuidos.
Sistemas operativos distribuidos.Daniela Velasquez
 
Presentación power point sistema operativo windows 7
Presentación power point sistema operativo windows 7Presentación power point sistema operativo windows 7
Presentación power point sistema operativo windows 7infoaplicadapreescolar
 
mantenimiento preventivo y correctivo
mantenimiento preventivo y correctivomantenimiento preventivo y correctivo
mantenimiento preventivo y correctivoLuis Hernandez Luna
 
Sistemas operativos-para-servidores
Sistemas operativos-para-servidoresSistemas operativos-para-servidores
Sistemas operativos-para-servidorespelaodioses
 
Generacion de Sistemas Operativos
Generacion de Sistemas OperativosGeneracion de Sistemas Operativos
Generacion de Sistemas OperativosFreddy Sinchi
 
Linea del tiempo sistemas operativos
Linea del tiempo sistemas operativosLinea del tiempo sistemas operativos
Linea del tiempo sistemas operativosPaultrs
 
Disenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de softwareDisenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de softwareAlexander Calderón
 
Linea de tiempo
Linea de tiempo Linea de tiempo
Linea de tiempo Janaynac_
 

La actualidad más candente (20)

Protección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas OperativosProtección y Seguridad de los Sistemas Operativos
Protección y Seguridad de los Sistemas Operativos
 
9. 10 distribuciones linux y sus caracteristicas
9. 10 distribuciones linux y sus caracteristicas9. 10 distribuciones linux y sus caracteristicas
9. 10 distribuciones linux y sus caracteristicas
 
Sistema operativo windows 7
Sistema operativo windows 7Sistema operativo windows 7
Sistema operativo windows 7
 
Inv 1 algoritmos de control de concurrencias
Inv 1 algoritmos de control de concurrenciasInv 1 algoritmos de control de concurrencias
Inv 1 algoritmos de control de concurrencias
 
Sistemas operativos distribuidos.
Sistemas operativos distribuidos.Sistemas operativos distribuidos.
Sistemas operativos distribuidos.
 
Diapositiva linux
Diapositiva linuxDiapositiva linux
Diapositiva linux
 
Ext4
Ext4Ext4
Ext4
 
Presentación power point sistema operativo windows 7
Presentación power point sistema operativo windows 7Presentación power point sistema operativo windows 7
Presentación power point sistema operativo windows 7
 
mantenimiento preventivo y correctivo
mantenimiento preventivo y correctivomantenimiento preventivo y correctivo
mantenimiento preventivo y correctivo
 
3.5 Nessus
3.5 Nessus3.5 Nessus
3.5 Nessus
 
Sistemas operativos-para-servidores
Sistemas operativos-para-servidoresSistemas operativos-para-servidores
Sistemas operativos-para-servidores
 
Generacion de Sistemas Operativos
Generacion de Sistemas OperativosGeneracion de Sistemas Operativos
Generacion de Sistemas Operativos
 
Historia de los Sistemas Operativos
Historia de los Sistemas OperativosHistoria de los Sistemas Operativos
Historia de los Sistemas Operativos
 
Sistema operativo linux
Sistema operativo linuxSistema operativo linux
Sistema operativo linux
 
Linea del tiempo sistemas operativos
Linea del tiempo sistemas operativosLinea del tiempo sistemas operativos
Linea del tiempo sistemas operativos
 
Gestión de memoria
Gestión de memoriaGestión de memoria
Gestión de memoria
 
Disenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de softwareDisenando Sistemas empleando el modelo de capas en desarrollo de software
Disenando Sistemas empleando el modelo de capas en desarrollo de software
 
Linea de tiempo
Linea de tiempo Linea de tiempo
Linea de tiempo
 
linux
linuxlinux
linux
 
DIAPOSITIVAS Suse sistema operativo
DIAPOSITIVAS Suse sistema operativo DIAPOSITIVAS Suse sistema operativo
DIAPOSITIVAS Suse sistema operativo
 

Similar a Análisis de la estructura y características del sistema operativo Windows Server 2008

Manual de Reparacion, Instalación, Montaje y Mantenimiento de PC y Equipos In...
Manual de Reparacion, Instalación, Montaje y Mantenimiento de PC y Equipos In...Manual de Reparacion, Instalación, Montaje y Mantenimiento de PC y Equipos In...
Manual de Reparacion, Instalación, Montaje y Mantenimiento de PC y Equipos In...Conectarnos Soluciones de Internet
 
Su se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-esSu se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-essherlock72
 
Unity v41 manual de referencia
Unity v41   manual de referenciaUnity v41   manual de referencia
Unity v41 manual de referenciaJosé Bernabé
 
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de la...
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de la...Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de la...
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de la...Adrian Belmonte Martín
 
Manual de Exomate y servidores 1
Manual de Exomate y servidores 1Manual de Exomate y servidores 1
Manual de Exomate y servidores 1Meli Sanchez
 
Dentro nucleo linux
Dentro nucleo linuxDentro nucleo linux
Dentro nucleo linux1 2d
 
Guia paso a paso exo
Guia paso a paso exoGuia paso a paso exo
Guia paso a paso exoMeli Sanchez
 
sistemas_operativos.pdf
sistemas_operativos.pdfsistemas_operativos.pdf
sistemas_operativos.pdfRosMerryHuro
 
Seminario del Operador
Seminario del Operador Seminario del Operador
Seminario del Operador xpcmarkos
 
Guia Centros Tic
Guia Centros TicGuia Centros Tic
Guia Centros TicRafa
 
GUIA DE ADMINISTRACION DE COMPUTADORA DE ESCRITORIO-TACCO FABIANA.pdf
GUIA DE ADMINISTRACION DE COMPUTADORA DE ESCRITORIO-TACCO FABIANA.pdfGUIA DE ADMINISTRACION DE COMPUTADORA DE ESCRITORIO-TACCO FABIANA.pdf
GUIA DE ADMINISTRACION DE COMPUTADORA DE ESCRITORIO-TACCO FABIANA.pdfFabianaTaccoArteaga
 
rele inteligente.pdf
rele inteligente.pdfrele inteligente.pdf
rele inteligente.pdfraul rivera
 
Conceptos basicos de solid works piezas y ensamblajes
Conceptos basicos de solid works   piezas y ensamblajesConceptos basicos de solid works   piezas y ensamblajes
Conceptos basicos de solid works piezas y ensamblajespattala01
 
01 conceptos basicos de solid works-piezas y ensamblajes
01  conceptos basicos de solid works-piezas y ensamblajes01  conceptos basicos de solid works-piezas y ensamblajes
01 conceptos basicos de solid works-piezas y ensamblajesDario Piguave
 
Conceptos básicos de solid works piezas y ensamblajes
Conceptos básicos de solid works piezas y ensamblajesConceptos básicos de solid works piezas y ensamblajes
Conceptos básicos de solid works piezas y ensamblajesVick White
 

Similar a Análisis de la estructura y características del sistema operativo Windows Server 2008 (20)

Manual de Reparacion, Instalación, Montaje y Mantenimiento de PC y Equipos In...
Manual de Reparacion, Instalación, Montaje y Mantenimiento de PC y Equipos In...Manual de Reparacion, Instalación, Montaje y Mantenimiento de PC y Equipos In...
Manual de Reparacion, Instalación, Montaje y Mantenimiento de PC y Equipos In...
 
Su se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-esSu se linux-adminguide-9.2-es
Su se linux-adminguide-9.2-es
 
Unity v41 manual de referencia
Unity v41   manual de referenciaUnity v41   manual de referencia
Unity v41 manual de referencia
 
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de la...
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de la...Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de la...
Adrián Belmonte: Bot y Botnets: Análisis de estructura y funcionamiento de la...
 
Manual de Exomate y servidores 1
Manual de Exomate y servidores 1Manual de Exomate y servidores 1
Manual de Exomate y servidores 1
 
Dentro nucleo linux
Dentro nucleo linuxDentro nucleo linux
Dentro nucleo linux
 
Guia paso a paso exo
Guia paso a paso exoGuia paso a paso exo
Guia paso a paso exo
 
Gretl guide-es[1]
Gretl guide-es[1]Gretl guide-es[1]
Gretl guide-es[1]
 
sistemas_operativos.pdf
sistemas_operativos.pdfsistemas_operativos.pdf
sistemas_operativos.pdf
 
Seminario del Operador
Seminario del Operador Seminario del Operador
Seminario del Operador
 
SORYP.pdf
SORYP.pdfSORYP.pdf
SORYP.pdf
 
Guia Centros Tic
Guia Centros TicGuia Centros Tic
Guia Centros Tic
 
XClarity - Lenovo
XClarity - LenovoXClarity - Lenovo
XClarity - Lenovo
 
GUIA DE ADMINISTRACION DE COMPUTADORA DE ESCRITORIO-TACCO FABIANA.pdf
GUIA DE ADMINISTRACION DE COMPUTADORA DE ESCRITORIO-TACCO FABIANA.pdfGUIA DE ADMINISTRACION DE COMPUTADORA DE ESCRITORIO-TACCO FABIANA.pdf
GUIA DE ADMINISTRACION DE COMPUTADORA DE ESCRITORIO-TACCO FABIANA.pdf
 
15 lnumeracion y viñetas
15 lnumeracion y viñetas15 lnumeracion y viñetas
15 lnumeracion y viñetas
 
rele inteligente.pdf
rele inteligente.pdfrele inteligente.pdf
rele inteligente.pdf
 
(Ebook) macromedia flash 8 tutorial (es)
(Ebook) macromedia flash 8 tutorial (es)(Ebook) macromedia flash 8 tutorial (es)
(Ebook) macromedia flash 8 tutorial (es)
 
Conceptos basicos de solid works piezas y ensamblajes
Conceptos basicos de solid works   piezas y ensamblajesConceptos basicos de solid works   piezas y ensamblajes
Conceptos basicos de solid works piezas y ensamblajes
 
01 conceptos basicos de solid works-piezas y ensamblajes
01  conceptos basicos de solid works-piezas y ensamblajes01  conceptos basicos de solid works-piezas y ensamblajes
01 conceptos basicos de solid works-piezas y ensamblajes
 
Conceptos básicos de solid works piezas y ensamblajes
Conceptos básicos de solid works piezas y ensamblajesConceptos básicos de solid works piezas y ensamblajes
Conceptos básicos de solid works piezas y ensamblajes
 

Análisis de la estructura y características del sistema operativo Windows Server 2008

  • 1. UNIVERSIDAD DE ORIENTE VICERRECTORADO ACADÉMICO CONSEJO DE ESTUDIOS DE POSTGRADO POSTGRADO EN INFORMÁTICA GERENCIAL NÚCLEO MONAGAS Profesor: Msc. Gerardo Guacaran Autores: Ing. Jesús Mota Ing. Ruth Reyes Ing. Francisco Antequera Maturín, Febrero de 2019
  • 2. 2 INDICE GENERAL INDICE GENERAL………………………………………………………………. 2 INDICE DE CUADROS…………………………………………………………... 4 INDICE DE FIGURAS……………………………………………………………. 5 INTRODUCCIÓN………………………………………………………………… 7 PARTE 1. ESTRUCTURA DEL HARDWARE………………………………… 9 CAPÍTULO 1.-Antecedentes y Evolución de WINDOWS SERVER 2008……….. 9 1.1 Evolución Histórica. …………………………………………………. 9 1.2 Ediciones. ……………………………………………………………. 11 1.3 Funciones o Servicios Integrados. ……………………………………. 13 1.4 Versiones. …………………………………………………………….. 16 1.5 Certificaciones. ……………………………………………………….. 20 CAPÍTULO 2.- Diagrama de bloques de la estructura de hardware de una computadora real, susceptible de soportar la implantación del Sistema Operativo WINDOWS SERVER 2008………………………………………………………... 22 2.1 Requisitos del Sistema. ………………………………………………. 22 2.2 Diagrama de Bloques de la estructura del Hardware. ……………….. 22 2.3 Descripción del bloque procesador…………………………………… 25 2.4 Descripción del bloque memoria y jerarquía………………………… 26 2.5 Descripción del bloque periféricos…………………………………… 28 2.6 Evolución histórica de la estructura del hardware. ………………… 30 PARTE 2. ESTRUCTURA DEL SISTEMA OPERATIVO WINDOWS SERVER 2008………………………………………………………………………………... 31 CAPÍTULO 3.- Sistema operativo WINDOWS SERVER 2008…………………… 31 3.1 Objetivos de diseño…………………………………………………… 31 3.2 Diagrama de bloque del Sistema operativo…………………………… 32 3.3 Descripción de cada bloque…………………………………………... 33 CAPÍTULO 4.- Conceptualización de Procesos y/o hilos………………………… 40 4.1 Conceptos de Procesos y/o hilos. …………………………………….. 40 4.2 Diagrama de estado de Procesos y/o hilos……………………………. 44 CAPÍTULO 5.- Planificación de procesos………………………………………… 47 5.1 Sincronización de procesos…………………………………………… 47 5.2 Planificación de sistemas en ambiente Multiprogramación………….. 51 5.3 Planificación de sistemas en ambiente Multiprocesamiento…………. 54 5.4 Estrategia real de Planificación de Procesos………….………………. 57 CAPÍTULO 6.- Gestión de memoria principal……………………………………. 60 6.1 Jerarquía de memoria…………………………………………………. 62 6.1 Memoria Física y memoria virtual……………………………………. 64 6.3 Partición, Segmentación, Paginación…………………………………. 65 6.4 Estrategia real de Gestión de Memoria principal en Windows Server 2008………………………………………………………………………... 67 CAPÍTULO 7.- Gestión de almacenamiento en WINDOWS SERVER 2008…….. 69 7.1 Planificación y gestión de dispositivos de almacenamiento secundario (Discos y memoria flash) ………………………………………………… 69 7.2 Sistema VFS su equivalente………………………………………….. 72 7.3 Sistemas de archivos manejados por WINDOWS SERVER 2008 76
  • 3. 3 (NFS, FAT, ..) …………………………………………………………….. CAPÍTULO 8.- Gestión de E/S…………………………………………………… 78 8.1 Manejo de Periféricos a través del Sistema de archivos……………… 79 CAPÍTULO 9.- Consideraciones sobre seguridad y protección...………………… 80 9.1 Seguridad a través del hardware……………………………………… 82 9.2 Seguridad a través del software………………………………………. 85 9.3 Descripción de algunos fallos de seguridad y protección en Windows Server 2008………………………………………………………………... 86 CAPÍTULO 10.- Discusión sobre las tendencias………………………………… 88 10.1 Tendencias “free” u “Open” de este Sistema operativo……………. 89 10.2 Base instalada (Cuota de mercado local y global) de este Sistema Operativo al año 2017…………………………………............................... 91 10.3 Reseña de algún artículo reciente (año 2017) donde se compare este Sistema operativo con otro. ……………………………………………….. 92 CAPITULO 11.- Evolución entre Versiones y sus Diferencias…………………... 97 11.1 Características de las versiones. …………………………………….. 98 11.2 Comparación entre versiones. ………………………………………. 105 CAPITULO 12.- Windows Server 2019…………………………………………... 111 12.1 Descripción. …………………………………………………………. 111 12.2 Versiones. ……………………………………………………………. 113 12.3 Novedades. …………………………………………………………... 114 CONCLUSIONES………………………………………………………………… 118 BIBLIOGRAFIA………………………………………………………………….. 122
  • 4. 4 INDICE DE CUADROS Cuadro N°1 Evolución Histórica de las Versiones de Windows Server hasta la versión 2008………………………………………………..................................... 11 Cuadro N° 2 Certificaciones disponibles para Windows Server 2008……………. 20 Cuadro Nº 3 Evolución Histórica de la Estructura de Hardware Windows Server 2008……………………………………………………………………………….. 30 Cuadro Nº 4 Diferencia entre Procesos e Hilos…………………………………… 43 Cuadro Nº 5 Comparación entre versiones……………………………………….. 59 Cuadro Nº 6 Variantes del kernel de Windows Server 2008……………………... 60 Cuadro Nº 7 Memoria RAM en Ediciones Windows…………………………….. 68 Cuadro Nº 8 Comparación de SO Windows Server (2008, 2012, 2016 y 2019), en relación a sus Capacidades híbridas…………………………………………… 106 Cuadro Nº 9 Comparación de SO Windows Server (2008, 2012, 2016 y 2019), en relación a su Infraestructura Hiperconvergente………………………………... 106 Cuadro Nº 10 Comparación de SO Windows Server (2008, 2012, 2016 y 2019), en relación a su seguridad………………………………………………………… 109 Cuadro Nº 11 Comparación de SO Windows Server (2008, 2012, 2016 y 2019), en relación a las bondades de las Aplicaciones…………………………………… 110
  • 5. 5 INDICE DE FIGURAS Figura Nº 1: Interfaz Gráfica de Windows Server 2008………………………….. 9 Figura Nº 2: Interfaz Windows Server 2008 SP2…………………………………. 12 Figura Nº 3: Interfaz Windows Server 2008 R2………………………………….. 13 Figura Nº 4: Funciones o Servicios Integrados en Windows Server 2008. ……… 14 Figura Nº 5: Versiones de Windows Server 2008. ……………………………….. 17 Figura N° 6: Características de las Versiones de Windows Server 2008…………. 20 Figura N° 7: Requisitos Mínimos y recomendados para la instalación de Windows Server 2008…………………………..………………………………… 22 Figura Nº 8 capa de abstracción de Hardware (HAL) ……………………………. 23 Figura Nº 9: Administración de Hardware Windows Server 2008………….. 24 Figura Nº 10: Esquema General de Administración de procesos Windows Server 2008…………………………..…………………………..……………………….. 25 Figura Nº 11: Bloque Administrador de Memoria Windows Server 2008……. 26 Figura Nº 12: Jerarquía de Memoria Windows Server 2008…………………... 28 Figura Nº 13: Bloque Administrador de Periféricos Windows Server 2008…... 29 Figura N° 14: Diagrama de bloques bloque de E/S de periféricos de Windows Server 2008…………………………..…………………………..……………… 30 Figura Nº 15 Diagrama de Bloques Windows Server 2008………………………. 33 Figura Nº 16 Núcleo de Windows Server 2008…………………………………... 34 Figura Nº 17 Administrador de Objetos Windows Server 2008………………….. 35 Figura Nº 18: Administrador de Procesos Windows Server 2008………………... 36 Figura Nº 19: Administrador de Memoria Virtual Windows Server 2008……….. 36 Figura Nº 20: Administrador de Energía Windows Server 2008…………………. 38 Figura Nº 21 Modo Usuario Windows Server 2008……………………………… 39 Figura Nº 22 Estructura de un Proceso Windows Server 2008…………………… 41 Figura Nº 23: Atributos de un Proceso Windows Server 2008…………………… 42 Figura Nº 24 Procesos e Hilos…………………………..………………………… 43 Figura Nº 25: Transición de los estados de un hilo. ……………………………… 44 Figura Nº 26: Implementación de los procesos e hilos en Windows NT/2000…… 45 Figura Nº 27: Estados de un Proceso…………………………..………………… 46 Figura Nº 28: Estados de un Proceso…………………………..………………… 47 Figura Nº 29. Principales Planificadores de la CPU…………………………..….. 49 Figura Nº 30. Multiprogramación…………………………..…………………….. 53 Figura Nº 31: Algoritmo Round Robin. …………………………..…………... 58 Figura Nº 32. Memoria y MMU…………………………..………………………. 62 Figura Nº 33. Diagrama piramidal de la jerarquía de memoria…………………... 63 Figura Nº 34. Memoria virtual…………………………..………………………... 65 Figura Nº 35. Tipos de Estructuras de Archivo. …………………………..……… 73 Figura Nº 36. Cualidades de la seguridad…………………………..…………….. 81 Figura Nº 37. Permisos de usuarios sobre carpetas y archivos…………………… 82 Figura Nº 38. Componentes internos de chip TPM……………………………….. 83 Figura Nº 39. Configuración característica BitLocker en Windows Server 2008... 84 Figura Nº 40: Configuración característica RSM en Windows Server 2008……... 85 Figura Nº 41. Entorno grafico de ReactOS……………………………………….. 90 Figura Nº 42. Android pasa a dominar el mercado de los SO…………………….. 91
  • 6. 6 Figura Nº 43. Sistemas Operativos más usados en Servidores…………………… 92 Figura Nº 44. Ventajas del Sistema Operativo Linux…………………………….. 94 Figura Nº 45. Desventajas del Sistema Operativo Linux…………………………. 94 Figura Nº 46. Ventajas del Sistema Operativo Windows Server…………………. 95 Figura Nº 47. Desventajas del Sistema Operativo Windows Server……………… 96 Figura Nº 48. Evolución histórica de Windows Server…………………………… 97 Figura Nº 49. Ediciones de Windows Server 2008……………………………….. 97 Figura Nº 50. Ediciones de Windows Server 2019……………………………….. 113 Figura Nº 51. Vista de interfaz del proyecto Honolulu…………………………... 115 Figura Nº 52: Windows Defender ATP en Windows Server 2019……………….. 116 Figura 53. Activación de Subsistema de Windows para Linux…………………... 117
  • 7. 7 INTRODUCIÓN Un Sistema Operativo (SO), de manera general está representado por el conjunto de programas que se ejecutan dentro de algún equipo que cumple en primera instancia la función de permitir la interacción del usuario con la máquina, para tal fin es necesario que el SO, pueda gestionar todos los recursos del equipo, lo cual involucra a los elementos hardware (monitor, teclado, mouse, unidades de almacenamiento, impresoras, etc.) así como al software del equipo. Los equipos informáticos (PC, laptops, servidores, tablets, smartphones y cualquier otro) tienen y necesitan un SO que permitan su normal funcionamiento, administrando los recursos del equipo, coordinando el funcionamiento del hardware y organizando los archivos y directorios en los dispositivos de almacenamiento. Los sistemas operativos para PC, laptops y servidores variados, pero los más utilizados son Windows, Mac y LINUX. A tal punto que el SO Windows de la empresa Microsoft, introducido en el mercado desde 1985, es el más utilizado en la actualidad, específicamente en lo que se refiere a PC’s t Laptops, de hecho puede considerársele un gran colaborador evolución de la informática personal. Microsoft no solo ha desarrollado sistemas operativos para PC’s y laptops sino que también incursionó en el área de los sistemas operativos para servidores, dentro de este ámbito ha evolucionado con el tiempo y desarrollado una serie de versiones para satisfacer las exigencias y demandas del mundo empresarial actual. Dentro de los Sistemas Operativos desarrollados por Microsoft se destaca Windows Server 2008, el cual será objeto de estudio en el presente documento, que se encuentra estructurado en tres (3) partes. Dentro de la primera parte del documento titulado Estructura del Hardware, se analizan aspectos asociados a los antecedentes y evolución de Windows Server 2008, haciendo referencia a las ediciones, versiones existentes así como a las funciones y servicios integrados al sistema. Adicionalmente se estudian aspectos asociados a los requisitos del Sistema, así como los diagramas de bloques de procesados, memoria y periféricos, además de la evolución histórica de la estructura del hardware.
  • 8. 8 Dentro de la segunda parte del documento (Estructura del Sistema Operativo Windows Server 2008), seccionado dentro de diez capítulos, se consolida información asociada a la conceptualización de los procesos e hilos, la planificación de los procesos y la gestión de la memoria principal, el almacenamiento secundario y los servicios de entrada y salida. Adicionalmente se analizan las consideraciones de seguridad y protección del sistema, así como las tendencias de uso de este SO y la evolución de las versiones con las respectivas diferencias entre ellas. Finalmente se le dedica un capítulo al estudio del SO Windows Server 2019, por ser la última versión disponible en el mercado (para servidores) elaborada por la empresa Microsoft.
  • 9. 9 PARTE 1. ESTRUCTURA DEL HARDWARE CAPÍTULO 1: Antecedentes Y Evolución de WINDOWS SERVER 2008 1.1 Evolución Histórica. Windows Server es un sistema Operativo producido por Microsoft diseñado para servidores, el cual según información recopilada en la web https://isft179windowsserver2008r2.blogspot.com/esta “construido sobre la misma base de Windows Vista. Por lo cual comparte gran parte de la arquitectura y funcionalidad del mismo. Su núcleo se basa en el núcleo de Windows NT 6.1”. Este sistema operativo es el sucesor de Windows Server 2003, y fue lanzado al público 5 años después de este último. A pesar de estar construido sobre la base de Windows vista, es considerado una variante para servidores de la versión de la versión Windows 7. En la figura N° 1 se puede apreciar la interfaz de usuario del mismo. (Ver Figura N°1): Figura Nº1: Interfaz Gráfica de Windows Server 2008. Fuente: https://fernandomachadopirizen.files.wordpress.com/2011/02/ws2008r2.png
  • 10. 10 La versión Beta de este sistema operativo se lanzó el 27 de julio de 2005, posteriormente Beta 2 se anunció y se lanzó el 23 de mayo de 2006 en Win HEC 2006. La versión Beta 3 se publicó el 25 de abril de 2007 y El 24 de septiembre de 2007 se lanzó al público en general una versión denominada Release Candidate 0.El 5 de diciembre de 2007 fue publicada la versión Release 1Candidate. Y finalmente, Windows Server 2008 se lanzó a la fabricación el 4 de febrero de 2008 pero no fue sino hasta el 27 de febrero de 2008 cuando fue oficialmente publicada. Windows Server 2008 presenta muchas mejoras con respecto a su versión anterior (Windows Server 2003), reflejadas en la inclusión de nuevas características de virtualización y algunas otras tales como la reducción en el consumo de energía, la incorporación de nuevas herramientas de administración de recursos, nuevas características del Active Directory, una papelera de reciclaje para objetos AD borrados, una nueva versión de IIS (7.5) que incluye un renovado servidor FTP, soporte para DNSSEC y el aumento del número de núcleos de procesamiento de 64 a 256. De igual manera en esta versión los procesadores de 32-bits ya no están soportados. En cuanto a la instalación del sistema operativo también se observan mejoras considerables debido a que la misma pasó a un entorno totalmente gráfico, incluyendo soporte a .NET Framework, aplicaciones ASP.NET y soporte para Windows PowerShell. Así mismo las mejoras de rendimiento, representan un factor importante de esta versión, Microsoft anunció que se habían realizado trabajos para disminuir el tiempo de arranque, mejorar la eficiencia de operaciones E/S a la vez que aumentar potencia de procesamiento y mejoras generales de velocidad en dispositivos de almacenamiento, especialmente en iSCSI. El lanzamiento extraoficial de este versión fue el 27 de febrero de 2008, con una versión preliminar (beta) de Windows Server 2008 R2 para suscriptores de los programas de Microsoft, TechNet y MSDN, así como también a participantes del programa Microsoft Connect sobre Windows 7. Dos días después, se lanzó al público general mediante el Centro de descargas de Microsoft. En el cuadro N°1 se visualiza la evolución histórica de las versiones de Windows Server hasta Windows Server 2008.
  • 11. 11 Cuadro N°1 Evolución Histórica de las Versiones de Windows Server hasta la versión2008 Versión Windows NT Nombre Comercial Ediciones Fecha de Emisión 3.1 Windows NT 3.1 Avanced Server 27 Julio 1993. 3.5 Windows NT 3.5 Server 21 Septiembre 1994. 3.51 Windows NT 3.51 Server 30 Mayo 1995 4.0 Windows NT 4.0 Server, Server Enterprise Edition, Terminal Server, Embedded 29 Julio 1996 5.0 Windows 2000 Datacenter Server. 17 Febrero 2000 5.2 Windows 2003 Estándar, Enterprise, Datacenter, Web, Storage, Small Business Server, Computer Cluster. 26 Septiembre 2000 Windows 2003 R2 Estándar, Enterprise, Datacenter, Web, Storage, Small Business Server, Computer Cluster. 24 Abril 2003 6.0 Windows 2008 Estándar, Enterprise, Datacenter, Web, Foundation, HPC, Itanium- Based Systems. 06 Diciembre 2005 6.1 Windows 2008 R2 Estándar, Enterprise, Datacenter, Web, Foundation, HPC, Itanium- Based Systems. 27 Febrero 2008 Fuente: https://prezi.com/trlyrwk_jjwi/windows-server-introduccion-historia-y-actualidad/ 1.2 Ediciones. Windows Server 2008 está disponible en dos ediciones:  Windows Server 2008 SP2: Originalmente conocido como Windows Server Codename "Longhorn", su título oficial (Windows Server 2008) fue anunciado por el presidente de Microsoft, Bill Gates, durante su discurso de apertura en WinHEC el 16 de mayo de 2007.Esta versión está construido desde la misma base de Windows Vista, por lo cual comparte la mayoría de las características técnicas y de seguridad de este. Las cuales según la fuente https://en.wikipedia.org/wiki/Windows_Server_2008 se resumen en las siguientes:
  • 12. 12 BitLocker y ASLR (asignación aleatoria de diseño de espacio de direcciones); Firewall de Windows mejorado con configuración predeterminada segura; Tecnologías .NET Framework 3.0, específicamente Windows Communication Foundation, Microsoft Message Queue Server y Windows Workflow Foundation; y las mejoras del núcleo, la memoria y el sistema de archivos. La Figura Nº 2 describe la interfaz gráfica de usuario de Windows Server 2008 SP2 (Ver Figura Nº 2): Figura Nº2: Interfaz Windows Server 2008 SP2 Fuente: https://en.wikipedia.org/wiki/Windows_Server_2008_R2  Windows Server 2008 R2: Microsoft introdujo Windows Server 2008 R2 en la Professional Developers Conference (PDC) del 2008 como una variante de servidor del nuevo sistema operativo Windows 7. Una guía preliminar publicada por la compañía describe muchas áreas de mejora las cuales se describen en la fuente https://en.wikipedia.org/wiki/Windows_Server_2008_R2 como: nuevas características de virtualización incluyendo Live Migration y ClusterSharedVolumes, un reducido consumo de energía, un nuevo conjunto de herramientas de administración, nuevas características Active Directory como una
  • 13. 13 "papelera de reciclaje" para objetos AD borrados, una nueva versión de IIS (7.5) que incluye un renovado servidor FTP, soporte para DNSSEC y el aumento del número de núcleos de procesamiento de 64 a 256. La Figura Nº 3 muestra la interfaz gráfica de usuario para Windows Server 2008 R2: Figura Nº 3: Interfaz Windows Server 2008 R2 Fuente: https://en.wikipedia.org/wiki/Windows_Server_2008_R2 1.3 Funciones o Servicios Integrados. Windows Server 2008 al igual que versiones anteriores ofrece una gama de funcionabilidades para la administración de recursos y servicios disponibles. Algunas de las funciones o aplicaciones incluidas en Windows Server 2008 se resumen en la Figura N°4 a continuación:
  • 14. 14 Figura Nº4: Funciones o Servicios Integrados en Windows Server 2008. Fuente: https://es.slideshare.net/FrancoSanMartinHerrera/windows-2008-server-r2- aspectos-generales Las mismas se describen de manera resumida a continuación:  Domaincontroller: Al igual que en versiones anteriores del sistema operativo Windows, el controlador de dominio permite a los usuarios autenticarse en el dominio para acceder a los recursos de la red.  Global catalog server: El servidor de catálogo global es un controlador de dominio que también almacena un subconjunto de objetos de AD DS de otros dominios en el bosque. Cuando un usuario interno o externo con los derechos de seguridad apropiados quiere ver una lista de usuarios de Active Directory en el bosque, el servidor de catálogo global proporciona la lista.  DNS server: El sistema de nombres de dominio (DNS) mantiene una lista de servidores y sistemas de red y sus direcciones IP asociadas, por lo que un servidor DNS proporciona información sobre los dispositivos conectados a la red.
  • 15. 15  DHCP server: El Protocolo de configuración dinámica de host (DHCP) asigna direcciones de red IPv4 y / o IPv6 a los dispositivos en la red. Windows 2008 proporciona la función de servicio para facilitar las direcciones DHCP a los dispositivos de red.  Cluster server: Cuando la tolerancia a fallos es importante para una organización, la agrupación en clúster proporciona una conmutación por error de un sistema a otro. Windows 2008 ofrece la posibilidad de vincular sistemas entre sí, de modo que cuando un sistema falla, otro sistema asume el control.  Network policy server: NPS es la implementación de Microsoft de un servidor y proxy de Servicio de usuario de acceso telefónico de autenticación remota (RADIUS). NPS realiza la autenticación, autorización y contabilidad de conexión centralizada para muchos tipos de acceso a la red, incluidas las conexiones inalámbricas y de red privada virtual (VPN). NPS enruta los mensajes de autenticación y contabilidad a otros servidores RADIUS. También actúa como un servidor de evaluación de estado para la Protección de acceso a la red (NAP).  Terminal server: En lugar de tener una computadora de escritorio o portátil para cada usuario en la red, las organizaciones tienen la opción de configurar terminales delgadas simples y de bajo costo para que los usuarios obtengan acceso a los recursos de la red. Windows 2008 Terminal Services permite que un único servidor aloje el acceso al sistema de red para docenas de usuarios. • Remoteaccess server: Cuando un usuario remoto tiene un sistema de computadora de escritorio o portátil y necesita acceso a los servicios de red, Windows 2008 proporciona servicios de acceso remoto que permiten a los sistemas remotos establecer una conexión remota segura. • Web server: A medida que más y más tecnologías se vuelven conscientes de la web y se alojan en servidores web, Windows 2008 proporciona la tecnología para alojar estas aplicaciones para el acceso basado en navegador.  Media server: Windows 2008 proporciona una fuente para alojar y publicar contenido de audio y video, más allá de los documentos de procesamiento de texto y las hojas de cálculo en medios enriquecidos, como video y audio.
  • 16. 16  Virtualization server: Windows 2008 proporciona las capacidades básicas para realizar la virtualización de servidores, proporcionando la capacidad para que una organización consolide servidores físicos en menos sistemas de servidores host, lo que reduce el costo total de las operaciones de TI.  Distributed File System (DFS) server: Durante la última década, los archivos de datos se han almacenado en servidores de archivos en toda la organización. Windows 2008 proporciona sistemas de archivos distribuidos que permiten a una organización tomar el control de los archivos distribuidos en un espacio de nombres unificado común. 1.4 Versiones Windows Server 2008 esta disponibles en siete versiones diferentes, las cuales son: Estándar, Enterprise, Datacenter, Web, Storage, Small Business Server y Itanium-Based Systems. Las cuales están diseñadas para todo tipo de empresas, grandes y pequeñas, desde un servidor simple hasta un servidor de aplicaciones masivo. En cuanto a la virtualización, la cual se ha convertido en una característica esencial dentro de Windows Server 8, existen diferencias importantes en las ediciones para la licencia de la nueva función Hyper-V que viene con las ediciones Standard, Enterprise y Datacenter. Según Martín franco (2009) la necesidad de varias versiones se debe a que: “Una talla no se ajusta a todos. Por ejemplo, una pequeña organización con unos pocos usuarios hasta unos pocos cientos de usuarios que necesitan principalmente un sistema centralizado para el inicio de sesión en la red, junto con el uso compartido de archivos e impresoras probablemente puede usar la edición estándar. Mientras que una gran empresa o una que necesite un servidor de aplicaciones robusto puede optar por Enterprise Edition. Una compañía que necesita alojar una base de datos gigantesca que requiere muchos procesadores, almacenamiento y memoria podría necesitar Datacenter Edition.” En función a ello la Figura N°5 muestra un resumen de las diferentes versiones disponibles:
  • 17. 17 Figura Nº5: Versiones de Windows Server 2008. Fuente: https://es.slideshare.net/FrancoSanMartinHerrera/windows-2008-server-r2 Así mismo, a continuación se detallan las características de las versiones de Windows Server:  Standard Edition: Adecuada para pequeñas y medianas empresas que necesiten un solución sólida para uso compartido de impresoras, archivos, cuentas de usuarios y recursos de red. Así como los servicios típicos de servidores tales como servicios web, DNS y DHCP. En cuanto a los procesadores esta edición al igual que las demás trabaja con procesadores multinúcleos, punto en el cual es importante resaltar que según lo verificado en la fuente electrónica de Martín Franco (2.000) “Microsoft define un procesador como un chip físico o un zócalo en una placa base. Esto significa que la edición estándar puede admitir hasta cuatro procesadores de un solo núcleo, de doble núcleo, o incluso de cuatro núcleos y superiores.” Esta edición se encuentra disponible en versiones de 32bits que soporta hasta 4GB de RAM, y 64 bits que soporta hasta 32GB de RAM. Los usuarios de la edición estándar de 64 bits puede instalar una instancia virtual de Server 2008 Standard Edition con Hyper-V.  Enterprise Edition: Tiene todas las características de la versión Standard pero posee algunas adicionales que la hace ideal para medianas y grandes empresas, como por ejemplo que admite hasta ocho procesadores y 64GB de RAM en la versión de
  • 18. 18 32bits y hasta 2TB en la versión de 64bits, así mismo la agrupación de servidores es otra de características distintivas de esta edición, con la cual los administradores pueden vincular dos o más servidores físicos lógicamente para actuar como un único servidor de alto rendimiento y tolerante al fallo de máquinas. Adicionalmente Enterprise Edition permite hasta 16 nodos de clúster. Posee características de tolerancia a fallos, que permite agregar memoria en caliente, (sin apagar el sistema) y en cuanto a Hiper-V permite hasta cuatro instancias virtuales por licencia.  Datacenter Edition: Una versión ideal para grandes empresas que manejen grandes cantidades de datos y virtualización a gran escala consolidando servidores que ejecutan grandes volúmenes de transacciones, soporta 32 procesadores en la versión de 32Bits y hasta 64 en la versión de 64Bits. Al igual que la versión Enterprise Edition tiene características de tolerancia a fallos, para reemplazar memorias y procesadores en caliente. En cuanto a las características de Hiper-V las cantidades de instancias virtuales en 64 Bits para esta edición es limitada.  Windows Web Server 2008: Diseñado para funcionar como servidor web, ejecutando servicios Internet Information Server (IIS) 7.0, tiene funciones de soporte de hardware similares a la versión Estándar, pero no tiene soporte de virtualización y además carece de muchas características de otras ediciones, como el acceso remoto y los Servicios de Terminal Server. Sin embargo es una solución rentable cuando se necesita un servidor web con todas las funciones que este amerita pero sin algunas aplicaciones disponibles en otras ediciones.  Windows HPC Server 2008: Sucesor de Windows Computer Cluster Server 2003, considerado como la última generación de informática de alto rendimiento, ofrece herramientas de clase empresarial para entornos altamente productivos. Puede escalar en forma eficiente a miles de núcleos de procesamiento y consolas de administración que le permiten monitorear y mantener la estabilidad del sistema. Windows HPC Server 2008 está diseñado para aplicaciones de gama alta que requieren clústeres informáticos de alto rendimiento (HPC significa High
  • 19. 19 Performance Computing) lo cual facilita el soporte a cargas de trabajo de aplicaciones orientadas a servicios (SOA) y lotes.  Windows Foundation Server 2008: Al contrario de la versión HPC está orientado a pequeñas empresas, tiene un límite de 15 usuarios y tiene licencia por cuenta de usuario. Podría ser el primer sistema operativo Server 2008 de una empresa, pero a medida que la empresa crece, puede actualizarse a versiones superiores para obtener acceso a funciones mejoradas y soporte para más usuarios. Fundation está disponibles en versiones de 64bits, soporta 1 zócalo de procesador físico, que puede tener varios núcleos (4 en estándar), 8 GB de RAM (32 GB en estándar), 30 conexiones del Bloque de mensajes del servidor, 2 conexiones de administrador de escritorio remoto Sin derechos de instancia virtual o Hyper-V.  Windows Server 2008 Itanium-Based Systems: En ocasiones, es posible encontrar en algunos sitios de Microsoft o en algunos sitios de descarga, que los enlaces de descarga estén disponibles para Windows x86, Windows x64 y Windows x64 Itanium. Itanium según https://www.thewindowsclub.com “se refiere a una arquitectura de procesador para sistemas operativos de servidor, y también se denominó IA-64, donde IA se refería a la arquitectura Intel.” IA-64 utiliza la arquitectura Intel Itanium, que está diseñada para servidores empresariales de alto rendimiento y sistemas informáticos. Windows XP y Windows Server 2008 R2 son las últimas versiones de Windows con soporte para este tipo de arquitectura, esta última se caracteriza por ser una plataforma de clase empresarial para desplegar aplicaciones comerciales, bases de datos, líneas de negocios y aplicaciones personalizadas. En función de esto, la Figura 6 muestra un resumen de las características de las diferentes versiones de Windows Server 2008.
  • 20. 20 Figura 6: Características de las Versiones de Windows Server 2008 Fuente: https://en.wikipedia.org/wiki/Windows_Server_2008_R2 1.5 Certificaciones Las certificaciones de Windows Server 2008 al igual que en versiones anteriores están diseñadas a capacitar a los profesionales en la implementación, construcción y resolución de problemas asociados a esta versión de Windows Server. Las mismas se pueden obtener a través de la plataforma de Microsoft Certified Solutions Associate (MCSA). Para esta versión desaparecen las certificaciones MCSA y pasan a llamarse MCTS (Microsoft Certified Technology Specialist) y MCITP (Microsoft Certified IT Professional). Actualmente existen 5 certificaciones para Windows Server 2008 enfocados a roles específicos de trabajo, las cuales se describen en el Cuadro Nº 2, el cual se muestra a continuación: Cuadro N°2 Certificaciones disponibles para Windows Server 2008 Nombre Certificación Contenido Exámenes El MCTS: Windows Server 2008 Active Directory Configuration: 1.- Active Directory and Directory Services 2.- Active Directory server roles 3.- Certificate management 4.- Group Policy Exam 70-640: TS: Windows Server 2008 Active Directory, Configuring El MCTS: Windows 1.- Ipadressing and services Exam 70-642: TS:
  • 21. 21 Server 2008 Network Infraestructure Configuration: 2.- Names resolution 3.- File and print services 4.- Network access and remote access 5.- Monitoring network services Windows Server 2008 Network Infrastructure, Configuring El MCTS: Windows Server 2008 Applications Infraestructure Configuration 1.- Windows deployment services 2.- Terminal services 3.- Web services 4.- Media services Exam 70-643: TS: Windows Server 2008 Applications Infrastructure, Configuring El MCITP: Server Administrator La obtención de una certificación de Administrador del servidor MCITP permite adquirir habilidades y conocimientos en la administración y el mantenimiento de una infraestructura de Windows Server 2008 R2. La certificación MCITP: SA es para las personas que desean mantener una infraestructura de Windows 2008 en lugar de diseñar una, en cuyo caso, el certificado MCITP: EA sería la certificación que busca. Tener esta certificación representa una gran adición al currículum vitae o CV de un profesional de TI y así como una gran ventaja al solicitar el puesto de administrador de sistema. El salario promedio para el administrador del servidor MCITP es de USD $ 75000.  Exam 70-640: TS: Windows Server 2008 Active Directory, Configuring  Exam 70-642: TS: Windows Server 2008 Network Infrastructure, Configuring El MCITP: Enterprise Administrator Obtener una certificación de administrador empresarial MCITP en Windows 2008 es un paso definitivo para profesionales de la carrera en la industria de TI. Esta reconocida certificación MCITP se tiene en alta estima y proporcionará a sus empleadores actuales y futuros que posee las habilidades y los conocimientos para implementar y mantener una infraestructura de red de Windows Server 2008. Las personas que cuentan con una certificación de administrador empresarial de MCITP tienen uno de los salarios más altos en promedio en comparación con otras  Exam 70-640: TS: Windows Server 2008 Active Directory, Configuring  Exam 70-642: TS: Windows Server 2008 Network Infrastructure, Configuring  Exam 70-643: TS: Windows Server 2008 Applications Infrastructure, Configuring  Exam 70-620: TS: Windows Vista, Configuring
  • 22. 22 certificaciones de MCITP, si lo desean, pueden ver nuestra comparación de los salarios promedio de MCITP.  Exam 70-624 TS: Deploying and Maintaining Windows Vista Client and 2007 Microsoft Office System Desktops Fuente: https://www.megacrack.es/2008/03/09/certificaciones-windows-server-2008/ CAPÍTULO 2. Diagrama de bloques de la estructura de hardware de una computadora real, susceptible de soportar la implantación del Sistema Operativo WINDOWS SERVER 2008 2.1 Requisitos del Sistema. A continuación se describen todos los requisitos estimados como mínimos y estándares para la instalación del Sistema Operativo Windows Server 2008 (Ver Figura N°7): Figura N°7: Requisitos Mínimos y recomendados para la instalación de Windows Server 2008 Fuente: https://es.wikipedia.org/wiki/Windows_Server_2008 2.2 Diagrama de Bloques de la estructura del Hardware. La capa encargada de la administración del Hardware en Windows NT se denomina HAL, esta es la responsable de la comunicación entre el kernel (Sistema Operativo) y el hardware, además oculta algunos detalles dependientes del hardware tales como controladores de E/S, de interrupción y mecanismos de comunicación multiprocesos. Entre
  • 23. 23 otras cosas la HAL permite utilizar diferentes procesadores al mismo tiempo. La Figura Nº8 muestra la ubicación de la capa de abstracción de Hardware (HAL) dentro del núcleo del sistema operativo: Figura Nº8 capa de abstracción de Hardware (HAL) Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT Particularmente, Windows Server 2008 permite en la mayoría de sus ediciones agregar dispositivos de hardware, tales como memorias y procesadores en caliente. Además de esto, la virtualización es una función tradicional dentro de estos sistemas que demanda una efectiva administración de recursos por parte del sistema operativo. Esto implica que el sistema debe tener la capacidad de ser un servidor particionable, la cual según la fuente https://technet.microsoft.com/es-es/library/cc664685.aspx#EAAA es: La capacidad de un servidor de crear una o más particiones de hardware aisladas. A cada partición de hardware se le asignan sus propios procesadores, memoria y puentes de host de E / S que son independientes de todas las demás particiones de hardware. Cada partición de hardware puede ejecutar una instancia independiente del sistema operativo. En un servidor particionable estáticamente, la configuración de las unidades de partición asignadas a cada partición de hardware no se puede cambiar mientras el sistema se está ejecutando. Para cambiar la configuración, el sistema debe apagarse y reiniciarse. Windows Server 2008 y versiones posteriores de Windows Server admiten servidores particionables estáticamente. En un servidor particionable dinámicamente, la configuración de las unidades de partición asignadas a una partición de hardware se puede cambiar mientras el sistema se está ejecutando. Las unidades de partición se
  • 24. 24 pueden agregar o reemplazar sin reiniciar la instancia del sistema operativo que se ejecuta en la partición de hardware. La Figura Nº 9 muestra un ejemplo de un servidor particionable de hardware. Figura Nº 9: Administración de Hardware Windows Server 2008 Fuente: https://technet.microsoft.com/es-es/library/cc664685.aspx#EAAA En Windows Server 2008, los procesadores y la memoria se modelan como dispositivos Plug and Play. Esto permite que los controladores de dispositivos y las aplicaciones se registren para recibir notificaciones de Plug and Play para que puedan recibir notificaciones cuando se agreguen procesadores o memoria. Esto también permite iniciar el procesador y los dispositivos de memoria después de que se haya iniciado el sistema operativo. Los puentes de host de E / S se han modelado como dispositivos Plug and Play desde Windows 2000. La administración de hardware en Windows Server 2008, se apoya en una secuencia de notificaciones que un controlador de dispositivo puede recibir cuando se agrega un nuevo procesador, la cual es la siguiente:  Notificación de que se ha iniciado un nuevo procesador. Esta notificación se envía de forma sincrónica antes de que el sistema operativo comience a programar
  • 25. 25 subprocesos en el nuevo procesador. Un controlador de dispositivo debe registrarse para recibir esta notificación de que se ha iniciado un nuevo procesador.  Notificación de Plug and Play de que se ha agregado un dispositivo procesador: Esta notificación se envía de forma asíncrona después de que el sistema operativo comienza a programar subprocesos en el nuevo procesador. Un controlador de dispositivo debe registrarse para recibir notificaciones de Plug and Play para recibir esta notificación. 2.3 Descripción del bloque procesador. Windows Server 2008 tiene la capacidad de trabajar con múltiples procesadores, los cuales pueden ser agregados en caliente al sistema. La administración de los mismos se realiza a través del bloque de procesamiento ubicado en el núcleo, y su funcionamiento generalizado se muestra en la figura 10. Figura Nº 10: Esquema General de Administración de procesos Windows Server 2008 Fuente: Alcalá Raúl. Procesos. Planificación del Procesador (2011) Para ello el Sistema operativo implementa una serie de recursos tales como:  Tiempo de la CPU.  Memoria.  Acceso de archivos y dispositivos de E/S. En el entorno de multiprogramación, el sistema operativo decide qué proceso recibe el procesador cuando y durante cuánto tiempo. Esta función se llama programación de procesos. Windows Server realiza las siguientes actividades para la administración del procesador:
  • 26. 26  Realiza un seguimiento del procesador y el estado del proceso. El programa responsable de esta tarea se conoce como controlador de tráfico.  Asigna el procesador (CPU) a un proceso.  Desasigna el procesador cuando ya no se requiere un proceso. 2.4 Descripción del bloque memoria y jerarquía. El bloque administrador de la memoria virtual en Windows Server 2008 está ubicado en el núcleo. Como un subsistema del modo executive, tal como se muestra en la Figura Nº 6, su función es implementar la memoria virtual utilizada para asignar un espacio de direcciones privadas a cada proceso. (Ver Figura 11) Figura Nº 11: Bloque Administrador de Memoria Windows Server 2008 Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT En este sentido, tal como se indica en la fuente https://es.slideshare.net/FrancoSanMartinHerrera/windows-2008-server: En los sistemas operativos modernos como Windows, las aplicaciones y muchos procesos de sistema siempre hacen referencia a la memoria a través de direcciones de memoria virtual. El hardware traduce las direcciones de memoria virtual automáticamente a direcciones reales (RAM). Solo las partes principales del kernel
  • 27. 27 del sistema operativo omiten esta traducción de direcciones y usan directamente las direcciones de memoria reales. Los procesos dentro de Windows utilizan un espacio de direcciones de 32 bits que permite habilitar un espacio de direcciones de hasta 4 gigabytes de direcciones, o 8 terabytes en el caso de los sistemas de 64 bits. Cuando todos los procesos que se ejecutan en el sistema requieren de más memoria que la disponible, Windows utiliza la alternancia entre la memoria virtual (determinado por un archivo de paginación) y la memoria física, que al igual que en UNIX recibe el nombre de swapping. Este intercambio se realiza no de bytes a bytes, sino de página a página, que en Windows son bloques de 4 KB donde se almacenan los datos de los procesos. De ahí que toda la memoria esté paginada, tanto la física como la virtual. La física en forma de marcos de página y la virtual en forma de páginas. Además, Windows dispone de tablas de páginas que son las que apuntan a las propias páginas, y los punteros de estas tablas se almacenan a su vez en un directorio de páginas. Cada proceso dispone sólo de un directorio. El espacio de direcciones para un proceso es el conjunto de direcciones de memoria virtual que puede utilizar. El espacio de direcciones para cada proceso es privado y no se puede acceder por otros procedimientos, a menos que se comparta. Una dirección virtual no representa la ubicación física real de un objeto en la memoria, sino que el sistema mantiene una tabla de páginas para cada proceso. El sistema traduce la dirección virtual a una dirección física mediante diferentes algoritmos, lo que hace que no se pueda acceder a las posiciones de otros procesos porque no es posible hacer referencia a dichas posiciones. A diferencia de los otros sistemas, las páginas pueden estar en tres estados; libre, donde no puede ser accedida por ningún proceso pero sí reservada o encargada; reservada, es un espacio de dirección virtual fijada para usos futuros; encargada, aquella que ha sido asignada a un espacio físico, ya sea en memoria física o virtual. En la Figura 12 se muestra un ejemplo de la jerarquización de memoria implementada por los sistemas Windows NT/2000 en general, la cual es representativa de la implementada por Windows Server 2008 (Ver Figura 12)
  • 28. 28 Figura Nº 12: Jerarquía de Memoria Windows Server 2008 Fuente: http://arquitecturadehardware001.blogspot.com/2014/09/jerarquia-de-la- memoria.html 2.5 Descripción del bloque periféricos. El administrador de E / S en modo kernel de Windows es el responsable de las administración de periféricos del sistema operativo. Su función principal según lo reseñado en la fuente https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/windows- kernel-mode-i-o-manager es “administrar la comunicación entre las aplicaciones y las interfaces proporcionadas por los controladores de dispositivo”. Su ubicación en el kernel del sistema operativo se puede visualizar en la Figura 13 a continuación:
  • 29. 29 Figura Nº 13: Bloque Administrador de Periféricos Windows Server 2008 Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT Así mimo, considerando que los dispositivos o periféricos funcionan a velocidades que pueden no coincidir con el sistema operativo, la comunicación entre el sistema operativo y los controladores de dispositivos se realiza principalmente a través de paquetes de solicitud de E / S (IRP). La Figura 14 describe el funcionamiento del bloque de administración de periféricos el cual se encarga de contralar las operaciones de E/S del sistema operativo Windows Server 2008, la descripción de las operaciones de este bloque se describen en la fuente https://www.researchgate.net/figure/ en la cual se especifica que se trata de: Modelo de pila de controladores de E / S de Windows NT. El (Administrador de E / S) del sistema operativo Windows NT maneja el flujo de datos hacia y desde dispositivos periféricos. Exporta un (sistema de servicios de E / S) cuyo subsistema protegido en modo usuario proporciona una programación. (Aplicaciones) utiliza esa interfaz para manipular los dispositivos, como enviarles solicitudes de E / S, de modo que el (Administrador de E / S) pueda interceptar todas esas solicitudes.
  • 30. 30 Figura 14: Diagrama de bloques bloque de E/S de periféricos de Windows Server 2008 Fuente:https://www.researchgate.net/figure/Windows-NT-I-O-driver-stack-model-The-I-O- Manager-of-the-Windows-NT-operating-system_fig1_220718462 2.6 Evolución histórica de la estructura del hardware. Esta sección describe la evolución de los requerimientos de hardware de las diferentes versiones de Windows Server 2008, este resumen se presenta en el cuadro Nº 3 a continuación: Cuadro Nº3 Evolución Histórica de la Estructura de Hardware Windows Server 2008 Especificación Windows Server 2008 SP2 Windows Server 2008 R2 Fecha de Lanzamiento Febrero 2008 Julio 2009 Procesadores Físicos ("sockets") Standard: 4 Enterprise: 8 Datacenter: 32 Standard: 4 Enterprise: 8 Datacenter: 64 Procesadores Lógicos con Hyper-V está deshabilitado IA-32: 32 x64: 64 256 Procesadores lógicos cuando Hyper-V está habilitado IA-32: N/A x64: 24 64 Memoria en IA-32 Standard, Web: 4 GB Enterprise, Datacenter: 64 GB N/A
  • 31. 31 Memoria en x64 Standard, Web: 32 GB HPC: 128 GB Enterprise, Datacenter: 1 TB Foundation: 8 GB Standard, Web: 32 GB HPC: 128 GB Enterprise, Datacenter: 2 TB Memory on Itanium 2 TB 2 TB Fuente: Elaborada por el investigador con datos dehttps://en.wikipedia.org/wiki/Windows_Server_2008 PARTE 2. ESTRUCTURA DEL SISTEMA OPERATIVO WINDOWS SERVER 2008 CAPÍTULO 3. Sistema operativo WINDOWS SERVER 2008 3.1 Objetivos de diseño Al estudiar acerca de los objetivos de diseño de Windows Server 2008, nos encontramos que el mismo busca cubrir ciertos características de funcionabilidad que lo hagan competente y funcional para cubrir las demandas del mercado de Sistemas Operativos para servidores. En base a esto, los objetivos de diseño de Windows Server 2008 son los siguientes:  Extensibilidad: El código pudiese cambiar a medida que cambiasen los requisitos de mercado. Es decir esta versión busca ser fácilmente mantenible.  Portabilidad: Permitir la portabilidad de aplicaciones entre distintos ordenadores.  Fiabilidad y Robustez: Debe estar diseñado con protección contra errores internos y externos.  Compatibilidad: Garantiza una interfaz de usuario de aplicaciones (API) compatible con las actualmente disponibles en Microsoft.  Multiproceso y factibilidad de ampliación: Las aplicaciones pueden ejecutarse tanto en sistemas monoprocesador como multiprocesador.  Procesamiento Distribuido: Debe soportar facilidad de comunicaciones, y debe poder distribuir sus tareas entre los distintos ordenadores de la red.
  • 32. 32  Sistema Abierto: Debe cumplir con las normas POSIX, las cuales según Juan A Pérez /Juan A. Morera (2002) en artículo publicado en https://peredafp.files.wordpress.com/2009/02/04-estructura-windows-2008.pdf: “Es un estándar de sistemas abiertos basados en el sistema operativo UNIX”.  Rendimiento: Debería ser lo más rápido y eficiente posible. 3.2 Diagrama de bloque del Sistema operativo WINDOWS SERVER 2008 Windows Server 2008 está incluido dentro de la familia de Windows NT, su núcleo está basada en la versión de Windows NT 6.1, y al igual que todas las versiones de esta familia se caracterizan por contar con multitarea apropiativa, además de esto posee la faculta de Symmetrical Multi Processoró SMP, también conocido como multiprocesamiento simétrico. Además de esto según la fuente electrónica https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT “procesar las peticiones de entrada/salida (en inglés Input/Output, I/O) acude a una dirección de paquetes de E/S que utiliza peticiones (IRPs) y E/S asíncrona”. La arquitectura de este sistema operativo es altamente modular, basada en el objetivo de diseño característico de la familia de Windows, un núcleo pequeño tan pequeño como sea posible, integrado por módulos que dan respuesta a las llamadas del sistema, las cuales necesariamente se ejecutan en modo privilegiado, el resto de las acciones se ejecutan en modo no privilegiado. Así, el núcleo resulta una base compacta, robusta, estable y lo más pequeña posible, pero en la cual se ejecutan también otras unidades que sirven para propósitos bien definidos, lo cual se conoce como sistema multinivel. Así mismo y tal como se indica en la fuente https://peredafp.files.wordpress.com/2009/02/04-estructura-w indows-2000.pdf “En Windows se ejecuta en modo privilegiado el kernel y el Ejecutivo. En modo usuario los susbsistemas. Los programas de usuario interaccionan con el SO a través de un juego de llamadas al sistema (funciones): API (Application Programming Interface)”. El diagrama de bloques característico de Windows NT se muestra en la Figura Nº15 a continuación:
  • 33. 33 Figura Nº 15 Diagrama de Bloques Windows Server 2008 Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT 3.3 Descripción de cada bloque Modo Núcleo (Kernel): Esta capa está compuesta por dos subsistemas capaces de gestionar los procesos de E/S. Los cuales según lo descrito en la fuente electrónica (https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT) son los siguientes “el subsistema de Entorno (ejecuta aplicaciones escritas para distintos tipos de sistemas operativos), y el subsistema Integral (maneja funciones específicas de sistema de parte del subsistema de Entorno)”.
  • 34. 34 El modo núcleo de Windows Server 2008 tiene acceso total al hardware, además según la misma fuente (https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT) “impide a los servicios del modo usuario y las aplicaciones acceder a áreas críticas del sistema operativo a las que no deberían tener acceso”. El núcleo (kernel) también es responsable de inicializar los controladores de dispositivos al arrancar el sistema, existen 03 niveles de controladores en el modo núcleo los cuales se definen como de alto, intermedio y bajo nivel. En la Figura Nº6 se muestra un resumen del núcleo del S.O en estudio. (Ver Figura Nº16): Figura Nº 16 Núcleo de Windows Server 2008 Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT Así mismo, los subsistemas y componentes del modo núcleo se describen a continuación:  Administrador de objetos (Object Manager): es un subsistema ejecutivo que todos los demás subsistemas ejecutivos, especialmente las llamadas al sistema, deben pasar para obtener acceso a los recursos de Windows Server 2008, lo que lo convierte en un servicio de infraestructura de administración de recursos. El administrador de objetos se utiliza para reducir la duplicación de la funcionalidad de administración de recursos de objetos en otros subsistemas ejecutivos, lo que podría
  • 35. 35 provocar errores y dificultar el desarrollo de Windows. En la Figura Nº6 se muestra la interfaz de administración de objetos de Windows Server 2008. (Ver Figura Nº17): Figura Nº 17 Administrador de Objetos Windows Server 2008 Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT  Gestor de procesos (Process Manager): Responsable de crear y terminar procesos y subprocesos usando las funciones subyacentes del kernel. En la figura Nº7 se muestra la interfaz de usuario de Windows Server para gestión de procesos. (Ver Figura Nº18)
  • 36. 36 Figura Nº 18: Administrador de Procesos Windows Server 2008 Fuente: http://rickardnobel.se/windows-2008-r2-memory-counters-in-task-manager/  Administrador de memoria virtual (Virtual Memory Manager): Bloque encargado de Implementar la memoria virtual utilizada para asignar un espacio de direcciones privadas a cada proceso. La interfaz de administración y monitoreo de la memoria virtual de Windows Server 2008 está incluida en la interfaz del administrador de procesos, tal como se observa en la figura Nº 19. Figura Nº 19: Administrador de Memoria Virtual Windows Server 2008 Fuente: https://blogs.technet.microsoft.com/markrussinovich/2008/11/17/pushing-the- limits-of-windows-virtual-memory/
  • 37. 37  Gestor de E/S (I/O Manager):Según la fuente https://www.oreilly.com/library/view/securing-window.html “Este bloque se encarga de proporcionar un sistema de E / S independiente del dispositivo a los procesos.”Es decir, envía las solicitudes de E / S al controlador de dispositivo apropiado. Y además permite que los dispositivos se comuniquen con los subsistemas en modo usuario. Otras de sus funciones es traducir los comandos de lectura y escritura en modo usuario en los IRP de lectura o escritura que pasa a los controladores de dispositivo. A partir de Windows NT Server 4.0, Terminal Server Edition, el administrador de memoria implementa el denominado espacio de sesión, un rango de memoria en modo kernel que está sujeto a cambio de contexto, al igual que la memoria en modo usuario.  Llamadas a Procedimientos Local (LPC Manager): Este bloque según lo indicado en la fuente https://www.oreilly.com/library/view/securing-window.html “Implementa una versión rápida y liviana de RemoteProcedureCall (RPC) para la comunicación entre componentes dentro de una computadora.” Es decir, proporciona puertos de comunicación entre procesos con semántica de conexión. Sin embargo también es usado por el modo usuario para comunicarse con sus clientes, los subsistemas ejecutivos para comunicarse con los subsistemas en modo usuario y como base para el transporte local de Microsoft RPC.  Monitor de referencia de seguridad (SRM): Es la autoridad principal para hacer cumplir las reglas de seguridad del subsistema de seguridad integral. Determina si se puede acceder a un objeto o recurso, mediante el uso de listas de control de acceso (ACL), que a su vez se componen de entradas de control de acceso (ACE). La cual es definida en la fuente electrónica https://www.oreilly.com/library/view/securing-window.htmlcomo “Aplica las políticas de acceso y auditoría en el sistema. El Monitor de referencia de seguridad proporciona validación de acceso, verificación de privilegios y generación de mensajes de auditoría en tiempo de ejecución para los procesos en modo usuario y kernel”.
  • 38. 38  Administrador de ventanas e interfaz gráfica de dispositivos GDI: Según la fuente electrónica https://www.oreilly.com/library/view/securing-window.html “Estos componentes forman parte del modo kernel del subsistema Win32. Manejan la entrada del usuario y la salida de pantalla. Todo el subsistema Win32 se ejecutó originalmente en modo de usuario; sin embargo, por razones de rendimiento, una parte de ella se movió al modo kernel a partir de NT 4.0”. La interfaz del dispositivo gráfico es responsable de tareas como dibujar líneas y curvas, renderizar fuentes y manejar paletas. La serie de versiones de Windows NT 3.x colocó el componente GDI en el Subsistema de Tiempo de Ejecución Cliente / Servidor en modo usuario, pero se movió al modo kernel con Windows NT 6.0 de Windows Server 2008 para mejorar el rendimiento de los gráficos.  Administrador de energía (Power Manager): Se ocupa de los eventos de energía (apagado, en espera, hibernación, etc.) y notifica a los controladores afectados con IRP especiales (IRP de energía). En la figura Nº9 se muestra la interfaz de administrador de energía de Windows Server 2008 (Ver Figura Nº 20): Figura Nº 20: Administrador de Energía Windows Server 2008 Fuente: https://blogs.technet.microsoft.com/askds/2008/03/17/managing-power-with- group-policy-part-1-of-3/
  • 39. 39  Gestor de PnP (PnP Manager): Maneja plug and play y admite la detección e instalación de dispositivos en el momento del arranque. También tiene la responsabilidad de detener e iniciar dispositivos a pedido. Esto puede suceder cuando un bus (como USB o IEEE 1394 FireWire) obtiene un nuevo dispositivo y necesita tener un controlador de dispositivo cargado para admitirlo. Modo Usuario (Executive): Esta capa se relaciona con todos los subsistemas del modo usuario, esta es la responsable de la entrada/salida de objetos, la seguridad y la gestión de procesos; además según lo documentado en la fuente electrónica https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT entre sus funciones se encuentra “proporcionar sincronización multiprocesador, hilos y programación y envío de interrupciones, y envío de excepciones.” La Figura Nº21 muestra el entorno de usuario. Figura Nº 21 Modo Usuario Windows Server 2008 Fuente: https://es.wikipedia.org/wiki/Arquitectura_de_Windows_NT Los subsistemas que se ejecutan en modo de usuario se denominan subsistemas de entorno. Hay tres subsistemas de entorno, descritos a continuación:  Subsistema Win32: La parte del subsistema Win32 que se ejecuta en modo de usuario. El subsistema Win32 es una parte requerida del sistema operativo y se carga como parte de la secuencia de inicio. El subsistema consta de las DLL de la API de Win32 (kernel32.dll, user32.dll, gdi32.dll) y el proceso del subsistema de Win32 (csrss.exe).
  • 40. 40  Subsistema POSIX: Proporciona soporte para aplicaciones POSIX.1. Es un componente opcional que se carga bajo demanda.  Subsistema OS / 2 1.x: Proporciona soporte para aplicaciones de consola OS / 2 1.x. Es un componente opcional que se carga bajo demanda. CAPÍTULO 4. Conceptualización de Procesos y/o hilos 4.1 Conceptos de Procesos y/o hilos. Procesos: Los procesos en Windows Server 2008 al igual que Windows NT 6.1 el cual es su núcleo, se implementan como objetos y son accedidos mediante servicios de objetos. Un proceso NT tiene asociados varios hilos que se ejecutan en su espacio de direccionamiento. Así mismo, el diseño de los procesos de Windows Server 2008 está dirigido por la necesidad de dar soporte a varios entornos de sistemas operativos. Por lo cual tal como lo indican Alvear Luis y Álvarez David (2012) “la estructura nativa de los procesos y de los servicios que brinda el núcleo de NT 6.1 es relativamente simple y de propósito general, permitiendo a cada subsistema emular la estructura y la funcionalidad particular de los procesos de un sistema operativo.” (pág. 21) Las características más importantes de los procesos de NT son las siguientes:  Los procesos de Windows Server 2008 se implementan como objetos.  Un proceso ejecutable puede tener uno o más hilos.  Los objetos proceso y los objetos hilo tienen capacidades predefinidas de sincronización.  El núcleo de Windows Server 2008 no conserva ninguna relación entre los procesos que crea, incluyendo las relaciones padre-hijo. Cada proceso en Windows Server 2008 tiene una señal de acceso que le sirve para cambiar sus propios atributos. También tienen que ver con el proceso una serie de bloques que definen el espacio de direcciones virtuales asignado. El proceso no puede modificar directamente estas estructuras, sino que debe depender del administrador de memoria virtual, quien le proporciona al proceso un servicio de asignación de memoria. Finalmente, el proceso incorpora una tabla de objetos, con los descriptores de otros objetos que conoce.
  • 41. 41 En la Figura Nº11 se muestra un ejemplo de la estructura de un proceso en Wind0ws Server 2008. (Ver Figura Nº 22): Figura Nº 22 Estructura de un Proceso Windows Server 2008 Fuente: https://sisoperativoutp1995.wordpress.com/2016/10/01/procesos-en-windows- nt2000/ En la Figura Nº 23 se muestra la descripción de los atributos de un proceso.
  • 42. 42 Figura Nº 23: Atributos de un Proceso Windows Server 2008 Fuente: https://sisoperativoutp1995.wordpress.com/2016/10/01/procesos-en-windows- nt2000/ Hilos: Los hilos son similares a los procesos ya que ambos representan una secuencia simple de instrucciones ejecutada en paralelo con otras secuencias. Estos según lo indicado por Alvear Luis y Álvarez David (2012) son: una forma de dividir un programa en dos o más tareas que corren simultáneamente, compitiendo, en algunos casos, por la CPU. La diferencia más significativa entre los procesos y los hilos, es que los primeros son típicamente independientes, llevan bastante información de estados, e interactúan sólo a través de mecanismos de comunicación dados por el sistema. (pág.26) Por otra parte, los hilos generalmente comparten la memoria, es decir, acceden a las mismas variables globales o dinámicas, por lo que no necesitan costosos mecanismos de comunicación para sincronizarse. Por ejemplo un hilo podría encargarse de la interfaz gráfica (iconos, botones, ventanas), mientras que otro hace una larga operación internamente. De esta manera el programa responde más ágilmente a la interacción con el usuario. En sistemas operativos que proveen facilidades para los hilos, es más rápido
  • 43. 43 cambiar de un hilo a otro dentro del mismo proceso, que cambiar de un proceso a otro. Es posible que los hilos requieran de operaciones atómicas para impedir que los datos comunes sean cambiados o leídos mientras estén siendo modificados. El descuido de esto puede generar estancamiento. En el Cuadro Nº4 se muestra la diferencia entre un proceso y un hilo en Windows: Cuadro Nº4 Diferencia entre Procesos e Hilos Proceso Hilo Manejado por el S.O, independiente de otros procesos. Maneja memoria privada, se necesitan mecanismos de comunicación para compartir información. Manejados por los procesos, relacionados con otros hilos del mismo proceso. Memoria compartida con el resto de los hilos que forman el proceso. Fuente: Procesos e Hilos en los Sistemas Operativos Windows y Linux. Luis F. Alvear, David A. Álvarez (2012) Así mismo, nótese cómo en la Figura Nº24 se puede apreciar que los procesos son entidades independientes, mientras que los hilos son entidades relacionadas por la sección de datos en el interior del proceso que los contiene. Figura Nº 24 Procesos e Hilos Fuente: Procesos e Hilos en los Sistemas Operativos Windows y Linux. Luis F. Alvear, David A. Álvarez (2012)
  • 44. 44 En resumidas cuentas, y tal como se indica en la fuente https://www.monografias.com/trabajos26/estados-proceso-hilos/: Un proceso es una entidad correspondiente a un trabajo de usuario o a una aplicación, que dispone de sus propios recursos, tales como memoria y archivos. Un hilo es una unidad de trabajo que se puede expedir para su ejecución secuencial y que es interrumpible, de forma que el procesador puede pasar de un hilo a otro. 4.2 Diagrama de estado de Procesos y/o hilos A continuación se muestra en la Figura Nº 25 la transición entre estados de un hilo en Windows Server 2008: Figura Nº 25: Transición de los estados de un hilo. Fuente: https://sisoperativoutp1995.wordpress.com/2016/10/01/procesos-en-windows- nt2000/ Los estados de un hilo son los siguientes:  Alerta: Seleccionado como el siguiente hilo a ser ejecutado en un procesador dado. Operación (planificación) previa a la invocación de un cambio de contexto.  Bloqueado: Espera a que un objeto de sincronización pase a una situación de marcado (“signaled”) que indique la llegada del evento de espera.
  • 45. 45  Listo: El hilo listo para ejecutarse  Ejecución: El hilo está ejecutando  Standby: El hilo ha sido seleccionado para ser ejecutado en un procesador particular.  Waiting: Se encuentra bloqueado esperando un evento  Terminated: Finalización del hilo. De igual manera en la Figura Nº 26 a continuación se describe la implementación de procesos e hilos en Windows NT (Núcleo de Windows Server 2008): Figura Nº 26: Implementación de los procesos e hilos en Windows NT/2000. Fuente: https://sisoperativoutp1995.wordpress.com/2016/10/01/procesos-en-windows- nt2000/ Estados de un Proceso: Al igual que los hilos, los procesos también pueden estar en ciertos estados, para los cuales la Figura Nº 27 muestra un ejemplo de estos:
  • 46. 46 Figura Nº 27: Estados de un Proceso Fuente: Procesos e Hilos en los Sistemas Operativos Windows y Linux. Luis F. Alvear, David A. Álvarez (2012) Hay una cola sencilla de procesos. Cada entrada de la cola es un puntero a un proceso en particular. Cuando un proceso se interrumpe, se le pasa a la cola de procesos en espera. Por otra parte, si un proceso termina o se abandona, este sale del sistema. En cualquier caso, el, distribuidor selecciona entonces un proceso de la cola para ejecutarlo. En función a esto y según los autores Alvear Luis y Álvarez David (2012) antes citados: Algunos procesos en el estado de No Ejecución están listos para ejecutar, mientras que otros están bloqueados, esperando a que termine una operación de E/S. Los procesos esperan cola en una lista en la cual el primero en entrar, es primero en salir. Así pues, utilizando una cola sencilla, el distribuidor podría no seleccionar exactamente el proceso que está en el extremo más antiguo de la cola, por lo cual se han incorporado algunos estados de gran utilidad. (pág.40) Así, los posibles estados de un proceso son los siguientes:  Ejecución: El proceso que está actualmente en ejecución.  Listo: Proceso que está preparado para ejecutar, en cuanto se le dé la oportunidad.  Bloqueados: Proceso que no puede ejecutar hasta que se produzca cierto suceso, como la terminación de una operación de E/S.
  • 47. 47  Nuevo: Proceso que se acaba de crear, pero que aún no ha sido admitido por el sistema operativo en el grupo de procesos ejecutables  Terminado: Un proceso que ha sido excluido por el sistema operativo del grupo de procesos ejecutables. En la Figura Nº 28 se muestra una representación de los mismos: Figura Nº 28: Estados de un Proceso Fuente: Procesos e Hilos en los Sistemas Operativos Windows y Linux. Luis F. Alvear, David A. Álvarez (2012) CAPÍTULO 5.- Planificación de procesos 5.1 Sincronización de procesos La forma en que se reparte el uso de la CPU entre los procesos, tiene un enorme impacto en el rendimiento de un sistema multiprogramado, por lo que siempre se ha prestado una gran atención a las políticas de planificación que se implementan y se han elaborado multitud de conceptos relacionados con ello. Como conocimiento general, Además de por su arquitectura, Los distintos sistemas operativos se diferencian por las soluciones que aportan a los requisitos de funcionamiento, por lo que uno de los objetivos principales es proporcionar una utilización eficiente de los recursos del proceso, permitiendo a los procesos un uso de ellos que evite situaciones de inanición. Según TANENBAUM (2009) “Un proceso no es más que una instancia de un programa en ejecución, incluyendo los valores actuales del contador de programa, los registros y las
  • 48. 48 variables” (p. 84), lo que quiere decir que un proceso es un programa en ejecución que necesita estar cargado en memoria y disponer de recursos (CPU, memoria, archivos, dispositivos de E/S) para cumplir su objetivo. Mientras que los programas son un conjunto de archivos que están almacenados en algún dispositivo de almacenamiento (disco duro, pendrive…) y cuyo código fuente está escrito en algún lenguaje de programación. Cuando este conjunto de archivos se ejecutan, entonces pasan a ser un proceso. Aunque la política de planificación es independiente, en general, del número de unidades de proceso, los sistemas multiprocesador requieren políticas complementarias que tienen como objetivo un compromiso entre el equilibro de la carga de los procesadores, que conduce a una mejor utilización de estos, y el aprovechamiento de la localidad de los procesos, que impulsa a mantener a cada proceso en un mismo procesador durante su ejecución. Evaluar la calidad de una política de planificación es complejo y presenta diferentes perspectivas, dependiendo de los intereses de las aplicaciones, lo que lleva a definir previamente un conjunto de parámetros de rendimiento. El rendimiento de una determinada política de planificación dependerá también del comportamiento de los programas, por lo que la elección de una u otra política deberá tener en cuenta el tipo de procesos que ejecuta el sistema, fundamentalmente si están orientados a cálculo o son interactivos. El sistema operativo se encarga de enlazar las aplicaciones con los dispositivos de hardware, por lo que deberá controlar elementos de ambas subestructuras. Algunas aplicaciones, como las de tiempo real, imponen unos requisitos muy particulares en el uso del procesador, lo que hace difícil su convivencia con las aplicaciones habituales en los sistemas de propósito general (de tiempo compartido), conduciendo a políticas de planificación de tiempo real específicas. La parte del S.O. encargada de seleccionar el siguiente proceso para ejecutar es el planificador (scheduler) pero otras partes del sistema pueden colaborar en esta tarea, normalmente modificando los parámetros que utiliza el scheduler para decidir qué proceso planificar. Los objetivos de un planificador varían dependiendo del entorno de aplicación según comenta Pedro Cabalar (S.F) en su trabajo llamado “Sistemas Operativos”
  • 49. 49 - “Entornos de proceso por lotes (batch): Se denomina planificador a largo plazo (o de trabajos) y mayormente decide el orden de los trabajos y el grado de multiprogramación. (ej. Inventarios, cálculos de nóminas, etc.) - Entornos interactivos: entornos gráficos, servidores, etc. Planificación apropiativa para atender distintos procesos concurrentemente (tiempo compartido). Se suele llamar planificador a medio plazo. - Entornos de tiempo real: menos dependencia de apropiación de CPU. Los procesos no ejecutan por largos períodos de tiempo. El sistema y sus procesos suelen ser más limitados y controlados”. La Figura 29 muestra el esquema de administración de procesos de Windows Server 2008: Figura Nº29. Principales Planificadores de la CPU Fuente: https://gsitic.wordpress.com/2017/12/10/bii2-conceptos-de-sistemas-operativos- estructuras-componentes-y-funciones-caracteristicas-y-evolucion-administracion-de- memoria-procesos-y-subprocesos-entrada-salida-sistemas-de-archivo-siste/ Planificador a largo plazo: Una vez creado un proceso - Decide algunos de los criterios para su planificación - Selecciona procesos de la cola de esperando ejecución y los carga a memoria. - Controla el grado de multiprogramación. Es importante que elija un conjunto equilibrado de procesos. - Se ejecuta con poca frecuencia.
  • 50. 50 Para estos sistemas de procesamiento son aceptables los algoritmos no apropiativos (o apropiativos con largos periodos para cada proceso). Este método reduce la conmutación de procesos y por ende, mejora el rendimiento. En realidad, los algoritmos de procesamiento por lotes son bastante generales y a menudo se pueden aplicar a otras situaciones también. Planificador a corto plazo: - Selecciona los procesos que se sacaran o introducirán temporalmente en la memoria principal, al sacar un proceso de memoria por problemas de espacio, hace que este no sea inmediatamente planificable. - Se ejecuta con mucha frecuencia. En un entorno con usuarios interactivos, la apropiación es esencial para evitar que un proceso acapare la CPU y niegue el servicio a los demás. Aun si no hubiera un proceso que se ejecutara indefinidamente de manera intencional, podría haber un proceso que deshabilitara a los demás de manera indefinida, debido a un error en el programa. La apropiación es necesaria para evitar este comportamiento. Los servidores también entran en esta categoría, ya que por lo general dan servicio a varios usuarios (remotos), todos los cuales siempre tienen mucha prisa. Planificador a medio plazo: - Decide qué proceso pasa de la memoria principal a la secundaria (memoria virtual) o viceversa. - Cada vez que un proceso abandona la CPU, toma la decisión de qué proceso planificar en función de la política de planificación establecida y del valor de los parámetros de planificación. Políticas principales para la planificación: Planificación no apropiativa: (algoritmos no expulsivos) - Los procesos se ejecutan hasta que terminan o se bloquean. - Sencillo de implementar.
  • 51. 51 - Rendimiento negativo en general. Planificación apropiativa: (algoritmos expulsivos) - Los procesos pueden ser expulsados de la CPU. - Mayor coste de implementación. Necesitan soporte hardware adicional (relojes) - Mejora el servicio y evita monopolización de la CPU. En los sistemas con restricciones de tiempo real, la apropiación a veces es no necesaria debido a que los procesos saben que no se pueden ejecutar durante periodos extensos, que por lo general realizan su trabajo y se bloquean con rapidez. La diferencia con los sistemas interactivos es que los sistemas de tiempo real sólo ejecutan programas destinados para ampliar la aplicación en cuestión. Los sistemas interactivos son de propósito general y pueden ejecutar programas arbitrarios que no sean cooperativos, o incluso malintencionados. 5.2 Planificación de sistemas en ambiente Multiprogramación Se denomina multiprogramación a la técnica que permite que dos o más procesos ocupen la misma unidad de memoria principal y que sean ejecutados al "mismo tiempo" en la unidad central de proceso o CPU como ya vimos en los capítulos anteriores. El concepto de multiprogramación no se debe confundir con operación de multiproceso. Si bien el primer término implica el último, no sucede en viceversa. La operación multiproceso es la gestión de la totalidad de los recursos del sistema de la computadora mediante la implementación de cauce segmentado. La multiprogramación modificó el esquema de implementación de sistemas operativos por lotes al permitir alcanzar una mayor interacción entre los usuarios y programas en ejecución, un mayor rendimiento total del sistema y la creación de sistemas dinámicos que facilitan la implementación y estandarización de nuevos programas y conexiones con sistemas externos. Los sistemas multiprogramados son sistemas complejos, con cierta sofisticación. Tienen un número variado de procesos preparados para ejecutar, que hay que mantener simultáneamente en memoria, o por lo menos información sobre ellos. Son procesos, por otra parte que se van alternando en el uso de todos los recursos del sistema, no sólo la CPU,
  • 52. 52 sino también la memoria física, los dispositivos e incluso recursos lógicos, como puede ser la posesión de estructuras de sincronización (semáforos, esperas activas,...). El tener trabajando sobre los mismos recursos del sistema a diferentes procesos, de diferentes aplicaciones, con diferentes necesidades y características, es un factor decisivo a la hora de elegir políticas de asignación de procesos a procesadores. Como saber qué procesos pueden competir por qué conjunto de recursos y cómo, puede cambiar de manera drástica el rendimiento de un sistema. Los algoritmos de planificación son las políticas que se seguirán para elegir qué proceso entra en cada momento a ejecutarse en el sistema. La política utilizada es crítica para decidir el orden de ejecución de los procesos, por lo que al efectuar una planificación se siguen los siguientes criterios:  Maximizar la utilización y productividad de la CPU.  Minimizar el tiempo de retorno, de espera y de respuesta. La multiprogramación significa que varios programas que están en memoria al mismo tiempo pueden compartir la CPU, mejorando la eficiencia global del sistema y realizando más trabajo en menos tiempo. Un trabajo se ejecuta hasta que deba aguantar; normalmente para terminar alguna solicitud de E/S. En un sistema informático sencillo, la CPU permanecería inmóvil durante ese tiempo; con la multiprogramación sin embargo, si mantenemos en memoria varios trabajos al mismo tiempo, cuando uno de ellos tiene que esperar, el sistema operativo retira de la CPU ese trabajo y la dedica a otro. En la figura 30 se puede observar como la ejecución de los 3 procesos (o hilos) se va solapando en el tiempo a tal velocidad, que causa la impresión de realizarse en paralelo (simultáneamente). De ahí que, en rigor, se diga que la CPU ejecuta «concurrentemente» (no simultáneamente) varios procesos; en un lapso de tiempo determinado, se ejecutarán alternativamente partes de múltiples procesos cargados en la memoria principal.
  • 53. 53 Figura Nº 30. Multiprogramación Fuente: http://soperativosos.blogspot.com/2015/04/multiprogramacion.html Como tipos de sistemas operativos de multiprogramación tenemos: Sistemas de tiempo compartido: Poseen un buen tiempo de respuesta del terminal y tratan con frecuencia de proporcionar un reparto equitativo de los recursos comunes para dar la ilusión a cada usuario de poseer la máquina para el mismo. Su algoritmo empleado en el despacho de las actividades es único de la filosofía de estos sistemas. El mismo consiste en la ejecución de los programas con prioridad rotatoria que se incrementa con las esperas y cae después de que se dispensó el servicio. El sistema operativo interrumpe un programa y lo pone al final de la cola de programas en espera, cuando es más largo que la fracción de tiempo definida por el sistema, para prevenir a los programas de la monopolización del procesador. El gestor de memoria del sistema proporciona el aislamiento y protección de los programas en ejecución. Sin embargo, se puede emplear un espacio de memoria compartido controlado por el sistema operativo. Los componentes de entrada salida se rigen por un gestor I/O que debe permitir la cooperación con múltiples usuarios y dispositivos. Debido a la lenta respuesta de los terminales humanos y la reacción o respuesta humana, el procesamiento de las interrupciones del terminal no necesita ser críticas para el tiempo.
  • 54. 54 El gestor de archivos, por otro lado, debe proporcionar protección y control de acceso, dado a la posibilidad de concurrencia y de conflictos al acceder a los archivos. Sistemas de tiempo real: Se usan en entornos donde se deben aceptar y procesar en tiempo breve y sin tiempos muertos un gran número de sucesos, en su mayoría externos al sistema de computadora. Son asuntos secundarios la conveniencia del usuario y la utilización de recursos. Estos sistemas se caracterizan principalmente por encargarse de procesos que se activan al ocurrir el suceso relacionado, señalado frecuentemente por una interrupción. Se consigue el multiproceso planificando los procesos independientes unos de otros. Se asigna a cada proceso un cierto nivel de prioridad que corresponde a la importancia relativa de los sucesos que sirve. El procesador está normalmente asignado al proceso con más alta prioridad entre los que están listos para ejecutarse. Esta forma de planificación se llama planificación basada en la prioridad preferente. Generalmente estos sistemas de operación no poseen ningún tipo de almacenamiento secundario, solamente en aquellos sistemas de grandes magnitudes en los cuales si es requerido se necesita la implementación de un gestor de archivos que como en otros tipos de sistemas operativos debe manejar protección y control de acceso. Sistemas operativos combinados: Los sistemas combinados se caracterizan por poseer bloques o lotes que se ejecutan con una menor prioridad que el resto de las aplicaciones. Así se logra el uso completo del procesador al eliminar los tiempos muertos o de espera. 5.3 Planificación de sistemas en ambiente Multiprocesamiento El rendimiento que pueda obtenerse en cualquier sistema informático es resultado de la combinación del hardware y del software; y como elemento radical del software, el sistema operativo. Con la aparición de máquinas de propósito general de más de un procesador, surge la necesidad de adaptar los sistemas operativos ya existentes para la gestión de un nuevo recurso con múltiples instancias: el procesador, la mayoría de las realizaciones de sistemas multiprocesadores suelen incluir el diseño de mecanismos para la sincronización y comunicación entre procesadores. Para una mayor eficiencia, se intenta incluso que estos
  • 55. 55 mecanismos formen parte del hardware de la máquina, aumentando o modificando, si es posible, el conjunto de instrucciones del procesador. La planificación de procesos en un sistema multiprocesador presenta dos componentes importantes: - Planificación temporal, que define la política de planificación en cada procesador individual, exactamente igual que si de un monoprocesador se tratase, salvo por el hecho de que en los multiprocesadores es menos relevante para el rendimiento la política que se elija, y tanto menos cuanto más procesadores. En la planificación temporal se decide qué procesos se ejecutan. - Planificación espacial, que define cómo se asignan los procesadores a los diferentes procesos. En la planificación espacial se decide en qué procesadores se ejecutan los procesos. En un multiprocesador moderno existen niveles de memoria cache (interna y externa) privados para cada procesador, lo que, como veremos, tiene relevancia para la elección de una política de planificación, de las cuales hay gran variedad hoy en día. Corvella y otros (1991) indican “Podemos agruparlas todas ellas en dos grandes familias: las políticas de tiempo compartido y las de espacio compartido”.  Las políticas de planificación de tiempo compartido: Reparten el recurso procesador entre las aplicaciones en función del tiempo total del sistema, asignándoles ranuras (slots) de tiempo. Son adaptaciones de las políticas de planificación de sistemas monoprocesador de las que provienen en su fundamento como ya hemos desarrollado en los títulos anteriores.  Las políticas repartiendo todo el sistema en función de su espacio: es decir, particionando el número total de procesadores entre las aplicaciones del sistema. Como caso especial de planificación en multiprocesadores está la planificación de grupos: se considera toda la máquina como una única partición y se multiplexa en el tiempo todo el grupo de procesadores como bloque entre las diferentes aplicaciones.
  • 56. 56 Para agregarle contenido a lo citado, las políticas de planificación de tiempo compartido buscan decidir qué proceso seleccionar para ser ejecutado en un determinado procesador según una prioridad asignada a cada proceso. Por lo que podemos concluir que lo que define estas políticas propuestas, son los parámetros bajo los que se determina la prioridad de un proceso entre los cuales están: - El tiempo de CPU consumido en total desde el inicio de su ejecución, o consumido recientemente desde su última planificación - El tamaño del proceso (tiempo que se estime va a durar su ejecución), - El número de flujos, o cualquier otro criterio previsto por el sistema, o por el usuario. Hay que acotar que los sistemas que se basan puramente en la prioridad que se asigna a un proceso, pueden tener problemas de inanición; es por eso que para solucionar este problema, la mayoría de sistemas basados en prioridades las van cambiando en el tiempo mediante un mecanismo de envejecimiento (aging). Se conocen también como sistemas de prioridades dinámicas. La política más sencilla, conocida como de “tiempo compartido” por excelencia, es la de round-robin, que como ya vimos en capítulos anteriores, asigna a cada proceso un tiempo concreto de procesador, arbitrado por el reloj del sistema, y al finalizar este tiempo se cede la CPU al siguiente proceso de la cola de preparados. Con respecto a las políticas de espacio compartido, las mismas combinan planificación temporal y espacial. Se utilizan en entornos de cálculo intensivo, generalmente con aplicaciones multithread. Pueden clasificarse en dos tipos, que no se excluyen entre sí: - Políticas de planificación en grupos y - Políticas de particionado. Diferenciándose entre ellas en que mientras la planificación en grupos escoge todos los procesadores para cada aplicación, el particionado proporciona a cada aplicación una máquina más pequeña, dedicada, de la que se intenta obtener la máxima utilización
  • 57. 57 Se pueden dar dos enfoques de planificación en multiprocesadores: - Cada procesador se autoplanifica: cada procesador analiza la cola y escoge un proceso que ejecuta, por lo que hay que asegurarse de que dos procesadores no escogido el mismo proceso para ejecutar y de que no se pierden procesos en la cola. - Un procesador planifica a los demás: se tiene una estructura maestro/esclavo. El procesador principal ejecuta el sistema operativo y las rutinas principales y los esclavos solo ejecutan programas de usuarios. El problema puede surgir si se queda bloqueado el maestro. 5.4 Estrategia real de Planificación de Procesos de Windows Server 2008 Para nuestro caso al tratarse de servidores en red, varios procesos compiten a menudo por la CPU, por lo que la planificación retoma importancia. Por ejemplo, cuando la CPU tiene que elegir entre ejecutar un proceso que recopila las estadísticas diarias y uno que atiende las peticiones de los usuarios, habrá usuarios más contentos si el segundo tipo de procesos tiene prioridad sobre la CPU. Además de elegir el proceso correcto que se va a ejecutar a continuación, el planificador también tiene que preocuparse por hacer un uso eficiente de la CPU, debido a que la conmutación de procesos es cara. Para empezar, debe haber un cambio del modo de usuario al modo kernel. Después se debe guardar el estado del proceso actual, incluyendo el almacenamiento de sus registros en la tabla de procesos para que puedan volver a cargarse más adelante. En muchos sistemas, el mapa de memoria se debe guardar y luego seleccionar un nuevo proceso mediante la ejecución del algoritmo de planificación. Después de eso, se debe volver a cargar en la MMU el mapa de memoria del nuevo proceso y finalmente iniciar. Generalmente la conmutación de procesos hace inválida toda la memoria caché, por lo que tiene que volver a cargarse en forma dinámica desde la memoria principal dos veces (al momento de entrar al kernel y al salir de éste). Con todo, si se realizan muchas
  • 58. 58 conmutaciones de procesos por segundo, se puede llegar a consumir una cantidad considerable de tiempo de la CPU, por lo cual se aconseja tener precaución. La política de planificación utilizada por nuestro SO es el Round robin (turno circular) el cual pertenece a los algoritmos apropiativos, Uno de los algoritmos más antiguos, simples, equitativos y de mayor uso y es un método para seleccionar todos los elementos en un grupo de manera equitativa y en un orden racional, normalmente comenzando por el primer elemento de la lista hasta llegar al último y empezando de nuevo desde el primer elemento. El nombre del algoritmo viene del principio de Round-Robin conocido de otros campos, donde cada persona toma una parte de un algo compartido en cantidades parejas. Una forma sencilla de entender el round robin es imaginar una secuencia para "tomar turnos". En operaciones computacionales, un método para ejecutar diferentes procesos de manera concurrente, para la utilización equitativa de los recursos del equipo, es limitando cada proceso a un pequeño período (quantum), y luego suspendiendo éste proceso para dar oportunidad a otro proceso y así sucesivamente. A esto se le denomina comúnmente como Planificación Round-Robin. El cual se describe en la Figura 31: Figura Nº31: Algoritmo Round Robin. Fuente:https://www.monografias.com/trabajos105/planificacion-procesos/planificacion- procesos.shtml
  • 59. 59 La desventaja principal de este algoritmo es que cambia los procesos en ejecución con demasiada frecuencia, lo que supone una pequeña pérdida de tiempo. Desde Windows NT, se ha planificado threads por prioridades, siguiendo un esquema parecido al de UNIX. Contando con 32 niveles de prioridad divididos en dos clases. Los 16 niveles superiores, de prioridades estáticas, constituyen la clase de tiempo real. Los 16 inferiores (clase variable), donde se ubican los threads de usuario, son de tiempo compartido y se gestionan con disciplina FCFS (Planificación primero entra primero servido). En un multiprocesador con N procesadores, la planificación de threads en Windows se basa en dos criterios: (1) afinidad al procesador, y (2) asignar N‒1 procesadores a los N‒1 threads más prioritarios y el restante a todos los demás. Como podemos ver en el Cuadro Nº 5 nuestro SO tiene la característica de ser un SO multitarea, multiproceso y multiprocesamiento. Cuadro Nº5. Comparación entre versiones. Sistema Operativo Nº de usuarios Nº de procesos Nº procesadores Tiempo de respuesta MS-DOS Mono Mono Mono Real Windows 9x, Me Mono Pseudo multitarea Mono Compartido Windows NT Workstation, 2000 Professional, XP/Vista/7/8 Mono Multi Multi Compartido UNIX, Linux, Windows NT Server, Windows 2000 Server, 2003 Server y 2008 Server Multi Multi Multi Compartido Fuente: Los autores (2019) con información disponible en: https://www.microsoft.com/es-es/cloud-platform/windows-server-comparison Uno de los cambios de bajo nivel en el sistema es que Windows Server 2008 sólo incluye una versión del kernel diseñada para funcionar en sistemas multiprocesador. En el pasado, Windows usaba una versión específica a monoprocesadores en equipos con una sola CPU
  • 60. 60 porque esta versión podía lograr un rendimiento ligeramente superior al omitir el código de sincronización necesario sólo en entornos de multiprocesador. Con la aceleración del hardware, las ventajas de rendimiento de las optimizaciones se vuelven insignificantes, y la mayoría de los sistemas de servidor actuales incluyen más de un procesador, lo que convierte en innecesaria una versión monoprocesadora. El Cuadro Nº 6 muestra las variantes del kernel de Windows Server 2008, donde la versión usada en un sistema depende de si es la versión depurada (comprobada) o la versión a la venta del sistema operativo, si la instalación es de 32 bits o de 64 bits. Cabe mencionar que Windows Server 2008 es también el último sistema operativo de Windows Server que ofreció con una versión de 32 bits. Cuadro Nº 6 Variantes del kernel de Windows Server 2008. Kernel 32 bits 64 bits Multiprocesador Sí Sí Multiprocesador comprobado Sí Sí Multiprocesador con extensión de dirección física (PAE) Sí No Multiprocesador PAE comprobado Sí No Fuente: http://www.mug-it.org.ar/Note.aspx?Note=333279 CAPÍTULO 6.-GESTIÓN DE LA MEMORIA Parafraseando la ley de Parkinson, diría que los programas se expanden para llenar la memoria disponible para contenerlos. Partiendo de esto, la gestión de memoria es quien se encarga de asignar y administrar la memoria física del sistema a los programas que se estén ejecutando y que a su vez se expanden hasta llenar la memoria con que se cuenta. La gestión de memoria representa un vínculo delicado entre el rendimiento (tiempo de acceso) y la cantidad (espacio disponible). Siempre se busca obtener el mayor espacio disponible en la memoria, pero pocas veces existe la predisposición para comprometer el rendimiento. Se puede decir que los objetivos principales de un sistema de gestión de memoria serian:
  • 61. 61 - Permitir que la memoria se comparta (en sistemas de multiprocesos). - Ofrecer a cada proceso un espacio lógico propio proporcionando una protección entre los procesos. - Maximizar el rendimiento del sistema - Asignar bloques de espacio de memoria a distintas tareas. - Proteger los espacios de memoria utilizados (por ejemplo, evitar que un usuario modifique una tarea realizada por otro usuario). - Proporcionar a los procesos mapas de memoria grandes - Optimizar la cantidad de memoria disponible, específicamente a través de sistemas de expansión de memoria. (Anónimo, Kioskea.net, 2014) En un sistema de multiprogramación cada programa debe contener dentro del código referencias al espacio de memoria a utilizar, ya que el mismo no siempre será el mismo, por tanto el sistema tendrá que realizar una reubicación de las direcciones de memoria a las que hacen referencia las instrucciones de los programas para que se correspondan con las direcciones de memoria principal asignadas al mismo. Esto se logra a través de la unidad de manejo de memoria (MMU), que es un componente hardware, normalmente integrado en la CPU como podemos ver en la Figura 31; Responsable de manejar las peticiones de acceso a memoria que solicita la CPU. Este entonces se encarga de convertir las direcciones lógicas (memoria virtual) emitidas por los procesos en direcciones físicas, se encarga además de que la conversión se realice con éxito y que el proceso que intenta acceder a las direcciones de memoria correspondientes tenga el permiso para ello. También hay que acotar que siempre está en la memoria principal, ya que si estuviera en la memoria secundaria nadie podría llevarlo a la memoria principal en caso de fallo de acceso a memoria (Ver Figura 32):
  • 62. 62 Figura Nº32. Memoria y MMU Fuente: https://gsitic.wordpress.com/2017/12/10/bii2-conceptos-de-sistemas-operativos- estructuras-componentes-y-funciones-caracteristicas-y-evolucion-administracion-de- memoria-procesos-y-subprocesos-entrada-salida-sistemas-de-archivo-siste/ Dentro de la MMU existe una pequeña memoria asociativa denominada TLB (Translation Lookaside Buffer), que mantiene la información de las últimas páginas accedidas. Se puede decir que se trata de una memoria tipo caché. Con ello se evita que el procesador esté siempre leyendo la tabla de páginas directamente, con el consecuente decremento de rendimiento. El funcionamiento del TLB consiste en verificar si la dirección requerida se encuentra en el mismo, si es así automáticamente la MMU traducirá la dirección lógica en su respectiva dirección física para ser utilizada. En cambio, si la dirección no está presente en el TLB se produce un fallo de página, por lo que se procederá a buscar en la tabla de dirección mediante un proceso llamado page walk. Este proceso es costoso, ya que requiere de la lectura de múltiples ubicaciones de memoria. Una vez determinada la dirección física a través del page walk, el mapeo de la dirección virtual a la física es ingresado en el TLB para su posterior uso. 6.1 Jerarquía de memoria Cada Sistema (Servidores, PC de escritorio, etc.) tienen una jerarquía de memoria, tarea ejecutada por el administrador de memoria quien con una pequeña cantidad de memoria caché, una cantidad mucho mayor de memoria principal (RAM) y decenas o centenas de
  • 63. 63 gigabyte de almacenamiento en disco se encarga de saber qué partes de la memoria están en uso o no, asignar y liberar la memoria principal a los procesos que la requieren, y administrar los intercambios entre la memoria principal y el disco. Entre las principales operaciones que desarrolla el administrador de memoria se encuentran: - La reubicación: que consiste en trasladar procesos activos dentro y fuera de la memoria principal para maximizar la utilización del procesador; -.La protección: mecanismos que protegen los procesos que se ejecutan de interferencias de otros procesos; - Compartición: uso compartido de códigos y datos con lo que el mecanismo de protección permite que ciertos procesos de un mismo programa que comparten una tarea tengan memoria en común Podemos observar que los puntos básicos relacionados con la memoria según la Figura 32 son la capacidad (en cuanto más memoria haya disponible más podrá utilizarse), la velocidad (garantizando que no haya tiempos de espera entre calculo y calculo) y en suma, el coste de la memoria. Por lo que podemos concluir que, lo que Se busca entonces es contar con la capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. (Ver Figura 33) Figura Nº33. Diagrama piramidal de la jerarquía de memoria Fuente: https://es.wikipedia.org/wiki/Jerarqu%C3%ADa_de_memoria