并发编程——练习题

1、简述计算机操作系统中的“中断”的作用?

中断机制包括硬件的中断机制和操作系统的中断处理服务程序。

中断机制由一些特定的寄存器和控制线路组成。中央处理器和外围设备等识别到的事件保存在特定的寄存器中,中央处理器每执行完一条指令均由中断机制判断是否有事件发生。

若无事件发生,CPU继续执行,若有事件发生,则中断机制中断源占有CPU的程序的执行,让操作系统的处理事件服务程序占用CPU对出现的事件进行处理,事件处理完后,再让原先的程序继续占用CPU执行。

2、简述计算机内存中的“内核态”和“用户态”;

内核态:CPU可以访问内存的所有数据,包括外围设备,例如硬盘,网卡。CPU也可以将自己从一个程序切换到另一个程序。

用户态:只能受限的访问内存却不允许访问外围设备。占用CPU的能力被剥夺,CPU资源可以被其他程序获取。

那么为什么要有用户态和内核态呢?

由于需要限制不同的程序之间的访问能力,防止他们获取别的程序的内存数据,或者获取外围设备的数据并发送到网络,CPU划分出两个权限等级就是用户态和内核态。

3、进程间通信方式有哪些?

晋城指的是正在执行的一个程序,或者说一个任务,负责执行任务的是CPU。

进程是用来把资源集中到一起的,是一个资源单位或者说资源集合。

文件的通信方式有消息队列、管道、信号量、共享内存、套接字。

4、简述你对管道、队列的理解。

管道通常指的是无名管道。

1.它是半双工的。也就是说数据只能在一个方向上流动。具有固定的读端和写端。

2.它只能用于具有亲缘关系的进程和通信,也就是父与子进程或兄弟进程之间。

3.数据不可反复读取及读了之后,缓存区中就没有了。

消息队列。

1.消息队列是面向记录的,其中的消息具有特定的格式以及特定的优先级。

2.消息队列独立于发送与接收进程,进程终止时消息队列及其内容不会被删除。

3.消息队列可以实现消息随机查询。

5、请列举你知道的进程间通信方式。

队列。

信号量。

Event事件。

定时器timer。

进程池和线程池。

异步调用和回调机制。

6、什么是同步IO什么是异步IO?

同步io操作指的是实际的io操作将导致请求进程阻塞,直到io操作完成。

异步io操作指的是实际的io操作不导致请求进程的阻塞。

同步或异步io主要是指访问数据的机制即实际io操作的完成方式。

同步。一般指主动请求并等待io操作完毕的方式,io操作未完成前会导致应用进程挂起。

异步。指的是用户进程触发io操作以后便开始做自己的事情,而当io操作已经完成的时候,会得到io完成的通知。这可以使进程在读取数据时也不会阻塞。

7、请问multiprocessing模块中的Value、Array类的作用是什么?举例说明它们的使用场景

Python多进程通信。Queue pipe value Array。

Queue和pipe用来在进程间传递消息。

Value+Array是Python中共享内存映射文件的方法,速度比较快。

8、请问multiprocessing模块中的Manager类的作用是什么?与Value和Array类相比,Manager的优缺点是什么?

Python multiprocessing manager。

Python中进程间共享数据除了基本的Queue、Pipe、value、Array外,还提供了更高层次的封装,通过multi processing manager可以简单的使用这些高级接口。

Manager的优点是可以在进程池中使用,缺点是windows下环境。性能比较差。

posted @ 2020-02-19 19:15  AlexKing007  阅读(146)  评论(0编辑  收藏  举报