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下环境。性能比较差。