SOM - Procesos y Memoria - r01

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 63

Gestión de los PROCESOS

1SMR
RA1. c)

Actualizada diapositiva 20, 32


Añadida la diapositiva 34
GESTIÓN DE LOS PROCESOS
Un equipo informático es un dispositivo que es capaz de ejecutar ordenes agrupadas en forma de programas.

Mientras un programa no se encuentre en ejecución, no será nada más que un archivo de datos en un
medio de almacenamiento.

Definición de proceso: programa que se está ejecutando.


Definición de proceso más académica:

Una unidad de actividad que ejecuta una secuencia ordenada de instrucciones, que dispone
de una serie de recursos asignados por el sistema y que se encuentra en un estado
particular.

Un programa, entendido como un archivo que contiene órdenes,


reside en la memoria secundaria del ordenador, mientras que un
proceso reside en la memoria principal.
GESTIÓN DE LOS PROCESOS

Todo proceso tiene asociado un espacio de direcciones en la


memoria principal, donde se guardan las propias instrucciones
del proceso y los datos que maneja.

El sistema dispondrá de una Tabla de procesos donde guarda la información relevante de cada
proceso:
❖ El identificador del proceso (PID, del inglés, Process IDentifier)
❖ El estado del proceso, es decir, si se está ejecutando, o no.
❖ Su prioridad con respecto al resto de los procesos del sistema.
❖ La posición de memoria donde se encuentra.
❖ Etc.
GESTIÓN DE LOS PROCESOS

En la lista de procesos, ¿Cuáles puedes cerrar?

1. Los que hayas abierto


2. Si no juegas… puedes cerrar “Gaming Services”
3. ¿Qué es Runtime Broker?
• Runtime Broker es un proceso interno y oficial del propio sistema operativo Windows
4. WebView2
5. Cefsharp Browser Subprocess.
• Este proceso es de una extensión que se instala en el navegador

INVESTIGA PROCESOS QUE TENGAS EN TU SISTEMA Y CUENTA LO QUE HACEN


¿Qué es un microprocesador?
❑ Un chip (es hardware/HW) que está integrado en la placa base y que se encarga de ejecutar las
instrucciones que ordena el usuario.

❑ Es el cerebro del computador. También se le denomina micro, CPU o UCP.

❑ Los micros están formados por miles/millones de transistores. Anteriormente fueron válvulas de
vacío…

❑ Los microprocesadores:

• En los ordenadores fijos se insertan en zócalos (“socket”), estos últimos están soldados a
la placa base.

• En los portátiles, tablets, smartphones los microprocesadores están soldados a la placa


base.
Arquitectura de un computador actual
CPU1 o Microprocesador:
ALU2 calcula operaciones aritméticas y operaciones
lógicas, entre dos números.
+ Unidad de Control: circuitería que controla el flujo de
RAM: datos a través del procesador, y coordina
Memoria de procesador, que a su vez controla el resto del PC.
acceso +Registros: memoria de alta velocidad y poca
aleatorio capacidad, integrada en el microprocesador, que
permite guardar transitoriamente y acceder a
valores muy usados, generalmente en operaciones
matemáticas.
+L1/L2/L3? +FPU: Unidad coma flotante
+Caché L1/L2/L3 (a veces)
+FPU

Aparatos y/o dispositivos auxiliares e independientes conectados a la


unidad central de procesamiento de una computadora

(*) Existe también la arquitectura Harvard


La Arquitectura de Harvard
Es alternativa a la de Von Neumann y usa una memoria para instrucciones y
otra para datos

Las instrucciones y los datos se almacenan en caches


separadas para mejorar el rendimiento.

Necesita sincronizar las lecuras&escrituras de datos en


ambas memorias
Arquitectura de un Computador: CPU

Función básica de un computador

Ejecución de un programa
y la CPU https://youtu.be/cNN_tTXABUA

es la parte del computador que se encargada de ejecutar las


instrucciones especificadas en el programa

Unidade
s
Memoria Entrada/
Salida
Arquitectura de un Computador: Unidad de Control
¿Qué es un programa?
Los programas son una serie de instrucciones.

Las instrucciones se componen de una acción + dato (o datos).


Hay varios tipos de instrucciones

La UC es la que se coloca antes de su resolución, dado que lee las instrucciones, las interpreta
y las envía a las unidades correspondientes.

La UC se encarga de dos de las tres etapas del ciclo de instrucción de la CPU:

1) captación/escritura de datos e instrucciones desde la memoria, y


2) la decodificación de las mismas.
Arquitectura de un Computador: Unidad de Control

Funciones

• Busca en la memoria las instrucciones del programa que


se está ejecutando
• Interpreta y ejecuta las instrucciones recuperadas de la
memoria
• Coordina, mediante el envío de señales de control al
resto de componentes del ordenador, para que realicen las
operaciones oportunas en el momento adecuado, de
modo que todo está sincronizado con el reloj del sistema

Es el director de orquesta
Arquitectura de un Computador: Unidad de Control

Funcionamiento de la Unidad de Control

Cada instrucción es distinta, y requiere una secuencia distinta

Ejemplo, una suma puede tardar un ciclo y un salto 10 ciclos


Arquitectura de un Computador: Unidad de Control

El director
Unidad de control (UC): de orquesta

Clock: genera una onda cuadrada para sincronizar las operaciones del procesador
Contador de programa (CP): contiene la dirección de memoria de la siguiente instrucción que se va a
ejecutar
Registro de instrucciones (RI): contiene la instrucción que se está ejecutando actualmente
Secuenciador: genera ordenes elementales para el procesamiento de la instrucción.
Decodificador de instrucciones (DI): se encarga de interpretar y ejecutar las instrucciones que llegan,
extrayendo el código de operación de la instrucción. (dependiendo del código, se dirige a la
ALU/periféricos/Memoria…)
Unidad aritmético
lógica (ALU):

Unidad aritmético lógica (ALU): se encarga de hacer los cálculos aritméticos (SUMA, RESTA,
MULTIPLICACION, DIVISION) y operaciones lógicas (AND, OR, …). Partes internas.

Circuito operacional: contienen los multiplexores y circuitos que realizan las


operaciones.
Registros de entrada: se almacenan los datos y operado antes de entrar al circuito
operacional
Acumulador: almacena los resultados de las operaciones realizadas
Registro de estado (Flag): almacena ciertas condiciones que deben ser tenidas en
cuenta en operaciones posteriores. Ver p59
RIM (o MAR): registro
de instrucción de
memoria
RD (o RDM o MDR):
registro de direcciones
(intercambio de
memoria)
Gestión de la memoria

Dentro de la CPU existe un controlador de memoria, que básicamente se trata de lo


que antes se llamaba puente norte o north bridge y que era un chip instalado en la
placa base. Pues este controlador de memoria ahora está dentro de la CPU y se
encarga de tomar de la memoria RAM las instrucciones que van a ser ejecutadas, y
también de devolver los resultados del ciclo de procesamiento.
Ejecución de una INSTRUCCIÓN
La culminación de cada una de las fases de búsqueda o
ejecución necesita de 1 a 6 ciclos de reloj

1 Hz 1 ciclo/segundo Ejemplo: Representación de las fases


1kHz 1000 ciclo/s (103 ciclo/s) de una instrucción en función del reloj
1MHz 1000000 ciclo/s (106 ciclo/s)
1GHz 1000000000 ciclo/s (109 ciclo/s) del sistema.
Ejecución de una INSTRUCCIÓN (III)
1) Lectura de la instrucción

microoperación
2) Lectura de los operandos fuente
3) Ejecución de la instrucción y
almacenamiento del operando de destino.
4) Almacenar/guardar el resultado
¿Qué son y cómo se gestionan las interrupciones?

Una interrupción es el mecanismo que tiene el microprocesador para trabajar con los periféricos

Los tiempos son diferentes. Los periféricos son mucho más lentos que la CPU

En la fase de interrupción es parte del ciclo de instrucción y en ella el microprocesador

comprueba si algún periférico ha manifestado necesidades de ser soportadas por el

microprocesador (recursos de éste).. En cada ciclo de instrucción se comprueba si hay demandas:

❑ Si las hay, se guarda el contexto del programa en ese


momento (los valores de los registros) y cuando se acaba la
demanda, se recupera el contexto y se sigue operando el
programa.
❑ Si no las hay, se continúa el ciclo previsto.
GESTIÓN DE LOS PROCESOS

El SO da soporte a la ejecución correcta de los procesos

Para ello,
❖ Asigna a los procesos los recursos que necesiten, atendiendo a una estrategia (de
asignación) concreta (permisos, prioridad, evitar interbloqueos, etc.)
❖ Reparte el tiempo de ejecución del procesador entre los procesos, de forma que esté
ocupado el mayor tiempo posible, ofreciendo la sensación de que los procesos se están
ejecutando a la vez y permitiendo que todos ellos tengan un tiempo de respuesta adecuado.
❖ Permite la creación de procesos por parte del usuario y de otros procesos, y la comunicación
entre distintos procesos. La creación de un proceso hijo por parte de un proceso padre se
denomina “process spawning”.

Por ejemplo, un servidor de impresión puede crear un nuevo proceso por cada documento a imprimir. De esta forma, el proceso
padre se encarga de la recepción de documentos y cada proceso hijo se centra en imprimir un documento concreto.
GESTIÓN DE LOS PROCESOS: EJECUCIÓN
Un proceso en ejecución ➔ estará en la memoria (principal)

El SO asigna tiempo de micro(procesador) a todos los procesos en ejecución

La CPU cuenta con una serie de registros como el contador de programa o el registro de instrucción

Un módulo del SO, el distribuidor (“dispacher”) asigna a otros procesos cuando se haya acabado el
tiempo disponible o cuando exista algún punto de espera (a bloqueado) o cuando se produzcan las
interrupciones (a la espera). ➔ CAMBIA EL “CONTEXTO” (Memoria y, dentro de la memoria, el
punto exacto que se está ejecutando (CP)

Recuerda que el ciclo de instrucción era tiempo que emplea el procesador en ejecutar una instrucción en
lenguaje máquina y, de un modo simplificado, podríamos dividirlo en dos pasos:
• El ciclo de lectura (en inglés, fetch), que consiste en cargar una instrucción desde la memoria principal a los registros del
procesador
• El ciclo de ejecución (en inglés, execute), que consiste en interpretar la instrucción (decodificarla) y ejecutarla, enviando las
señales adecuadas a los componentes que deben realizar la operación que indica la instrucción.
GESTIÓN DE LOS PROCESOS: EJECUCIÓN
Llamamos multitarea o multiprogramación a la capacidad que tienen los sistemas operativos actuales de
alternar el uso del procesador entre distintos procesos. En MS-DOS no era así…

Dada la velocidad a la que funcionan los procesadores, el usuario tiene la sensación de que los procesos se
ejecutan al mismo tiempo. Nota: Con las CPU de varios núcleos y varios hilos sí pueden estar ejecutándose más
procesos, pero no todos los que en realidad parece que se ejecutan.

Por otro lado, cuando en un sistema informático disponemos de varios procesadores (o un único procesador
con varios núcleos), pueden ejecutarse varios procesos al mismo tiempo. A esta técnica la llamamos
multiproceso o multiprocesamiento. Cuando todos los procesadores (o núcleos) actúan en igualdad de
condiciones, hablamos de multiproceso simétrico o SMP (del inglés Symmetric Multi-Processing). Cuando el
sistema dispone de procesadores con funciones especializadas, hablamos de multiproceso asimétrico o AMP (del
inglés, Asymmetric Multi-Processing).

En el multiprocesamiento asimétrico, solo el procesador maestro ejecuta las tareas del sistema operativo,
mientras que en el multiprocesamiento simétrico todos los procesadores ejecutan dichas tareas. Otra
diferencia clave es que en el multiprocesamiento asimétrico el procesador maestro asigna tareas a los
procesadores esclavos, mientras que en el simétrico los procesadores toman tareas de una en una
GESTIÓN DE LOS PROCESOS
Los programas tienen una división en tareas o procesos en función del código ejecutable. El código
ejecutable estará más o menos optimizado en función del/los programador(es) que lo realizasen y del diseño
de la propia aplicación.
Si se pretende alterar eso para poder incorporar más paralelismo en la ejecución, es preciso disponer de una
CPU que haga de director de orquesta y que distribuya:

❑ Debe crear procesos y listas de tareas. Además, deberá controlarlas todas y sincronizarlas en todo
momento.
❑ Tiene que tener capacidad de predecir la duración de cada una de las tareas, para poder
sincronizar las ejecuciones.
❑ Todos los núcleos han de comunicarse con el núcleo (maestro) para indicarle cuando
empiezan/acaban cada proceso.

También hay que tener en cuenta que no todo se puede ejecutar en paralelo…

Nota: A diferencia de las CPU, las GPU trabajan a nivel de pixel, por lo que sí se puede (y se hace) un
planteamiento de asignación en paralelo de miles de CPUs…
GESTIÓN DE LOS PROCESOS: ESTADOS DE LOS PROCESOS
Los procesos pueden encontrarse en uno de los siguientes estados:

❖ En ejecución en el procesador en ese momento. Si el ordenador dispone de varios procesadores, o varios núcleos,
podrá existir un proceso en ejecución por cada uno de los núcleos presentes.
❖ Preparado: En este estado se encuentran los procesos que no se están ejecutando, pero que podrían hacerlo en
cualquier momento y sólo esperan su oportunidad para hacerlo.
❖ Bloqueado: En este estado estarán los procesos que han solicitado algún servicio del SO y están esperando una
respuesta.
❖ Suspendido: cuando está en memoria secundaria, con objeto de liberar parte de la memoria principal
❖ Nuevo: cuando un proceso se acaba de crear y en ese momento el SO analiza si dispone de recursos para ejecutarlo.

Planificación de procesos de la CPU


GESTIÓN DE LOS PROCESOS: ESTADOS DE LOS PROCESOS
Terminado

Nuevo proceso Preparado Ejecución

NO Tiene Tiene recursos Tiene recursos


recursos (ni CPU) (no CPU) y CPU

Bloqueado/Espera
Tiene recursos,
Suspendido está a la espera.
No tiene CPU

No tiene recursos ni CPU


(Está en memoria 2ª)
Planificación de procesos de la CPU
GESTIÓN DE LOS PROCESOS: FIN DE UN PROCESO
❖ El proceso puede acabar con normalidad la ejecución, como en el caso de scripts o proceso por lotes
(“batch”)
❖ La ejecución de un proceso se puede interrumpir por otros motivos:

• Sobrepasar el tiempo de ejecución asignado al proceso (tiempo real, de uso del procesador, etc.) o el tiempo
máximo de espera ante un suceso.

• No disponer de memoria suficiente para satisfacer las solicitudes del proceso

• Que el proceso trate de acceder a posiciones de memoria o recursos del sistema que no tiene autorizados.

• Que una de sus instrucciones contenga un error aritmético o los datos no sean del tipo o tamaño adecuado.

• Que surja un error en una operación de entrada/salida (no existe un archivo, se produce un error de lectura,
etc.)

• Que una instrucción del programa no exista en el juego de instrucciones o que sea una instrucción reservada
al sistema operativo.

• Que el SO, el usuario o el proceso padre decida terminarlo. También suelen terminar los procesos hijos cuando
termina el proceso padre.
GESTIÓN DE LOS PROCESOS: PLANIFICACIÓN

El planificador (multiproceso) asigna los recursos (procesadores/núcleos) de modo que se logre el máximo
aprovechamiento de los mismos:
❖ Eficiencia, maximizando el uso del procesador, maximizando las acciones a realizar por unidad de tiempo
❖ Dar respuesta a todos los “procesos”, es decir, debe primar la equidad
❖ No debe bloquear siempre a los procesos más grandes, es decir, el algoritmo debe permitir que todos los procesos se
ejecuten
❖ Tener en cuenta las características de cada proceso, incluida la prioridad

El planificador usa una serie de algoritmos:


❖ Primero en llegar primero en ser servido, o FCFS (del inglés, First Come First Served)
❖ Primero el más corto, o SJF (del inglés, Shortest Job First)
❖ Por turnos, o RR (del inglés, Round Robin)
❖ Planificación por prioridad
❖ Planificación por reparto equitativo, o FSS (del inglés, Fair-share Scheduling)
❖ Planificación de Colas Múltiples, o MQS (del inglés, Multilevel Queue Scheduling)
GESTIÓN DE LOS PROCESOS: PLANIFICACIÓN
Un equipo debe gestionar la capacidad de procesado para ejecutar los procesos que el usuario le
demanda. Para ello, el SO gestiona/reparte el tiempo de procesador entre todos los procesos en
ejecución.

En la mayoría de los casos, la asignación es transparente para el usuario. Se puede decir que se
hace de manera inteligente. ¿Alguna vez has cambiado prioridades en tu SO?

➔La asignación de recursos se hace de manera automática: los procesos que requieren más
recursos (están realizando más “trabajo”) el sistema les asignará más tiempo de procesador,
por lo que el proceso se ejecutará más rápido.
¿Qué consecuencia tendría aumentar la prioridad de dicho proceso?

¿Qué ocurre si deseas ejecutar varios procesos pesados al mismo tiempo? En este caso, el tiempo
que se puede asignar puede superar la capacidad del procesador ➔ los programas se ejecutarán
más lentos (el procesador no puede asignar recursos que no tiene). Por ejemplo, el minado se hace
con las GPUs pero si además deseas jugar a un juego que requiere recursos….

➔En estos casos…. Si cambias la prioridad, vas a sacrificar alguno de los procesos (menos
prioritarios) en favor de los que sí lo son (para el usuario)
GESTIÓN DE LOS PROCESOS: PLANIFICACIÓN
1. Primero en llegar primero en ser servido, o FCFS (“First Come First Served”), o FIFO (“First In First Out”)
❖ Una vez se asigna al procesador, no lo abandona hasta que acaba
❖ Ventajas:
▪ Es sencillo
▪ Es predecible
❖ Inconvenientes:
▪ Los procesos largos pueden hacer esperar mucho a los procesos cortos
▪ El tiempo de servicio mínimo variará mucho según el número de procesos ejecutados y la duración de los mismos.
GESTIÓN DE LOS PROCESOS: PLANIFICACIÓN
2. Primero el más corto, o SJF (“Shortest Job First”)
❖ Los procesos se van poniendo en cola según llegan y se les asigna el estado Preparado➔El Planificador elige el que
tiene un menor tiempo previsto de ejecución.

❖ Inconveniente:
▪ los procesos largos puede que no se llegan a ejecutar
(inanición)
▪ Difícil de prever la duración de los procesos
❖ Ventajas: eficaz con los procesos cortos
GESTIÓN DE LOS PROCESOS: PLANIFICACIÓN
3. Primero al que menos le quede, o SRTF (“Short Remaining Time First”)
❖ Se ejecuta el proceso al que le quede menos tiempo de ejecución
❖ En caso de igual tiempo restante se aplica FIFO

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29

A X X X X X X X

B X X X X X

C X X X X X X X X X X

D X X X X

E X

Es un algoritmo expropiativo/Expulsivo: el SO puede llegar a un proceso que se está


ejecutando para asignar tiempo de CPU a un proceso que estime que va a ser más
corto
GESTIÓN DE LOS PROCESOS: PLANIFICACIÓN
4. Por turnos, o RR (del inglés, Round Robin), o cola circular
❖ Los procesos se van poniendo en cola según llegan y se les asigna el estado Preparado.
❖ El procesador se irá asignando a cada proceso, por orden, durante una fracción de tiempo llamada Quantum, que es
igual para todos. Si el proceso se acaba, se bloquea, o si se agota su tiempo, el procesador es liberado para el siguiente
proceso de la lista.
❖ Por lo tanto, la cola de procesos actúa como una estructura circular con organización FIFO.

Quantum = 3
GESTIÓN DE LOS PROCESOS: PLANIFICACIÓN
5. Planificación por prioridad
❖ A cada proceso se le asigna un número entero que representa su prioridad, de modo que, cuanto menor es el número,
mayor es la prioridad.
❖ Los procesos con prioridad más baja pueden sufrir inanición (falta de recursos)
❖ Ejemplo: Se suponen que los siguientes procesos están disponibles desde el inicio:

❖ La solución para evitar el monopolio de los procesos con mayor prioridad es la reducción de su prioridad cuando se van
ejecutando (“envejecimiento”). De ese modo, otros procesos se ejecutarán en el procesador/núcleo.
❖ Opciones:
▪ No expulsivo: una vez que empieza, el proceso acaba
▪ Expulsivo: si llega otro proceso con mayor prioridad, le coge el testigo
GESTIÓN DE LOS PROCESOS: PLANIFICACIÓN
6. Planificación por reparto equitativo, o FSS (del inglés, Fair-share Scheduling)
❖ Se usa con procesos interactivos, en los que interviene el usuario.
❖ El tiempo de ejecución se reparte entre ellos de forma equitativa

7. Planificación de Colas Múltiples, o MQS (del inglés, Multilevel Queue Scheduling)


❖ Consiste en fragmentar la cola de procesos en estado Preparado en varias colas más pequeñas, de modo que cada una
puede estar administrada por un algoritmo de planificación diferente.
❖ De este modo, cada proceso será asignado a una determinada cola en función de sus características pudiendo tratar de
manera diferente, por ejemplo, a los procesos interactivos y a los procesos por lotes.
GESTIÓN DE LOS PROCESOS: PLANIFICACIÓN

POLÍTICA EXPULSIVA
❖ En las no expulsivas, el proceso que se está ejecutando lo va a estar hasta que se pare o acabe
❖ En las expulsivas, el planificador tiene la capacidad de “desalojarle” o “expropiarle”
➢ Una planificación que requera un tiempo compartido y en tiempo real es EXPULSIVO O
EXPROPIATIVO
❖ Los SO habituales usan este tipo de planificación: UNIX/Linux, Windows MacOS…

❖ Son de este tipo:


➢ RR
➢ SRTF
➢ Prioridad expropiativa
GESTIÓN DE LOS PROCESOS: COMUNICACIÓN ENTRE PROCESOS
❖ Hay procesos que necesitan comunicar información entre ellos y/o necesitan sincronizarse
❖ Existen dos mecanismos:
▪ Mediante funciones llamadas IPC (del inglés, Inter-Process Communication) que facilitan el envío de mensajes entre los procesos
para comunicarse y sincronizarse.
▪ Compartiendo memoria

Planificación de procesos de la CPU

Procesos e Hilos ¿Cuál es la diferencia? ¿Por qué es importante comprenderlos?

Sistemas Operativos - Introducción a la gestión de


procesos - Jose María Cecilia

Sistemas Operativos, Procesos 8 Comunicación entre procesos

Crear tarea de escucha


GESTIÓN DE LOS PROCESOS: WINDOWS
¿Cómo finalizar procesos que no responden en WINDOWS?
❖ Existen varias opciones:
▪ Reiniciar el sistema
➢ Es bastante ineficaz al requerir cerrar aplicaciones, grabar archivos, apagar y reiniciar…
▪ Usar el administrador de tareas
➢ Lo abres haciendo clic, con el botón derecho del ratón, sobre la barra de tareas en la parte inferior de la pantalla.
➢ Si das a la opción Detalles, te da mucha más información de los programas

Ahora, además de todos los programas y servicios que se están ejecutando, puedes ver el uso que están haciendo del procesador,
de la memoria, del disco y de la red.

Además, en la cabecera de cada columna, también puedes ver el porcentaje de uso global que se está haciendo de cada uno de los
recursos.
➢ Si seleccionas un programa ➔ lo puedes cerrar y desaparece

Puedes usar el programa Process Hacker, para instalarlo o para usar la versión portable

Administrar procesos con PowerShell Get-Process ó Get-Process | more


Get-Process -Name fi* (para filtrar los procesos fi*)
Get-Process -Name explorer | Format-List *
GESTIÓN DE LOS PROCESOS: WINDOWS
Administrar procesos con PowerShell

Get-Process
Obtener Get-Process | more
datos de
Get-Process -Name fi* (para filtrar los procesos fi*)
procesos
Get-Process -Name explorer | Format-List * (para obtener datos del proceso explorer)

Stop-Process -name firefox* (Detiene los procesos que empiezan por firefox)
Detener
un Stop-Process -id 6928 (Usando el identificador del proces0)
proceso
Stop-Process -name Calculator -Confirm (Nos pedirá confirmación antes de acabar con el proces0)

Iniciar un Start-Process notepad.exe (El programa debe estar en la ruta de procesos (path))
proceso
PROCESOS Y SERVICIOS
Servicio: proceso que se suele ejecutar en segundo plano, es decir, sin que el usuario tenga constancia directa de
su presencia y, normalmente, esperan un tipo de suceso para ofrecer una determinada prestación al usuario.
En el mundo GNU/Linux, los servicios suelen recibir el nombre de demonios (en inglés, daemons, de Disk And
Execution MONitors).
PROCESOS vs SERVICIOS EN WINDOWS 10
Servicio: proceso que se suele ejecutar en segundo plano, es decir, sin que el usuario tenga constancia directa de
su presencia y, normalmente, esperan un tipo de suceso para ofrecer una determinada prestación al usuario.
En el mundo GNU/Linux, los servicios suelen recibir el nombre de demonios (en inglés, daemons, de Disk And
Execution MONitors).
• Un proceso es un programa que se ejecuta en primer plano. El usuario interacciona con ella, la puedes cerrar
en cualquier momento…. Ej: Word
• Un servicio es un proceso en ejecución en segundo plano y que el usuario convencional no va a interaccionar
con dicho proceso, pero es necesario para el funcionamiento del sistema.
• Los servicios no se pueden eliminar/desinstalar; NO SE PUEDEN DESINSTALAR
• Sí los puedes detener o reiniciar.
• Ejemplos: cliente DHCP (*), administrador de sesiones, administrador de zona horaria… es decir,
corresponden a la parte administrativa de windows

(*) El protocolo DHCP sirve para asignar una IP de manera dinámica a los equipos conectados a un router. Si
lo detengo ➔ dejaría de tener internet
Cambiar prioridad

Barra de TAREAS ➔ Administrador de tareas ➔ Seleccionas el proceso al


que quieres subir/bajar la prioridad y vas a Detalles (pestaña de
arriba)➔Buscar el programa ➔ lo seleccionas (un “click”)➔ Botón
derecho ➔Establecer prioridad

Debajo te dejo dos enlaces a videos en los que se explica como cambiar
prioridad como te he explicado y, en el segundo, dejarlo recogido en la
configuración del equipo (registro)

CAMBIAR PRIORIDAD EN UN PROGRAMA en Windows 10

Cambiar prioridad ejecución en el REGISTRO


¿Una prioridad más alta hace que el proceso se ejecuta más rápido?

Pues depende…

Si la CPU se asigna a todos los procesos el tiempo de CPU que necesitan


➔ un cambio de prioridad no tendrá efecto notorio. No se notaría

Si estás ejecutando procesos pesados y te interesa dar prioridad a uno de


ellos, entonces SÍ. Puedes bajar la prioridad de los procesos que no te
interesen tanto, subir los que sí te interesan o ambas cosas.

CAMBIAR PRIORIDAD EN UN PROGRAMA en Windows 10

Cambiar prioridad ejecución en el REGISTRO


GESTIÓN DE LOS PROCESOS
Si hacemos CTRL+Alt+Supr➔ Administración de tareas y Servicios
GESTIÓN DE LOS PROCESOS
Procesos vs Servicios

• Un proceso en Windows es una instancia en ejecución de un programa. Puede ser una aplicación que
un usuario inicia o un componente del sistema operativo que se inicia automáticamente en respuesta a
un evento o una solicitud.
• Cada proceso tiene su espacio de memoria, recursos y estado de ejecución independiente. Los
procesos pueden ejecutarse en primer plano o en segundo plano, y pueden ser visibles o invisibles para
el usuario.
• El Administrador de tareas de Windows es una herramienta que permite ver y gestionar los procesos en
ejecución en un sistema.

• Un servicio en Windows es un programa o proceso que se ejecuta en segundo plano y no requiere la


interacción directa del usuario. Los servicios suelen iniciarse automáticamente cuando el sistema
operativo se inicia y están diseñados para realizar funciones específicas, como gestionar la red,
proporcionar seguridad, manejar la impresión, etc.
• Los servicios son independientes de la sesión del usuario y pueden ejecutarse incluso cuando ningún
usuario ha iniciado sesión en el sistema. Tienen la capacidad de ejecutarse de forma continua y pueden
ser configurados para iniciarse automáticamente o manualmente.
• Ejemplos de servicios en Windows incluyen el servicio de impresión (spooler), el servicio de Windows
Update, el servicio de administración de redes, entre otros.
GESTIÓN DE LOS PROCESOS
Procesos vs Servicios

En resumen, un servicio es un tipo específico de proceso que


se ejecuta en segundo plano y realiza funciones específicas
del sistema, mientras que un proceso es una instancia en
ejecución de cualquier programa, ya sea una aplicación de
usuario o un componente del sistema.
GESTIÓN DE LOS PROCESOS
Procesos
Se pueden gestionar los procesos que están activos en el sistema.
• Por defecto sólo se muestran los procesos iniciados por el usuario pero podemos visualizar
todos activando la opción "Mostrar procesos de todos los usuarios".
• La información que se ofrece sobre los procesos es la de por defecto y es bastante más
limitada de la existente. Puedes ir a Vista ➔ Expandir Todo

Con cada proceso puedes ejecutar distintas acciones:


• Terminar proceso: pasa el proceso a estado terminado.
• Finalizar el árbol de procesos: pasa a estado terminado el proceso y todos los procesos
relacionados con él.
• Establecer su prioridad: permite cambiar la prioridad del proceso, existiendo varios niveles a
elegir.
• Establecer afinidad: da la opción de asociar el proceso a una CPU (en el caso de equipos con
varias CPUs).
• Ir al servicio: nos lleva a la pestaña Servicios y resalta aquellos que están asociados a este
proceso.
Nota: También se pueden “matar” procesos con el comando Taskkill o desde PowerShell
GESTIÓN DE LOS PROCESOS
Servicios
Con el Administración de Tareas se pueden administrar los servicios del sistema. En el listado
aparecen todos los servicios, tanto si están en activo como si no. No es posible cambiar la
información que se muestra sobre el servicio, como sucedía con los procesos.

Sobre cada servicio se pueden realizar estas acciones (clic derecho sobre él):
• Iniciar el servicio: pasa el servicio a estado "En ejecución".
• Detener el servicio: pasa el servicio a estado "Detenido".
• Ir al proceso: nos lleva a la pestaña Procesos y resalta aquel al que está asociado.

https://www.pantallazos.es/2019/11/windows-10-cmd-listar-
procesos-sistema-txt.html

https://www.ionos.es/digitalguide/servidores/configuracion/a
brir-el-administrador-de-tareas/

https://learn.microsoft.com/es-es/powershell/scripting/samples/managing-processes-with-
process-cmdlets?view=powershell-7.4
CAMBIO DE PRIORIDAD DE LOS PROCESOS
¿Qué hace un cambio de prioridad?
Puedes cambiar (aumentar o disminuir) la prioridad de un proceso o que tenga un mayor tiempo
de procesador compartido
Lo puedes hacer:
1.En la pestaña Procesos➔ sobre el proceso concreto que quieras actuar ➔ Botón derecho ➔
Cambiar prioridad (asignas mayor o menor prioridad, según requieras)

¿Una prioridad más alta hace que el proceso se ejecuta más rápido?

cambiar-prioridad-proceso-windows-10
ASIGNAR AFINIDAD A UN PROCESO

https://youtu.be/tDW46ny4bd0
GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
Gestión de memoria: asignación
MEMORIA PRINCIPAL
Definición de palabra: conjunto de bits que la arquitectura de un ordenador puede manejar como un todo. Los tamaños de
palabra más comunes son de 16, 32 ó 64 bits.

El gestor de memoria asigna una porción de memoria principal a cada proceso que se esté ejecutando para almacenar sus
instrucciones y sus datos.

En los sistemas actuales (multitarea), la gestión de memoria debe atender a las necesidades de todos los procesos de
manera eficaz y eficiente. Además, debe cumplir los requisitos:
▪ Protección: Debe evitar que un proceso haga referencia a posiciones de memoria de un proceso diferente.
▪ Como el sistema operativo no puede anticiparse a todos los accesos que realizará un proceso durante su ejecución, es el
procesador quien debe tener un mecanismo que intercepte los accesos no permitidos.
▪ Reubicación: Como veremos más adelante, una forma de dar cabida a más procesos consiste en descargar a memoria secundaria
(“swapping”) la totalidad o una parte de la memoria ocupada por un proceso (por ejemplo, mientras se encuentra bloqueado).
▪ La reubicación consiste en que, al volver a la memoria, no sea necesario que ocupe la posición original.
▪ Compartición: Debe existir la posibilidad de que varios procesos compartan información a través de una zona de memoria
compartida.
▪ Por ejemplo, es más eficiente que varios procesos accedan al mismo código de una biblioteca de funciones compartida (lo
que en Windows conocemos como DLL), que mantener varias copias de ésta.
▪ Igual puede ocurrir con datos que manejen diferentes procesos. Sistemas Operativos - Administración
de memoria -Jose María Cecilia
GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
MEMORIA PRINCIPAL

Los primeros PCs eran monoproceso➔ en la memoria se cargaba el SO y el único


proceso que se podía ejecutar.

Cuando acababa el proceso ➔ volvía el control al SO.

El gestor de memoria actual se enfrenta a un problema más complejo. Dispone


de diferentes opciones:

1) Uso de particiones fijas


2) Uso de particiones variables
GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
MEMORIA PRINCIPAL
1) Uso de particiones fijas
El administrador divide la memoria en fragmentos de diferentes tamaños (1MB, 2MB…) ➔ el planificador coloca los procesos en el tamaño
más adecuado disponible.
▪ Cuando el proceso acaba ➔queda libre para otro nuevo proceso.
▪ El número máximo de procesos es fijo ➔ Se denomina MFT (“Multitasking with a Fixed number of Tasks”)
▪ El intercambio (“swapping”) surge para dar uso a la memoria ocupada por procesos bloqueados (en espera de suceso). De esto se
encarga una parte del SO denominada intercambiador. Además, surge la reubicación consistente en que un proceso se pueda
ejecutar en diferentes particiones de memoria a lo largo de su ejecución.
▪ En esta solución existe un inicio de memoria asignada (x) y una posición que se está ejecutando (y), con lo que la posición actual del
programa será x+y.
▪ Para evitar que un proceso acceda a posiciones no permitidas existe un registro límite (memoria) que le indica al proceso un máximo.
El problema de esta solución es obtener el equilibrio entre el tamaño de las particiones y el de los procesos que deben ubicarse en ellas. En este
sentido, podemos encontrarnos con dos formas diferentes de desaprovechamiento:
▪ Fragmentación interna: Ocurre cuando existen particiones grandes y la mayoría de los procesos no las ocuparán enteras. Es decir, el
derroche de memoria se produce dentro de la asignación al proceso.
▪ Fragmentación externa: Ocurre cuando hay particiones excesivamente pequeñas y es difícil encontrar procesos que quepan dentro.
Es decir, el derroche se produce entre la memoria que no está asignada a ningún proceso.

Ventaja: implementación sencilla


Inconveniente: Además de la fragmentación, es que el número de procesos ejecutándose es limitado.
GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
MEMORIA PRINCIPAL
1) Uso de particiones variables
Las particiones cambian de tamaño a lo largo del tiempo
El sistema dispone de una tabla en la que se representan las zonas de memoria ocupadas, indicando el proceso que las ocupa.
Al llegar un nuevo proceso, se le asigna la porción de memoria necesaria. Al acabar el proceso, la memoria que ocupaba vuelve a estar disponible.
▪ Esto tiende a la fragmentación excesiva➔ la solución es el reagrupamiento o compactación de la memoria, desplazando los bloques
asignados a un extremo, quedando los huevos libres juntos. El tiempo de realizar este proceso constituye un gran inconveniente.
Para evitar el despilfarro de recursos debido a la compactación se realiza la asignación del bloque libre a cada proceso:
▪ El primer ajuste: Se asigna el proceso al primer bloque libre en el que quepa. Con el tiempo, los espacios disponibles del principio de la
memoria tenderán a ser pequeños y difíciles de utilizar.
• Es bastante rápido, aunque necesita recorrer los primeros bloques hasta encontrar un hueco disponible.
▪ El siguiente ajuste: Busca un hueco a partir de la última asignación. Es frecuente que se reserve espacio en el bloque que queda disponible al
final de la memoria, que se divide en pequeñas porciones.
• Lo normal es que requiera frecuentes compactaciones de memoria para obtener un bloque grande al final de la memoria.
▪ El mejor ajuste: Se asigna el bloque más pequeño cuya capacidad sea suficiente para contener al proceso. El resultado es peor que el
anterior, porque los fragmentos resultantes son más pequeños y, por lo tanto, difíciles de utilizar.
• Lo normal es que requiera frecuentes compactaciones de memoria.
▪ El peor ajuste: Se asignan primero los fragmentos de memoria más grandes, esperando que los restos obtenidos puedan ser más sencillos
de utilizar. Suele requerir compactaciones de memoria más tardías, aunque necesita recorrer todos los bloques libres antes de elegir cada
destino.
GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
REUBICACIÓN
La reubicación se produce cuando:

1) Proceso de swapping
2) Cuando se compacta la memoria

Para lograr que la Reubicación funcione, el proceso de traducción de direcciones virtuales a direcciones físicas necesitará
de la participación de dos registros en el procesador:
• Registro base: Que contiene la dirección en memoria principal del proceso.
• Registro límite: Que contiene la última posición a la que puede hacer referencia el proceso.

El proceso ocupa dicho margen (de espacio) de memoria.

Si cuando sumamos la dirección relativa al registro base obtenemos un resultado inferior a dicho registro base o superior
al registro límite, el procesador genera una interrupción que deberá ser procesada por el sistema operativo.

Es decir, el proceso estaría intentando asignar a direcciones de memoria que no le corresponden.


GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
PAGINACIÓN

La gestión de memoria con particiones variables genera una gran fragmentación ➔ Se planteó la
posibilidad de que las posiciones de memoria ocupada por un proceso no tuvieran que ser contiguas.

En un esquema de paginación:
▪ La memoria se divide en trozos del mismo tamaño que reciben el nombre de marcos de página (“page frames”).
▪ Los procesos se dividen en fragmentos del mismo tamaño denominados páginas.

Tamaño de página: entre 512B y 16MiB

Ejemplo: Un proceso es como el contenido de una botella de zumo

➔ al cargarse en memoria, se irán usando distintos vasos:


GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
PAGINACIÓN (II)

Con la paginación se gestiona el modo en el que el administrador de la memoria almacena y recupera datos de la memoria
secundaria para llevarlos a la memoria principal. Los procesos se dividen en tamaños de páginas que se colocan en los
marcos de las páginas en los cuales está dividida la memoria (principal)

Existen dos estructuras de datos para poder realizar la paginación:


▪ Tabla de páginas: almacena la dirección del «marco» en el que está guardada cada página.
▪ Por cada proceso se asigna una tabla. Tendremos tantas entradas como páginas tenga el proceso.
▪ Lista de marcos libres: tenemos marcos que no han sido asignados y una tabla para todo el sistema.
▪ Tendremos tantas entradas como marcos libres.

Este esquema necesita un método que traduzca las direcciones virtuales a direcciones físicas, teniendo en cuenta la
ubicación real de cada marco de página
GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
PAGINACIÓN (III)

Cuando llegue un nuevo proceso, ➔ el gestor busca una cantidad suficiente de marcos de página disponibles en la
memoria principal
Con esta solución se evita la fragmentación externa y la fragmentación interna se reduce a tamaño de marco
Este método:
▪ Se basa en la creación de una tabla de páginas, para cada proceso, en el momento de cargarlo en memoria.
▪ Este esquema necesita un método que traduzca las direcciones virtuales a direcciones físicas, teniendo en cuenta la
ubicación real de cada marco de página

Este esquema necesita un método que traduzca las direcciones virtuales a direcciones físicas, teniendo en cuenta la
ubicación real de cada marco de página
GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
SEGMENTACIÓN

La segmentación es una técnica de gestión de la memoria en la que la memoria se divide en partes de tamaño
variable. Cada segmento se asigna a un proceso. Por tanto, cada segmento tiene funciones por sí mismo.

La segmentación plantea que, en el momento de compilar un programa, éste se convierta en un conjunto de


segmentos a los que se asignará un identificador, un punto de inicio y un tamaño.

Las direcciones se expresarán mediante un número de segmento y un desplazamiento dentro de él, y el tamaño
asegura que no se realizan referencias a direcciones ilegales dentro del segmento.

En este caso, se reduce la fragmentación externa, pero sigue siendo necesario la compactación. Sus 2
estructuras de datos son las siguientes:

Ejemplo: Un PROGRAMA se puede separar en segmentos de menor tamaño:


GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
PAGINACIÓN Y SEGMENTACIÓN COMBINADAS

La idea es dividir cada segmento en páginas de longitud fija para su ubicación en memoria.

Se aprovechan los conceptos de la división lógica de los programas (segmentos) con la granularidad
de las páginas

Este método ofrece una gran flexibilidad, pero tiene tres inconvenientes:
▪ El proceso de traducción es más complejo, por lo que consumirá más recursos.
▪ Dado que cada segmento tiene su propia tabla de páginas, el espacio destinado al almacenamiento de tablas de
páginas será mucho mayor.
▪ Como cada segmento tiene su propia tabla de páginas, podremos tener un marco de páginas incompleto al final
de cada uno de los segmentos asignados a un proceso, lo que implica una mayor fragmentación interna.
GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
PAGINACIÓN Y SEGMENTACIÓN COMBINADAS
GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
PAGINACIÓN Y SEGMENTACIÓN COMBINADAS

Diferencia Entre Paginación y Segmentación en Sistemas Operativos

GESTIÓN DE MEMORIA, SEGMENTACIÓN Y PAGINACIÓN DE MICROPROCESADORES


GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
Memoria virtual
El tamaño de programa+datos+pila puede exceder la memoria física disponible. En esos casos el programa
guarda las partes de los programas en uso en la memoria, pero guarda en la memoria secundaria el resto

El uso de memoria virtual permite liberar memoria principal y, de ese modo, albergar un número de procesos
mayor.

El SO gestiona memoria principal y secundaria

Transferencia de bloques entre ambos niveles (normalmente basada en paginación).


• De memoria secundaria a principal: por demanda.
• De memoria principal a secundaria: por expulsión

La forma en la que los SOs resuelven las necesidades grandes de memoria principal de múltiples procesos
ejecutándose al mismo tiempo es volcando sobre un dispositivo de memoria secundaria (normalmente
el disco duro) las porciones de memoria que los procesos no estén utilizando en ese preciso instante.
Lógicamente, habrá que volver a traerlas a la memoria principal cuando los procesos las vayan necesitando.
GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
Memoria virtual

¿Qué sucede si selecciono sin archivo de paginación?

En cuanto ejecutes programas con cierta carga se te va a bloquear

¿Alguna vez el SO te ha indicado que la Memoria Virtual es INSUFICIENTE?

La mejor medicina es aumentar la paginación (no la de la RAM sino la que


dejamos en el HDD/SSD para que haga el intercambio/swap)

Panel de Control➔Sistema y seguridad➔Sistema➔Configuración avanzada del


sistema➔Opciones avanzadas➔Rendimiento➔Configuración➔Opciones
avanzadas➔Memoria virtual➔Cambiar…

Como configurar el archivo de paginación en Windows 10


GESTIÓN DE LA MEMORIA (PRINCIPAL O RAM)
Administración

Los procesos de administración son transparentes al usuario

Los SO ocupan un espacio en memoria.


Por ejemplo, Windows 8.1 requiere 2 GB (64 bits) mientras que Ubuntu 14.04 LTS requería 384 MB
Normalmente se requiere disponer del doble de memoria al mínimo recomendado

Recomendaciones:

• Tener en cuenta la memoria que requiere el SO


• No ejecutar más programas de os necesarios
• Los efectos de pantalla, animaciones… consumen tiempo de procesador y memoria
Estos serían los primeros candidatos a eliminar en caso de rendimiento bajo del sistema

También podría gustarte