操作系统基础知识
进程与线程
操作系统面对的情形是, 可使用操作的计算、存储等资源是有限的, 但要同时处理多个任务,而每个任务又可能有多个执行流程。
目的:实现多任务的并发运行,在硬件资源有限的条件下, 尽量提高硬件资源的利用效率。 问题:防止共享资源的访问冲突。
- 以多进程形式,允许多个任务同时运行:每个进程自己有独立的虚拟地址空间、全局变 量和系统资源。每一个进程至少有一个主执行线程,它无需由用户去主动创建,是由系 统自动创建的。用户根据需要在应用程序中创建其它线程,多个线程并发地运行于同一 个进程中。
- 以多线程形式,允许单个任务分成不同的部分运行;
- 提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。
互斥锁(Mutual exclusion,Mutex): 只需要一把钥匙 信号量(Semaphore):门口挂 n 把钥匙
https://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html
“并行”概念是“并发”概念的一个子集, 并发是多个动作的同时存在, 并行是多个动作同时 执行。
并发就是指代码逻辑上可以并行,有并行的潜力,但是不一定当前是真的以物理并行的方式运行 并发指的是代码的性质,并行指的是物理运行状态
Reference
《并发的艺术》 — 〔美〕布雷谢斯