Python基础(十一)并发编程

操作系统

概念

操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)以及系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成。

操作系统可以管理硬件设备,并将对硬件的管理封装成系统调用,并为用户和应用程序提供一个简单的接口,以便于使用

发展史

第一代计算机(1940-1955)

  真空管和穿孔卡片

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

  优点:程序员在申请的时间段内独享整个资源,可以即时地调试自己的程序(有bug可以立刻处理)

  缺点:浪费计算机资源,一个时间段内只有一个人用。

 第二代计算机(1955-1965)

  晶体管和批处理系统

  优点:批处理,节省了机时

  缺点:

  1.整个流程需要人参与控制,将磁带搬来搬去(中间俩小人)

  2.计算的过程仍然是顺序计算-》串行

  3.程序员原来独享一段时间的计算机,现在必须被统一规划到一批作业中,等待结果和重新调试的过程都需要等同批次的其他程序都运作完才可以(这极大的影响了程序的开发效率,无法及时调试程序

第三代计算机(1965-1980)

  集成电路芯片和多道程序设计

  开发出SPOOLING技术:不必将磁带搬来搬去了(中间俩小人失业了),强化了操作系统的功能

  多道程序设计:

    空间上的复用:将内存分为几部分,每个部分放入一个程序,这样,同一时间内存中就有了多道程序。

    时间上的复用:当一个程序在等待I/O时,另一个程序可以使用cpu,如果内存中可以同时存放足够多的作业,则cpu的利用率可以接近100%,类似于我们小学数学所学的统筹方法

    (操作系统采用了多道技术后,可以控制进程的切换,或者说进程之间去争抢cpu的执行权限。这种切换不仅会在一个进程遇到io时进行,一个进程占用cpu时间过长也会切换,或者说被操作系统夺走                   cpu的执行权限)

第四代计算机(1980~至今):个人计算机

进程

程序仅仅只是一堆代码而已,而进程指的是程序的运行过程(最小的资源单位,是抽象的概念)。

同一个程序执行两次,那也是两个进程

进程一般由程序、数据集、进程控制块三部分组成。

 线程

线程是最小的执行单位

进程和线程的关系

 1 一个程序至少有一个进程,一个进程至少有一个线程.(进程可以理解成线程的容器)
 2 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
 3 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和
 4   程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 
 5 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调
 6   度的一个独立单位. 
 7   线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程
 8   自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈)但是
 9   它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 
10   一个线程可以创建和撤销另一个线程;同一个进程中的多个线程之间可以并发执行.

文章参考

https://www.cnblogs.com/yuanchenqi/articles/6248025.html

https://www.cnblogs.com/linhaifeng/articles/6817679.html#_label1

https://www.cnblogs.com/linhaifeng/articles/7430066.html

猜你喜欢

转载自www.cnblogs.com/dreamer-lin/p/11671529.html