·并发与并行:
①并发:同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行(时间片轮询进程调度算法),使得在宏观上具有多个进程同时执行的效果。(多线程被一个CPU轮换执行)
实现并发的方式:多进程、多进程、I/O多路复用。 Ps: I/O有几种模型? 阻塞I/O、非阻塞I/O、I/O复用、异步I/O、信号驱动I/O。
②并行:同一时刻,有多条指令在多个处理器上同时执行。(多线程被多个CPU同时执行)
Ps概念:1)单、双核处理器中的核是指?答:指“处理器核心”即内核。
2)若用人类社会来比喻的话:CPU代表执行力(抽象概念),操作系统是各级政府,操作系统的内核则是最高决策者(内核决定着系统 的性能和稳定性)。
·进程与线程:
①进程的创建调用fork()。
Ps:fork()可在父进程中创建一个子进程,父、子进程代码段一致。fork()函执行父进程(返回值为子进程ID)还是子进程(返回值为0)可根据返回值确定。当一个进程接到来自客户端新的请求时就可复制出一个子进程,让其来处理执行。父进程只需负责监听请求的到来。这就可做到并发处理。
②进程是系统运行资源分配和调度的一个独立单位。
③程序运行时系统就会创建一个进程并为它分配资源,然后把该进程放入“进程就绪队列”,当进程 调度器选中它的时候就会为它分配CPU时间,程序才开始真正执行。
④线程是CPU调度和分派的基本(最小)单位。
⑤一个程序至少要有一个进程 ,一个进程至少要有一个线程。同一进程中多个线程之间 可并发执行。
⑥同一进程可包括多个线程,且线程可共享整个进程的资源。
·进程与线程区别:1)进程有独立的地址空间,一个进程崩溃,不会对其他进程产生影响。
而线程只是一个进程中的不同执行路径,无单独地址空间,一个线程死掉即整个进程死掉。
∴多进程 程序比多线程程序要健壮。
2)线程执行开销小,但不利于资源管理,保护。进程恰恰相反。