Historial del sistema operativo / multicanal / proceso

Conocimiento requerido

  • La computadora también se llama computadora, es decir, el cerebro con electricidad. La computadora fue inventada para permitirle trabajar como un humano después de encenderse, y es más eficiente que un humano porque puede ser ininterrumpida durante 24 horas.

  • Los cinco componentes principales de una computadora

    Controlador

    Operador

    Memoria

    Dispositivo de entrada

    Dispositivo de salida

    El núcleo de la computadora realmente funciona es la CPU (controlador + unidad aritmética = unidad central de procesamiento)

  • Para que un programa sea ejecutado por una computadora, su código debe leerse desde el disco duro a la memoria, y luego la CPU obtiene instrucciones antes de ejecutar

Historial del sistema operativo

Simplemente consulte el blog: https://www.cnblogs.com/Dominic-Ji/articles/10929381.html

  • Tarjeta perforada

Cinta de papel de perforación

  • Sistema de procesamiento por lotes en línea

Sistema de procesamiento por lotes en línea

  • Sistema de procesamiento por lotes fuera de línea

Sistema de procesamiento por lotes fuera de línea

Tecnología multicanal

El núcleo único logra un efecto concurrente

Conocimiento requerido

  • Concurrencia

    Parece que correr simultáneamente puede llamarse concurrente

  • Paralelo

    Real ejecución simultánea

PD:

  • Paralelo debe considerarse concurrente
  • Las computadoras de un solo núcleo ciertamente no pueden lograr paralelismo, ¡pero pueden lograr concurrencia! ! !

Suplemento: asumimos directamente que un solo núcleo es un núcleo, y solo una persona trabaja, no tenga en cuenta la cantidad de núcleos en la CPU

Ilustración técnica multicanal

Ahorre el tiempo total dedicado a ejecutar múltiples programas

Tecnología multicanal

Conocimiento clave de tecnología multicanal

Tomando espacio y tomando tiempo

  • Multiplexación espacial

    Múltiples programas comparten un conjunto de hardware de computadora

  • Multiplexación en el tiempo

    Ejemplo: lavar ropa durante 30 años, cocinar durante 50 años, agua hirviendo durante 30 años

    El canal único necesita 110 segundos, los canales múltiples solo necesitan el cambio largo de tarea para ahorrar tiempo

    Ejemplo: jugar un juego mientras se come y se guarda el estado

 

Cambiar + guardar estado

 

La 
conmutación "" " (CPU) se divide en dos casos 
	1. Cuando un programa encuentra la operación IO, el sistema operativo privará al programa de la 
		función de autoridad de ejecución de la CPU : mejora la utilización de la CPU y no afecta la eficiencia de ejecución del programa 
	
	2. Cuando un programa ocupa la CPU durante mucho tiempo, la atracción de la operación también privará al programa de la autoridad de ejecución de la CPU. 
		Desventajas: redujo la eficiencia de ejecución del programa (tiempo original + tiempo de conmutación) 
"" "

  

Teoría del proceso

La diferencia entre programa y proceso

Un programa es un montón de código que se encuentra en el disco duro. Un 
proceso "inactivo" indica que el programa se está ejecutando y que está "en vivo".

  

Programación de procesos

  • Algoritmo de programación por orden de llegada

    "" "Es bueno para el trabajo largo, no es bueno para el trabajo corto" ""
    

      

  • Algoritmo de programación de prioridad de trabajo corto
    "" "Es bueno para trabajos cortos, pero no para trabajos largos" ""
    

      

  • Método de rotación de intervalo de tiempo: cuando desee abrir un nuevo programa, detendrá la ejecución actual primero para abrirle su nuevo programa

Diagrama de tres estados del proceso en ejecución

Todos los programas deben pasar por el estado listo antes de que puedan ejecutarse

img

La solicitud de evento incluye entrada, impresión, abrir

Bloqueo del estado al estado preparado: la entrada obtiene el valor, la lectura del archivo se completa y el tiempo de espera finaliza

img

Dos pares de conceptos importantes.

Síncrono y asíncrono

Describe cómo se envían las tareas.

  • Sincronización: después de enviar la tarea, espera el resultado de la tarea in situ y no hace nada durante el proceso de espera.

  • Asíncrono: después de enviar la tarea, no espera el resultado de la tarea en su lugar, y directamente hace otras cosas, esperando el resultado de la tarea

    El resultado devuelto de la tarea tendrá un mecanismo de devolución de llamada asíncrono.

Bloqueo y no bloqueo

Describe el estado de ejecución del programa.

  • Bloqueo: estado de bloqueo
  • Sin bloqueo: estado listo, estado de ejecución

La combinación más eficiente es asíncrona + sin bloqueo

Estado ideal: debemos mantener el código que escribimos en un estado listo y en ejecución sin bloquear

Dos formas de iniciar el proceso.

La forma en que el código inicia el proceso y el hilo, la escritura del código es básicamente la misma, aprende cómo iniciar el proceso y aprende cómo iniciar el hilo

Dos maneras

  

desde el proceso de 
importación multiproceso Proceso importación tiempo 


def tarea (nombre): 
    print ('% s se está ejecutando'% name) 
    time.sleep (3) 
    print ('% s está sobre'% name) 


si __name__ == '__main__': 
    # 1 Crear un objeto 
    p = Proceso (target = task, args = ('jason',)) 
    # Tipo de contenedor Incluso si solo hay 1 elemento adentro, se recomienda usar comas para separar 
    # 2 Inicie el proceso 
    p.start () # Dígale al sistema operativo que lo ayude Crear un proceso de 
    impresión asincrónica ('main') 
    
    
# La segunda forma de herencia de clase 
desde la importación de multiprocesamiento 
Clase de 
tiempo de importación de proceso 

MyProcess (Process): 
    def run (self): 
        print ('hello bf girl') 
        time.sleep (1) 
        print ('get out!') 


if __name__ == '__main__':
    p = MyProcess ()
    p.start () 
    print ('principal')

  

En el sistema operativo Windows, el proceso de creación debe crearse en el principal , ya que el proceso de creación en Windows es similar a la forma de importación del módulo, se ejecutará de arriba a abajo

 

La primera forma se usa más

Resumen

Crear un proceso es solicitar un espacio de memoria en la memoria y lanzar el código que debe ejecutarse. Un proceso corresponde a un espacio de memoria independiente en la memoria, y varios procesos corresponden a múltiples espacios de memoria independientes.

Los datos entre procesos no pueden interactuar directamente de manera predeterminada. Si desea interactuar, puede usar otras herramientas y módulos.

 

 

método de unión

Después de que el proceso principal espera el final del proceso secundario, continuará ejecutándose

El resultado es convertir asíncrono en síncrono.

 

desde el proceso de 
importación multiproceso Proceso de importación tiempo 


def tarea (nombre, n): 
    print ('% s se está ejecutando'% name) 
    time.sleep (n) 
    print ('% s está sobre'% name) 


si __name__ == '__main__': 
    # p1 = Proceso (target = task, args = ('jason', 1)) 
    # p2 = Process (target = task, args = ('egon', 2)) 
    # p3 = Process (target = task, args = ( 'tank', 3)) 
    # start_time = time.time () 
    # p1.start () 
    # p2.start () 
    # p3.start () # Solo dígale al sistema operativo que cree un proceso 
    # # time.sleep (50000000000000000000) 
    # # p.join () # El proceso principal espera a que el proceso hijo p termine de ejecutarse antes de continuar ejecutando 
    # p1.join () 
    # p2.join () 
    # p3.join () 
    start_time = time.hora()
    p_list = [] 
    para i en el rango (1, 4): 
        p = Process (target = task, args = ('子 进程% s'% i, i)) 
        p.start () 
        p_list.append (p) 
    para p en p_list: 
        p.join () 
    print ('主', time.time () - start_time)

  

Aislamiento de datos entre procesos.

desde la importación multiprocesamiento Proceso 


dinero = 100 


def tarea (): 
    dinero global # 局部 修改 全局
    dinero = 666 
    imprimir ('子', dinero) 


si __name__ == '__main__': 
    p = Proceso (objetivo = tarea) 
    p.start () 
    p.join () 
    print (dinero)

  

 

Supongo que te gusta

Origin www.cnblogs.com/Tornadoes-Destroy-Parking-Lots/p/12755725.html
Recomendado
Clasificación