Python-从操作系统引入进程及并发概念

一、进程是什么

顾名思义,进程即是程序执行的过程,进程是对正在运行程序的一个抽象理解。
进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。所以想要真正了解进程,必须事先了解操作系统。

二、操作系统

简化的说操作系统就是一个协调、管理和控制计算机硬件资源和软件资源的控制程序。操作系统所处的位置如下图;
在这里插入图片描述

细说的话,操作系统可分成两部分功能:

系统接口与操作系统内核

  1. 隐藏了丑陋的硬件调用接口,为应用程序员提供调用硬件资源的更好,更简单,更清晰的模型(系统调用接口)。应用程序员有了这些接口后,就不用再考虑操作硬件的细节,专心开发自己的应用程序即可。
例如:操作系统提供了文件这个抽象概念,对文件的操作就是对磁盘的操作,
有了文件我们无需再去考虑关于磁盘的读写控制,比如控制磁盘转动,
移动磁头读写数据等细节;
  1. 将应用程序对硬件资源的竞态请求变得有序化,
例如:很多应用软件其实是共享一套计算机硬件,比方说有可能有三个应用程序同时需要申请打印机来输出内容,
那么a程序竞争到了打印机资源就打印,然后可能是b竞争到打印机资源,也可能是c,这就导致了无序,
打印机可能打印一段a的内容然后又去打印c...,操作系统的一个功能就是将这种无序变得有序。

三、操作系统发展史

操作系统发展史

四、多道技术

多道技术中的多道指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题,解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。

1. 产生背景

针对单核CPU,可实现并发效果;
现在的CPU一般是多核,每个核都会利用多道技术;

2. 空间上的复用

可将多个程序的代码存入内存,它们之间是物理隔离的;

3. 时间上的复用

复用一个cpu的时间片;
遇到io切换,占用cpu时间过长也切,核心在于切之前将进程的状态保存下来,这样才能保证下次切换回来时,能基于上次切走的位置继续运行;

如果我们的核心目标是想让多个任务并发起来:那么无论是遇到IO还是没有遇到IO都应该让cpu在多个任务之间切换起来

如果我们的核心目标是想让多个任务的运行效率提升:我们应该只控制一个任务在遇到IO情况下切换到另外一个任务

猜你喜欢

转载自blog.csdn.net/msmso/article/details/108130113