多任务(操作系统同时执行多个程序)
概念:
多任务处理是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务.Linux、windows就是支持多任务的操作系统,比起单任务系统它的功能增强了许多。
单任务:一个程序运行完再执行下一个程序
多任务:多个任务可以使用系统资源(并发&并行)
并发:时间片轮转执行(单片机分时复用),CUP执行一个程序一段时间再执行其他程序,是单核进行多任务的方式(伪并行)
并行:同时执行多个程序,必须是多核,当然多核也可以用并发执行多任务的方式
操作系统任务执行方式
抢占式:按照优先级高低执行程序,当前任务执行时,有其他任务进来,根据优先级判断是否发生中断去执行该程序
非抢占式:必须执行完当前任务才能执行其他程序
多任务好处 加快运行效率,充分使用软硬件资源,让多个程序一起运行
单核实现多任务方式 并发式执行,时间片轮转,分别执行多个程序,因为CPU执行速度很快给人一种同时进行的效果
多任务操作系统的实现方式(多进程 多线程)
进程
程序执行的过程;系统分配资源的最小单位;程序运行的抽象为什么要把程序运行进行抽象
方便CPU进行管理软硬件资源,和计算机的一点哲学相似(把任务和问题进行整体上的划分)
特点
优点:逻辑空间上隔离,互不干扰,保证程序正常运行
缺点: 开销大,创建一个进程时要抽象独立的空间,空间上独立,信息不共享,操作系统要进行进程间的切换
进程的调度
三态(用户可以管理):就绪态、阻塞态、执行态
创建进程 fork vfork
exec函数簇
进程的退出
exit return abort
僵尸进程和孤儿进程(防止资源被占用,实时释放资源)
僵尸进程
子进程执行结束,父进程还在执行,子进程资源没被释放就称为僵尸进程
孤儿进程
父进程执行结束,子进程资源无法释放(通常进程之间遵循谁开辟谁负责回收资源),交给init托管