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