2019/11/07 点击:2691
进程是资源分配的最小单位,拥有独立的地址空间,每启动一个进程,系统都会建立数据表来维护其代码段、堆栈段和数据段;创建和切换进程的开销较大;进程间通信较复杂;多进程
2019/11/07 点击:5018
多进程中数据是分离的,这样共享复杂,同步简单;而多线程中数据是共享的,这样共享简单,同步复杂; 进程创建、销毁和切换比较复杂,速度较慢;线程创建、销毁和切换比较简单
2019/11/07 点击:3543
使用多进程的场景:弱相关的任务、需要拓展到多机分布的任务; 使用多线程的场景:需要频繁创建和销毁的任务(如Web服务器)、需要进行大量计算的任务、强相关的任务、需要拓展到
2019/11/07 点击:2719
进程通常由进程控制块和相应的地址空间组成; Linux环境下,进程控制块主要包含: 进程标识符(即进程ID); 进程的当前状态; 相应的进程控制信息; 地址空间又可以分为: 文本段:
2019/11/07 点击:7417
匿名管道 pipe :半双工的通信方式,数据只能单向流动,且只能在有亲缘关系的进程间使用; 有名管道 named pipe :与 pipe 相似,但允许在无亲缘关系的进程间使用; 消息队列 message q
2019/11/07 点击:2732
用户级上下文:正文、数据、用户堆栈以及共享存储区; 寄存器上下文:通用寄存器、程序寄存器(IP)、处理器状态寄存器(EFLAGS)、栈指针(ESP); 系统级上下文:进程控制块(task_struct)、
2019/11/07 点击:1609
进程切换即上下文切换,是指处理器从一个进程切换到另一个进程,内核在处理器上对于进程进行以下操作: 挂起一个进程,将这个进程在处理器中的状态(即上下文)存储于内存中;
2019/11/07 点击:5764
先来先服务(FCFS):有利于长进程、CPU繁忙的进程,不利于短进程、I/O繁忙的进程; 短作业优先(SJF):对预计执行时间短的进程优先分派处理机,通常后来的短进程不抢先正在执行的进程
2019/11/07 点击:2898
孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程,将被 init 进程(进程号为1)所收养,并由 init 进程对这些子进程完成状态收集工作;
2019/11/07 点击:3595
pid_t pid = fork(); switch (pid) { case -1: cerr fork() 函数创建的子进程会完全复制父进程的资源,代码也不例外,但是 fork() 函数在父进程中返回的是子进程的 pid ,如果为 -1 则说明创建子进程失