并发与多线程
并发与多线程
程序的执行 von Neumann体系结构:程序(指令序列)和数据 都存储在内存中 CPU根据程序计数器(PC)(或称指令指针(IP)) 取出当前指令执行,然后PC被赋予下一条要执 行的指令的地址. ·存在指令级并行技术,但我们讨论程序级的并 行 Lu Chaojun,SJTU 2
Lu Chaojun, SJTU 2 程序的执行 • von Neumann体系结构:程序(指令序列)和数据 都存储在内存中 • CPU根据程序计数器(PC)(或称指令指针(IP)) 取出当前指令执行,然后PC被赋予下一条要执 行的指令的地址. • 存在指令级并行技术,但我们讨论程序级的并 行
顺序(或串行)执行 ·CPU执行一个程序时总是从该程序的第一条指 令开始,不间断地一直到执行到最后一条指令. ·只有一个程序结束,才会去执行下一个程序. . CPU每次由一个程序独占.只要前一个程序还没 有结束,下一个程序就不能使用CPU. o 缺点:系统资源的利用率不高 一计算机系统中有许多资源.当一个程序在使用某个资源时,其他 资源是空闲的如果允许其他程序使用空闲资源,就能提高系统 资源的利用率 -例如,DMA Lu Chaojun,SJTU 3
Lu Chaojun, SJTU 3 顺序(或串行)执行 • CPU执行一个程序时总是从该程序的第一条指 令开始,不间断地一直到执行到最后一条指令. • 只有一个程序结束,才会去执行下一个程序. • CPU每次由一个程序独占.只要前一个程序还没 有结束,下一个程序就不能使用CPU. • 缺点:系统资源的利用率不高. – 计算机系统中有许多资源.当一个程序在使用某个资源时,其他 资源是空闲的.如果允许其他程序使用空闲资源,就能提高系统 资源的利用率. – 例如,DMA
并发执行 ·计算机程序的执行是由操作系统控制的现代操 作系统都支持所谓"多道程序"或"多任务",即允 许多个程序"同时"执行 。"同时:在只有一个CPU的情况下,是不可能有真 正的多个程序"同时"运行的:CPU在任一时刻只 能执行一条指令! -分时使用CPU,即CPU在多个程序之间切换 。 这种多个相互独立的程序交叉执行的方式称为 并发或并行执行 ·多处理器/多核处理器上能真正并行. Lu Chaojun,SJTU 4
Lu Chaojun, SJTU 4 并发执行 • 计算机程序的执行是由操作系统控制的.现代操 作系统都支持所谓"多道程序"或"多任务" ,即允 许多个程序"同时"执行. • "同时“:在只有一个CPU的情况下,是不可能有真 正的多个程序"同时"运行的:CPU在任一时刻只 能执行一条指令! – 分时使用CPU,即CPU在多个程序之间切换. • 这种多个相互独立的程序交叉执行的方式称为 并发或并行执行. • 多处理器/多核处理器上能真正并行
进程 进程,是指程序的一次执行而形成的实体 程序一旦执行,即创建一个进程 进程的构成:程序代码+进程状态信息(上 下文,包括程序数据的当前值,当前执行点 等)等 ·程序与进程:不同程序的执行对应不同的 进程:同一个程序多次执行也创建多个进 程(相同程序代码+不同上下文) ·OS调度进程:上下文切换代价高 Lu Chaojun,SJTU 5
进程 • 进程,是指程序的一次执行而形成的实体. 程序一旦执行,即创建一个进程. • 进程的构成:程序代码+进程状态信息(上 下文,包括程序数据的当前值,当前执行点 等)等. • 程序与进程:不同程序的执行对应不同的 进程;同一个程序多次执行也创建多个进 程(相同程序代码+不同上下文). • OS调度进程:上下文切换代价高. Lu Chaojun, SJTU 5