Python并发编程01 /操作系统发展史、多进程理论
Python并发编程01 /操作系统发展史、多进程理论
1. 操作系统
定义:管理控制协调计算机中硬件与软件的关系
操作系统的作用:
第一个作用: 将一些复杂丑陋的硬件调用的接口,变成简单美丽的接口. open函数.
第二个作用: 多个进程抢占一个(CPU)资源时,操作系统会将其执行变得合理有序.操作系统的发展史
第一代计算机1940~1955
在大学里出现了机房,想使用计算机必须预约,先连接调配各个硬件,1.5小时, 真空管, 然后在插上程序调试.效率低.
优点:
个人独享整个计算机资源.
缺点:
1. 硬件调试插线,耗时
2. 所有人都是串行执行.
第二代计算机 磁带存储---批处理系统 1955~1965
优点:
1. 程序员不用亲自对硬件进行插线操控,效率提高.
2. 可以进行批量处理代码.
缺点:
1. 程序员不能独自使用计算机.
2. 你的所有程序还是串行.
第三代计算机:集成电路,多道程序系统
# 大背景:
1. 集成电路: 把所用的硬件变小,线路板.
2. 将两套不同的生产线合并成一条生产线. # 技术上的更新: 多道技术.
1. 空间上的复用:
将内存分区域,一个内存可以同时加载多个进程.
2. 时间上的复用:
实现将cpu在多个进程之间来回切换,并且保留状态. # 第三代计算机广泛采用了必须的保护硬件(程序之间的内存彼此隔离)之后,第三代计算机应用而生:多人(少于10个) 共同使用一个计算机主机,
第四代计算机: 至今.
2. 进程理论
概念
- 串行:所有的任务一个一个的完成.
- 并发:一个cpu完成多个任务.看起来像是同时完成.
- 并行:多个cpu执行多个任务,真正的同时完成.
- 阻塞:cpu遇到IO就是阻塞.
- 非阻塞:没有IO,就叫非阻塞.
- 程序:一堆静态文件
- 进程:一个正在执行的程序任务,一个程序能否开启多个进程
进程的创建
一个子进程必须依赖于一个主进程才可以开启.
一个主进程可以开启多个子进程.
unix创建进程:
unix: fork创建子进程.
unix(linux,mac): 创建一个子进程会完完全全复制一个主进程所有的资源,初始资源不变.windows创建进程:
windows: 操作系统调用CreateProcess 处理进程的创建.
windows:创建一个子进程,会copy主进程所有的资源,但是会改变一些资源.
进程的状态
运行:执行程序文件代码
阻塞:程序运行时遇到IO就是阻塞
就绪:阻塞完成后或者正在运行别的程序,可能会来不及切换回来,这之间的状态就是中间状态

Python并发编程01 /操作系统发展史、多进程理论的更多相关文章
- Python并发编程-一个简单的多进程实例
import time from multiprocessing import Process import os def func(args,args2): #传递参数到进程 print(args, ...
- Python并发编程一(多进程)
1.背景知识(进程.多道技术) 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一 ...
- python并发编程&多进程(二)
前导理论知识见:python并发编程&多进程(一) 一 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_cou ...
- python并发编程&多进程(一)
本篇理论居多,实际操作见: python并发编程&多进程(二) 一 什么是进程 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu. 举例(单核+多道,实现多个进程的并发执行) ...
- Python并发编程理论篇
Python并发编程理论篇 前言 其实关于Python的并发编程是比较难写的一章,因为涉及到的知识很复杂并且理论偏多,所以在这里我尽量的用一些非常简明的语言来尽可能的将它描述清楚,在学习之前首先要记住 ...
- Python并发编程系列之多进程(multiprocessing)
1 引言 本篇博文主要对Python中并发编程中的多进程相关内容展开详细介绍,Python进程主要在multiprocessing模块中,本博文以multiprocessing种Process类为中心 ...
- python并发编程02 /多进程、进程的创建、进程PID、join方法、进程对象属性、守护进程
python并发编程02 /多进程.进程的创建.进程PID.join方法.进程对象属性.守护进程 目录 python并发编程02 /多进程.进程的创建.进程PID.join方法.进程对象属性.守护进程 ...
- Python并发编程__多进程
Python并发编程_多进程 multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在python中大 ...
- Python进阶(4)_进程与线程 (python并发编程之多进程)
一.python并发编程之多进程 1.1 multiprocessing模块介绍 由于GIL的存在,python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大 ...
随机推荐
- TensorFlow从0到1之TensorFlow优化器(13)
高中数学学过,函数在一阶导数为零的地方达到其最大值和最小值.梯度下降算法基于相同的原理,即调整系数(权重和偏置)使损失函数的梯度下降. 在回归中,使用梯度下降来优化损失函数并获得系数.本节将介绍如何使 ...
- python下载及安装步骤
Python安装 1.浏览器打开网址:www.python.org 2.根据电脑系统选择下载 3.确定电脑系统属性,此处我们以win10的64位操作系统为例 4.安装python 3.6.3 双击下载 ...
- controlfile的情景恢复
控制文件测试 百度百科:控制文件(Control File)是Oracle的物理文件之一,它记录了数据库的名字.数据文件的位置等信息.控制文件的重要性在于,一旦控制文件损坏,数据库将会宕机.如果没有数 ...
- 一文带你了解Redis持久化完整版本
本文讲解知识点 持久化的简介 RDB AOF RDB与AOF的区别 持久化应用场景 对于持久化这个功能点,其实很简单没有那么复杂 演示环境 centos7.0 redis4.0 redis存放目录:/ ...
- springboot 配置本地文件映射路径
@Configuration public class MyBlogWebMvcConfigurer extends WebMvcConfigurerAdapter { @Autowired priv ...
- 2020 最新 Kubernetes实战指南
1.Kubernetes带来的变革 对于开发人员 由于公司业务多,开发环境.测试环境.预生产环境和生产环境都是隔离的,而且除了生产环境,为了节省成本,其他环境可能是没有日志收集的,在没有用k8s的 ...
- Spring事务方法上增加synchronized真的有效果吗?
此文转载,Spring事务本身是一个非常复制的问题,再加上线程并发处理就更加要主要了,由于再开发中有很多朋友会范与下文同样的错误,因分享给大家. 前言 Spring事务的一个奇怪的问题. 朋友问了我一 ...
- 定量度量程序复杂度的McCabe方法
[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 请画出下面代码的 ...
- 想学好Python,你必须了解Python中的35个关键词
每种编程语言都会有一些特殊的单词,称为关键词.对待关键词的基本要求是,你在命名的时候要避免与之重复.本文将介绍一下Python中的关键词.关键词不是内置函数或者内置对象类型,虽然在命名的时候同样也最好 ...
- 尚学堂 217 java中的字节码操作2
package com.bjsxt.test; @Author(name="gaoqi", year=2014) public class Emp { private int em ...