进程的目标 原子 二元信号量 多元信号量 互斥量 临界区 读写锁 变量缓存到寄存器 CPU动态调度换序

《程序员的自我修养:链接、装载与库》
第1章
进程的总体目标是希望每个进程从逻辑上来看都可以独占计算机的资源。
 

 

 

 计算机软件体系结构
 

 

1.4.1 尽可能不让CPU不工作
多道程序 multiprogramming
程序间不分轻重缓急

分时系统 time-sharing system
每个程序运行一段时间以后都主动让出CPU给其他程序,使得一段时间内每个程序都有机会运行一小段时间。
如果一个程序在进行一个很耗时的计算,一直霸占着CPU不放,那么操作系统也没办法,其他程序都只有等着。

多任务系统 multi-tasking 操作系统接管了所有的硬件资源
进程 process 抢占式 preemptive
 
分段 segmentation

 

 

 

 

段映射机制
 
分页 paging
 
 
1.6 众人拾柴火焰高
1.6.1 线程基础
软件并发执行的方法。
 
线程 thread 轻量级进程 lightweight process  程序执行流的最小单元
由  线程Id、当前指令指针PC、寄存器集合、堆栈   组成
一个进程由多个线程组成,各个线程之间共享程序的内存空间(包括代码段、数据段、堆等)及一些进程级的资源(如打开文件和信号)
 
多个线程并发执行,共享进程的全局变量和堆的数据。

 

 多线程优势

 

线程的访问权限

线程私有:栈、线程局部存储 thread local storage TLS、寄存器 

 

 线程调度与优先级

线程数量 处理器数量

 

 线程调度

时间片

 

 

线程状态切换

优先级调度 priority schedule 轮转法 round robin  

线程优先级 thread priority 

 线程优先级:

1、用户手动设置 

2、系统根据线程的表现自动调整优先级,以使得调度更有效率

IO 密集型线程  IO bound thread

CPU密集型线程 CPU bound thread 

 

1、用户指定优先级

2、根据进入等待状态的频繁程度提升或降低优先级

3、长时间得不到执行而被提升优先级

 

可抢占线程

preemption

 

 

Linux的多线程

 

 

 

 

 

 

 

 

写时复制 copy on write COW

1.6.2 线程安全 

 

 

 

 

 

 

 

 

 

 


 


 


 


 


 


 

 
 

 

 

 

 
 
 
 
 
 
posted @ 2019-03-09 17:01  papering  阅读(203)  评论(0编辑  收藏  举报