2021年8月11日

摘要: POSIX信号量:可用于进程同步,也可用于线程同步。 POSIX互斥锁 + 条件变量:只能用于线程同步。 1. 线程和进程的区别? 调度:线程是调度的基本单位(PC,状态码,通用寄存器,线程栈及栈指针);进程是拥有资源 的基本单位(打开文件,堆,静态区,代码段等)。 并发性:一个进程内多个线程可以并 阅读全文
posted @ 2021-08-11 22:49 超人不会灰啊 阅读(90) 评论(0) 推荐(0)
 
摘要: 管道: 无名管道(内存文件):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲 缘关系的进程之间使用。进程的亲缘关系通常是指父子进程关系。 有名管道(FIFO文件,借助文件系统):有名管道也是半双工的通信方式,但是允许在没有亲缘 关系的进程之间使用,管道是先进先出的通信方式。 共享内存 阅读全文
posted @ 2021-08-11 22:45 超人不会灰啊 阅读(59) 评论(0) 推荐(0)
 
摘要: 1、 先来先服务 first-come first-serverd(FCFS) 非抢占式的调度算法,按照请求的顺序进行调度。 有利于长作业,但不利于短作业,因为短作业必须一直等待前面的长作业执行完毕才能执行,而长作业 又需要执行很长时间,造成了短作业等待时间过长。 2、 短作业优先 shortest 阅读全文
posted @ 2021-08-11 22:23 超人不会灰啊 阅读(262) 评论(0) 推荐(0)
 
摘要: 对于进程和线程的理解和把握可以说基本奠定了对系统的认知和把控能力。其核心意义绝不仅仅是“线 程是调度的基本单位,进程是资源分配的基本单位”这么简单。 多线程 我们这里讨论的是用户态的多线程模型,同一个进程内部有多个线程,所有的线程共享同一个进程的内存空间,进程中定义的全局变量会被所有的线程共享,比如 阅读全文
posted @ 2021-08-11 22:11 超人不会灰啊 阅读(191) 评论(0) 推荐(1)
 
摘要: 外中断是指由 CPU 执行指令以外的事件引起,如 I/O 完成中断,表示设备输入/输出处理已经完成,处 理器能够发送下一个输入/输出请求。此外还有时钟中断、控制台中断等。 而异常时由 CPU 执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。 阅读全文
posted @ 2021-08-11 21:00 超人不会灰啊 阅读(336) 评论(0) 推荐(0)
 
摘要: 理论上,一个进程可用虚拟空间是2G,默认情况下,线程的栈的大小是1MB,所以理论上最多只能创建 2048个线程。如果要创建多于2048的话,必须修改编译器的设置。 因此,一个进程可以创建的线程数由可用虚拟空间和线程的栈的大小共同决定,只要虚拟空间足够,那么新线程的建立就会成功。如果需要创建超过2K以 阅读全文
posted @ 2021-08-11 20:59 超人不会灰啊 阅读(992) 评论(0) 推荐(0)
 
摘要: 1、线程启动速度快,轻量级 2、线程的系统开销小 3、线程使用有一定难度,需要处理数据一致性问题 4、同一线程共享的有堆、全局变量、静态变量、指针,引用、文件等,而独自占有栈 阅读全文
posted @ 2021-08-11 20:55 超人不会灰啊 阅读(125) 评论(0) 推荐(0)
 
摘要: 1、进程是资源调度的基本单位,运行一个可执行程序会创建一个或多个进程,进程就是运行起来的可 执行程序 2、线程是程序执行的基本单位,是轻量级的进程。每个进程中都有唯一的主线程,且只能有一个,主 线程和进程是相互依存的关系,主线程结束进程也会结束。多提一句:协程是用户态的轻量级线程,线 程内部调度的基 阅读全文
posted @ 2021-08-11 20:37 超人不会灰啊 阅读(139) 评论(0) 推荐(0)