Resumen de conceptos y puntos de conocimiento del sistema operativo -> gestión de procesos

Capítulo uno Descripción general del sistema operativo

1. Definición del sistema operativo: el sistema operativo (sistema operativo) hace que uno de los sistemas informáticossoftware del sistema, Es una colección de algunos módulos del programa, puede ser lo más eficaz y razonable posibleOrganizar y administrar recursos de hardware y software de computadoraOrganice de manera razonable el flujo de trabajo de la computadora, controle la ejecución del programa y proporcione a los usuarios varias funciones de servicio, de modo que el sistema informático pueda funcionar de manera eficiente. (No existe una definición estándar ampliamente aceptada)
2. Explicación de algunos términos en el sistema operativo

sustantivo Explicación
ROM (Memoria de solo lectura) Memoria de sólo lectura
RAM (memoria de acceso aleatorio) El dispositivo de acceso aleatorio, también llamado memoria principal, es una memoria interna que intercambia datos directamente con la CPU.
Procesos Un programa cargado en la memoria y ejecutado se llama proceso
Modo de usuario Cuando el sistema ejecuta aplicaciones de usuario, el sistema está en modo de usuario
Modo kernel Cuando un usuario solicita servicios del sistema operativo, el sistema debe ingresar al modo kernel desde el modo de usuario para satisfacer la solicitud
Contador de programa Especifique el siguiente comando que se ejecutará
Llamada al sistema Proporcionar interfaz de servicio del sistema operativo

Inserte la descripción de la imagen aquí

Hay interrupciones, uso compartido, concurrencia, competencia, etc. en el sistema operativo
1. Proceso de manejo de interrupciones

paso contenido
(1) El dispositivo envía una señal de interrupción al procesador
(2) El procesador responde a la interrupción después de procesar el comando actual, el retraso es muy corto
(3) El procesador detecta la interrupción después de procesar la instrucción actual, determina la fuente de la interrupción y envía una señal de interrupción de confirmación al dispositivo que envió la interrupción. La señal de confirmación hace que el dispositivo restaure el dispositivo de interrupción al estado normal
(4) El procesador comienza a prepararse para que el software maneje la interrupción: guarde el contexto del programa de ejecución del punto de interrupción, incluida la palabra de estado del programa PSW, la siguiente posición de instrucción de la PC del contador del programa y el valor de algunos registros
(5) El procesador consulta la tabla de vectores de interrupción de acuerdo con la fuente de interrupción, obtiene la dirección de entrada del manejador asociado con la interrupción y configura la PC en esta dirección. El procesador inicia un nuevo ciclo de instrucción y transfiere el control al manejador de interrupciones
(6) El controlador de interrupciones comienza a funcionar, verifique la información del dispositivo relacionada con E / S
(7) Cuando finaliza el procesamiento de la interrupción, el procesador detecta la instrucción de retorno de la interrupción y el contexto del programa interrumpido se restaura desde la pila del sistema. El estado del procesador se restaura a su estado original.
(8) PSW y PC se restauran a los valores antes de la interrupción, el procesador inicia un nuevo ciclo de instrucción y finaliza el procesamiento de interrupciones

Inserte la descripción de la imagen aquí

Capítulo 2: Proceso

Definición de proceso: un proceso es una función independientePrograma o segmento de programaUna vez en un conjunto de datosEjecución dinámica
Proceso = Programa + Ejecución El
proceso incluye programa, datos y bloque de control de proceso
2.1 Estado del proceso

Estado del proceso Descripción
Nuevo Se está creando el proceso
Corriendo La instrucción se está ejecutando
Esperando (esperando) El proceso espera a que ocurra un evento
Listo Proceso a la espera de asignar procesador
Terminado El proceso ha completado la ejecución.

Solo se puede ejecutar un proceso en el procesador a la vez;
sin embargo, varios procesos pueden estar en estado de espera o listo.

Inserte la descripción de la imagen aquí
2.1.3 El
PCB del bloque de control de procesos incluye el estado de control del proceso, contador de proceso, contador de CPU, etc.
2.1.4 Subproceso
Un proceso tiene al menos un subproceso, un proceso puede ejecutar varios subprocesos y varios subprocesos pueden compartir datos
2.2 Programación de procesos
Cuando hay varios procesos, el programador de procesos selecciona un proceso disponible para ejecutar en la CPU, y el resto debe esperar a que la CPU esté inactiva y reprogramar.
2.2.1 Cola de programación Cuando un
proceso ingresa al sistema, se agregará a la cola de trabajos (cola de trabajos), que incluye todos los procesos del sistema.
2.2.2
Interrupción de cambio de contexto (intirrput) hace que la CPU cambie de ejecutar la tarea actual a ejecutar el programa del núcleo.
Cambiar la CPU a otro proceso necesita guardar y restaurar el estado del proceso actual a otro cambio de contexto de estado de proceso ( cambio de contexto)
2.3 Creación de
procesos 2.3.1 procesos que ejecutan la
mayoría de los sistemas operativos para identificar el proceso utiliza un identificador de proceso único ( identificador de proceso, pid)

3 sincronización de procesos

Inserte la descripción de la imagen aquí

3.1 Explicación de términos sobre cuestiones de la sección crítica

nombre Explicación
同步 (sincronización de procesos) Hay ciertos tipos de eventos que ocurren en múltiples procesos en el sistema.Relación temporal, Necesitan cooperar entre sí para completarUna tarea
Mutuamente excluyentes Debido a que todos los procesos comparten recursos, algunos recursos deben usarse exclusivamente, por lo que la competencia entre los procesos para usar estos recursos se vuelve mutuamente excluyente.
Condición de carrera Múltiples procesos acceden y manipulan simultáneamente los mismos datos y el resultado de la ejecución está relacionado con la secuencia de acceso específica.
Área de entrada (sección de rentry) Antes de ingresar al área crítica, cada proceso solicita permiso. El área de código que implementa esta solicitud se llama área de entrada
Sección crítica Las variables públicas pueden ser modificadas cuando el proceso llega a esta área.Características: solo se permite ejecutar un proceso en la sección crítica
Entrada de salida El proceso ingresa al área de salida después de ejecutar el código de la sección crítica
Área restante (sección restante) El área donde el proceso ejecuta otro código

3.2 Requisitos que debe cumplir la solución al problema de la región crítica
① Exclusión mutua: Si el proceso Pi se ejecuta en la región crítica, entonces otros procesos no pueden ejecutarse en la región crítica.
② Sincronización (progreso): Si no hay ningún proceso ejecutándose en el área crítica y hay procesos que necesitan ingresar al área crítica, entonces solo aquellos procesos que no se están ejecutando en el área restante pueden participar en la selección para determinar quién puede ingresar al área crítica la próxima vez, y esta elección No se puede posponer indefinidamente
③ Espera limitada: El tiempo que espera el proceso para ingresar a la zona crítica tiene un rango, no infinito.
3.3 Métodos para resolver el problema de la sección crítica
① Núcleo preventivo (núcleo preventivo): permite adelantar el proceso en modo kernel y el proceso en modo kernel se ejecutará hasta que salga del modo kernel, bloqueando o renunciando voluntariamente al control de la CPU.
②Núcleo no preventivo (kernel no preventivo): los procesos en modo kernel no pueden ser reemplazados
3.4.1 Solución Peterson (método de software)
Inserte la descripción de la imagen aquí
Explicación: Establecer dos procesos para compartir elementos de datos
int turn;
boolean flag [2];
j = 1 -i;
dos procesos P0 y P1
proceso

Mi punto de vista Explicación oficial
① Inicialmente se establece el indicador [i], es decir, el indicador [0] es verdadero, porque el turno es igual a j es igual a 1-i; entonces turno == 1; significa que el indicador [0] quiere solicitar la entrada al área crítica. ②En este momento, si el indicador [j ] Es decir, si flag [1] es igual a verdadero y turn es igual a 1, entonces la declaración siempre estará inactiva en el ciclo while.Tenga en cuenta que el ciclo while y la condición de juicio Jun van seguidos de un punto y coma③直到P1退出临界区并执行flag[j]=false后,P0才能进入临界区执行 考虑进程P0,一旦它设置flag[0]=true,则P1不能进入临界区。如果P1已经进入临界区,那么flag[1]=true,P0被阻塞不能进入临界区。另一方面,互相阻塞也避免了。假设P0在while里被阻塞了,表示flag[1]为true且turn=1,则此时P1可以执行

缺点:1,只适用于两个线程 2,现代计算机体系结构不支持
3.4.2硬件同步(硬件方法)
方法一 —>中断屏蔽方法
进入临界区前执行"关中断"指令
离开临界区后执行"开中断"指令
Inserte la descripción de la imagen aquí优点:简单有效
缺点:不适用于多处理器(耗时)
方法二–>测试并设置指令
前提:test_and_set()时原子的(执行不可中断)
Inserte la descripción de la imagen aquí
为每个临界资源设置一个lock,初始为false
解释:当一个临界资源未被使用时,lock等于false,程序可以执行while下面的语句,当lock等于true时,test_and_set(&lock)函数返回值为true,程序在while中空转
3.4.3互斥锁(mutex lock)(软件方法)
互斥锁:一个进程进入临界区时得到锁,在它退出临界区时释放锁,函数acquire()获得锁,函数release()释放锁,每个互斥锁都有一个布尔变量available,它表示锁是否可用
互斥锁实现要求qcquire()和release()的调用必须是原子地执行
Inserte la descripción de la imagen aquí
进程互斥访问示例
Inserte la descripción de la imagen aquí

缺点:忙等待(busy wating),一个进程在临界区中其他任何进程都必须等待
3.6信号量(semaphore)
信号量S是一个整型变量,它的初始化通过两个标准原子操作wait()和signal(),wait()也叫P操作,signal()也叫V操作
wait()函数体定义

wati(S)
{
    
    
while(S<=0);   //忙等待
S--}

signal()函数体定义

signal()
{
    
    
S++;
}

缺点:不满足让权等待(当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”。)
3.4.5信号量的使用和实现
信号量使用改进(重新定义)
Inserte la descripción de la imagen aquí

typedef struct
{
    
    
int value;
struct process *list;
}semaphore
//每一个信号量都有一个整数value和一个进程链表list,当一个进程必须等待信号量时,就被添加带进程链表,操作signal()从等待进程链表上取走进程,并加以唤醒
wait(semaphore *S)
{
    
    
S->value--;
if(S->value<0)
{
    
    
add this process to S->list;
block();
}
}

signal(semaphore *S)
{
    
    
S->value++;
if(S->value<=0)
{
    
    
remove a process P from S->list;
wakeup(P);
}
}

3.4.6死锁与饥饿
死锁:两个或多个进程无限等待一个事件,而该事件这些等待进程之一来完成,这些进程称为死锁
3.5经典同步问题
3.5.1生产者-消费者问题
3.5.2读者-作者问题
3.5.3哲学家就餐问题
3.6管程
管程定义:指关于贡献资源的数据及其在其上操作的一组过程或共享数据结构及其规定的所有操作(没听懂)
管程能够保证在任何时候最多只有一个线程(进程)操作管程中的代码

4进程调度

4.1 CPU-I/O执行周期
进程执行:包括周期进行CPU执行和I/O等待,进程在这两个状态下不断交替,进程执行从CPU执行开始,之后I/O执行,;接着另一个CPU执行,接着另一个I/O执行;
4.1.2 CPU调度程序
当CPU空闲时,操作系统就从队列中选择一个进程来执行并尾气分配CPU。
4.1.3抢占调度
需要CPU调度的四种情况
1,一个进程从运行态到等待状态
2,一个进程从运行状态到就绪状态
3,一个进程从等待状态到就绪状态
4,一个进程终止时
如果调度只发生在第1或4种情况,则调度是非抢占的,否则是抢占的,在非抢占调度下,一个进程在分配到CPU时,会一直运行直到终止或切换状态
4.1.4调度程序
调度程序功能:
1,切换上下文
2,切换到用户模式
3,跳转到用户程序的合适位置,以便重新启动程序

调度程序应尽可能快,调度程序停止一个进程而启动另一个进程所需要的时间称为调度延迟(dispatch latency)
4.2调度准则

名称 解释
CPU 使用率 应使 CPU 尽可能地忙碌。从概念上讲,CPU 使用率从 0% 到 100%。对于一个实际系统,它的范围应从 40%(轻负荷系统)到 90%(重负荷系统)。
吞吐量 如果 CPU 忙于执行进程,那么工作就在完成。一种测量工作的方法称为吞吐量,它是在一个时间单元内进程完成的数量。对于长进程,吞吐量可能为每小时一个进程;对于短进程,吞吐量可能为每秒十个进程。
周转时间 Desde la perspectiva de un proceso en particular, un criterio importante es cuánto tiempo lleva ejecutar el proceso. El período de tiempo desde el envío del proceso hasta la finalización del proceso se denomina tiempo de respuesta. El tiempo de respuesta es la suma de todos los períodos de tiempo, incluida la espera para ingresar a la memoria, la espera en la cola lista, la ejecución en la CPU y la ejecución de E / S.
tiempo de espera El algoritmo de programación de la CPU no afecta el tiempo que tarda el proceso en ejecutarse y realizar E / S, solo afecta el tiempo necesario para que el proceso espere en la cola de espera. El tiempo de espera es la suma del tiempo de espera en la cola de espera.
Tiempo de respuesta Para los sistemas interactivos, el tiempo de respuesta no es el mejor criterio. Por lo general, un proceso puede producir resultados bastante temprano y continuar calculando nuevos resultados mientras envía resultados anteriores al usuario. Por lo tanto, el otro momento es el tiempo desde que se envía la solicitud hasta que se genera la primera respuesta. Este tiempo se denomina tiempo de respuesta, que es el tiempo necesario para iniciar la respuesta, no el tiempo necesario para generar la respuesta. El tiempo de respuesta suele estar limitado por la velocidad del dispositivo de salida.

4.3 Algoritmo de programación
4.3.1 Programación por orden de llegada Los procesos de programación
por orden de llegada (First-Come First_Served, FCFS)
que solicitan que la CPU primero se asignen a la CPU primero, y cuando un proceso ingresa a la cola lista, su PCB se vinculará a la cola Al final, cuando la CPU está inactiva, se asignará al proceso en la cabecera de la cola, y este proceso en ejecución elimina la
estrategia FSFS de la cola Ventajas:
estrategia FSFS simple y fácil de entender Desventajas: tiempo promedio de espera largo

Supongo que te gusta

Origin blog.csdn.net/qq_43475285/article/details/109188904
Recomendado
Clasificación