Python开发——13.操作系统、进程和线程

一、操作系统

1.定义

操作系统是用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间。操作系统运行在内核态,拥有对所有硬件的完全访问权,可以执行机器能够运行的任何指令。软件的其余部分运行在用户态。在用户态下,只使用了机器指令中的一个子集,且影响机器的控制或可进行IO(输入/输出)操作的指令是禁止的。

2.发展历史

(1)真空管与穿孔卡片

操作流程:程序员将对应于程序和数据的已穿孔的纸带(或卡片)装入输入机,然后启动输入机把程序和数据输入计算机内存,接着通过控制台开关启动程序针对数据运行;计算完毕,打印机输出计算结果;用户取走结果并卸下纸带(或卡片)后,下一个用户上机。

优点:程序员在使用期间独享整个资源,可以及时调整程序

缺点:资源浪费

(2)晶体管和批处理系统

操作流程:批量输入===>按顺序计算===>批量输出

优点:可以进行批处理,节省时间

缺点:需要人为控制输入输出、仍是顺序计算(串行)、不能及时调试程序

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

三个技术解决三个问题:外部设备联机操作、多道技术、多个联机终端+多道技术

(4)个人计算机

二、进程和线程

1.进程

狭义定义:是一段程序的执行过程。

广义定义:是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。进程是一个实体,每一个进程都有它自己的地址空间。进程是一个“执行中的程序”,程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。

进程一般由程序、数据集、进程控制块三部分组成。程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在执行过程中所需要使用的资源;进程控制块用来记录进程的外部特征,描述进程的执行变化过程,系统可以利用它来控制和管理进程,它是系统感知进程存在的唯一标志。

2.线程

线程也叫轻量级进程,它是一个基本的CPU执行单元,也是程序执行过程中的最小单元,由线程ID、程序计数器、寄存器集合和堆栈共同组成。线程的引入减小了程序并发执行时的开销,提高了操作系统的并发性能。线程没有自己的系统资源。

3.关系

(1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。
(2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。
(3)CPU分给线程,即真正在CPU上运行的是线程。

优缺点:线程执行开销小,但不利于资源的管理和保护;而进程正相反。

4.并行和并发

并行处理(Parallel Processing)是计算机系统中能同时执行两个或更多个处理的一种计算方法。并行处理可同时工作于同一程序的不同方面。并行处理的主要目的是节省大型和复杂问题的解决时间。并发处理(concurrency Processing):指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机(CPU)上运行,但任一个时刻点上只有一个程序在处理机(CPU)上运行

并发的关键是有处理多个任务的能力,不一定要同时。并行的关键是有同时处理多个任务的能力。

5.同步和异步

同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。举个例子,打电话时就是同步通信,发短息时就是异步通信。

猜你喜欢

转载自www.cnblogs.com/hechengwei/p/9157558.html