Python并发编程01 /操作系统发展史、多进程理论

1. 操作系统

  • 定义:管理控制协调计算机中硬件与软件的关系

  • 操作系统的作用:

    第一个作用: 将一些复杂丑陋的硬件调用的接口,变成简单美丽的接口. open函数.

    第二个作用: 多个进程抢占一个(CPU)资源时,操作系统会将其执行变得合理有序.

  • 操作系统的发展史

    第一代计算机1940~1955

    在大学里出现了机房,想使用计算机必须预约,先连接调配各个硬件,1.5小时, 真空管, 然后在插上程序调试.效率低.
    优点:
    个人独享整个计算机资源.
    缺点:
    1. 硬件调试插线,耗时
    2. 所有人都是串行执行.

    第二代计算机 磁带存储---批处理系统 1955~1965

    优点:
    1. 程序员不用亲自对硬件进行插线操控,效率提高.
    2. 可以进行批量处理代码.
    缺点:
    1. 程序员不能独自使用计算机.
    2. 你的所有程序还是串行.

    第三代计算机:集成电路,多道程序系统

    # 大背景:
    1. 集成电路: 把所用的硬件变小,线路板.
    2. 将两套不同的生产线合并成一条生产线. # 技术上的更新: 多道技术.
    1. 空间上的复用:
    将内存分区域,一个内存可以同时加载多个进程.
    2. 时间上的复用:
    实现将cpu在多个进程之间来回切换,并且保留状态. # 第三代计算机广泛采用了必须的保护硬件(程序之间的内存彼此隔离)之后,第三代计算机应用而生:多人(少于10个) 共同使用一个计算机主机,

    第四代计算机: 至今.

2. 进程理论

  • 概念

    1. 串行:所有的任务一个一个的完成.
    2. 并发:一个cpu完成多个任务.看起来像是同时完成.
    3. 并行:多个cpu执行多个任务,真正的同时完成.
    4. 阻塞:cpu遇到IO就是阻塞.
    5. 非阻塞:没有IO,就叫非阻塞.
    6. 程序:一堆静态文件
    7. 进程:一个正在执行的程序任务,一个程序能否开启多个进程
  • 进程的创建

    1. 一个子进程必须依赖于一个主进程才可以开启.

    2. 一个主进程可以开启多个子进程.

    3. unix创建进程:

      unix: fork创建子进程.

      unix(linux,mac): 创建一个子进程会完完全全复制一个主进程所有的资源,初始资源不变.

    4. windows创建进程:

      windows: 操作系统调用CreateProcess 处理进程的创建.

      windows:创建一个子进程,会copy主进程所有的资源,但是会改变一些资源.

  • 进程的状态

    运行:执行程序文件代码

    阻塞:程序运行时遇到IO就是阻塞

    就绪:阻塞完成后或者正在运行别的程序,可能会来不及切换回来,这之间的状态就是中间状态

Python并发编程01 /操作系统发展史、多进程理论的更多相关文章

  1. Python并发编程-一个简单的多进程实例

    import time from multiprocessing import Process import os def func(args,args2): #传递参数到进程 print(args, ...

  2. Python并发编程一(多进程)

    1.背景知识(进程.多道技术) 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一 ...

  3. python并发编程&多进程(二)

    前导理论知识见:python并发编程&多进程(一) 一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_cou ...

  4. python并发编程&多进程(一)

    本篇理论居多,实际操作见:  python并发编程&多进程(二) 一 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 举例(单核+多道,实现多个进程的并发执行) ...

  5. Python并发编程理论篇

    Python并发编程理论篇 前言 其实关于Python的并发编程是比较难写的一章,因为涉及到的知识很复杂并且理论偏多,所以在这里我尽量的用一些非常简明的语言来尽可能的将它描述清楚,在学习之前首先要记住 ...

  6. Python并发编程系列之多进程(multiprocessing)

    1 引言 本篇博文主要对Python中并发编程中的多进程相关内容展开详细介绍,Python进程主要在multiprocessing模块中,本博文以multiprocessing种Process类为中心 ...

  7. python并发编程02 /多进程、进程的创建、进程PID、join方法、进程对象属性、守护进程

    python并发编程02 /多进程.进程的创建.进程PID.join方法.进程对象属性.守护进程 目录 python并发编程02 /多进程.进程的创建.进程PID.join方法.进程对象属性.守护进程 ...

  8. Python并发编程__多进程

    Python并发编程_多进程 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大 ...

  9. Python进阶(4)_进程与线程 (python并发编程之多进程)

    一.python并发编程之多进程 1.1 multiprocessing模块介绍 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大 ...

随机推荐

  1. mail邮件操作

    目录 1. 概念 1.1. 常见的类型 1.2. 相关协议 1.3. SMTP协议 2. python::smtplib 1. 概念 1.1. 常见的类型 Mail User Agent 收发邮件用的 ...

  2. Pants On Fire(链式前向星存图、dfs)

    Pants On Fire 传送门:链接  来源:upc9653 题目描述 Donald and Mike are the leaders of the free world and haven't ...

  3. python模拟网站登陆-滑动验证码

    普通滑动验证 以http://admin.emaotai.cn/login.aspx为例这类验证码只需要我们将滑块拖动指定位置,处理起来比较简单.拖动之前需要先将滚动条滚动到指定元素位置. impor ...

  4. C Primer Plus(三)

    重读C Primer Plus ,查漏补缺 重读C Primer Plus,记录遗漏的.未掌握的.不清楚的知识点 文件输入/输出 1.fgets函数在读取文件内容时会将换行符读入,但gets不会,fp ...

  5. 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(六)

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  6. 重识Java8函数式编程

    前言 最近真的是太忙忙忙忙忙了,很久没有更新文章了.最近工作中看到了几段关于函数式编程的代码,但是有点费解,于是就准备总结一下函数式编程.很多东西很简单,但是如果不总结,可能会被它的各种变体所困扰.接 ...

  7. 有趣的条漫版 HashMap,25岁大爷都能看懂

    我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在 ...

  8. MySQL服务器是怎么处理客户端请求的

    不论MySQL客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(MySQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果).那服务器进 ...

  9. springcloud2.0 添加配置中心遇到的坑

    新手入门,在springcloud 配置config的时候遇到了几个比较烦的坑 先说1.5x版本的一些配置吧 首先是端点暴露的方式 management: security: enabled: fal ...

  10. Python3-multiprocessing模块-多进程

    Python3中的multiprocessing模块是一个与threading模块类似,提供生成进程的API 多进程multiprocessing模块允许程序员充分利用给定机器上的多个CPU(处理器) ...