python之路---并发编程之操作系统

三个概念

串行:一个任务完完整整的执行完,才执行下一个任务(不能片面的理解为:任务一个一个的执行)

并发:多个任务看起来像同时进行(单核也能实现)

并行:真正意义上的多个任务同时进行(只有多核才能实现)

 什么是进程

进程源自操作系统,是操作系统最核心的概念,进程是一个程序在一个数据集上的动态执行过程(是正在运行程序的一个抽象)

进程,包括三个方面

1.程序:我们通过程序来描述一个进程所需要完成的任务有哪些以及如何完成

2.数据集:数据集是指程序在执行过程中所需要的资源:例如文件,图片....

3.进程控制块:进程控制块用于描述进程的外部特征,记录进程的执行过程,操作系统可以它来控制和管理进程,是操作系统感知进程存在的唯一标记

操作系统 :想要理解进程就要了解操作系统

什么是操作系统

操作系统是位于应用软件与硬件之间的系统软件,用于控制,管理,协调计算机的硬件资源和软件资源

操作系统的作用

1.将复杂的硬件操作封装成简单的接口给应用软件和用户

2.将多个进程对硬件的竞争变得有序

操作系统的发展

第一代计算机:真空管与穿孔卡片

特点:没有操作系统的概念,所有的程序设计都是直接操作硬件

使用方式:个人预约,在单独时间内独享计算机资源(即使出现bug时不使用计算机,后面的人也无法使用)

缺点是:极大的浪费了计算机资源,而且执行任务是串行的

第二代计算机:晶体管与批处理系统

特点:有了操作系统的概念,有了程序设计语言

使用方式:将一批程序员的程序共同放到1401机中读取,由工作人员将读取的磁带放到7094机中执行(在放之前会先放入装有批处理系统的磁带),并将结果输出到另一台1401机上

优点是:相比第一代计算机,提高了计算机资源的利用率

缺点是:程序的运行方式仍然是串行,而且降低了程序员的开发效率(在程序员提交程序之后,无法立即得到执行结果,也无法立即更改程序),在计算机工作的过程中需要人参与

第三代计算机:集成电路芯片与多道程序设计

分时操作系统:多个联机终端+多道技术

多道技术

背景:想要在单核下实现并发(单核同一时刻只能执行一个任务)

并发的本质:操作系统控制CPU进行切换+保存进程的状态

什么时候切换

1.遇到IO切换(cpu是用于运算的,无法进行IO操作),相对于串行,可以提高效率

2.一个进程占用cpu时间过长(或者有另一个更高优先级的进程出现),这是为了实现并发而切换,相对于串行,会降低效率

核心概念:复用

1.空间上的复用

多个进程共用一个内存条,进程间的内存空间是彼此隔离的(这种隔离是物理层面实现的),例如:多个任务可以同时进入内存,从硬件层面将其隔离,并且由操作系统控制

2.时间上的复用

多个进程共用一个CPU的时间

当遇到IO进行切换,当进程占用CPU时间过长时进行切换

猜你喜欢

转载自blog.csdn.net/ltfdsy/article/details/82383248
今日推荐