Python并发编程01/操作系统发展史/多进程(理论部分)

Python并发编程01/操作系统发展史/多进程(理论部分)

1.昨日内容回顾

五层协议:   
    应用层: FTP dic = {filename,md5,filesize}  数据  
        socket(抽象层)
    传输层: TCP UDP: 端口协议.    封装了端口 
        端口 |dic = {filename,md5,filesize}  数据   
    网络层: IP协议.
        ip地址: 
        ip(双方的) | 端口 |dic = {filename,md5,filesize}  数据 
    数据链路层: 以太网协议.
        mac地址 | ip(双方的) | 端口 |dic = {filename,md5,filesize}  数据
        ARP协议: 通过ip地址获取对方的mac地址.

2.进程的基础

1. 程序
   一堆静态的代码文件.
2. 进程
   一个正在运行的程序进程. 抽象的概念.
   被谁运行???
   由操作系统操控调用交于CPU运行 被CPU操作.

3.操作系统

3.1 定义

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

3.2操作系统的作用

如果没有操作系统: 你们在开发软件.
第一层: 对硬件(CPU,内存,磁盘等等)协调,调用.
第二层: 如何调用各种接口,去编程.
**第一个作用**: 将一些对硬件操作的复杂丑陋的接口,变成简单美丽的接口. open函数.
**第二个作用**: 多个进程抢占一个(CPU)资源时,从操作系统会将你的执行变得合理有序.
阻塞:  input read write sleep recv accept sendto recvfrom .....

3.3操作系统的发展史

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

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

第三代计算机:集成电路,多道程序系统
大背景:
1. 集成电路: 把所用的硬件变小,线路板.
2. 将两套不同的生产线合并成一条生产线.

技术上的更新: 多道技术.
1. 空间上的复用:
   将内存分区域,一个内存可以同时加载多个进程.
2. 时间上的复用:
   实现将cpu在多个进程之间来回切换,并且保留状态.

几乎所有的程序又有IO阻塞,
洗衣服: 10分钟   50分钟
烧水:     5分钟    10分钟
做饭:   15分钟     5分钟
同时加载到内存 3个任务,3个进程,每个进程都有阻塞情况,只要cpu运行一个进程时,遇到IO阻塞立马回切换,长时间占用cpu也会切换.
提升效率,最大限度的使用cpu.

如果是一个IO密集型进程,来回切换提升效率.
如果是一个计算密集型,来回切换降低效率.

第三代计算机广泛采用了必须的保护硬件(程序之间的内存彼此隔离)之后,第三代计算机应用而生:
每个人占用计算机的时间有限的,
多人(少于10个) 共同使用一个计算机主机,

第四代计算机: 至今.

4.进程的理论

串行: 所有的任务一个一个的完成.
并发: 一个cpu完成多个任务.看起来像是同时完成.
并行: 多个cpu执行多个任务,真正的同时完成.
阻塞: cpu遇到IO就是阻塞.
非阻塞: 没有IO,就叫非阻塞.

4.1程序:一堆静态文件

4.2一个正在执行的程序任务,一个进程.

4.3一个程序能否开启多个进程? 可以.

4.4进程的创建

一个子进程必须依赖于一个主进程才可以开启.
一个主进程可以开启多个子进程.
unix: fork创建子进程.
unix(linux,mac): 创建一个子进程会完完全全复制一个主进程所有的资源,初始资源不变.
windows:  操作系统调用CreateProcess 处理进程的创建.
windows:创建一个子进程,会copy主进程所有的资源,但是会改变一些资源.

4.5进程的状态

1730001-20190820165132570-1173073546.png

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

转载于:https://www.cnblogs.com/liubing8/p/11383970.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值