并发编程
概念:
什么是程序?什么是进程?
程序就是一堆文件
进程就是一个正在运行的过程/程序,进程是一个抽象的概念,这个概念起源于操作系统
什么是操作系统?
操作系统是位于计算机硬件与应用软件之间,用于协调、管理、控制计算机硬件与软件的资源的一种控制程序
操作系统的两大作用:
1.把复杂的硬件操作都封装成接口,提供给应用程序使用
2.管理、调度进程,把进程对硬件的竞争变得有序
多道技术:(多路复用+硬件支持的进程内存隔离)
多道的产生背景是想要在单个cpu的情况下实现多个进程并发执行的效果
多到技术的实现是为了解决多个程序竞争或者共享同一个cpu的有序调度问题,解决方式就是多路复用
多路复用:
空间上的复用(多道程序复用内存的空间)
将内存分为几部分,每个部分放入一个程序,这样同一时间内存中就有了多道程序
程序之间的内存必须分割,这种分割需要在硬件层面实现,由操作系统控制。
如果内存彼此不分割,则一个程序就可以访问另外一个程序的内存:
首先丧失安全性,程序可以访问操作系统的内存,可以拿到操作系统的权限
其次丧失的是稳定性,某个程序崩溃的时候有可能把其他程序的内存也给回收了
时间上的复用(多道程序复用CPU时间)
当一个程序在等待 I/O 时,另一个程序可以使用cpu
时间复用的体现:
cpu遇到IO操作要切换(提升运行效率)
一个进程占用cpu时间过长也要切换(降低了效率,保证了并发的效果)
进程和进程之间的内存空间是互相隔离的:必须是硬件层面的隔离
分时操作系统:多个联机终端 ++++ 多道技术